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
@@ -0,0 +1,792 @@
1
+ import { r as t, c as i, h as e, g as s } from "./index-Cqkz7Bnm.js";
2
+
3
+ import { d as a } from "./index-O1A-ZSZs.js";
4
+
5
+ import { q as r, o as h, i as n, w as o, l as d, h as l, c } from "./index-CP8pXJ-l.js";
6
+
7
+ import { s as p } from "./action-sheet-DuQ7VZ08.js";
8
+
9
+ import { m as u } from "./mirror-emit-DUjY_ucm.js";
10
+
11
+ import { f as g, p as m, e as v, h as f, n as b, b as w, i as y, c as C, l as D, j as x } from "./date-picker-helpers-D8QnN_AS.js";
12
+
13
+ import { b as k } from "./component-DaQM9u3s.js";
14
+
15
+ const T = class {
16
+ constructor(e) {
17
+ var s;
18
+ t(this, e), this.change = i(this, "change", 7), this.error = i(this, "error", 7),
19
+ this.success = i(this, "success", 7), this.tctCancel = i(this, "tctCancel", 7),
20
+ this.tctChange = i(this, "tctChange", 7), this.tctClose = i(this, "tctClose", 7),
21
+ this.tctError = i(this, "tctError", 7), this.tctSuccess = i(this, "tctSuccess", 7),
22
+ this.committingValue = !1, this.normalizedDateLists = new WeakMap,
23
+ // #endregion
24
+ // #region State Properties
25
+ this.activePopoverDirection = "down", this.typeableValue = "",
26
+ // #endregion
27
+ // #region Public Property API
28
+ /**
29
+ * Renders the calendar panel inline with behavior specific to being hosted by `q2-action-sheet`.
30
+ * @private
31
+ */
32
+ this._actionSheet = !1,
33
+ /**
34
+ * Determines the year for a committed month/day typeable date with no year.
35
+ * `future` selects the next year for dates before today, while `past` selects the prior year for dates after today.
36
+ * Only applies to `single-typeable` mode with a month-first or day-first display format.
37
+ */
38
+ this.assume = "current",
39
+ /** Displays a button in the input field allowing the user to clear the selected date or range. */
40
+ this.clearable = !1,
41
+ /** Delay in milliseconds before the popover closes after selection. Explicitly undefined or non-positive values close immediately. */
42
+ this.closeDelay = 400,
43
+ /** Indicates the date picker cannot be focused or interacted with. */
44
+ this.disabled = !1,
45
+ /**
46
+ * Hides the input field's visible label while retaining its accessible name.
47
+ * @warning
48
+ * Hides the label visually. `label` text is still required for screenreader compliance.
49
+ */
50
+ this.hideLabel = !1,
51
+ /**
52
+ * Instructs the component to use the action sheet workflow for displaying its calendar.
53
+ *
54
+ * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).
55
+ */
56
+ this.hoist = !!(null === (s = window.Tecton) || void 0 === s ? void 0 : s.useActionSheets) || void 0,
57
+ /** Shows the input field's error visual state. */
58
+ this.invalid = !1,
59
+ /** Formats selected dates using the provided locale. Accepts multiple locales in an array as sequential fallbacks. */
60
+ this.locale = document.documentElement.lang || "en-US",
61
+ /**
62
+ * Selects calendar or typeable behavior for a single date or date range.
63
+ * Enabling the legacy `typeable` prop uses `single-typeable` when `mode` is left at its default; an explicit mode takes precedence.
64
+ */
65
+ this.mode = "single",
66
+ /** Controls whether the date picker popover is open or closed. */
67
+ this.open = !1,
68
+ /** Appends "(optional)" to the input label and marks the field as not required. */
69
+ this.optional = !1,
70
+ /** Aligns the calendar popover to the left or right side of the input field. */
71
+ this.popoverAlignment = "left",
72
+ /** @deprecated Retained for compatibility with `q2-date-picker`. */
73
+ this.popoverMinHeight = 355,
74
+ /**
75
+ * Uses absolute positioning for the popover when set to `legacy`.
76
+ *
77
+ * This compatibility option supports layouts where transformed ancestors interfere with fixed positioning.
78
+ */
79
+ this.popoverMode = null,
80
+ /**
81
+ * The field's content is not editable, but the field remains focusable.
82
+ *
83
+ * Appends "(read only)" to the field label.
84
+ */
85
+ this.readonly = !1,
86
+ /** Enables the legacy single-date typeable input behavior. */
87
+ this.typeable = !1,
88
+ /** Shows the input field's success visual state when no errors are active. */
89
+ this.valid = !1, this.onCalendarCancel = t => {
90
+ t.stopPropagation(), this.calendarError = "", this._actionSheet ? this.tctCancel.emit() : this.closeCalendar();
91
+ }, this.onCalendarCommit = t => {
92
+ if (t.stopPropagation(), this.disabled || this.readonly) return;
93
+ if (!t.detail) return;
94
+ this.calendarError = "";
95
+ const {value: i, rangeStart: e, rangeEnd: s} = t.detail;
96
+ if (this.isRangeMode) {
97
+ if (!e || !s) return;
98
+ return this.rangeStart = e, this.rangeEnd = s, u(this, [ "change", "tctChange" ], {
99
+ rangeStart: e,
100
+ rangeEnd: s
101
+ }), void this.closeCalendar(!0, !0);
102
+ }
103
+ i && (this.commitSingleValue(i), this.closeAfterSelection());
104
+ }, this.onCalendarDismiss = t => {
105
+ t.stopPropagation(), this.calendarError = "", this._actionSheet ? this.tctCancel.emit() : this.closeCalendar();
106
+ }, this.onCalendarError = t => {
107
+ t.stopPropagation(), this.calendarError = t.detail, this._actionSheet ? this.tctClose.emit({
108
+ error: t.detail
109
+ }) : this.closeCalendar(!0, !0);
110
+ }, this.onCalendarToggleClick = t => {
111
+ t.stopPropagation(), this.toggleCalendar();
112
+ }, this.onClear = () => {
113
+ if (this.calendarError = "", this.typeableError = "", this.typeableValue = "", this.isRangeMode) return this.rangeStart = void 0,
114
+ this.rangeEnd = void 0, void u(this, [ "change", "tctChange" ], {
115
+ rangeStart: null,
116
+ rangeEnd: null
117
+ });
118
+ this.value = void 0, u(this, [ "change", "tctChange" ], {
119
+ value: null
120
+ });
121
+ }, this.onClickElsewhere = t => {
122
+ "click-elsewhere" === t.target.localName && (t.stopPropagation(), this.closeCalendar(!1));
123
+ }, this.onInputClick = () => {
124
+ this.acceptsTypeableInput || this.toggleCalendar();
125
+ }, this.onInputKeydown = t => {
126
+ if (!this.disabled && !this.readonly) {
127
+ if (!this.acceptsTypeableInput) return p({
128
+ hoist: this.hoist
129
+ }, t) ? (t.preventDefault(), void this.showActionSheet()) : "Escape" === t.key && this.open ? (t.preventDefault(),
130
+ void this.closeCalendar()) : void ([ "Enter", " ", "ArrowDown" ].includes(t.key) && !this.open && (t.preventDefault(),
131
+ this.setActivePopoverDirection(), this.open = !0, requestAnimationFrame((() => this.focusRenderedDate()))));
132
+ if (t.metaKey || t.ctrlKey || t.altKey || 1 !== t.key.length) return;
133
+ this.typeableAllowedCharacters.test(t.key) || t.preventDefault();
134
+ }
135
+ }, this.onTypeableChange = t => {
136
+ if (t.stopImmediatePropagation(), this.disabled || this.readonly) return;
137
+ if (this.isSingleTypeable) {
138
+ const t = this.parseTypeableDate(this.typeableValue);
139
+ if (!t || !this.isDateValid(t)) return void this.setTypeableError(this.dateFormatValidationError);
140
+ this.setTypeableError("");
141
+ const i = g(t);
142
+ return void this.commitSingleValue(i);
143
+ }
144
+ const [i, e] = this.typeableValue.split(" - "), s = this.parseTypeableDate(i), a = this.parseTypeableDate(e);
145
+ if (!s || !a) return void this.setTypeableError(this.rangeFormatValidationError);
146
+ const r = this.typeableRangeError(s, a);
147
+ if (r) return void this.setTypeableError(r);
148
+ this.setTypeableError("");
149
+ const h = g(s), n = g(a);
150
+ this.rangeStart = h, this.rangeEnd = n, u(this, [ "change", "tctChange" ], {
151
+ rangeStart: h,
152
+ rangeEnd: n
153
+ });
154
+ }, this.onTypeableInput = t => {
155
+ var i;
156
+ if (t.stopImmediatePropagation(), this.disabled || this.readonly) return;
157
+ const e = this.isRangeTypeable ? 16 : 8, s = String((null === (i = t.detail) || void 0 === i ? void 0 : i.value) || "").replace(/\D/g, "").slice(0, e);
158
+ this.typeableValue = this.isRangeTypeable && s.length > 8 ? `${this.formatTypeableDate(s.slice(0, 8))} - ${this.formatTypeableDate(s.slice(8))}` : this.formatTypeableDate(s),
159
+ this.validateTypeableValue();
160
+ };
161
+ }
162
+ // #endregion
163
+ // #region Component Lifecycle Events
164
+ connectedCallback() {
165
+ const t = this.normalizedValue;
166
+ t && this.value !== t && (this.value = t), this.activePopoverDirection = this.effectivePopoverDirection || "down",
167
+ this.typeableValue = this.formattedTypeableValue, this.validateCurrentValue();
168
+ }
169
+ disconnectedCallback() {
170
+ clearTimeout(this.closeTimeout);
171
+ }
172
+ componentWillLoad() {
173
+ this.popDirection && r(this, "popDirection", "prop");
174
+ }
175
+ componentDidLoad() {
176
+ h(this.hostElement);
177
+ }
178
+ componentDidRender() {
179
+ this.open && "up" === this.activePopoverDirection && this.scrollUpCalendarToBottom();
180
+ }
181
+ // #endregion
182
+ // #region Listeners
183
+ beforeInputHandler(t) {
184
+ this.acceptsTypeableInput && t.data && !this.typeableAllowedCharacters.test(t.data) && t.preventDefault();
185
+ }
186
+ delegateFocus(t) {
187
+ var i;
188
+ n(t, this.hostElement) && (null === (i = this.controlElement) || void 0 === i || i.focus());
189
+ }
190
+ popoverStateHandler({detail: {open: t}}) {
191
+ this.open !== t && (this.open = t);
192
+ }
193
+ // #endregion
194
+ // #region Public Methods API
195
+ /** Closes the calendar popover if it is open. */
196
+ async closePopover() {
197
+ this.closeCalendar();
198
+ }
199
+ /** Moves the visible month to the provided date and focuses that day. */ async focusDate(t) {
200
+ var i;
201
+ a.isValid(t) && (await o(), await (null === (i = this.calendarElement) || void 0 === i ? void 0 : i.focusDate(t)));
202
+ }
203
+ /** Opens the calendar popover if it is closed. */ async openPopover() {
204
+ var t;
205
+ if (this.open || this.disabled || this.readonly || this._actionSheet) return;
206
+ this.setActivePopoverDirection(), this.open = !0, await o();
207
+ const i = this.acceptsTypeableInput ? null === (t = this.controlElement) || void 0 === t ? void 0 : t.querySelector('[test-id="datePickerCalendarToggle"]') : this.controlElement;
208
+ null == i || i.focus(), null == i || i.dispatchEvent(new FocusEvent("focus"));
209
+ }
210
+ /** Clears selected values, uncommitted typeable input, and error state without changing configuration props. */ async reset() {
211
+ clearTimeout(this.closeTimeout), this.value = void 0, this.rangeStart = void 0,
212
+ this.rangeEnd = void 0, this.errors = void 0, this.invalid = !1, this.calendarError = "",
213
+ this.typeableError = "", this.typeableValue = "";
214
+ }
215
+ /** Opens the calendar and selects the provided date when it is valid. */ async setValue(t) {
216
+ var i;
217
+ const e = m(v(t));
218
+ this.disabled || this.readonly || this.isRangeTypeable || !a.isValid(e) || !this.isDateValid(e) || (this._actionSheet || (this.setActivePopoverDirection(),
219
+ this.open = !0, await o()), await (null === (i = this.calendarElement) || void 0 === i ? void 0 : i.setValue(e)));
220
+ }
221
+ /**
222
+ * Focuses the single typeable input and stages a valid date without committing it.
223
+ *
224
+ * @warning
225
+ * Only applicable when the effective mode is `single-typeable`.
226
+ */ async typeValue(t) {
227
+ var i;
228
+ if (!this.isSingleTypeable) return;
229
+ const e = m(v(t));
230
+ a.isValid(e) && await (null === (i = this.controlElement) || void 0 === i ? void 0 : i.setValue(this.formatDateWithModifier(e)));
231
+ }
232
+ // #endregion
233
+ // #region Watchers
234
+ constraintsChanged() {
235
+ this.committingValue || (this.acceptsTypeableInput && this.revalidateTypeableValue(),
236
+ this.typeableError || this.validateCurrentValue());
237
+ }
238
+ disabledChanged(t) {
239
+ t && this.closeCalendar(!1);
240
+ }
241
+ displayFormatChanged() {
242
+ this.calendarError = "", this.typeableError = "", this.typeableValue = this.formattedTypeableValue;
243
+ }
244
+ modeChanged() {
245
+ this.open = !1, this.calendarError = "", this.typeableError = "", this.typeableValue = this.formattedTypeableValue;
246
+ }
247
+ openChanged(t) {
248
+ t && (this.setActivePopoverDirection(), this.isRangeMode && "down" === this.activePopoverDirection && this.scrollDownCalendarToTop());
249
+ }
250
+ popDirectionChanged() {
251
+ this.popDirection && r(this, "popDirection", "prop"), this.setActivePopoverDirection();
252
+ }
253
+ popoverDirectionChanged() {
254
+ this.setActivePopoverDirection();
255
+ }
256
+ rangeEndChanged() {
257
+ this.isRangeMode && (this.calendarError = "", this.isRangeTypeable && this.syncTypeableValue());
258
+ }
259
+ rangeStartChanged() {
260
+ this.isRangeMode && (this.calendarError = "", this.isRangeTypeable && this.syncTypeableValue());
261
+ }
262
+ readonlyChanged(t) {
263
+ t && this.closeCalendar(!1);
264
+ }
265
+ valueChanged(t) {
266
+ const i = v(t);
267
+ i && t !== i ? this.value = i : this.isRangeMode || this.committingValue || (this.calendarError = "",
268
+ this.isSingleTypeable && this.syncTypeableValue(), this.validateCurrentValue());
269
+ }
270
+ // #endregion
271
+ // #region Local Methods
272
+ get acceptsTypeableInput() {
273
+ return this.isRangeTypeable || this.isSingleTypeable;
274
+ }
275
+ get actionSheetData() {
276
+ return {
277
+ appearance: "date-picker",
278
+ title: this.localizeForLocale(this.calendarLabel || "Choose a date"),
279
+ datePickerProps: {
280
+ calendarLabel: this.calendarLabel,
281
+ closeDelay: this.closeDelay,
282
+ cutoffTime: this.cutoffTime,
283
+ daysOfWeekChecksum: this.daysOfWeekChecksum,
284
+ disclaimer: this.disclaimer,
285
+ endDate: v(this.endDate),
286
+ displayFormat: this.normalizedDisplayFormat,
287
+ invalidDates: this.normalizedInvalidDates,
288
+ locale: this.locale,
289
+ mode: this.isRangeMode ? "range" : "single",
290
+ rangeEnd: v(this.rangeEnd),
291
+ rangeStart: v(this.rangeStart),
292
+ startDate: v(this.startDate),
293
+ validDates: this.normalizedValidDates,
294
+ value: this.normalizedValue
295
+ }
296
+ };
297
+ }
298
+ get automaticPopoverDirection() {
299
+ var t, i;
300
+ const {top: e = 0, bottom: s = 0} = (null === (i = null === (t = this.controlElement) || void 0 === t ? void 0 : t.getBoundingClientRect) || void 0 === i ? void 0 : i.call(t)) || {};
301
+ return e > window.innerHeight - s ? "up" : "down";
302
+ }
303
+ get canClear() {
304
+ return this.clearable && (this.isRangeMode ? !!this.rangeStart || !!this.rangeEnd : !!this.normalizedValue);
305
+ }
306
+ get computedErrors() {
307
+ const t = [ ...this.errors || [] ], i = this.typeableError || this.calendarError;
308
+ return i && t.push(i), !t.length && this.invalid && t.push("tecton.element.calendar.invalid"),
309
+ t.length ? [ t[0] ] : void 0;
310
+ }
311
+ get computedPlaceholder() {
312
+ return this.disabled && this.disabledMsg ? this.localizeForLocale(this.disabledMsg) : this.localizeForLocale(this.placeholder);
313
+ }
314
+ get dateFormatValidationError() {
315
+ return this.localizeForLocale("tecton.element.datePicker.validation.dateFormat", {
316
+ format: this.normalizedDisplayFormat
317
+ });
318
+ }
319
+ get effectiveMode() {
320
+ return "single" !== this.mode ? this.mode : this.typeable ? "single-typeable" : "single";
321
+ }
322
+ get effectivePopoverDirection() {
323
+ return this.popoverDirection || this.popDirection;
324
+ }
325
+ get formattedTypeableValue() {
326
+ return this.selectedDate ? this.isRangeTypeable ? this.rangeEndDate ? `${this.formatDateWithModifier(this.selectedDate)} - ${this.formatDateWithModifier(this.rangeEndDate)}` : "" : this.formatDateWithModifier(this.selectedDate) : "";
327
+ }
328
+ get formattedValue() {
329
+ if (!this.selectedDate) return "";
330
+ const formatDate = t => this.displayFormat ? f(t, this.displayFormat) : this.formatLongDate(t);
331
+ return "range" === this.effectiveMode && this.rangeEndDate ? `${formatDate(this.selectedDate)} – ${formatDate(this.rangeEndDate)}` : formatDate(this.selectedDate);
332
+ }
333
+ get isRangeMode() {
334
+ return "range" === this.effectiveMode || this.isRangeTypeable;
335
+ }
336
+ get isRangeTypeable() {
337
+ return "range-typeable" === this.effectiveMode;
338
+ }
339
+ get isSingleTypeable() {
340
+ return "single-typeable" === this.effectiveMode;
341
+ }
342
+ get normalizedDisplayFormat() {
343
+ return b(this.displayFormat);
344
+ }
345
+ get normalizedInvalidDates() {
346
+ return this.normalizeDateList(this.invalidDates);
347
+ }
348
+ get normalizedValidDates() {
349
+ return this.normalizeDateList(this.validDates);
350
+ }
351
+ get normalizedValue() {
352
+ return v(this.value);
353
+ }
354
+ get rangeEndDate() {
355
+ const t = m(v(this.rangeEnd));
356
+ return a.isValid(t) ? t : void 0;
357
+ }
358
+ get rangeFormatValidationError() {
359
+ return this.localizeForLocale("tecton.element.datePicker.validation.rangeFormat", {
360
+ format: this.rangeTypeableFormat
361
+ });
362
+ }
363
+ get rangeOrderValidationError() {
364
+ return this.localizeForLocale("tecton.element.datePicker.validation.rangeOrder");
365
+ }
366
+ get rangeTypeableFormat() {
367
+ return `${this.normalizedDisplayFormat} - ${this.normalizedDisplayFormat}`;
368
+ }
369
+ get rangeValidationError() {
370
+ return this.localizeForLocale("tecton.element.datePicker.validation.rangeUnavailable");
371
+ }
372
+ get selectedDate() {
373
+ const t = m(this.isRangeMode ? v(this.rangeStart) : this.normalizedValue);
374
+ return a.isValid(t) ? t : void 0;
375
+ }
376
+ get typeableAllowedCharacters() {
377
+ const t = `${this.normalizedDisplayFormat.replace(/[MDY]/g, "")}${this.isRangeTypeable ? " -" : ""}`.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
378
+ return new RegExp(`^[0-9${t}]+$`);
379
+ }
380
+ closeAfterSelection() {
381
+ clearTimeout(this.closeTimeout);
382
+ const t = Number(this.closeDelay);
383
+ !t || t <= 0 ? this.closeCalendar(!0, !0) : this.closeTimeout = setTimeout((() => this.closeCalendar(!0, !0)), t);
384
+ }
385
+ closeCalendar(t = !0, i = !1) {
386
+ var e;
387
+ this.open && (this.open = !1, i && this.tctClose.emit(), t && (null === (e = this.controlElement) || void 0 === e || e.focus()));
388
+ }
389
+ commitSingleValue(t) {
390
+ if (!this.committingValue) {
391
+ // Watchers and consumer change handlers may update constraints during either event alias.
392
+ this.committingValue = !0;
393
+ try {
394
+ this.value = t, u(this, [ "change", "tctChange" ], {
395
+ value: t
396
+ });
397
+ } finally {
398
+ this.committingValue = !1;
399
+ }
400
+ this.isSingleTypeable && this.syncTypeableValue(), this.typeableError || this.validateCurrentValue();
401
+ }
402
+ }
403
+ emitValidationError(t) {
404
+ this.isRangeMode || u(this, [ "error", "tctError" ], {
405
+ errors: [ {
406
+ message: t,
407
+ errorCode: "generalInvalid"
408
+ } ]
409
+ });
410
+ }
411
+ emitValidationSuccess(t) {
412
+ this.isRangeMode || u(this, [ "success", "tctSuccess" ], {
413
+ value: t
414
+ });
415
+ }
416
+ focusRenderedDate(t) {
417
+ var i;
418
+ null === (i = this.calendarElement) || void 0 === i || i.dispatchEvent(new CustomEvent("tctCalendarFocus", {
419
+ detail: {
420
+ value: t
421
+ }
422
+ }));
423
+ }
424
+ formatDateWithModifier(t) {
425
+ return w(t, this.normalizedDisplayFormat);
426
+ }
427
+ formatLongDate(t) {
428
+ return new Intl.DateTimeFormat(this.locale, {
429
+ year: "numeric",
430
+ month: "long",
431
+ day: "numeric"
432
+ }).format(t);
433
+ }
434
+ formatTypeableDate(t) {
435
+ const i = this.normalizedDisplayFormat.includes("-") ? "-" : "/";
436
+ return (this.normalizedDisplayFormat.startsWith("YYYY") ? [ t.slice(0, 4), t.slice(4, 6), t.slice(6, 8) ] : [ t.slice(0, 2), t.slice(2, 4), t.slice(4, 8) ]).filter(Boolean).join(i);
437
+ }
438
+ isDateValid(t) {
439
+ return y(t, {
440
+ cutoffTime: this.cutoffTime,
441
+ daysOfWeekChecksum: this.daysOfWeekChecksum,
442
+ endDate: v(this.endDate),
443
+ invalidDates: this.normalizedInvalidDates,
444
+ startDate: v(this.startDate),
445
+ validDates: this.normalizedValidDates
446
+ });
447
+ }
448
+ isRangeValid(t, i) {
449
+ return C(t, i, {
450
+ cutoffTime: this.cutoffTime,
451
+ daysOfWeekChecksum: this.daysOfWeekChecksum,
452
+ endDate: v(this.endDate),
453
+ invalidDates: this.normalizedInvalidDates,
454
+ startDate: v(this.startDate),
455
+ validDates: this.normalizedValidDates
456
+ });
457
+ }
458
+ isTypeableDatePrefixInvalid(t) {
459
+ const i = this.normalizedDisplayFormat.startsWith("YYYY"), e = this.normalizedDisplayFormat.startsWith("DD"), s = i ? t.slice(0, 4) : t.slice(0, 2), a = i ? t.slice(4, 6) : t.slice(2, 4), r = i || e ? a : s, h = i ? t.slice(6, 8) : e ? s : a, isSegmentInvalid = (t, i) => {
460
+ if (!t) return !1;
461
+ if (1 === t.length) return Number(t) > Math.floor(i / 10);
462
+ const e = Number(t);
463
+ return e < 1 || e > i;
464
+ };
465
+ return !(!isSegmentInvalid(r, 12) && !isSegmentInvalid(h, 31)) || !(r.length < 2 || h.length < 2) && Number(h) > new Date(2e3, Number(r), 0).getDate();
466
+ }
467
+ localizeForLocale(t, i = {}) {
468
+ return D(t, i);
469
+ }
470
+ normalizeDateList(t) {
471
+ if (t)
472
+ // Stable references prevent child constraint watchers from clearing errors on unrelated renders.
473
+ return this.normalizedDateLists.has(t) || this.normalizedDateLists.set(t, t.map((t => v(t))).filter((t => !!t))),
474
+ this.normalizedDateLists.get(t);
475
+ }
476
+ parseTypeableDate(t) {
477
+ var i;
478
+ const e = this.normalizedDisplayFormat.includes("-") ? "-" : "/", s = "-" === e ? "\\-" : "/", a = this.normalizedDisplayFormat.startsWith("YYYY");
479
+ if (!new RegExp(a ? `^\\d{4}${s}\\d{2}${s}\\d{2}$` : `^\\d{2}${s}\\d{2}(?:${s}\\d{4})?$`).test(t || "")) return;
480
+ const r = t.split(e), [h, n, o] = a ? r : this.normalizedDisplayFormat.startsWith("DD") ? [ r[2], r[1], r[0] ] : [ r[2], r[0], r[1] ], d = Number(n), l = Number(o), c = h ? Number(h) : null === (i = x(`${d}/${l}`, this.assume)) || void 0 === i ? void 0 : i.getFullYear();
481
+ if (!c) return;
482
+ const p = new Date(c, d - 1, l);
483
+ return p.getFullYear() === c && p.getMonth() === d - 1 && p.getDate() === l ? p : void 0;
484
+ }
485
+ /**
486
+ * Recomputes the typeable error from the current `typeableValue`, applying the same range checks the commit path
487
+ * uses so a stale error cannot outlive the text that produced it.
488
+ */ revalidateTypeableValue() {
489
+ if (this.validateTypeableValue(), this.typeableError || !this.isRangeTypeable) return;
490
+ const [t, i] = this.typeableValue.split(" - "), e = this.parseTypeableDate(t), s = this.parseTypeableDate(i);
491
+ e && s && (this.typeableError = this.typeableRangeError(e, s));
492
+ }
493
+ async scrollDownCalendarToTop() {
494
+ var t;
495
+ this.open && this.isRangeMode && "down" === this.activePopoverDirection && (await o(),
496
+ await o(), this.open && this.isRangeMode && "down" === this.activePopoverDirection && await (null === (t = this.popoverElement) || void 0 === t ? void 0 : t.scrollContainerTo({
497
+ top: 0
498
+ })));
499
+ }
500
+ async scrollUpCalendarToBottom() {
501
+ var t;
502
+ this.open && "up" === this.activePopoverDirection && (await o(), await o(), this.open && "up" === this.activePopoverDirection && await (null === (t = this.popoverElement) || void 0 === t ? void 0 : t.scrollContainerTo({
503
+ top: Number.MAX_SAFE_INTEGER
504
+ })));
505
+ }
506
+ setActivePopoverDirection() {
507
+ this.activePopoverDirection = this.effectivePopoverDirection || this.automaticPopoverDirection;
508
+ }
509
+ setTypeableError(t) {
510
+ this.typeableError !== t && (this.typeableError = t, t && this.emitValidationError(t));
511
+ }
512
+ async showActionSheet() {
513
+ var t, i;
514
+ const e = await (null === (t = window.TectonElements) || void 0 === t ? void 0 : t.showActionSheet(this.actionSheetData));
515
+ if (null === (i = this.controlElement) || void 0 === i || i.focus(), null == e ? void 0 : e.error) return this.calendarError = e.error,
516
+ void this.tctClose.emit({
517
+ error: e.error
518
+ });
519
+ if (e && "cancel" !== e.type) {
520
+ if (this.isRangeMode) {
521
+ const {rangeStart: t, rangeEnd: i} = e;
522
+ if (!t || !i) return;
523
+ return this.rangeStart = t, this.rangeEnd = i, u(this, [ "change", "tctChange" ], {
524
+ rangeStart: t,
525
+ rangeEnd: i
526
+ }), void this.tctClose.emit();
527
+ }
528
+ e.value && (this.commitSingleValue(e.value), this.tctClose.emit());
529
+ }
530
+ }
531
+ syncTypeableValue() {
532
+ this.typeableValue = this.formattedTypeableValue, this.revalidateTypeableValue();
533
+ }
534
+ toggleCalendar() {
535
+ this.disabled || this.readonly || (p({
536
+ hoist: this.hoist
537
+ }) ? this.showActionSheet() : (this.open || this.setActivePopoverDirection(), this.open = !this.open));
538
+ }
539
+ typeableRangeError(t, i) {
540
+ return t.getTime() > i.getTime() ? this.rangeOrderValidationError : this.isRangeValid(t, i) ? "" : this.rangeValidationError;
541
+ }
542
+ validateCurrentValue(t = this.value) {
543
+ if (!t || this.isRangeMode) return;
544
+ const i = v(t), e = m(i);
545
+ i && a.isValid(e) && this.isDateValid(e) ? this.emitValidationSuccess(i) : this.emitValidationError(`Value passed is invalid: The date ${t} is not valid`);
546
+ }
547
+ validateTypeableValue() {
548
+ const t = this.typeableValue.replace(/\D/g, "");
549
+ if (!t) return void this.setTypeableError("");
550
+ const i = (this.isRangeTypeable ? [ t.slice(0, 8), t.slice(8) ] : [ t ]).some((t => {
551
+ if (this.isTypeableDatePrefixInvalid(t)) return !0;
552
+ if (8 !== t.length) return !1;
553
+ const i = this.parseTypeableDate(this.formatTypeableDate(t));
554
+ return !i || !this.isDateValid(i);
555
+ }));
556
+ this.setTypeableError(i ? this.isRangeTypeable ? this.rangeFormatValidationError : this.dateFormatValidationError : "");
557
+ }
558
+ // #endregion
559
+ // #region Render Methods
560
+ renderCalendar() {
561
+ return e("q2-date-calendar", {
562
+ ref: t => this.calendarElement = t,
563
+ class: this._actionSheet ? "is-action-sheet" : void 0,
564
+ accessibleLabel: this.calendarLabel || "Choose a date",
565
+ actionSheet: this._actionSheet,
566
+ calendarLabel: this.calendarLabel,
567
+ cutoffTime: this.cutoffTime,
568
+ daysOfWeekChecksum: this.daysOfWeekChecksum,
569
+ direction: this.activePopoverDirection,
570
+ disabled: this.disabled,
571
+ disclaimer: this.disclaimer,
572
+ displayFormat: this.normalizedDisplayFormat,
573
+ endDate: v(this.endDate),
574
+ invalidDates: this.normalizedInvalidDates,
575
+ locale: this.locale,
576
+ mode: this.effectiveMode,
577
+ open: this.open,
578
+ rangeEnd: v(this.rangeEnd),
579
+ rangeStart: v(this.rangeStart),
580
+ readonly: this.readonly,
581
+ startDate: v(this.startDate),
582
+ validDates: this.normalizedValidDates,
583
+ value: this.normalizedValue,
584
+ onTctCalendarCancel: this.onCalendarCancel,
585
+ onTctCalendarCommit: this.onCalendarCommit,
586
+ onTctCalendarDismiss: this.onCalendarDismiss,
587
+ onTctCalendarError: this.onCalendarError
588
+ });
589
+ }
590
+ render() {
591
+ return this._actionSheet ? this.renderCalendar() : e("click-elsewhere", {
592
+ class: this.open ? "dropdown-open" : void 0,
593
+ onChange: this.onClickElsewhere
594
+ }, e("q2-input", {
595
+ ref: t => this.controlElement = t,
596
+ class: "date-picker-input",
597
+ clearable: this.canClear,
598
+ disabled: this.disabled,
599
+ errors: this.computedErrors,
600
+ hideLabel: this.hideLabel,
601
+ hints: this.hints,
602
+ readonly: this.readonly,
603
+ optional: this.optional,
604
+ valid: this.valid,
605
+ value: this.acceptsTypeableInput ? this.typeableValue : this.formattedValue,
606
+ label: d(this.label),
607
+ placeholder: this.computedPlaceholder,
608
+ "icon-right": this.acceptsTypeableInput ? void 0 : "calendar",
609
+ autocomplete: "off",
610
+ maxlength: this.isRangeTypeable ? 23 : this.isSingleTypeable ? 10 : void 0,
611
+ "aria-haspopup": "dialog",
612
+ "aria-expanded": `${this.open}`,
613
+ "aria-controls": "date-picker-popover",
614
+ onClick: this.acceptsTypeableInput ? void 0 : this.onInputClick,
615
+ onChange: t => t.stopImmediatePropagation(),
616
+ onTctChange: this.acceptsTypeableInput ? this.onTypeableChange : t => t.stopImmediatePropagation(),
617
+ onInput: t => t.stopImmediatePropagation(),
618
+ onTctInput: this.acceptsTypeableInput ? this.onTypeableInput : t => t.stopImmediatePropagation(),
619
+ onTctClear: this.onClear,
620
+ onKeyDown: this.onInputKeydown,
621
+ "test-id": "datePickerToggle",
622
+ _preventEntry: !this.acceptsTypeableInput
623
+ }, l(this.hostElement, "label") && e("slot", {
624
+ name: "label",
625
+ slot: "label"
626
+ }), this.acceptsTypeableInput && e("q2-btn", {
627
+ slot: "input-right",
628
+ "hide-label": !0,
629
+ disabled: this.disabled || this.readonly,
630
+ label: "tecton.element.calendar.toggleAriaLabel",
631
+ onClick: this.onCalendarToggleClick,
632
+ "test-id": "datePickerCalendarToggle"
633
+ }, e("q2-icon", {
634
+ type: "calendar"
635
+ }))), e("q2-popover", {
636
+ ref: t => this.popoverElement = t,
637
+ id: "date-picker-popover",
638
+ controlElement: this.controlElement,
639
+ open: this.open,
640
+ direction: this.effectivePopoverDirection,
641
+ align: this.popoverAlignment,
642
+ minHeight: this.popoverMinHeight,
643
+ mode: this.popoverMode || void 0
644
+ }, this.renderCalendar()));
645
+ }
646
+ get hostElement() {
647
+ return s(this);
648
+ }
649
+ static get watchers() {
650
+ return {
651
+ cutoffTime: [ {
652
+ constraintsChanged: 0
653
+ } ],
654
+ assume: [ {
655
+ constraintsChanged: 0
656
+ } ],
657
+ daysOfWeekChecksum: [ {
658
+ constraintsChanged: 0
659
+ } ],
660
+ endDate: [ {
661
+ constraintsChanged: 0
662
+ } ],
663
+ invalidDates: [ {
664
+ constraintsChanged: 0
665
+ } ],
666
+ startDate: [ {
667
+ constraintsChanged: 0
668
+ } ],
669
+ validDates: [ {
670
+ constraintsChanged: 0
671
+ } ],
672
+ disabled: [ {
673
+ disabledChanged: 0
674
+ } ],
675
+ displayFormat: [ {
676
+ displayFormatChanged: 0
677
+ } ],
678
+ mode: [ {
679
+ modeChanged: 0
680
+ } ],
681
+ typeable: [ {
682
+ modeChanged: 0
683
+ } ],
684
+ open: [ {
685
+ openChanged: 0
686
+ } ],
687
+ popDirection: [ {
688
+ popDirectionChanged: 0
689
+ } ],
690
+ popoverDirection: [ {
691
+ popoverDirectionChanged: 0
692
+ } ],
693
+ rangeEnd: [ {
694
+ rangeEndChanged: 0
695
+ } ],
696
+ rangeStart: [ {
697
+ rangeStartChanged: 0
698
+ } ],
699
+ readonly: [ {
700
+ readonlyChanged: 0
701
+ } ],
702
+ value: [ {
703
+ valueChanged: 0
704
+ } ]
705
+ };
706
+ }
707
+ };
708
+
709
+ T.style = '*{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}}}:host{--comp-date-picker-width:var(--tct-date-picker-width, var(--tct-date-calendar-width, 360px));box-sizing:border-box;display:block}:host[hidden]{display:none}click-elsewhere,.date-picker-input{display:block;width:100%}q2-date-calendar{--comp-date-calendar-width:var(--comp-date-picker-width);display:block;width:var(--comp-date-picker-width)}q2-date-calendar.is-action-sheet{--comp-date-calendar-width:100%;width:100%}q2-popover{--tct-popover-width:var(--comp-date-picker-width);--tct-popover-border-radius:var(--tct-date-picker-border-radius, var(--tct-date-calendar-border-radius, var(--app-border-radius-1, 4px)))}@media (max-width: 768px){:host{--comp-date-picker-width:min( 100%, calc( 100vw - var(--tct-date-picker-mobile-gutter, var(--tct-date-calendar-mobile-gutter, 24px)) - var(--tct-date-picker-mobile-gutter, var(--tct-date-calendar-mobile-gutter, 24px)) ), var(--tct-date-picker-mobile-max-width, var(--tct-date-calendar-mobile-max-width, 420px)) )}}';
710
+
711
+ const E = class {
712
+ constructor(i) {
713
+ t(this, i),
714
+ // #region Own Properties
715
+ this.guid = c(),
716
+ // #endregion
717
+ // #region State Properties
718
+ this.hidden = !1,
719
+ // #endregion
720
+ // #region Public Property API
721
+ /** Determines whether all nested options are disabled. */
722
+ this.disabled = !1, this.setHidden = () => {
723
+ this.hidden = this.options.every((t => t.hidden || t._multiSelectHidden));
724
+ };
725
+ }
726
+ // #endregion
727
+ // #region Component Lifecycle Events
728
+ disconnectedCallback() {
729
+ var t;
730
+ null === (t = this.mutationObserver) || void 0 === t || t.disconnect(), this.mutationObserver = null;
731
+ }
732
+ componentWillLoad() {
733
+ k(this.hostElement, "q2-option-list, q2-select, q2-dropdown, q2-pill");
734
+ const t = new MutationObserver(this.setHidden);
735
+ t.observe(this.hostElement, {
736
+ childList: !0,
737
+ attributes: !0,
738
+ subtree: !0
739
+ }), this.mutationObserver = t,
740
+ // set initially
741
+ this.setHidden(), this.disabledWatcher(this.disabled);
742
+ }
743
+ // #endregion
744
+ // #region Watchers
745
+ disabledWatcher(t) {
746
+ this.options.forEach((i => {
747
+ i.disabledGroup = !!t;
748
+ }));
749
+ }
750
+ // #endregion
751
+ // #region Local Methods
752
+ get headerId() {
753
+ return `q2-optgroup-header-${this.guid}`;
754
+ }
755
+ get options() {
756
+ return Array.from(this.hostElement.querySelectorAll("q2-option"));
757
+ }
758
+ // #endregion
759
+ // #region Render Methods
760
+ render() {
761
+ return e("div", {
762
+ key: "829ae5ebec150734128c98343ddb8112de0ee21e",
763
+ class: "q2-optgroup-container",
764
+ hidden: this.hidden,
765
+ "aria-labelledby": this.headerId,
766
+ role: "group"
767
+ }, e("div", {
768
+ key: "6683155f922a2d15349f885aabac0bf9ee6a4575",
769
+ class: "q2-optgroup-header",
770
+ id: this.headerId
771
+ }, this.label && d(this.label) || ""), e("div", {
772
+ key: "b974da306256b13283183fa03e4dc8bcc8be3f44",
773
+ class: "q2-optgroup-options"
774
+ }, e("slot", {
775
+ key: "2f0035aad12309be2c5c4ea3125077cc704e65e4"
776
+ })));
777
+ }
778
+ get hostElement() {
779
+ return s(this);
780
+ }
781
+ static get watchers() {
782
+ return {
783
+ disabled: [ {
784
+ disabledWatcher: 0
785
+ } ]
786
+ };
787
+ }
788
+ };
789
+
790
+ E.style = '*{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}}}:host{display:block}.q2-optgroup-header{--comp-header-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-2, var(--app-scale-2x, 10px));background:var(--tct-optgroup-header-background, var(--tct-optgroup-header-bg, var(--t-optgroup-header-bg, var(--t-base, #FFFFFF))));color:var(--tct-optgroup-header-color, inherit);font-size:var(--tct-optgroup-header-font-size, var(--const-px-14, 14px));font-weight:var(--tct-optgroup-header-font-weight, 600);letter-spacing:var(--tct-optgroup-header-letter-spacing, inherit);position:var(--tct-optgroup-header-position, sticky);padding:var(--tct-optgroup-header-padding, var(--t-optgroup-header-padding, var(--comp-header-padding)));text-transform:var(--tct-optgroup-header-text-transform, var(--t-optgroup-header-text-transform, none));top:calc(var(--comp-popover-top-container-height, 0px) + var(--tct-optgroup-top, var(--t-optgroup-top, 0px)));z-index:5}';
791
+
792
+ export { T as q2_date_picker, E as q2_optgroup }