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,3 +1,5 @@
1
+ import { l as loc } from './index-CP8pXJ-l.js';
2
+
1
3
  /*! *****************************************************************************
2
4
  Copyright (c) Microsoft Corporation.
3
5
 
@@ -34224,6 +34226,82 @@ function install(registers) {
34224
34226
  registers.registerPainter('canvas', CanvasPainter);
34225
34227
  }
34226
34228
 
34229
+ /** Localized feedback shared by chart keyboard controls. */
34230
+ function chartPointDescription(name, value, index, count) {
34231
+ return loc('tecton.element.chart.pointDescription', [loc(name) || '', value, `${index + 1}`, `${count}`]);
34232
+ }
34233
+ /** Coordinates keyboard exploration with ECharts emphasis without changing chart data. */
34234
+ function createChartKeyboardNavigation(options) {
34235
+ let index = null;
34236
+ let focused = false;
34237
+ const clear = () => {
34238
+ var _a;
34239
+ if (index !== null) {
34240
+ (_a = options.getChart()) === null || _a === void 0 ? void 0 : _a.dispatchAction({ type: 'downplay', seriesIndex: 0, dataIndex: index });
34241
+ }
34242
+ index = null;
34243
+ options.onChange(null);
34244
+ };
34245
+ const select = (next) => {
34246
+ var _a;
34247
+ if (!options.getData()[next] || next === index)
34248
+ return;
34249
+ clear();
34250
+ index = next;
34251
+ (_a = options.getChart()) === null || _a === void 0 ? void 0 : _a.dispatchAction({ type: 'highlight', seriesIndex: 0, dataIndex: index });
34252
+ options.onChange(index);
34253
+ };
34254
+ 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); };
34255
+ return {
34256
+ onFocus: () => {
34257
+ focused = true;
34258
+ select(order()[0]);
34259
+ },
34260
+ onBlur: () => {
34261
+ focused = false;
34262
+ clear();
34263
+ },
34264
+ onKeyDown: (event) => {
34265
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey)
34266
+ return;
34267
+ const indices = order();
34268
+ if (!indices.length)
34269
+ return;
34270
+ const position = index === null ? -1 : indices.indexOf(index);
34271
+ let next;
34272
+ switch (event.key) {
34273
+ case 'ArrowRight':
34274
+ case 'ArrowDown':
34275
+ next = Math.min(position + 1, indices.length - 1);
34276
+ break;
34277
+ case 'ArrowLeft':
34278
+ case 'ArrowUp':
34279
+ next = Math.max(position - 1, 0);
34280
+ break;
34281
+ case 'Home':
34282
+ next = 0;
34283
+ break;
34284
+ case 'End':
34285
+ next = indices.length - 1;
34286
+ break;
34287
+ case 'Escape':
34288
+ event.preventDefault();
34289
+ clear();
34290
+ return;
34291
+ default:
34292
+ return;
34293
+ }
34294
+ event.preventDefault();
34295
+ select(indices[next]);
34296
+ },
34297
+ refresh: () => {
34298
+ clear();
34299
+ if (focused)
34300
+ select(order()[0]);
34301
+ },
34302
+ };
34303
+ }
34304
+
34227
34305
  var ValidColorNames;
34228
34306
  (function (ValidColorNames) {
34229
34307
  ValidColorNames[ValidColorNames["aliceblue"] = 0] = "aliceblue";
@@ -34407,4 +34485,4 @@ function formatValue(value, format) {
34407
34485
  }
34408
34486
  }
34409
34487
 
34410
- export { setStatesStylesFromModel as $, updateProps$1 as A, BoundingRect as B, animateLabelValue as C, DISPLAY_STATES as D, isArray as E, map$1 as F, parsePercent$1 as G, SeriesModel as H, inheritDefaultOption as I, calculateTextPosition as J, isNumber as K, traverseElements as L, saveOldStyle as M, removeElementWithFadeOut as N, Group as O, Point as P, ChartView as Q, Sector as R, SPECIAL_STATES as S, Transformable as T, Rect as U, extend as V, getLabelStatesModels as W, setLabelStyle as X, setLabelValueAnimation as Y, toggleHoverEmphasis as Z, __extends as _, Polyline as a, mergeLayoutParam as a$, throttle as a0, curry as a1, layout$1 as a2, createProgressiveLayout as a3, use as a4, install$1 as a5, install as a6, init as a7, getCSSProperty as a8, isValidColor as a9, getAnimationConfig as aA, normalizeToArray as aB, SERIES_UNIVERSAL_TRANSITION_PROP as aC, createHashMap as aD, DataDiffer as aE, Displayable as aF, getOldStyle as aG, SINGLE_REFERRING as aH, makeSeriesEncodeForAxisCoordSys as aI, prepareSeriesDataSchema as aJ, enableDataStack as aK, SeriesData as aL, CoordinateSystemManager as aM, getDimensionTypeByAxis as aN, SOURCE_FORMAT_ORIGINAL as aO, getDataItemValue as aP, makeLabelFormatter as aQ, getBoundingRect as aR, getOptionCategoryInterval as aS, shouldShowAllLabels as aT, getPixelPrecision as aU, linearMap as aV, round$1 as aW, ComponentModel as aX, mixin as aY, merge as aZ, getLayoutParams as a_, formatValue as aa, createSymbol as ab, enterEmphasis as ac, leaveEmphasis as ad, normalizeSymbolOffset as ae, ZRImage as af, removeElement as ag, normalizeSymbolSize as ah, isObject$2 as ai, isDimensionStacked as aj, createFloat32Array as ak, cubicRootAt as al, cubicAt as am, bind$1 as an, convertToColorString as ao, queryDataIndex as ap, setStatesFlag as aq, ZRText as ar, interpolateRawValues as as, LinearGradient as at, lerp as au, createRenderPlanner as av, cubicSubdivide as aw, fromPoints as ax, clonePath as ay, Polygon as az, dist$1 as b, createOrUpdatePatternFromDecal as b$, fetchLayoutMode as b0, OrdinalMeta as b1, applyTransform$1 as b2, IntervalScale as b3, getScaleExtent as b4, increaseInterval as b5, getLayoutRect as b6, estimateLabelUnionRect as b7, createScaleByModel as b8, isCartesian2DSeries as b9, createOrUpdate as bA, clear as bB, register as bC, findPointFromSeries as bD, findEventDispatcher as bE, createTooltipMarkup as bF, getValueLabel as bG, trim as bH, getAxisRawValue as bI, TooltipMarkupStyleCreator as bJ, normalizeTooltipFormatResult as bK, buildTooltipMarkup as bL, clone$2 as bM, encodeHTML as bN, format as bO, formatTpl as bP, unregister as bQ, preParseFinder as bR, queryReferringComponents as bS, Model as bT, noop as bU, isNameSpecified as bV, parse as bW, stringify as bX, enableHoverEmphasis as bY, setTooltipConfig as bZ, box as b_, findAxisModels as ba, getDataDimensionsOnAxis as bb, isIntervalOrLogScale as bc, niceScaleExtent as bd, ifAxisCrossZero as be, layout as bf, AxisBuilder as bg, groupTransition as bh, AxisView as bi, Line as bj, subPixelOptimizeLine as bk, ComponentView as bl, install$2 as bm, createTextStyle as bn, windowOpen as bo, retrieveRawValue as bp, isString as bq, normalizeCssArray as br, toCamelCase as bs, env as bt, isDom as bu, normalizeEvent as bv, transformLocalCoord as bw, getPaddingFromTooltipModel as bx, throwError as by, getTooltipRenderMode as bz, Path as c, hasOwn as c0, createIcon as c1, normalizeArcAngles as c2, retrieve3 as c3, makeSeriesEncodeForNameBased as c4, getPercentSeats as c5, defaultEmphasis as c6, createLegacyDataSelectAction as c7, defaults as d, PathProxy as e, cubicProjectPoint as f, isFunction as g, getECData as h, invert as i, prepareLayoutList as j, keys as k, lerp$1 as l, makeInner as m, normalizeRadian as n, filter as o, parsePercent as p, quadraticProjectPoint as q, retrieve2 as r, shiftLayoutOnX as s, shiftLayoutOnY as t, hideOverlap as u, each$3 as v, isElementRemoved as w, labelInner as x, initProps as y, indexOf as z };
34488
+ export { setStatesStylesFromModel as $, updateProps$1 as A, BoundingRect as B, animateLabelValue as C, DISPLAY_STATES as D, isArray as E, map$1 as F, parsePercent$1 as G, SeriesModel as H, inheritDefaultOption as I, calculateTextPosition as J, isNumber as K, traverseElements as L, saveOldStyle as M, removeElementWithFadeOut as N, Group as O, Point as P, ChartView as Q, Sector as R, SPECIAL_STATES as S, Transformable as T, Rect as U, extend as V, getLabelStatesModels as W, setLabelStyle as X, setLabelValueAnimation as Y, toggleHoverEmphasis as Z, __extends as _, Polyline as a, merge as a$, throttle as a0, curry as a1, layout$1 as a2, createProgressiveLayout as a3, use as a4, install$1 as a5, install as a6, createChartKeyboardNavigation as a7, init as a8, chartPointDescription as a9, clonePath as aA, Polygon as aB, getAnimationConfig as aC, normalizeToArray as aD, SERIES_UNIVERSAL_TRANSITION_PROP as aE, createHashMap as aF, DataDiffer as aG, Displayable as aH, getOldStyle as aI, SINGLE_REFERRING as aJ, makeSeriesEncodeForAxisCoordSys as aK, prepareSeriesDataSchema as aL, enableDataStack as aM, SeriesData as aN, CoordinateSystemManager as aO, getDimensionTypeByAxis as aP, SOURCE_FORMAT_ORIGINAL as aQ, getDataItemValue as aR, makeLabelFormatter as aS, getBoundingRect as aT, getOptionCategoryInterval as aU, shouldShowAllLabels as aV, getPixelPrecision as aW, linearMap as aX, round$1 as aY, ComponentModel as aZ, mixin as a_, formatValue as aa, getCSSProperty as ab, isValidColor as ac, createSymbol as ad, enterEmphasis as ae, leaveEmphasis as af, normalizeSymbolOffset as ag, ZRImage as ah, removeElement as ai, normalizeSymbolSize as aj, isObject$2 as ak, isDimensionStacked as al, createFloat32Array as am, cubicRootAt as an, cubicAt as ao, bind$1 as ap, convertToColorString as aq, queryDataIndex as ar, setStatesFlag as as, ZRText as at, interpolateRawValues as au, LinearGradient as av, lerp as aw, createRenderPlanner as ax, cubicSubdivide as ay, fromPoints as az, dist$1 as b, setTooltipConfig as b$, getLayoutParams as b0, mergeLayoutParam as b1, fetchLayoutMode as b2, OrdinalMeta as b3, applyTransform$1 as b4, IntervalScale as b5, getScaleExtent as b6, increaseInterval as b7, getLayoutRect as b8, estimateLabelUnionRect as b9, throwError as bA, getTooltipRenderMode as bB, createOrUpdate as bC, clear as bD, register as bE, findPointFromSeries as bF, findEventDispatcher as bG, createTooltipMarkup as bH, getValueLabel as bI, trim as bJ, getAxisRawValue as bK, TooltipMarkupStyleCreator as bL, normalizeTooltipFormatResult as bM, buildTooltipMarkup as bN, clone$2 as bO, encodeHTML as bP, format as bQ, formatTpl as bR, unregister as bS, preParseFinder as bT, queryReferringComponents as bU, Model as bV, noop as bW, isNameSpecified as bX, parse as bY, stringify as bZ, enableHoverEmphasis as b_, createScaleByModel as ba, isCartesian2DSeries as bb, findAxisModels as bc, getDataDimensionsOnAxis as bd, isIntervalOrLogScale as be, niceScaleExtent as bf, ifAxisCrossZero as bg, layout as bh, AxisBuilder as bi, groupTransition as bj, AxisView as bk, Line as bl, subPixelOptimizeLine as bm, ComponentView as bn, install$2 as bo, createTextStyle as bp, windowOpen as bq, retrieveRawValue as br, isString as bs, normalizeCssArray as bt, toCamelCase as bu, env as bv, isDom as bw, normalizeEvent as bx, transformLocalCoord as by, getPaddingFromTooltipModel as bz, Path as c, box as c0, createOrUpdatePatternFromDecal as c1, hasOwn as c2, createIcon as c3, normalizeArcAngles as c4, retrieve3 as c5, makeSeriesEncodeForNameBased as c6, getPercentSeats as c7, defaultEmphasis as c8, createLegacyDataSelectAction as c9, defaults as d, PathProxy as e, cubicProjectPoint as f, isFunction as g, getECData as h, invert as i, prepareLayoutList as j, keys as k, lerp$1 as l, makeInner as m, normalizeRadian as n, filter as o, parsePercent as p, quadraticProjectPoint as q, retrieve2 as r, shiftLayoutOnX as s, shiftLayoutOnY as t, hideOverlap as u, each$3 as v, isElementRemoved as w, labelInner as x, initProps as y, indexOf as z };
@@ -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
  };