q2-tecton-elements 1.72.0 → 1.73.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/dist/bundle-report.json +39545 -34361
  2. package/dist/cjs/{charting-ClN1ldqv.js → charting-CdNTrVBe.js} +80 -0
  3. package/dist/cjs/click-elsewhere_3.cjs.entry.js +81 -14
  4. package/dist/cjs/{dataSample-BYR-wrOn.js → dataSample-B4blhlH4.js} +1 -1
  5. package/dist/cjs/date-picker-helpers-UYvPn98R.js +257 -0
  6. package/dist/cjs/{index-BY3aao8R.js → index-BqyWHpNu.js} +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/q2-action-group.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-action-sheet.cjs.entry.js +98 -18
  10. package/dist/cjs/q2-avatar.cjs.entry.js +34 -1
  11. package/dist/cjs/q2-badge_2.cjs.entry.js +3 -3
  12. package/dist/cjs/q2-btn_2.cjs.entry.js +2 -2
  13. package/dist/cjs/q2-calendar.cjs.entry.js +9 -4
  14. package/dist/cjs/q2-card-image.cjs.entry.js +3 -3
  15. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-carousel-pane.cjs.entry.js +3 -3
  17. package/dist/cjs/q2-carousel.cjs.entry.js +20 -6
  18. package/dist/cjs/q2-chart-area.cjs.entry.js +38 -7
  19. package/dist/cjs/q2-chart-bar.cjs.entry.js +39 -8
  20. package/dist/cjs/q2-chart-donut.cjs.entry.js +31 -13
  21. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  22. package/dist/cjs/q2-checkbox_2.cjs.entry.js +8 -5
  23. package/dist/cjs/q2-context.cjs.entry.js +4 -4
  24. package/dist/cjs/q2-currency.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-data-table.cjs.entry.js +7 -7
  26. package/dist/cjs/q2-date-calendar.cjs.entry.js +452 -0
  27. package/dist/cjs/q2-date-picker_2.cjs.entry.js +968 -0
  28. package/dist/cjs/q2-detail.cjs.entry.js +2 -2
  29. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-dropdown.cjs.entry.js +3 -3
  31. package/dist/cjs/q2-editable-field.cjs.entry.js +20 -7
  32. package/dist/cjs/q2-example.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-file-picker.cjs.entry.js +2 -2
  34. package/dist/cjs/q2-form.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-formatted-text.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-item.cjs.entry.js +20 -2
  38. package/dist/cjs/q2-legend.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-link_2.cjs.entry.js +2 -2
  40. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  41. package/dist/cjs/q2-message.cjs.entry.js +3 -3
  42. package/dist/cjs/q2-meter.cjs.entry.js +2 -2
  43. package/dist/cjs/q2-modal.cjs.entry.js +2 -2
  44. package/dist/cjs/q2-month-picker.cjs.entry.js +3 -3
  45. package/dist/cjs/q2-mutation-observer.cjs.entry.js +1 -1
  46. package/dist/cjs/q2-option.cjs.entry.js +1 -1
  47. package/dist/cjs/q2-otp.cjs.entry.js +5 -5
  48. package/dist/cjs/q2-pagination.cjs.entry.js +12 -6
  49. package/dist/cjs/q2-pill.cjs.entry.js +8 -5
  50. package/dist/cjs/q2-radio-group.cjs.entry.js +2 -2
  51. package/dist/cjs/q2-radio.cjs.entry.js +2 -2
  52. package/dist/cjs/q2-relative-time.cjs.entry.js +2 -2
  53. package/dist/cjs/q2-resize-observer.cjs.entry.js +1 -1
  54. package/dist/cjs/q2-search.cjs.entry.js +3 -3
  55. package/dist/cjs/q2-section.cjs.entry.js +3 -3
  56. package/dist/cjs/q2-select.cjs.entry.js +8 -4
  57. package/dist/cjs/q2-stepper-pane.cjs.entry.js +2 -2
  58. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +2 -2
  59. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  60. package/dist/cjs/q2-surface.cjs.entry.js +1 -1
  61. package/dist/cjs/q2-tab-container.cjs.entry.js +2 -2
  62. package/dist/cjs/q2-tab-pane.cjs.entry.js +1 -1
  63. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  64. package/dist/cjs/q2-textarea.cjs.entry.js +2 -2
  65. package/dist/cjs/q2-toast.cjs.entry.js +1 -1
  66. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  67. package/dist/cjs/{sectorHelper-9TWL-3dw.js → sectorHelper-CxhDl5ql.js} +1 -1
  68. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  69. package/dist/collection/collection-manifest.json +2 -0
  70. package/dist/collection/components/q2-action-sheet/q2-action-sheet.css +52 -0
  71. package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +98 -18
  72. package/dist/collection/components/q2-action-sheet/test/q2-action-sheet-test.vr.js +124 -0
  73. package/dist/collection/components/q2-avatar/q2-avatar.js +34 -1
  74. package/dist/collection/components/q2-avatar/test/q2-avatar-test.vr.js +79 -4
  75. package/dist/collection/components/q2-btn/q2-btn.css +84 -136
  76. package/dist/collection/components/q2-btn/q2-btn.js +10 -4
  77. package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +99 -43
  78. package/dist/collection/components/q2-calendar/q2-calendar.js +16 -5
  79. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  80. package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +3 -13
  81. package/dist/collection/components/q2-card-image/q2-card-image.js +2 -2
  82. package/dist/collection/components/q2-carousel/q2-carousel.js +19 -5
  83. package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +32 -0
  84. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  85. package/dist/collection/components/q2-chart-area/q2-chart-area.css +11 -0
  86. package/dist/collection/components/q2-chart-area/q2-chart-area.js +53 -7
  87. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js +14 -0
  88. package/dist/collection/components/q2-chart-bar/q2-chart-bar.css +11 -0
  89. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +50 -4
  90. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js +14 -0
  91. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +30 -10
  92. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js +25 -0
  93. package/dist/collection/components/q2-checkbox/q2-checkbox.js +6 -3
  94. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +6 -3
  95. package/dist/collection/components/q2-context/q2-context.js +3 -3
  96. package/dist/collection/components/q2-context/test/q2-context-test.vr.js +3 -3
  97. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  98. package/dist/collection/components/q2-data-table/q2-data-table.css +3 -0
  99. package/dist/collection/components/q2-data-table/q2-data-table.js +5 -5
  100. package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +47 -0
  101. package/dist/collection/components/q2-date-calendar/q2-date-calendar.css +393 -0
  102. package/dist/collection/components/q2-date-calendar/q2-date-calendar.js +1022 -0
  103. package/dist/collection/components/q2-date-calendar/test/q2-date-calendar-test.vr.js +111 -0
  104. package/dist/collection/components/q2-date-picker/q2-date-picker.css +138 -0
  105. package/dist/collection/components/q2-date-picker/q2-date-picker.js +2010 -0
  106. package/dist/collection/components/q2-date-picker/test/q2-date-picker-test.vr.js +179 -0
  107. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  108. package/dist/collection/components/q2-dropdown/q2-dropdown.js +5 -5
  109. package/dist/collection/components/q2-editable-field/q2-editable-field.js +27 -8
  110. package/dist/collection/components/q2-example/q2-example.js +1 -1
  111. package/dist/collection/components/q2-file-picker/q2-file-picker.js +1 -1
  112. package/dist/collection/components/q2-form/q2-form.js +1 -1
  113. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  114. package/dist/collection/components/q2-input/formatting/phone-number-formats.js +1 -1
  115. package/dist/collection/components/q2-input/q2-input.js +6 -3
  116. package/dist/collection/components/q2-item/q2-item.js +19 -1
  117. package/dist/collection/components/q2-item/test/q2-item-test.vr.js +2 -2
  118. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  119. package/dist/collection/components/q2-list/q2-list.js +1 -1
  120. package/dist/collection/components/q2-message/q2-message.css +1 -1
  121. package/dist/collection/components/q2-message/q2-message.js +1 -1
  122. package/dist/collection/components/q2-message/test/q2-message-test.vr.js +11 -2
  123. package/dist/collection/components/q2-meter/q2-meter.js +1 -1
  124. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  125. package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +7 -7
  126. package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
  127. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  128. package/dist/collection/components/q2-option-list/q2-option-list.js +36 -4
  129. package/dist/collection/components/q2-otp/q2-otp.js +4 -4
  130. package/dist/collection/components/q2-pagination/q2-pagination.css +17 -0
  131. package/dist/collection/components/q2-pagination/q2-pagination.js +10 -4
  132. package/dist/collection/components/q2-pagination/test/q2-pagination-test.vr.js +39 -0
  133. package/dist/collection/components/q2-pill/q2-pill.css +14 -10
  134. package/dist/collection/components/q2-pill/q2-pill.js +6 -3
  135. package/dist/collection/components/q2-pill/test/q2-pill-test.vr.js +25 -0
  136. package/dist/collection/components/q2-popover/q2-popover.css +1 -0
  137. package/dist/collection/components/q2-popover/q2-popover.js +43 -8
  138. package/dist/collection/components/q2-radio/q2-radio.js +5 -2
  139. package/dist/collection/components/q2-radio-group/q2-radio-group.js +6 -3
  140. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  141. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  142. package/dist/collection/components/q2-search/q2-search.js +6 -3
  143. package/dist/collection/components/q2-section/q2-section.js +2 -2
  144. package/dist/collection/components/q2-select/q2-select.js +12 -5
  145. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  146. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  147. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  148. package/dist/collection/components/q2-surface/q2-surface.js +1 -1
  149. package/dist/collection/components/q2-surface/test/q2-surface-test.vr.js +2 -2
  150. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  151. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  152. package/dist/collection/components/q2-tag/q2-tag.js +6 -3
  153. package/dist/collection/components/q2-textarea/q2-textarea.js +6 -3
  154. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +1 -1
  155. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  156. package/dist/collection/utils/chart-keyboard.js +76 -0
  157. package/dist/collection/utils/date-picker/date-picker-helpers.js +239 -0
  158. package/dist/collection/utils/date-picker/date-picker-types.js +1 -0
  159. package/dist/collection/utils/index.js +1 -1
  160. package/dist/components/charting.js +1603 -1532
  161. package/dist/components/dataSample.js +7 -7
  162. package/dist/components/index.js +57 -53
  163. package/dist/components/index2.js +2 -2
  164. package/dist/components/q2-action-sheet.js +224 -103
  165. package/dist/components/q2-avatar2.js +41 -27
  166. package/dist/components/q2-btn2.js +2 -2
  167. package/dist/components/q2-calendar.js +6 -3
  168. package/dist/components/q2-card-image.js +2 -2
  169. package/dist/components/q2-carousel-pane2.js +3 -3
  170. package/dist/components/q2-carousel.js +37 -24
  171. package/dist/components/q2-chart-area.js +415 -369
  172. package/dist/components/q2-chart-bar.js +193 -148
  173. package/dist/components/q2-chart-donut.js +185 -158
  174. package/dist/components/q2-checkbox-group.js +6 -6
  175. package/dist/components/q2-checkbox2.js +11 -11
  176. package/dist/components/q2-context.js +20 -20
  177. package/dist/components/q2-currency.js +9 -9
  178. package/dist/components/q2-data-table.js +111 -111
  179. package/dist/components/q2-date-calendar.d.ts +11 -0
  180. package/dist/components/q2-date-calendar.js +5 -0
  181. package/dist/components/q2-date-calendar2.js +678 -0
  182. package/dist/components/q2-date-picker.d.ts +11 -0
  183. package/dist/components/q2-date-picker.js +5 -0
  184. package/dist/components/q2-date-picker2.js +875 -0
  185. package/dist/components/q2-detail.js +3 -3
  186. package/dist/components/q2-dropdown.js +17 -17
  187. package/dist/components/q2-editable-field.js +16 -5
  188. package/dist/components/q2-example.js +11 -11
  189. package/dist/components/q2-file-picker.js +1 -1
  190. package/dist/components/q2-form.js +6 -6
  191. package/dist/components/q2-formatted-text.js +2 -2
  192. package/dist/components/q2-input2.js +6 -6
  193. package/dist/components/q2-item2.js +32 -22
  194. package/dist/components/q2-legend2.js +7 -7
  195. package/dist/components/q2-list2.js +6 -6
  196. package/dist/components/q2-message2.js +10 -10
  197. package/dist/components/q2-meter.js +7 -7
  198. package/dist/components/q2-modal.js +22 -22
  199. package/dist/components/q2-month-picker.js +17 -17
  200. package/dist/components/q2-mutation-observer.js +1 -1
  201. package/dist/components/q2-optgroup2.js +7 -7
  202. package/dist/components/q2-option-list2.js +55 -34
  203. package/dist/components/q2-otp.js +8 -8
  204. package/dist/components/q2-pagination.js +70 -68
  205. package/dist/components/q2-pill.js +51 -46
  206. package/dist/components/q2-popover2.js +70 -49
  207. package/dist/components/q2-radio-group.js +7 -7
  208. package/dist/components/q2-radio.js +6 -6
  209. package/dist/components/q2-relative-time.js +1 -1
  210. package/dist/components/q2-resize-observer2.js +1 -1
  211. package/dist/components/q2-search.js +5 -5
  212. package/dist/components/q2-section.js +17 -17
  213. package/dist/components/q2-select2.js +2 -2
  214. package/dist/components/q2-stepper-pane.js +29 -29
  215. package/dist/components/q2-stepper-vertical.js +4 -4
  216. package/dist/components/q2-stepper.js +57 -57
  217. package/dist/components/q2-surface.js +3 -3
  218. package/dist/components/q2-tab-container.js +21 -21
  219. package/dist/components/q2-tab-pane.js +6 -6
  220. package/dist/components/q2-tag2.js +8 -6
  221. package/dist/components/q2-textarea.js +3 -3
  222. package/dist/components/sectorHelper.js +78 -78
  223. package/dist/components/tecton-tab-pane.js +10 -10
  224. package/dist/esm/{charting-DOZct-UB.js → charting-DFXJklqs.js} +79 -1
  225. package/dist/esm/click-elsewhere_3.entry.js +81 -14
  226. package/dist/esm/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +1 -1
  227. package/dist/esm/date-picker-helpers-D8QnN_AS.js +242 -0
  228. package/dist/esm/{index-DJw6Feh0.js → index-CP8pXJ-l.js} +1 -1
  229. package/dist/esm/loader.js +1 -1
  230. package/dist/esm/q2-action-group.entry.js +1 -1
  231. package/dist/esm/q2-action-sheet.entry.js +99 -19
  232. package/dist/esm/q2-avatar.entry.js +34 -1
  233. package/dist/esm/q2-badge_2.entry.js +3 -3
  234. package/dist/esm/q2-btn_2.entry.js +2 -2
  235. package/dist/esm/q2-calendar.entry.js +9 -4
  236. package/dist/esm/q2-card-image.entry.js +3 -3
  237. package/dist/esm/q2-card.entry.js +1 -1
  238. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  239. package/dist/esm/q2-carousel.entry.js +20 -6
  240. package/dist/esm/q2-chart-area.entry.js +38 -7
  241. package/dist/esm/q2-chart-bar.entry.js +39 -8
  242. package/dist/esm/q2-chart-donut.entry.js +31 -13
  243. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  244. package/dist/esm/q2-checkbox_2.entry.js +8 -5
  245. package/dist/esm/q2-context.entry.js +4 -4
  246. package/dist/esm/q2-currency.entry.js +1 -1
  247. package/dist/esm/q2-data-table.entry.js +7 -7
  248. package/dist/esm/q2-date-calendar.entry.js +450 -0
  249. package/dist/esm/q2-date-picker_2.entry.js +965 -0
  250. package/dist/esm/q2-detail.entry.js +2 -2
  251. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  252. package/dist/esm/q2-dropdown.entry.js +3 -3
  253. package/dist/esm/q2-editable-field.entry.js +20 -7
  254. package/dist/esm/q2-example.entry.js +1 -1
  255. package/dist/esm/q2-file-picker.entry.js +2 -2
  256. package/dist/esm/q2-form.entry.js +1 -1
  257. package/dist/esm/q2-formatted-text.entry.js +1 -1
  258. package/dist/esm/q2-icon.entry.js +1 -1
  259. package/dist/esm/q2-item.entry.js +20 -2
  260. package/dist/esm/q2-legend.entry.js +1 -1
  261. package/dist/esm/q2-link_2.entry.js +2 -2
  262. package/dist/esm/q2-loc.entry.js +1 -1
  263. package/dist/esm/q2-message.entry.js +3 -3
  264. package/dist/esm/q2-meter.entry.js +2 -2
  265. package/dist/esm/q2-modal.entry.js +2 -2
  266. package/dist/esm/q2-month-picker.entry.js +3 -3
  267. package/dist/esm/q2-mutation-observer.entry.js +1 -1
  268. package/dist/esm/q2-option.entry.js +1 -1
  269. package/dist/esm/q2-otp.entry.js +5 -5
  270. package/dist/esm/q2-pagination.entry.js +12 -6
  271. package/dist/esm/q2-pill.entry.js +8 -5
  272. package/dist/esm/q2-radio-group.entry.js +2 -2
  273. package/dist/esm/q2-radio.entry.js +2 -2
  274. package/dist/esm/q2-relative-time.entry.js +2 -2
  275. package/dist/esm/q2-resize-observer.entry.js +1 -1
  276. package/dist/esm/q2-search.entry.js +3 -3
  277. package/dist/esm/q2-section.entry.js +3 -3
  278. package/dist/esm/q2-select.entry.js +8 -4
  279. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  280. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  281. package/dist/esm/q2-stepper.entry.js +2 -2
  282. package/dist/esm/q2-surface.entry.js +1 -1
  283. package/dist/esm/q2-tab-container.entry.js +2 -2
  284. package/dist/esm/q2-tab-pane.entry.js +1 -1
  285. package/dist/esm/q2-tecton-elements.js +1 -1
  286. package/dist/esm/q2-textarea.entry.js +2 -2
  287. package/dist/esm/q2-toast.entry.js +1 -1
  288. package/dist/esm/q2-tooltip.entry.js +1 -1
  289. package/dist/esm/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +1 -1
  290. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  291. package/dist/q2-tecton-elements/{charting-DOZct-UB.js → charting-DFXJklqs.js} +1625 -1554
  292. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +85 -43
  293. package/dist/q2-tecton-elements/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +33 -33
  294. package/dist/q2-tecton-elements/date-picker-helpers-D8QnN_AS.js +153 -0
  295. package/dist/q2-tecton-elements/{index-DJw6Feh0.js → index-CP8pXJ-l.js} +1 -1
  296. package/dist/q2-tecton-elements/q2-action-group.entry.js +1 -1
  297. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +169 -84
  298. package/dist/q2-tecton-elements/q2-avatar.entry.js +24 -10
  299. package/dist/q2-tecton-elements/q2-badge_2.entry.js +6 -6
  300. package/dist/q2-tecton-elements/q2-btn_2.entry.js +23 -23
  301. package/dist/q2-tecton-elements/q2-calendar.entry.js +7 -4
  302. package/dist/q2-tecton-elements/q2-card-image.entry.js +3 -3
  303. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  304. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +4 -4
  305. package/dist/q2-tecton-elements/q2-carousel.entry.js +24 -11
  306. package/dist/q2-tecton-elements/q2-chart-area.entry.js +187 -141
  307. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +377 -333
  308. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +184 -158
  309. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +7 -7
  310. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +20 -18
  311. package/dist/q2-tecton-elements/q2-context.entry.js +21 -21
  312. package/dist/q2-tecton-elements/q2-currency.entry.js +9 -9
  313. package/dist/q2-tecton-elements/q2-data-table.entry.js +7 -7
  314. package/dist/q2-tecton-elements/q2-date-calendar.entry.js +438 -0
  315. package/dist/q2-tecton-elements/q2-date-picker_2.entry.js +792 -0
  316. package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
  317. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  318. package/dist/q2-tecton-elements/q2-dropdown.entry.js +16 -16
  319. package/dist/q2-tecton-elements/q2-editable-field.entry.js +17 -6
  320. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  321. package/dist/q2-tecton-elements/q2-file-picker.entry.js +2 -2
  322. package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
  323. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  324. package/dist/q2-tecton-elements/q2-icon.entry.js +1 -1
  325. package/dist/q2-tecton-elements/q2-item.entry.js +26 -16
  326. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  327. package/dist/q2-tecton-elements/q2-link_2.entry.js +7 -7
  328. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  329. package/dist/q2-tecton-elements/q2-message.entry.js +29 -29
  330. package/dist/q2-tecton-elements/q2-meter.entry.js +8 -8
  331. package/dist/q2-tecton-elements/q2-modal.entry.js +18 -18
  332. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  333. package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
  334. package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
  335. package/dist/q2-tecton-elements/q2-otp.entry.js +9 -9
  336. package/dist/q2-tecton-elements/q2-pagination.entry.js +51 -49
  337. package/dist/q2-tecton-elements/q2-pill.entry.js +22 -17
  338. package/dist/q2-tecton-elements/q2-radio-group.entry.js +8 -8
  339. package/dist/q2-tecton-elements/q2-radio.entry.js +7 -7
  340. package/dist/q2-tecton-elements/q2-relative-time.entry.js +6 -6
  341. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +13 -13
  342. package/dist/q2-tecton-elements/q2-search.entry.js +31 -31
  343. package/dist/q2-tecton-elements/q2-section.entry.js +20 -20
  344. package/dist/q2-tecton-elements/q2-select.entry.js +3 -3
  345. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +10 -10
  346. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +9 -9
  347. package/dist/q2-tecton-elements/q2-stepper.entry.js +45 -45
  348. package/dist/q2-tecton-elements/q2-surface.entry.js +15 -15
  349. package/dist/q2-tecton-elements/q2-tab-container.entry.js +20 -20
  350. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +9 -9
  351. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  352. package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
  353. package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
  354. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  355. package/dist/q2-tecton-elements/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +56 -56
  356. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +9 -9
  357. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +21 -1
  358. package/dist/types/components/q2-action-sheet/test/q2-action-sheet-test.vr.d.ts +1 -0
  359. package/dist/types/components/q2-avatar/q2-avatar.d.ts +5 -0
  360. package/dist/types/components/q2-btn/q2-btn.d.ts +7 -3
  361. package/dist/types/components/q2-calendar/q2-calendar.d.ts +10 -2
  362. package/dist/types/components/q2-carousel/q2-carousel.d.ts +5 -0
  363. package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +11 -2
  364. package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +9 -0
  365. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +1 -0
  366. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +4 -3
  367. package/dist/types/components/q2-checkbox-group/q2-checkbox-group.d.ts +4 -2
  368. package/dist/types/components/q2-date-calendar/q2-date-calendar.d.ts +122 -0
  369. package/dist/types/components/q2-date-calendar/test/q2-date-calendar-test.vr.d.ts +1 -0
  370. package/dist/types/components/q2-date-picker/q2-date-picker.d.ts +304 -0
  371. package/dist/types/components/q2-date-picker/test/q2-date-picker-test.vr.d.ts +1 -0
  372. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +3 -3
  373. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +14 -1
  374. package/dist/types/components/q2-input/q2-input.d.ts +4 -2
  375. package/dist/types/components/q2-item/q2-item.d.ts +3 -0
  376. package/dist/types/components/q2-option-list/q2-option-list.d.ts +1 -0
  377. package/dist/types/components/q2-popover/q2-popover.d.ts +4 -0
  378. package/dist/types/components/q2-radio/q2-radio.d.ts +3 -2
  379. package/dist/types/components/q2-radio-group/q2-radio-group.d.ts +4 -2
  380. package/dist/types/components/q2-search/q2-search.d.ts +3 -1
  381. package/dist/types/components/q2-select/q2-select.d.ts +4 -2
  382. package/dist/types/components/q2-textarea/q2-textarea.d.ts +4 -2
  383. package/dist/types/components.d.ts +858 -49
  384. package/dist/types/global.d.ts +1 -0
  385. package/dist/types/index.d.ts +1 -0
  386. package/dist/types/utils/chart-keyboard.d.ts +16 -0
  387. package/dist/types/utils/date-picker/date-picker-helpers.d.ts +47 -0
  388. package/dist/types/utils/date-picker/date-picker-types.d.ts +42 -0
  389. package/package.json +3 -3
  390. package/dist/cjs/q2-optgroup.cjs.entry.js +0 -70
  391. package/dist/esm/q2-optgroup.entry.js +0 -68
  392. package/dist/q2-tecton-elements/q2-optgroup.entry.js +0 -88
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, g as getElement, h, H as Host } from './index-Cqkz7Bnm.js';
2
2
  import { m as mirrorEmit } from './mirror-emit-DUjY_ucm.js';
3
3
  import { b as hasValidAncestor } from './component-DaQM9u3s.js';
4
- import { l as loc, n as nextPaint, o as overrideFocus, i as isEventFromElement, w as waitForNextPaint, v as isVisible, q as handleDeprecationWarning, x as isInFixedPositionContext, y as isInScrollableContainer, g as isMobile } from './index-DJw6Feh0.js';
4
+ import { l as loc, n as nextPaint, o as overrideFocus, i as isEventFromElement, w as waitForNextPaint, v as isVisible, q as handleDeprecationWarning, x as isInFixedPositionContext, y as isInScrollableContainer, g as isMobile } from './index-CP8pXJ-l.js';
5
5
 
6
6
  const ClickElsewhere = class {
7
7
  constructor(hostRef) {
@@ -509,9 +509,32 @@ const Q2OptionList = class {
509
509
  return;
510
510
  const optionRole = type === 'menu' ? 'menuitem' : 'option';
511
511
  this.allOptions.forEach(option => {
512
+ // iOS 26 bug: setting role="menuitem" on the q2-dropdown-item host prevents VoiceOver from announcing the option name.
513
+ if (type === 'menu' && option.tagName.toLowerCase() === 'q2-dropdown-item')
514
+ return;
512
515
  option.role = optionRole;
513
516
  });
514
517
  }
518
+ findScrollableAncestor(node) {
519
+ var _a, _b;
520
+ let current = node;
521
+ while (current) {
522
+ if (current instanceof HTMLElement && current !== node) {
523
+ const overflowY = getComputedStyle(current).overflowY;
524
+ // Skip html/body so page-level scroll isn't treated as our container.
525
+ if ((overflowY === 'auto' || overflowY === 'scroll') &&
526
+ current !== document.documentElement &&
527
+ current !== document.body) {
528
+ return current;
529
+ }
530
+ }
531
+ const slot = current.assignedSlot;
532
+ const parent = current.parentNode;
533
+ const shadowHost = current.host;
534
+ current = (_b = (_a = slot !== null && slot !== void 0 ? slot : parent) !== null && _a !== void 0 ? _a : shadowHost) !== null && _b !== void 0 ? _b : null;
535
+ }
536
+ return null;
537
+ }
515
538
  focusSelectedSibling(option) {
516
539
  const { allVisibleOptions, allOptions } = this;
517
540
  const hasNoSiblings = allVisibleOptions.length < 2;
@@ -593,9 +616,18 @@ const Q2OptionList = class {
593
616
  const activeOption = this.allOptions[this.activeIndex];
594
617
  if (!activeOption)
595
618
  return;
596
- const { scrollX, scrollY } = window;
597
- activeOption.scrollIntoView({ block: 'center' });
598
- window.scrollTo(scrollX, scrollY);
619
+ // Do our own scroll math so `scrollIntoView` doesn't cascade to the parent window in an SDK iframe.
620
+ const container = this.findScrollableAncestor(activeOption);
621
+ if (container) {
622
+ if (container.scrollHeight > container.clientHeight) {
623
+ const optionRect = activeOption.getBoundingClientRect();
624
+ const containerRect = container.getBoundingClientRect();
625
+ const optionCenter = optionRect.top - containerRect.top + optionRect.height / 2;
626
+ container.scrollTop += optionCenter - containerRect.height / 2;
627
+ }
628
+ return;
629
+ }
630
+ activeOption.scrollIntoView({ block: 'nearest' });
599
631
  }
600
632
  searchOptions(key, shouldSelect) {
601
633
  this.searchString = key;
@@ -679,7 +711,7 @@ const Q2OptionList = class {
679
711
  // #endregion
680
712
  // #region Render Methods
681
713
  render() {
682
- return (h(Host, { key: 'ea6ef8ea9e667c6d1485212ea636b23725ce9043' }, h("div", { key: '6bc6ffec50a40b8b8ee4cf2b66388200eb3f0d32', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, h("div", { key: '28b5d0460ceca2f0b9a8fd4fa018f949d04154df', class: "options", "aria-label": loc('tecton.element.optionList.label', [this.label]), "aria-multiselectable": this.type === 'menu' ? undefined : this.multiple ? 'true' : undefined, role: this.type || 'listbox', onKeyDown: this.internalKeydownHandler, onClick: this.clickHandler }, h("slot", { key: '666147b2cd06490c883c8a01b11e9cfa209a19dd' })))));
714
+ return (h(Host, { key: '19cadb5668db33a912951df4ec0e81a74b2b78ce' }, h("div", { key: '1d5a8f310ee97bc2189b839ee3d87e08bf0fa269', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, h("div", { key: '24b1616962a9b544fb6215acc1e6edb4f12a5a03', class: "options", "aria-label": loc('tecton.element.optionList.label', [this.label]), "aria-multiselectable": this.type === 'menu' ? undefined : this.multiple ? 'true' : undefined, role: this.type || 'listbox', onKeyDown: this.internalKeydownHandler, onClick: this.clickHandler }, h("slot", { key: 'eeb0342b7c319f5f5af95daa54dcaa732c3159d9' })))));
683
715
  }
684
716
  get hostElement() { return getElement(this); }
685
717
  static get watchers() { return {
@@ -693,7 +725,7 @@ const Q2OptionList = class {
693
725
  };
694
726
  Q2OptionList.style = q2OptionListCss();
695
727
 
696
- const q2PopoverCss = () => `*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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}@container style(--t-prefers-motion: "reduced"){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;animation-delay:0ms !important;transition-delay:0ms !important}}@container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")){@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;animation-delay:0ms !important;transition-delay:0ms !important}}}.legacy.container{display:none}.legacy.show{display:block;z-index:var(--tct-popover-z-index, 50)}@keyframes popoverOpen{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}@keyframes popoverClose{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.95)}}:popover-open,.show{position:var(--comp-pop-position, absolute);margin:0;padding:var(--tct-popover-padding, 0);overflow:auto;background:var(--tct-popover-background, var(--app-white, #ffffff));backdrop-filter:var(--tct-popover-backdrop-filter, none);color:var(--tct-popover-font-color, inherit);min-width:var(--tct-popover-min-width, 135px);width:var(--tct-popover-width, auto);margin-block:var(--tct-popover-margin-block, 0);box-shadow:var(--tct-popover-box-shadow, var(--app-shadow-3, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)));border-width:var(--tct-popover-border-width, 0);border-style:solid;border-color:var(--tct-popover-border-color, transparent);border-radius:var(--tct-popover-border-radius, 0);max-height:var(--comp-pop-max-height);left:var(--comp-pop-left);opacity:var(--comp-pop-opacity, 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}:popover-open.animating-open,.show.animating-open{animation-name:popoverOpen;animation-duration:var(--tct-popover-open-animation-duration, var(--t-tween-time-in-1, 150ms));animation-timing-function:var(--tct-popover-open-animation-timing-function, ease-out);animation-fill-mode:var(--tct-popover-open-animation-fill-mode, forwards)}:popover-open.animating-close,.show.animating-close{animation-name:popoverClose;animation-duration:var(--tct-popover-close-animation-duration, var(--t-tween-time-out-1, 100ms));animation-timing-function:var(--tct-popover-close-animation-timing-function, ease-in);animation-fill-mode:var(--tct-popover-close-animation-fill-mode, forwards)}:popover-open.block,.show.block{right:unset;width:var(--comp-pop-width);min-width:var(--tct-popover-min-width, unset)}:popover-open.left,.show.left{left:var(--comp-pop-left);right:unset}:popover-open.right,.show.right{right:var(--comp-pop-right);left:unset}:popover-open.down,.show.down{top:var(--tct-popover-top, var(--comp-pop-top));bottom:unset}:popover-open.up,.show.up{top:var(--comp-pop-top);bottom:unset;translate:0 calc(-100% - var(--app-scale-2x, 10px))}:popover-open.down.left:not(.mobile),.show.down.left:not(.mobile){transform-origin:top left}:popover-open.down.right:not(.mobile),.show.down.right:not(.mobile){transform-origin:top right}:popover-open.up.left:not(.mobile),.show.up.left:not(.mobile){transform-origin:bottom left}:popover-open.up.right:not(.mobile),.show.up.right:not(.mobile){transform-origin:bottom right}:popover-open.mobile.down,.show.mobile.down{transform-origin:center top}:popover-open.mobile.up,.show.mobile.up{transform-origin:center bottom}:popover-open::-webkit-scrollbar,.show::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}:popover-open::-webkit-scrollbar-thumb,.show::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}:popover-open::-webkit-scrollbar-track,.show::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}click-elsewhere{position:relative;display:block}`;
728
+ const q2PopoverCss = () => `*{box-sizing:border-box}*:active{outline:none}*:focus-visible{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}@container style(--t-prefers-motion: "reduced"){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;animation-delay:0ms !important;transition-delay:0ms !important}}@container (not style(--t-prefers-motion: "normal")) and (not style(--t-prefers-motion: "reduced")){@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important;animation-delay:0ms !important;transition-delay:0ms !important}}}.legacy.container{display:none}.legacy.show{display:block;z-index:var(--tct-popover-z-index, 50)}@keyframes popoverOpen{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}@keyframes popoverClose{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.95)}}:popover-open,.show{position:var(--comp-pop-position, absolute);margin:0;padding:var(--tct-popover-padding, 0);overflow:auto;overscroll-behavior:contain;background:var(--tct-popover-background, var(--app-white, #ffffff));backdrop-filter:var(--tct-popover-backdrop-filter, none);color:var(--tct-popover-font-color, inherit);min-width:var(--tct-popover-min-width, 135px);width:var(--tct-popover-width, auto);margin-block:var(--tct-popover-margin-block, 0);box-shadow:var(--tct-popover-box-shadow, var(--app-shadow-3, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)));border-width:var(--tct-popover-border-width, 0);border-style:solid;border-color:var(--tct-popover-border-color, transparent);border-radius:var(--tct-popover-border-radius, 0);max-height:var(--comp-pop-max-height);left:var(--comp-pop-left);opacity:var(--comp-pop-opacity, 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}:popover-open.animating-open,.show.animating-open{animation-name:popoverOpen;animation-duration:var(--tct-popover-open-animation-duration, var(--t-tween-time-in-1, 150ms));animation-timing-function:var(--tct-popover-open-animation-timing-function, ease-out);animation-fill-mode:var(--tct-popover-open-animation-fill-mode, forwards)}:popover-open.animating-close,.show.animating-close{animation-name:popoverClose;animation-duration:var(--tct-popover-close-animation-duration, var(--t-tween-time-out-1, 100ms));animation-timing-function:var(--tct-popover-close-animation-timing-function, ease-in);animation-fill-mode:var(--tct-popover-close-animation-fill-mode, forwards)}:popover-open.block,.show.block{right:unset;width:var(--comp-pop-width);min-width:var(--tct-popover-min-width, unset)}:popover-open.left,.show.left{left:var(--comp-pop-left);right:unset}:popover-open.right,.show.right{right:var(--comp-pop-right);left:unset}:popover-open.down,.show.down{top:var(--tct-popover-top, var(--comp-pop-top));bottom:unset}:popover-open.up,.show.up{top:var(--comp-pop-top);bottom:unset;translate:0 calc(-100% - var(--app-scale-2x, 10px))}:popover-open.down.left:not(.mobile),.show.down.left:not(.mobile){transform-origin:top left}:popover-open.down.right:not(.mobile),.show.down.right:not(.mobile){transform-origin:top right}:popover-open.up.left:not(.mobile),.show.up.left:not(.mobile){transform-origin:bottom left}:popover-open.up.right:not(.mobile),.show.up.right:not(.mobile){transform-origin:bottom right}:popover-open.mobile.down,.show.mobile.down{transform-origin:center top}:popover-open.mobile.up,.show.mobile.up{transform-origin:center bottom}:popover-open::-webkit-scrollbar,.show::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}:popover-open::-webkit-scrollbar-thumb,.show::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}:popover-open::-webkit-scrollbar-track,.show::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}click-elsewhere{position:relative;display:block}`;
697
729
 
698
730
  const Q2Popover = class {
699
731
  constructor(hostRef) {
@@ -706,6 +738,7 @@ const Q2Popover = class {
706
738
  this.displayBuffer = 10;
707
739
  this.orientationChanged = false;
708
740
  this.pendingAnimationResolve = null;
741
+ this.platformScrollUnsubscribe = null;
709
742
  // #endregion
710
743
  // #region State Properties
711
744
  this.animationState = 'idle';
@@ -717,11 +750,30 @@ const Q2Popover = class {
717
750
  /** Aligns the popover to the left or right side of the control element. */
718
751
  this.align = 'left';
719
752
  this.mode = null;
753
+ this.handleInsideScroll = (event) => {
754
+ const { containerElement } = this;
755
+ if (!containerElement)
756
+ return;
757
+ if (containerElement.scrollHeight > containerElement.clientHeight)
758
+ return;
759
+ event.preventDefault();
760
+ };
720
761
  this.handleMinHeight = () => {
721
762
  if (this.minHeight) {
722
763
  handleDeprecationWarning(this, 'minHeight', 'prop');
723
764
  }
724
765
  };
766
+ this.handleOutsideScroll = (event) => {
767
+ if (!this.open)
768
+ return;
769
+ if (event.composedPath().includes(this.hostElement))
770
+ return;
771
+ this.open = false;
772
+ };
773
+ this.handlePlatformScroll = () => {
774
+ if (this.open)
775
+ this.open = false;
776
+ };
725
777
  this.handlePopoverToggleEvent = (event) => {
726
778
  mirrorEmit(this, ['popoverStateChanged', 'tctPopoverStateChanged'], { open: event.newState === 'open' });
727
779
  };
@@ -836,8 +888,10 @@ const Q2Popover = class {
836
888
  this.handleMinHeight();
837
889
  if (this.supportsPopoverAPI)
838
890
  (_a = this.containerElement) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.handlePopoverToggleEvent);
839
- if (this.open)
891
+ if (this.open) {
892
+ this.addViewportListeners();
840
893
  this.determinePopDirection();
894
+ }
841
895
  }
842
896
  // #endregion
843
897
  // #region Listeners
@@ -930,14 +984,22 @@ const Q2Popover = class {
930
984
  return isNaN(maxHeight) ? undefined : maxHeight;
931
985
  }
932
986
  addViewportListeners() {
933
- var _a;
987
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
934
988
  window.addEventListener('resize', this.viewPortOrientationChanged);
935
- visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener('resize', this.viewPortChanged);
989
+ (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.addEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, 'resize', this.viewPortChanged);
936
990
  if (isInScrollableContainer(this.hostElement) && !isMobile()) {
937
991
  window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });
938
992
  }
939
- (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('orientationchange', this.viewPortOrientationChanged);
993
+ (_e = (_d = (_c = window.screen) === null || _c === void 0 ? void 0 : _c.orientation) === null || _d === void 0 ? void 0 : _d.addEventListener) === null || _e === void 0 ? void 0 : _e.call(_d, 'orientationchange', this.viewPortOrientationChanged);
940
994
  window.addEventListener('orientationchange', this.viewPortOrientationChanged);
995
+ if (!isMobile()) {
996
+ window.addEventListener('scroll', this.handleOutsideScroll, { passive: true, capture: true });
997
+ }
998
+ (_f = this.containerElement) === null || _f === void 0 ? void 0 : _f.addEventListener('wheel', this.handleInsideScroll, { passive: false });
999
+ (_g = this.containerElement) === null || _g === void 0 ? void 0 : _g.addEventListener('touchmove', this.handleInsideScroll, { passive: false });
1000
+ (_h = this.platformScrollUnsubscribe) === null || _h === void 0 ? void 0 : _h.call(this);
1001
+ this.platformScrollUnsubscribe =
1002
+ (_l = (_k = (_j = window.TectonElements) === null || _j === void 0 ? void 0 : _j.platformScrollChanged) === null || _k === void 0 ? void 0 : _k.call(_j, this.handlePlatformScroll)) !== null && _l !== void 0 ? _l : null;
941
1003
  }
942
1004
  clearCSSProperties() {
943
1005
  if (!this.containerElement)
@@ -1016,12 +1078,17 @@ const Q2Popover = class {
1016
1078
  }
1017
1079
  }
1018
1080
  removeViewportListeners() {
1019
- var _a;
1081
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1020
1082
  window.removeEventListener('resize', this.viewPortOrientationChanged);
1021
- visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener('resize', this.viewPortChanged);
1083
+ (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, 'resize', this.viewPortChanged);
1022
1084
  window.removeEventListener('scroll', this.viewPortChanged, { capture: true });
1023
- (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('orientationchange', this.viewPortOrientationChanged);
1085
+ (_e = (_d = (_c = window.screen) === null || _c === void 0 ? void 0 : _c.orientation) === null || _d === void 0 ? void 0 : _d.removeEventListener) === null || _e === void 0 ? void 0 : _e.call(_d, 'orientationchange', this.viewPortOrientationChanged);
1024
1086
  window.removeEventListener('orientationchange', this.viewPortOrientationChanged);
1087
+ window.removeEventListener('scroll', this.handleOutsideScroll, { capture: true });
1088
+ (_f = this.containerElement) === null || _f === void 0 ? void 0 : _f.removeEventListener('wheel', this.handleInsideScroll);
1089
+ (_g = this.containerElement) === null || _g === void 0 ? void 0 : _g.removeEventListener('touchmove', this.handleInsideScroll);
1090
+ (_h = this.platformScrollUnsubscribe) === null || _h === void 0 ? void 0 : _h.call(this);
1091
+ this.platformScrollUnsubscribe = null;
1025
1092
  }
1026
1093
  setDirectionAndShow(direction) {
1027
1094
  var _a;
@@ -1056,7 +1123,7 @@ const Q2Popover = class {
1056
1123
  containerClasses.push('animating-open');
1057
1124
  if (this.animationState === 'closing')
1058
1125
  containerClasses.push('animating-close');
1059
- return (h("div", { key: '680ad8a90ef98d3a8c2c1f5ba2284d7cdfc3d2a6', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "manual" }, h("div", { key: 'dfe4d6f72df0dfa029d9296e27ceb60a75131d83', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: '22144006d226160fe790d156255d54e24bcad8ce' }))));
1126
+ return (h("div", { key: 'f608766723c6ae6737181318b5baf8b52ed7fc0f', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "manual" }, h("div", { key: '477f1a209cf4abc984a82324d0c6fc07ede82160', ref: el => (this.contentElement = el), class: "content" }, h("slot", { key: '5b48ff13907b952a2cdcffc1b6e271e4982c78ad' }))));
1060
1127
  }
1061
1128
  get hostElement() { return getElement(this); }
1062
1129
  static get watchers() { return {
@@ -1,4 +1,4 @@
1
- import { v as each, aH as SINGLE_REFERRING, aD as createHashMap, g as isFunction, a1 as curry, aI as makeSeriesEncodeForAxisCoordSys, aJ as prepareSeriesDataSchema, aK as enableDataStack, aL as SeriesData, aM as CoordinateSystemManager, F as map, aN as getDimensionTypeByAxis, aO as SOURCE_FORMAT_ORIGINAL, E as isArray, aP as getDataItemValue, o as filter, aQ as makeLabelFormatter, aR as getBoundingRect, m as makeInner, aS as getOptionCategoryInterval, aT as shouldShowAllLabels, aU as getPixelPrecision, aV as linearMap, aW as round, _ as __extends, aX as ComponentModel, aY as mixin, d as defaults, aZ as merge, a_ as getLayoutParams, a$ as mergeLayoutParam, b0 as fetchLayoutMode, b1 as OrdinalMeta, i as invert, B as BoundingRect, b2 as applyTransform, b3 as IntervalScale, b4 as getScaleExtent, b5 as increaseInterval, b6 as getLayoutRect, b7 as estimateLabelUnionRect, ai as isObject, z as indexOf, b8 as createScaleByModel, b9 as isCartesian2DSeries, ba as findAxisModels, bb as getDataDimensionsOnAxis, k as keys, bc as isIntervalOrLogScale, bd as niceScaleExtent, be as ifAxisCrossZero, U as Rect, O as Group, bf as layout, bg as AxisBuilder, V as extend, bh as groupTransition, bi as AxisView, bj as Line, bk as subPixelOptimizeLine, bl as ComponentView, a4 as use, bm as install$3, r as retrieve2, ar as ZRText, bn as createTextStyle, bo as windowOpen, h as getECData, bp as retrieveRawValue, R as Sector, y as initProps, bq as isString } from './charting-DOZct-UB.js';
1
+ import { v as each, aJ as SINGLE_REFERRING, aF as createHashMap, g as isFunction, a1 as curry, aK as makeSeriesEncodeForAxisCoordSys, aL as prepareSeriesDataSchema, aM as enableDataStack, aN as SeriesData, aO as CoordinateSystemManager, F as map, aP as getDimensionTypeByAxis, aQ as SOURCE_FORMAT_ORIGINAL, E as isArray, aR as getDataItemValue, o as filter, aS as makeLabelFormatter, aT as getBoundingRect, m as makeInner, aU as getOptionCategoryInterval, aV as shouldShowAllLabels, aW as getPixelPrecision, aX as linearMap, aY as round, _ as __extends, aZ as ComponentModel, a_ as mixin, d as defaults, a$ as merge, b0 as getLayoutParams, b1 as mergeLayoutParam, b2 as fetchLayoutMode, b3 as OrdinalMeta, i as invert, B as BoundingRect, b4 as applyTransform, b5 as IntervalScale, b6 as getScaleExtent, b7 as increaseInterval, b8 as getLayoutRect, b9 as estimateLabelUnionRect, ak as isObject, z as indexOf, ba as createScaleByModel, bb as isCartesian2DSeries, bc as findAxisModels, bd as getDataDimensionsOnAxis, k as keys, be as isIntervalOrLogScale, bf as niceScaleExtent, bg as ifAxisCrossZero, U as Rect, O as Group, bh as layout, bi as AxisBuilder, V as extend, bj as groupTransition, bk as AxisView, bl as Line, bm as subPixelOptimizeLine, bn as ComponentView, a4 as use, bo as install$3, r as retrieve2, at as ZRText, bp as createTextStyle, bq as windowOpen, h as getECData, br as retrieveRawValue, R as Sector, y as initProps, bs as isString } from './charting-DFXJklqs.js';
2
2
 
3
3
  /**
4
4
  * @class
@@ -0,0 +1,242 @@
1
+ import { d as dateFnsExports } from './index-O1A-ZSZs.js';
2
+ import { l as loc } from './index-CP8pXJ-l.js';
3
+
4
+ const defaultDisplayFormat = 'MM/DD/YYYY';
5
+ const supportedDisplayFormats = [
6
+ defaultDisplayFormat,
7
+ 'DD/MM/YYYY',
8
+ 'MM-DD-YYYY',
9
+ 'DD-MM-YYYY',
10
+ 'YYYY-MM-DD',
11
+ ];
12
+ const defaultDatePickerStringKeys = {
13
+ 'Choose a date': 'tecton.element.datePicker.calendarLabel',
14
+ 'Dates are shown in your local time zone.': 'tecton.element.datePicker.disclaimer.localTimeZone',
15
+ };
16
+ const isoDatePattern = /^\d{4}-\d{2}-\d{2}$/;
17
+ const isoLikeDatePattern = /^(\d{4})-(\d{1,2})-(\d{1,2})(?:T.*)?$/;
18
+ const slashDatePattern = /^(\d{1,2})\/(\d{1,2})\/(\d{2}|\d{4})$/;
19
+ /** Determines a year for a month and day when typeable input omits the year. */
20
+ function buildInputDate(input, assume) {
21
+ const [month, day, year] = input.split('/');
22
+ if (!month)
23
+ return;
24
+ if (!day)
25
+ return new Date(new Date().getFullYear(), Number(month) - 1, 1);
26
+ if (Number(day) <= 0)
27
+ return;
28
+ const selectedYear = (year === null || year === void 0 ? void 0 : year.length) === 4 ? Number(year) : Number(assumeYear(month, day, assume));
29
+ const date = new Date(selectedYear, Number(month) - 1, Number(day));
30
+ return dateFnsExports.isValid(date) ? date : undefined;
31
+ }
32
+ /** Formats a valid date as an ISO calendar date. */
33
+ function formatDateISO(value) {
34
+ if (!dateFnsExports.isValid(value))
35
+ return;
36
+ return dateFnsExports.formatISO(value, { representation: 'date' });
37
+ }
38
+ /** Formats a date for an accessible day label. */
39
+ function formatDateFull(value) {
40
+ if (!dateFnsExports.isValid(value))
41
+ return;
42
+ return new Intl.DateTimeFormat('en-US', {
43
+ month: 'long',
44
+ day: 'numeric',
45
+ year: 'numeric',
46
+ weekday: 'long',
47
+ timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
48
+ }).format(value);
49
+ }
50
+ /** Returns localized abbreviated day names beginning with Sunday. */
51
+ function getDays() {
52
+ return [
53
+ loc('tecton.element.calendar.days.short.Sunday'),
54
+ loc('tecton.element.calendar.days.short.Monday'),
55
+ loc('tecton.element.calendar.days.short.Tuesday'),
56
+ loc('tecton.element.calendar.days.short.Wednesday'),
57
+ loc('tecton.element.calendar.days.short.Thursday'),
58
+ loc('tecton.element.calendar.days.short.Friday'),
59
+ loc('tecton.element.calendar.days.short.Saturday'),
60
+ ];
61
+ }
62
+ /** Returns localized full day names beginning with Sunday. */
63
+ function getDaysOfWeek() {
64
+ return [
65
+ loc('tecton.element.calendar.days.Sunday'),
66
+ loc('tecton.element.calendar.days.Monday'),
67
+ loc('tecton.element.calendar.days.Tuesday'),
68
+ loc('tecton.element.calendar.days.Wednesday'),
69
+ loc('tecton.element.calendar.days.Thursday'),
70
+ loc('tecton.element.calendar.days.Friday'),
71
+ loc('tecton.element.calendar.days.Saturday'),
72
+ ];
73
+ }
74
+ /** Parses the date picker's public ISO-only value contract. */
75
+ function parseDatePickerValue(value) {
76
+ if (!value || !isoDatePattern.test(value))
77
+ return;
78
+ const [year, month, day] = value.split('-').map(Number);
79
+ return dateFromParts(year, month, day);
80
+ }
81
+ /** Normalizes a legacy string or Moment-like value for the date picker's ISO-only calendar. */
82
+ function normalizeDatePickerValue(value) {
83
+ if (!value)
84
+ return;
85
+ let date;
86
+ if (value instanceof Date) {
87
+ date = value;
88
+ }
89
+ else if (isMomentLike(value)) {
90
+ try {
91
+ date = value.toDate();
92
+ }
93
+ catch (_a) {
94
+ return;
95
+ }
96
+ }
97
+ else {
98
+ const input = value.trim();
99
+ if (!input)
100
+ return;
101
+ date = parseDatePickerValue(input);
102
+ if (!date) {
103
+ const isoLikeParts = input.match(isoLikeDatePattern);
104
+ const slashParts = input.match(slashDatePattern);
105
+ if (isoLikeParts) {
106
+ date = dateFromParts(Number(isoLikeParts[1]), Number(isoLikeParts[2]), Number(isoLikeParts[3]));
107
+ }
108
+ else if (slashParts) {
109
+ const parsedYear = Number(slashParts[3]);
110
+ const year = parsedYear < 100 ? (parsedYear >= 69 ? 1900 : 2000) + parsedYear : parsedYear;
111
+ date = dateFromParts(year, Number(slashParts[1]), Number(slashParts[2]));
112
+ }
113
+ else {
114
+ const parsedDate = new Date(input);
115
+ date = dateFnsExports.isValid(parsedDate)
116
+ ? dateFromParts(parsedDate.getFullYear(), parsedDate.getMonth() + 1, parsedDate.getDate())
117
+ : undefined;
118
+ }
119
+ }
120
+ }
121
+ return formatDateISO(date);
122
+ }
123
+ /** Returns the month and year used to initialize the date picker grid. */
124
+ function setupMonthYear(value = new Date()) {
125
+ return {
126
+ monthIndex: value.getMonth(),
127
+ selectedYear: value.getFullYear(),
128
+ };
129
+ }
130
+ /** Returns the enabled day indexes represented by a calendar checksum. */
131
+ function getValidDaysOfWeek(checksum = 127) {
132
+ const validDays = [];
133
+ for (let day = 0; day < 7; day++) {
134
+ if (checksum & (1 << day))
135
+ validDays.push(day);
136
+ }
137
+ return checksum > 0 ? validDays : [];
138
+ }
139
+ /** Determines whether a date satisfies the configured bounds and cutoff. */
140
+ function baseValidation(dateValidators, now, newDate) {
141
+ const isNewDateBeforeStartDate = dateFnsExports.isAfter(dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.startDate, newDate);
142
+ const isNewDateAfterEndDate = dateFnsExports.isBefore(dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.endDate, newDate);
143
+ const isNowAfterCutoffTime = dateFnsExports.isSameDay(now, newDate) && dateFnsExports.isAfter(now, dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.cutOffTime);
144
+ return !(isNewDateBeforeStartDate || isNowAfterCutoffTime || isNewDateAfterEndDate);
145
+ }
146
+ /** Determines whether a date's weekday is enabled. */
147
+ function validateAgainstChecksum(validDaysOfWeek, date) {
148
+ return validDaysOfWeek.includes(date.getDay());
149
+ }
150
+ /** Determines whether a date is absent from a blacklist. */
151
+ function validateAgainstBlacklist(invalidDates, date) {
152
+ return !validateAgainstWhitelist(invalidDates, date);
153
+ }
154
+ /** Determines whether a date is present in a whitelist. */
155
+ function validateAgainstWhitelist(validDates, date) {
156
+ return validDates.some(validDate => dateFnsExports.isSameDay(validDate, date));
157
+ }
158
+ function assumeYear(month, day, assume) {
159
+ const monthDay = `${month.padStart(2, '0')}/${day.padStart(2, '0')}`;
160
+ const now = new Date();
161
+ const currentMonthDay = `${now.getMonth() + 1}`.padStart(2, '0') + `/${now.getDate()}`.padStart(2, '0');
162
+ let year = now.getFullYear();
163
+ if (assume === 'future' && currentMonthDay > monthDay)
164
+ year++;
165
+ if (assume === 'past' && currentMonthDay < monthDay)
166
+ year--;
167
+ return `${year}`;
168
+ }
169
+ function parseDatePickerValues(values) {
170
+ return (values || []).map(parseDatePickerValue).filter((date) => !!date);
171
+ }
172
+ function dateFromParts(year, month, day) {
173
+ const date = new Date(0);
174
+ date.setFullYear(year, month - 1, day);
175
+ date.setHours(0, 0, 0, 0);
176
+ if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day)
177
+ return;
178
+ return date;
179
+ }
180
+ function isMomentLike(value) {
181
+ return typeof value !== 'string' && typeof (value === null || value === void 0 ? void 0 : value.toDate) === 'function';
182
+ }
183
+ /** Formats a date using one of the date picker's supported numeric display formats. */
184
+ function formatDisplayDate(date, displayFormat) {
185
+ const separator = displayFormat.includes('-') ? '-' : '/';
186
+ const month = `${date.getMonth() + 1}`.padStart(2, '0');
187
+ const day = `${date.getDate()}`.padStart(2, '0');
188
+ const year = `${date.getFullYear()}`;
189
+ const dateParts = displayFormat.startsWith('YYYY')
190
+ ? [year, month, day]
191
+ : displayFormat.startsWith('DD')
192
+ ? [day, month, year]
193
+ : [month, day, year];
194
+ return dateParts.join(separator);
195
+ }
196
+ /** Formats a date using the legacy Moment-style tokens accepted by q2-calendar. */
197
+ function formatLegacyDisplayDate(date, displayFormat) {
198
+ const dateFnsFormat = displayFormat
199
+ .replace(/[d]/g, 'E')
200
+ .replace(/[D]/g, 'd')
201
+ .replace(/[Y]/g, 'y')
202
+ .replace(/[l]/g, 'P')
203
+ .replace(/[W]/g, 'I');
204
+ return dateFnsExports.format(date, dateFnsFormat);
205
+ }
206
+ /** Determines whether a date satisfies every configured selection constraint. */
207
+ function isDateSelectable(date, constraints) {
208
+ const cutoffTime = new Date(constraints.cutoffTime || '');
209
+ const withinBounds = baseValidation({
210
+ startDate: parseDatePickerValue(constraints.startDate),
211
+ endDate: parseDatePickerValue(constraints.endDate),
212
+ cutOffTime: dateFnsExports.isValid(cutoffTime) ? cutoffTime : undefined,
213
+ }, new Date(), date);
214
+ const validDates = parseDatePickerValues(constraints.validDates);
215
+ const matchesAllowedDates = (validDates === null || validDates === void 0 ? void 0 : validDates.length)
216
+ ? validateAgainstWhitelist(validDates, date)
217
+ : validateAgainstChecksum(getValidDaysOfWeek(constraints.daysOfWeekChecksum), date);
218
+ return (withinBounds &&
219
+ matchesAllowedDates &&
220
+ validateAgainstBlacklist(parseDatePickerValues(constraints.invalidDates), date));
221
+ }
222
+ /** Determines whether every date in an inclusive range is selectable. */
223
+ function isRangeSelectable(start, end, constraints) {
224
+ for (let date = start; date.getTime() <= end.getTime(); date = dateFnsExports.addDays(date, 1)) {
225
+ if (!isDateSelectable(date, constraints))
226
+ return false;
227
+ }
228
+ return true;
229
+ }
230
+ /** Resolves a date-picker localization key or mapped default string. */
231
+ function localizeDatePickerString(value, substitutions = {}) {
232
+ if (!value)
233
+ return '';
234
+ return loc(defaultDatePickerStringKeys[value] || value, substitutions);
235
+ }
236
+ /** Returns a supported display format, falling back to the date-picker default. */
237
+ function normalizeDisplayFormat(displayFormat) {
238
+ const normalizedFormat = displayFormat === null || displayFormat === void 0 ? void 0 : displayFormat.toUpperCase();
239
+ return supportedDisplayFormats.includes(normalizedFormat) ? normalizedFormat : defaultDisplayFormat;
240
+ }
241
+
242
+ export { getDaysOfWeek as a, formatDisplayDate as b, isRangeSelectable as c, formatDateFull as d, normalizeDatePickerValue as e, formatDateISO as f, getDays as g, formatLegacyDisplayDate as h, isDateSelectable as i, buildInputDate as j, localizeDatePickerString as l, normalizeDisplayFormat as n, parseDatePickerValue as p, setupMonthYear as s };
@@ -289,7 +289,7 @@ const resizeIframe = () => {
289
289
  // Handling color attribute (deprecated)
290
290
  const handleColor = (target) => {
291
291
  if (!target.intent && ['primary', 'secondary'].includes(target.color)) {
292
- target.intent = `workflow-${target.color}`;
292
+ target.intent = target.color;
293
293
  target.color = undefined;
294
294
  }
295
295
  };