q2-tecton-elements 1.54.6 → 1.54.7

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 (364) hide show
  1. package/dist/bundle-report.json +100 -45
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/q2-action-group.cjs.entry.js +1 -1
  4. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  5. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/q2-badge_7.cjs.entry.js +3 -3
  7. package/dist/cjs/q2-carousel-pane.cjs.entry.js +2 -2
  8. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-detail.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-dropdown.cjs.entry.js +24 -21
  14. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  15. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-item_3.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-month-picker.cjs.entry.js +2 -2
  22. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-option-list_2.cjs.entry.js +58 -59
  24. package/dist/cjs/q2-option-list_2.cjs.entry.js.map +1 -1
  25. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  26. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-relative-time.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-section.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-select.cjs.entry.js +85 -11
  31. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  32. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  36. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  37. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  38. package/dist/collection/components/click-elsewhere/click-elsewhere.js.map +1 -1
  39. package/dist/collection/components/click-elsewhere/test/click-elsewhere-test.e2e.js.map +1 -1
  40. package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
  41. package/dist/collection/components/q2-action-group/q2-action-group.js.map +1 -1
  42. package/dist/collection/components/q2-action-group/test/q2-action-group.e2e.js.map +1 -1
  43. package/dist/collection/components/q2-action-group/test/q2-action-group.spec.js.map +1 -1
  44. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  45. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js.map +1 -1
  46. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.e2e.js.map +1 -1
  47. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  48. package/dist/collection/components/q2-avatar/q2-avatar.js.map +1 -1
  49. package/dist/collection/components/q2-avatar/test/q2-avatar-test.e2e.js.map +1 -1
  50. package/dist/collection/components/q2-badge/q2-badge.js.map +1 -1
  51. package/dist/collection/components/q2-badge/test/q2-badge-test.e2e.js.map +1 -1
  52. package/dist/collection/components/q2-btn/q2-btn.js.map +1 -1
  53. package/dist/collection/components/q2-btn/test/q2-btn-test.e2e.js.map +1 -1
  54. package/dist/collection/components/q2-calendar/q2-calendar-helpers.js.map +1 -1
  55. package/dist/collection/components/q2-calendar/q2-calendar-types.js.map +1 -1
  56. package/dist/collection/components/q2-calendar/q2-calendar-validation.js.map +1 -1
  57. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  58. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  59. package/dist/collection/components/q2-calendar/q2-month-picker.js.map +1 -1
  60. package/dist/collection/components/q2-calendar/test/helpers-test.e2e.js.map +1 -1
  61. package/dist/collection/components/q2-calendar/test/q2-calendar-month-picker-test.e2e.js.map +1 -1
  62. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +2 -2
  63. package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
  64. package/dist/collection/components/q2-calendar/test/validation-test.e2e.js.map +1 -1
  65. package/dist/collection/components/q2-card/q2-card.js.map +1 -1
  66. package/dist/collection/components/q2-card/test/q2-card-test.e2e.js.map +1 -1
  67. package/dist/collection/components/q2-carousel/q2-carousel.js.map +1 -1
  68. package/dist/collection/components/q2-carousel/test/q2-carousel-test.e2e.js.map +1 -1
  69. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  70. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js.map +1 -1
  71. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.e2e.js.map +1 -1
  72. package/dist/collection/components/q2-carousel-pane/test/q2-carousel-pane-test.spec.js.map +1 -1
  73. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  74. package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
  75. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
  76. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  77. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js.map +1 -1
  78. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.e2e.js.map +1 -1
  79. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  80. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
  81. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
  82. package/dist/collection/components/q2-checkbox/q2-checkbox.js.map +1 -1
  83. package/dist/collection/components/q2-checkbox/test/q2-checkbox-test.e2e.js.map +1 -1
  84. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
  85. package/dist/collection/components/q2-checkbox-group/test/q2-checkbox-group-test.e2e.js.map +1 -1
  86. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  87. package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
  88. package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
  89. package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
  90. package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
  91. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  92. package/dist/collection/components/q2-detail/q2-detail.js.map +1 -1
  93. package/dist/collection/components/q2-detail/test/q2-detail-test.e2e.js.map +1 -1
  94. package/dist/collection/components/q2-dropdown/q2-dropdown.js +25 -21
  95. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  96. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +34 -32
  97. package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
  98. package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
  99. package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
  100. package/dist/collection/components/q2-editable-field/q2-editable-field.js.map +1 -1
  101. package/dist/collection/components/q2-editable-field/test/q2-editable-field-test.e2e.js.map +1 -1
  102. package/dist/collection/components/q2-example/q2-example.js +1 -1
  103. package/dist/collection/components/q2-example/q2-example.js.map +1 -1
  104. package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -1
  105. package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -1
  106. package/dist/collection/components/q2-file-picker/q2-file-picker.js.map +1 -1
  107. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.e2e.js.map +1 -1
  108. package/dist/collection/components/q2-file-picker/test/q2-file-picker-test.spec.js.map +1 -1
  109. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  110. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js.map +1 -1
  111. package/dist/collection/components/q2-formatted-text/test/q2-formatted-text-test.e2e.js.map +1 -1
  112. package/dist/collection/components/q2-icon/q2-icon-types.js.map +1 -1
  113. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  114. package/dist/collection/components/q2-icon/test/q2-icon-test.e2e.js.map +1 -1
  115. package/dist/collection/components/q2-input/formatting/alpha.js.map +1 -1
  116. package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -1
  117. package/dist/collection/components/q2-input/formatting/alphanumeric.js.map +1 -1
  118. package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -1
  119. package/dist/collection/components/q2-input/formatting/credit-card.js.map +1 -1
  120. package/dist/collection/components/q2-input/formatting/credit-card.spec.js.map +1 -1
  121. package/dist/collection/components/q2-input/formatting/currency.js.map +1 -1
  122. package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -1
  123. package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
  124. package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -1
  125. package/dist/collection/components/q2-input/formatting/generic.js.map +1 -1
  126. package/dist/collection/components/q2-input/formatting/number.js.map +1 -1
  127. package/dist/collection/components/q2-input/formatting/numeric.js.map +1 -1
  128. package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -1
  129. package/dist/collection/components/q2-input/formatting/phone.js.map +1 -1
  130. package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -1
  131. package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
  132. package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -1
  133. package/dist/collection/components/q2-input/formatting/ssn.js.map +1 -1
  134. package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -1
  135. package/dist/collection/components/q2-input/formatting/tin.js.map +1 -1
  136. package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -1
  137. package/dist/collection/components/q2-input/q2-input-types.js.map +1 -1
  138. package/dist/collection/components/q2-input/q2-input.js +1 -1
  139. package/dist/collection/components/q2-input/q2-input.js.map +1 -1
  140. package/dist/collection/components/q2-input/test/q2-input-credit-card-test.e2e.js.map +1 -1
  141. package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
  142. package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -1
  143. package/dist/collection/components/q2-item/q2-item.js +1 -1
  144. package/dist/collection/components/q2-item/q2-item.js.map +1 -1
  145. package/dist/collection/components/q2-item/test/q2-item-test.e2e.js.map +1 -1
  146. package/dist/collection/components/q2-item/test/q2-item-test.spec.js.map +1 -1
  147. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  148. package/dist/collection/components/q2-legend/q2-legend.js.map +1 -1
  149. package/dist/collection/components/q2-legend/test/q2-legend-test.e2e.js.map +1 -1
  150. package/dist/collection/components/q2-legend/test/q2-legend-test.spec.js.map +1 -1
  151. package/dist/collection/components/q2-link/q2-link.js.map +1 -1
  152. package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
  153. package/dist/collection/components/q2-link/test/q2-link-test.spec.js.map +1 -1
  154. package/dist/collection/components/q2-list/q2-list.js +1 -1
  155. package/dist/collection/components/q2-list/q2-list.js.map +1 -1
  156. package/dist/collection/components/q2-list/test/q2-list-test.e2e.js.map +1 -1
  157. package/dist/collection/components/q2-loading/q2-loading.js.map +1 -1
  158. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js.map +1 -1
  159. package/dist/collection/components/q2-loading/skeleton/shapes.js.map +1 -1
  160. package/dist/collection/components/q2-loading/test/q2-loading-element-test.e2e.js.map +1 -1
  161. package/dist/collection/components/q2-loading/test/q2-loading-test.e2e.js.map +1 -1
  162. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  163. package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
  164. package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
  165. package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -1
  166. package/dist/collection/components/q2-message/q2-message.js +1 -1
  167. package/dist/collection/components/q2-message/q2-message.js.map +1 -1
  168. package/dist/collection/components/q2-message/test/q2-message-test.e2e.js.map +1 -1
  169. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  170. package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
  171. package/dist/collection/components/q2-optgroup/test/q2-optgroup-test.e2e.js.map +1 -1
  172. package/dist/collection/components/q2-option/q2-option.js.map +1 -1
  173. package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
  174. package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -1
  175. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  176. package/dist/collection/components/q2-option-list/test/q2-option-list-test.e2e.js.map +1 -1
  177. package/dist/collection/components/q2-option-list/test/q2-option-list.spec.js.map +1 -1
  178. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  179. package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
  180. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +1 -0
  181. package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
  182. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  183. package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
  184. package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
  185. package/dist/collection/components/q2-popover/q2-popover.css +18 -10
  186. package/dist/collection/components/q2-popover/q2-popover.js +59 -59
  187. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  188. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js +1 -34
  189. package/dist/collection/components/q2-popover/test/q2-popover-test.e2e.js.map +1 -1
  190. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +743 -435
  191. package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
  192. package/dist/collection/components/q2-radio/q2-radio.js.map +1 -1
  193. package/dist/collection/components/q2-radio/test/q2-radio-test.e2e.js.map +1 -1
  194. package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
  195. package/dist/collection/components/q2-radio-group/test/q2-radio-group-test.e2e.js.map +1 -1
  196. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  197. package/dist/collection/components/q2-relative-time/q2-relative-time.js.map +1 -1
  198. package/dist/collection/components/q2-relative-time/test/q2-relative-time-test.e2e.js.map +1 -1
  199. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  200. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js.map +1 -1
  201. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.e2e.js.map +1 -1
  202. package/dist/collection/components/q2-resize-observer/test/q2-resize-observer.spec.js.map +1 -1
  203. package/dist/collection/components/q2-section/q2-section.js +2 -2
  204. package/dist/collection/components/q2-section/q2-section.js.map +1 -1
  205. package/dist/collection/components/q2-section/test/q2-section-test.e2e.js.map +1 -1
  206. package/dist/collection/components/q2-select/q2-select.js +107 -14
  207. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  208. package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
  209. package/dist/collection/components/q2-select/test/q2-select-test.spec.js +412 -0
  210. package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -0
  211. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  212. package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
  213. package/dist/collection/components/q2-stepper/test/q2-stepper-test.e2e.js.map +1 -1
  214. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
  215. package/dist/collection/components/q2-stepper-pane/test/q2-stepper-pane-test.e2e.js.map +1 -1
  216. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  217. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
  218. package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
  219. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  220. package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
  221. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.e2e.js.map +1 -1
  222. package/dist/collection/components/q2-tab-container/test/q2-tab-container-test.spec.js.map +1 -1
  223. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  224. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js.map +1 -1
  225. package/dist/collection/components/q2-tab-pane/test/q2-tab-pane-test.e2e.js.map +1 -1
  226. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  227. package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
  228. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +5 -0
  229. package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
  230. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  231. package/dist/collection/components/q2-textarea/q2-textarea.js.map +1 -1
  232. package/dist/collection/components/q2-textarea/test/q2-textarea-test.e2e.js.map +1 -1
  233. package/dist/collection/components/q2-tooltip/q2-tooltip.js.map +1 -1
  234. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.e2e.js.map +1 -1
  235. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane-types.js.map +1 -1
  236. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  237. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js.map +1 -1
  238. package/dist/collection/components/tecton-tab-pane/test/tecton-tab-pane-test.e2e.js.map +1 -1
  239. package/dist/collection/index.js.map +1 -1
  240. package/dist/collection/utils/action-sheet.js.map +1 -1
  241. package/dist/collection/utils/charting.js.map +1 -1
  242. package/dist/collection/utils/helpers.js.map +1 -1
  243. package/dist/collection/utils/index.js.map +1 -1
  244. package/dist/collection/utils/mirror-emit.js.map +1 -1
  245. package/dist/collection/utils/sanitize-html-string.js.map +1 -1
  246. package/dist/collection/utils/sanitize-regex-string.js.map +1 -1
  247. package/dist/collection/utils/test/action-sheet-test.e2e.js.map +1 -1
  248. package/dist/collection/utils/test/index.spec.js.map +1 -1
  249. package/dist/components/q2-action-group.js +1 -1
  250. package/dist/components/q2-action-sheet.js +1 -1
  251. package/dist/components/q2-avatar2.js +1 -1
  252. package/dist/components/q2-carousel-pane.js +2 -2
  253. package/dist/components/q2-chart-area.js +1 -1
  254. package/dist/components/q2-chart-bar.js +1 -1
  255. package/dist/components/q2-chart-donut.js +1 -1
  256. package/dist/components/q2-currency.js +1 -1
  257. package/dist/components/q2-detail.js +1 -1
  258. package/dist/components/q2-dropdown.js +24 -21
  259. package/dist/components/q2-dropdown.js.map +1 -1
  260. package/dist/components/q2-example.js +1 -1
  261. package/dist/components/q2-formatted-text.js +1 -1
  262. package/dist/components/q2-input2.js +1 -1
  263. package/dist/components/q2-item2.js +1 -1
  264. package/dist/components/q2-legend2.js +1 -1
  265. package/dist/components/q2-list2.js +1 -1
  266. package/dist/components/q2-loc.js +1 -1
  267. package/dist/components/q2-message2.js +1 -1
  268. package/dist/components/q2-month-picker.js +2 -2
  269. package/dist/components/q2-optgroup2.js +1 -1
  270. package/dist/components/q2-pagination.js +3 -3
  271. package/dist/components/q2-pill.js +1 -1
  272. package/dist/components/q2-popover2.js +58 -59
  273. package/dist/components/q2-popover2.js.map +1 -1
  274. package/dist/components/q2-relative-time.js +1 -1
  275. package/dist/components/q2-resize-observer2.js +1 -1
  276. package/dist/components/q2-section.js +2 -2
  277. package/dist/components/q2-select2.js +89 -15
  278. package/dist/components/q2-select2.js.map +1 -1
  279. package/dist/components/q2-stepper-vertical.js +1 -1
  280. package/dist/components/q2-stepper.js +1 -1
  281. package/dist/components/q2-tab-container.js +1 -1
  282. package/dist/components/q2-tab-pane.js +1 -1
  283. package/dist/components/q2-tag.js +1 -1
  284. package/dist/components/q2-textarea.js +1 -1
  285. package/dist/components/tecton-tab-pane.js +2 -2
  286. package/dist/esm/loader.js +1 -1
  287. package/dist/esm/q2-action-group.entry.js +1 -1
  288. package/dist/esm/q2-action-sheet.entry.js +1 -1
  289. package/dist/esm/q2-avatar.entry.js +1 -1
  290. package/dist/esm/q2-badge_7.entry.js +3 -3
  291. package/dist/esm/q2-carousel-pane.entry.js +2 -2
  292. package/dist/esm/q2-chart-area.entry.js +1 -1
  293. package/dist/esm/q2-chart-bar.entry.js +1 -1
  294. package/dist/esm/q2-chart-donut.entry.js +1 -1
  295. package/dist/esm/q2-currency.entry.js +1 -1
  296. package/dist/esm/q2-detail.entry.js +1 -1
  297. package/dist/esm/q2-dropdown.entry.js +24 -21
  298. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  299. package/dist/esm/q2-example.entry.js +1 -1
  300. package/dist/esm/q2-formatted-text.entry.js +1 -1
  301. package/dist/esm/q2-item_3.entry.js +2 -2
  302. package/dist/esm/q2-legend.entry.js +1 -1
  303. package/dist/esm/q2-loc.entry.js +1 -1
  304. package/dist/esm/q2-message.entry.js +1 -1
  305. package/dist/esm/q2-month-picker.entry.js +2 -2
  306. package/dist/esm/q2-optgroup.entry.js +1 -1
  307. package/dist/esm/q2-option-list_2.entry.js +58 -59
  308. package/dist/esm/q2-option-list_2.entry.js.map +1 -1
  309. package/dist/esm/q2-pagination.entry.js +3 -3
  310. package/dist/esm/q2-pill.entry.js +1 -1
  311. package/dist/esm/q2-relative-time.entry.js +1 -1
  312. package/dist/esm/q2-resize-observer.entry.js +1 -1
  313. package/dist/esm/q2-section.entry.js +2 -2
  314. package/dist/esm/q2-select.entry.js +87 -13
  315. package/dist/esm/q2-select.entry.js.map +1 -1
  316. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  317. package/dist/esm/q2-stepper.entry.js +1 -1
  318. package/dist/esm/q2-tag.entry.js +1 -1
  319. package/dist/esm/q2-tecton-elements.js +1 -1
  320. package/dist/esm/q2-textarea.entry.js +1 -1
  321. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  322. package/dist/jest.setup.js +22 -0
  323. package/dist/jest.setup.js.map +1 -0
  324. package/dist/q2-tecton-elements/q2-action-group.entry.js +3 -3
  325. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +33 -33
  326. package/dist/q2-tecton-elements/q2-avatar.entry.js +6 -6
  327. package/dist/q2-tecton-elements/q2-badge_7.entry.js +16 -16
  328. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +20 -20
  329. package/dist/q2-tecton-elements/q2-chart-area.entry.js +2 -2
  330. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +2 -2
  331. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +100 -100
  332. package/dist/q2-tecton-elements/q2-currency.entry.js +6 -6
  333. package/dist/q2-tecton-elements/q2-detail.entry.js +38 -38
  334. package/dist/q2-tecton-elements/q2-dropdown.entry.js +26 -22
  335. package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
  336. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  337. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  338. package/dist/q2-tecton-elements/q2-item_3.entry.js +18 -18
  339. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  340. package/dist/q2-tecton-elements/q2-loc.entry.js +5 -5
  341. package/dist/q2-tecton-elements/q2-message.entry.js +20 -20
  342. package/dist/q2-tecton-elements/q2-month-picker.entry.js +13 -13
  343. package/dist/q2-tecton-elements/q2-optgroup.entry.js +7 -7
  344. package/dist/q2-tecton-elements/q2-option-list_2.entry.js +128 -123
  345. package/dist/q2-tecton-elements/q2-option-list_2.entry.js.map +1 -1
  346. package/dist/q2-tecton-elements/q2-pagination.entry.js +18 -18
  347. package/dist/q2-tecton-elements/q2-pill.entry.js +13 -13
  348. package/dist/q2-tecton-elements/q2-relative-time.entry.js +1 -1
  349. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +1 -1
  350. package/dist/q2-tecton-elements/q2-section.entry.js +19 -19
  351. package/dist/q2-tecton-elements/q2-select.entry.js +151 -89
  352. package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
  353. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +28 -28
  354. package/dist/q2-tecton-elements/q2-stepper.entry.js +28 -28
  355. package/dist/q2-tecton-elements/q2-tag.entry.js +5 -5
  356. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  357. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  358. package/dist/q2-tecton-elements/q2-textarea.entry.js +2 -2
  359. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
  360. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +1 -0
  361. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +6 -4
  362. package/dist/types/components/q2-popover/q2-popover.d.ts +4 -4
  363. package/dist/types/components/q2-select/q2-select.d.ts +19 -0
  364. package/package.json +3 -3
@@ -57,7 +57,7 @@ const Q2Avatar = class {
57
57
  const isLoaded = this.isLoaded;
58
58
  const showInitials = (this.name || this.initials) && (!this.src || this.badSrc);
59
59
  const showFallback = !this.name && !this.initials && (!this.src || this.badSrc);
60
- return (index.h("div", { key: '2377fb1226c542252d8c1826aa762cc0267bb8a2' }, showImg && (index.h("img", { key: 'baa5c36dd4be833bd017daa75b57dc0cf9ea01bf', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (index.h("svg", { key: 'd4977d3adf04544ed9f13b079abfa2a2e1ce3a56', 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' }, index.h("text", { key: '8de6490d4949b8f20beef384ba78c371edf1d81a', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (index.h("div", { key: '9946f0f312626acb2693ef058b98480a5c4011ed', "test-id": "fallbackIcon", class: "fallback" }, index.h("q2-icon", { key: 'd6c99a8f8b12216c7a00d936f22ec7ac49aec151', type: this.icon })))));
60
+ return (index.h("div", { key: 'fb5f6b225de751e0d0aeb5b9e2d92128f184c899' }, showImg && (index.h("img", { key: '093ecb0b7e608589fda969b54ef3d5bc072ce245', class: isLoaded ? 'avatar-img' : 'avatar-img-default', "test-id": "userImage", src: this.src, onError: this.onError, onLoad: this.onLoad, alt: this.name || '' })), showInitials && (index.h("svg", { key: 'dac89c0aca1a250d5d15b8536d323cf1b4bbe616', 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' }, index.h("text", { key: '85cdca32e6172a0f9c3b590a277a056fbec6c8ae', x: "50", y: "50", "dominant-baseline": "central", "text-anchor": "middle", "aria-hidden": "true" }, computedInitials))), showFallback && (index.h("div", { key: '2a8e7bb8d8d7f25b7df61f162b0adc362a6dbbb6', "test-id": "fallbackIcon", class: "fallback" }, index.h("q2-icon", { key: 'ddb717e672bc21ce35823e69255d4fda8c50dc61', type: this.icon })))));
61
61
  }
62
62
  get el() { return index.getElement(this); }
63
63
  static get watchers() { return {
@@ -4489,7 +4489,7 @@ const Q2Input = class {
4489
4489
  return (index.h(index.Fragment, null, hasCustomDisplaySlot && (index.h("div", { class: "custom-display-container" }, index.h("slot", { name: "custom-display" }))), index.h("input", { ref: el => (this.inputRef = el), class: inputClasses.join(' '), id: this.inputId, type: this.computedType, size: this.formattedValueObject.prefix ? 10 : undefined, maxlength: ['date', 'currency'].includes(this.type) ? undefined : this.maxlength || undefined, max: this.max, min: this.min, step: this.step, "aria-current": this.current || undefined, "aria-describedby": this.inputDescribedBy, "aria-required": `${!this.optional}`, "aria-invalid": `${this.hasError}`, "aria-owns": ariaOwns, "aria-haspopup": ariaHaspopup, "aria-expanded": ariaExpanded, "aria-activedescendant": ariaActivedescendant, autocomplete: this.computedAutocomplete, autocapitalize: this.autocapitalize, autocorrect: this.autocorrect === 'on' ? 'on' : 'off', autofocus: this.autofocus, placeholder: (this.placeholder && index$1.loc(this.placeholder)) || undefined, role: this._role, "test-id": "inputField", readonly: this.readonly || this._preventEntry, disabled: !!this.disabled, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onClick: this.onInputClick, onKeyDown: this.onInputKeydown, onInput: this.onInputInput, onPaste: this.onInputPaste, inputmode: this.inputMode, pattern: this.pattern || undefined })));
4490
4490
  }
4491
4491
  render() {
4492
- return (index.h("div", { key: '0f8acdf9b35d6fe0859a328037dc805102d451c5', class: this.wrapperClasses }, index.h("div", { key: 'e9d85bf0f092b1f823cf80b2fcdf4440c48511ad', class: "label-wrapper" }, index$1.renderLabel(this), this.renderCountDOM()), this.renderInputContainerDOM(), index$1.renderMessages(this)));
4492
+ return (index.h("div", { key: '9a08088086f92f1577313e57a8791cc31b51b2ab', class: this.wrapperClasses }, index.h("div", { key: 'e01d82bf1041e00b7642e28d86d2949338ab434e', class: "label-wrapper" }, index$1.renderLabel(this), this.renderCountDOM()), this.renderInputContainerDOM(), index$1.renderMessages(this)));
4493
4493
  }
4494
4494
  get hostElement() { return index.getElement(this); }
4495
4495
  static get watchers() { return {
@@ -4842,7 +4842,7 @@ const Q2TabContainer = class {
4842
4842
  return (index.h("div", { class: "tab-pane-badge", "aria-label": `${tab.label}, ${tab.badgeCount} ${description}` }, tab.label, index.h("q2-badge", { value: tab.badgeCount, theme: theme, status: tab.badgeStatus })));
4843
4843
  }
4844
4844
  render() {
4845
- return (index.h(index.Fragment, { key: '2d794d68260d0aa72fb4a83325a02cf017c0df53' }, index.h("div", { key: '1871102e424cea364c952f4bcd35501cdb726a5e', class: "tab-container" }, this.scrollEnabled && (index.h(index.Fragment, { key: 'f405b7f15194484a139fed6cac31e0852bcfc082' }, index.h("div", { key: '62876ad768eafddcf5a4dc2d024b3adb0a697367', class: "gradient-left", hidden: !this.showScrollLeft }), index.h("div", { key: '5b9565a25ea4affded8e8238c0f7cd03867ae171', class: "gradient-right", hidden: !this.showScrollRight }), index.h("q2-btn", { key: '5c07ca74064f710613266fbcff482681d7949543', class: "btn-left", hidden: !this.showScrollLeft, onClick: () => this.onScrollBtnClick('left') }, index.h("q2-icon", { key: 'eb08818f8ca406ab5a2dbd9dec91b101f5ebe234', type: "chevron-left", label: "scroll left" })), index.h("q2-btn", { key: '7e2986967d788f95f464e0ab5041a593496dfa32', class: "btn-right", hidden: !this.showScrollRight, onClick: () => this.onScrollBtnClick('right') }, index.h("q2-icon", { key: 'e2a28fead80ab1cc13b478425b20a5a874770112', type: "chevron-right", label: "scroll right" })))), index.h("ul", { key: '5da35b86ffeda0115d7c09598f7a8bec5915c844', onScroll: this.checkScrollState, ref: el => (this.listElement = el), class: this.noPrint ? 'no-print' : null, role: "tablist" }, this.tabs.map((tab, index) => this.renderTab(tab, index)))), index.h("div", { key: '7c4ffcf2c6e0092c9024069596179ee8a9a3e497', class: "tab-content" }, index.h("slot", { key: '25c8cfe8a3dc31b9236fb5ef1569eb3955d8449e', onSlotchange: () => this.onSlotChange() }))));
4845
+ return (index.h(index.Fragment, { key: '6c783fd3d66125f818e5324b890db2db9a4fcab6' }, index.h("div", { key: 'f23824677f38b6543b44b6f3f3e567ba330b30c2', class: "tab-container" }, this.scrollEnabled && (index.h(index.Fragment, { key: '720bda7766c8d09ca4ae9f318e89db375532bde9' }, index.h("div", { key: 'db4664830754618036ea9076d4de5470382b107f', class: "gradient-left", hidden: !this.showScrollLeft }), index.h("div", { key: '79acd46bde6496d8c382643d70106e811c9b0e22', class: "gradient-right", hidden: !this.showScrollRight }), index.h("q2-btn", { key: '79d604a6d75c6d3c7255b60d76dbf088c6c1359b', class: "btn-left", hidden: !this.showScrollLeft, onClick: () => this.onScrollBtnClick('left') }, index.h("q2-icon", { key: 'd1311aba28b72dec928ef0015defef7ced2b0f20', type: "chevron-left", label: "scroll left" })), index.h("q2-btn", { key: '6738ffc066065c219e68710a12233fdf9b463cdc', class: "btn-right", hidden: !this.showScrollRight, onClick: () => this.onScrollBtnClick('right') }, index.h("q2-icon", { key: '3635b69783a56a543b5dfec13e07059582f97da4', type: "chevron-right", label: "scroll right" })))), index.h("ul", { key: '56e6f911fdba5322d1f8f0d65b0bba586c85fe93', onScroll: this.checkScrollState, ref: el => (this.listElement = el), class: this.noPrint ? 'no-print' : null, role: "tablist" }, this.tabs.map((tab, index) => this.renderTab(tab, index)))), index.h("div", { key: '1b066a54d00881d8aa66b27f7c58033b31a84c9b', class: "tab-content" }, index.h("slot", { key: 'a2d6e88705355e7d1b4b872e046c5829568793b7', onSlotchange: () => this.onSlotChange() }))));
4846
4846
  }
4847
4847
  get hostElement() { return index.getElement(this); }
4848
4848
  static get watchers() { return {
@@ -4878,7 +4878,7 @@ const Q2TabPane = class {
4878
4878
  // #endregion
4879
4879
  // #region Render Methods
4880
4880
  render() {
4881
- return (index.h("div", { key: '3cd86f02e748fc4e77059cb31b5e478acf22d27a', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, index.h("slot", { key: 'b5d23f0194a61be45bc488480e0c9047ac07f367' })));
4881
+ return (index.h("div", { key: '8a3e7a801e430511db3aa455d99b262edf803718', id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, index.h("slot", { key: 'c603b8c3ad64179e39a99f25ba5a8bff43923c2c' })));
4882
4882
  }
4883
4883
  static get watchers() { return {
4884
4884
  "badgeCount": ["badgeObserver"],
@@ -102,12 +102,12 @@ const Q2CarouselPane = class {
102
102
  // #region Render Methods
103
103
  render() {
104
104
  const { label } = this;
105
- return (index.h(index.Host, { key: 'd71b36dcf424483f8d72024513a2ef41af68cfbe', class: this.generatePaneClass(this.currentPaneIndex), tabIndex: this.isActivePane ? 0 : -1, role: "group", "aria-roledescription": "slide", "aria-hidden": this.isActivePane ? undefined : 'true', "aria-label": label
105
+ return (index.h(index.Host, { key: '239d0f41d084152697a3e8e06edf3fa468e23b87', class: this.generatePaneClass(this.currentPaneIndex), tabIndex: this.isActivePane ? 0 : -1, role: "group", "aria-roledescription": "slide", "aria-hidden": this.isActivePane ? undefined : 'true', "aria-label": label
106
106
  ? index$1.loc(label)
107
107
  : index$1.loc('tecton.element.carousel.itemDescription', [
108
108
  (this.currentPaneIndex + 1).toString(),
109
109
  (this.siblingCount || 0).toString(),
110
- ]), onClick: this.paneClicked }, index.h("article", { key: 'fb6543bd551d8d4ece1df1f8dd77940465bdc03a', class: "q2-carousel-pane-main-content" }, index.h("slot", { key: 'b0abb74467220e13dcca406cdf3beffeef0cdf5b' }))));
110
+ ]), onClick: this.paneClicked }, index.h("article", { key: '0c39569fc1a50f72186a3578c2d43efb80b15d9e', class: "q2-carousel-pane-main-content" }, index.h("slot", { key: 'd0a86e4f641c97723a42541fa3053d243a81d5c3' }))));
111
111
  }
112
112
  get hostElement() { return index.getElement(this); }
113
113
  static get watchers() { return {
@@ -4208,7 +4208,7 @@ const Q2ChartArea = class {
4208
4208
  // #endregion
4209
4209
  // #region Render Methods
4210
4210
  render() {
4211
- return (index.h("div", { key: '4f547daaeaf622ac320a7760e93b7cd34f6c77d9', class: "container" }, index.h("div", { key: '7aaae35934415b5bc06a1d57253c0683c9cc448b', ref: el => (this.chartContainer = el), class: "chart-container", role: "img", "test-id": "areaChartContainer" })));
4211
+ return (index.h("div", { key: 'def52250043e30ff84063a2fb709f968bf73edd2', class: "container" }, index.h("div", { key: 'fb4ed567e0cd828a56ae38f727b09b658a890623', ref: el => (this.chartContainer = el), class: "chart-container", role: "img", "test-id": "areaChartContainer" })));
4212
4212
  }
4213
4213
  get hostElement() { return index.getElement(this); }
4214
4214
  static get watchers() { return {
@@ -1414,7 +1414,7 @@ const Q2ChartBar = class {
1414
1414
  // #endregion
1415
1415
  // #region Render Methods
1416
1416
  render() {
1417
- return (index.h("div", { key: 'b40ff8d49858ebfc55afb86a2a385bbe3c3e6851', class: "container" }, index.h("div", { key: 'dffb3ce8dd7e638842d58d59ef09c34f9904af56', ref: el => (this.chartContainer = el), class: "chart-container", role: "img", "test-id": "barChartContainer" })));
1417
+ return (index.h("div", { key: '647bffbfd416069ed926ec138ef55b9ec2ff15f2', class: "container" }, index.h("div", { key: '2acf75f9b41d7142eae7da295fe900b88af7f9c1', ref: el => (this.chartContainer = el), class: "chart-container", role: "img", "test-id": "barChartContainer" })));
1418
1418
  }
1419
1419
  get hostElement() { return index.getElement(this); }
1420
1420
  static get watchers() { return {
@@ -4511,7 +4511,7 @@ const Q2ChartDonut = class {
4511
4511
  } })), !!name && index.h("div", { class: "name" }, name), !isNaN(value) && index.h("div", { class: "value" }, displayValue))));
4512
4512
  }
4513
4513
  render() {
4514
- return (index.h("click-elsewhere", { key: '061f0df2cfc531af2df0d583f7cea0a2e7d68c7d', onChange: this.onClickElsewhere }, index.h("figure", { key: '324163777739ef74d986c94fda412a91f0f34124' }, index.h("div", { key: 'a866867bfd653239d8f7c0a630f2b222c353bdb1', class: "container" }, index.h("div", { key: 'fcb2076e8b390ef19ab28f03d25e66bb48c7bdd9', ref: el => (this.chartContainer = el), "aria-describedby": !this.isClickable ? 'center-card-description' : undefined, class: "chart-container", role: "img", "test-id": "chartContainer", onClick: this.onContainerClick, tabIndex: !this.isClickable ? 0 : undefined, onKeyDown: !this.isClickable ? this.onButtonKeyDown : undefined }), this.renderCenterBlock()), this.showLegend && (index.h("figcaption", { key: '2115b858f955bb6751a8d7d4476d4addc76e8f50' }, index.h("q2-legend", { key: '2a20e076a5bb3ac2b3430f1cefe38d9cdf594ccb', class: "legend", data: this.legendData, format: this.format, hoveredItemId: this.legendHoveredId, onClick: this.onLegendClick, onMouseleave: this.onLegendMouseleave, onMouseenter: this.onLegendMouseenter, selectedItemId: this.selectedId }))))));
4514
+ return (index.h("click-elsewhere", { key: 'b29ca18598a09472f568338d98f3075e530daf74', onChange: this.onClickElsewhere }, index.h("figure", { key: '7e576d6d0b2f3d8446cd90f664ca2a07537cc3d2' }, index.h("div", { key: 'b008ec034395cd27a4a80a339afffc1c41ceb1c6', class: "container" }, index.h("div", { key: '31ce13ef5327426627937e69a4503df3e6a29b3d', ref: el => (this.chartContainer = el), "aria-describedby": !this.isClickable ? 'center-card-description' : undefined, class: "chart-container", role: "img", "test-id": "chartContainer", onClick: this.onContainerClick, tabIndex: !this.isClickable ? 0 : undefined, onKeyDown: !this.isClickable ? this.onButtonKeyDown : undefined }), this.renderCenterBlock()), this.showLegend && (index.h("figcaption", { key: 'e3148f952eba1acc3f91c8b241f8e3906db890cf' }, index.h("q2-legend", { key: '55a66d778e325cb2af906de88af5088a16b9b3a8', class: "legend", data: this.legendData, format: this.format, hoveredItemId: this.legendHoveredId, onClick: this.onLegendClick, onMouseleave: this.onLegendMouseleave, onMouseenter: this.onLegendMouseenter, selectedItemId: this.selectedId }))))));
4515
4515
  }
4516
4516
  get hostElement() { return index.getElement(this); }
4517
4517
  static get watchers() { return {
@@ -125,7 +125,7 @@ const Q2Currency = class {
125
125
  // #region Render Methods
126
126
  render() {
127
127
  const { hasPlusMinusSign, plusMinusSign, currencyIsFront, currencySymbol, shouldSuperscriptSymbol, amountCore, fraction, shouldSuperscriptFraction, readableCurrency, currencyClasses, } = this;
128
- return (index.h("div", { key: 'a2427d807ba868ebff71438f4422e075205da869', "test-id": "q2CurrencyInner", class: currencyClasses, "aria-label": readableCurrency }, hasPlusMinusSign && index.h("span", { key: '594c8cd84fd3226b2d8170ee9a05532f57bb0d6f' }, plusMinusSign), currencyIsFront && index.h("span", { key: 'f726da3911833f35f0fe5c5b68d9d341acf5af27', class: shouldSuperscriptSymbol ? 'superscript' : '' }, currencySymbol), index.h("span", { key: '08644b7c1397237676dc00a81552ba7badefa38e' }, amountCore), index.h("span", { key: 'cab6f51a4af6067122f3c2994d79f0d9fb828c14', class: shouldSuperscriptFraction ? 'superscript' : '' }, fraction), !currencyIsFront && index.h("span", { key: '1f1265a8bf437499d0d613f47b7c2f357e22165c', class: shouldSuperscriptSymbol ? 'superscript' : '' }, currencySymbol)));
128
+ return (index.h("div", { key: 'f1274f5d1555f1713d2993bacb8521c71a03977f', "test-id": "q2CurrencyInner", class: currencyClasses, "aria-label": readableCurrency }, hasPlusMinusSign && index.h("span", { key: 'be619265417e9264b453a0523c074a30a954fa29' }, plusMinusSign), currencyIsFront && index.h("span", { key: '1309c643fffaa531a0199898b34ac290c9118d49', class: shouldSuperscriptSymbol ? 'superscript' : '' }, currencySymbol), index.h("span", { key: '65ad17baf3c76891f22acd35c4de3c3b7d70d82a' }, amountCore), index.h("span", { key: '2122a260b4a10c4e070a9e7dd7918409cb3564cd', class: shouldSuperscriptFraction ? 'superscript' : '' }, fraction), !currencyIsFront && index.h("span", { key: '62c45c5ccba750bf9b382e45b8aa836469e755ce', class: shouldSuperscriptSymbol ? 'superscript' : '' }, currencySymbol)));
129
129
  }
130
130
  get hostElement() { return index.getElement(this); }
131
131
  static get watchers() { return {
@@ -107,7 +107,7 @@ const Q2Detail = class {
107
107
  // #endregion
108
108
  // #region Render Methods
109
109
  render() {
110
- return (index.h("div", { key: '279671eea96d480283a80f3de70e8a3057e153a0', class: this.detailClasses }, this.hasLabel && (index.h("div", { key: '561d1ede1db345e2a7979947e463ba45db33559e', class: this.labelClasses, "aria-describedby": !!this.description ? 'label-description' : undefined }, !!this.label ? index$1.loc(this.label) : this.hasLabelSlotContent ? index.h("slot", { name: "label" }) : '')), this.hasDescripiton && (index.h("div", { key: 'e8f20b79064d73157058cee3d73496bbd346531f', id: "label-description", class: this.descriptionClasses }, !!this.description ? index$1.loc(this.description) : this.hasDefaultSlotContent ? index.h("slot", null) : ''))));
110
+ return (index.h("div", { key: '811c54a224bbbefce94cbf397a29a4cb1f98ba2b', class: this.detailClasses }, this.hasLabel && (index.h("div", { key: 'b2c294eb4c1b5cd525351dc67c2dc58ed4b75b70', class: this.labelClasses, "aria-describedby": !!this.description ? 'label-description' : undefined }, !!this.label ? index$1.loc(this.label) : this.hasLabelSlotContent ? index.h("slot", { name: "label" }) : '')), this.hasDescripiton && (index.h("div", { key: '9d979c672eeefd21882fa676483cd8020e15dc7c', id: "label-description", class: this.descriptionClasses }, !!this.description ? index$1.loc(this.description) : this.hasDefaultSlotContent ? index.h("slot", null) : ''))));
111
111
  }
112
112
  get hostElement() { return index.getElement(this); }
113
113
  };
@@ -14,9 +14,19 @@ const Q2Dropdown = class {
14
14
  index.registerInstance(this, hostRef);
15
15
  var _a;
16
16
  this.dropdownItemSelector = 'q2-dropdown-item:not([disabled]):not([separator])';
17
+ this.optionSelector = 'q2-option:not([disabled]):not([separator])';
17
18
  this.focusToggle = () => {
18
19
  this.controlElement.focus();
19
20
  };
21
+ this.handleFocusOut = (event) => {
22
+ var _a;
23
+ const relatedTarget = event.relatedTarget;
24
+ if ((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget))
25
+ return;
26
+ if (this.hostElement.contains(relatedTarget))
27
+ return;
28
+ this.open = false;
29
+ };
20
30
  this.onClickElsewhere = (event) => {
21
31
  const target = event.target;
22
32
  if (target.localName === 'q2-option-list') {
@@ -30,6 +40,11 @@ const Q2Dropdown = class {
30
40
  popoverElement.open = false;
31
41
  }
32
42
  };
43
+ this.onPopoverState = (event) => {
44
+ if (event.detail.open)
45
+ return;
46
+ this.controlElement.focus();
47
+ };
33
48
  this.onToggleClick = async (event) => {
34
49
  event.stopPropagation();
35
50
  if (actionSheet.shouldShowActionSheet(this)) {
@@ -51,20 +66,6 @@ const Q2Dropdown = class {
51
66
  this.optionList.handleExternalKeydown(event);
52
67
  }
53
68
  };
54
- this.onPopoverState = (event) => {
55
- if (event.detail.open)
56
- return;
57
- this.controlElement.focus();
58
- };
59
- this.handleFocusOut = (event) => {
60
- var _a;
61
- const relatedTarget = event.relatedTarget;
62
- if ((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget))
63
- return;
64
- if (this.hostElement.contains(relatedTarget))
65
- return;
66
- this.open = false;
67
- };
68
69
  this.additionalContext = undefined;
69
70
  this.alignment = undefined;
70
71
  this.ariaLabel = undefined;
@@ -111,7 +112,9 @@ const Q2Dropdown = class {
111
112
  if (this.open !== open)
112
113
  this.open = open;
113
114
  (_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.scrollContainerTo({ top: 0 });
114
- this.optionList.setActiveElement(null);
115
+ if (!open) {
116
+ this.optionList.setActiveElement(null);
117
+ }
115
118
  }
116
119
  // #endregion
117
120
  // #region Public Methods API
@@ -238,13 +241,13 @@ const Q2Dropdown = class {
238
241
  };
239
242
  }
240
243
  _clickItem(value) {
241
- if (!value)
244
+ var _a;
245
+ if (!value || this.disabled)
242
246
  return;
243
247
  const item = this.hostElement.querySelector(`${this.dropdownItemSelector}[value="${value}"]`);
244
- const itemBtn = item === null || item === void 0 ? void 0 : item.shadowRoot.querySelector('.dropdown-item');
245
- if (!item || this.disabled)
246
- return;
247
- itemBtn.click();
248
+ const option = this.hostElement.querySelector(`${this.optionSelector}[value="${value}"]`);
249
+ (_a = item === null || item === void 0 ? void 0 : item.shadowRoot.querySelector('.dropdown-item')) === null || _a === void 0 ? void 0 : _a.click();
250
+ option === null || option === void 0 ? void 0 : option.click();
248
251
  }
249
252
  async _handleActionSheet(event) {
250
253
  const { value } = await actionSheet.showActionSheetList(this, event);
@@ -322,7 +325,7 @@ const Q2Dropdown = class {
322
325
  // #region Render Methods
323
326
  render() {
324
327
  const btnProps = this.toggleButtonProps;
325
- return (index.h("click-elsewhere", { key: '8d69d7aa921eb47490810b0bbd79eea475d81dd4', class: this.open ? 'dropdown-open' : '', onChange: this.onClickElsewhere, "test-id": "dropdownContainer" }, index.h("q2-btn", { key: '56006f92f9264791041a9c40b83bf518e24ac8e6', ref: el => (this.controlElement = el), class: btnProps.className, onClick: this.onToggleClick, onKeyDown: this.onToggleKeydown, fab: btnProps.fab, intent: btnProps.intent, onFocusout: this.handleFocusOut, active: btnProps.active, disabled: btnProps.disabled, ariaExpanded: `${!!btnProps.ariaExpanded}`, label: this.hideLabel && this.label ? index$1.loc(this.label) : undefined, hideLabel: this.hideLabel, ariaHasPopup: "menu", "test-id": "dropdownButton", block: this.block, description: index$1.loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount]) }, this.hasCustomControl ? (index.h("div", { "test-id": "dropdownControl", class: btnProps.custom ? '' : 'hidden' }, index.h("slot", { name: "control" }))) : (index.h(index.Fragment, null, this.icon ? index.h("q2-icon", { type: this.icon }) : ' ', this.label && !this.hideLabel && (index.h("span", { class: "dropdown-button-text" }, index$1.loc(this.label)))))), index.h("q2-popover", { key: '083bc7ccac20ad02e33497aec0a7ca8bf67da385', ref: el => (this.popoverElement = el), controlElement: this.controlElement, open: this.open, "max-height": this.popoverMaxHeight, onFocusout: this.handleFocusOut, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment, mode: this.popoverMode || undefined, block: this.block }, index.h("q2-option-list", { key: '5857bb4fc0c0519f8dde1b4b6d2df2181511c41d', onPopoverState: this.onPopoverState, id: "option-list", ref: el => (this.optionList = el), type: "menu", label: index$1.loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, index.h("slot", { key: '7b1bbde4dd17cb41ba230f4518b5b345052ed037' })))));
328
+ return (index.h("click-elsewhere", { key: 'e03e38faaa27ea520e902acbb03875e7cdec33c6', class: this.open ? 'dropdown-open' : '', onChange: this.onClickElsewhere, "test-id": "dropdownContainer" }, index.h("q2-btn", { key: 'cb379d4cb55631a5ba148df0716bbc7e19575c70', ref: el => (this.controlElement = el), class: btnProps.className, onClick: this.onToggleClick, onKeyDown: this.onToggleKeydown, fab: btnProps.fab, intent: btnProps.intent, onFocusout: this.handleFocusOut, active: btnProps.active, disabled: btnProps.disabled, ariaExpanded: `${!!btnProps.ariaExpanded}`, label: this.hideLabel && this.label ? index$1.loc(this.label) : undefined, hideLabel: this.hideLabel, ariaHasPopup: "menu", "test-id": "dropdownButton", block: this.block, description: index$1.loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount]) }, this.hasCustomControl ? (index.h("div", { "test-id": "dropdownControl", class: btnProps.custom ? '' : 'hidden' }, index.h("slot", { name: "control" }))) : (index.h(index.Fragment, null, this.icon ? index.h("q2-icon", { type: this.icon }) : ' ', this.label && !this.hideLabel && (index.h("span", { class: "dropdown-button-text" }, index$1.loc(this.label)))))), index.h("q2-popover", { key: 'bfad0484d72855a359bd45aeecf9107ff879e81b', ref: el => (this.popoverElement = el), controlElement: this.controlElement, open: this.open, "max-height": this.popoverMaxHeight, onFocusout: this.handleFocusOut, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.popoverAlignment, mode: this.popoverMode || undefined, block: this.block }, index.h("q2-option-list", { key: '9b6f172128fa8265e92330b2333cbef501e060f1', onPopoverState: this.onPopoverState, id: "option-list", ref: el => (this.optionList = el), type: "menu", label: index$1.loc('tecton.element.optionList.label', [this.optionListLabel]), "no-select": true }, index.h("slot", { key: '6460a769807e87648b6caea209d4f679035eb362' })))));
326
329
  }
327
330
  get hostElement() { return index.getElement(this); }
328
331
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"q2-dropdown.entry.cjs.js","mappings":"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","names":["shouldShowActionSheet","overrideFocus","isEventFromElement","waitForNextPaint","handleRenamedProp","handleAriaLabel","showActionSheetList","h","loc","Fragment"],"sources":["src/components/q2-dropdown/q2-dropdown.scss?tag=q2-dropdown&encapsulation=shadow","src/components/q2-dropdown/q2-dropdown.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\n:host([block]) {\n display: block;\n}\n\nq2-icon {\n pointer-events: none;\n margin-block: -100px;\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n\nq2-popover {\n --tct-popover-min-width: #{var-list(var-prefixer(dropdown-width))};\n}\n","import { shouldShowActionSheet, showActionSheetList } from '@/utils/action-sheet';\nimport { Component, ComponentInterface, Prop, Method, Element, Watch, h, Fragment, Listen } from '@stencil/core';\nimport {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n@Component({ tag: 'q2-dropdown', shadow: true, styleUrl: 'q2-dropdown.scss' })\nexport class Q2Dropdown implements ComponentInterface {\n // #region Own Properties\n\n controlElement?: HTMLQ2BtnElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n popoverElement?: HTMLQ2PopoverElement;\n optionList: HTMLQ2OptionListElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n additionalContext: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /**\n * Tells the outlet what the type of object being passed in as contextValue.\n * This will allow for the hierarchy resolution logic to work to determine if an option should or should not be shown.\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n context: string;\n\n /**\n * Passes important information to the outlet (e.g., pass an account id that your platform can use to look up what module to show for that account type).\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n contextValue: string;\n\n /** Indicates the menu cannot be focused or interacted with. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Hide's the field's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Instructs the component to use the action sheet workflow for displaying its options.\n *\n * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).\n */\n @Prop()\n hoist: boolean = !!window.Tecton?.useActionSheets;\n\n /** The icon that will render within the toggle button. You may use any of the `q2-icon` types. */\n @Prop({ reflect: true })\n icon: string;\n\n /**\n * The text that appears within the button.\n * @warning\n * This property should not be used if the `type` is `icon`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Identifies this menu as an outlet. Used in conjunction with context and, optionally, `contextValue`.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n name: string;\n\n /**\n * Determine whether the popover is open or closed.\n *\n * @readonly\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n optionListLabel: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n popDirection: 'up' | 'down';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true })\n popoverDirection: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number;\n\n /**\n * Determines the display mode of the popover.\n *\n * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.\n *\n * @info\n * This is a temporary solution to work around styling issues related to using fixed positioning for the popover\n * when nested inside of elements with transform properties. This will be removed once the popover API is available\n * for use.\n */\n @Prop({ mutable: true })\n popoverMode: 'legacy' = null;\n\n /**\n * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n resolvedType: string;\n\n /** The type of button used as the menu toggle.\n * @info\n * Type must be \"custom\" to use the custom button slot.\n */\n @Prop({ reflect: true })\n type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.popDirectionHandler();\n this.alignmentHandler();\n this.ariaLabelHandler();\n }\n\n componentDidLoad() {\n this.orchestrateResolvedMenuItems();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.focusToggle();\n }\n\n @Listen('popoverStateChanged')\n popoverStateChangeHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n this.optionList.setActiveElement(null);\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the dropdown `<button>` to hide the popover if it is showing.\n * @testOnly\n */\n @Method()\n async closePopover() {\n if (!this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the dropdown `<button>` to show the popover if it is hidden.\n * @testOnly\n */\n @Method()\n async openPopover() {\n if (this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/).\n *\n * If the dropdown is closed, this will open it before selecting the item.\n *\n * If the value does not match any item's value, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const itemBtn = item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item');\n if (!item || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n itemBtn.click();\n await waitForNextPaint();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/)'s *remove* button.\n *\n * If the dropdown is closed, this will open it before selecting the remove item button.\n *\n * Requirements for this method to work properly:\n * - Provided `value` matches the item's `value` property\n * - Item has the `removable` property enabled\n * @testOnly\n */\n @Method()\n async selectRemoveItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const removeButton = item?.shadowRoot.querySelector<HTMLButtonElement>('.remove-dropdown-item');\n if (!item || !removeButton || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n removeButton.click();\n await waitForNextPaint();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('alignment')\n alignmentHandler() {\n handleRenamedProp(this, 'alignment', 'popoverAlignment');\n }\n\n @Watch('ariaLabel')\n ariaLabelHandler() {\n handleAriaLabel(this);\n }\n\n @Watch('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n // #endregion\n // #region Local Methods\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get hasCustomControl() {\n return !!this.hostElement.querySelector('[slot=control]');\n }\n\n get toggleButtonProps() {\n const allowedIntents = ['primary', 'secondary', 'neutral'];\n const allowedTypes = ['icon', 'fab', 'custom', ...allowedIntents];\n const type = allowedTypes.includes(this.type) ? this.type : '';\n const icon = type === 'icon';\n const fab = type === 'fab';\n const custom = type === 'custom';\n let intent;\n if (allowedIntents.includes(type)) {\n intent = type === 'neutral' ? type : `workflow-${type}`;\n }\n const active = this.open;\n const disabled = !!this.disabled;\n const ariaExpanded = this.open;\n const className = !icon && !fab && !intent ? 'unstyled' : '';\n\n return {\n icon,\n fab,\n intent,\n active,\n disabled,\n ariaExpanded,\n className,\n custom,\n };\n }\n\n _clickItem(value: string) {\n if (!value) return;\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const itemBtn = item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item');\n if (!item || this.disabled) return;\n itemBtn.click();\n }\n\n async _handleActionSheet(event: MouseEvent | KeyboardEvent) {\n const { value } = await showActionSheetList(this, event);\n this._clickItem(value);\n this.controlElement.focus();\n }\n\n _togglePopover() {\n const { controlElement } = this;\n if (!controlElement) return;\n controlElement.click();\n controlElement.focus();\n controlElement.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusToggle = () => {\n this.controlElement.focus();\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLElement;\n if (target.localName === 'q2-option-list') {\n event.stopPropagation();\n }\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onToggleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n if (shouldShowActionSheet(this)) {\n this._handleActionSheet(event);\n } else {\n await this.popoverElement.toggle();\n }\n };\n\n onToggleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (isTabMetaOrCtrl) return;\n\n event.preventDefault();\n if (shouldShowActionSheet(this, event)) {\n this._handleActionSheet(event);\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n onPopoverState = (event: CustomEvent<{ open: boolean; action: string }>) => {\n if (event.detail.open) return;\n this.controlElement.focus();\n };\n\n handleFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as unknown as HTMLElement;\n if (this.popoverElement?.contains(relatedTarget)) return;\n if (this.hostElement.contains(relatedTarget)) return;\n this.open = false;\n };\n\n orchestrateResolvedMenuItems() {\n if (!this.name || !this.context) {\n // this is only for contextual menu outlets\n this.removeResolvedElements();\n return;\n }\n\n this.resolveMenuItemElements()\n .then(data => {\n this.removeResolvedElements();\n data.forEach(element => {\n this.hostElement.appendChild(element);\n });\n })\n .catch(err => {\n this.removeResolvedElements();\n throw err;\n });\n }\n\n removeResolvedElements() {\n const resolvedElements = this.hostElement.querySelectorAll('q2-dropdown-item.resolved-menu-item');\n resolvedElements.forEach(element => this.hostElement.removeChild(element));\n }\n\n resolveMenu() {\n return (\n this.name &&\n window.TectonElements &&\n window.TectonElements.resolveMenu(this.name, this.contextValue, this.resolvedType, this.additionalContext)\n );\n }\n\n resolveMenuItemElements() {\n return this.resolveMenu().then(datas => {\n return datas.map(menuItemData => {\n let onClickFn;\n let queryParams;\n if (menuItemData['tct-ctxid']) {\n queryParams = {};\n queryParams[menuItemData.contextIdParamName] = menuItemData['tct-ctxid'];\n }\n\n switch (menuItemData.action) {\n case 'navigateTo':\n onClickFn = function () {\n return window.TectonElements?.navigateTo?.(\n menuItemData.featureName,\n menuItemData.moduleName,\n queryParams\n );\n };\n break;\n case 'showOverpanel':\n onClickFn = function () {\n return window.TectonElements?.showOverpanel?.(\n `${menuItemData.featureName}.${menuItemData.moduleName}`,\n queryParams,\n undefined,\n true\n );\n };\n break;\n }\n\n const newDropdownItem = document.createElement('q2-dropdown-item');\n newDropdownItem.setAttribute('value', menuItemData.itemLabel);\n newDropdownItem.classList.add('resolved-menu-item');\n newDropdownItem.textContent = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const btnProps = this.toggleButtonProps;\n\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : ''}\n onChange={this.onClickElsewhere}\n test-id=\"dropdownContainer\"\n >\n <q2-btn\n ref={el => (this.controlElement = el)}\n class={btnProps.className}\n onClick={this.onToggleClick}\n onKeyDown={this.onToggleKeydown}\n fab={btnProps.fab}\n intent={btnProps.intent}\n onFocusout={this.handleFocusOut}\n active={btnProps.active}\n disabled={btnProps.disabled}\n ariaExpanded={`${!!btnProps.ariaExpanded}`}\n label={this.hideLabel && this.label ? loc(this.label) : undefined}\n hideLabel={this.hideLabel}\n ariaHasPopup=\"menu\"\n test-id=\"dropdownButton\"\n block={this.block}\n description={loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount])}\n >\n {this.hasCustomControl ? (\n <div\n test-id=\"dropdownControl\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"control\" />\n </div>\n ) : (\n <Fragment>\n {this.icon ? <q2-icon type={this.icon} /> : ' '}\n {this.label && !this.hideLabel && (\n <span class=\"dropdown-button-text\">{loc(this.label)}</span>\n )}\n </Fragment>\n )}\n </q2-btn>\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.controlElement}\n open={this.open}\n max-height={this.popoverMaxHeight}\n onFocusout={this.handleFocusOut}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n mode={this.popoverMode || undefined}\n block={this.block}\n >\n <q2-option-list\n onPopoverState={this.onPopoverState}\n id=\"option-list\"\n ref={el => (this.optionList = el)}\n type=\"menu\"\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n no-select\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"version":3}
1
+ {"file":"q2-dropdown.entry.cjs.js","mappings":"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","names":["shouldShowActionSheet","overrideFocus","isEventFromElement","waitForNextPaint","handleRenamedProp","handleAriaLabel","showActionSheetList","h","loc","Fragment"],"sources":["src/components/q2-dropdown/q2-dropdown.scss?tag=q2-dropdown&encapsulation=shadow","src/components/q2-dropdown/q2-dropdown.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\n:host([block]) {\n display: block;\n}\n\nq2-icon {\n pointer-events: none;\n margin-block: -100px;\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n\nq2-popover {\n --tct-popover-min-width: #{var-list(var-prefixer(dropdown-width))};\n}\n","import { shouldShowActionSheet, showActionSheetList } from '@/utils/action-sheet';\nimport { Component, ComponentInterface, Prop, Method, Element, Watch, h, Fragment, Listen } from '@stencil/core';\nimport {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n/** @slot control - An optional slot to provide custom content as the clickable interface. The Dropdown **must** have `type=\"custom\"` to use the control slot. */\n@Component({ tag: 'q2-dropdown', shadow: true, styleUrl: 'q2-dropdown.scss' })\nexport class Q2Dropdown implements ComponentInterface {\n // #region Own Properties\n\n controlElement?: HTMLQ2BtnElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n optionSelector: string = 'q2-option:not([disabled]):not([separator])';\n optionList: HTMLQ2OptionListElement;\n popoverElement?: HTMLQ2PopoverElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n additionalContext: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /**\n * Tells the outlet what the type of object being passed in as contextValue.\n * This will allow for the hierarchy resolution logic to work to determine if an option should or should not be shown.\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n context: string;\n\n /**\n * Passes important information to the outlet (e.g., pass an account id that your platform can use to look up what module to show for that account type).\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n contextValue: string;\n\n /** Indicates the menu cannot be focused or interacted with. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Hide's the field's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /**\n * Instructs the component to use the action sheet workflow for displaying its options.\n *\n * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).\n */\n @Prop()\n hoist: boolean = !!window.Tecton?.useActionSheets;\n\n /** The icon that will render within the toggle button. You may use any of the `q2-icon` types. */\n @Prop({ reflect: true })\n icon: string;\n\n /**\n * The text that appears within the button.\n * @warning\n * This property should not be used if the `type` is `icon`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Identifies this menu as an outlet. Used in conjunction with context and, optionally, `contextValue`.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n name: string;\n\n /**\n * Determine whether the popover is open or closed.\n *\n * @readonly\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** Determines the label that is applied to the option list for accessibility purposes. */\n @Prop()\n optionListLabel: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n popDirection: 'up' | 'down';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true })\n popoverDirection: 'up' | 'down';\n\n /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n popoverMaxHeight: number;\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number;\n\n /**\n * Determines the display mode of the popover.\n *\n * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.\n *\n * @info\n * This is a temporary solution to work around styling issues related to using fixed positioning for the popover\n * when nested inside of elements with transform properties. This will be removed once the popover API is available\n * for use.\n */\n @Prop({ mutable: true })\n popoverMode: 'legacy' = null;\n\n /**\n * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n resolvedType: string;\n\n /** The type of button used as the menu toggle.\n * @info\n * Type must be \"custom\" to use the custom button slot.\n */\n @Prop({ reflect: true })\n type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n\n // #endregion\n // #region Component Lifecycle Events\n\n componentWillLoad() {\n this.popDirectionHandler();\n this.alignmentHandler();\n this.ariaLabelHandler();\n }\n\n componentDidLoad() {\n this.orchestrateResolvedMenuItems();\n overrideFocus(this.hostElement);\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.focusToggle();\n }\n\n @Listen('popoverStateChanged')\n popoverStateChangeHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n if (!open) {\n this.optionList.setActiveElement(null);\n }\n }\n\n // #endregion\n // #region Public Methods API\n\n /**\n * Emulates clicking the dropdown `<button>` to hide the popover if it is showing.\n * @testOnly\n */\n @Method()\n async closePopover() {\n if (!this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates clicking the dropdown `<button>` to show the popover if it is hidden.\n * @testOnly\n */\n @Method()\n async openPopover() {\n if (this.open || this.disabled) return;\n this._togglePopover();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/).\n *\n * If the dropdown is closed, this will open it before selecting the item.\n *\n * If the value does not match any item's value, this method does nothing.\n * @testOnly\n */\n @Method()\n async selectItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const itemBtn = item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item');\n if (!item || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n itemBtn.click();\n await waitForNextPaint();\n }\n\n /**\n * Emulates opening the dropdown and selecting a [Dropdown Item](https://tecton.q2developer.com/design-system/q2-dropdown-item/)'s *remove* button.\n *\n * If the dropdown is closed, this will open it before selecting the remove item button.\n *\n * Requirements for this method to work properly:\n * - Provided `value` matches the item's `value` property\n * - Item has the `removable` property enabled\n * @testOnly\n */\n @Method()\n async selectRemoveItem(value: string) {\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const removeButton = item?.shadowRoot.querySelector<HTMLButtonElement>('.remove-dropdown-item');\n if (!item || !removeButton || this.disabled) return;\n if (!this.open) {\n this.controlElement?.click();\n await waitForNextPaint();\n }\n removeButton.click();\n await waitForNextPaint();\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('alignment')\n alignmentHandler() {\n handleRenamedProp(this, 'alignment', 'popoverAlignment');\n }\n\n @Watch('ariaLabel')\n ariaLabelHandler() {\n handleAriaLabel(this);\n }\n\n @Watch('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n // #endregion\n // #region Local Methods\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get hasCustomControl() {\n return !!this.hostElement.querySelector('[slot=control]');\n }\n\n get toggleButtonProps() {\n const allowedIntents = ['primary', 'secondary', 'neutral'];\n const allowedTypes = ['icon', 'fab', 'custom', ...allowedIntents];\n const type = allowedTypes.includes(this.type) ? this.type : '';\n const icon = type === 'icon';\n const fab = type === 'fab';\n const custom = type === 'custom';\n let intent;\n if (allowedIntents.includes(type)) {\n intent = type === 'neutral' ? type : `workflow-${type}`;\n }\n const active = this.open;\n const disabled = !!this.disabled;\n const ariaExpanded = this.open;\n const className = !icon && !fab && !intent ? 'unstyled' : '';\n\n return {\n icon,\n fab,\n intent,\n active,\n disabled,\n ariaExpanded,\n className,\n custom,\n };\n }\n\n _clickItem(value: string) {\n if (!value || this.disabled) return;\n const item = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}[value=\"${value}\"]`\n );\n const option = this.hostElement.querySelector<HTMLQ2OptionElement>(`${this.optionSelector}[value=\"${value}\"]`);\n item?.shadowRoot.querySelector<HTMLButtonElement>('.dropdown-item')?.click();\n option?.click();\n }\n\n async _handleActionSheet(event: MouseEvent | KeyboardEvent) {\n const { value } = await showActionSheetList(this, event);\n this._clickItem(value);\n this.controlElement.focus();\n }\n\n _togglePopover() {\n const { controlElement } = this;\n if (!controlElement) return;\n controlElement.click();\n controlElement.focus();\n controlElement.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusToggle = () => {\n this.controlElement.focus();\n };\n\n handleFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as unknown as HTMLElement;\n if (this.popoverElement?.contains(relatedTarget)) return;\n if (this.hostElement.contains(relatedTarget)) return;\n this.open = false;\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLElement;\n if (target.localName === 'q2-option-list') {\n event.stopPropagation();\n }\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onPopoverState = (event: CustomEvent<{ open: boolean; action: string }>) => {\n if (event.detail.open) return;\n this.controlElement.focus();\n };\n\n onToggleClick = async (event: MouseEvent) => {\n event.stopPropagation();\n if (shouldShowActionSheet(this)) {\n this._handleActionSheet(event);\n } else {\n await this.popoverElement.toggle();\n }\n };\n\n onToggleKeydown = async (event: KeyboardEvent) => {\n const isTabMetaOrCtrl = event.metaKey || event.ctrlKey || event.key === 'Tab';\n if (isTabMetaOrCtrl) return;\n\n event.preventDefault();\n if (shouldShowActionSheet(this, event)) {\n this._handleActionSheet(event);\n } else {\n this.optionList.handleExternalKeydown(event);\n }\n };\n\n orchestrateResolvedMenuItems() {\n if (!this.name || !this.context) {\n // this is only for contextual menu outlets\n this.removeResolvedElements();\n return;\n }\n\n this.resolveMenuItemElements()\n .then(data => {\n this.removeResolvedElements();\n data.forEach(element => {\n this.hostElement.appendChild(element);\n });\n })\n .catch(err => {\n this.removeResolvedElements();\n throw err;\n });\n }\n\n removeResolvedElements() {\n const resolvedElements = this.hostElement.querySelectorAll('q2-dropdown-item.resolved-menu-item');\n resolvedElements.forEach(element => this.hostElement.removeChild(element));\n }\n\n resolveMenu() {\n return (\n this.name &&\n window.TectonElements &&\n window.TectonElements.resolveMenu(this.name, this.contextValue, this.resolvedType, this.additionalContext)\n );\n }\n\n resolveMenuItemElements() {\n return this.resolveMenu().then(datas => {\n return datas.map(menuItemData => {\n let onClickFn;\n let queryParams;\n if (menuItemData['tct-ctxid']) {\n queryParams = {};\n queryParams[menuItemData.contextIdParamName] = menuItemData['tct-ctxid'];\n }\n\n switch (menuItemData.action) {\n case 'navigateTo':\n onClickFn = function () {\n return window.TectonElements?.navigateTo?.(\n menuItemData.featureName,\n menuItemData.moduleName,\n queryParams\n );\n };\n break;\n case 'showOverpanel':\n onClickFn = function () {\n return window.TectonElements?.showOverpanel?.(\n `${menuItemData.featureName}.${menuItemData.moduleName}`,\n queryParams,\n undefined,\n true\n );\n };\n break;\n }\n\n const newDropdownItem = document.createElement('q2-dropdown-item');\n newDropdownItem.setAttribute('value', menuItemData.itemLabel);\n newDropdownItem.classList.add('resolved-menu-item');\n newDropdownItem.textContent = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n // #endregion\n // #region Render Methods\n\n render() {\n const btnProps = this.toggleButtonProps;\n\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : ''}\n onChange={this.onClickElsewhere}\n test-id=\"dropdownContainer\"\n >\n <q2-btn\n ref={el => (this.controlElement = el)}\n class={btnProps.className}\n onClick={this.onToggleClick}\n onKeyDown={this.onToggleKeydown}\n fab={btnProps.fab}\n intent={btnProps.intent}\n onFocusout={this.handleFocusOut}\n active={btnProps.active}\n disabled={btnProps.disabled}\n ariaExpanded={`${!!btnProps.ariaExpanded}`}\n label={this.hideLabel && this.label ? loc(this.label) : undefined}\n hideLabel={this.hideLabel}\n ariaHasPopup=\"menu\"\n test-id=\"dropdownButton\"\n block={this.block}\n description={loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount])}\n >\n {this.hasCustomControl ? (\n <div\n test-id=\"dropdownControl\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"control\" />\n </div>\n ) : (\n <Fragment>\n {this.icon ? <q2-icon type={this.icon} /> : ' '}\n {this.label && !this.hideLabel && (\n <span class=\"dropdown-button-text\">{loc(this.label)}</span>\n )}\n </Fragment>\n )}\n </q2-btn>\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.controlElement}\n open={this.open}\n max-height={this.popoverMaxHeight}\n onFocusout={this.handleFocusOut}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n mode={this.popoverMode || undefined}\n block={this.block}\n >\n <q2-option-list\n onPopoverState={this.onPopoverState}\n id=\"option-list\"\n ref={el => (this.optionList = el)}\n type=\"menu\"\n label={loc('tecton.element.optionList.label', [this.optionListLabel])}\n no-select\n >\n <slot />\n </q2-option-list>\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"version":3}
@@ -130,7 +130,7 @@ const Q2Example = class {
130
130
  }, onClick: () => this.tctClick.emit(), role: "menu" }, index.h("slot", null))));
131
131
  }
132
132
  render() {
133
- return index.h(index.Host, { key: 'e4df51465f7c14e0ff4ae2463613e73cc6100318', attribute: "navigation" }, this.renderMenuInner());
133
+ return index.h(index.Host, { key: '2a8810e8b8152257cb5f710570a7b60708f76bde', attribute: "navigation" }, this.renderMenuInner());
134
134
  }
135
135
  get el() { return index.getElement(this); }
136
136
  static get watchers() { return {
@@ -55,7 +55,7 @@ const Q2FormattedText = class {
55
55
  // #region Render Methods
56
56
  render() {
57
57
  const { formattedTextClasses } = this;
58
- return (index.h("div", { key: '1957c3f976bc87c24859d94c27e1baf35da8fc03', class: formattedTextClasses, "aria-label": this.formattedValue }, index.h("span", { key: '8dac0d558d205fc183d16c4aef922ab470eec6ab' }, this.formattedValue)));
58
+ return (index.h("div", { key: '0deb2247f66e39d44ab56bc889520cd67caf20dc', class: formattedTextClasses, "aria-label": this.formattedValue }, index.h("span", { key: '7b8bba7f894f439d4628329082dd41a3629b3f79' }, this.formattedValue)));
59
59
  }
60
60
  static get watchers() { return {
61
61
  "value": ["propsUpdated"],
@@ -109,7 +109,7 @@ const Q2Item = class {
109
109
  // #region Render Methods
110
110
  render() {
111
111
  const { clickable } = this;
112
- return (index.h("div", { key: '0829fd5b35d9479ab8a7dae744e8a09e90a1a128', "test-id": "itemContainer", class: this.itemClasses, ref: el => (this.itemElement = el), role: clickable ? 'button' : undefined, tabIndex: clickable ? 0 : undefined }, this.hasBulletSlotContent && (index.h("div", { key: '6fba2ecbbe6fe30121f15cda9cc5026a5c5468c2', class: this.bulletClasses }, index.h("slot", { key: '9bd9880d99124c1102725b5ce6ca49ac1e229cf9', name: "bullet" }))), index.h("div", { key: '0c184236511ba043c91a009c93680858e34de545', class: this.mainClasses }, this.hasHeaderSlotContent && (index.h("div", { key: '2570b5fd60955dbbc97f5f3d941a5d653785fb0e', class: "header" }, index.h("slot", { key: 'a438cafe8aeded03ee814f736ae897852a9f1415', name: "header" }))), this.hasBodySlotContent && (index.h("div", { key: '270585a7a4ca111aedd4baeab101c353814aa72c', class: "body" }, index.h("slot", { key: 'cc95afec425e06c0a9edccedb0420207ccab88a0', name: "body" })))), this.hasActionSlotContent && (index.h("div", { key: 'c6a32baa731bd79c57a625d615058442a5bc764a', class: this.actionClasses }, index.h("slot", { key: '2b3104f1e0b4eed5e605c5784468f608240a881b', name: "action" }))), this.hasFooterSlotContent && (index.h("div", { key: '0a989b6ec5ca51e55fb44d0e90f57fe792a6bf35', class: this.footerClasses }, index.h("slot", { key: '76ae62c0b433f78b187853da2cf40394f7ca315e', name: "footer" })))));
112
+ return (index.h("div", { key: '2511d34e01575fe19d4a9becdce7a44ccc8736e7', "test-id": "itemContainer", class: this.itemClasses, ref: el => (this.itemElement = el), role: clickable ? 'button' : undefined, tabIndex: clickable ? 0 : undefined }, this.hasBulletSlotContent && (index.h("div", { key: '47595ae0c96465a0524c4b08f7c77997fa5ad012', class: this.bulletClasses }, index.h("slot", { key: '0e446493744bdc304336f20e5bab89864b430cec', name: "bullet" }))), index.h("div", { key: '061814832dc71b7bbe239cddb2e474f7ea91558c', class: this.mainClasses }, this.hasHeaderSlotContent && (index.h("div", { key: '9f27b6fa63241088951935cff169385ef23b55e4', class: "header" }, index.h("slot", { key: '9c99e37648c9c4c5a8b981aa16ec8a7b42a1887a', name: "header" }))), this.hasBodySlotContent && (index.h("div", { key: 'e8a788366c10d06fef823b9be88c40fba65d4e71', class: "body" }, index.h("slot", { key: '617965a59d689b0679e920794ebf9a36848f4eab', name: "body" })))), this.hasActionSlotContent && (index.h("div", { key: '38c6a30f60c6a8bc8c953ed4b74a3687a0ba03a1', class: this.actionClasses }, index.h("slot", { key: '76efb6ba1377adcb3fc850d8966ecc49b55896b5', name: "action" }))), this.hasFooterSlotContent && (index.h("div", { key: '9a9bf0234ebac99487797bc93afa6e73097f1e68', class: this.footerClasses }, index.h("slot", { key: '91abd31668cff2657ecf57ce8b9d6f63e8d375ae', name: "footer" })))));
113
113
  }
114
114
  get hostElement() { return index.getElement(this); }
115
115
  };
@@ -238,7 +238,7 @@ const Q2List = class {
238
238
  // #endregion
239
239
  // #region Render Methods
240
240
  render() {
241
- return (index.h("div", { key: 'e4371faae59ae85dee324d6d6783a4b93c23f67f', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (index.h("div", { key: '59cc98b62d2581a66a9ed127189fb23364c49bff', class: this.headerClasses }, index.h("div", { key: '568b6fab57c7552d5a577d19bd31760f6d1aa461', class: "label" }, this.label), this.hasFilterSlot && index.h("slot", { key: 'd27e785788847cf1a422568383bfe5d986764b2b', name: "filter" }))), index.h("div", { key: '7a00add6911167d7a27008f10f5d44cfae5d80b2', role: "list" }, index.h("slot", { key: 'dd5a0290091b0f1cb00a14cde43bab36e87573d2' }))));
241
+ return (index.h("div", { key: 'a748db824284ab2660f437fa8687dd274247d61c', class: this.listClasses, ref: el => (this.listElement = el) }, (this.hasFilterSlot || this.hasLabelContent) && (index.h("div", { key: '71e253d36bade6a67869db2562534728d51e4db3', class: this.headerClasses }, index.h("div", { key: '1cae46b23e094964fccbb404fc96c33d31485b16', class: "label" }, this.label), this.hasFilterSlot && index.h("slot", { key: 'e2697d250030f34b125df9a5af14f29d733e1c72', name: "filter" }))), index.h("div", { key: '9b2ab45f809fa53a00cfd2fa967402b09da70ffa', role: "list" }, index.h("slot", { key: '6ce5ba056277fca5a01cd7a94f832bc68ef16078' }))));
242
242
  }
243
243
  get hostElement() { return index.getElement(this); }
244
244
  };
@@ -106,7 +106,7 @@ const Q2Legend = class {
106
106
  // #endregion
107
107
  // #region Render Methods
108
108
  render() {
109
- return (index.h("click-elsewhere", { key: 'b80e97d61b66d2a3950c0e680d8f6fdf0594391a', onChange: () => this.onClickElsewhere(this) }, index.h("ul", { key: '14dc772fa9b1608e415573e90d4c2780c12adef5' }, this.dataWithClasses.map(item => (index.h("li", { class: "item" }, index.h("button", { "test-id": "item", "aria-label": `${item.name} ${this.formatValue(item.value)}`, class: item.classes, onClick: event => this.onClick(event, item), onMouseEnter: event => this.onMouseEnter(event, item), onMouseLeave: event => this.onMouseLeave(event, item) }, index.h("span", { "test-id": "itemColor", class: "item-color-indicator", style: { backgroundColor: item.color }, "aria-hidden": "true" }), index.h("span", { "test-id": "itemName", class: "item-name" }, item.name), index.h("span", { id: `item-${item.id}`, "test-id": "itemValue", class: "item-value" }, this.formatValue(item.value)))))))));
109
+ return (index.h("click-elsewhere", { key: '14c2b27428cc8a8e95bf8df62aac0c235bd65606', onChange: () => this.onClickElsewhere(this) }, index.h("ul", { key: 'b597b625d0abb353d7752a9ca6ccedc9dc4eea6a' }, this.dataWithClasses.map(item => (index.h("li", { class: "item" }, index.h("button", { "test-id": "item", "aria-label": `${item.name} ${this.formatValue(item.value)}`, class: item.classes, onClick: event => this.onClick(event, item), onMouseEnter: event => this.onMouseEnter(event, item), onMouseLeave: event => this.onMouseLeave(event, item) }, index.h("span", { "test-id": "itemColor", class: "item-color-indicator", style: { backgroundColor: item.color }, "aria-hidden": "true" }), index.h("span", { "test-id": "itemName", class: "item-name" }, item.name), index.h("span", { id: `item-${item.id}`, "test-id": "itemValue", class: "item-value" }, this.formatValue(item.value)))))))));
110
110
  }
111
111
  static get watchers() { return {
112
112
  "hoveredItemId": ["watchHoveredItemId"],
@@ -61,7 +61,7 @@ const Q2Loc = class {
61
61
  // #endregion
62
62
  // #region Render Methods
63
63
  render() {
64
- return index.h("span", { key: '8774b0a4bfb39826f6d7be0640c7a0244ab22a09' }, this.displayValue);
64
+ return index.h("span", { key: 'c5b41696e6cc9c97491da8d5b8e2743ac1e37ca0' }, this.displayValue);
65
65
  }
66
66
  get hostElement() { return index.getElement(this); }
67
67
  static get watchers() { return {
@@ -66,7 +66,7 @@ const Q2Message = class {
66
66
  const addDivForAriaLive = !isFirefox && this.presentToggle;
67
67
  const { description } = this;
68
68
  const messageLabel = index$1.loc(`tecton.element.message.type.${this.type ? this.type : 'info'}`);
69
- return (index.h("div", { key: '862e4f7aa7ae624a695ce6727f72ed8759584173', tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description && addAriaHiddenForAriaLive ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && index.h("div", { key: '84084e80aac97b4e4e33a2bcf348094cd88279fb', class: "sr" }), index.h("div", { key: '4a437099dce9df5657a7f5039a55f5b326d2ee58', class: "sr message-label" }, messageLabel), index.h("div", { key: '8bf021fb84aa6d4973546060acaddae5d059d351', class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, index.h("slot", { key: '1790d7a0df5758d13c8b76577a4703808cddc832' }))));
69
+ return (index.h("div", { key: '32df9337d60e4cde91b479f7ac2145b490c6e86f', tabindex: "-1", class: "message", role: description ? undefined : 'alert', "aria-live": description ? undefined : 'assertive', "aria-atomic": description ? undefined : 'true', "aria-relevant": description && addAriaHiddenForAriaLive ? undefined : 'all', "test-id": "messageContainer" }, this.appearance === 'standard' ? this.messageIcon(this.type) : '', addDivForAriaLive && index.h("div", { key: '8c85280a31471b39972eaf836eba26e46f8fa384', class: "sr" }), index.h("div", { key: '38197f54a04591a1b059fb84adeaa753e7d75b5a', class: "sr message-label" }, messageLabel), index.h("div", { key: '9cc59dd782ad77089f1e9bd9e19f03f6e2333752', class: "message-content", "aria-hidden": addAriaHiddenForAriaLive ? 'true' : undefined }, index.h("slot", { key: '10589fb202d11974e4a9eddd89646f88f1a38230' }))));
70
70
  }
71
71
  get hostElement() { return index.getElement(this); }
72
72
  };
@@ -145,10 +145,10 @@ const Q2MonthPicker = class {
145
145
  // #endregion
146
146
  // #region Render Methods
147
147
  render() {
148
- return (index.h("div", { key: 'a25f142e55a4b9fa27dd0be8a50a965ba79bb544', class: "month-container", onKeyDown: this.onMonthKeydown }, index.h("div", { key: '14c16da95a5ff20603d87e8f5bec76037d2df0dc', class: "navigation" }, index.h("q2-btn", { key: 'f42fcd35aa88a0fd9455e2b10fa9f71d9e706727', class: "year-btn", onClick: () => this.viewChange.emit({
148
+ return (index.h("div", { key: '86262b17f3ec60dd3790c116fd54b60d38db54d6', class: "month-container", onKeyDown: this.onMonthKeydown }, index.h("div", { key: '618578dd17aff647bbd071f78429f206ba615808', class: "navigation" }, index.h("q2-btn", { key: '65a83ffac1aac5188ac8299fe6cee64eb0ddaae1', class: "year-btn", onClick: () => this.viewChange.emit({
149
149
  view: 'year',
150
150
  selectedYear: this.year,
151
- }) }, index.h("span", { key: '48482c7f65b28b1caa86d06d04f5c0294e4effb4', class: "year" }, this.year), index.h("q2-icon", { key: 'e0dea457dbbeb54609bc75d4b5215893853874bc', class: "year-icon off", type: "chevron-down" })), index.h("div", { key: '24b722a65945224c964e54944ad810da3ae077e3', class: "month-controller" }, index.h("div", { key: 'a101dbfe3b8e3a071e3b835eddc1b39455391ab5', class: "cal-year-prev-next" }, index.h("q2-btn", { key: '8895ef11b257dc13295939d0b8cd2ab933016cd2', label: index$1.loc('tecton.element.calendar.previousYear'), "hide-label": true, class: "cal-nav-btn prev-year", "test-id": "previousYearButton", onClick: () => this.selectYear(this.year - 1) }, index.h("q2-icon", { key: 'af38ef5e10c5754e4a0f57a3131e7c12b6792a89', type: "arrow-left" })), index.h("q2-btn", { key: '03a9b7c64770e77affe5eb60e165e46f63b6d6b6', label: index$1.loc('tecton.element.calendar.nextYear'), "hide-label": true, class: "cal-nav-btn next-year", "test-id": "nextYearButton", onClick: () => this.selectYear(this.year + 1) }, index.h("q2-icon", { key: '951ecf4a0c546878351fef33efbfaa641c451c8e', type: "arrow-right" }))))), index.h("div", { key: '48084e3520d2ab0a3dd0f59387e4d4183d958679', class: "month-list", onClick: this.onMonthSelection }, this.months.map((month, index$1) => (index.h("div", { class: "month" }, index.h("span", { role: "button", class: "month-button", "data-index": index$1, "aria-label": month.label, tabindex: index$1 === this.focusedIndex ? 0 : -1 }, month.abbr))))), this.today && (index.h("div", { key: '5a18fa4aef615742b863fd96c3066964186b8f92', class: "today-label" }, index$1.loc('tecton.element.calendar.today'), ": ", this.today))));
151
+ }) }, index.h("span", { key: 'a45b4604f888d680db4dc17bd0e0e1d2eed3406d', class: "year" }, this.year), index.h("q2-icon", { key: 'cd08dc672c8ad200966339d1df0664ffc711c792', class: "year-icon off", type: "chevron-down" })), index.h("div", { key: 'f42557dd4a8eeeb31bfc256a1508b91dc65d6a05', class: "month-controller" }, index.h("div", { key: '07ff15c4e7073551655b175a29a4251d02dac597', class: "cal-year-prev-next" }, index.h("q2-btn", { key: '969e197aba094a6c021f0917ed40da908630587f', label: index$1.loc('tecton.element.calendar.previousYear'), "hide-label": true, class: "cal-nav-btn prev-year", "test-id": "previousYearButton", onClick: () => this.selectYear(this.year - 1) }, index.h("q2-icon", { key: 'dbcaa8e8ddc32a3a2b376aa43236930617532dad', type: "arrow-left" })), index.h("q2-btn", { key: 'ad254449993df25e5da4ddb57ee7aba0d215ea59', label: index$1.loc('tecton.element.calendar.nextYear'), "hide-label": true, class: "cal-nav-btn next-year", "test-id": "nextYearButton", onClick: () => this.selectYear(this.year + 1) }, index.h("q2-icon", { key: '52e12f42f7ace465672863a0e0ba4df917f7412d', type: "arrow-right" }))))), index.h("div", { key: 'bc1ee824c1ea7123c25f3e8b42adb8618a820d8a', class: "month-list", onClick: this.onMonthSelection }, this.months.map((month, index$1) => (index.h("div", { class: "month" }, index.h("span", { role: "button", class: "month-button", "data-index": index$1, "aria-label": month.label, tabindex: index$1 === this.focusedIndex ? 0 : -1 }, month.abbr))))), this.today && (index.h("div", { key: 'fce1f228472c32f7e72c9d4fa4c25db6996dc09d', class: "today-label" }, index$1.loc('tecton.element.calendar.today'), ": ", this.today))));
152
152
  }
153
153
  get hostElement() { return index.getElement(this); }
154
154
  };
@@ -53,7 +53,7 @@ const Q2Optgroup = class {
53
53
  // #endregion
54
54
  // #region Render Methods
55
55
  render() {
56
- return (index.h("div", { key: '306cf0d06e8664a616974421d45a3083235bc03b', class: "q2-optgroup-container", hidden: this.hidden, "aria-labelledby": this.headerId, role: "group" }, index.h("div", { key: '738affcd788d0f9e2fdf548f4f14d6d98b8a1c7e', class: "q2-optgroup-header", id: this.headerId }, (this.label && index$1.loc(this.label)) || ''), index.h("div", { key: 'cff8fad7e158854df77ad3d9cb85ea578aa0edc5', class: "q2-optgroup-options" }, index.h("slot", { key: 'd5daf0a105b29ace1c1f0daf5b99ec6bc8fc684c' }))));
56
+ return (index.h("div", { key: '979cb6a0423ae7373853b897ae5b48ca6f84b095', class: "q2-optgroup-container", hidden: this.hidden, "aria-labelledby": this.headerId, role: "group" }, index.h("div", { key: '7e62006e32a809308b63379465cc7549af2edd94', class: "q2-optgroup-header", id: this.headerId }, (this.label && index$1.loc(this.label)) || ''), index.h("div", { key: '49a7dece0f48e25d8dcf9104ebd8706e14624ab7', class: "q2-optgroup-options" }, index.h("slot", { key: '0d3418b67fbc0c951561526abc81e91503d5b976' }))));
57
57
  }
58
58
  get hostElement() { return index.getElement(this); }
59
59
  static get watchers() { return {