q2-tecton-elements 1.49.2 → 1.49.4

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 (363) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +151 -148
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-a93362ed.js → index-4b69f62d.js} +30 -18
  4. package/dist/{q2-tecton-elements/p-84190698.js.map → cjs/index-4b69f62d.js.map} +1 -1
  5. package/dist/cjs/{index-42fcd170.js → index-f69742cf.js} +1 -1
  6. package/dist/cjs/{index-42fcd170.js.map → index-f69742cf.js.map} +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
  9. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-calendar.cjs.entry.js +3 -3
  12. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  14. package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
  15. package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
  17. package/dist/cjs/q2-chart-donut.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  19. package/dist/cjs/q2-checkbox.cjs.entry.js +2 -2
  20. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
  22. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  23. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-dropdown.cjs.entry.js +4 -2
  25. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  26. package/dist/cjs/q2-editable-field.cjs.entry.js +2 -2
  27. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-input.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-item.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-list.cjs.entry.js +2 -2
  32. package/dist/cjs/q2-loc.cjs.entry.js +2 -2
  33. package/dist/cjs/q2-message.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  35. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  36. package/dist/cjs/q2-option-list.cjs.entry.js +13 -11
  37. package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
  38. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  40. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  42. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  43. package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
  44. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  45. package/dist/cjs/q2-select.cjs.entry.js +149 -30
  46. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  47. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  48. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  49. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  50. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  51. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  52. package/dist/cjs/q2-tag.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  54. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  55. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  56. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  57. package/dist/collection/collection-manifest.json +5 -5
  58. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  59. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  60. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  61. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  62. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  63. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  64. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  65. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  66. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  67. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  68. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  69. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  70. package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
  71. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  72. package/dist/collection/components/q2-dropdown/q2-dropdown.js +3 -1
  73. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  74. package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
  75. package/dist/collection/components/q2-input/q2-input.js +2 -2
  76. package/dist/collection/components/q2-item/q2-item.js +1 -1
  77. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  78. package/dist/collection/components/q2-list/q2-list.js +1 -1
  79. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  80. package/dist/collection/components/q2-message/q2-message.js +1 -1
  81. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  82. package/dist/collection/components/q2-option/q2-option.js +1 -1
  83. package/dist/collection/components/q2-option-list/q2-option-list.js +15 -13
  84. package/dist/collection/components/q2-option-list/q2-option-list.js.map +1 -1
  85. package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
  86. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  87. package/dist/collection/components/q2-popover/q2-popover.css +18 -10
  88. package/dist/collection/components/q2-popover/q2-popover.js +207 -203
  89. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  90. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  91. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  92. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  93. package/dist/collection/components/q2-section/q2-section.js +2 -2
  94. package/dist/collection/components/q2-select/q2-select.js +187 -32
  95. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  96. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  97. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  98. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  99. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  100. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  101. package/dist/collection/components/q2-tag/q2-tag.js +1 -1
  102. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  103. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  104. package/dist/collection/utils/index.js +46 -0
  105. package/dist/collection/utils/index.js.map +1 -1
  106. package/dist/components/index2.js +29 -17
  107. package/dist/components/index2.js.map +1 -1
  108. package/dist/components/q2-action-sheet.js +1 -1
  109. package/dist/components/q2-avatar2.js +1 -1
  110. package/dist/components/q2-calendar.js +1 -1
  111. package/dist/components/q2-carousel-pane.js +2 -2
  112. package/dist/components/q2-carousel.js +1 -1
  113. package/dist/components/q2-chart-area.js +1 -1
  114. package/dist/components/q2-chart-bar.js +1 -1
  115. package/dist/components/q2-chart-donut.js +1 -1
  116. package/dist/components/q2-checkbox-group.js +1 -1
  117. package/dist/components/q2-checkbox2.js +1 -1
  118. package/dist/components/q2-currency.js +1 -1
  119. package/dist/components/q2-data-table.js +1 -1
  120. package/dist/components/q2-detail.js +1 -1
  121. package/dist/components/q2-dropdown.js +3 -1
  122. package/dist/components/q2-dropdown.js.map +1 -1
  123. package/dist/components/q2-editable-field.js +1 -1
  124. package/dist/components/q2-input2.js +1 -1
  125. package/dist/components/q2-item.js +1 -1
  126. package/dist/components/q2-legend2.js +1 -1
  127. package/dist/components/q2-list.js +1 -1
  128. package/dist/components/q2-loc.js +1 -1
  129. package/dist/components/q2-message2.js +1 -1
  130. package/dist/components/q2-month-picker.js +2 -2
  131. package/dist/components/q2-optgroup2.js +1 -1
  132. package/dist/components/q2-option-list2.js +12 -10
  133. package/dist/components/q2-option-list2.js.map +1 -1
  134. package/dist/components/q2-option2.js +1 -1
  135. package/dist/components/q2-pagination.js +2 -2
  136. package/dist/components/q2-pill.js +1 -1
  137. package/dist/components/q2-popover2.js +158 -155
  138. package/dist/components/q2-popover2.js.map +1 -1
  139. package/dist/components/q2-radio-group.js +1 -1
  140. package/dist/components/q2-radio.js +1 -1
  141. package/dist/components/q2-relative-time.js +1 -1
  142. package/dist/components/q2-section.js +2 -2
  143. package/dist/components/q2-select2.js +153 -33
  144. package/dist/components/q2-select2.js.map +1 -1
  145. package/dist/components/q2-stepper-pane.js +1 -1
  146. package/dist/components/q2-stepper-vertical.js +1 -1
  147. package/dist/components/q2-stepper.js +1 -1
  148. package/dist/components/q2-tab-container.js +1 -1
  149. package/dist/components/q2-tab-pane.js +1 -1
  150. package/dist/components/q2-tag.js +1 -1
  151. package/dist/components/q2-textarea.js +1 -1
  152. package/dist/components/tecton-tab-pane.js +2 -2
  153. package/dist/esm/click-elsewhere_2.entry.js +151 -148
  154. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  155. package/dist/esm/{index-1c019b24.js → index-3184c760.js} +1 -1
  156. package/dist/esm/{index-1c019b24.js.map → index-3184c760.js.map} +1 -1
  157. package/dist/esm/{index-3c5cd75e.js → index-73081b4d.js} +30 -18
  158. package/dist/esm/index-73081b4d.js.map +1 -0
  159. package/dist/esm/loader.js +1 -1
  160. package/dist/esm/q2-action-sheet.entry.js +2 -2
  161. package/dist/esm/q2-avatar.entry.js +1 -1
  162. package/dist/esm/q2-btn_2.entry.js +1 -1
  163. package/dist/esm/q2-calendar.entry.js +3 -3
  164. package/dist/esm/q2-card.entry.js +1 -1
  165. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  166. package/dist/esm/q2-carousel.entry.js +2 -2
  167. package/dist/esm/q2-chart-area.entry.js +2 -2
  168. package/dist/esm/q2-chart-bar.entry.js +2 -2
  169. package/dist/esm/q2-chart-donut.entry.js +2 -2
  170. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  171. package/dist/esm/q2-checkbox.entry.js +2 -2
  172. package/dist/esm/q2-currency.entry.js +1 -1
  173. package/dist/esm/q2-data-table.entry.js +2 -2
  174. package/dist/esm/q2-detail.entry.js +2 -2
  175. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  176. package/dist/esm/q2-dropdown.entry.js +4 -2
  177. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  178. package/dist/esm/q2-editable-field.entry.js +2 -2
  179. package/dist/esm/q2-icon.entry.js +1 -1
  180. package/dist/esm/q2-input.entry.js +2 -2
  181. package/dist/esm/q2-item.entry.js +2 -2
  182. package/dist/esm/q2-legend.entry.js +1 -1
  183. package/dist/esm/q2-list.entry.js +2 -2
  184. package/dist/esm/q2-loc.entry.js +2 -2
  185. package/dist/esm/q2-message.entry.js +2 -2
  186. package/dist/esm/q2-month-picker.entry.js +3 -3
  187. package/dist/esm/q2-optgroup.entry.js +2 -2
  188. package/dist/esm/q2-option-list.entry.js +13 -11
  189. package/dist/esm/q2-option-list.entry.js.map +1 -1
  190. package/dist/esm/q2-option.entry.js +1 -1
  191. package/dist/esm/q2-pagination.entry.js +3 -3
  192. package/dist/esm/q2-pill.entry.js +2 -2
  193. package/dist/esm/q2-radio-group.entry.js +2 -2
  194. package/dist/esm/q2-radio.entry.js +2 -2
  195. package/dist/esm/q2-relative-time.entry.js +3 -3
  196. package/dist/esm/q2-section.entry.js +3 -3
  197. package/dist/esm/q2-select.entry.js +150 -31
  198. package/dist/esm/q2-select.entry.js.map +1 -1
  199. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  200. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  201. package/dist/esm/q2-stepper.entry.js +2 -2
  202. package/dist/esm/q2-tab-container.entry.js +2 -2
  203. package/dist/esm/q2-tab-pane.entry.js +1 -1
  204. package/dist/esm/q2-tag.entry.js +2 -2
  205. package/dist/esm/q2-tecton-elements.js +1 -1
  206. package/dist/esm/q2-textarea.entry.js +2 -2
  207. package/dist/esm/q2-tooltip.entry.js +1 -1
  208. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  209. package/dist/jest.setup.js +33 -0
  210. package/dist/jest.setup.js.map +1 -0
  211. package/dist/q2-tecton-elements/{p-d8d9ba1f.entry.js → p-014c6454.entry.js} +2 -2
  212. package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js → p-01b436c4.entry.js} +2 -2
  213. package/dist/q2-tecton-elements/p-03fcf787.entry.js +2 -0
  214. package/dist/q2-tecton-elements/{p-a657277b.entry.js.map → p-03fcf787.entry.js.map} +1 -1
  215. package/dist/q2-tecton-elements/p-0b33965c.entry.js +2 -0
  216. package/dist/q2-tecton-elements/{p-4da4cb5d.entry.js.map → p-0b33965c.entry.js.map} +1 -1
  217. package/dist/q2-tecton-elements/{p-a177d812.entry.js → p-0c5ff345.entry.js} +2 -2
  218. package/dist/q2-tecton-elements/p-0d46b95e.js +2 -0
  219. package/dist/q2-tecton-elements/p-0d46b95e.js.map +1 -0
  220. package/dist/q2-tecton-elements/{p-db79c056.entry.js → p-152641b0.entry.js} +2 -2
  221. package/dist/q2-tecton-elements/p-19d02441.entry.js +2 -0
  222. package/dist/q2-tecton-elements/p-19d02441.entry.js.map +1 -0
  223. package/dist/q2-tecton-elements/p-1bb08555.entry.js +2 -0
  224. package/dist/q2-tecton-elements/p-1bb08555.entry.js.map +1 -0
  225. package/dist/q2-tecton-elements/{p-dbfab45b.entry.js → p-1be2778a.entry.js} +2 -2
  226. package/dist/q2-tecton-elements/{p-630613c7.entry.js → p-26a23f08.entry.js} +2 -2
  227. package/dist/q2-tecton-elements/{p-da711c59.entry.js → p-2a21bb2a.entry.js} +2 -2
  228. package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js → p-2a471072.entry.js} +2 -2
  229. package/dist/q2-tecton-elements/{p-0852e6fe.entry.js → p-2cd69fc5.entry.js} +2 -2
  230. package/dist/q2-tecton-elements/{p-f6358905.entry.js → p-2cdc1c18.entry.js} +2 -2
  231. package/dist/q2-tecton-elements/p-3b8fbd85.entry.js +2 -0
  232. package/dist/q2-tecton-elements/p-3b8fbd85.entry.js.map +1 -0
  233. package/dist/q2-tecton-elements/{p-1e7fa870.entry.js → p-408f5dd0.entry.js} +2 -2
  234. package/dist/q2-tecton-elements/{p-ea7876eb.entry.js → p-45cf9f0b.entry.js} +2 -2
  235. package/dist/q2-tecton-elements/{p-08176bd0.entry.js → p-4635d8fd.entry.js} +2 -2
  236. package/dist/q2-tecton-elements/{p-333a41ca.entry.js → p-55554655.entry.js} +2 -2
  237. package/dist/q2-tecton-elements/{p-2bcb7e89.entry.js → p-6443ae6f.entry.js} +2 -2
  238. package/dist/q2-tecton-elements/{p-4388e521.entry.js → p-6c64c5e9.entry.js} +2 -2
  239. package/dist/q2-tecton-elements/{p-793a453e.entry.js → p-6e4b1bfe.entry.js} +2 -2
  240. package/dist/q2-tecton-elements/{p-da0cacef.entry.js → p-79cc72fc.entry.js} +2 -2
  241. package/dist/q2-tecton-elements/{p-c8b4f5f7.entry.js → p-7db2c188.entry.js} +2 -2
  242. package/dist/q2-tecton-elements/{p-9ecabc7a.entry.js → p-818fc8a7.entry.js} +2 -2
  243. package/dist/q2-tecton-elements/{p-9c589ab3.entry.js → p-835cf95a.entry.js} +2 -2
  244. package/dist/q2-tecton-elements/{p-e0a6baea.entry.js → p-88ae4e26.entry.js} +2 -2
  245. package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js → p-8feb8b28.entry.js} +2 -2
  246. package/dist/q2-tecton-elements/p-926bf280.entry.js +2 -0
  247. package/dist/q2-tecton-elements/{p-9e90a38a.entry.js.map → p-926bf280.entry.js.map} +1 -1
  248. package/dist/q2-tecton-elements/{p-6c933b14.entry.js → p-97ab03d0.entry.js} +2 -2
  249. package/dist/q2-tecton-elements/{p-e44560d9.entry.js → p-9c9a2662.entry.js} +2 -2
  250. package/dist/q2-tecton-elements/{p-a8e7e591.entry.js → p-a531a983.entry.js} +2 -2
  251. package/dist/q2-tecton-elements/{p-baa2eaa9.entry.js → p-aa7d16b8.entry.js} +2 -2
  252. package/dist/q2-tecton-elements/{p-d78669df.entry.js → p-adf615fc.entry.js} +2 -2
  253. package/dist/q2-tecton-elements/{p-40df4468.entry.js → p-b6e531bb.entry.js} +2 -2
  254. package/dist/q2-tecton-elements/{p-e3ad770b.entry.js → p-b7805a04.entry.js} +2 -2
  255. package/dist/q2-tecton-elements/{p-77a763eb.entry.js → p-bdaa03ca.entry.js} +2 -2
  256. package/dist/q2-tecton-elements/{p-25bfe0b2.entry.js → p-be03e61f.entry.js} +2 -2
  257. package/dist/q2-tecton-elements/{p-05b30f98.entry.js → p-c08dba38.entry.js} +2 -2
  258. package/dist/q2-tecton-elements/{p-5037fa67.entry.js → p-dba6c931.entry.js} +2 -2
  259. package/dist/q2-tecton-elements/{p-93680d12.entry.js → p-e3d214f7.entry.js} +2 -2
  260. package/dist/q2-tecton-elements/{p-76b98623.entry.js → p-e5e9718c.entry.js} +2 -2
  261. package/dist/q2-tecton-elements/{p-2810ba28.entry.js → p-e844e6f1.entry.js} +2 -2
  262. package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js → p-ecddccef.entry.js} +2 -2
  263. package/dist/q2-tecton-elements/{p-be518818.js → p-f1e887f5.js} +1 -1
  264. package/dist/q2-tecton-elements/{p-c5aac064.entry.js → p-f6a9e28d.entry.js} +2 -2
  265. package/dist/q2-tecton-elements/{p-5775b02b.entry.js → p-fdf819d2.entry.js} +2 -2
  266. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  267. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  268. package/dist/test/elements/q2-calendar-test.e2e.js +2 -2
  269. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  270. package/dist/test/elements/q2-dropdown-test.e2e.js +2 -14
  271. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  272. package/dist/test/elements/q2-pagination-test.e2e.js +1 -0
  273. package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
  274. package/dist/test/elements/q2-pill-test.e2e.js +1 -1
  275. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  276. package/dist/test/elements/q2-popover-test.e2e.js +1 -34
  277. package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
  278. package/dist/test/elements/q2-popover-test.spec.js +902 -511
  279. package/dist/test/elements/q2-popover-test.spec.js.map +1 -1
  280. package/dist/test/elements/q2-select-test.e2e.js +1 -15
  281. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  282. package/dist/test/elements/q2-select-test.spec.js +552 -0
  283. package/dist/test/elements/q2-select-test.spec.js.map +1 -0
  284. package/dist/test/elements/q2-tag-test.e2e.js +1 -1
  285. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  286. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +10 -0
  287. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
  288. package/dist/types/components/q2-calendar/q2-calendar.d.ts +324 -0
  289. package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -2
  290. package/dist/types/components/q2-data-table/q2-data-table.d.ts +223 -0
  291. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +130 -0
  292. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +50 -0
  293. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +140 -0
  294. package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
  295. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
  296. package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
  297. package/dist/types/components/q2-pagination/q2-pagination.d.ts +60 -0
  298. package/dist/types/components/q2-pill/q2-pill.d.ts +102 -0
  299. package/dist/types/components/q2-popover/q2-popover.d.ts +31 -31
  300. package/dist/types/components/q2-select/q2-select.d.ts +260 -0
  301. package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
  302. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
  303. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +2 -2
  304. package/dist/types/components/q2-tag/q2-tag.d.ts +59 -0
  305. package/dist/types/components.d.ts +8 -0
  306. package/dist/types/utils/action-sheet.d.ts +12 -0
  307. package/dist/types/utils/index.d.ts +4 -0
  308. package/package.json +3 -3
  309. package/dist/cjs/index-a93362ed.js.map +0 -1
  310. package/dist/esm/index-3c5cd75e.js.map +0 -1
  311. package/dist/q2-tecton-elements/p-089a7a1e.entry.js +0 -2
  312. package/dist/q2-tecton-elements/p-089a7a1e.entry.js.map +0 -1
  313. package/dist/q2-tecton-elements/p-2e6669a7.entry.js +0 -2
  314. package/dist/q2-tecton-elements/p-2e6669a7.entry.js.map +0 -1
  315. package/dist/q2-tecton-elements/p-4da4cb5d.entry.js +0 -2
  316. package/dist/q2-tecton-elements/p-84190698.js +0 -2
  317. package/dist/q2-tecton-elements/p-9e90a38a.entry.js +0 -2
  318. package/dist/q2-tecton-elements/p-a657277b.entry.js +0 -2
  319. package/dist/q2-tecton-elements/p-d2d3d95b.entry.js +0 -2
  320. package/dist/q2-tecton-elements/p-d2d3d95b.entry.js.map +0 -1
  321. /package/dist/q2-tecton-elements/{p-d8d9ba1f.entry.js.map → p-014c6454.entry.js.map} +0 -0
  322. /package/dist/q2-tecton-elements/{p-e4b8f4b3.entry.js.map → p-01b436c4.entry.js.map} +0 -0
  323. /package/dist/q2-tecton-elements/{p-a177d812.entry.js.map → p-0c5ff345.entry.js.map} +0 -0
  324. /package/dist/q2-tecton-elements/{p-db79c056.entry.js.map → p-152641b0.entry.js.map} +0 -0
  325. /package/dist/q2-tecton-elements/{p-dbfab45b.entry.js.map → p-1be2778a.entry.js.map} +0 -0
  326. /package/dist/q2-tecton-elements/{p-630613c7.entry.js.map → p-26a23f08.entry.js.map} +0 -0
  327. /package/dist/q2-tecton-elements/{p-da711c59.entry.js.map → p-2a21bb2a.entry.js.map} +0 -0
  328. /package/dist/q2-tecton-elements/{p-bbf9d36d.entry.js.map → p-2a471072.entry.js.map} +0 -0
  329. /package/dist/q2-tecton-elements/{p-0852e6fe.entry.js.map → p-2cd69fc5.entry.js.map} +0 -0
  330. /package/dist/q2-tecton-elements/{p-f6358905.entry.js.map → p-2cdc1c18.entry.js.map} +0 -0
  331. /package/dist/q2-tecton-elements/{p-1e7fa870.entry.js.map → p-408f5dd0.entry.js.map} +0 -0
  332. /package/dist/q2-tecton-elements/{p-ea7876eb.entry.js.map → p-45cf9f0b.entry.js.map} +0 -0
  333. /package/dist/q2-tecton-elements/{p-08176bd0.entry.js.map → p-4635d8fd.entry.js.map} +0 -0
  334. /package/dist/q2-tecton-elements/{p-333a41ca.entry.js.map → p-55554655.entry.js.map} +0 -0
  335. /package/dist/q2-tecton-elements/{p-2bcb7e89.entry.js.map → p-6443ae6f.entry.js.map} +0 -0
  336. /package/dist/q2-tecton-elements/{p-4388e521.entry.js.map → p-6c64c5e9.entry.js.map} +0 -0
  337. /package/dist/q2-tecton-elements/{p-793a453e.entry.js.map → p-6e4b1bfe.entry.js.map} +0 -0
  338. /package/dist/q2-tecton-elements/{p-da0cacef.entry.js.map → p-79cc72fc.entry.js.map} +0 -0
  339. /package/dist/q2-tecton-elements/{p-c8b4f5f7.entry.js.map → p-7db2c188.entry.js.map} +0 -0
  340. /package/dist/q2-tecton-elements/{p-9ecabc7a.entry.js.map → p-818fc8a7.entry.js.map} +0 -0
  341. /package/dist/q2-tecton-elements/{p-9c589ab3.entry.js.map → p-835cf95a.entry.js.map} +0 -0
  342. /package/dist/q2-tecton-elements/{p-e0a6baea.entry.js.map → p-88ae4e26.entry.js.map} +0 -0
  343. /package/dist/q2-tecton-elements/{p-ec8a0b64.entry.js.map → p-8feb8b28.entry.js.map} +0 -0
  344. /package/dist/q2-tecton-elements/{p-6c933b14.entry.js.map → p-97ab03d0.entry.js.map} +0 -0
  345. /package/dist/q2-tecton-elements/{p-e44560d9.entry.js.map → p-9c9a2662.entry.js.map} +0 -0
  346. /package/dist/q2-tecton-elements/{p-a8e7e591.entry.js.map → p-a531a983.entry.js.map} +0 -0
  347. /package/dist/q2-tecton-elements/{p-baa2eaa9.entry.js.map → p-aa7d16b8.entry.js.map} +0 -0
  348. /package/dist/q2-tecton-elements/{p-d78669df.entry.js.map → p-adf615fc.entry.js.map} +0 -0
  349. /package/dist/q2-tecton-elements/{p-40df4468.entry.js.map → p-b6e531bb.entry.js.map} +0 -0
  350. /package/dist/q2-tecton-elements/{p-e3ad770b.entry.js.map → p-b7805a04.entry.js.map} +0 -0
  351. /package/dist/q2-tecton-elements/{p-77a763eb.entry.js.map → p-bdaa03ca.entry.js.map} +0 -0
  352. /package/dist/q2-tecton-elements/{p-25bfe0b2.entry.js.map → p-be03e61f.entry.js.map} +0 -0
  353. /package/dist/q2-tecton-elements/{p-05b30f98.entry.js.map → p-c08dba38.entry.js.map} +0 -0
  354. /package/dist/q2-tecton-elements/{p-5037fa67.entry.js.map → p-dba6c931.entry.js.map} +0 -0
  355. /package/dist/q2-tecton-elements/{p-93680d12.entry.js.map → p-e3d214f7.entry.js.map} +0 -0
  356. /package/dist/q2-tecton-elements/{p-76b98623.entry.js.map → p-e5e9718c.entry.js.map} +0 -0
  357. /package/dist/q2-tecton-elements/{p-2810ba28.entry.js.map → p-e844e6f1.entry.js.map} +0 -0
  358. /package/dist/q2-tecton-elements/{p-7b9a6bb7.entry.js.map → p-ecddccef.entry.js.map} +0 -0
  359. /package/dist/q2-tecton-elements/{p-be518818.js.map → p-f1e887f5.js.map} +0 -0
  360. /package/dist/q2-tecton-elements/{p-c5aac064.entry.js.map → p-f6a9e28d.entry.js.map} +0 -0
  361. /package/dist/q2-tecton-elements/{p-5775b02b.entry.js.map → p-fdf819d2.entry.js.map} +0 -0
  362. /package/dist/types/{workspace/workspace/tecton-production_release_1.49.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
  363. /package/dist/types/{workspace/workspace/tecton-production_release_1.49.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as createEvent, h, g as getElement } from './index-1e1ce94e.js';
2
- import { l as loc, h as handleAriaLabel, o as overrideFocus, g as isRelatedTargetWithinHost, i as isEventFromElement, w as waitForNextPaint, j as isHostLosingFocus } from './index-3c5cd75e.js';
1
+ import { r as registerInstance, c as createEvent, h, F as Fragment, g as getElement } from './index-1e1ce94e.js';
2
+ import { c as createGuid, d as isMobile, l as loc, h as handleAriaLabel, o as overrideFocus, g as isRelatedTargetWithinHost, i as isEventFromElement, w as waitForNextPaint } from './index-73081b4d.js';
3
3
  import { s as shouldShowActionSheet, a as showActionSheetList } from './action-sheet-dd527168.js';
4
4
 
5
5
  const q2SelectCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #0066cc)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.q2-element-dropdown{display:none;position:absolute;background-color:var(--app-white, #ffffff);color:var(--t-text, #4d4d4d);left:0;width:100%;z-index:100;margin-top:1px;box-shadow:var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14));height:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity var(--app-tween-1, 0.2s ease);border-radius:var(--tct-dropdown-border-radius, --t-dropdown-border-radius, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 4px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.q2-element-dropdown::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.q2-element-dropdown::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown.sizable{display:block;height:auto}.dropdown-open .q2-element-dropdown{display:block;height:auto;overflow:auto;opacity:1;visibility:visible}:host([alignment=right]) .q2-element-dropdown{left:auto;right:0}:host([block]) q2-btn,:host([block]){display:block}:host{--comp-select-margin:var(--tct-select-margin, var(--tct-select-margin-top, var(--t-select-margin-top, var(--app-scale-4, 30px))) 0 var(--tct-select-margin-bottom, var(--t-select-margin-bottom, var(--app-scale-4, 30px))));display:block;margin:var(--comp-select-margin)}.q2-select-container{position:relative;display:block}.q2-select-input{margin:0;--tct-input-min-height:var(--tct-select-input-min-height, var(--t-select-input-min-height));--tct-input-max-height:var(--tct-select-input-max-height, var(--t-select-input-max-height, none))}::slotted([slot=_selected-display]){width:100%;min-height:var(--comp-selected-display-height, 44px)}.custom-display-content{position:absolute;bottom:0;left:calc(var(--tct-scale-2, var(--app-scale-2x, 10px)) + 1px);height:44px;width:calc(100% - 34px - var(--tct-scale-3, var(--app-scale-3x, 15px)));overflow:hidden;cursor:pointer;transition:left var(--tct-tween-2, var(--app-tween-1, 0.2s ease))}.custom-display-content:not([hidden]){display:flex;align-items:center}.is-searchable.is-focused .custom-display-content,.is-searchable .custom-display-content:active{left:calc(var(--tct-scale-3, var(--app-scale-3x, 15px)) + 1px)}.has-error .custom-display-content{width:calc(100% - 68px - var(--tct-scale-3, var(--app-scale-3x, 15px)))}.popover-content{display:flex;flex-direction:column-reverse}.popover-bottom-container{position:sticky;bottom:0;z-index:5}.popover-top-container{position:sticky;top:0;z-index:5}.popover-top-container .multi-select-header{padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-2, var(--app-scale-2x, 10px));background:var(--app-white);display:flex;gap:var(--app-scale-2x, 10px);align-items:center}.popover-top-container .multi-select-header fieldset{margin:0;padding:0;border:0;display:flex;gap:var(--app-scale-2x, 10px)}.popover-top-container .multi-select-header legend{padding:0;float:left}.popover-top-container .multi-select-header label{cursor:pointer;padding:var(--tct-select-multi-select-option-padding, var(--t-select-multi-select-option-padding, var(--tct-btn-badge-padding, var(--t-btn-badge-padding, 2px 5px))));font-size:var(--tct-select-multi-select-option-font-size, var(--t-select-multi-select-option-font-size, var(--tct-btn-badge-font-size, var(--t-btn-badge-font-size, inherit))));border-radius:var(--tct-select-multi-select-option-radius, var(--t-select-multi-select-option-radius, var(--tct-btn-badge-border-radius, var(--t-btn-badge-border-radius, var(--app-border-radius-1, 4px)))));background:var(--tct-select-multi-select-option-background, var(--tct-select-multi-select-option-bg, var(--t-select-multi-select-option-bg, var(--tct-badge-background, var(--tct-btn-badge-bg, var(--t-btn-badge-bg, transparent))))));color:var(--tct-select-multi-select-option-color, var(--t-select-multi-select-option-color, var(--tct-btn-badge-font-color, var(--t-btn-badge-font-color, inherit))))}.popover-top-container .multi-select-header label:hover{background:var(--tct-select-multi-select-option-hover-background, var(--tct-select-multi-select-option-hover-background-color, var(--t-select-multi-select-option-hover-background-color, var(--tct-btn-badge-hover-bg, var(--t-btn-badge-hover-bg, var(--tct-gray-14, var(--t-gray-14, var(--app-gray-l3, #f2f2f2))))))));color:var(--tct-select-multi-select-option-hover-color, var(--tct-select-multi-select-option-color, var(--t-select-multi-select-option-color, var(--tct-btn-badge-hover-font-color, var(--t-btn-badge-hover-font-color, var(--tct-gray-5, var(--t-gray-5, var(--app-gray-d2, #404040))))))))}.popover-top-container .multi-select-header input:checked+label,.popover-top-container .multi-select-header input:checked+label:enabled:hover{background:var(--tct-select-multi-select-option-active-background, var(--tct-select-multi-select-option-active-background-color, var(--t-select-multi-select-option-active-background-color, var(--tct-btn-primary-bg, var(--t-btn-primary-bg, #2e2e2e)))));color:var(--tct-select-multi-select-option-active-color, var(--t-select-multi-select-option-active-color, var(--tct-btn-primary-font-color, var(--t-btn-primary-font-color, var(--app-white, #ffffff)))))}.popover-top-container .multi-select-header input:disabled+label{opacity:var(--tct-select-multi-select-option-disabled-opacity, var(--t-select-multi-select-option-disabled-opacity, var(--tct-btn-disabled-opacity, var(--t-btn-disabled-opacity, var(--app-disabled-opacity, 0.4)))));cursor:not-allowed}.popover-top-container .multi-select-header input:focus+label{box-shadow:var(--const-double-focus-ring)}";
@@ -11,12 +11,74 @@ const Q2Select = class {
11
11
  this.change = createEvent(this, "change", 7);
12
12
  this.input = createEvent(this, "input", 7);
13
13
  var _a;
14
+ // #region Own Properties
15
+ this.guid = createGuid();
16
+ this.lastTouchWasInPopover = false;
14
17
  this.scheduledAfterRender = [];
18
+ this.addTouchEventListeners = () => {
19
+ if (!isMobile() || !this.popoverElement)
20
+ return;
21
+ this.popoverElement.addEventListener('touchstart', this.handleTouchStart, { passive: true });
22
+ };
15
23
  this.clickedElsewhere = (event) => {
16
24
  const target = event.target;
17
25
  if (target.localName !== 'click-elsewhere')
18
26
  return;
19
27
  event.stopPropagation();
28
+ const { popoverElement } = this;
29
+ if (!popoverElement)
30
+ return;
31
+ popoverElement.open = false;
32
+ this.innerInputField.blur();
33
+ };
34
+ this.destroyEventListeners = () => {
35
+ var _a;
36
+ if (!isMobile())
37
+ return;
38
+ (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('change', this.handleOrientationChange);
39
+ window.removeEventListener('resize', this.handleOrientationChange);
40
+ visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener('resize', this.handleOrientationChange);
41
+ this.removeTouchEventListeners();
42
+ };
43
+ this.handleOrientationChange = () => {
44
+ var _a, _b, _c;
45
+ if (!isMobile())
46
+ return;
47
+ let isLandscape;
48
+ if (this.isModule) {
49
+ isLandscape = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions.orientationType.includes('landscape');
50
+ }
51
+ else {
52
+ isLandscape = (_c = (_b = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _b === void 0 ? void 0 : _b.type) === null || _c === void 0 ? void 0 : _c.includes('landscape');
53
+ }
54
+ if (isLandscape && this.searchable)
55
+ this.searchable = false;
56
+ if (!isLandscape)
57
+ this.searchable = this.originalSearchable;
58
+ };
59
+ this.handleTouchStart = (event) => {
60
+ if (document.activeElement === this.hostElement) {
61
+ const target = event.target;
62
+ if (target && target !== this.hostElement) {
63
+ this.inputFocused = false;
64
+ this.lastTouchWasInPopover = true;
65
+ target.focus();
66
+ }
67
+ }
68
+ };
69
+ this.initEventListeners = () => {
70
+ var _a;
71
+ if (!isMobile())
72
+ return;
73
+ (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('change', this.handleOrientationChange);
74
+ window.addEventListener('resize', this.handleOrientationChange);
75
+ visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener('resize', this.handleOrientationChange);
76
+ };
77
+ this.initMutationObserver = () => {
78
+ const observer = new MutationObserver(this.onMutationObserved);
79
+ observer.observe(this.hostElement, { childList: true, subtree: true });
80
+ this.mutationObserver = observer;
81
+ this.onMutationObserved();
20
82
  };
21
83
  this.inputBlurHandler = () => {
22
84
  this.inputFocused = false;
@@ -26,6 +88,16 @@ const Q2Select = class {
26
88
  };
27
89
  this.inputClickHandler = async (event) => {
28
90
  event.stopPropagation();
91
+ // Check if the last interaction was a touch within the popover
92
+ // If so, don't toggle the dropdown as the user is likely continuing to interact
93
+ if (this.lastTouchWasInPopover && this.open && this.searchable) {
94
+ // Reset the flag and don't toggle
95
+ this.lastTouchWasInPopover = false;
96
+ this.focusInput();
97
+ return;
98
+ }
99
+ // Reset the flag for any other click
100
+ this.lastTouchWasInPopover = false;
29
101
  if (shouldShowActionSheet(this)) {
30
102
  return this.executeActionSheet(event);
31
103
  }
@@ -50,12 +122,13 @@ const Q2Select = class {
50
122
  this.inputKeydownHandler = (event) => {
51
123
  if (this.readonly || this.disabled)
52
124
  return;
53
- const key = event.key;
125
+ const { key, shiftKey } = event;
126
+ const isShiftTab = key === 'Tab' && shiftKey;
54
127
  const hasSlot = this.hasPopoverTop || this.hasPopoverBottom;
55
- const isShiftTab = key === 'Tab' && event.shiftKey;
56
- if (hasSlot && (key === 'Tab' || key === 'Enter' || isShiftTab))
128
+ if (hasSlot && (key === 'Tab' || isShiftTab))
57
129
  return;
58
- if (shouldShowActionSheet(this, event)) {
130
+ // slots are incompatible with action sheet
131
+ if (shouldShowActionSheet(this, event) && !hasSlot) {
59
132
  return this.executeActionSheet(event);
60
133
  }
61
134
  const keysForOptionListToHandle = [
@@ -80,7 +153,7 @@ const Q2Select = class {
80
153
  // Prevent click event from firing when spacebar is pressed
81
154
  if (key === ' ')
82
155
  event.preventDefault();
83
- this.optionList.handleExternalKeydown(event);
156
+ this.handleOptionListExternalKeydown(event);
84
157
  };
85
158
  this.onCustomDisplayClick = (event) => {
86
159
  event.stopPropagation();
@@ -98,12 +171,12 @@ const Q2Select = class {
98
171
  this.hasCustomDisplay = hasCustomDisplay;
99
172
  }
100
173
  const popTopSlot = hostElement.shadowRoot.querySelector('slot[name="popover-top"]');
101
- const topSlotHasNode = popTopSlot.assignedNodes().length > 0;
174
+ const topSlotHasNode = (popTopSlot === null || popTopSlot === void 0 ? void 0 : popTopSlot.assignedNodes().length) > 0;
102
175
  if (hasPopoverTop !== topSlotHasNode) {
103
176
  this.hasPopoverTop = topSlotHasNode;
104
177
  }
105
178
  const popBottomSlot = hostElement.shadowRoot.querySelector('slot[name="popover-bottom"]');
106
- const bottomSlotHasNode = popBottomSlot.assignedNodes().length > 0;
179
+ const bottomSlotHasNode = (popBottomSlot === null || popBottomSlot === void 0 ? void 0 : popBottomSlot.assignedNodes().length) > 0;
107
180
  if (hasPopoverBottom !== bottomSlotHasNode) {
108
181
  this.hasPopoverBottom = bottomSlotHasNode;
109
182
  }
@@ -127,6 +200,11 @@ const Q2Select = class {
127
200
  return;
128
201
  this.open = open;
129
202
  };
203
+ this.removeTouchEventListeners = () => {
204
+ if (!isMobile() || !this.popoverElement)
205
+ return;
206
+ this.popoverElement.removeEventListener('touchstart', this.handleTouchStart);
207
+ };
130
208
  this.showAllOptions = () => {
131
209
  this.showSelected = false;
132
210
  };
@@ -172,6 +250,7 @@ const Q2Select = class {
172
250
  this.optional = false;
173
251
  this.placeholder = undefined;
174
252
  this.popDirection = undefined;
253
+ this.popoverMaxHeight = undefined;
175
254
  this.popoverMode = null;
176
255
  this.readonly = false;
177
256
  this.searchable = false;
@@ -184,19 +263,21 @@ const Q2Select = class {
184
263
  var _a;
185
264
  (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
186
265
  this.mutationObserver = null;
266
+ this.destroyEventListeners();
187
267
  }
188
268
  componentWillLoad() {
269
+ this.originalSearchable = this.searchable;
189
270
  handleAriaLabel(this);
271
+ this.handleOrientationChange();
190
272
  this.buildStructuredSelectedOptions();
191
273
  this.handleMultilineOptionsUpdate(this.multilineOptions, false);
192
274
  }
193
275
  componentDidLoad() {
194
- const observer = new MutationObserver(this.onMutationObserved);
195
- observer.observe(this.hostElement, { childList: true, subtree: true });
196
- this.mutationObserver = observer;
197
- this.onMutationObserved();
276
+ this.initMutationObserver();
277
+ this.initEventListeners();
198
278
  overrideFocus(this.hostElement);
199
279
  setTimeout(() => this.checkSelectedDisplay(), 0);
280
+ this.setCustomLabel();
200
281
  }
201
282
  componentDidRender() {
202
283
  setTimeout(() => {
@@ -224,9 +305,9 @@ const Q2Select = class {
224
305
  this.clearValue();
225
306
  }
226
307
  handleSelectedDisplay(event) {
227
- if (this.multiple)
228
- return;
229
- this.inputField.value = event.detail.display;
308
+ if (!this.multiple && !!this.value && this.value === event.detail.value) {
309
+ this.inputField.value = event.detail.display;
310
+ }
230
311
  }
231
312
  delegateFocus(event) {
232
313
  const fromHost = isRelatedTargetWithinHost(event, this.hostElement);
@@ -235,11 +316,13 @@ const Q2Select = class {
235
316
  this.clearSelectedDisplay();
236
317
  }
237
318
  else if (isEventFromElement(event, this.hostElement)) {
238
- this.inputField.shadowRoot.querySelector('.input-field').focus();
319
+ this.innerInputField.focus();
239
320
  }
240
321
  }
241
322
  handleFocusout(event) {
242
- const isLeavingHost = isHostLosingFocus(event, this.hostElement);
323
+ var _a;
324
+ const relatedTarget = event.relatedTarget;
325
+ const isLeavingHost = !((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget)) && !this.hostElement.contains(relatedTarget);
243
326
  if (isLeavingHost)
244
327
  this.closeDropdown();
245
328
  this.prioritizeSearch = !isLeavingHost && this.searchable;
@@ -275,6 +358,10 @@ const Q2Select = class {
275
358
  keydownHandler(event) {
276
359
  this.inputKeydownHandler(event);
277
360
  }
361
+ popoverStateChanged({ detail: { open } }) {
362
+ if (this.open !== open)
363
+ this.open = open;
364
+ }
278
365
  // #endregion
279
366
  // #region Public Methods API
280
367
  /**
@@ -348,6 +435,12 @@ const Q2Select = class {
348
435
  this.optionElements.forEach(element => (element.multiline = newValue));
349
436
  }
350
437
  openChanged(isOpen) {
438
+ if (isOpen) {
439
+ this.addTouchEventListeners();
440
+ }
441
+ else {
442
+ this.removeTouchEventListeners();
443
+ }
351
444
  this.scheduledAfterRender.push(async () => {
352
445
  await waitForNextPaint();
353
446
  const { popoverTopContainer, popoverElement } = this;
@@ -404,6 +497,15 @@ const Q2Select = class {
404
497
  var _a, _b;
405
498
  return (_b = (_a = this.inputField) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.input-field');
406
499
  }
500
+ get inputId() {
501
+ return `select-guid-${this.guid}`;
502
+ }
503
+ get isModule() {
504
+ var _a, _b;
505
+ const isIframe = window !== window.top;
506
+ const hasPlatformDimensions = Object.keys((_b = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions) !== null && _b !== void 0 ? _b : {}).length > 0;
507
+ return isIframe && hasPlatformDimensions;
508
+ }
407
509
  get optionElements() {
408
510
  return Array.from(this.hostElement.querySelectorAll('q2-option'));
409
511
  }
@@ -530,16 +632,22 @@ const Q2Select = class {
530
632
  }
531
633
  closeDropdown() {
532
634
  this.open = false;
635
+ this.lastTouchWasInPopover = false;
533
636
  this.clearSearchText();
534
637
  }
535
638
  async executeActionSheet(event) {
536
639
  const result = await showActionSheetList(this, event);
640
+ this.focusInput();
537
641
  this.handleSelectionChanges(result);
538
642
  }
539
643
  focusInput() {
540
644
  var _a;
541
645
  (_a = this.inputField) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new FocusEvent('focus'));
542
646
  }
647
+ // Helps with checking for calls to handleExternalKeydown in spec tests
648
+ handleOptionListExternalKeydown(event) {
649
+ this.optionList.handleExternalKeydown(event);
650
+ }
543
651
  handleSelectionChanges(changeDetails) {
544
652
  const { value = '', values = [] } = changeDetails;
545
653
  const selectedOptionValues = values.map(value => value.value);
@@ -558,8 +666,13 @@ const Q2Select = class {
558
666
  this.optionList.setActiveElement(null);
559
667
  this.open = true;
560
668
  }
561
- optionsDropdown() {
562
- return (h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: this.innerInputContainer, open: this.open, minHeight: this.popoverMinHeight, direction: this.popDirection, mode: this.popoverMode || undefined, block: true }, h("div", { class: "popover-content" }, h("q2-option-list", { onPopoverState: this.onPopoverState, ref: el => (this.optionList = el), type: "listbox", id: "option-list", "show-selected": this.showSelected, label: this.listLabel, multiple: this.multiple, selectedOptions: this.structuredSelectedOptions, onChange: this.onOptionListChange }, h("slot", null)), h("div", { class: "popover-top-container", ref: el => (this.popoverTopContainer = el), hidden: !this.multiple && !this.hasPopoverTop, tabindex: "-1" }, h("slot", { name: "popover-top" }), this.multiple && this.visibilityToggle())), h("div", { class: "popover-bottom-container", hidden: !this.hasPopoverBottom, tabindex: "-1" }, h("slot", { name: "popover-bottom" }))));
669
+ setCustomLabel() {
670
+ var _a;
671
+ const customLabel = this.hostElement.querySelector('[slot="label"]');
672
+ if (customLabel) {
673
+ (_a = this.inputField) === null || _a === void 0 ? void 0 : _a.appendChild(customLabel.cloneNode(true));
674
+ this.hostElement.removeChild(customLabel);
675
+ }
563
676
  }
564
677
  setStatusMessage(message) {
565
678
  clearTimeout(this.statusMessageTimer);
@@ -581,14 +694,6 @@ const Q2Select = class {
581
694
  this.openDropdownWithoutActiveElement();
582
695
  }
583
696
  }
584
- visibilityToggle() {
585
- var _a, _b;
586
- const selectedOptionsCount = (_b = (_a = this.selectedOptions) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
587
- const { showSelected } = this;
588
- return (h("div", { class: "multi-select-header" }, h("fieldset", null, h("legend", { "aria-label": loc('tecton.element.select.multiHeader.showing') }, loc('tecton.element.select.multiHeader.showing')), h("div", null, h("input", { class: "sr", type: "radio", id: "all", name: "viewDisplay", value: "all", checked: !showSelected, "aria-label": loc('tecton.element.select.multiHeader.allAriaLabel'), "test-id": "allOptionsButton", onClick: this.showAllOptions, onKeyDown: this.visibilityToggleKeyDown }), h("label", { htmlFor: "all" }, loc('tecton.element.select.multiHeader.all'))), h("div", null, h("input", { class: "sr", type: "radio", id: "selected", disabled: selectedOptionsCount === 0, name: "viewDisplay", value: "selected", "aria-label": loc('tecton.element.select.multiHeader.selectedAriaLabel', [
589
- selectedOptionsCount,
590
- ]), checked: showSelected, "test-id": "selectedOptionsButton", onClick: this.showSelectedOptions, onKeyDown: this.visibilityToggleKeyDown }), h("label", { htmlFor: "selected" }, loc('tecton.element.select.multiHeader.selected', [selectedOptionsCount]))))));
591
- }
592
697
  // #endregion
593
698
  // #region Render Methods
594
699
  renderCustomDisplay() {
@@ -598,13 +703,27 @@ const Q2Select = class {
598
703
  this.checkSelectedDisplayHeight();
599
704
  return (h("slot", { name: "_selected-display", slot: "custom-display" }));
600
705
  }
601
- render() {
706
+ renderOptionsDropdown() {
707
+ return (h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: this.innerInputContainer, open: this.open, "max-height": this.popoverMaxHeight, minHeight: this.popoverMinHeight, direction: this.popDirection, mode: this.popoverMode || undefined, block: true }, h("div", { class: "popover-content" }, h("q2-option-list", { onPopoverState: this.onPopoverState, ref: el => (this.optionList = el), type: "listbox", id: "option-list", "show-selected": this.showSelected, label: this.listLabel, multiple: this.multiple, selectedOptions: this.structuredSelectedOptions, onChange: this.onOptionListChange }, h("slot", null)), h("div", { class: "popover-top-container", ref: el => (this.popoverTopContainer = el), hidden: !this.multiple && !this.hasPopoverTop, tabindex: "-1" }, h("slot", { name: "popover-top" }), this.multiple && this.renderVisibilityToggle())), h("div", { class: "popover-bottom-container", hidden: !this.hasPopoverBottom, tabindex: "-1" }, h("slot", { name: "popover-bottom" }))));
708
+ }
709
+ renderSelectField() {
602
710
  var _a;
603
- return (h("click-elsewhere", { key: 'ee1f153325884056a488d4bdfda9b5ef501cf3be', class: this.wrapperClasses, onChange: this.clickedElsewhere }, h("div", { key: 'd60cf7a63ba2d5af7f67e2a811336255506ad422', "aria-live": "polite", "aria-atomic": "true", role: "status", class: "sr" }, this.statusMessage), h("q2-input", { key: '2a6c022291b99e1561e090bc74c5014fd5628bc4', ref: el => (this.inputField = el), class: "q2-select-input", label: (this.label && loc(this.label)) || '', value: this.selectedDisplay, clearable: (this.clearable && (!!this.value || !!((_a = this.selectedOptions) === null || _a === void 0 ? void 0 : _a.length))) || undefined, errors: (Array.isArray(this.errors) &&
711
+ return (h(Fragment, null, h("div", { "aria-live": "polite", "aria-atomic": "true", role: "status", class: "sr" }, this.statusMessage), h("q2-input", { ref: el => (this.inputField = el), class: "q2-select-input", label: (this.label && loc(this.label)) || '', value: this.selectedDisplay, clearable: (this.clearable && (!!this.value || !!((_a = this.selectedOptions) === null || _a === void 0 ? void 0 : _a.length))) || undefined, errors: (Array.isArray(this.errors) &&
604
712
  this.errors.length > 0 &&
605
713
  this.errors.map(error => loc(error))) ||
606
714
  (this.invalid && ['tecton.element.select.invalid']) ||
607
- [], disabled: this.disabled, optional: this.optional, readonly: !!this.readonly, placeholder: this.placeholder || undefined, hideLabel: this.hideLabel, ariaExpanded: `${this.open}`, ariaControls: "option-list", ariaHaspopup: "listbox", "test-id": "toggleDropdown", "hide-messages": true, iconRight: "chevron-down", onClick: this.inputClickHandler, onInput: this.inputInputHandler, onKeyDown: this.inputKeydownHandler, onFocus: this.inputFocusHandler, onBlur: this.inputBlurHandler, onChange: this.inputChangeHandler, badgeValue: this.badgeValue, badgeTheme: this.inputFocused ? 'primary' : undefined, _role: "combobox", _preventEntry: !this.searchable }, this.renderCustomDisplay()), h("div", { key: 'a29711927968b10f9225994ed41367d8ad35c1a9', class: "custom-display-content", hidden: !this.hasCustomDisplay || !!this.searchText, onClick: this.onCustomDisplayClick }, h("slot", { key: '3e63c82e5bb6a12638f6d5a8f6af8eb246b105a6', name: "q2-select-display" })), this.optionsDropdown()));
715
+ [], disabled: this.disabled, optional: this.optional, readonly: !!this.readonly, placeholder: this.placeholder || undefined, hideLabel: this.hideLabel, ariaExpanded: `${this.open}`, ariaControls: "option-list", ariaHaspopup: "listbox", "test-id": "toggleDropdown", "hide-messages": true, iconRight: "chevron-down", onClick: this.inputClickHandler, onInput: this.inputInputHandler, onKeyDown: this.inputKeydownHandler, onFocus: this.inputFocusHandler, onBlur: this.inputBlurHandler, onChange: this.inputChangeHandler, badgeValue: this.badgeValue, badgeTheme: this.inputFocused ? 'primary' : undefined, _role: "combobox", _preventEntry: !this.searchable }, this.renderCustomDisplay()), h("div", { class: "custom-display-content", hidden: !this.hasCustomDisplay || !!this.searchText, onClick: this.onCustomDisplayClick }, h("slot", { name: "q2-select-display" })), this.renderOptionsDropdown()));
716
+ }
717
+ renderVisibilityToggle() {
718
+ var _a, _b;
719
+ const selectedOptionsCount = (_b = (_a = this.selectedOptions) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
720
+ const { showSelected } = this;
721
+ return (h("div", { class: "multi-select-header" }, h("fieldset", null, h("legend", { "aria-label": loc('tecton.element.select.multiHeader.showing') }, loc('tecton.element.select.multiHeader.showing')), h("div", null, h("input", { class: "sr", type: "radio", id: "all", name: "viewDisplay", value: "all", checked: !showSelected, "aria-label": loc('tecton.element.select.multiHeader.allAriaLabel'), "test-id": "allOptionsButton", onClick: this.showAllOptions, onKeyDown: this.visibilityToggleKeyDown }), h("label", { htmlFor: "all" }, loc('tecton.element.select.multiHeader.all'))), h("div", null, h("input", { class: "sr", type: "radio", id: "selected", disabled: selectedOptionsCount === 0, name: "viewDisplay", value: "selected", "aria-label": loc('tecton.element.select.multiHeader.selectedAriaLabel', [
722
+ selectedOptionsCount,
723
+ ]), checked: showSelected, "test-id": "selectedOptionsButton", onClick: this.showSelectedOptions, onKeyDown: this.visibilityToggleKeyDown }), h("label", { htmlFor: "selected" }, loc('tecton.element.select.multiHeader.selected', [selectedOptionsCount]))))));
724
+ }
725
+ render() {
726
+ return (h("click-elsewhere", { key: 'fc1a03ff20dbce5b036f753bf5eee835004b16b6', class: this.wrapperClasses, onChange: this.clickedElsewhere }, this.renderSelectField()));
608
727
  }
609
728
  get hostElement() { return getElement(this); }
610
729
  static get watchers() { return {