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,2010 @@
1
+ import { h, } from "@stencil/core";
2
+ import { isValid as isValidDate } from "date-fns";
3
+ import { handleDeprecationWarning, hasSlotContent, isEventFromElement, loc, overrideFocus, waitForNextPaint, } from "../../utils";
4
+ import { shouldShowActionSheet } from "../../utils/action-sheet";
5
+ import mirrorEmit from "../../utils/mirror-emit";
6
+ import { buildInputDate, formatDisplayDate, formatDateISO, formatLegacyDisplayDate, isDateSelectable, isRangeSelectable, localizeDatePickerString, normalizeDatePickerValue, normalizeDisplayFormat, parseDatePickerValue, } from "../../utils/date-picker/date-picker-helpers";
7
+ /**
8
+ * @name Date Picker
9
+ * @category Forms
10
+ * @summary Use for selecting a date or date range with an input and calendar popup.
11
+ * @slot label - Custom content for the input label.
12
+ */
13
+ export class Q2DatePicker {
14
+ constructor() {
15
+ var _a;
16
+ this.committingValue = false;
17
+ this.normalizedDateLists = new WeakMap();
18
+ // #endregion
19
+ // #region State Properties
20
+ this.activePopoverDirection = 'down';
21
+ this.typeableValue = '';
22
+ // #endregion
23
+ // #region Public Property API
24
+ /**
25
+ * Renders the calendar panel inline with behavior specific to being hosted by `q2-action-sheet`.
26
+ * @private
27
+ */
28
+ this._actionSheet = false;
29
+ /**
30
+ * Determines the year for a committed month/day typeable date with no year.
31
+ * `future` selects the next year for dates before today, while `past` selects the prior year for dates after today.
32
+ * Only applies to `single-typeable` mode with a month-first or day-first display format.
33
+ */
34
+ this.assume = 'current';
35
+ /** Displays a button in the input field allowing the user to clear the selected date or range. */
36
+ this.clearable = false;
37
+ /** Delay in milliseconds before the popover closes after selection. Explicitly undefined or non-positive values close immediately. */
38
+ this.closeDelay = 400;
39
+ /** Indicates the date picker cannot be focused or interacted with. */
40
+ this.disabled = false;
41
+ /**
42
+ * Hides the input field's visible label while retaining its accessible name.
43
+ * @warning
44
+ * Hides the label visually. `label` text is still required for screenreader compliance.
45
+ */
46
+ this.hideLabel = false;
47
+ /**
48
+ * Instructs the component to use the action sheet workflow for displaying its calendar.
49
+ *
50
+ * For more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/).
51
+ */
52
+ this.hoist = ((_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.useActionSheets) ? true : undefined;
53
+ /** Shows the input field's error visual state. */
54
+ this.invalid = false;
55
+ /** Formats selected dates using the provided locale. Accepts multiple locales in an array as sequential fallbacks. */
56
+ this.locale = document.documentElement.lang || 'en-US';
57
+ /**
58
+ * Selects calendar or typeable behavior for a single date or date range.
59
+ * Enabling the legacy `typeable` prop uses `single-typeable` when `mode` is left at its default; an explicit mode takes precedence.
60
+ */
61
+ this.mode = 'single';
62
+ /** Controls whether the date picker popover is open or closed. */
63
+ this.open = false;
64
+ /** Appends "(optional)" to the input label and marks the field as not required. */
65
+ this.optional = false;
66
+ /** Aligns the calendar popover to the left or right side of the input field. */
67
+ this.popoverAlignment = 'left';
68
+ /** @deprecated Retained for compatibility with `q2-date-picker`. */
69
+ this.popoverMinHeight = 355;
70
+ /**
71
+ * Uses absolute positioning for the popover when set to `legacy`.
72
+ *
73
+ * This compatibility option supports layouts where transformed ancestors interfere with fixed positioning.
74
+ */
75
+ this.popoverMode = null;
76
+ /**
77
+ * The field's content is not editable, but the field remains focusable.
78
+ *
79
+ * Appends "(read only)" to the field label.
80
+ */
81
+ this.readonly = false;
82
+ /** Enables the legacy single-date typeable input behavior. */
83
+ this.typeable = false;
84
+ /** Shows the input field's success visual state when no errors are active. */
85
+ this.valid = false;
86
+ this.onCalendarCancel = (event) => {
87
+ event.stopPropagation();
88
+ this.calendarError = '';
89
+ if (this._actionSheet) {
90
+ this.tctCancel.emit();
91
+ return;
92
+ }
93
+ this.closeCalendar();
94
+ };
95
+ this.onCalendarCommit = (event) => {
96
+ event.stopPropagation();
97
+ if (this.disabled || this.readonly)
98
+ return;
99
+ if (!event.detail)
100
+ return;
101
+ this.calendarError = '';
102
+ const { value, rangeStart, rangeEnd } = event.detail;
103
+ if (this.isRangeMode) {
104
+ if (!rangeStart || !rangeEnd)
105
+ return;
106
+ this.rangeStart = rangeStart;
107
+ this.rangeEnd = rangeEnd;
108
+ mirrorEmit(this, ['change', 'tctChange'], { rangeStart, rangeEnd });
109
+ this.closeCalendar(true, true);
110
+ return;
111
+ }
112
+ if (!value)
113
+ return;
114
+ this.commitSingleValue(value);
115
+ this.closeAfterSelection();
116
+ };
117
+ this.onCalendarDismiss = (event) => {
118
+ event.stopPropagation();
119
+ this.calendarError = '';
120
+ if (this._actionSheet) {
121
+ this.tctCancel.emit();
122
+ return;
123
+ }
124
+ this.closeCalendar();
125
+ };
126
+ this.onCalendarError = (event) => {
127
+ event.stopPropagation();
128
+ this.calendarError = event.detail;
129
+ if (this._actionSheet) {
130
+ this.tctClose.emit({ error: event.detail });
131
+ return;
132
+ }
133
+ this.closeCalendar(true, true);
134
+ };
135
+ this.onCalendarToggleClick = (event) => {
136
+ event.stopPropagation();
137
+ this.toggleCalendar();
138
+ };
139
+ this.onClear = () => {
140
+ this.calendarError = '';
141
+ this.typeableError = '';
142
+ this.typeableValue = '';
143
+ if (this.isRangeMode) {
144
+ this.rangeStart = undefined;
145
+ this.rangeEnd = undefined;
146
+ mirrorEmit(this, ['change', 'tctChange'], { rangeStart: null, rangeEnd: null });
147
+ return;
148
+ }
149
+ this.value = undefined;
150
+ mirrorEmit(this, ['change', 'tctChange'], { value: null });
151
+ };
152
+ this.onClickElsewhere = (event) => {
153
+ if (event.target.localName !== 'click-elsewhere')
154
+ return;
155
+ event.stopPropagation();
156
+ this.closeCalendar(false);
157
+ };
158
+ this.onInputClick = () => {
159
+ if (this.acceptsTypeableInput)
160
+ return;
161
+ this.toggleCalendar();
162
+ };
163
+ this.onInputKeydown = (event) => {
164
+ if (this.disabled || this.readonly)
165
+ return;
166
+ if (this.acceptsTypeableInput) {
167
+ if (event.metaKey || event.ctrlKey || event.altKey || event.key.length !== 1)
168
+ return;
169
+ if (!this.typeableAllowedCharacters.test(event.key))
170
+ event.preventDefault();
171
+ return;
172
+ }
173
+ if (shouldShowActionSheet({ hoist: this.hoist }, event)) {
174
+ event.preventDefault();
175
+ this.showActionSheet();
176
+ return;
177
+ }
178
+ if (event.key === 'Escape' && this.open) {
179
+ event.preventDefault();
180
+ this.closeCalendar();
181
+ return;
182
+ }
183
+ if (!['Enter', ' ', 'ArrowDown'].includes(event.key) || this.open)
184
+ return;
185
+ event.preventDefault();
186
+ this.setActivePopoverDirection();
187
+ this.open = true;
188
+ requestAnimationFrame(() => this.focusRenderedDate());
189
+ };
190
+ this.onTypeableChange = (event) => {
191
+ event.stopImmediatePropagation();
192
+ if (this.disabled || this.readonly)
193
+ return;
194
+ if (this.isSingleTypeable) {
195
+ const date = this.parseTypeableDate(this.typeableValue);
196
+ if (!date || !this.isDateValid(date)) {
197
+ this.setTypeableError(this.dateFormatValidationError);
198
+ return;
199
+ }
200
+ this.setTypeableError('');
201
+ const value = formatDateISO(date);
202
+ this.commitSingleValue(value);
203
+ return;
204
+ }
205
+ const [startValue, endValue] = this.typeableValue.split(' - ');
206
+ const start = this.parseTypeableDate(startValue);
207
+ const end = this.parseTypeableDate(endValue);
208
+ if (!start || !end) {
209
+ this.setTypeableError(this.rangeFormatValidationError);
210
+ return;
211
+ }
212
+ const rangeError = this.typeableRangeError(start, end);
213
+ if (rangeError) {
214
+ this.setTypeableError(rangeError);
215
+ return;
216
+ }
217
+ this.setTypeableError('');
218
+ const rangeStart = formatDateISO(start);
219
+ const rangeEnd = formatDateISO(end);
220
+ this.rangeStart = rangeStart;
221
+ this.rangeEnd = rangeEnd;
222
+ mirrorEmit(this, ['change', 'tctChange'], { rangeStart, rangeEnd });
223
+ };
224
+ this.onTypeableInput = (event) => {
225
+ var _a;
226
+ event.stopImmediatePropagation();
227
+ if (this.disabled || this.readonly)
228
+ return;
229
+ const maxDigits = this.isRangeTypeable ? 16 : 8;
230
+ const digits = String(((_a = event.detail) === null || _a === void 0 ? void 0 : _a.value) || '')
231
+ .replace(/\D/g, '')
232
+ .slice(0, maxDigits);
233
+ this.typeableValue =
234
+ this.isRangeTypeable && digits.length > 8
235
+ ? `${this.formatTypeableDate(digits.slice(0, 8))} - ${this.formatTypeableDate(digits.slice(8))}`
236
+ : this.formatTypeableDate(digits);
237
+ this.validateTypeableValue();
238
+ };
239
+ }
240
+ // #endregion
241
+ // #region Component Lifecycle Events
242
+ connectedCallback() {
243
+ const normalizedValue = this.normalizedValue;
244
+ if (normalizedValue && this.value !== normalizedValue)
245
+ this.value = normalizedValue;
246
+ this.activePopoverDirection = this.effectivePopoverDirection || 'down';
247
+ this.typeableValue = this.formattedTypeableValue;
248
+ this.validateCurrentValue();
249
+ }
250
+ disconnectedCallback() {
251
+ clearTimeout(this.closeTimeout);
252
+ }
253
+ componentWillLoad() {
254
+ if (this.popDirection)
255
+ handleDeprecationWarning(this, 'popDirection', 'prop');
256
+ }
257
+ componentDidLoad() {
258
+ overrideFocus(this.hostElement);
259
+ }
260
+ componentDidRender() {
261
+ if (this.open && this.activePopoverDirection === 'up')
262
+ this.scrollUpCalendarToBottom();
263
+ }
264
+ // #endregion
265
+ // #region Listeners
266
+ beforeInputHandler(event) {
267
+ if (this.acceptsTypeableInput && event.data && !this.typeableAllowedCharacters.test(event.data)) {
268
+ event.preventDefault();
269
+ }
270
+ }
271
+ delegateFocus(event) {
272
+ var _a;
273
+ if (!isEventFromElement(event, this.hostElement))
274
+ return;
275
+ (_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.focus();
276
+ }
277
+ popoverStateHandler({ detail: { open } }) {
278
+ if (this.open !== open)
279
+ this.open = open;
280
+ }
281
+ // #endregion
282
+ // #region Public Methods API
283
+ /** Closes the calendar popover if it is open. */
284
+ async closePopover() {
285
+ this.closeCalendar();
286
+ }
287
+ /** Moves the visible month to the provided date and focuses that day. */
288
+ async focusDate(date) {
289
+ var _a;
290
+ if (!isValidDate(date))
291
+ return;
292
+ await waitForNextPaint();
293
+ await ((_a = this.calendarElement) === null || _a === void 0 ? void 0 : _a.focusDate(date));
294
+ }
295
+ /** Opens the calendar popover if it is closed. */
296
+ async openPopover() {
297
+ var _a;
298
+ if (this.open || this.disabled || this.readonly || this._actionSheet)
299
+ return;
300
+ this.setActivePopoverDirection();
301
+ this.open = true;
302
+ await waitForNextPaint();
303
+ const toggleElement = this.acceptsTypeableInput
304
+ ? (_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.querySelector('[test-id="datePickerCalendarToggle"]')
305
+ : this.controlElement;
306
+ toggleElement === null || toggleElement === void 0 ? void 0 : toggleElement.focus();
307
+ toggleElement === null || toggleElement === void 0 ? void 0 : toggleElement.dispatchEvent(new FocusEvent('focus'));
308
+ }
309
+ /** Clears selected values, uncommitted typeable input, and error state without changing configuration props. */
310
+ async reset() {
311
+ clearTimeout(this.closeTimeout);
312
+ this.value = undefined;
313
+ this.rangeStart = undefined;
314
+ this.rangeEnd = undefined;
315
+ this.errors = undefined;
316
+ this.invalid = false;
317
+ this.calendarError = '';
318
+ this.typeableError = '';
319
+ this.typeableValue = '';
320
+ }
321
+ /** Opens the calendar and selects the provided date when it is valid. */
322
+ async setValue(value) {
323
+ var _a;
324
+ const date = parseDatePickerValue(normalizeDatePickerValue(value));
325
+ if (this.disabled || this.readonly || this.isRangeTypeable || !isValidDate(date) || !this.isDateValid(date)) {
326
+ return;
327
+ }
328
+ if (!this._actionSheet) {
329
+ this.setActivePopoverDirection();
330
+ this.open = true;
331
+ await waitForNextPaint();
332
+ }
333
+ await ((_a = this.calendarElement) === null || _a === void 0 ? void 0 : _a.setValue(date));
334
+ }
335
+ /**
336
+ * Focuses the single typeable input and stages a valid date without committing it.
337
+ *
338
+ * @warning
339
+ * Only applicable when the effective mode is `single-typeable`.
340
+ */
341
+ async typeValue(value) {
342
+ var _a;
343
+ if (!this.isSingleTypeable)
344
+ return;
345
+ const date = parseDatePickerValue(normalizeDatePickerValue(value));
346
+ if (!isValidDate(date))
347
+ return;
348
+ await ((_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.setValue(this.formatDateWithModifier(date)));
349
+ }
350
+ // #endregion
351
+ // #region Watchers
352
+ constraintsChanged() {
353
+ if (this.committingValue)
354
+ return;
355
+ if (this.acceptsTypeableInput)
356
+ this.revalidateTypeableValue();
357
+ if (!this.typeableError)
358
+ this.validateCurrentValue();
359
+ }
360
+ disabledChanged(disabled) {
361
+ if (disabled)
362
+ this.closeCalendar(false);
363
+ }
364
+ displayFormatChanged() {
365
+ this.calendarError = '';
366
+ this.typeableError = '';
367
+ this.typeableValue = this.formattedTypeableValue;
368
+ }
369
+ modeChanged() {
370
+ this.open = false;
371
+ this.calendarError = '';
372
+ this.typeableError = '';
373
+ this.typeableValue = this.formattedTypeableValue;
374
+ }
375
+ openChanged(open) {
376
+ if (!open)
377
+ return;
378
+ this.setActivePopoverDirection();
379
+ if (this.isRangeMode && this.activePopoverDirection === 'down')
380
+ this.scrollDownCalendarToTop();
381
+ }
382
+ popDirectionChanged() {
383
+ if (this.popDirection)
384
+ handleDeprecationWarning(this, 'popDirection', 'prop');
385
+ this.setActivePopoverDirection();
386
+ }
387
+ popoverDirectionChanged() {
388
+ this.setActivePopoverDirection();
389
+ }
390
+ rangeEndChanged() {
391
+ if (!this.isRangeMode)
392
+ return;
393
+ this.calendarError = '';
394
+ if (this.isRangeTypeable)
395
+ this.syncTypeableValue();
396
+ }
397
+ rangeStartChanged() {
398
+ if (!this.isRangeMode)
399
+ return;
400
+ this.calendarError = '';
401
+ if (this.isRangeTypeable)
402
+ this.syncTypeableValue();
403
+ }
404
+ readonlyChanged(readonly) {
405
+ if (readonly)
406
+ this.closeCalendar(false);
407
+ }
408
+ valueChanged(value) {
409
+ const normalizedValue = normalizeDatePickerValue(value);
410
+ if (normalizedValue && value !== normalizedValue) {
411
+ this.value = normalizedValue;
412
+ return;
413
+ }
414
+ if (this.isRangeMode || this.committingValue)
415
+ return;
416
+ this.calendarError = '';
417
+ if (this.isSingleTypeable)
418
+ this.syncTypeableValue();
419
+ this.validateCurrentValue();
420
+ }
421
+ // #endregion
422
+ // #region Local Methods
423
+ get acceptsTypeableInput() {
424
+ return this.isRangeTypeable || this.isSingleTypeable;
425
+ }
426
+ get actionSheetData() {
427
+ return {
428
+ appearance: 'date-picker',
429
+ title: this.localizeForLocale(this.calendarLabel || 'Choose a date'),
430
+ datePickerProps: {
431
+ calendarLabel: this.calendarLabel,
432
+ closeDelay: this.closeDelay,
433
+ cutoffTime: this.cutoffTime,
434
+ daysOfWeekChecksum: this.daysOfWeekChecksum,
435
+ disclaimer: this.disclaimer,
436
+ endDate: normalizeDatePickerValue(this.endDate),
437
+ displayFormat: this.normalizedDisplayFormat,
438
+ invalidDates: this.normalizedInvalidDates,
439
+ locale: this.locale,
440
+ mode: this.isRangeMode ? 'range' : 'single',
441
+ rangeEnd: normalizeDatePickerValue(this.rangeEnd),
442
+ rangeStart: normalizeDatePickerValue(this.rangeStart),
443
+ startDate: normalizeDatePickerValue(this.startDate),
444
+ validDates: this.normalizedValidDates,
445
+ value: this.normalizedValue,
446
+ },
447
+ };
448
+ }
449
+ get automaticPopoverDirection() {
450
+ var _a, _b;
451
+ const { top = 0, bottom = 0 } = ((_b = (_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect) === null || _b === void 0 ? void 0 : _b.call(_a)) || {};
452
+ return top > window.innerHeight - bottom ? 'up' : 'down';
453
+ }
454
+ get canClear() {
455
+ return this.clearable && (this.isRangeMode ? !!this.rangeStart || !!this.rangeEnd : !!this.normalizedValue);
456
+ }
457
+ get computedErrors() {
458
+ const errors = [...(this.errors || [])];
459
+ const internalError = this.typeableError || this.calendarError;
460
+ if (internalError)
461
+ errors.push(internalError);
462
+ if (!errors.length && this.invalid)
463
+ errors.push('tecton.element.calendar.invalid');
464
+ return errors.length ? [errors[0]] : undefined;
465
+ }
466
+ get computedPlaceholder() {
467
+ if (this.disabled && this.disabledMsg)
468
+ return this.localizeForLocale(this.disabledMsg);
469
+ return this.localizeForLocale(this.placeholder);
470
+ }
471
+ get dateFormatValidationError() {
472
+ return this.localizeForLocale('tecton.element.datePicker.validation.dateFormat', {
473
+ format: this.normalizedDisplayFormat,
474
+ });
475
+ }
476
+ get effectiveMode() {
477
+ if (this.mode !== 'single')
478
+ return this.mode;
479
+ return this.typeable ? 'single-typeable' : 'single';
480
+ }
481
+ get effectivePopoverDirection() {
482
+ return this.popoverDirection || this.popDirection;
483
+ }
484
+ get formattedTypeableValue() {
485
+ if (!this.selectedDate)
486
+ return '';
487
+ if (!this.isRangeTypeable)
488
+ return this.formatDateWithModifier(this.selectedDate);
489
+ if (!this.rangeEndDate)
490
+ return '';
491
+ return `${this.formatDateWithModifier(this.selectedDate)} - ${this.formatDateWithModifier(this.rangeEndDate)}`;
492
+ }
493
+ get formattedValue() {
494
+ if (!this.selectedDate)
495
+ return '';
496
+ const formatDate = (date) => this.displayFormat ? formatLegacyDisplayDate(date, this.displayFormat) : this.formatLongDate(date);
497
+ if (this.effectiveMode !== 'range' || !this.rangeEndDate)
498
+ return formatDate(this.selectedDate);
499
+ return `${formatDate(this.selectedDate)} – ${formatDate(this.rangeEndDate)}`;
500
+ }
501
+ get isRangeMode() {
502
+ return this.effectiveMode === 'range' || this.isRangeTypeable;
503
+ }
504
+ get isRangeTypeable() {
505
+ return this.effectiveMode === 'range-typeable';
506
+ }
507
+ get isSingleTypeable() {
508
+ return this.effectiveMode === 'single-typeable';
509
+ }
510
+ get normalizedDisplayFormat() {
511
+ return normalizeDisplayFormat(this.displayFormat);
512
+ }
513
+ get normalizedInvalidDates() {
514
+ return this.normalizeDateList(this.invalidDates);
515
+ }
516
+ get normalizedValidDates() {
517
+ return this.normalizeDateList(this.validDates);
518
+ }
519
+ get normalizedValue() {
520
+ return normalizeDatePickerValue(this.value);
521
+ }
522
+ get rangeEndDate() {
523
+ const date = parseDatePickerValue(normalizeDatePickerValue(this.rangeEnd));
524
+ return isValidDate(date) ? date : undefined;
525
+ }
526
+ get rangeFormatValidationError() {
527
+ return this.localizeForLocale('tecton.element.datePicker.validation.rangeFormat', {
528
+ format: this.rangeTypeableFormat,
529
+ });
530
+ }
531
+ get rangeOrderValidationError() {
532
+ return this.localizeForLocale('tecton.element.datePicker.validation.rangeOrder');
533
+ }
534
+ get rangeTypeableFormat() {
535
+ return `${this.normalizedDisplayFormat} - ${this.normalizedDisplayFormat}`;
536
+ }
537
+ get rangeValidationError() {
538
+ return this.localizeForLocale('tecton.element.datePicker.validation.rangeUnavailable');
539
+ }
540
+ get selectedDate() {
541
+ const date = parseDatePickerValue(this.isRangeMode ? normalizeDatePickerValue(this.rangeStart) : this.normalizedValue);
542
+ return isValidDate(date) ? date : undefined;
543
+ }
544
+ get typeableAllowedCharacters() {
545
+ const formatSeparators = this.normalizedDisplayFormat.replace(/[MDY]/g, '');
546
+ const rangeSeparator = this.isRangeTypeable ? ' -' : '';
547
+ const escapedSeparators = `${formatSeparators}${rangeSeparator}`.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
548
+ return new RegExp(`^[0-9${escapedSeparators}]+$`);
549
+ }
550
+ closeAfterSelection() {
551
+ clearTimeout(this.closeTimeout);
552
+ const closeDelay = Number(this.closeDelay);
553
+ if (!closeDelay || closeDelay <= 0) {
554
+ this.closeCalendar(true, true);
555
+ return;
556
+ }
557
+ this.closeTimeout = setTimeout(() => this.closeCalendar(true, true), closeDelay);
558
+ }
559
+ closeCalendar(returnFocus = true, emitClose = false) {
560
+ var _a;
561
+ if (!this.open)
562
+ return;
563
+ this.open = false;
564
+ if (emitClose)
565
+ this.tctClose.emit();
566
+ if (returnFocus)
567
+ (_a = this.controlElement) === null || _a === void 0 ? void 0 : _a.focus();
568
+ }
569
+ commitSingleValue(value) {
570
+ if (this.committingValue)
571
+ return;
572
+ // Watchers and consumer change handlers may update constraints during either event alias.
573
+ this.committingValue = true;
574
+ try {
575
+ this.value = value;
576
+ mirrorEmit(this, ['change', 'tctChange'], { value });
577
+ }
578
+ finally {
579
+ this.committingValue = false;
580
+ }
581
+ if (this.isSingleTypeable)
582
+ this.syncTypeableValue();
583
+ if (!this.typeableError)
584
+ this.validateCurrentValue();
585
+ }
586
+ emitValidationError(message) {
587
+ if (this.isRangeMode)
588
+ return;
589
+ mirrorEmit(this, ['error', 'tctError'], {
590
+ errors: [{ message, errorCode: 'generalInvalid' }],
591
+ });
592
+ }
593
+ emitValidationSuccess(value) {
594
+ if (this.isRangeMode)
595
+ return;
596
+ mirrorEmit(this, ['success', 'tctSuccess'], { value });
597
+ }
598
+ focusRenderedDate(value) {
599
+ var _a;
600
+ (_a = this.calendarElement) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new CustomEvent('tctCalendarFocus', {
601
+ detail: { value },
602
+ }));
603
+ }
604
+ formatDateWithModifier(date) {
605
+ return formatDisplayDate(date, this.normalizedDisplayFormat);
606
+ }
607
+ formatLongDate(date) {
608
+ return new Intl.DateTimeFormat(this.locale, {
609
+ year: 'numeric',
610
+ month: 'long',
611
+ day: 'numeric',
612
+ }).format(date);
613
+ }
614
+ formatTypeableDate(value) {
615
+ const separator = this.normalizedDisplayFormat.includes('-') ? '-' : '/';
616
+ const dateParts = this.normalizedDisplayFormat.startsWith('YYYY')
617
+ ? [value.slice(0, 4), value.slice(4, 6), value.slice(6, 8)]
618
+ : [value.slice(0, 2), value.slice(2, 4), value.slice(4, 8)];
619
+ return dateParts.filter(Boolean).join(separator);
620
+ }
621
+ isDateValid(date) {
622
+ return isDateSelectable(date, {
623
+ cutoffTime: this.cutoffTime,
624
+ daysOfWeekChecksum: this.daysOfWeekChecksum,
625
+ endDate: normalizeDatePickerValue(this.endDate),
626
+ invalidDates: this.normalizedInvalidDates,
627
+ startDate: normalizeDatePickerValue(this.startDate),
628
+ validDates: this.normalizedValidDates,
629
+ });
630
+ }
631
+ isRangeValid(start, end) {
632
+ return isRangeSelectable(start, end, {
633
+ cutoffTime: this.cutoffTime,
634
+ daysOfWeekChecksum: this.daysOfWeekChecksum,
635
+ endDate: normalizeDatePickerValue(this.endDate),
636
+ invalidDates: this.normalizedInvalidDates,
637
+ startDate: normalizeDatePickerValue(this.startDate),
638
+ validDates: this.normalizedValidDates,
639
+ });
640
+ }
641
+ isTypeableDatePrefixInvalid(digits) {
642
+ const isYearFirst = this.normalizedDisplayFormat.startsWith('YYYY');
643
+ const isDayFirst = this.normalizedDisplayFormat.startsWith('DD');
644
+ const firstPart = isYearFirst ? digits.slice(0, 4) : digits.slice(0, 2);
645
+ const secondPart = isYearFirst ? digits.slice(4, 6) : digits.slice(2, 4);
646
+ const monthPart = isYearFirst || isDayFirst ? secondPart : firstPart;
647
+ const dayPart = isYearFirst ? digits.slice(6, 8) : isDayFirst ? firstPart : secondPart;
648
+ const isSegmentInvalid = (segment, maximum) => {
649
+ if (!segment)
650
+ return false;
651
+ if (segment.length === 1)
652
+ return Number(segment) > Math.floor(maximum / 10);
653
+ const value = Number(segment);
654
+ return value < 1 || value > maximum;
655
+ };
656
+ if (isSegmentInvalid(monthPart, 12) || isSegmentInvalid(dayPart, 31))
657
+ return true;
658
+ if (monthPart.length < 2 || dayPart.length < 2)
659
+ return false;
660
+ return Number(dayPart) > new Date(2000, Number(monthPart), 0).getDate();
661
+ }
662
+ localizeForLocale(value, substitutions = {}) {
663
+ return localizeDatePickerString(value, substitutions);
664
+ }
665
+ normalizeDateList(values) {
666
+ if (!values)
667
+ return;
668
+ // Stable references prevent child constraint watchers from clearing errors on unrelated renders.
669
+ if (!this.normalizedDateLists.has(values)) {
670
+ this.normalizedDateLists.set(values, values.map(value => normalizeDatePickerValue(value)).filter((value) => !!value));
671
+ }
672
+ return this.normalizedDateLists.get(values);
673
+ }
674
+ parseTypeableDate(value) {
675
+ var _a;
676
+ const separator = this.normalizedDisplayFormat.includes('-') ? '-' : '/';
677
+ const escapedSeparator = separator === '-' ? '\\-' : '/';
678
+ const isYearFirst = this.normalizedDisplayFormat.startsWith('YYYY');
679
+ const pattern = isYearFirst
680
+ ? `^\\d{4}${escapedSeparator}\\d{2}${escapedSeparator}\\d{2}$`
681
+ : `^\\d{2}${escapedSeparator}\\d{2}(?:${escapedSeparator}\\d{4})?$`;
682
+ if (!new RegExp(pattern).test(value || ''))
683
+ return;
684
+ const dateParts = value.split(separator);
685
+ const [yearPart, monthPart, dayPart] = isYearFirst
686
+ ? dateParts
687
+ : this.normalizedDisplayFormat.startsWith('DD')
688
+ ? [dateParts[2], dateParts[1], dateParts[0]]
689
+ : [dateParts[2], dateParts[0], dateParts[1]];
690
+ const month = Number(monthPart);
691
+ const day = Number(dayPart);
692
+ const year = yearPart ? Number(yearPart) : (_a = buildInputDate(`${month}/${day}`, this.assume)) === null || _a === void 0 ? void 0 : _a.getFullYear();
693
+ if (!year)
694
+ return;
695
+ const date = new Date(year, month - 1, day);
696
+ if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day)
697
+ return;
698
+ return date;
699
+ }
700
+ /**
701
+ * Recomputes the typeable error from the current `typeableValue`, applying the same range checks the commit path
702
+ * uses so a stale error cannot outlive the text that produced it.
703
+ */
704
+ revalidateTypeableValue() {
705
+ this.validateTypeableValue();
706
+ if (this.typeableError || !this.isRangeTypeable)
707
+ return;
708
+ const [startValue, endValue] = this.typeableValue.split(' - ');
709
+ const start = this.parseTypeableDate(startValue);
710
+ const end = this.parseTypeableDate(endValue);
711
+ if (!start || !end)
712
+ return;
713
+ this.typeableError = this.typeableRangeError(start, end);
714
+ }
715
+ async scrollDownCalendarToTop() {
716
+ var _a;
717
+ if (!this.open || !this.isRangeMode || this.activePopoverDirection !== 'down')
718
+ return;
719
+ await waitForNextPaint();
720
+ await waitForNextPaint();
721
+ if (!this.open || !this.isRangeMode || this.activePopoverDirection !== 'down')
722
+ return;
723
+ await ((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.scrollContainerTo({ top: 0 }));
724
+ }
725
+ async scrollUpCalendarToBottom() {
726
+ var _a;
727
+ if (!this.open || this.activePopoverDirection !== 'up')
728
+ return;
729
+ await waitForNextPaint();
730
+ await waitForNextPaint();
731
+ if (!this.open || this.activePopoverDirection !== 'up')
732
+ return;
733
+ await ((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.scrollContainerTo({ top: Number.MAX_SAFE_INTEGER }));
734
+ }
735
+ setActivePopoverDirection() {
736
+ this.activePopoverDirection = this.effectivePopoverDirection || this.automaticPopoverDirection;
737
+ }
738
+ setTypeableError(error) {
739
+ if (this.typeableError === error)
740
+ return;
741
+ this.typeableError = error;
742
+ if (error)
743
+ this.emitValidationError(error);
744
+ }
745
+ async showActionSheet() {
746
+ var _a, _b;
747
+ const result = (await ((_a = window.TectonElements) === null || _a === void 0 ? void 0 : _a.showActionSheet(this.actionSheetData)));
748
+ (_b = this.controlElement) === null || _b === void 0 ? void 0 : _b.focus();
749
+ if (result === null || result === void 0 ? void 0 : result.error) {
750
+ this.calendarError = result.error;
751
+ this.tctClose.emit({ error: result.error });
752
+ return;
753
+ }
754
+ if (!result || result.type === 'cancel')
755
+ return;
756
+ if (this.isRangeMode) {
757
+ const { rangeStart, rangeEnd } = result;
758
+ if (!rangeStart || !rangeEnd)
759
+ return;
760
+ this.rangeStart = rangeStart;
761
+ this.rangeEnd = rangeEnd;
762
+ mirrorEmit(this, ['change', 'tctChange'], { rangeStart, rangeEnd });
763
+ this.tctClose.emit();
764
+ return;
765
+ }
766
+ if (!result.value)
767
+ return;
768
+ this.commitSingleValue(result.value);
769
+ this.tctClose.emit();
770
+ }
771
+ syncTypeableValue() {
772
+ this.typeableValue = this.formattedTypeableValue;
773
+ this.revalidateTypeableValue();
774
+ }
775
+ toggleCalendar() {
776
+ if (this.disabled || this.readonly)
777
+ return;
778
+ if (shouldShowActionSheet({ hoist: this.hoist })) {
779
+ this.showActionSheet();
780
+ return;
781
+ }
782
+ if (!this.open)
783
+ this.setActivePopoverDirection();
784
+ this.open = !this.open;
785
+ }
786
+ typeableRangeError(start, end) {
787
+ if (start.getTime() > end.getTime())
788
+ return this.rangeOrderValidationError;
789
+ if (!this.isRangeValid(start, end))
790
+ return this.rangeValidationError;
791
+ return '';
792
+ }
793
+ validateCurrentValue(value = this.value) {
794
+ if (!value || this.isRangeMode)
795
+ return;
796
+ const normalizedValue = normalizeDatePickerValue(value);
797
+ const date = parseDatePickerValue(normalizedValue);
798
+ if (!normalizedValue || !isValidDate(date) || !this.isDateValid(date)) {
799
+ this.emitValidationError(`Value passed is invalid: The date ${value} is not valid`);
800
+ return;
801
+ }
802
+ this.emitValidationSuccess(normalizedValue);
803
+ }
804
+ validateTypeableValue() {
805
+ const digits = this.typeableValue.replace(/\D/g, '');
806
+ if (!digits) {
807
+ this.setTypeableError('');
808
+ return;
809
+ }
810
+ const dateParts = this.isRangeTypeable ? [digits.slice(0, 8), digits.slice(8)] : [digits];
811
+ const containsInvalidDate = dateParts.some(part => {
812
+ if (this.isTypeableDatePrefixInvalid(part))
813
+ return true;
814
+ if (part.length !== 8)
815
+ return false;
816
+ const date = this.parseTypeableDate(this.formatTypeableDate(part));
817
+ return !date || !this.isDateValid(date);
818
+ });
819
+ this.setTypeableError(containsInvalidDate
820
+ ? this.isRangeTypeable
821
+ ? this.rangeFormatValidationError
822
+ : this.dateFormatValidationError
823
+ : '');
824
+ }
825
+ // #endregion
826
+ // #region Render Methods
827
+ renderCalendar() {
828
+ return (h("q2-date-calendar", { ref: element => (this.calendarElement = element), class: this._actionSheet ? 'is-action-sheet' : undefined, accessibleLabel: this.calendarLabel || 'Choose a date', actionSheet: this._actionSheet, calendarLabel: this.calendarLabel, cutoffTime: this.cutoffTime, daysOfWeekChecksum: this.daysOfWeekChecksum, direction: this.activePopoverDirection, disabled: this.disabled, disclaimer: this.disclaimer, displayFormat: this.normalizedDisplayFormat, endDate: normalizeDatePickerValue(this.endDate), invalidDates: this.normalizedInvalidDates, locale: this.locale, mode: this.effectiveMode, open: this.open, rangeEnd: normalizeDatePickerValue(this.rangeEnd), rangeStart: normalizeDatePickerValue(this.rangeStart), readonly: this.readonly, startDate: normalizeDatePickerValue(this.startDate), validDates: this.normalizedValidDates, value: this.normalizedValue, onTctCalendarCancel: this.onCalendarCancel, onTctCalendarCommit: this.onCalendarCommit, onTctCalendarDismiss: this.onCalendarDismiss, onTctCalendarError: this.onCalendarError }));
829
+ }
830
+ render() {
831
+ if (this._actionSheet)
832
+ return this.renderCalendar();
833
+ return (h("click-elsewhere", { class: this.open ? 'dropdown-open' : undefined, onChange: this.onClickElsewhere }, h("q2-input", { ref: element => (this.controlElement = element), class: "date-picker-input", clearable: this.canClear, disabled: this.disabled, errors: this.computedErrors, hideLabel: this.hideLabel, hints: this.hints, readonly: this.readonly, optional: this.optional, valid: this.valid, value: this.acceptsTypeableInput ? this.typeableValue : this.formattedValue, label: loc(this.label), placeholder: this.computedPlaceholder, "icon-right": this.acceptsTypeableInput ? undefined : 'calendar', autocomplete: "off", maxlength: this.isRangeTypeable ? 23 : this.isSingleTypeable ? 10 : undefined, "aria-haspopup": "dialog", "aria-expanded": `${this.open}`, "aria-controls": "date-picker-popover", onClick: this.acceptsTypeableInput ? undefined : this.onInputClick, onChange: event => event.stopImmediatePropagation(), onTctChange: this.acceptsTypeableInput ? this.onTypeableChange : event => event.stopImmediatePropagation(), onInput: event => event.stopImmediatePropagation(), onTctInput: this.acceptsTypeableInput ? this.onTypeableInput : event => event.stopImmediatePropagation(), onTctClear: this.onClear, onKeyDown: this.onInputKeydown, "test-id": "datePickerToggle", _preventEntry: !this.acceptsTypeableInput }, hasSlotContent(this.hostElement, 'label') && (h("slot", { name: "label", slot: "label" })), this.acceptsTypeableInput && (h("q2-btn", { slot: "input-right", "hide-label": true, disabled: this.disabled || this.readonly, label: "tecton.element.calendar.toggleAriaLabel", onClick: this.onCalendarToggleClick, "test-id": "datePickerCalendarToggle" }, h("q2-icon", { type: "calendar" })))), h("q2-popover", { ref: element => (this.popoverElement = element), id: "date-picker-popover", controlElement: this.controlElement, open: this.open, direction: this.effectivePopoverDirection, align: this.popoverAlignment, minHeight: this.popoverMinHeight, mode: this.popoverMode || undefined }, this.renderCalendar())));
834
+ }
835
+ static get is() { return "q2-date-picker"; }
836
+ static get encapsulation() { return "shadow"; }
837
+ static get originalStyleUrls() {
838
+ return {
839
+ "$": ["q2-date-picker.scss"]
840
+ };
841
+ }
842
+ static get styleUrls() {
843
+ return {
844
+ "$": ["q2-date-picker.css"]
845
+ };
846
+ }
847
+ static get properties() {
848
+ return {
849
+ "_actionSheet": {
850
+ "type": "boolean",
851
+ "mutable": false,
852
+ "complexType": {
853
+ "original": "boolean",
854
+ "resolved": "boolean",
855
+ "references": {}
856
+ },
857
+ "required": false,
858
+ "optional": false,
859
+ "docs": {
860
+ "tags": [{
861
+ "name": "private",
862
+ "text": undefined
863
+ }],
864
+ "text": "Renders the calendar panel inline with behavior specific to being hosted by `q2-action-sheet`."
865
+ },
866
+ "getter": false,
867
+ "setter": false,
868
+ "reflect": false,
869
+ "attribute": "_action-sheet",
870
+ "defaultValue": "false"
871
+ },
872
+ "assume": {
873
+ "type": "string",
874
+ "mutable": false,
875
+ "complexType": {
876
+ "original": "'current' | 'future' | 'past'",
877
+ "resolved": "\"current\" | \"future\" | \"past\"",
878
+ "references": {}
879
+ },
880
+ "required": false,
881
+ "optional": false,
882
+ "docs": {
883
+ "tags": [],
884
+ "text": "Determines the year for a committed month/day typeable date with no year.\n`future` selects the next year for dates before today, while `past` selects the prior year for dates after today.\nOnly applies to `single-typeable` mode with a month-first or day-first display format."
885
+ },
886
+ "getter": false,
887
+ "setter": false,
888
+ "reflect": true,
889
+ "attribute": "assume",
890
+ "defaultValue": "'current'"
891
+ },
892
+ "calendarLabel": {
893
+ "type": "string",
894
+ "mutable": false,
895
+ "complexType": {
896
+ "original": "string",
897
+ "resolved": "string",
898
+ "references": {}
899
+ },
900
+ "required": false,
901
+ "optional": false,
902
+ "docs": {
903
+ "tags": [],
904
+ "text": "A label shown above the date picker navigation."
905
+ },
906
+ "getter": false,
907
+ "setter": false,
908
+ "reflect": true,
909
+ "attribute": "calendar-label"
910
+ },
911
+ "clearable": {
912
+ "type": "boolean",
913
+ "mutable": false,
914
+ "complexType": {
915
+ "original": "boolean",
916
+ "resolved": "boolean",
917
+ "references": {}
918
+ },
919
+ "required": false,
920
+ "optional": false,
921
+ "docs": {
922
+ "tags": [],
923
+ "text": "Displays a button in the input field allowing the user to clear the selected date or range."
924
+ },
925
+ "getter": false,
926
+ "setter": false,
927
+ "reflect": true,
928
+ "attribute": "clearable",
929
+ "defaultValue": "false"
930
+ },
931
+ "closeDelay": {
932
+ "type": "number",
933
+ "mutable": false,
934
+ "complexType": {
935
+ "original": "number | undefined",
936
+ "resolved": "number",
937
+ "references": {}
938
+ },
939
+ "required": false,
940
+ "optional": false,
941
+ "docs": {
942
+ "tags": [],
943
+ "text": "Delay in milliseconds before the popover closes after selection. Explicitly undefined or non-positive values close immediately."
944
+ },
945
+ "getter": false,
946
+ "setter": false,
947
+ "reflect": true,
948
+ "attribute": "close-delay",
949
+ "defaultValue": "400"
950
+ },
951
+ "cutoffTime": {
952
+ "type": "string",
953
+ "mutable": false,
954
+ "complexType": {
955
+ "original": "string",
956
+ "resolved": "string",
957
+ "references": {}
958
+ },
959
+ "required": false,
960
+ "optional": false,
961
+ "docs": {
962
+ "tags": [{
963
+ "name": "warning",
964
+ "text": "Must be a valid ISO date string."
965
+ }],
966
+ "text": "Specifies a time of day after which a date is no longer valid."
967
+ },
968
+ "getter": false,
969
+ "setter": false,
970
+ "reflect": true,
971
+ "attribute": "cutoff-time"
972
+ },
973
+ "daysOfWeekChecksum": {
974
+ "type": "number",
975
+ "mutable": false,
976
+ "complexType": {
977
+ "original": "number",
978
+ "resolved": "number",
979
+ "references": {}
980
+ },
981
+ "required": false,
982
+ "optional": false,
983
+ "docs": {
984
+ "tags": [],
985
+ "text": "Defines valid days of the week using the calendar checksum values.\n\nSunday begins at `1` and each following day doubles through Saturday at `64`."
986
+ },
987
+ "getter": false,
988
+ "setter": false,
989
+ "reflect": true,
990
+ "attribute": "days-of-week-checksum"
991
+ },
992
+ "disabled": {
993
+ "type": "boolean",
994
+ "mutable": false,
995
+ "complexType": {
996
+ "original": "boolean",
997
+ "resolved": "boolean",
998
+ "references": {}
999
+ },
1000
+ "required": false,
1001
+ "optional": false,
1002
+ "docs": {
1003
+ "tags": [],
1004
+ "text": "Indicates the date picker cannot be focused or interacted with."
1005
+ },
1006
+ "getter": false,
1007
+ "setter": false,
1008
+ "reflect": true,
1009
+ "attribute": "disabled",
1010
+ "defaultValue": "false"
1011
+ },
1012
+ "disabledMsg": {
1013
+ "type": "string",
1014
+ "mutable": false,
1015
+ "complexType": {
1016
+ "original": "string",
1017
+ "resolved": "string",
1018
+ "references": {}
1019
+ },
1020
+ "required": false,
1021
+ "optional": false,
1022
+ "docs": {
1023
+ "tags": [],
1024
+ "text": "Text displayed as the input placeholder when the field is disabled."
1025
+ },
1026
+ "getter": false,
1027
+ "setter": false,
1028
+ "reflect": true,
1029
+ "attribute": "disabled-msg"
1030
+ },
1031
+ "disclaimer": {
1032
+ "type": "string",
1033
+ "mutable": false,
1034
+ "complexType": {
1035
+ "original": "string",
1036
+ "resolved": "string",
1037
+ "references": {}
1038
+ },
1039
+ "required": false,
1040
+ "optional": false,
1041
+ "docs": {
1042
+ "tags": [],
1043
+ "text": "Text shown below the date grid."
1044
+ },
1045
+ "getter": false,
1046
+ "setter": false,
1047
+ "reflect": true,
1048
+ "attribute": "disclaimer"
1049
+ },
1050
+ "displayFormat": {
1051
+ "type": "string",
1052
+ "mutable": false,
1053
+ "complexType": {
1054
+ "original": "string",
1055
+ "resolved": "string",
1056
+ "references": {}
1057
+ },
1058
+ "required": false,
1059
+ "optional": true,
1060
+ "docs": {
1061
+ "tags": [],
1062
+ "text": "Formats the displayed date using legacy Moment-style tokens. Typeable modes support the numeric formats defined\nby `DatePickerDisplayFormat` and fall back to `MM/DD/YYYY` for other formats."
1063
+ },
1064
+ "getter": false,
1065
+ "setter": false,
1066
+ "reflect": true,
1067
+ "attribute": "display-format"
1068
+ },
1069
+ "endDate": {
1070
+ "type": "string",
1071
+ "mutable": false,
1072
+ "complexType": {
1073
+ "original": "string",
1074
+ "resolved": "string",
1075
+ "references": {}
1076
+ },
1077
+ "required": false,
1078
+ "optional": false,
1079
+ "docs": {
1080
+ "tags": [],
1081
+ "text": "Defines the last selectable date. ISO date strings are preferred; legacy date strings and\ntimestamps are normalized to their calendar date, without shifting timestamp time zones."
1082
+ },
1083
+ "getter": false,
1084
+ "setter": false,
1085
+ "reflect": true,
1086
+ "attribute": "end-date"
1087
+ },
1088
+ "errors": {
1089
+ "type": "unknown",
1090
+ "mutable": true,
1091
+ "complexType": {
1092
+ "original": "string[]",
1093
+ "resolved": "string[]",
1094
+ "references": {}
1095
+ },
1096
+ "required": false,
1097
+ "optional": false,
1098
+ "docs": {
1099
+ "tags": [],
1100
+ "text": "Consumer-provided error messages displayed below the input field."
1101
+ },
1102
+ "getter": false,
1103
+ "setter": false
1104
+ },
1105
+ "hideLabel": {
1106
+ "type": "boolean",
1107
+ "mutable": true,
1108
+ "complexType": {
1109
+ "original": "boolean",
1110
+ "resolved": "boolean",
1111
+ "references": {}
1112
+ },
1113
+ "required": false,
1114
+ "optional": false,
1115
+ "docs": {
1116
+ "tags": [{
1117
+ "name": "warning",
1118
+ "text": "Hides the label visually. `label` text is still required for screenreader compliance."
1119
+ }],
1120
+ "text": "Hides the input field's visible label while retaining its accessible name."
1121
+ },
1122
+ "getter": false,
1123
+ "setter": false,
1124
+ "reflect": true,
1125
+ "attribute": "hide-label",
1126
+ "defaultValue": "false"
1127
+ },
1128
+ "hints": {
1129
+ "type": "unknown",
1130
+ "mutable": true,
1131
+ "complexType": {
1132
+ "original": "string[]",
1133
+ "resolved": "string[]",
1134
+ "references": {}
1135
+ },
1136
+ "required": false,
1137
+ "optional": false,
1138
+ "docs": {
1139
+ "tags": [],
1140
+ "text": "Consumer-provided hint messages displayed below the input field."
1141
+ },
1142
+ "getter": false,
1143
+ "setter": false
1144
+ },
1145
+ "hoist": {
1146
+ "type": "boolean",
1147
+ "mutable": false,
1148
+ "complexType": {
1149
+ "original": "boolean | undefined",
1150
+ "resolved": "boolean",
1151
+ "references": {}
1152
+ },
1153
+ "required": false,
1154
+ "optional": false,
1155
+ "docs": {
1156
+ "tags": [],
1157
+ "text": "Instructs the component to use the action sheet workflow for displaying its calendar.\n\nFor more information, see [Action Sheets](https://tecton.q2developer.com/guides/action-sheets/)."
1158
+ },
1159
+ "getter": false,
1160
+ "setter": false,
1161
+ "reflect": false,
1162
+ "attribute": "hoist",
1163
+ "defaultValue": "window.Tecton?.useActionSheets ? true : undefined"
1164
+ },
1165
+ "invalid": {
1166
+ "type": "boolean",
1167
+ "mutable": true,
1168
+ "complexType": {
1169
+ "original": "boolean",
1170
+ "resolved": "boolean",
1171
+ "references": {}
1172
+ },
1173
+ "required": false,
1174
+ "optional": false,
1175
+ "docs": {
1176
+ "tags": [],
1177
+ "text": "Shows the input field's error visual state."
1178
+ },
1179
+ "getter": false,
1180
+ "setter": false,
1181
+ "reflect": true,
1182
+ "attribute": "invalid",
1183
+ "defaultValue": "false"
1184
+ },
1185
+ "invalidDates": {
1186
+ "type": "unknown",
1187
+ "mutable": false,
1188
+ "complexType": {
1189
+ "original": "string[]",
1190
+ "resolved": "string[]",
1191
+ "references": {}
1192
+ },
1193
+ "required": false,
1194
+ "optional": false,
1195
+ "docs": {
1196
+ "tags": [],
1197
+ "text": "Defines an explicit date blacklist. ISO dates, legacy date strings, and timestamps are normalized to calendar dates.\n\nAssign a new array when changing this property. Mutating the existing array does not trigger validation updates."
1198
+ },
1199
+ "getter": false,
1200
+ "setter": false
1201
+ },
1202
+ "label": {
1203
+ "type": "string",
1204
+ "mutable": true,
1205
+ "complexType": {
1206
+ "original": "string",
1207
+ "resolved": "string",
1208
+ "references": {}
1209
+ },
1210
+ "required": false,
1211
+ "optional": false,
1212
+ "docs": {
1213
+ "tags": [{
1214
+ "name": "warning",
1215
+ "text": "Required for screen reader compliance even when `hideLabel` is `true`."
1216
+ }],
1217
+ "text": "The visible label for the date picker input field."
1218
+ },
1219
+ "getter": false,
1220
+ "setter": false,
1221
+ "reflect": true,
1222
+ "attribute": "label"
1223
+ },
1224
+ "locale": {
1225
+ "type": "string",
1226
+ "mutable": false,
1227
+ "complexType": {
1228
+ "original": "string | string[]",
1229
+ "resolved": "string | string[]",
1230
+ "references": {}
1231
+ },
1232
+ "required": false,
1233
+ "optional": false,
1234
+ "docs": {
1235
+ "tags": [],
1236
+ "text": "Formats selected dates using the provided locale. Accepts multiple locales in an array as sequential fallbacks."
1237
+ },
1238
+ "getter": false,
1239
+ "setter": false,
1240
+ "reflect": true,
1241
+ "attribute": "locale",
1242
+ "defaultValue": "document.documentElement.lang || 'en-US'"
1243
+ },
1244
+ "mode": {
1245
+ "type": "string",
1246
+ "mutable": false,
1247
+ "complexType": {
1248
+ "original": "DatePickerMode",
1249
+ "resolved": "\"range\" | \"range-typeable\" | \"single\" | \"single-typeable\"",
1250
+ "references": {
1251
+ "DatePickerMode": {
1252
+ "location": "import",
1253
+ "path": "@/utils/date-picker/date-picker-types",
1254
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerMode",
1255
+ "referenceLocation": "DatePickerMode"
1256
+ }
1257
+ }
1258
+ },
1259
+ "required": false,
1260
+ "optional": false,
1261
+ "docs": {
1262
+ "tags": [],
1263
+ "text": "Selects calendar or typeable behavior for a single date or date range.\nEnabling the legacy `typeable` prop uses `single-typeable` when `mode` is left at its default; an explicit mode takes precedence."
1264
+ },
1265
+ "getter": false,
1266
+ "setter": false,
1267
+ "reflect": true,
1268
+ "attribute": "mode",
1269
+ "defaultValue": "'single'"
1270
+ },
1271
+ "open": {
1272
+ "type": "boolean",
1273
+ "mutable": true,
1274
+ "complexType": {
1275
+ "original": "boolean",
1276
+ "resolved": "boolean",
1277
+ "references": {}
1278
+ },
1279
+ "required": false,
1280
+ "optional": false,
1281
+ "docs": {
1282
+ "tags": [],
1283
+ "text": "Controls whether the date picker popover is open or closed."
1284
+ },
1285
+ "getter": false,
1286
+ "setter": false,
1287
+ "reflect": true,
1288
+ "attribute": "open",
1289
+ "defaultValue": "false"
1290
+ },
1291
+ "optional": {
1292
+ "type": "boolean",
1293
+ "mutable": false,
1294
+ "complexType": {
1295
+ "original": "boolean",
1296
+ "resolved": "boolean",
1297
+ "references": {}
1298
+ },
1299
+ "required": false,
1300
+ "optional": false,
1301
+ "docs": {
1302
+ "tags": [],
1303
+ "text": "Appends \"(optional)\" to the input label and marks the field as not required."
1304
+ },
1305
+ "getter": false,
1306
+ "setter": false,
1307
+ "reflect": true,
1308
+ "attribute": "optional",
1309
+ "defaultValue": "false"
1310
+ },
1311
+ "placeholder": {
1312
+ "type": "string",
1313
+ "mutable": false,
1314
+ "complexType": {
1315
+ "original": "string",
1316
+ "resolved": "string",
1317
+ "references": {}
1318
+ },
1319
+ "required": false,
1320
+ "optional": false,
1321
+ "docs": {
1322
+ "tags": [],
1323
+ "text": "Text shown in the input field when no date is selected."
1324
+ },
1325
+ "getter": false,
1326
+ "setter": false,
1327
+ "reflect": true,
1328
+ "attribute": "placeholder"
1329
+ },
1330
+ "popDirection": {
1331
+ "type": "string",
1332
+ "mutable": false,
1333
+ "complexType": {
1334
+ "original": "'up' | 'down'",
1335
+ "resolved": "\"down\" | \"up\"",
1336
+ "references": {}
1337
+ },
1338
+ "required": false,
1339
+ "optional": false,
1340
+ "docs": {
1341
+ "tags": [{
1342
+ "name": "deprecated",
1343
+ "text": "Use `popoverDirection` instead."
1344
+ }],
1345
+ "text": "Forces the direction of the popover when it opens."
1346
+ },
1347
+ "getter": false,
1348
+ "setter": false,
1349
+ "reflect": true,
1350
+ "attribute": "pop-direction"
1351
+ },
1352
+ "popoverAlignment": {
1353
+ "type": "string",
1354
+ "mutable": false,
1355
+ "complexType": {
1356
+ "original": "'left' | 'right'",
1357
+ "resolved": "\"left\" | \"right\"",
1358
+ "references": {}
1359
+ },
1360
+ "required": false,
1361
+ "optional": false,
1362
+ "docs": {
1363
+ "tags": [],
1364
+ "text": "Aligns the calendar popover to the left or right side of the input field."
1365
+ },
1366
+ "getter": false,
1367
+ "setter": false,
1368
+ "reflect": true,
1369
+ "attribute": "popover-alignment",
1370
+ "defaultValue": "'left'"
1371
+ },
1372
+ "popoverDirection": {
1373
+ "type": "string",
1374
+ "mutable": false,
1375
+ "complexType": {
1376
+ "original": "'up' | 'down'",
1377
+ "resolved": "\"down\" | \"up\"",
1378
+ "references": {}
1379
+ },
1380
+ "required": false,
1381
+ "optional": false,
1382
+ "docs": {
1383
+ "tags": [],
1384
+ "text": "Forces the direction of the popover when it opens.\n\nIf no value is passed, the popover automatically selects a direction based on available space.\nUse `up` to place navigation below the date grid."
1385
+ },
1386
+ "getter": false,
1387
+ "setter": false,
1388
+ "reflect": true,
1389
+ "attribute": "popover-direction"
1390
+ },
1391
+ "popoverMinHeight": {
1392
+ "type": "number",
1393
+ "mutable": false,
1394
+ "complexType": {
1395
+ "original": "number",
1396
+ "resolved": "number",
1397
+ "references": {}
1398
+ },
1399
+ "required": false,
1400
+ "optional": false,
1401
+ "docs": {
1402
+ "tags": [{
1403
+ "name": "deprecated",
1404
+ "text": "Retained for compatibility with `q2-date-picker`."
1405
+ }],
1406
+ "text": ""
1407
+ },
1408
+ "getter": false,
1409
+ "setter": false,
1410
+ "reflect": false,
1411
+ "attribute": "popover-min-height",
1412
+ "defaultValue": "355"
1413
+ },
1414
+ "popoverMode": {
1415
+ "type": "string",
1416
+ "mutable": true,
1417
+ "complexType": {
1418
+ "original": "'legacy'",
1419
+ "resolved": "\"legacy\"",
1420
+ "references": {}
1421
+ },
1422
+ "required": false,
1423
+ "optional": false,
1424
+ "docs": {
1425
+ "tags": [],
1426
+ "text": "Uses absolute positioning for the popover when set to `legacy`.\n\nThis compatibility option supports layouts where transformed ancestors interfere with fixed positioning."
1427
+ },
1428
+ "getter": false,
1429
+ "setter": false,
1430
+ "reflect": false,
1431
+ "attribute": "popover-mode",
1432
+ "defaultValue": "null"
1433
+ },
1434
+ "rangeEnd": {
1435
+ "type": "string",
1436
+ "mutable": true,
1437
+ "complexType": {
1438
+ "original": "string",
1439
+ "resolved": "string",
1440
+ "references": {}
1441
+ },
1442
+ "required": false,
1443
+ "optional": false,
1444
+ "docs": {
1445
+ "tags": [],
1446
+ "text": "The selected range end. ISO dates, legacy date strings, and timestamps are accepted."
1447
+ },
1448
+ "getter": false,
1449
+ "setter": false,
1450
+ "reflect": true,
1451
+ "attribute": "range-end"
1452
+ },
1453
+ "rangeStart": {
1454
+ "type": "string",
1455
+ "mutable": true,
1456
+ "complexType": {
1457
+ "original": "string",
1458
+ "resolved": "string",
1459
+ "references": {}
1460
+ },
1461
+ "required": false,
1462
+ "optional": false,
1463
+ "docs": {
1464
+ "tags": [],
1465
+ "text": "The selected range start. ISO dates, legacy date strings, and timestamps are accepted."
1466
+ },
1467
+ "getter": false,
1468
+ "setter": false,
1469
+ "reflect": true,
1470
+ "attribute": "range-start"
1471
+ },
1472
+ "readonly": {
1473
+ "type": "boolean",
1474
+ "mutable": false,
1475
+ "complexType": {
1476
+ "original": "boolean",
1477
+ "resolved": "boolean",
1478
+ "references": {}
1479
+ },
1480
+ "required": false,
1481
+ "optional": false,
1482
+ "docs": {
1483
+ "tags": [],
1484
+ "text": "The field's content is not editable, but the field remains focusable.\n\nAppends \"(read only)\" to the field label."
1485
+ },
1486
+ "getter": false,
1487
+ "setter": false,
1488
+ "reflect": true,
1489
+ "attribute": "readonly",
1490
+ "defaultValue": "false"
1491
+ },
1492
+ "startDate": {
1493
+ "type": "string",
1494
+ "mutable": false,
1495
+ "complexType": {
1496
+ "original": "string",
1497
+ "resolved": "string",
1498
+ "references": {}
1499
+ },
1500
+ "required": false,
1501
+ "optional": false,
1502
+ "docs": {
1503
+ "tags": [],
1504
+ "text": "Defines the first selectable date. ISO date strings are preferred; legacy date strings and\ntimestamps are normalized to their calendar date, without shifting timestamp time zones."
1505
+ },
1506
+ "getter": false,
1507
+ "setter": false,
1508
+ "reflect": true,
1509
+ "attribute": "start-date"
1510
+ },
1511
+ "typeable": {
1512
+ "type": "boolean",
1513
+ "mutable": false,
1514
+ "complexType": {
1515
+ "original": "boolean",
1516
+ "resolved": "boolean",
1517
+ "references": {}
1518
+ },
1519
+ "required": false,
1520
+ "optional": false,
1521
+ "docs": {
1522
+ "tags": [],
1523
+ "text": "Enables the legacy single-date typeable input behavior."
1524
+ },
1525
+ "getter": false,
1526
+ "setter": false,
1527
+ "reflect": true,
1528
+ "attribute": "typeable",
1529
+ "defaultValue": "false"
1530
+ },
1531
+ "valid": {
1532
+ "type": "boolean",
1533
+ "mutable": false,
1534
+ "complexType": {
1535
+ "original": "boolean",
1536
+ "resolved": "boolean",
1537
+ "references": {}
1538
+ },
1539
+ "required": false,
1540
+ "optional": false,
1541
+ "docs": {
1542
+ "tags": [],
1543
+ "text": "Shows the input field's success visual state when no errors are active."
1544
+ },
1545
+ "getter": false,
1546
+ "setter": false,
1547
+ "reflect": true,
1548
+ "attribute": "valid",
1549
+ "defaultValue": "false"
1550
+ },
1551
+ "validDates": {
1552
+ "type": "unknown",
1553
+ "mutable": false,
1554
+ "complexType": {
1555
+ "original": "string[]",
1556
+ "resolved": "string[]",
1557
+ "references": {}
1558
+ },
1559
+ "required": false,
1560
+ "optional": false,
1561
+ "docs": {
1562
+ "tags": [],
1563
+ "text": "Defines an explicit date whitelist. ISO dates, legacy date strings, and timestamps are normalized to calendar dates.\n\nAssign a new array when changing this property. Mutating the existing array does not trigger validation updates."
1564
+ },
1565
+ "getter": false,
1566
+ "setter": false
1567
+ },
1568
+ "value": {
1569
+ "type": "string",
1570
+ "mutable": true,
1571
+ "complexType": {
1572
+ "original": "DatePickerValue",
1573
+ "resolved": "DatePickerMomentLike | string",
1574
+ "references": {
1575
+ "DatePickerValue": {
1576
+ "location": "import",
1577
+ "path": "@/utils/date-picker/date-picker-types",
1578
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerValue",
1579
+ "referenceLocation": "DatePickerValue"
1580
+ }
1581
+ }
1582
+ },
1583
+ "required": false,
1584
+ "optional": false,
1585
+ "docs": {
1586
+ "tags": [],
1587
+ "text": "The selected date. ISO date strings are preferred; legacy date strings and Moment-like values are normalized to\nan ISO date string."
1588
+ },
1589
+ "getter": false,
1590
+ "setter": false,
1591
+ "reflect": true,
1592
+ "attribute": "value"
1593
+ }
1594
+ };
1595
+ }
1596
+ static get states() {
1597
+ return {
1598
+ "activePopoverDirection": {},
1599
+ "calendarError": {},
1600
+ "typeableError": {},
1601
+ "typeableValue": {}
1602
+ };
1603
+ }
1604
+ static get events() {
1605
+ return [{
1606
+ "method": "change",
1607
+ "name": "change",
1608
+ "bubbles": true,
1609
+ "cancelable": true,
1610
+ "composed": true,
1611
+ "docs": {
1612
+ "tags": [{
1613
+ "name": "legacyEvent",
1614
+ "text": undefined
1615
+ }, {
1616
+ "name": "deprecated",
1617
+ "text": "Use `tctChange` instead."
1618
+ }],
1619
+ "text": "Emitted when a date is selected."
1620
+ },
1621
+ "complexType": {
1622
+ "original": "DatePickerChangeDetail",
1623
+ "resolved": "DatePickerChangeDetail",
1624
+ "references": {
1625
+ "DatePickerChangeDetail": {
1626
+ "location": "import",
1627
+ "path": "@/utils/date-picker/date-picker-types",
1628
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerChangeDetail",
1629
+ "referenceLocation": "DatePickerChangeDetail"
1630
+ }
1631
+ }
1632
+ }
1633
+ }, {
1634
+ "method": "error",
1635
+ "name": "error",
1636
+ "bubbles": true,
1637
+ "cancelable": true,
1638
+ "composed": true,
1639
+ "docs": {
1640
+ "tags": [{
1641
+ "name": "deprecated",
1642
+ "text": "Use `tctError` instead."
1643
+ }],
1644
+ "text": "Emitted when an invalid single date is entered or assigned."
1645
+ },
1646
+ "complexType": {
1647
+ "original": "DatePickerErrorDetail",
1648
+ "resolved": "DatePickerErrorDetail",
1649
+ "references": {
1650
+ "DatePickerErrorDetail": {
1651
+ "location": "import",
1652
+ "path": "@/utils/date-picker/date-picker-types",
1653
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerErrorDetail",
1654
+ "referenceLocation": "DatePickerErrorDetail"
1655
+ }
1656
+ }
1657
+ }
1658
+ }, {
1659
+ "method": "success",
1660
+ "name": "success",
1661
+ "bubbles": true,
1662
+ "cancelable": true,
1663
+ "composed": true,
1664
+ "docs": {
1665
+ "tags": [{
1666
+ "name": "deprecated",
1667
+ "text": "Use `tctSuccess` instead."
1668
+ }],
1669
+ "text": "Emitted when a valid single date is entered, selected, or assigned."
1670
+ },
1671
+ "complexType": {
1672
+ "original": "DatePickerSuccessDetail",
1673
+ "resolved": "DatePickerSuccessDetail",
1674
+ "references": {
1675
+ "DatePickerSuccessDetail": {
1676
+ "location": "import",
1677
+ "path": "@/utils/date-picker/date-picker-types",
1678
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerSuccessDetail",
1679
+ "referenceLocation": "DatePickerSuccessDetail"
1680
+ }
1681
+ }
1682
+ }
1683
+ }, {
1684
+ "method": "tctCancel",
1685
+ "name": "tctCancel",
1686
+ "bubbles": true,
1687
+ "cancelable": true,
1688
+ "composed": true,
1689
+ "docs": {
1690
+ "tags": [],
1691
+ "text": "Emitted when an action-sheet date range is cancelled."
1692
+ },
1693
+ "complexType": {
1694
+ "original": "void",
1695
+ "resolved": "void",
1696
+ "references": {}
1697
+ }
1698
+ }, {
1699
+ "method": "tctChange",
1700
+ "name": "tctChange",
1701
+ "bubbles": true,
1702
+ "cancelable": true,
1703
+ "composed": true,
1704
+ "docs": {
1705
+ "tags": [],
1706
+ "text": "Emitted when a date is selected."
1707
+ },
1708
+ "complexType": {
1709
+ "original": "DatePickerChangeDetail",
1710
+ "resolved": "DatePickerChangeDetail",
1711
+ "references": {
1712
+ "DatePickerChangeDetail": {
1713
+ "location": "import",
1714
+ "path": "@/utils/date-picker/date-picker-types",
1715
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerChangeDetail",
1716
+ "referenceLocation": "DatePickerChangeDetail"
1717
+ }
1718
+ }
1719
+ }
1720
+ }, {
1721
+ "method": "tctClose",
1722
+ "name": "tctClose",
1723
+ "bubbles": true,
1724
+ "cancelable": true,
1725
+ "composed": true,
1726
+ "docs": {
1727
+ "tags": [],
1728
+ "text": "Emitted when the picker closes after confirmation. Includes validation details when confirmation fails."
1729
+ },
1730
+ "complexType": {
1731
+ "original": "DatePickerCloseDetail | void",
1732
+ "resolved": "DatePickerCloseDetail | void",
1733
+ "references": {
1734
+ "DatePickerCloseDetail": {
1735
+ "location": "import",
1736
+ "path": "@/utils/date-picker/date-picker-types",
1737
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerCloseDetail",
1738
+ "referenceLocation": "DatePickerCloseDetail"
1739
+ }
1740
+ }
1741
+ }
1742
+ }, {
1743
+ "method": "tctError",
1744
+ "name": "tctError",
1745
+ "bubbles": true,
1746
+ "cancelable": true,
1747
+ "composed": true,
1748
+ "docs": {
1749
+ "tags": [],
1750
+ "text": "Emitted when an invalid single date is entered or assigned."
1751
+ },
1752
+ "complexType": {
1753
+ "original": "DatePickerErrorDetail",
1754
+ "resolved": "DatePickerErrorDetail",
1755
+ "references": {
1756
+ "DatePickerErrorDetail": {
1757
+ "location": "import",
1758
+ "path": "@/utils/date-picker/date-picker-types",
1759
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerErrorDetail",
1760
+ "referenceLocation": "DatePickerErrorDetail"
1761
+ }
1762
+ }
1763
+ }
1764
+ }, {
1765
+ "method": "tctSuccess",
1766
+ "name": "tctSuccess",
1767
+ "bubbles": true,
1768
+ "cancelable": true,
1769
+ "composed": true,
1770
+ "docs": {
1771
+ "tags": [],
1772
+ "text": "Emitted when a valid single date is entered, selected, or assigned."
1773
+ },
1774
+ "complexType": {
1775
+ "original": "DatePickerSuccessDetail",
1776
+ "resolved": "DatePickerSuccessDetail",
1777
+ "references": {
1778
+ "DatePickerSuccessDetail": {
1779
+ "location": "import",
1780
+ "path": "@/utils/date-picker/date-picker-types",
1781
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerSuccessDetail",
1782
+ "referenceLocation": "DatePickerSuccessDetail"
1783
+ }
1784
+ }
1785
+ }
1786
+ }];
1787
+ }
1788
+ static get methods() {
1789
+ return {
1790
+ "closePopover": {
1791
+ "complexType": {
1792
+ "signature": "() => Promise<void>",
1793
+ "parameters": [],
1794
+ "references": {
1795
+ "Promise": {
1796
+ "location": "global",
1797
+ "id": "global::Promise"
1798
+ }
1799
+ },
1800
+ "return": "Promise<void>"
1801
+ },
1802
+ "docs": {
1803
+ "text": "Closes the calendar popover if it is open.",
1804
+ "tags": []
1805
+ }
1806
+ },
1807
+ "focusDate": {
1808
+ "complexType": {
1809
+ "signature": "(date: Date) => Promise<void>",
1810
+ "parameters": [{
1811
+ "name": "date",
1812
+ "type": "Date",
1813
+ "docs": ""
1814
+ }],
1815
+ "references": {
1816
+ "Promise": {
1817
+ "location": "global",
1818
+ "id": "global::Promise"
1819
+ },
1820
+ "Date": {
1821
+ "location": "global",
1822
+ "id": "global::Date"
1823
+ }
1824
+ },
1825
+ "return": "Promise<void>"
1826
+ },
1827
+ "docs": {
1828
+ "text": "Moves the visible month to the provided date and focuses that day.",
1829
+ "tags": []
1830
+ }
1831
+ },
1832
+ "openPopover": {
1833
+ "complexType": {
1834
+ "signature": "() => Promise<void>",
1835
+ "parameters": [],
1836
+ "references": {
1837
+ "Promise": {
1838
+ "location": "global",
1839
+ "id": "global::Promise"
1840
+ },
1841
+ "HTMLQ2BtnElement": {
1842
+ "location": "global",
1843
+ "id": "global::HTMLQ2BtnElement"
1844
+ }
1845
+ },
1846
+ "return": "Promise<void>"
1847
+ },
1848
+ "docs": {
1849
+ "text": "Opens the calendar popover if it is closed.",
1850
+ "tags": []
1851
+ }
1852
+ },
1853
+ "reset": {
1854
+ "complexType": {
1855
+ "signature": "() => Promise<void>",
1856
+ "parameters": [],
1857
+ "references": {
1858
+ "Promise": {
1859
+ "location": "global",
1860
+ "id": "global::Promise"
1861
+ }
1862
+ },
1863
+ "return": "Promise<void>"
1864
+ },
1865
+ "docs": {
1866
+ "text": "Clears selected values, uncommitted typeable input, and error state without changing configuration props.",
1867
+ "tags": []
1868
+ }
1869
+ },
1870
+ "setValue": {
1871
+ "complexType": {
1872
+ "signature": "(value: string | Date | DatePickerMomentLike) => Promise<void>",
1873
+ "parameters": [{
1874
+ "name": "value",
1875
+ "type": "string | Date | DatePickerMomentLike",
1876
+ "docs": ""
1877
+ }],
1878
+ "references": {
1879
+ "Promise": {
1880
+ "location": "global",
1881
+ "id": "global::Promise"
1882
+ },
1883
+ "Date": {
1884
+ "location": "global",
1885
+ "id": "global::Date"
1886
+ },
1887
+ "DatePickerMomentLike": {
1888
+ "location": "import",
1889
+ "path": "@/utils/date-picker/date-picker-types",
1890
+ "id": "src/utils/date-picker/date-picker-types.ts::DatePickerMomentLike",
1891
+ "referenceLocation": "DatePickerMomentLike"
1892
+ }
1893
+ },
1894
+ "return": "Promise<void>"
1895
+ },
1896
+ "docs": {
1897
+ "text": "Opens the calendar and selects the provided date when it is valid.",
1898
+ "tags": []
1899
+ }
1900
+ },
1901
+ "typeValue": {
1902
+ "complexType": {
1903
+ "signature": "(value: string | Date) => Promise<void>",
1904
+ "parameters": [{
1905
+ "name": "value",
1906
+ "type": "string | Date",
1907
+ "docs": ""
1908
+ }],
1909
+ "references": {
1910
+ "Promise": {
1911
+ "location": "global",
1912
+ "id": "global::Promise"
1913
+ },
1914
+ "Date": {
1915
+ "location": "global",
1916
+ "id": "global::Date"
1917
+ }
1918
+ },
1919
+ "return": "Promise<void>"
1920
+ },
1921
+ "docs": {
1922
+ "text": "Focuses the single typeable input and stages a valid date without committing it.",
1923
+ "tags": [{
1924
+ "name": "warning",
1925
+ "text": "Only applicable when the effective mode is `single-typeable`."
1926
+ }]
1927
+ }
1928
+ }
1929
+ };
1930
+ }
1931
+ static get elementRef() { return "hostElement"; }
1932
+ static get watchers() {
1933
+ return [{
1934
+ "propName": "cutoffTime",
1935
+ "methodName": "constraintsChanged"
1936
+ }, {
1937
+ "propName": "assume",
1938
+ "methodName": "constraintsChanged"
1939
+ }, {
1940
+ "propName": "daysOfWeekChecksum",
1941
+ "methodName": "constraintsChanged"
1942
+ }, {
1943
+ "propName": "endDate",
1944
+ "methodName": "constraintsChanged"
1945
+ }, {
1946
+ "propName": "invalidDates",
1947
+ "methodName": "constraintsChanged"
1948
+ }, {
1949
+ "propName": "startDate",
1950
+ "methodName": "constraintsChanged"
1951
+ }, {
1952
+ "propName": "validDates",
1953
+ "methodName": "constraintsChanged"
1954
+ }, {
1955
+ "propName": "disabled",
1956
+ "methodName": "disabledChanged"
1957
+ }, {
1958
+ "propName": "displayFormat",
1959
+ "methodName": "displayFormatChanged"
1960
+ }, {
1961
+ "propName": "mode",
1962
+ "methodName": "modeChanged"
1963
+ }, {
1964
+ "propName": "typeable",
1965
+ "methodName": "modeChanged"
1966
+ }, {
1967
+ "propName": "open",
1968
+ "methodName": "openChanged"
1969
+ }, {
1970
+ "propName": "popDirection",
1971
+ "methodName": "popDirectionChanged"
1972
+ }, {
1973
+ "propName": "popoverDirection",
1974
+ "methodName": "popoverDirectionChanged"
1975
+ }, {
1976
+ "propName": "rangeEnd",
1977
+ "methodName": "rangeEndChanged"
1978
+ }, {
1979
+ "propName": "rangeStart",
1980
+ "methodName": "rangeStartChanged"
1981
+ }, {
1982
+ "propName": "readonly",
1983
+ "methodName": "readonlyChanged"
1984
+ }, {
1985
+ "propName": "value",
1986
+ "methodName": "valueChanged"
1987
+ }];
1988
+ }
1989
+ static get listeners() {
1990
+ return [{
1991
+ "name": "beforeinput",
1992
+ "method": "beforeInputHandler",
1993
+ "target": undefined,
1994
+ "capture": false,
1995
+ "passive": false
1996
+ }, {
1997
+ "name": "focus",
1998
+ "method": "delegateFocus",
1999
+ "target": undefined,
2000
+ "capture": false,
2001
+ "passive": false
2002
+ }, {
2003
+ "name": "popoverStateChanged",
2004
+ "method": "popoverStateHandler",
2005
+ "target": undefined,
2006
+ "capture": false,
2007
+ "passive": false
2008
+ }];
2009
+ }
2010
+ }