q2-tecton-elements 1.72.0 → 1.73.0

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 (383) hide show
  1. package/dist/bundle-report.json +38990 -33801
  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 +1 -1
  11. package/dist/cjs/q2-badge_2.cjs.entry.js +2 -2
  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 +2 -2
  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 +4 -4
  49. package/dist/cjs/q2-pill.cjs.entry.js +7 -4
  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 +1 -1
  74. package/dist/collection/components/q2-btn/q2-btn.css +84 -136
  75. package/dist/collection/components/q2-btn/q2-btn.js +10 -4
  76. package/dist/collection/components/q2-btn/test/q2-btn-test.vr.js +99 -43
  77. package/dist/collection/components/q2-calendar/q2-calendar.js +16 -5
  78. package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
  79. package/dist/collection/components/q2-calendar/test/q2-calendar-test.vr.js +3 -13
  80. package/dist/collection/components/q2-card-image/q2-card-image.js +2 -2
  81. package/dist/collection/components/q2-carousel/q2-carousel.js +19 -5
  82. package/dist/collection/components/q2-carousel/test/q2-carousel-test.vr.js +32 -0
  83. package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
  84. package/dist/collection/components/q2-chart-area/q2-chart-area.css +11 -0
  85. package/dist/collection/components/q2-chart-area/q2-chart-area.js +53 -7
  86. package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.vr.js +14 -0
  87. package/dist/collection/components/q2-chart-bar/q2-chart-bar.css +11 -0
  88. package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +50 -4
  89. package/dist/collection/components/q2-chart-bar/test/q2-chart-bar-test.vr.js +14 -0
  90. package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +30 -10
  91. package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.vr.js +25 -0
  92. package/dist/collection/components/q2-checkbox/q2-checkbox.js +6 -3
  93. package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +6 -3
  94. package/dist/collection/components/q2-context/q2-context.js +3 -3
  95. package/dist/collection/components/q2-context/test/q2-context-test.vr.js +3 -3
  96. package/dist/collection/components/q2-currency/q2-currency.js +1 -1
  97. package/dist/collection/components/q2-data-table/q2-data-table.css +3 -0
  98. package/dist/collection/components/q2-data-table/q2-data-table.js +5 -5
  99. package/dist/collection/components/q2-data-table/test/q2-data-table-test.vr.js +47 -0
  100. package/dist/collection/components/q2-date-calendar/q2-date-calendar.css +393 -0
  101. package/dist/collection/components/q2-date-calendar/q2-date-calendar.js +1022 -0
  102. package/dist/collection/components/q2-date-calendar/test/q2-date-calendar-test.vr.js +111 -0
  103. package/dist/collection/components/q2-date-picker/q2-date-picker.css +138 -0
  104. package/dist/collection/components/q2-date-picker/q2-date-picker.js +2010 -0
  105. package/dist/collection/components/q2-date-picker/test/q2-date-picker-test.vr.js +179 -0
  106. package/dist/collection/components/q2-detail/q2-detail.js +1 -1
  107. package/dist/collection/components/q2-dropdown/q2-dropdown.js +5 -5
  108. package/dist/collection/components/q2-editable-field/q2-editable-field.js +27 -8
  109. package/dist/collection/components/q2-example/q2-example.js +1 -1
  110. package/dist/collection/components/q2-file-picker/q2-file-picker.js +1 -1
  111. package/dist/collection/components/q2-form/q2-form.js +1 -1
  112. package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
  113. package/dist/collection/components/q2-input/q2-input.js +6 -3
  114. package/dist/collection/components/q2-item/q2-item.js +19 -1
  115. package/dist/collection/components/q2-item/test/q2-item-test.vr.js +2 -2
  116. package/dist/collection/components/q2-legend/q2-legend.js +1 -1
  117. package/dist/collection/components/q2-list/q2-list.js +1 -1
  118. package/dist/collection/components/q2-message/q2-message.js +1 -1
  119. package/dist/collection/components/q2-meter/q2-meter.js +1 -1
  120. package/dist/collection/components/q2-modal/q2-modal.js +1 -1
  121. package/dist/collection/components/q2-modal/test/q2-modal-test.vr.js +7 -7
  122. package/dist/collection/components/q2-mutation-observer/q2-mutation-observer.js +1 -1
  123. package/dist/collection/components/q2-optgroup/q2-optgroup.js +1 -1
  124. package/dist/collection/components/q2-option-list/q2-option-list.js +36 -4
  125. package/dist/collection/components/q2-otp/q2-otp.js +4 -4
  126. package/dist/collection/components/q2-pagination/q2-pagination.js +3 -3
  127. package/dist/collection/components/q2-pill/q2-pill.js +6 -3
  128. package/dist/collection/components/q2-popover/q2-popover.css +1 -0
  129. package/dist/collection/components/q2-popover/q2-popover.js +43 -8
  130. package/dist/collection/components/q2-radio/q2-radio.js +5 -2
  131. package/dist/collection/components/q2-radio-group/q2-radio-group.js +6 -3
  132. package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
  133. package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
  134. package/dist/collection/components/q2-search/q2-search.js +6 -3
  135. package/dist/collection/components/q2-section/q2-section.js +2 -2
  136. package/dist/collection/components/q2-select/q2-select.js +12 -5
  137. package/dist/collection/components/q2-stepper/q2-stepper.js +1 -1
  138. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +1 -1
  139. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +1 -1
  140. package/dist/collection/components/q2-surface/q2-surface.js +1 -1
  141. package/dist/collection/components/q2-surface/test/q2-surface-test.vr.js +2 -2
  142. package/dist/collection/components/q2-tab-container/q2-tab-container.js +1 -1
  143. package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
  144. package/dist/collection/components/q2-tag/q2-tag.js +6 -3
  145. package/dist/collection/components/q2-textarea/q2-textarea.js +6 -3
  146. package/dist/collection/components/q2-tooltip/test/q2-tooltip-test.vr.js +1 -1
  147. package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
  148. package/dist/collection/utils/chart-keyboard.js +76 -0
  149. package/dist/collection/utils/date-picker/date-picker-helpers.js +239 -0
  150. package/dist/collection/utils/date-picker/date-picker-types.js +1 -0
  151. package/dist/collection/utils/index.js +1 -1
  152. package/dist/components/charting.js +1603 -1532
  153. package/dist/components/dataSample.js +7 -7
  154. package/dist/components/index.js +57 -53
  155. package/dist/components/index2.js +2 -2
  156. package/dist/components/q2-action-sheet.js +224 -103
  157. package/dist/components/q2-avatar2.js +8 -8
  158. package/dist/components/q2-btn2.js +2 -2
  159. package/dist/components/q2-calendar.js +6 -3
  160. package/dist/components/q2-card-image.js +2 -2
  161. package/dist/components/q2-carousel-pane2.js +3 -3
  162. package/dist/components/q2-carousel.js +37 -24
  163. package/dist/components/q2-chart-area.js +415 -369
  164. package/dist/components/q2-chart-bar.js +193 -148
  165. package/dist/components/q2-chart-donut.js +185 -158
  166. package/dist/components/q2-checkbox-group.js +6 -6
  167. package/dist/components/q2-checkbox2.js +11 -11
  168. package/dist/components/q2-context.js +20 -20
  169. package/dist/components/q2-currency.js +9 -9
  170. package/dist/components/q2-data-table.js +111 -111
  171. package/dist/components/q2-date-calendar.d.ts +11 -0
  172. package/dist/components/q2-date-calendar.js +5 -0
  173. package/dist/components/q2-date-calendar2.js +678 -0
  174. package/dist/components/q2-date-picker.d.ts +11 -0
  175. package/dist/components/q2-date-picker.js +5 -0
  176. package/dist/components/q2-date-picker2.js +875 -0
  177. package/dist/components/q2-detail.js +3 -3
  178. package/dist/components/q2-dropdown.js +17 -17
  179. package/dist/components/q2-editable-field.js +16 -5
  180. package/dist/components/q2-example.js +11 -11
  181. package/dist/components/q2-file-picker.js +1 -1
  182. package/dist/components/q2-form.js +6 -6
  183. package/dist/components/q2-formatted-text.js +2 -2
  184. package/dist/components/q2-input2.js +5 -5
  185. package/dist/components/q2-item2.js +32 -22
  186. package/dist/components/q2-legend2.js +7 -7
  187. package/dist/components/q2-list2.js +6 -6
  188. package/dist/components/q2-message2.js +9 -9
  189. package/dist/components/q2-meter.js +7 -7
  190. package/dist/components/q2-modal.js +22 -22
  191. package/dist/components/q2-month-picker.js +17 -17
  192. package/dist/components/q2-mutation-observer.js +1 -1
  193. package/dist/components/q2-optgroup2.js +7 -7
  194. package/dist/components/q2-option-list2.js +55 -34
  195. package/dist/components/q2-otp.js +8 -8
  196. package/dist/components/q2-pagination.js +67 -67
  197. package/dist/components/q2-pill.js +16 -14
  198. package/dist/components/q2-popover2.js +70 -49
  199. package/dist/components/q2-radio-group.js +7 -7
  200. package/dist/components/q2-radio.js +6 -6
  201. package/dist/components/q2-relative-time.js +1 -1
  202. package/dist/components/q2-resize-observer2.js +23 -23
  203. package/dist/components/q2-search.js +5 -5
  204. package/dist/components/q2-section.js +19 -19
  205. package/dist/components/q2-select2.js +2 -2
  206. package/dist/components/q2-stepper-pane.js +9 -9
  207. package/dist/components/q2-stepper-vertical.js +4 -4
  208. package/dist/components/q2-stepper.js +57 -57
  209. package/dist/components/q2-surface.js +3 -3
  210. package/dist/components/q2-tab-container.js +17 -17
  211. package/dist/components/q2-tab-pane.js +2 -2
  212. package/dist/components/q2-tag2.js +8 -6
  213. package/dist/components/q2-textarea.js +3 -3
  214. package/dist/components/sectorHelper.js +78 -78
  215. package/dist/components/tecton-tab-pane.js +10 -10
  216. package/dist/esm/{charting-DOZct-UB.js → charting-DFXJklqs.js} +79 -1
  217. package/dist/esm/click-elsewhere_3.entry.js +81 -14
  218. package/dist/esm/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +1 -1
  219. package/dist/esm/date-picker-helpers-D8QnN_AS.js +242 -0
  220. package/dist/esm/{index-DJw6Feh0.js → index-CP8pXJ-l.js} +1 -1
  221. package/dist/esm/loader.js +1 -1
  222. package/dist/esm/q2-action-group.entry.js +1 -1
  223. package/dist/esm/q2-action-sheet.entry.js +99 -19
  224. package/dist/esm/q2-avatar.entry.js +1 -1
  225. package/dist/esm/q2-badge_2.entry.js +2 -2
  226. package/dist/esm/q2-btn_2.entry.js +2 -2
  227. package/dist/esm/q2-calendar.entry.js +9 -4
  228. package/dist/esm/q2-card-image.entry.js +3 -3
  229. package/dist/esm/q2-card.entry.js +1 -1
  230. package/dist/esm/q2-carousel-pane.entry.js +3 -3
  231. package/dist/esm/q2-carousel.entry.js +20 -6
  232. package/dist/esm/q2-chart-area.entry.js +38 -7
  233. package/dist/esm/q2-chart-bar.entry.js +39 -8
  234. package/dist/esm/q2-chart-donut.entry.js +31 -13
  235. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  236. package/dist/esm/q2-checkbox_2.entry.js +8 -5
  237. package/dist/esm/q2-context.entry.js +4 -4
  238. package/dist/esm/q2-currency.entry.js +1 -1
  239. package/dist/esm/q2-data-table.entry.js +7 -7
  240. package/dist/esm/q2-date-calendar.entry.js +450 -0
  241. package/dist/esm/q2-date-picker_2.entry.js +965 -0
  242. package/dist/esm/q2-detail.entry.js +2 -2
  243. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  244. package/dist/esm/q2-dropdown.entry.js +3 -3
  245. package/dist/esm/q2-editable-field.entry.js +20 -7
  246. package/dist/esm/q2-example.entry.js +1 -1
  247. package/dist/esm/q2-file-picker.entry.js +2 -2
  248. package/dist/esm/q2-form.entry.js +1 -1
  249. package/dist/esm/q2-formatted-text.entry.js +1 -1
  250. package/dist/esm/q2-icon.entry.js +1 -1
  251. package/dist/esm/q2-item.entry.js +20 -2
  252. package/dist/esm/q2-legend.entry.js +1 -1
  253. package/dist/esm/q2-link_2.entry.js +2 -2
  254. package/dist/esm/q2-loc.entry.js +1 -1
  255. package/dist/esm/q2-message.entry.js +2 -2
  256. package/dist/esm/q2-meter.entry.js +2 -2
  257. package/dist/esm/q2-modal.entry.js +2 -2
  258. package/dist/esm/q2-month-picker.entry.js +3 -3
  259. package/dist/esm/q2-mutation-observer.entry.js +1 -1
  260. package/dist/esm/q2-option.entry.js +1 -1
  261. package/dist/esm/q2-otp.entry.js +5 -5
  262. package/dist/esm/q2-pagination.entry.js +4 -4
  263. package/dist/esm/q2-pill.entry.js +7 -4
  264. package/dist/esm/q2-radio-group.entry.js +2 -2
  265. package/dist/esm/q2-radio.entry.js +2 -2
  266. package/dist/esm/q2-relative-time.entry.js +2 -2
  267. package/dist/esm/q2-resize-observer.entry.js +1 -1
  268. package/dist/esm/q2-search.entry.js +3 -3
  269. package/dist/esm/q2-section.entry.js +3 -3
  270. package/dist/esm/q2-select.entry.js +8 -4
  271. package/dist/esm/q2-stepper-pane.entry.js +2 -2
  272. package/dist/esm/q2-stepper-vertical.entry.js +2 -2
  273. package/dist/esm/q2-stepper.entry.js +2 -2
  274. package/dist/esm/q2-surface.entry.js +1 -1
  275. package/dist/esm/q2-tab-container.entry.js +2 -2
  276. package/dist/esm/q2-tab-pane.entry.js +1 -1
  277. package/dist/esm/q2-tecton-elements.js +1 -1
  278. package/dist/esm/q2-textarea.entry.js +2 -2
  279. package/dist/esm/q2-toast.entry.js +1 -1
  280. package/dist/esm/q2-tooltip.entry.js +1 -1
  281. package/dist/esm/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +1 -1
  282. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  283. package/dist/q2-tecton-elements/{charting-DOZct-UB.js → charting-DFXJklqs.js} +1625 -1554
  284. package/dist/q2-tecton-elements/click-elsewhere_3.entry.js +85 -43
  285. package/dist/q2-tecton-elements/{dataSample-Dm1zpQNi.js → dataSample-CP_VKNqt.js} +33 -33
  286. package/dist/q2-tecton-elements/date-picker-helpers-D8QnN_AS.js +153 -0
  287. package/dist/q2-tecton-elements/{index-DJw6Feh0.js → index-CP8pXJ-l.js} +1 -1
  288. package/dist/q2-tecton-elements/q2-action-group.entry.js +1 -1
  289. package/dist/q2-tecton-elements/q2-action-sheet.entry.js +169 -84
  290. package/dist/q2-tecton-elements/q2-avatar.entry.js +8 -8
  291. package/dist/q2-tecton-elements/q2-badge_2.entry.js +5 -5
  292. package/dist/q2-tecton-elements/q2-btn_2.entry.js +23 -23
  293. package/dist/q2-tecton-elements/q2-calendar.entry.js +7 -4
  294. package/dist/q2-tecton-elements/q2-card-image.entry.js +3 -3
  295. package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
  296. package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +4 -4
  297. package/dist/q2-tecton-elements/q2-carousel.entry.js +24 -11
  298. package/dist/q2-tecton-elements/q2-chart-area.entry.js +187 -141
  299. package/dist/q2-tecton-elements/q2-chart-bar.entry.js +377 -333
  300. package/dist/q2-tecton-elements/q2-chart-donut.entry.js +184 -158
  301. package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +7 -7
  302. package/dist/q2-tecton-elements/q2-checkbox_2.entry.js +20 -18
  303. package/dist/q2-tecton-elements/q2-context.entry.js +21 -21
  304. package/dist/q2-tecton-elements/q2-currency.entry.js +9 -9
  305. package/dist/q2-tecton-elements/q2-data-table.entry.js +7 -7
  306. package/dist/q2-tecton-elements/q2-date-calendar.entry.js +438 -0
  307. package/dist/q2-tecton-elements/q2-date-picker_2.entry.js +792 -0
  308. package/dist/q2-tecton-elements/q2-detail.entry.js +4 -4
  309. package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
  310. package/dist/q2-tecton-elements/q2-dropdown.entry.js +16 -16
  311. package/dist/q2-tecton-elements/q2-editable-field.entry.js +17 -6
  312. package/dist/q2-tecton-elements/q2-example.entry.js +1 -1
  313. package/dist/q2-tecton-elements/q2-file-picker.entry.js +2 -2
  314. package/dist/q2-tecton-elements/q2-form.entry.js +2 -2
  315. package/dist/q2-tecton-elements/q2-formatted-text.entry.js +2 -2
  316. package/dist/q2-tecton-elements/q2-icon.entry.js +1 -1
  317. package/dist/q2-tecton-elements/q2-item.entry.js +26 -16
  318. package/dist/q2-tecton-elements/q2-legend.entry.js +2 -2
  319. package/dist/q2-tecton-elements/q2-link_2.entry.js +7 -7
  320. package/dist/q2-tecton-elements/q2-loc.entry.js +1 -1
  321. package/dist/q2-tecton-elements/q2-message.entry.js +28 -28
  322. package/dist/q2-tecton-elements/q2-meter.entry.js +8 -8
  323. package/dist/q2-tecton-elements/q2-modal.entry.js +18 -18
  324. package/dist/q2-tecton-elements/q2-month-picker.entry.js +14 -14
  325. package/dist/q2-tecton-elements/q2-mutation-observer.entry.js +1 -1
  326. package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
  327. package/dist/q2-tecton-elements/q2-otp.entry.js +9 -9
  328. package/dist/q2-tecton-elements/q2-pagination.entry.js +20 -20
  329. package/dist/q2-tecton-elements/q2-pill.entry.js +42 -40
  330. package/dist/q2-tecton-elements/q2-radio-group.entry.js +8 -8
  331. package/dist/q2-tecton-elements/q2-radio.entry.js +7 -7
  332. package/dist/q2-tecton-elements/q2-relative-time.entry.js +5 -5
  333. package/dist/q2-tecton-elements/q2-resize-observer.entry.js +13 -13
  334. package/dist/q2-tecton-elements/q2-search.entry.js +6 -6
  335. package/dist/q2-tecton-elements/q2-section.entry.js +20 -20
  336. package/dist/q2-tecton-elements/q2-select.entry.js +3 -3
  337. package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +13 -13
  338. package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +9 -9
  339. package/dist/q2-tecton-elements/q2-stepper.entry.js +45 -45
  340. package/dist/q2-tecton-elements/q2-surface.entry.js +3 -3
  341. package/dist/q2-tecton-elements/q2-tab-container.entry.js +20 -20
  342. package/dist/q2-tecton-elements/q2-tab-pane.entry.js +7 -7
  343. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  344. package/dist/q2-tecton-elements/q2-textarea.entry.js +3 -3
  345. package/dist/q2-tecton-elements/q2-toast.entry.js +1 -1
  346. package/dist/q2-tecton-elements/q2-tooltip.entry.js +1 -1
  347. package/dist/q2-tecton-elements/{sectorHelper--RMGWGAy.js → sectorHelper-DBtkWtpl.js} +56 -56
  348. package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +6 -6
  349. package/dist/types/components/q2-action-sheet/q2-action-sheet.d.ts +21 -1
  350. package/dist/types/components/q2-action-sheet/test/q2-action-sheet-test.vr.d.ts +1 -0
  351. package/dist/types/components/q2-btn/q2-btn.d.ts +7 -3
  352. package/dist/types/components/q2-calendar/q2-calendar.d.ts +10 -2
  353. package/dist/types/components/q2-carousel/q2-carousel.d.ts +5 -0
  354. package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +11 -2
  355. package/dist/types/components/q2-chart-bar/q2-chart-bar.d.ts +9 -0
  356. package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +1 -0
  357. package/dist/types/components/q2-checkbox/q2-checkbox.d.ts +4 -3
  358. package/dist/types/components/q2-checkbox-group/q2-checkbox-group.d.ts +4 -2
  359. package/dist/types/components/q2-date-calendar/q2-date-calendar.d.ts +122 -0
  360. package/dist/types/components/q2-date-calendar/test/q2-date-calendar-test.vr.d.ts +1 -0
  361. package/dist/types/components/q2-date-picker/q2-date-picker.d.ts +304 -0
  362. package/dist/types/components/q2-date-picker/test/q2-date-picker-test.vr.d.ts +1 -0
  363. package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +3 -3
  364. package/dist/types/components/q2-editable-field/q2-editable-field.d.ts +14 -1
  365. package/dist/types/components/q2-input/q2-input.d.ts +4 -2
  366. package/dist/types/components/q2-item/q2-item.d.ts +3 -0
  367. package/dist/types/components/q2-option-list/q2-option-list.d.ts +1 -0
  368. package/dist/types/components/q2-popover/q2-popover.d.ts +4 -0
  369. package/dist/types/components/q2-radio/q2-radio.d.ts +3 -2
  370. package/dist/types/components/q2-radio-group/q2-radio-group.d.ts +4 -2
  371. package/dist/types/components/q2-search/q2-search.d.ts +3 -1
  372. package/dist/types/components/q2-select/q2-select.d.ts +4 -2
  373. package/dist/types/components/q2-textarea/q2-textarea.d.ts +4 -2
  374. package/dist/types/components.d.ts +858 -49
  375. package/dist/types/global.d.ts +1 -0
  376. package/dist/types/index.d.ts +1 -0
  377. package/dist/types/utils/chart-keyboard.d.ts +16 -0
  378. package/dist/types/utils/date-picker/date-picker-helpers.d.ts +47 -0
  379. package/dist/types/utils/date-picker/date-picker-types.d.ts +42 -0
  380. package/package.json +3 -3
  381. package/dist/cjs/q2-optgroup.cjs.entry.js +0 -70
  382. package/dist/esm/q2-optgroup.entry.js +0 -68
  383. package/dist/q2-tecton-elements/q2-optgroup.entry.js +0 -88
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var index = require('./index-BqyWHpNu.js');
4
+
3
5
  /*! *****************************************************************************
4
6
  Copyright (c) Microsoft Corporation.
5
7
 
@@ -34226,6 +34228,82 @@ function install(registers) {
34226
34228
  registers.registerPainter('canvas', CanvasPainter);
34227
34229
  }
34228
34230
 
34231
+ /** Localized feedback shared by chart keyboard controls. */
34232
+ function chartPointDescription(name, value, index$1, count) {
34233
+ return index.loc('tecton.element.chart.pointDescription', [index.loc(name) || '', value, `${index$1 + 1}`, `${count}`]);
34234
+ }
34235
+ /** Coordinates keyboard exploration with ECharts emphasis without changing chart data. */
34236
+ function createChartKeyboardNavigation(options) {
34237
+ let index = null;
34238
+ let focused = false;
34239
+ const clear = () => {
34240
+ var _a;
34241
+ if (index !== null) {
34242
+ (_a = options.getChart()) === null || _a === void 0 ? void 0 : _a.dispatchAction({ type: 'downplay', seriesIndex: 0, dataIndex: index });
34243
+ }
34244
+ index = null;
34245
+ options.onChange(null);
34246
+ };
34247
+ const select = (next) => {
34248
+ var _a;
34249
+ if (!options.getData()[next] || next === index)
34250
+ return;
34251
+ clear();
34252
+ index = next;
34253
+ (_a = options.getChart()) === null || _a === void 0 ? void 0 : _a.dispatchAction({ type: 'highlight', seriesIndex: 0, dataIndex: index });
34254
+ options.onChange(index);
34255
+ };
34256
+ const order = () => { var _a, _b; return (_b = (_a = options.getOrder) === null || _a === void 0 ? void 0 : _a.call(options)) !== null && _b !== void 0 ? _b : options.getData().map((_, i) => i); };
34257
+ return {
34258
+ onFocus: () => {
34259
+ focused = true;
34260
+ select(order()[0]);
34261
+ },
34262
+ onBlur: () => {
34263
+ focused = false;
34264
+ clear();
34265
+ },
34266
+ onKeyDown: (event) => {
34267
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey)
34268
+ return;
34269
+ const indices = order();
34270
+ if (!indices.length)
34271
+ return;
34272
+ const position = index === null ? -1 : indices.indexOf(index);
34273
+ let next;
34274
+ switch (event.key) {
34275
+ case 'ArrowRight':
34276
+ case 'ArrowDown':
34277
+ next = Math.min(position + 1, indices.length - 1);
34278
+ break;
34279
+ case 'ArrowLeft':
34280
+ case 'ArrowUp':
34281
+ next = Math.max(position - 1, 0);
34282
+ break;
34283
+ case 'Home':
34284
+ next = 0;
34285
+ break;
34286
+ case 'End':
34287
+ next = indices.length - 1;
34288
+ break;
34289
+ case 'Escape':
34290
+ event.preventDefault();
34291
+ clear();
34292
+ return;
34293
+ default:
34294
+ return;
34295
+ }
34296
+ event.preventDefault();
34297
+ select(indices[next]);
34298
+ },
34299
+ refresh: () => {
34300
+ clear();
34301
+ if (focused)
34302
+ select(order()[0]);
34303
+ },
34304
+ };
34305
+ }
34306
+
34229
34307
  var ValidColorNames;
34230
34308
  (function (ValidColorNames) {
34231
34309
  ValidColorNames[ValidColorNames["aliceblue"] = 0] = "aliceblue";
@@ -34449,10 +34527,12 @@ exports.bind = bind$1;
34449
34527
  exports.box = box;
34450
34528
  exports.buildTooltipMarkup = buildTooltipMarkup;
34451
34529
  exports.calculateTextPosition = calculateTextPosition;
34530
+ exports.chartPointDescription = chartPointDescription;
34452
34531
  exports.clear = clear;
34453
34532
  exports.clone = clone$2;
34454
34533
  exports.clonePath = clonePath;
34455
34534
  exports.convertToColorString = convertToColorString;
34535
+ exports.createChartKeyboardNavigation = createChartKeyboardNavigation;
34456
34536
  exports.createFloat32Array = createFloat32Array;
34457
34537
  exports.createHashMap = createHashMap;
34458
34538
  exports.createIcon = createIcon;
@@ -3,7 +3,7 @@
3
3
  var index = require('./index-DUaTw_1N.js');
4
4
  var mirrorEmit = require('./mirror-emit-kjeNv83f.js');
5
5
  var component = require('./component-iASoq6gx.js');
6
- var index$1 = require('./index-BY3aao8R.js');
6
+ var index$1 = require('./index-BqyWHpNu.js');
7
7
 
8
8
  const ClickElsewhere = class {
9
9
  constructor(hostRef) {
@@ -511,9 +511,32 @@ const Q2OptionList = class {
511
511
  return;
512
512
  const optionRole = type === 'menu' ? 'menuitem' : 'option';
513
513
  this.allOptions.forEach(option => {
514
+ // iOS 26 bug: setting role="menuitem" on the q2-dropdown-item host prevents VoiceOver from announcing the option name.
515
+ if (type === 'menu' && option.tagName.toLowerCase() === 'q2-dropdown-item')
516
+ return;
514
517
  option.role = optionRole;
515
518
  });
516
519
  }
520
+ findScrollableAncestor(node) {
521
+ var _a, _b;
522
+ let current = node;
523
+ while (current) {
524
+ if (current instanceof HTMLElement && current !== node) {
525
+ const overflowY = getComputedStyle(current).overflowY;
526
+ // Skip html/body so page-level scroll isn't treated as our container.
527
+ if ((overflowY === 'auto' || overflowY === 'scroll') &&
528
+ current !== document.documentElement &&
529
+ current !== document.body) {
530
+ return current;
531
+ }
532
+ }
533
+ const slot = current.assignedSlot;
534
+ const parent = current.parentNode;
535
+ const shadowHost = current.host;
536
+ current = (_b = (_a = slot !== null && slot !== void 0 ? slot : parent) !== null && _a !== void 0 ? _a : shadowHost) !== null && _b !== void 0 ? _b : null;
537
+ }
538
+ return null;
539
+ }
517
540
  focusSelectedSibling(option) {
518
541
  const { allVisibleOptions, allOptions } = this;
519
542
  const hasNoSiblings = allVisibleOptions.length < 2;
@@ -595,9 +618,18 @@ const Q2OptionList = class {
595
618
  const activeOption = this.allOptions[this.activeIndex];
596
619
  if (!activeOption)
597
620
  return;
598
- const { scrollX, scrollY } = window;
599
- activeOption.scrollIntoView({ block: 'center' });
600
- window.scrollTo(scrollX, scrollY);
621
+ // Do our own scroll math so `scrollIntoView` doesn't cascade to the parent window in an SDK iframe.
622
+ const container = this.findScrollableAncestor(activeOption);
623
+ if (container) {
624
+ if (container.scrollHeight > container.clientHeight) {
625
+ const optionRect = activeOption.getBoundingClientRect();
626
+ const containerRect = container.getBoundingClientRect();
627
+ const optionCenter = optionRect.top - containerRect.top + optionRect.height / 2;
628
+ container.scrollTop += optionCenter - containerRect.height / 2;
629
+ }
630
+ return;
631
+ }
632
+ activeOption.scrollIntoView({ block: 'nearest' });
601
633
  }
602
634
  searchOptions(key, shouldSelect) {
603
635
  this.searchString = key;
@@ -681,7 +713,7 @@ const Q2OptionList = class {
681
713
  // #endregion
682
714
  // #region Render Methods
683
715
  render() {
684
- return (index.h(index.Host, { key: 'ea6ef8ea9e667c6d1485212ea636b23725ce9043' }, index.h("div", { key: '6bc6ffec50a40b8b8ee4cf2b66388200eb3f0d32', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, index.h("div", { key: '28b5d0460ceca2f0b9a8fd4fa018f949d04154df', class: "options", "aria-label": index$1.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 }, index.h("slot", { key: '666147b2cd06490c883c8a01b11e9cfa209a19dd' })))));
716
+ return (index.h(index.Host, { key: '19cadb5668db33a912951df4ec0e81a74b2b78ce' }, index.h("div", { key: '1d5a8f310ee97bc2189b839ee3d87e08bf0fa269', class: "content", ref: el => (this.contentElement = el), onFocusout: this.focusoutHandler }, index.h("div", { key: '24b1616962a9b544fb6215acc1e6edb4f12a5a03', class: "options", "aria-label": index$1.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 }, index.h("slot", { key: 'eeb0342b7c319f5f5af95daa54dcaa732c3159d9' })))));
685
717
  }
686
718
  get hostElement() { return index.getElement(this); }
687
719
  static get watchers() { return {
@@ -695,7 +727,7 @@ const Q2OptionList = class {
695
727
  };
696
728
  Q2OptionList.style = q2OptionListCss();
697
729
 
698
- 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}`;
730
+ 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}`;
699
731
 
700
732
  const Q2Popover = class {
701
733
  constructor(hostRef) {
@@ -708,6 +740,7 @@ const Q2Popover = class {
708
740
  this.displayBuffer = 10;
709
741
  this.orientationChanged = false;
710
742
  this.pendingAnimationResolve = null;
743
+ this.platformScrollUnsubscribe = null;
711
744
  // #endregion
712
745
  // #region State Properties
713
746
  this.animationState = 'idle';
@@ -719,11 +752,30 @@ const Q2Popover = class {
719
752
  /** Aligns the popover to the left or right side of the control element. */
720
753
  this.align = 'left';
721
754
  this.mode = null;
755
+ this.handleInsideScroll = (event) => {
756
+ const { containerElement } = this;
757
+ if (!containerElement)
758
+ return;
759
+ if (containerElement.scrollHeight > containerElement.clientHeight)
760
+ return;
761
+ event.preventDefault();
762
+ };
722
763
  this.handleMinHeight = () => {
723
764
  if (this.minHeight) {
724
765
  index$1.handleDeprecationWarning(this, 'minHeight', 'prop');
725
766
  }
726
767
  };
768
+ this.handleOutsideScroll = (event) => {
769
+ if (!this.open)
770
+ return;
771
+ if (event.composedPath().includes(this.hostElement))
772
+ return;
773
+ this.open = false;
774
+ };
775
+ this.handlePlatformScroll = () => {
776
+ if (this.open)
777
+ this.open = false;
778
+ };
727
779
  this.handlePopoverToggleEvent = (event) => {
728
780
  mirrorEmit.mirrorEmit(this, ['popoverStateChanged', 'tctPopoverStateChanged'], { open: event.newState === 'open' });
729
781
  };
@@ -838,8 +890,10 @@ const Q2Popover = class {
838
890
  this.handleMinHeight();
839
891
  if (this.supportsPopoverAPI)
840
892
  (_a = this.containerElement) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.handlePopoverToggleEvent);
841
- if (this.open)
893
+ if (this.open) {
894
+ this.addViewportListeners();
842
895
  this.determinePopDirection();
896
+ }
843
897
  }
844
898
  // #endregion
845
899
  // #region Listeners
@@ -932,14 +986,22 @@ const Q2Popover = class {
932
986
  return isNaN(maxHeight) ? undefined : maxHeight;
933
987
  }
934
988
  addViewportListeners() {
935
- var _a;
989
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
936
990
  window.addEventListener('resize', this.viewPortOrientationChanged);
937
- visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.addEventListener('resize', this.viewPortChanged);
991
+ (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.addEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, 'resize', this.viewPortChanged);
938
992
  if (index$1.isInScrollableContainer(this.hostElement) && !index$1.isMobile()) {
939
993
  window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });
940
994
  }
941
- (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.addEventListener('orientationchange', this.viewPortOrientationChanged);
995
+ (_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);
942
996
  window.addEventListener('orientationchange', this.viewPortOrientationChanged);
997
+ if (!index$1.isMobile()) {
998
+ window.addEventListener('scroll', this.handleOutsideScroll, { passive: true, capture: true });
999
+ }
1000
+ (_f = this.containerElement) === null || _f === void 0 ? void 0 : _f.addEventListener('wheel', this.handleInsideScroll, { passive: false });
1001
+ (_g = this.containerElement) === null || _g === void 0 ? void 0 : _g.addEventListener('touchmove', this.handleInsideScroll, { passive: false });
1002
+ (_h = this.platformScrollUnsubscribe) === null || _h === void 0 ? void 0 : _h.call(this);
1003
+ this.platformScrollUnsubscribe =
1004
+ (_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;
943
1005
  }
944
1006
  clearCSSProperties() {
945
1007
  if (!this.containerElement)
@@ -1018,12 +1080,17 @@ const Q2Popover = class {
1018
1080
  }
1019
1081
  }
1020
1082
  removeViewportListeners() {
1021
- var _a;
1083
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1022
1084
  window.removeEventListener('resize', this.viewPortOrientationChanged);
1023
- visualViewport === null || visualViewport === void 0 ? void 0 : visualViewport.removeEventListener('resize', this.viewPortChanged);
1085
+ (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, 'resize', this.viewPortChanged);
1024
1086
  window.removeEventListener('scroll', this.viewPortChanged, { capture: true });
1025
- (_a = screen === null || screen === void 0 ? void 0 : screen.orientation) === null || _a === void 0 ? void 0 : _a.removeEventListener('orientationchange', this.viewPortOrientationChanged);
1087
+ (_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);
1026
1088
  window.removeEventListener('orientationchange', this.viewPortOrientationChanged);
1089
+ window.removeEventListener('scroll', this.handleOutsideScroll, { capture: true });
1090
+ (_f = this.containerElement) === null || _f === void 0 ? void 0 : _f.removeEventListener('wheel', this.handleInsideScroll);
1091
+ (_g = this.containerElement) === null || _g === void 0 ? void 0 : _g.removeEventListener('touchmove', this.handleInsideScroll);
1092
+ (_h = this.platformScrollUnsubscribe) === null || _h === void 0 ? void 0 : _h.call(this);
1093
+ this.platformScrollUnsubscribe = null;
1027
1094
  }
1028
1095
  setDirectionAndShow(direction) {
1029
1096
  var _a;
@@ -1058,7 +1125,7 @@ const Q2Popover = class {
1058
1125
  containerClasses.push('animating-open');
1059
1126
  if (this.animationState === 'closing')
1060
1127
  containerClasses.push('animating-close');
1061
- return (index.h("div", { key: '680ad8a90ef98d3a8c2c1f5ba2284d7cdfc3d2a6', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "manual" }, index.h("div", { key: 'dfe4d6f72df0dfa029d9296e27ceb60a75131d83', ref: el => (this.contentElement = el), class: "content" }, index.h("slot", { key: '22144006d226160fe790d156255d54e24bcad8ce' }))));
1128
+ return (index.h("div", { key: 'f608766723c6ae6737181318b5baf8b52ed7fc0f', ref: el => (this.containerElement = el), class: containerClasses.join(' '), "test-id": "outerContainer", tabIndex: -1, popover: "manual" }, index.h("div", { key: '477f1a209cf4abc984a82324d0c6fc07ede82160', ref: el => (this.contentElement = el), class: "content" }, index.h("slot", { key: '5b48ff13907b952a2cdcffc1b6e271e4982c78ad' }))));
1062
1129
  }
1063
1130
  get hostElement() { return index.getElement(this); }
1064
1131
  static get watchers() { return {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var charting = require('./charting-ClN1ldqv.js');
3
+ var charting = require('./charting-CdNTrVBe.js');
4
4
 
5
5
  /**
6
6
  * @class
@@ -0,0 +1,257 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-CgG3VNXc.js');
4
+ var index$1 = require('./index-BqyWHpNu.js');
5
+
6
+ const defaultDisplayFormat = 'MM/DD/YYYY';
7
+ const supportedDisplayFormats = [
8
+ defaultDisplayFormat,
9
+ 'DD/MM/YYYY',
10
+ 'MM-DD-YYYY',
11
+ 'DD-MM-YYYY',
12
+ 'YYYY-MM-DD',
13
+ ];
14
+ const defaultDatePickerStringKeys = {
15
+ 'Choose a date': 'tecton.element.datePicker.calendarLabel',
16
+ 'Dates are shown in your local time zone.': 'tecton.element.datePicker.disclaimer.localTimeZone',
17
+ };
18
+ const isoDatePattern = /^\d{4}-\d{2}-\d{2}$/;
19
+ const isoLikeDatePattern = /^(\d{4})-(\d{1,2})-(\d{1,2})(?:T.*)?$/;
20
+ const slashDatePattern = /^(\d{1,2})\/(\d{1,2})\/(\d{2}|\d{4})$/;
21
+ /** Determines a year for a month and day when typeable input omits the year. */
22
+ function buildInputDate(input, assume) {
23
+ const [month, day, year] = input.split('/');
24
+ if (!month)
25
+ return;
26
+ if (!day)
27
+ return new Date(new Date().getFullYear(), Number(month) - 1, 1);
28
+ if (Number(day) <= 0)
29
+ return;
30
+ const selectedYear = (year === null || year === void 0 ? void 0 : year.length) === 4 ? Number(year) : Number(assumeYear(month, day, assume));
31
+ const date = new Date(selectedYear, Number(month) - 1, Number(day));
32
+ return index.dateFnsExports.isValid(date) ? date : undefined;
33
+ }
34
+ /** Formats a valid date as an ISO calendar date. */
35
+ function formatDateISO(value) {
36
+ if (!index.dateFnsExports.isValid(value))
37
+ return;
38
+ return index.dateFnsExports.formatISO(value, { representation: 'date' });
39
+ }
40
+ /** Formats a date for an accessible day label. */
41
+ function formatDateFull(value) {
42
+ if (!index.dateFnsExports.isValid(value))
43
+ return;
44
+ return new Intl.DateTimeFormat('en-US', {
45
+ month: 'long',
46
+ day: 'numeric',
47
+ year: 'numeric',
48
+ weekday: 'long',
49
+ timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
50
+ }).format(value);
51
+ }
52
+ /** Returns localized abbreviated day names beginning with Sunday. */
53
+ function getDays() {
54
+ return [
55
+ index$1.loc('tecton.element.calendar.days.short.Sunday'),
56
+ index$1.loc('tecton.element.calendar.days.short.Monday'),
57
+ index$1.loc('tecton.element.calendar.days.short.Tuesday'),
58
+ index$1.loc('tecton.element.calendar.days.short.Wednesday'),
59
+ index$1.loc('tecton.element.calendar.days.short.Thursday'),
60
+ index$1.loc('tecton.element.calendar.days.short.Friday'),
61
+ index$1.loc('tecton.element.calendar.days.short.Saturday'),
62
+ ];
63
+ }
64
+ /** Returns localized full day names beginning with Sunday. */
65
+ function getDaysOfWeek() {
66
+ return [
67
+ index$1.loc('tecton.element.calendar.days.Sunday'),
68
+ index$1.loc('tecton.element.calendar.days.Monday'),
69
+ index$1.loc('tecton.element.calendar.days.Tuesday'),
70
+ index$1.loc('tecton.element.calendar.days.Wednesday'),
71
+ index$1.loc('tecton.element.calendar.days.Thursday'),
72
+ index$1.loc('tecton.element.calendar.days.Friday'),
73
+ index$1.loc('tecton.element.calendar.days.Saturday'),
74
+ ];
75
+ }
76
+ /** Parses the date picker's public ISO-only value contract. */
77
+ function parseDatePickerValue(value) {
78
+ if (!value || !isoDatePattern.test(value))
79
+ return;
80
+ const [year, month, day] = value.split('-').map(Number);
81
+ return dateFromParts(year, month, day);
82
+ }
83
+ /** Normalizes a legacy string or Moment-like value for the date picker's ISO-only calendar. */
84
+ function normalizeDatePickerValue(value) {
85
+ if (!value)
86
+ return;
87
+ let date;
88
+ if (value instanceof Date) {
89
+ date = value;
90
+ }
91
+ else if (isMomentLike(value)) {
92
+ try {
93
+ date = value.toDate();
94
+ }
95
+ catch (_a) {
96
+ return;
97
+ }
98
+ }
99
+ else {
100
+ const input = value.trim();
101
+ if (!input)
102
+ return;
103
+ date = parseDatePickerValue(input);
104
+ if (!date) {
105
+ const isoLikeParts = input.match(isoLikeDatePattern);
106
+ const slashParts = input.match(slashDatePattern);
107
+ if (isoLikeParts) {
108
+ date = dateFromParts(Number(isoLikeParts[1]), Number(isoLikeParts[2]), Number(isoLikeParts[3]));
109
+ }
110
+ else if (slashParts) {
111
+ const parsedYear = Number(slashParts[3]);
112
+ const year = parsedYear < 100 ? (parsedYear >= 69 ? 1900 : 2000) + parsedYear : parsedYear;
113
+ date = dateFromParts(year, Number(slashParts[1]), Number(slashParts[2]));
114
+ }
115
+ else {
116
+ const parsedDate = new Date(input);
117
+ date = index.dateFnsExports.isValid(parsedDate)
118
+ ? dateFromParts(parsedDate.getFullYear(), parsedDate.getMonth() + 1, parsedDate.getDate())
119
+ : undefined;
120
+ }
121
+ }
122
+ }
123
+ return formatDateISO(date);
124
+ }
125
+ /** Returns the month and year used to initialize the date picker grid. */
126
+ function setupMonthYear(value = new Date()) {
127
+ return {
128
+ monthIndex: value.getMonth(),
129
+ selectedYear: value.getFullYear(),
130
+ };
131
+ }
132
+ /** Returns the enabled day indexes represented by a calendar checksum. */
133
+ function getValidDaysOfWeek(checksum = 127) {
134
+ const validDays = [];
135
+ for (let day = 0; day < 7; day++) {
136
+ if (checksum & (1 << day))
137
+ validDays.push(day);
138
+ }
139
+ return checksum > 0 ? validDays : [];
140
+ }
141
+ /** Determines whether a date satisfies the configured bounds and cutoff. */
142
+ function baseValidation(dateValidators, now, newDate) {
143
+ const isNewDateBeforeStartDate = index.dateFnsExports.isAfter(dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.startDate, newDate);
144
+ const isNewDateAfterEndDate = index.dateFnsExports.isBefore(dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.endDate, newDate);
145
+ const isNowAfterCutoffTime = index.dateFnsExports.isSameDay(now, newDate) && index.dateFnsExports.isAfter(now, dateValidators === null || dateValidators === void 0 ? void 0 : dateValidators.cutOffTime);
146
+ return !(isNewDateBeforeStartDate || isNowAfterCutoffTime || isNewDateAfterEndDate);
147
+ }
148
+ /** Determines whether a date's weekday is enabled. */
149
+ function validateAgainstChecksum(validDaysOfWeek, date) {
150
+ return validDaysOfWeek.includes(date.getDay());
151
+ }
152
+ /** Determines whether a date is absent from a blacklist. */
153
+ function validateAgainstBlacklist(invalidDates, date) {
154
+ return !validateAgainstWhitelist(invalidDates, date);
155
+ }
156
+ /** Determines whether a date is present in a whitelist. */
157
+ function validateAgainstWhitelist(validDates, date) {
158
+ return validDates.some(validDate => index.dateFnsExports.isSameDay(validDate, date));
159
+ }
160
+ function assumeYear(month, day, assume) {
161
+ const monthDay = `${month.padStart(2, '0')}/${day.padStart(2, '0')}`;
162
+ const now = new Date();
163
+ const currentMonthDay = `${now.getMonth() + 1}`.padStart(2, '0') + `/${now.getDate()}`.padStart(2, '0');
164
+ let year = now.getFullYear();
165
+ if (assume === 'future' && currentMonthDay > monthDay)
166
+ year++;
167
+ if (assume === 'past' && currentMonthDay < monthDay)
168
+ year--;
169
+ return `${year}`;
170
+ }
171
+ function parseDatePickerValues(values) {
172
+ return (values || []).map(parseDatePickerValue).filter((date) => !!date);
173
+ }
174
+ function dateFromParts(year, month, day) {
175
+ const date = new Date(0);
176
+ date.setFullYear(year, month - 1, day);
177
+ date.setHours(0, 0, 0, 0);
178
+ if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day)
179
+ return;
180
+ return date;
181
+ }
182
+ function isMomentLike(value) {
183
+ return typeof value !== 'string' && typeof (value === null || value === void 0 ? void 0 : value.toDate) === 'function';
184
+ }
185
+ /** Formats a date using one of the date picker's supported numeric display formats. */
186
+ function formatDisplayDate(date, displayFormat) {
187
+ const separator = displayFormat.includes('-') ? '-' : '/';
188
+ const month = `${date.getMonth() + 1}`.padStart(2, '0');
189
+ const day = `${date.getDate()}`.padStart(2, '0');
190
+ const year = `${date.getFullYear()}`;
191
+ const dateParts = displayFormat.startsWith('YYYY')
192
+ ? [year, month, day]
193
+ : displayFormat.startsWith('DD')
194
+ ? [day, month, year]
195
+ : [month, day, year];
196
+ return dateParts.join(separator);
197
+ }
198
+ /** Formats a date using the legacy Moment-style tokens accepted by q2-calendar. */
199
+ function formatLegacyDisplayDate(date, displayFormat) {
200
+ const dateFnsFormat = displayFormat
201
+ .replace(/[d]/g, 'E')
202
+ .replace(/[D]/g, 'd')
203
+ .replace(/[Y]/g, 'y')
204
+ .replace(/[l]/g, 'P')
205
+ .replace(/[W]/g, 'I');
206
+ return index.dateFnsExports.format(date, dateFnsFormat);
207
+ }
208
+ /** Determines whether a date satisfies every configured selection constraint. */
209
+ function isDateSelectable(date, constraints) {
210
+ const cutoffTime = new Date(constraints.cutoffTime || '');
211
+ const withinBounds = baseValidation({
212
+ startDate: parseDatePickerValue(constraints.startDate),
213
+ endDate: parseDatePickerValue(constraints.endDate),
214
+ cutOffTime: index.dateFnsExports.isValid(cutoffTime) ? cutoffTime : undefined,
215
+ }, new Date(), date);
216
+ const validDates = parseDatePickerValues(constraints.validDates);
217
+ const matchesAllowedDates = (validDates === null || validDates === void 0 ? void 0 : validDates.length)
218
+ ? validateAgainstWhitelist(validDates, date)
219
+ : validateAgainstChecksum(getValidDaysOfWeek(constraints.daysOfWeekChecksum), date);
220
+ return (withinBounds &&
221
+ matchesAllowedDates &&
222
+ validateAgainstBlacklist(parseDatePickerValues(constraints.invalidDates), date));
223
+ }
224
+ /** Determines whether every date in an inclusive range is selectable. */
225
+ function isRangeSelectable(start, end, constraints) {
226
+ for (let date = start; date.getTime() <= end.getTime(); date = index.dateFnsExports.addDays(date, 1)) {
227
+ if (!isDateSelectable(date, constraints))
228
+ return false;
229
+ }
230
+ return true;
231
+ }
232
+ /** Resolves a date-picker localization key or mapped default string. */
233
+ function localizeDatePickerString(value, substitutions = {}) {
234
+ if (!value)
235
+ return '';
236
+ return index$1.loc(defaultDatePickerStringKeys[value] || value, substitutions);
237
+ }
238
+ /** Returns a supported display format, falling back to the date-picker default. */
239
+ function normalizeDisplayFormat(displayFormat) {
240
+ const normalizedFormat = displayFormat === null || displayFormat === void 0 ? void 0 : displayFormat.toUpperCase();
241
+ return supportedDisplayFormats.includes(normalizedFormat) ? normalizedFormat : defaultDisplayFormat;
242
+ }
243
+
244
+ exports.buildInputDate = buildInputDate;
245
+ exports.formatDateFull = formatDateFull;
246
+ exports.formatDateISO = formatDateISO;
247
+ exports.formatDisplayDate = formatDisplayDate;
248
+ exports.formatLegacyDisplayDate = formatLegacyDisplayDate;
249
+ exports.getDays = getDays;
250
+ exports.getDaysOfWeek = getDaysOfWeek;
251
+ exports.isDateSelectable = isDateSelectable;
252
+ exports.isRangeSelectable = isRangeSelectable;
253
+ exports.localizeDatePickerString = localizeDatePickerString;
254
+ exports.normalizeDatePickerValue = normalizeDatePickerValue;
255
+ exports.normalizeDisplayFormat = normalizeDisplayFormat;
256
+ exports.parseDatePickerValue = parseDatePickerValue;
257
+ exports.setupMonthYear = setupMonthYear;
@@ -291,7 +291,7 @@ const resizeIframe = () => {
291
291
  // Handling color attribute (deprecated)
292
292
  const handleColor = (target) => {
293
293
  if (!target.intent && ['primary', 'secondary'].includes(target.color)) {
294
- target.intent = `workflow-${target.color}`;
294
+ target.intent = target.color;
295
295
  target.color = undefined;
296
296
  }
297
297
  };