q2-tecton-elements 1.45.3 → 1.45.5

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 (332) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +80 -38
  2. package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-0e15dc8d.js → index-d1633d7b.js} +33 -1
  4. package/dist/cjs/index-d1633d7b.js.map +1 -0
  5. package/dist/cjs/{index-0430339e.js → index-f69742cf.js} +1 -1
  6. package/dist/cjs/{index-0430339e.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-icon.cjs.entry.js.map +1 -1
  29. package/dist/cjs/q2-input.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-item.cjs.entry.js +2 -2
  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_2.cjs.entry.js +3 -3
  36. package/dist/cjs/q2-option-list.cjs.entry.js +2 -2
  37. package/dist/cjs/q2-pagination.cjs.entry.js +3 -3
  38. package/dist/cjs/q2-pill.cjs.entry.js +2 -2
  39. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  40. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  41. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  42. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  43. package/dist/cjs/q2-select.cjs.entry.js +100 -11
  44. package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
  45. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  46. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  47. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  48. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  49. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  50. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  51. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  53. package/dist/collection/collection-manifest.json +5 -5
  54. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
  55. package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
  56. package/dist/collection/components/q2-calendar/q2-calendar.js +1 -1
  57. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  58. package/dist/collection/components/q2-carousel/q2-carousel.js +1 -1
  59. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  60. package/dist/collection/components/q2-chart-area/q2-chart-area.js +1 -1
  61. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
  62. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +1 -1
  63. package/dist/collection/components/q2-checkbox/q2-checkbox.js +1 -1
  64. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +1 -1
  65. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  66. package/dist/collection/components/q2-data-table/q2-data-table.js +7 -7
  67. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  68. package/dist/collection/components/q2-dropdown/q2-dropdown.js +3 -1
  69. package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
  70. package/dist/collection/components/q2-editable-field/q2-editable-field.js +2 -2
  71. package/dist/collection/components/q2-icon/q2-icon.js.map +1 -1
  72. package/dist/collection/components/q2-input/q2-input.js +2 -2
  73. package/dist/collection/components/q2-item/q2-item.js +1 -1
  74. package/dist/collection/components/q2-list/q2-list.js +1 -1
  75. package/dist/collection/components/q2-loc/q2-loc.js +1 -1
  76. package/dist/collection/components/q2-message/q2-message.js +1 -1
  77. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  78. package/dist/collection/components/q2-option/q2-option.js +1 -1
  79. package/dist/collection/components/q2-option-list/q2-option-list.js +4 -4
  80. package/dist/collection/components/q2-pagination/q2-pagination.js +2 -2
  81. package/dist/collection/components/q2-pill/q2-pill.js +1 -1
  82. package/dist/collection/components/q2-popover/q2-popover.css +19 -11
  83. package/dist/collection/components/q2-popover/q2-popover.js +81 -38
  84. package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
  85. package/dist/collection/components/q2-radio/q2-radio.js +1 -1
  86. package/dist/collection/components/q2-radio-group/q2-radio-group.js +1 -1
  87. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  88. package/dist/collection/components/q2-section/q2-section.js +2 -2
  89. package/dist/collection/components/q2-select/q2-select.js +108 -12
  90. package/dist/collection/components/q2-select/q2-select.js.map +1 -1
  91. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  92. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -3
  93. package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
  94. package/dist/collection/utils/index.js +31 -0
  95. package/dist/collection/utils/index.js.map +1 -1
  96. package/dist/components/index2.js +32 -1
  97. package/dist/components/index2.js.map +1 -1
  98. package/dist/components/q2-action-sheet.js +1 -1
  99. package/dist/components/q2-avatar2.js +1 -1
  100. package/dist/components/q2-calendar.js +1 -1
  101. package/dist/components/q2-carousel-pane.js +2 -2
  102. package/dist/components/q2-carousel.js +1 -1
  103. package/dist/components/q2-chart-area.js +1 -1
  104. package/dist/components/q2-chart-bar.js +1 -1
  105. package/dist/components/q2-chart-donut.js +1 -1
  106. package/dist/components/q2-checkbox-group.js +1 -1
  107. package/dist/components/q2-checkbox2.js +1 -1
  108. package/dist/components/q2-currency.js +1 -1
  109. package/dist/components/q2-data-table.js +1 -1
  110. package/dist/components/q2-detail.js +1 -1
  111. package/dist/components/q2-dropdown.js +3 -1
  112. package/dist/components/q2-dropdown.js.map +1 -1
  113. package/dist/components/q2-editable-field.js +1 -1
  114. package/dist/components/q2-icon2.js.map +1 -1
  115. package/dist/components/q2-input2.js +1 -1
  116. package/dist/components/q2-item.js +1 -1
  117. package/dist/components/q2-list.js +1 -1
  118. package/dist/components/q2-loc.js +1 -1
  119. package/dist/components/q2-message2.js +1 -1
  120. package/dist/components/q2-month-picker.js +2 -2
  121. package/dist/components/q2-optgroup2.js +1 -1
  122. package/dist/components/q2-option-list2.js +1 -1
  123. package/dist/components/q2-option2.js +1 -1
  124. package/dist/components/q2-pagination.js +2 -2
  125. package/dist/components/q2-pill.js +1 -1
  126. package/dist/components/q2-popover2.js +80 -38
  127. package/dist/components/q2-popover2.js.map +1 -1
  128. package/dist/components/q2-radio-group.js +1 -1
  129. package/dist/components/q2-radio.js +1 -1
  130. package/dist/components/q2-relative-time.js +1 -1
  131. package/dist/components/q2-section.js +2 -2
  132. package/dist/components/q2-select.js +101 -12
  133. package/dist/components/q2-select.js.map +1 -1
  134. package/dist/components/q2-stepper-pane.js +1 -1
  135. package/dist/components/q2-stepper.js +1 -1
  136. package/dist/components/q2-textarea.js +1 -1
  137. package/dist/esm/click-elsewhere_2.entry.js +80 -38
  138. package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
  139. package/dist/esm/{index-e940b40e.js → index-3184c760.js} +1 -1
  140. package/dist/esm/{index-e940b40e.js.map → index-3184c760.js.map} +1 -1
  141. package/dist/esm/{index-0a702dd6.js → index-bcdf5800.js} +33 -2
  142. package/dist/esm/index-bcdf5800.js.map +1 -0
  143. package/dist/esm/loader.js +1 -1
  144. package/dist/esm/q2-action-sheet.entry.js +2 -2
  145. package/dist/esm/q2-avatar.entry.js +1 -1
  146. package/dist/esm/q2-btn_2.entry.js +1 -1
  147. package/dist/esm/q2-calendar.entry.js +3 -3
  148. package/dist/esm/q2-card.entry.js +1 -1
  149. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  150. package/dist/esm/q2-carousel.entry.js +2 -2
  151. package/dist/esm/q2-chart-area.entry.js +2 -2
  152. package/dist/esm/q2-chart-bar.entry.js +2 -2
  153. package/dist/esm/q2-chart-donut.entry.js +2 -2
  154. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  155. package/dist/esm/q2-checkbox.entry.js +2 -2
  156. package/dist/esm/q2-currency.entry.js +1 -1
  157. package/dist/esm/q2-data-table.entry.js +2 -2
  158. package/dist/esm/q2-detail.entry.js +2 -2
  159. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  160. package/dist/esm/q2-dropdown.entry.js +4 -2
  161. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  162. package/dist/esm/q2-editable-field.entry.js +2 -2
  163. package/dist/esm/q2-icon.entry.js +1 -1
  164. package/dist/esm/q2-icon.entry.js.map +1 -1
  165. package/dist/esm/q2-input.entry.js +2 -2
  166. package/dist/esm/q2-item.entry.js +2 -2
  167. package/dist/esm/q2-list.entry.js +2 -2
  168. package/dist/esm/q2-loc.entry.js +2 -2
  169. package/dist/esm/q2-message.entry.js +2 -2
  170. package/dist/esm/q2-month-picker.entry.js +3 -3
  171. package/dist/esm/q2-optgroup_2.entry.js +3 -3
  172. package/dist/esm/q2-option-list.entry.js +2 -2
  173. package/dist/esm/q2-pagination.entry.js +3 -3
  174. package/dist/esm/q2-pill.entry.js +2 -2
  175. package/dist/esm/q2-radio-group.entry.js +2 -2
  176. package/dist/esm/q2-radio.entry.js +2 -2
  177. package/dist/esm/q2-relative-time.entry.js +2 -2
  178. package/dist/esm/q2-section.entry.js +3 -3
  179. package/dist/esm/q2-select.entry.js +100 -11
  180. package/dist/esm/q2-select.entry.js.map +1 -1
  181. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  182. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  183. package/dist/esm/q2-stepper.entry.js +2 -2
  184. package/dist/esm/q2-tab-container.entry.js +1 -1
  185. package/dist/esm/q2-tag.entry.js +1 -1
  186. package/dist/esm/q2-tecton-elements.js +1 -1
  187. package/dist/esm/q2-textarea.entry.js +2 -2
  188. package/dist/esm/q2-tooltip.entry.js +1 -1
  189. package/dist/jest.setup.js +33 -0
  190. package/dist/jest.setup.js.map +1 -0
  191. package/dist/q2-tecton-elements/{p-c016bd18.entry.js → p-0a34d6b0.entry.js} +2 -2
  192. package/dist/q2-tecton-elements/{p-d635e39f.entry.js → p-0f0bf0c8.entry.js} +2 -2
  193. package/dist/q2-tecton-elements/{p-4b81a121.entry.js → p-100938c8.entry.js} +2 -2
  194. package/dist/q2-tecton-elements/{p-71180fcd.entry.js → p-16316638.entry.js} +2 -2
  195. package/dist/q2-tecton-elements/{p-7c12ba02.entry.js → p-19d06f9f.entry.js} +2 -2
  196. package/dist/q2-tecton-elements/{p-debd5249.entry.js → p-1ac97a0c.entry.js} +2 -2
  197. package/dist/q2-tecton-elements/{p-b3d10d52.entry.js → p-1c5ae6c1.entry.js} +2 -2
  198. package/dist/q2-tecton-elements/{p-445990a8.entry.js → p-1d8bfe8e.entry.js} +2 -2
  199. package/dist/q2-tecton-elements/{p-a214077c.entry.js → p-2adbc99f.entry.js} +2 -2
  200. package/dist/q2-tecton-elements/{p-f0813fb4.entry.js → p-2b512eb9.entry.js} +2 -2
  201. package/dist/q2-tecton-elements/p-2b512eb9.entry.js.map +1 -0
  202. package/dist/q2-tecton-elements/{p-391acc00.entry.js → p-33ac1c35.entry.js} +2 -2
  203. package/dist/q2-tecton-elements/{p-515d424b.entry.js → p-3892b0eb.entry.js} +2 -2
  204. package/dist/q2-tecton-elements/{p-63192fac.entry.js → p-3cf22783.entry.js} +2 -2
  205. package/dist/q2-tecton-elements/{p-df297a77.entry.js → p-49b6b300.entry.js} +2 -2
  206. package/dist/q2-tecton-elements/p-4cec59d6.entry.js +2 -0
  207. package/dist/q2-tecton-elements/p-4cec59d6.entry.js.map +1 -0
  208. package/dist/q2-tecton-elements/{p-50bd4437.entry.js → p-556b18ac.entry.js} +2 -2
  209. package/dist/q2-tecton-elements/{p-3b1ea100.entry.js → p-557e47c0.entry.js} +2 -2
  210. package/dist/q2-tecton-elements/{p-fcc84527.entry.js → p-5604e541.entry.js} +2 -2
  211. package/dist/q2-tecton-elements/{p-b376c111.entry.js → p-5af4926e.entry.js} +2 -2
  212. package/dist/q2-tecton-elements/{p-d9e19f70.entry.js → p-632e1e0c.entry.js} +2 -2
  213. package/dist/q2-tecton-elements/{p-1c17d118.entry.js → p-69df8a32.entry.js} +2 -2
  214. package/dist/q2-tecton-elements/{p-7523305d.entry.js → p-8463a1bb.entry.js} +2 -2
  215. package/dist/q2-tecton-elements/p-8ba6e825.js +2 -0
  216. package/dist/q2-tecton-elements/p-8ba6e825.js.map +1 -0
  217. package/dist/q2-tecton-elements/{p-57bf9342.entry.js → p-8e047dc7.entry.js} +2 -2
  218. package/dist/q2-tecton-elements/{p-4bbe563f.entry.js → p-911b7798.entry.js} +2 -2
  219. package/dist/q2-tecton-elements/{p-aec64fcb.entry.js → p-998ced65.entry.js} +2 -2
  220. package/dist/q2-tecton-elements/{p-2132da06.entry.js → p-a39898b8.entry.js} +2 -2
  221. package/dist/q2-tecton-elements/{p-a977e723.entry.js → p-a3e711e5.entry.js} +2 -2
  222. package/dist/q2-tecton-elements/{p-22661533.entry.js → p-a68fd5f3.entry.js} +2 -2
  223. package/dist/q2-tecton-elements/{p-bffda54d.entry.js → p-a9c6ebda.entry.js} +2 -2
  224. package/dist/q2-tecton-elements/{p-4570ff06.entry.js → p-b41960b3.entry.js} +2 -2
  225. package/dist/q2-tecton-elements/{p-f1265647.entry.js → p-bc199dfa.entry.js} +2 -2
  226. package/dist/q2-tecton-elements/{p-47868d6d.entry.js → p-c1f32312.entry.js} +2 -2
  227. package/dist/q2-tecton-elements/{p-05b015a8.entry.js → p-cb21467a.entry.js} +2 -2
  228. package/dist/q2-tecton-elements/p-cd01a560.entry.js +2 -0
  229. package/dist/q2-tecton-elements/{p-bfe9d688.entry.js.map → p-cd01a560.entry.js.map} +1 -1
  230. package/dist/q2-tecton-elements/{p-b7d5fd12.entry.js → p-ce907c0c.entry.js} +2 -2
  231. package/dist/q2-tecton-elements/p-da6c1104.entry.js +2 -0
  232. package/dist/q2-tecton-elements/p-da6c1104.entry.js.map +1 -0
  233. package/dist/q2-tecton-elements/{p-dc057a9c.entry.js → p-e05ddf75.entry.js} +2 -2
  234. package/dist/q2-tecton-elements/{p-d1a9ed3d.entry.js → p-e168e356.entry.js} +2 -2
  235. package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js → p-e216d48d.entry.js} +2 -2
  236. package/dist/q2-tecton-elements/{p-aed969d4.entry.js → p-e77d1a92.entry.js} +2 -2
  237. package/dist/q2-tecton-elements/{p-7ce6e587.js → p-f1e887f5.js} +1 -1
  238. package/dist/q2-tecton-elements/{p-e762526f.entry.js → p-fe6db5c3.entry.js} +2 -2
  239. package/dist/q2-tecton-elements/{p-2436c843.entry.js → p-ff541a15.entry.js} +2 -2
  240. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  241. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  242. package/dist/test/elements/q2-calendar-test.e2e.js +3 -3
  243. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  244. package/dist/test/elements/q2-dropdown-test.e2e.js +2 -14
  245. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  246. package/dist/test/elements/q2-pagination-test.e2e.js +1 -1
  247. package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
  248. package/dist/test/elements/q2-pill-test.e2e.js +1 -1
  249. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  250. package/dist/test/elements/q2-popover-test.e2e.js +1 -34
  251. package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
  252. package/dist/test/elements/q2-popover-test.spec.js +896 -374
  253. package/dist/test/elements/q2-popover-test.spec.js.map +1 -1
  254. package/dist/test/elements/q2-select-test.e2e.js +1 -1
  255. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  256. package/dist/test/elements/q2-select-test.spec.js +552 -0
  257. package/dist/test/elements/q2-select-test.spec.js.map +1 -0
  258. package/dist/test/elements/q2-tag-test.e2e.js +1 -1
  259. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  260. package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +10 -0
  261. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +60 -0
  262. package/dist/types/components/q2-calendar/q2-calendar.d.ts +324 -0
  263. package/dist/types/components/q2-carousel/q2-carousel.d.ts +2 -2
  264. package/dist/types/components/q2-data-table/q2-data-table.d.ts +221 -0
  265. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +130 -0
  266. package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +45 -0
  267. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +136 -0
  268. package/dist/types/components/q2-loading/skeleton/shapes.d.ts +1 -0
  269. package/dist/types/components/q2-optgroup/q2-optgroup.d.ts +1 -1
  270. package/dist/types/components/q2-option-list/q2-option-list.d.ts +99 -0
  271. package/dist/types/components/q2-pagination/q2-pagination.d.ts +54 -0
  272. package/dist/types/components/q2-pill/q2-pill.d.ts +102 -0
  273. package/dist/types/components/q2-popover/q2-popover.d.ts +5 -3
  274. package/dist/types/components/q2-select/q2-select.d.ts +240 -0
  275. package/dist/types/components/q2-stepper/q2-stepper.d.ts +52 -0
  276. package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +62 -0
  277. package/dist/types/components/q2-tab-container/q2-tab-container.d.ts +2 -2
  278. package/dist/types/components/q2-tag/q2-tag.d.ts +59 -0
  279. package/dist/types/utils/action-sheet.d.ts +12 -0
  280. package/dist/types/utils/index.d.ts +1 -0
  281. package/package.json +3 -3
  282. package/dist/cjs/index-0e15dc8d.js.map +0 -1
  283. package/dist/esm/index-0a702dd6.js.map +0 -1
  284. package/dist/q2-tecton-elements/p-42302f6f.js +0 -2
  285. package/dist/q2-tecton-elements/p-42302f6f.js.map +0 -1
  286. package/dist/q2-tecton-elements/p-68556733.entry.js +0 -2
  287. package/dist/q2-tecton-elements/p-68556733.entry.js.map +0 -1
  288. package/dist/q2-tecton-elements/p-bfe9d688.entry.js +0 -2
  289. package/dist/q2-tecton-elements/p-cadceb00.entry.js +0 -2
  290. package/dist/q2-tecton-elements/p-cadceb00.entry.js.map +0 -1
  291. package/dist/q2-tecton-elements/p-f0813fb4.entry.js.map +0 -1
  292. /package/dist/q2-tecton-elements/{p-c016bd18.entry.js.map → p-0a34d6b0.entry.js.map} +0 -0
  293. /package/dist/q2-tecton-elements/{p-d635e39f.entry.js.map → p-0f0bf0c8.entry.js.map} +0 -0
  294. /package/dist/q2-tecton-elements/{p-4b81a121.entry.js.map → p-100938c8.entry.js.map} +0 -0
  295. /package/dist/q2-tecton-elements/{p-71180fcd.entry.js.map → p-16316638.entry.js.map} +0 -0
  296. /package/dist/q2-tecton-elements/{p-7c12ba02.entry.js.map → p-19d06f9f.entry.js.map} +0 -0
  297. /package/dist/q2-tecton-elements/{p-debd5249.entry.js.map → p-1ac97a0c.entry.js.map} +0 -0
  298. /package/dist/q2-tecton-elements/{p-b3d10d52.entry.js.map → p-1c5ae6c1.entry.js.map} +0 -0
  299. /package/dist/q2-tecton-elements/{p-445990a8.entry.js.map → p-1d8bfe8e.entry.js.map} +0 -0
  300. /package/dist/q2-tecton-elements/{p-a214077c.entry.js.map → p-2adbc99f.entry.js.map} +0 -0
  301. /package/dist/q2-tecton-elements/{p-391acc00.entry.js.map → p-33ac1c35.entry.js.map} +0 -0
  302. /package/dist/q2-tecton-elements/{p-515d424b.entry.js.map → p-3892b0eb.entry.js.map} +0 -0
  303. /package/dist/q2-tecton-elements/{p-63192fac.entry.js.map → p-3cf22783.entry.js.map} +0 -0
  304. /package/dist/q2-tecton-elements/{p-df297a77.entry.js.map → p-49b6b300.entry.js.map} +0 -0
  305. /package/dist/q2-tecton-elements/{p-50bd4437.entry.js.map → p-556b18ac.entry.js.map} +0 -0
  306. /package/dist/q2-tecton-elements/{p-3b1ea100.entry.js.map → p-557e47c0.entry.js.map} +0 -0
  307. /package/dist/q2-tecton-elements/{p-fcc84527.entry.js.map → p-5604e541.entry.js.map} +0 -0
  308. /package/dist/q2-tecton-elements/{p-b376c111.entry.js.map → p-5af4926e.entry.js.map} +0 -0
  309. /package/dist/q2-tecton-elements/{p-d9e19f70.entry.js.map → p-632e1e0c.entry.js.map} +0 -0
  310. /package/dist/q2-tecton-elements/{p-1c17d118.entry.js.map → p-69df8a32.entry.js.map} +0 -0
  311. /package/dist/q2-tecton-elements/{p-7523305d.entry.js.map → p-8463a1bb.entry.js.map} +0 -0
  312. /package/dist/q2-tecton-elements/{p-57bf9342.entry.js.map → p-8e047dc7.entry.js.map} +0 -0
  313. /package/dist/q2-tecton-elements/{p-4bbe563f.entry.js.map → p-911b7798.entry.js.map} +0 -0
  314. /package/dist/q2-tecton-elements/{p-aec64fcb.entry.js.map → p-998ced65.entry.js.map} +0 -0
  315. /package/dist/q2-tecton-elements/{p-2132da06.entry.js.map → p-a39898b8.entry.js.map} +0 -0
  316. /package/dist/q2-tecton-elements/{p-a977e723.entry.js.map → p-a3e711e5.entry.js.map} +0 -0
  317. /package/dist/q2-tecton-elements/{p-22661533.entry.js.map → p-a68fd5f3.entry.js.map} +0 -0
  318. /package/dist/q2-tecton-elements/{p-bffda54d.entry.js.map → p-a9c6ebda.entry.js.map} +0 -0
  319. /package/dist/q2-tecton-elements/{p-4570ff06.entry.js.map → p-b41960b3.entry.js.map} +0 -0
  320. /package/dist/q2-tecton-elements/{p-f1265647.entry.js.map → p-bc199dfa.entry.js.map} +0 -0
  321. /package/dist/q2-tecton-elements/{p-47868d6d.entry.js.map → p-c1f32312.entry.js.map} +0 -0
  322. /package/dist/q2-tecton-elements/{p-05b015a8.entry.js.map → p-cb21467a.entry.js.map} +0 -0
  323. /package/dist/q2-tecton-elements/{p-b7d5fd12.entry.js.map → p-ce907c0c.entry.js.map} +0 -0
  324. /package/dist/q2-tecton-elements/{p-dc057a9c.entry.js.map → p-e05ddf75.entry.js.map} +0 -0
  325. /package/dist/q2-tecton-elements/{p-d1a9ed3d.entry.js.map → p-e168e356.entry.js.map} +0 -0
  326. /package/dist/q2-tecton-elements/{p-5dc5c4e2.entry.js.map → p-e216d48d.entry.js.map} +0 -0
  327. /package/dist/q2-tecton-elements/{p-aed969d4.entry.js.map → p-e77d1a92.entry.js.map} +0 -0
  328. /package/dist/q2-tecton-elements/{p-7ce6e587.js.map → p-f1e887f5.js.map} +0 -0
  329. /package/dist/q2-tecton-elements/{p-e762526f.entry.js.map → p-fe6db5c3.entry.js.map} +0 -0
  330. /package/dist/q2-tecton-elements/{p-2436c843.entry.js.map → p-ff541a15.entry.js.map} +0 -0
  331. /package/dist/types/{workspace/workspace/tecton-production_release_1.45.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
  332. /package/dist/types/{workspace/workspace/tecton-production_release_1.45.x → builds/q2e/development/tecton/tecton}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -0,0 +1,240 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter, ComponentInterface } from '../../stencil-public-runtime';
3
+ import { IEventDetail, Q2InputCustomEvent, Q2OptionListCustomEvent } from "../../components";
4
+ import { IOptionValue } from '../q2-option-list/q2-option-list';
5
+ export declare class Q2Select implements ComponentInterface {
6
+ /** Disables all interaction with the field and leverages the disabled visual style of `q2-input`. */
7
+ disabled: boolean;
8
+ /**
9
+ * The presence of `errors` will mark the field as invalid, putting it into an error state.
10
+ * @localizable
11
+ */
12
+ errors: string[];
13
+ /**
14
+ * Hide's the field's `<label>` element from view.
15
+ * @warning
16
+ * Only use when a visible label is impractical.
17
+ */
18
+ hideLabel: boolean;
19
+ /**
20
+ * Instructs the component to use the action sheet workflow for displaying its options.
21
+ *
22
+ * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).
23
+ * @warning
24
+ * If your `q2-select` renders inside of an iframe, and you are using multiline/robust content options,
25
+ * any custom CSS you apply to your options will not get passed up to the platform which displays the action sheet.
26
+ * For this reason, we strongly suggest using the [q2-card](https://tecton.q2developer.com/ui/q2-card/) component since its styling is managed by Tecton.
27
+ */
28
+ hoist: boolean;
29
+ /** Determines whether to show an error state. Its primary use-case is for an unfilled field. */
30
+ invalid: boolean;
31
+ /**
32
+ * The text that will be used as the label for the field.
33
+ * @localizable
34
+ */
35
+ label: string;
36
+ /**
37
+ * Determines the label that is applied to the option list for accessibility purposes.
38
+ * @localizable
39
+ */
40
+ listLabel: string;
41
+ /** The minimum number of rows the component will try to display below or above the component when opened. */
42
+ minRows: number;
43
+ /** Enables text wrapping for `q2-option` elements. When `false`, the text truncates and does not wrap. */
44
+ multilineOptions: boolean;
45
+ /** Enables multi-select functionality. */
46
+ multiple: boolean;
47
+ /** Appends "(optional)" to the field label, and sets `aria-required` on the nested input tag to `false`. */
48
+ optional: boolean;
49
+ /**
50
+ * Text that appears within the field when it is blurred and empty.
51
+ * Placeholder text disappears when the user selects an option.
52
+ * @localizable
53
+ */
54
+ placeholder: string;
55
+ /** @deprecated */
56
+ popDirection: 'up' | 'down';
57
+ /**
58
+ * Determines the display mode of the popover.
59
+ *
60
+ * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.
61
+ *
62
+ * @info
63
+ * This is a temporary solution to work around styling issues related to using fixed positioning for the popover
64
+ * when nested inside of elements with transform properties. This will be removed once the popover API is available
65
+ * for use.
66
+ */
67
+ popoverMode: 'legacy';
68
+ /**
69
+ * Appends "(read only)" to the field label, and field becomes unusable, but remains focusable.
70
+ * Takes priority over `optional` if both are `true`.
71
+ */
72
+ readonly: boolean;
73
+ /** Enables search functionality. */
74
+ searchable: boolean;
75
+ /**
76
+ * Each item in this array should correspond to the value of a `q2-option` element.
77
+ * This property is only relevant for `multiple` (i.e., multi-select) implementations.
78
+ */
79
+ selectedOptions: string[];
80
+ /**
81
+ * The current value for the select. This should correspond to the value of a nested q2-option element.
82
+ * This property is only relevant for single-select implementations.
83
+ */
84
+ value: string;
85
+ /** @deprecated */
86
+ ariaLabel: string;
87
+ hostElement: HTMLElement;
88
+ open: boolean;
89
+ showSelected: boolean;
90
+ searchText: string;
91
+ hasCustomDisplay: boolean;
92
+ hasPopoverTop: boolean;
93
+ hasPopoverBottom: boolean;
94
+ inputFocused: boolean;
95
+ statusMessage: string;
96
+ prioritizeSearch: boolean;
97
+ structuredSelectedOptions: IOptionValue[];
98
+ inputField?: HTMLQ2InputElement;
99
+ lastTouchWasInPopover: boolean;
100
+ optionList: HTMLQ2OptionListElement;
101
+ popoverElement?: HTMLQ2PopoverElement;
102
+ popoverTopContainer?: HTMLDivElement;
103
+ scheduledAfterRender: (() => void)[];
104
+ mutationObserver: MutationObserver;
105
+ originalSearchable: boolean;
106
+ componentWillLoad(): void;
107
+ componentDidLoad(): void;
108
+ componentDidRender(): void;
109
+ disconnectedCallback(): void;
110
+ get isModule(): boolean;
111
+ get innerInputField(): HTMLInputElement | HTMLButtonElement;
112
+ get innerInputContainer(): HTMLElement;
113
+ get badgeValue(): string;
114
+ get popoverMinHeight(): number;
115
+ get selectedDisplay(): string;
116
+ get selectedDisplaySlot(): HTMLElement;
117
+ get firstSelectedValue(): string;
118
+ get firstSelectedOptionElement(): HTMLQ2OptionElement;
119
+ get optionElements(): HTMLQ2OptionElement[];
120
+ get wrapperClasses(): string;
121
+ buildStructuredSelectedOptions(): void;
122
+ ariaLabelObserver(): void;
123
+ valueUpdated(): void;
124
+ handleMultilineOptionsUpdate(newValue: any, oldValue: any): void;
125
+ openChanged(isOpen: boolean): void;
126
+ /**
127
+ * Emitted when an option is selected or deselected.
128
+ *
129
+ * When the multi-select is enabled, the `value` property will be `undefined` and the `selectedOptions` property
130
+ * will contain the selected option values.
131
+ *
132
+ * @legacyEvent
133
+ */
134
+ change: EventEmitter<{
135
+ value: string;
136
+ selectedOptions: string[];
137
+ }>;
138
+ /**
139
+ * Emitted when the input value changes.
140
+ *
141
+ * Requires the `searchable` prop to be set to `true`.
142
+ */
143
+ input: EventEmitter<{
144
+ query: string;
145
+ }>;
146
+ _togglePopover(): void;
147
+ /**
148
+ * Emulates clicking the `<input>` to display the popover if it is hidden.
149
+ *
150
+ * @testOnly
151
+ */
152
+ openPopover(): Promise<void>;
153
+ /**
154
+ * Emulates clicking the `<input>` to hide the popover if it is visible.
155
+ *
156
+ * @testOnly
157
+ */
158
+ closePopover(): Promise<void>;
159
+ /**
160
+ * Emulates clicking the `<input>` to display the popover and selecting the option(s) with the specified value(s).
161
+ *
162
+ * If the multi-select is enabled and the `closePopover` argument is `true` (default), the popover will be closed
163
+ * after the option(s) are selected.
164
+ *
165
+ * @testOnly
166
+ */
167
+ setValue(values: string | string[], options?: {
168
+ closePopover?: boolean;
169
+ }): Promise<void>;
170
+ /**
171
+ * Emulates focusing the `<input>`, entering the provided value, and emitting an `input` event.
172
+ *
173
+ * @warning
174
+ * Only applicable when the input is searchable.
175
+ *
176
+ * @testOnly
177
+ */
178
+ searchOptions(query: string): void;
179
+ keydownHandler(event: KeyboardEvent): void;
180
+ onHostElementChange(event: CustomEvent<{
181
+ value: string;
182
+ selectedOptions: string[];
183
+ }>): void;
184
+ onHostElementInput(event: CustomEvent): void;
185
+ delegateFocus(event: FocusEvent): void;
186
+ handleFocusout(event: FocusEvent): void;
187
+ handleSelectedDisplay(event: CustomEvent): void;
188
+ executeActionSheet(event: MouseEvent | KeyboardEvent): Promise<void>;
189
+ addTouchEventListeners: () => void;
190
+ handleSelectionChanges(changeDetails: {
191
+ value?: string;
192
+ values?: IOptionValue[];
193
+ }): void;
194
+ initEventListeners: () => void;
195
+ initMutationObserver: () => void;
196
+ showSelectedOptions: () => void;
197
+ showAllOptions: () => void;
198
+ clearValue(): void;
199
+ calculateMultiSelectSelectedDisplay(): string;
200
+ calculateSingleSelectSelectedDisplay(): string;
201
+ onMutationObserved: () => void;
202
+ onOptionListChange: (event: Q2OptionListCustomEvent<{
203
+ value: string;
204
+ values: IOptionValue[];
205
+ }>) => void;
206
+ openDropdownWithoutActiveElement(): void;
207
+ closeDropdown(): void;
208
+ destroyEventListeners: () => void;
209
+ clearSearchText(): void;
210
+ toggleDropdown(): void;
211
+ focusInput(): void;
212
+ handleOptionListExternalKeydown(event: KeyboardEvent): void;
213
+ handleOrientationChange: () => void;
214
+ handleTouchStart: (event: TouchEvent) => void;
215
+ statusMessageTimer: NodeJS.Timeout;
216
+ setStatusMessage(message: any): void;
217
+ checkSelectedOptions(): void;
218
+ clearSelectedDisplay(): void;
219
+ checkSelectedDisplay(): void | HTMLElement;
220
+ checkSelectedDisplayHeight(): void;
221
+ onPopoverState: ({ detail: { open, action }, }: CustomEvent<{
222
+ open: boolean;
223
+ action: 'close' | 'select' | 'open';
224
+ }>) => void;
225
+ inputKeydownHandler: (event: KeyboardEvent) => Promise<void>;
226
+ shouldClearSearchText(event: KeyboardEvent): boolean;
227
+ visibilityToggleKeyDown: (event: KeyboardEvent) => void;
228
+ inputClickHandler: (event: MouseEvent) => Promise<void>;
229
+ inputInputHandler: (event: Q2InputCustomEvent<IEventDetail> & InputEvent) => void;
230
+ inputFocusHandler: () => void;
231
+ inputBlurHandler: () => void;
232
+ inputChangeHandler: (event: Event) => void;
233
+ clickedElsewhere: (event: CustomEvent) => void;
234
+ onCustomDisplayClick: (event: MouseEvent) => void;
235
+ removeTouchEventListeners: () => void;
236
+ renderCustomDisplay(): any;
237
+ render(): any;
238
+ optionsDropdown(): any;
239
+ visibilityToggle(): any;
240
+ }
@@ -0,0 +1,52 @@
1
+ import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
+ export declare class Q2Stepper implements ComponentInterface {
3
+ /** The currently selected step. */
4
+ currentStep: number;
5
+ /**
6
+ * Used to determine the number of steps in the stepper.
7
+ * @private
8
+ */
9
+ stepCount: number;
10
+ /**
11
+ * The last step the user may navigate to.
12
+ * @info
13
+ * Will be managed automatically if not provided.
14
+ */
15
+ lastEnabledStep: number;
16
+ hostElement: HTMLElement;
17
+ /**
18
+ * Emitted when the selected step changes.
19
+ * @legacyEvent
20
+ */
21
+ change: EventEmitter;
22
+ contentChangeTriggerCount: number;
23
+ scrollEnabled: boolean;
24
+ showScrollLeft: boolean;
25
+ showScrollRight: boolean;
26
+ listElement: HTMLUListElement;
27
+ resizeObserver: ResizeObserver;
28
+ scheduledAfterRender: (() => void)[];
29
+ componentWillLoad(): void;
30
+ componentDidLoad(): void;
31
+ componentDidRender(): void;
32
+ disconnectedCallback(): void;
33
+ currentStepChanged(stepNumber: number): void;
34
+ defaultChangeHandler(event: CustomEvent): void;
35
+ delegateFocus(event: FocusEvent): void;
36
+ statusChangeHandler(event: CustomEvent): void;
37
+ contentChangeHandler(): void;
38
+ get allPanes(): NodeListOf<HTMLQ2StepperPaneElement>;
39
+ onSlotChange: () => void;
40
+ onScrollBtnClick: (direction: 'left' | 'right') => void;
41
+ onStepClick: (event: any, selectedStep: number) => void;
42
+ onStepKeyDown: (event: KeyboardEvent, stepNumber: number) => void;
43
+ showStep(stepNumber: number): void;
44
+ checkForPanes: () => void;
45
+ checkScrollState: () => void;
46
+ resizeIframe(): void;
47
+ showStepPane(stepNumber: number): void;
48
+ focusStep(stepNumber: number, scrollIntoView?: boolean, forceFocus?: boolean): void;
49
+ getPaneSlotOrProperty(pane: HTMLQ2StepperPaneElement, slotName: 'description' | 'label'): string;
50
+ renderStepBtn(stepIndex: number): any;
51
+ render(): any;
52
+ }
@@ -0,0 +1,62 @@
1
+ import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
+ interface IBaseStructuredPane {
3
+ id: string;
4
+ label: string;
5
+ description: string;
6
+ isActive: boolean;
7
+ status: string;
8
+ }
9
+ interface IStructuredPane extends IBaseStructuredPane {
10
+ children: IBaseStructuredPane[];
11
+ }
12
+ export declare class Q2StepperVertical implements ComponentInterface {
13
+ /** The `id` of the currently selected `q2-stepper-pane`. */
14
+ currentStepId: string;
15
+ hostElement: HTMLElement;
16
+ /**
17
+ * Emitted when the selected step changes.
18
+ * @legacyEvent
19
+ */
20
+ change: EventEmitter<{
21
+ selectedStep: HTMLQ2StepperPaneElement;
22
+ selectedStepId: string;
23
+ currentStepId: string;
24
+ }>;
25
+ structuredPanes: IStructuredPane[];
26
+ mutationObserver: MutationObserver;
27
+ expandedStepChildrenList: HTMLUListElement;
28
+ scheduledAfterRender: (() => void)[];
29
+ componentWillLoad(): void;
30
+ componentDidLoad(): void;
31
+ componentWillUpdate(): void;
32
+ componentDidRender(): void;
33
+ disconnectedCallback(): void;
34
+ get allRootPanes(): HTMLQ2StepperPaneElement[];
35
+ get allPanes(): HTMLQ2StepperPaneElement[];
36
+ setDefaultPane(): void;
37
+ determinePaneChanges: (mutations: MutationRecord[]) => void;
38
+ getStepId(currentStepId: string, goTo: string): string;
39
+ showStep(stepId: string): void;
40
+ extractDetails(pane: HTMLQ2StepperPaneElement): {
41
+ id: string;
42
+ label: string;
43
+ description: string;
44
+ status: "error" | "complete" | "locked";
45
+ };
46
+ buildPaneList: () => void;
47
+ resizeIframe(): void;
48
+ openCurrentStepChildren(): void;
49
+ showStepPane(stepId: string): void;
50
+ focusStepBtn(stepId: string, forceFocus?: boolean): void;
51
+ defaultChangeHandler(event: CustomEvent): void;
52
+ delegateFocus(event: FocusEvent): void;
53
+ statusChangeHandler(): void;
54
+ currentStepChanged(stepId: string): void;
55
+ onStepClick: (event: any, stepId: string) => void;
56
+ onStepKeyDown: (event: KeyboardEvent, stepId: string) => void;
57
+ renderStepBtn(pane: IStructuredPane, index: number): any;
58
+ renderSpacer(pane: IStructuredPane, stepLabel: string, isExpanded: boolean, isLastStep: boolean): any;
59
+ renderChildStepBtn(pane: IBaseStructuredPane, index: number, children: number, parentLabel: string): any;
60
+ render(): any;
61
+ }
62
+ export {};
@@ -58,8 +58,8 @@ export declare class Q2TabContainer implements ComponentInterface {
58
58
  showScrollRight: boolean;
59
59
  tabs: TabPane[];
60
60
  resizeIframe(): void;
61
- get tabPanes(): any[];
62
- get selectedTabValue(): any;
61
+ get tabPanes(): (HTMLQ2TabPaneElement | HTMLTectonTabPaneElement)[];
62
+ get selectedTabValue(): string;
63
63
  get tabList(): Element;
64
64
  defaultChangeHandler(event: CustomEvent): void;
65
65
  onResize(): void;
@@ -0,0 +1,59 @@
1
+ import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
+ export declare class Q2Tag implements ComponentInterface {
3
+ /**
4
+ * Instructs the component to use the action sheet workflow for displaying its options.
5
+ *
6
+ * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).
7
+ */
8
+ hoist: boolean;
9
+ /**
10
+ * The text that populates the label.
11
+ * @localizable
12
+ */
13
+ label: string;
14
+ /** Determine whether the popover is open or closed. */
15
+ open: boolean;
16
+ /** Determines the label that is applied to the option list for accessibility purposes. */
17
+ optionListLabel: string;
18
+ /**
19
+ * Force the direction of the popover dropdown when it opens.
20
+ * If no value is passed, the component will auto-detect the direction based on available space.
21
+ */
22
+ popoverDirection: 'up' | 'down';
23
+ /** Aligns the popover dropdown to the left or right side of the input field. */
24
+ popoverAlignment: 'left' | 'right';
25
+ /** @deprecated */
26
+ popoverMinHeight: number;
27
+ /** The color of the element. */
28
+ theme: 'primary' | 'secondary' | 'tertiary';
29
+ optionCount: number;
30
+ hostElement: HTMLElement;
31
+ /**
32
+ * Emitted when a provided option is clicked.
33
+ *
34
+ * Requires at least one option to be provided.
35
+ */
36
+ click: EventEmitter<{
37
+ value: string;
38
+ }>;
39
+ dropdownBtn: HTMLButtonElement;
40
+ popoverElement: HTMLQ2PopoverElement;
41
+ optionList: HTMLQ2OptionListElement;
42
+ mutationObserver: MutationObserver;
43
+ componentWillLoad(): void;
44
+ componentDidLoad(): void;
45
+ disconnectedCallback(): void;
46
+ determineOptionCount: () => void;
47
+ delegateFocus(event: FocusEvent): void;
48
+ popoverStateHandler({ detail: { open } }: CustomEvent<{
49
+ open: boolean;
50
+ }>): void;
51
+ onClickElsewhere: (event: CustomEvent) => void;
52
+ handleChange: (event: any) => void;
53
+ handleClick: (event: MouseEvent) => Promise<void>;
54
+ handleKeydown: (event: KeyboardEvent) => Promise<void>;
55
+ handleButtonFocusout: (event: FocusEvent) => Promise<void>;
56
+ handleWrapperClick: () => void;
57
+ generateHiddenElement(): any;
58
+ render(): any;
59
+ }
@@ -0,0 +1,12 @@
1
+ import { ActionSheetListCloseData, ActionSheetListData } from 'q2-tecton-common/lib/utility/action-sheet';
2
+ interface IActionSheetComponent {
3
+ hoist: boolean;
4
+ }
5
+ export declare const shouldShowActionSheet: (component: IActionSheetComponent, event?: KeyboardEvent | MouseEvent) => boolean;
6
+ export declare const buildListData: (component: IActionSheetListComponent, event?: MouseEvent | KeyboardEvent) => Promise<ActionSheetListData>;
7
+ interface IActionSheetListComponent {
8
+ optionList: HTMLQ2OptionListElement;
9
+ label: string;
10
+ }
11
+ export declare const showActionSheetList: (component: IActionSheetListComponent, event?: MouseEvent | KeyboardEvent) => Promise<ActionSheetListCloseData>;
12
+ export {};
@@ -13,6 +13,7 @@ import { Q2Radio } from "../components/q2-radio/q2-radio";
13
13
  import { Q2Select } from "../components/q2-select/q2-select";
14
14
  import { FormFieldTypes, IDict } from "../util";
15
15
  export declare function isMobile(): boolean;
16
+ export declare function isInScrollableContainer(element: any): boolean;
16
17
  export declare function isHostLosingFocus(event: FocusEvent, hostElement: HTMLElement): boolean;
17
18
  export declare function isRelatedTargetWithinHost(event: FocusEvent, element: HTMLElement): boolean;
18
19
  export declare function isEventFromElement(event: Event, element: HTMLElement): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "q2-tecton-elements",
3
- "version": "1.45.3",
3
+ "version": "1.45.5",
4
4
  "description": "Q2 Tecton Custom Elements",
5
5
  "license": "MIT",
6
6
  "author": "Q2 Tecton Team",
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@stencil/core": "4.18.0",
36
- "q2-tecton-common": "1.45.3",
36
+ "q2-tecton-common": "1.45.5",
37
37
  "swiper": "8.4.4"
38
38
  },
39
39
  "devDependencies": {
@@ -54,5 +54,5 @@
54
54
  "typescript": "5.4.5",
55
55
  "typescript-eslint": "^7.11.0"
56
56
  },
57
- "gitHead": "321dc27427d9dd6fe9a699591671c729027c2bd1"
57
+ "gitHead": "f63737ec6aef2769658aa5e59cc3b9c3b0fe9f37"
58
58
  }
@@ -1 +0,0 @@
1
- {"file":"index-0e15dc8d.js","mappings":"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","names":["h"],"sources":["src/utils/index.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { Q2Btn } from 'src/components/q2-btn/q2-btn';\nimport { Q2Calendar } from 'src/components/q2-calendar/q2-calendar';\nimport { Q2Carousel } from 'src/components/q2-carousel/q2-carousel';\nimport { Q2Checkbox } from 'src/components/q2-checkbox/q2-checkbox';\nimport { Q2CheckboxGroup } from 'src/components/q2-checkbox-group/q2-checkbox-group';\nimport { Q2RadioGroup } from 'src/components/q2-radio-group/q2-radio-group';\nimport { Q2Dropdown } from 'src/components/q2-dropdown/q2-dropdown';\nimport { Q2DropdownItem } from 'src/components/q2-dropdown-item/q2-dropdown-item';\nimport { Q2EditableField } from 'src/components/q2-editable-field/q2-editable-field';\nimport { Q2Input } from 'src/components/q2-input/q2-input';\nimport { Q2Loading } from 'src/components/q2-loading/q2-loading';\nimport { Q2Radio } from 'src/components/q2-radio/q2-radio';\nimport { Q2Select } from 'src/components/q2-select/q2-select';\nimport { FormFieldTypes, IDict } from 'src/util';\n\nexport function isMobile(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(\n navigator.userAgent\n );\n}\n\nexport function isHostLosingFocus(event: FocusEvent, hostElement: HTMLElement) {\n const type = event.type;\n const focusInTypes = ['focusin', 'focus'];\n const isFocusIn = focusInTypes.includes(type);\n\n // on focusin: `target` is element losing focus, `relatedTarget` is element gaining focus\n // on focusout: `target` is element gaining focus, `relatedTarget` is element losing focus\n const elementGainingFocus = isFocusIn ? event.target : event.relatedTarget;\n\n const isElementNestedInHostElement = (element: HTMLElement) => {\n if (element === hostElement) return true;\n if (element.parentElement) {\n return isElementNestedInHostElement(element.parentElement);\n }\n return false;\n };\n\n if (!(elementGainingFocus instanceof HTMLElement)) return true;\n return !isElementNestedInHostElement(elementGainingFocus);\n}\n\nexport function isRelatedTargetWithinHost(event: FocusEvent, element: HTMLElement) {\n return event.relatedTarget !== element && !element.contains(event.relatedTarget as Node);\n}\n\nexport function isEventFromElement(event: Event, element: HTMLElement): boolean {\n return event.composedPath?.()[0] === element;\n}\n\nexport function overrideFocus(hostElement: HTMLElement) {\n hostElement.focus = () => hostElement?.dispatchEvent(new FocusEvent('focus', { bubbles: false }));\n}\n\nexport function isFirefox() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('firefox');\n}\n\nexport function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n}\n\nexport function isSafari() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('safari') && !userAgent.includes('chrome');\n}\n\n/**\n * Returns the value of a prop if it is defined and included in the `validValues`\n * array. This is used primarily to prevent Vue wrappers from setting aria props\n * to \"Symbol()\" when the prop is not set.\n */\nexport function getAriaValueFromProp(prop: string, validValues?: string[]) {\n if (prop === undefined) return prop;\n if (!validValues) return prop !== 'Symbol()' ? prop : undefined;\n return validValues.includes(prop) || prop === '' ? prop : undefined;\n}\n\nlet guid: number = 1000;\nexport function createGuid(): number {\n return guid++;\n}\n\nexport function nextPaint(fn: (value?: unknown) => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(fn);\n });\n}\n\nexport function isVisible(element: HTMLElement) {\n return element.offsetWidth > 0 || element.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n\nexport function waitForNextPaint() {\n return new Promise(resolve => nextPaint(resolve));\n}\n\nexport function capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport function pick(props: string[]): (obj: object) => object {\n return obj => {\n return props.reduce((memo, prop) => {\n return {\n ...memo,\n [prop]: obj[prop],\n };\n }, {});\n };\n}\n\nexport function loc(key: string, subs?: IDict<any> | string[]) {\n if (!key) return '';\n if (window.Tecton?.noStrings === true) {\n return key;\n }\n return window?.TectonElements?.loc(key, subs) ?? key;\n}\n\nexport function labelDOM(target: FormFieldTypes | Q2RadioGroup | Q2CheckboxGroup) {\n const { label, hideLabel, optional, readonly } = target;\n const labelClasses: string[] = ['input-label'];\n let helpText = '';\n\n let shouldHideLabel = hideLabel;\n if (!shouldHideLabel) {\n const labelSlot = target.hostElement.shadowRoot.querySelector<HTMLSlotElement>('slot[name=\"label\"]');\n const hasSlotContent = labelSlot?.assignedNodes().length > 0;\n const hasLabel = !!label;\n\n shouldHideLabel = hasLabel || hasSlotContent ? false : true;\n }\n\n if (shouldHideLabel) labelClasses.push('sr');\n if (optional) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>;\n }\n if (readonly) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.readonly')}</span>;\n labelClasses.push('readonly-field');\n }\n return (\n <label\n htmlFor={target.inputId}\n class={labelClasses.join(' ')}\n >\n <slot name=\"label\">\n {label ? loc(label) : undefined}\n {helpText}\n </slot>\n </label>\n );\n}\n\nexport function hasSlotContent(target: HTMLElement, slotName: string) {\n return target.querySelector(`[slot=\"${slotName}\"]`) !== null;\n}\n\nexport function handleAriaLabel(\n target:\n | Q2Input\n | Q2Select\n | Q2Radio\n | Q2Checkbox\n | Q2EditableField\n | Q2Dropdown\n | Q2DropdownItem\n | Q2Loading\n | Q2Carousel\n | Q2Calendar\n | Q2Btn\n) {\n const { ariaLabel } = target;\n if (!ariaLabel) return;\n\n // If empty ariaLabel prop is set to primitive symbol by framework wrapper, set ariaLabel to undefined and return\n const FW_WRAPPERS_EMPTY_PROP = Symbol().toString();\n if (ariaLabel === FW_WRAPPERS_EMPTY_PROP) {\n target.ariaLabel = undefined;\n return;\n }\n\n // If ariaLabel is set, set hideLabel to true and set label to ariaLabel\n if ('hideLabel' in target) target.hideLabel = true;\n target.label = loc(ariaLabel);\n target.ariaLabel = undefined;\n}\n\n/**\n * Handles when a prop has been renamed on a component without introducing a breaking change.\n */\nexport function handleRenamedProp(target: object, oldProp: string, newProp: string, removeOldProp?: boolean) {\n if (typeof target[oldProp] === 'undefined') return;\n\n // If old prop has value, aka set in component, call handleDeprecationWarning()\n if (target[oldProp]) {\n handleDeprecationWarning(target, oldProp, 'prop');\n }\n\n target[newProp] = target[oldProp];\n\n if (removeOldProp) {\n delete target[oldProp];\n }\n}\n\nexport function handleDeprecationWarning(\n target: object,\n deprecatedItemName: string,\n deprecatedItemType: 'function' | 'prop' | 'method' | 'event'\n) {\n if (window.location.hostname === 'localhost' || window.location.host === 'stack.q2developer.com') {\n if (target[deprecatedItemName] === 'undefined') return;\n\n const componentName = target.constructor.name.toLowerCase().slice(2);\n\n switch (deprecatedItemType) {\n case 'prop':\n if (deprecatedItemName === 'size' && componentName === 'btn') {\n console.warn(\n `The property of size in q2-btn should not be typeof number, or typeof string containing a number. This functionality will be deprecated in an upcoming release. Instead, please use the value 'undefined', or typeof string with any of the following values: \"small\" / \"medium\" / \"large\" `\n );\n } else {\n console.warn(\n `The property ${deprecatedItemName} in q2-${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n }\n break;\n\n case 'function':\n console.warn(\n `The function ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'method':\n console.warn(\n `The method ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'event':\n console.warn(\n `The event ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n default:\n console.error(\n `handleDeprecationWarning --> No type found for desired deprecation: ${deprecatedItemName} in q2-${componentName}: deprecatedItemType = ${deprecatedItemName}`\n );\n }\n }\n}\n\nexport function messagesDOM(target: FormFieldTypes) {\n const type = target.hasError ? 'danger' : 'info';\n\n return (\n <div class=\"messages-container\">\n <q2-message\n appearance=\"minimal\"\n description\n type={type}\n test-id=\"message\"\n >\n <ul id={target.inputDescribedBy}>\n {target.messages.map(message => (\n <li test-id=\"messageListItem\">{loc(message)}</li>\n ))}\n </ul>\n </q2-message>\n </div>\n );\n}\n\nexport function setMessageHeight(target: FormFieldTypes) {\n const messageContainer = (target.hostElement.shadowRoot as ShadowRoot).querySelector<HTMLDivElement>(\n '.messages-container'\n );\n const q2Message = messageContainer.querySelector('q2-message');\n nextPaint(() => {\n const height = target.showMessages && target.hasFocus ? q2Message.getBoundingClientRect().height : 0;\n\n if (messageContainer.style.getPropertyValue('height') === `${height}px`) return;\n\n if (height === 0) {\n q2Message.classList.add('invisible');\n messageContainer.style.removeProperty('height');\n } else {\n q2Message.classList.remove('invisible');\n messageContainer.style.setProperty('height', `${height}px`);\n }\n });\n}\n\nexport const resizeIframe = () => {\n return window.TectonElements?.resizeIframe?.();\n};\n\n// Handling color attribute (deprecated)\nexport const handleColor = (target: Q2Btn) => {\n if (!target.intent && ['primary', 'secondary'].includes(target.color)) {\n target.intent = `workflow-${target.color}` as HTMLQ2BtnElement['intent'];\n target.color = undefined;\n }\n};\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"index-0a702dd6.js","mappings":"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","names":[],"sources":["src/utils/index.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { Q2Btn } from 'src/components/q2-btn/q2-btn';\nimport { Q2Calendar } from 'src/components/q2-calendar/q2-calendar';\nimport { Q2Carousel } from 'src/components/q2-carousel/q2-carousel';\nimport { Q2Checkbox } from 'src/components/q2-checkbox/q2-checkbox';\nimport { Q2CheckboxGroup } from 'src/components/q2-checkbox-group/q2-checkbox-group';\nimport { Q2RadioGroup } from 'src/components/q2-radio-group/q2-radio-group';\nimport { Q2Dropdown } from 'src/components/q2-dropdown/q2-dropdown';\nimport { Q2DropdownItem } from 'src/components/q2-dropdown-item/q2-dropdown-item';\nimport { Q2EditableField } from 'src/components/q2-editable-field/q2-editable-field';\nimport { Q2Input } from 'src/components/q2-input/q2-input';\nimport { Q2Loading } from 'src/components/q2-loading/q2-loading';\nimport { Q2Radio } from 'src/components/q2-radio/q2-radio';\nimport { Q2Select } from 'src/components/q2-select/q2-select';\nimport { FormFieldTypes, IDict } from 'src/util';\n\nexport function isMobile(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(\n navigator.userAgent\n );\n}\n\nexport function isHostLosingFocus(event: FocusEvent, hostElement: HTMLElement) {\n const type = event.type;\n const focusInTypes = ['focusin', 'focus'];\n const isFocusIn = focusInTypes.includes(type);\n\n // on focusin: `target` is element losing focus, `relatedTarget` is element gaining focus\n // on focusout: `target` is element gaining focus, `relatedTarget` is element losing focus\n const elementGainingFocus = isFocusIn ? event.target : event.relatedTarget;\n\n const isElementNestedInHostElement = (element: HTMLElement) => {\n if (element === hostElement) return true;\n if (element.parentElement) {\n return isElementNestedInHostElement(element.parentElement);\n }\n return false;\n };\n\n if (!(elementGainingFocus instanceof HTMLElement)) return true;\n return !isElementNestedInHostElement(elementGainingFocus);\n}\n\nexport function isRelatedTargetWithinHost(event: FocusEvent, element: HTMLElement) {\n return event.relatedTarget !== element && !element.contains(event.relatedTarget as Node);\n}\n\nexport function isEventFromElement(event: Event, element: HTMLElement): boolean {\n return event.composedPath?.()[0] === element;\n}\n\nexport function overrideFocus(hostElement: HTMLElement) {\n hostElement.focus = () => hostElement?.dispatchEvent(new FocusEvent('focus', { bubbles: false }));\n}\n\nexport function isFirefox() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('firefox');\n}\n\nexport function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n}\n\nexport function isSafari() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('safari') && !userAgent.includes('chrome');\n}\n\n/**\n * Returns the value of a prop if it is defined and included in the `validValues`\n * array. This is used primarily to prevent Vue wrappers from setting aria props\n * to \"Symbol()\" when the prop is not set.\n */\nexport function getAriaValueFromProp(prop: string, validValues?: string[]) {\n if (prop === undefined) return prop;\n if (!validValues) return prop !== 'Symbol()' ? prop : undefined;\n return validValues.includes(prop) || prop === '' ? prop : undefined;\n}\n\nlet guid: number = 1000;\nexport function createGuid(): number {\n return guid++;\n}\n\nexport function nextPaint(fn: (value?: unknown) => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(fn);\n });\n}\n\nexport function isVisible(element: HTMLElement) {\n return element.offsetWidth > 0 || element.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n\nexport function waitForNextPaint() {\n return new Promise(resolve => nextPaint(resolve));\n}\n\nexport function capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport function pick(props: string[]): (obj: object) => object {\n return obj => {\n return props.reduce((memo, prop) => {\n return {\n ...memo,\n [prop]: obj[prop],\n };\n }, {});\n };\n}\n\nexport function loc(key: string, subs?: IDict<any> | string[]) {\n if (!key) return '';\n if (window.Tecton?.noStrings === true) {\n return key;\n }\n return window?.TectonElements?.loc(key, subs) ?? key;\n}\n\nexport function labelDOM(target: FormFieldTypes | Q2RadioGroup | Q2CheckboxGroup) {\n const { label, hideLabel, optional, readonly } = target;\n const labelClasses: string[] = ['input-label'];\n let helpText = '';\n\n let shouldHideLabel = hideLabel;\n if (!shouldHideLabel) {\n const labelSlot = target.hostElement.shadowRoot.querySelector<HTMLSlotElement>('slot[name=\"label\"]');\n const hasSlotContent = labelSlot?.assignedNodes().length > 0;\n const hasLabel = !!label;\n\n shouldHideLabel = hasLabel || hasSlotContent ? false : true;\n }\n\n if (shouldHideLabel) labelClasses.push('sr');\n if (optional) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>;\n }\n if (readonly) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.readonly')}</span>;\n labelClasses.push('readonly-field');\n }\n return (\n <label\n htmlFor={target.inputId}\n class={labelClasses.join(' ')}\n >\n <slot name=\"label\">\n {label ? loc(label) : undefined}\n {helpText}\n </slot>\n </label>\n );\n}\n\nexport function hasSlotContent(target: HTMLElement, slotName: string) {\n return target.querySelector(`[slot=\"${slotName}\"]`) !== null;\n}\n\nexport function handleAriaLabel(\n target:\n | Q2Input\n | Q2Select\n | Q2Radio\n | Q2Checkbox\n | Q2EditableField\n | Q2Dropdown\n | Q2DropdownItem\n | Q2Loading\n | Q2Carousel\n | Q2Calendar\n | Q2Btn\n) {\n const { ariaLabel } = target;\n if (!ariaLabel) return;\n\n // If empty ariaLabel prop is set to primitive symbol by framework wrapper, set ariaLabel to undefined and return\n const FW_WRAPPERS_EMPTY_PROP = Symbol().toString();\n if (ariaLabel === FW_WRAPPERS_EMPTY_PROP) {\n target.ariaLabel = undefined;\n return;\n }\n\n // If ariaLabel is set, set hideLabel to true and set label to ariaLabel\n if ('hideLabel' in target) target.hideLabel = true;\n target.label = loc(ariaLabel);\n target.ariaLabel = undefined;\n}\n\n/**\n * Handles when a prop has been renamed on a component without introducing a breaking change.\n */\nexport function handleRenamedProp(target: object, oldProp: string, newProp: string, removeOldProp?: boolean) {\n if (typeof target[oldProp] === 'undefined') return;\n\n // If old prop has value, aka set in component, call handleDeprecationWarning()\n if (target[oldProp]) {\n handleDeprecationWarning(target, oldProp, 'prop');\n }\n\n target[newProp] = target[oldProp];\n\n if (removeOldProp) {\n delete target[oldProp];\n }\n}\n\nexport function handleDeprecationWarning(\n target: object,\n deprecatedItemName: string,\n deprecatedItemType: 'function' | 'prop' | 'method' | 'event'\n) {\n if (window.location.hostname === 'localhost' || window.location.host === 'stack.q2developer.com') {\n if (target[deprecatedItemName] === 'undefined') return;\n\n const componentName = target.constructor.name.toLowerCase().slice(2);\n\n switch (deprecatedItemType) {\n case 'prop':\n if (deprecatedItemName === 'size' && componentName === 'btn') {\n console.warn(\n `The property of size in q2-btn should not be typeof number, or typeof string containing a number. This functionality will be deprecated in an upcoming release. Instead, please use the value 'undefined', or typeof string with any of the following values: \"small\" / \"medium\" / \"large\" `\n );\n } else {\n console.warn(\n `The property ${deprecatedItemName} in q2-${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n }\n break;\n\n case 'function':\n console.warn(\n `The function ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'method':\n console.warn(\n `The method ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'event':\n console.warn(\n `The event ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n default:\n console.error(\n `handleDeprecationWarning --> No type found for desired deprecation: ${deprecatedItemName} in q2-${componentName}: deprecatedItemType = ${deprecatedItemName}`\n );\n }\n }\n}\n\nexport function messagesDOM(target: FormFieldTypes) {\n const type = target.hasError ? 'danger' : 'info';\n\n return (\n <div class=\"messages-container\">\n <q2-message\n appearance=\"minimal\"\n description\n type={type}\n test-id=\"message\"\n >\n <ul id={target.inputDescribedBy}>\n {target.messages.map(message => (\n <li test-id=\"messageListItem\">{loc(message)}</li>\n ))}\n </ul>\n </q2-message>\n </div>\n );\n}\n\nexport function setMessageHeight(target: FormFieldTypes) {\n const messageContainer = (target.hostElement.shadowRoot as ShadowRoot).querySelector<HTMLDivElement>(\n '.messages-container'\n );\n const q2Message = messageContainer.querySelector('q2-message');\n nextPaint(() => {\n const height = target.showMessages && target.hasFocus ? q2Message.getBoundingClientRect().height : 0;\n\n if (messageContainer.style.getPropertyValue('height') === `${height}px`) return;\n\n if (height === 0) {\n q2Message.classList.add('invisible');\n messageContainer.style.removeProperty('height');\n } else {\n q2Message.classList.remove('invisible');\n messageContainer.style.setProperty('height', `${height}px`);\n }\n });\n}\n\nexport const resizeIframe = () => {\n return window.TectonElements?.resizeIframe?.();\n};\n\n// Handling color attribute (deprecated)\nexport const handleColor = (target: Q2Btn) => {\n if (!target.intent && ['primary', 'secondary'].includes(target.color)) {\n target.intent = `workflow-${target.color}` as HTMLQ2BtnElement['intent'];\n target.color = undefined;\n }\n};\n"],"version":3}
@@ -1,2 +0,0 @@
1
- import{h as e}from"./p-a5f18e27.js";function n(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(navigator.userAgent)}function i(e,n){const i=e.type;const o=["focusin","focus"];const t=o.includes(i);const r=t?e.target:e.relatedTarget;const a=e=>{if(e===n)return true;if(e.parentElement){return a(e.parentElement)}return false};if(!(r instanceof HTMLElement))return true;return!a(r)}function o(e,n){return e.relatedTarget!==n&&!n.contains(e.relatedTarget)}function t(e,n){var i;return((i=e.composedPath)===null||i===void 0?void 0:i.call(e)[0])===n}function r(e){e.focus=()=>e===null||e===void 0?void 0:e.dispatchEvent(new FocusEvent("focus",{bubbles:false}))}function a(){const e=navigator.userAgent.toLowerCase();return e.includes("firefox")}function s(){return"ontouchstart"in window||navigator.maxTouchPoints>0}function l(e,n){if(e===undefined)return e;if(!n)return e!=="Symbol()"?e:undefined;return n.includes(e)||e===""?e:undefined}let u=1e3;function d(){return u++}function c(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}function f(e){return e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0}function m(){return new Promise((e=>c(e)))}function p(e,n){var i,o,t;if(!e)return"";if(((i=window.Tecton)===null||i===void 0?void 0:i.noStrings)===true){return e}return(t=(o=window===null||window===void 0?void 0:window.TectonElements)===null||o===void 0?void 0:o.loc(e,n))!==null&&t!==void 0?t:e}function b(n){const{label:i,hideLabel:o,optional:t,readonly:r}=n;const a=["input-label"];let s="";let l=o;if(!l){const e=n.hostElement.shadowRoot.querySelector('slot[name="label"]');const o=(e===null||e===void 0?void 0:e.assignedNodes().length)>0;const t=!!i;l=t||o?false:true}if(l)a.push("sr");if(t){s=e("span",{class:"optional-tag"},p("tecton.element.input.optional"))}if(r){s=e("span",{class:"optional-tag"},p("tecton.element.input.readonly"));a.push("readonly-field")}return e("label",{htmlFor:n.inputId,class:a.join(" ")},e("slot",{name:"label"},i?p(i):undefined,s))}function v(e,n){return e.querySelector(`[slot="${n}"]`)!==null}function h(e){const{ariaLabel:n}=e;if(!n)return;const i=Symbol().toString();if(n===i){e.ariaLabel=undefined;return}if("hideLabel"in e)e.hideLabel=true;e.label=p(n);e.ariaLabel=undefined}function w(e,n,i,o){if(typeof e[n]==="undefined")return;if(e[n]){g(e,n,"prop")}e[i]=e[n];if(o){delete e[n]}}function g(e,n,i){if(window.location.hostname==="localhost"||window.location.host==="stack.q2developer.com"){if(e[n]==="undefined")return;const o=e.constructor.name.toLowerCase().slice(2);switch(i){case"prop":if(n==="size"&&o==="btn"){console.warn(`The property of size in q2-btn should not be typeof number, or typeof string containing a number. This functionality will be deprecated in an upcoming release. Instead, please use the value 'undefined', or typeof string with any of the following values: "small" / "medium" / "large" `)}else{console.warn(`The property ${n} in q2-${o} has been marked for deprecation and will be removed in an upcoming major release.`)}break;case"function":console.warn(`The function ${n} in ${o} has been marked for deprecation and will be removed in an upcoming major release.`);break;case"method":console.warn(`The method ${n} in ${o} has been marked for deprecation and will be removed in an upcoming major release.`);break;case"event":console.warn(`The event ${n} in ${o} has been marked for deprecation and will be removed in an upcoming major release.`);break;default:console.error(`handleDeprecationWarning --\x3e No type found for desired deprecation: ${n} in q2-${o}: deprecatedItemType = ${n}`)}}}function y(n){const i=n.hasError?"danger":"info";return e("div",{class:"messages-container"},e("q2-message",{appearance:"minimal",description:true,type:i,"test-id":"message"},e("ul",{id:n.inputDescribedBy},n.messages.map((n=>e("li",{"test-id":"messageListItem"},p(n)))))))}function $(e){const n=e.hostElement.shadowRoot.querySelector(".messages-container");const i=n.querySelector("q2-message");c((()=>{const o=e.showMessages&&e.hasFocus?i.getBoundingClientRect().height:0;if(n.style.getPropertyValue("height")===`${o}px`)return;if(o===0){i.classList.add("invisible");n.style.removeProperty("height")}else{i.classList.remove("invisible");n.style.setProperty("height",`${o}px`)}}))}const k=()=>{var e,n;return(n=(e=window.TectonElements)===null||e===void 0?void 0:e.resizeIframe)===null||n===void 0?void 0:n.call(e)};const q=e=>{if(!e.intent&&["primary","secondary"].includes(e.color)){e.intent=`workflow-${e.color}`;e.color=undefined}};export{w as a,s as b,d as c,n as d,b as e,v as f,o as g,h,t as i,i as j,a as k,p as l,y as m,c as n,r as o,l as p,f as q,k as r,$ as s,g as t,q as u,m as w};
2
- //# sourceMappingURL=p-42302f6f.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["isMobile","test","navigator","userAgent","isHostLosingFocus","event","hostElement","type","focusInTypes","isFocusIn","includes","elementGainingFocus","target","relatedTarget","isElementNestedInHostElement","element","parentElement","HTMLElement","isRelatedTargetWithinHost","contains","isEventFromElement","_a","composedPath","call","overrideFocus","focus","dispatchEvent","FocusEvent","bubbles","isFirefox","toLowerCase","isTouchDevice","window","maxTouchPoints","getAriaValueFromProp","prop","validValues","undefined","guid","createGuid","nextPaint","fn","requestAnimationFrame","isVisible","offsetWidth","offsetHeight","getClientRects","length","waitForNextPaint","Promise","resolve","loc","key","subs","Tecton","noStrings","_c","_b","TectonElements","labelDOM","label","hideLabel","optional","readonly","labelClasses","helpText","shouldHideLabel","labelSlot","shadowRoot","querySelector","hasSlotContent","assignedNodes","hasLabel","push","h","class","htmlFor","inputId","join","name","slotName","handleAriaLabel","ariaLabel","FW_WRAPPERS_EMPTY_PROP","Symbol","toString","handleRenamedProp","oldProp","newProp","removeOldProp","handleDeprecationWarning","deprecatedItemName","deprecatedItemType","location","hostname","host","componentName","constructor","slice","console","warn","error","messagesDOM","hasError","appearance","description","id","inputDescribedBy","messages","map","message","setMessageHeight","messageContainer","q2Message","height","showMessages","hasFocus","getBoundingClientRect","style","getPropertyValue","classList","add","removeProperty","remove","setProperty","resizeIframe","handleColor","intent","color"],"sources":["src/utils/index.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { Q2Btn } from 'src/components/q2-btn/q2-btn';\nimport { Q2Calendar } from 'src/components/q2-calendar/q2-calendar';\nimport { Q2Carousel } from 'src/components/q2-carousel/q2-carousel';\nimport { Q2Checkbox } from 'src/components/q2-checkbox/q2-checkbox';\nimport { Q2CheckboxGroup } from 'src/components/q2-checkbox-group/q2-checkbox-group';\nimport { Q2RadioGroup } from 'src/components/q2-radio-group/q2-radio-group';\nimport { Q2Dropdown } from 'src/components/q2-dropdown/q2-dropdown';\nimport { Q2DropdownItem } from 'src/components/q2-dropdown-item/q2-dropdown-item';\nimport { Q2EditableField } from 'src/components/q2-editable-field/q2-editable-field';\nimport { Q2Input } from 'src/components/q2-input/q2-input';\nimport { Q2Loading } from 'src/components/q2-loading/q2-loading';\nimport { Q2Radio } from 'src/components/q2-radio/q2-radio';\nimport { Q2Select } from 'src/components/q2-select/q2-select';\nimport { FormFieldTypes, IDict } from 'src/util';\n\nexport function isMobile(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(\n navigator.userAgent\n );\n}\n\nexport function isHostLosingFocus(event: FocusEvent, hostElement: HTMLElement) {\n const type = event.type;\n const focusInTypes = ['focusin', 'focus'];\n const isFocusIn = focusInTypes.includes(type);\n\n // on focusin: `target` is element losing focus, `relatedTarget` is element gaining focus\n // on focusout: `target` is element gaining focus, `relatedTarget` is element losing focus\n const elementGainingFocus = isFocusIn ? event.target : event.relatedTarget;\n\n const isElementNestedInHostElement = (element: HTMLElement) => {\n if (element === hostElement) return true;\n if (element.parentElement) {\n return isElementNestedInHostElement(element.parentElement);\n }\n return false;\n };\n\n if (!(elementGainingFocus instanceof HTMLElement)) return true;\n return !isElementNestedInHostElement(elementGainingFocus);\n}\n\nexport function isRelatedTargetWithinHost(event: FocusEvent, element: HTMLElement) {\n return event.relatedTarget !== element && !element.contains(event.relatedTarget as Node);\n}\n\nexport function isEventFromElement(event: Event, element: HTMLElement): boolean {\n return event.composedPath?.()[0] === element;\n}\n\nexport function overrideFocus(hostElement: HTMLElement) {\n hostElement.focus = () => hostElement?.dispatchEvent(new FocusEvent('focus', { bubbles: false }));\n}\n\nexport function isFirefox() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('firefox');\n}\n\nexport function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n}\n\nexport function isSafari() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('safari') && !userAgent.includes('chrome');\n}\n\n/**\n * Returns the value of a prop if it is defined and included in the `validValues`\n * array. This is used primarily to prevent Vue wrappers from setting aria props\n * to \"Symbol()\" when the prop is not set.\n */\nexport function getAriaValueFromProp(prop: string, validValues?: string[]) {\n if (prop === undefined) return prop;\n if (!validValues) return prop !== 'Symbol()' ? prop : undefined;\n return validValues.includes(prop) || prop === '' ? prop : undefined;\n}\n\nlet guid: number = 1000;\nexport function createGuid(): number {\n return guid++;\n}\n\nexport function nextPaint(fn: (value?: unknown) => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(fn);\n });\n}\n\nexport function isVisible(element: HTMLElement) {\n return element.offsetWidth > 0 || element.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n\nexport function waitForNextPaint() {\n return new Promise(resolve => nextPaint(resolve));\n}\n\nexport function capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport function pick(props: string[]): (obj: object) => object {\n return obj => {\n return props.reduce((memo, prop) => {\n return {\n ...memo,\n [prop]: obj[prop],\n };\n }, {});\n };\n}\n\nexport function loc(key: string, subs?: IDict<any> | string[]) {\n if (!key) return '';\n if (window.Tecton?.noStrings === true) {\n return key;\n }\n return window?.TectonElements?.loc(key, subs) ?? key;\n}\n\nexport function labelDOM(target: FormFieldTypes | Q2RadioGroup | Q2CheckboxGroup) {\n const { label, hideLabel, optional, readonly } = target;\n const labelClasses: string[] = ['input-label'];\n let helpText = '';\n\n let shouldHideLabel = hideLabel;\n if (!shouldHideLabel) {\n const labelSlot = target.hostElement.shadowRoot.querySelector<HTMLSlotElement>('slot[name=\"label\"]');\n const hasSlotContent = labelSlot?.assignedNodes().length > 0;\n const hasLabel = !!label;\n\n shouldHideLabel = hasLabel || hasSlotContent ? false : true;\n }\n\n if (shouldHideLabel) labelClasses.push('sr');\n if (optional) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>;\n }\n if (readonly) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.readonly')}</span>;\n labelClasses.push('readonly-field');\n }\n return (\n <label\n htmlFor={target.inputId}\n class={labelClasses.join(' ')}\n >\n <slot name=\"label\">\n {label ? loc(label) : undefined}\n {helpText}\n </slot>\n </label>\n );\n}\n\nexport function hasSlotContent(target: HTMLElement, slotName: string) {\n return target.querySelector(`[slot=\"${slotName}\"]`) !== null;\n}\n\nexport function handleAriaLabel(\n target:\n | Q2Input\n | Q2Select\n | Q2Radio\n | Q2Checkbox\n | Q2EditableField\n | Q2Dropdown\n | Q2DropdownItem\n | Q2Loading\n | Q2Carousel\n | Q2Calendar\n | Q2Btn\n) {\n const { ariaLabel } = target;\n if (!ariaLabel) return;\n\n // If empty ariaLabel prop is set to primitive symbol by framework wrapper, set ariaLabel to undefined and return\n const FW_WRAPPERS_EMPTY_PROP = Symbol().toString();\n if (ariaLabel === FW_WRAPPERS_EMPTY_PROP) {\n target.ariaLabel = undefined;\n return;\n }\n\n // If ariaLabel is set, set hideLabel to true and set label to ariaLabel\n if ('hideLabel' in target) target.hideLabel = true;\n target.label = loc(ariaLabel);\n target.ariaLabel = undefined;\n}\n\n/**\n * Handles when a prop has been renamed on a component without introducing a breaking change.\n */\nexport function handleRenamedProp(target: object, oldProp: string, newProp: string, removeOldProp?: boolean) {\n if (typeof target[oldProp] === 'undefined') return;\n\n // If old prop has value, aka set in component, call handleDeprecationWarning()\n if (target[oldProp]) {\n handleDeprecationWarning(target, oldProp, 'prop');\n }\n\n target[newProp] = target[oldProp];\n\n if (removeOldProp) {\n delete target[oldProp];\n }\n}\n\nexport function handleDeprecationWarning(\n target: object,\n deprecatedItemName: string,\n deprecatedItemType: 'function' | 'prop' | 'method' | 'event'\n) {\n if (window.location.hostname === 'localhost' || window.location.host === 'stack.q2developer.com') {\n if (target[deprecatedItemName] === 'undefined') return;\n\n const componentName = target.constructor.name.toLowerCase().slice(2);\n\n switch (deprecatedItemType) {\n case 'prop':\n if (deprecatedItemName === 'size' && componentName === 'btn') {\n console.warn(\n `The property of size in q2-btn should not be typeof number, or typeof string containing a number. This functionality will be deprecated in an upcoming release. Instead, please use the value 'undefined', or typeof string with any of the following values: \"small\" / \"medium\" / \"large\" `\n );\n } else {\n console.warn(\n `The property ${deprecatedItemName} in q2-${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n }\n break;\n\n case 'function':\n console.warn(\n `The function ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'method':\n console.warn(\n `The method ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'event':\n console.warn(\n `The event ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n default:\n console.error(\n `handleDeprecationWarning --> No type found for desired deprecation: ${deprecatedItemName} in q2-${componentName}: deprecatedItemType = ${deprecatedItemName}`\n );\n }\n }\n}\n\nexport function messagesDOM(target: FormFieldTypes) {\n const type = target.hasError ? 'danger' : 'info';\n\n return (\n <div class=\"messages-container\">\n <q2-message\n appearance=\"minimal\"\n description\n type={type}\n test-id=\"message\"\n >\n <ul id={target.inputDescribedBy}>\n {target.messages.map(message => (\n <li test-id=\"messageListItem\">{loc(message)}</li>\n ))}\n </ul>\n </q2-message>\n </div>\n );\n}\n\nexport function setMessageHeight(target: FormFieldTypes) {\n const messageContainer = (target.hostElement.shadowRoot as ShadowRoot).querySelector<HTMLDivElement>(\n '.messages-container'\n );\n const q2Message = messageContainer.querySelector('q2-message');\n nextPaint(() => {\n const height = target.showMessages && target.hasFocus ? q2Message.getBoundingClientRect().height : 0;\n\n if (messageContainer.style.getPropertyValue('height') === `${height}px`) return;\n\n if (height === 0) {\n q2Message.classList.add('invisible');\n messageContainer.style.removeProperty('height');\n } else {\n q2Message.classList.remove('invisible');\n messageContainer.style.setProperty('height', `${height}px`);\n }\n });\n}\n\nexport const resizeIframe = () => {\n return window.TectonElements?.resizeIframe?.();\n};\n\n// Handling color attribute (deprecated)\nexport const handleColor = (target: Q2Btn) => {\n if (!target.intent && ['primary', 'secondary'].includes(target.color)) {\n target.intent = `workflow-${target.color}` as HTMLQ2BtnElement['intent'];\n target.color = undefined;\n }\n};\n"],"mappings":"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"}