@mhmo91/schmancy 0.4.18 → 0.4.20

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 (293) hide show
  1. package/ai/chips.md +43 -14
  2. package/ai/context.md +545 -0
  3. package/ai/typography.md +8 -8
  4. package/dist/ai/chips.md +43 -14
  5. package/dist/ai/context.md +545 -0
  6. package/dist/ai/typography.md +8 -8
  7. package/dist/{animated-text-Dt7ULIfK.cjs → animated-text-Be4toKE0.cjs} +2 -2
  8. package/dist/{animated-text-Dt7ULIfK.cjs.map → animated-text-Be4toKE0.cjs.map} +1 -1
  9. package/dist/{animated-text-BLAxtIAw.js → animated-text-CNPSIIYg.js} +3 -3
  10. package/dist/{animated-text-BLAxtIAw.js.map → animated-text-CNPSIIYg.js.map} +1 -1
  11. package/dist/animated-text.cjs +1 -1
  12. package/dist/animated-text.js +1 -1
  13. package/dist/area.cjs +1 -1
  14. package/dist/{area.component-BgxB7rJS.cjs → area.component-YKEQV9hc.cjs} +2 -2
  15. package/dist/{area.component-BgxB7rJS.cjs.map → area.component-YKEQV9hc.cjs.map} +1 -1
  16. package/dist/{area.component-BLgSdlkJ.js → area.component-i-mmh5is.js} +3 -3
  17. package/dist/{area.component-BLgSdlkJ.js.map → area.component-i-mmh5is.js.map} +1 -1
  18. package/dist/area.js +1 -1
  19. package/dist/{autocomplete-DpNmzOji.cjs → autocomplete-C0EU8KiN.cjs} +2 -2
  20. package/dist/{autocomplete-DpNmzOji.cjs.map → autocomplete-C0EU8KiN.cjs.map} +1 -1
  21. package/dist/{autocomplete-C8uZsIcD.js → autocomplete-EapOt3ES.js} +3 -3
  22. package/dist/{autocomplete-C8uZsIcD.js.map → autocomplete-EapOt3ES.js.map} +1 -1
  23. package/dist/autocomplete.cjs +1 -1
  24. package/dist/autocomplete.js +1 -1
  25. package/dist/{avatar-CUNb2WdS.js → avatar-7Rif8_0P.js} +46 -46
  26. package/dist/{avatar-CUNb2WdS.js.map → avatar-7Rif8_0P.js.map} +1 -1
  27. package/dist/{avatar-CTu9FwSF.cjs → avatar-BoOnOo3X.cjs} +2 -2
  28. package/dist/{avatar-CTu9FwSF.cjs.map → avatar-BoOnOo3X.cjs.map} +1 -1
  29. package/dist/badge.cjs +1 -1
  30. package/dist/badge.js +1 -1
  31. package/dist/{boat-CkVYkaEC.cjs → boat-C59hzqZ0.cjs} +2 -2
  32. package/dist/{boat-CkVYkaEC.cjs.map → boat-C59hzqZ0.cjs.map} +1 -1
  33. package/dist/{boat-d9gIROWW.js → boat-DPTS3Kpw.js} +2 -2
  34. package/dist/{boat-d9gIROWW.js.map → boat-DPTS3Kpw.js.map} +1 -1
  35. package/dist/boat.cjs +1 -1
  36. package/dist/boat.js +1 -1
  37. package/dist/busy.cjs +1 -1
  38. package/dist/busy.js +1 -1
  39. package/dist/button.cjs +1 -1
  40. package/dist/button.js +1 -1
  41. package/dist/card.cjs +1 -1
  42. package/dist/card.js +1 -1
  43. package/dist/{checkbox-BtGm_bDJ.js → checkbox-B85eeKqn.js} +2 -2
  44. package/dist/{checkbox-BtGm_bDJ.js.map → checkbox-B85eeKqn.js.map} +1 -1
  45. package/dist/{checkbox-D_GZpk5w.cjs → checkbox-C-kjO37F.cjs} +2 -2
  46. package/dist/{checkbox-D_GZpk5w.cjs.map → checkbox-C-kjO37F.cjs.map} +1 -1
  47. package/dist/checkbox.cjs +1 -1
  48. package/dist/checkbox.js +1 -1
  49. package/dist/{chips-BdxXRe8e.js → chips-BNRMzGrx.js} +64 -60
  50. package/dist/{chips-BdxXRe8e.js.map → chips-BNRMzGrx.js.map} +1 -1
  51. package/dist/{chips-Dcgoq3mi.cjs → chips-DW6y4ZMs.cjs} +22 -18
  52. package/dist/{chips-Dcgoq3mi.cjs.map → chips-DW6y4ZMs.cjs.map} +1 -1
  53. package/dist/chips.cjs +1 -1
  54. package/dist/chips.js +1 -1
  55. package/dist/{circular-progress-hdKLycBS.cjs → circular-progress-BridvYCS.cjs} +2 -2
  56. package/dist/{circular-progress-hdKLycBS.cjs.map → circular-progress-BridvYCS.cjs.map} +1 -1
  57. package/dist/{circular-progress-I-eWIvbu.js → circular-progress-Cl_dXUPO.js} +3 -3
  58. package/dist/{circular-progress-I-eWIvbu.js.map → circular-progress-Cl_dXUPO.js.map} +1 -1
  59. package/dist/circular-progress.cjs +1 -1
  60. package/dist/circular-progress.js +1 -1
  61. package/dist/code-highlight.cjs +1 -1
  62. package/dist/code-highlight.js +1 -1
  63. package/dist/{code-preview-Cj3yKkoI.cjs → code-preview-B0oGIV9F.cjs} +2 -2
  64. package/dist/{code-preview-Cj3yKkoI.cjs.map → code-preview-B0oGIV9F.cjs.map} +1 -1
  65. package/dist/{code-preview-vm-MGUcq.js → code-preview-B8X7JaxA.js} +2 -2
  66. package/dist/{code-preview-vm-MGUcq.js.map → code-preview-B8X7JaxA.js.map} +1 -1
  67. package/dist/components.cjs +1 -1
  68. package/dist/components.js +1 -1
  69. package/dist/content-drawer.cjs +1 -1
  70. package/dist/content-drawer.js +1 -1
  71. package/dist/{date-range-CEah0Br4.js → date-range-9sVFbxK0.js} +3 -3
  72. package/dist/{date-range-CEah0Br4.js.map → date-range-9sVFbxK0.js.map} +1 -1
  73. package/dist/{date-range-D8Y4NfOS.cjs → date-range-DqaB9kwM.cjs} +2 -2
  74. package/dist/{date-range-D8Y4NfOS.cjs.map → date-range-DqaB9kwM.cjs.map} +1 -1
  75. package/dist/{date-range-inline-DsJ52mz_.js → date-range-inline-Bqnc8wBb.js} +3 -3
  76. package/dist/{date-range-inline-DsJ52mz_.js.map → date-range-inline-Bqnc8wBb.js.map} +1 -1
  77. package/dist/{date-range-inline-lrZkGjTt.cjs → date-range-inline-DGRKHzTX.cjs} +2 -2
  78. package/dist/{date-range-inline-lrZkGjTt.cjs.map → date-range-inline-DGRKHzTX.cjs.map} +1 -1
  79. package/dist/date-range-inline.cjs +1 -1
  80. package/dist/date-range-inline.js +1 -1
  81. package/dist/date-range.cjs +1 -1
  82. package/dist/date-range.js +1 -1
  83. package/dist/{delay-CMthr2Hj.cjs → delay-ClP0gwsX.cjs} +2 -2
  84. package/dist/{delay-CMthr2Hj.cjs.map → delay-ClP0gwsX.cjs.map} +1 -1
  85. package/dist/{delay-C_vw_yei.js → delay-u5isp6Vb.js} +2 -2
  86. package/dist/{delay-C_vw_yei.js.map → delay-u5isp6Vb.js.map} +1 -1
  87. package/dist/delay.cjs +1 -1
  88. package/dist/delay.js +1 -1
  89. package/dist/{dialog-content-B2j1jowD.cjs → dialog-content-CGgHTvcB.cjs} +2 -2
  90. package/dist/{dialog-content-B2j1jowD.cjs.map → dialog-content-CGgHTvcB.cjs.map} +1 -1
  91. package/dist/{dialog-content-mEW0FAuk.js → dialog-content-ZpgRQC1m.js} +3 -3
  92. package/dist/{dialog-content-mEW0FAuk.js.map → dialog-content-ZpgRQC1m.js.map} +1 -1
  93. package/dist/dialog.cjs +1 -1
  94. package/dist/dialog.js +1 -1
  95. package/dist/{divider-Crcv35Yc.js → divider-BK4PNB76.js} +3 -3
  96. package/dist/{divider-Crcv35Yc.js.map → divider-BK4PNB76.js.map} +1 -1
  97. package/dist/{divider-Dhl8ZwLT.cjs → divider-CIXGsKd7.cjs} +2 -2
  98. package/dist/{divider-Dhl8ZwLT.cjs.map → divider-CIXGsKd7.cjs.map} +1 -1
  99. package/dist/divider.cjs +1 -1
  100. package/dist/divider.js +1 -1
  101. package/dist/{dropdown-content-BmIs8S4S.cjs → dropdown-content-CeYUqD56.cjs} +2 -2
  102. package/dist/{dropdown-content-BmIs8S4S.cjs.map → dropdown-content-CeYUqD56.cjs.map} +1 -1
  103. package/dist/{dropdown-content-xZnz8Pxv.js → dropdown-content-DbHKYDCS.js} +3 -3
  104. package/dist/{dropdown-content-xZnz8Pxv.js.map → dropdown-content-DbHKYDCS.js.map} +1 -1
  105. package/dist/dropdown.cjs +1 -1
  106. package/dist/dropdown.js +1 -1
  107. package/dist/extra.cjs +1 -1
  108. package/dist/extra.js +1 -1
  109. package/dist/{flex-CKZqzjoT.cjs → flex-Dub7SPI7.cjs} +2 -2
  110. package/dist/{flex-CKZqzjoT.cjs.map → flex-Dub7SPI7.cjs.map} +1 -1
  111. package/dist/{flex-BxLHuykH.js → flex-JcwYdb2G.js} +2 -2
  112. package/dist/{flex-BxLHuykH.js.map → flex-JcwYdb2G.js.map} +1 -1
  113. package/dist/{form-CkXLwrgF.js → form-CMv0SQko.js} +2 -2
  114. package/dist/{form-CkXLwrgF.js.map → form-CMv0SQko.js.map} +1 -1
  115. package/dist/{form-BILl3KSi.cjs → form-DKF6UgIS.cjs} +2 -2
  116. package/dist/{form-BILl3KSi.cjs.map → form-DKF6UgIS.cjs.map} +1 -1
  117. package/dist/form.cjs +1 -1
  118. package/dist/form.js +1 -1
  119. package/dist/{formField.mixin-7oRbKIJG.cjs → formField.mixin-BrHllh45.cjs} +2 -2
  120. package/dist/{formField.mixin-7oRbKIJG.cjs.map → formField.mixin-BrHllh45.cjs.map} +1 -1
  121. package/dist/{formField.mixin-B5IdUrHP.js → formField.mixin-D0GeY28y.js} +2 -2
  122. package/dist/{formField.mixin-B5IdUrHP.js.map → formField.mixin-D0GeY28y.js.map} +1 -1
  123. package/dist/{icon-DSNyRhWY.js → icon--s5dpU1N.js} +2 -2
  124. package/dist/{icon-DSNyRhWY.js.map → icon--s5dpU1N.js.map} +1 -1
  125. package/dist/{icon-BMRm6Q7E.cjs → icon-CJe2TSk1.cjs} +2 -2
  126. package/dist/{icon-BMRm6Q7E.cjs.map → icon-CJe2TSk1.cjs.map} +1 -1
  127. package/dist/{icon-button-BzelG5eZ.js → icon-button-Ckd9jE-a.js} +3 -3
  128. package/dist/{icon-button-BzelG5eZ.js.map → icon-button-Ckd9jE-a.js.map} +1 -1
  129. package/dist/{icon-button-CSP3nxqH.cjs → icon-button-x5uqpaeg.cjs} +2 -2
  130. package/dist/{icon-button-CSP3nxqH.cjs.map → icon-button-x5uqpaeg.cjs.map} +1 -1
  131. package/dist/icons.cjs +1 -1
  132. package/dist/icons.js +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.js +44 -44
  135. package/dist/{input-BA52VU9F.cjs → input-DcWJTrr9.cjs} +2 -2
  136. package/dist/{input-BA52VU9F.cjs.map → input-DcWJTrr9.cjs.map} +1 -1
  137. package/dist/{input-BxvmmN6J.js → input-P8bwT-4D.js} +3 -3
  138. package/dist/{input-BxvmmN6J.js.map → input-P8bwT-4D.js.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-GmGQKun4.cjs → list-DZAZpM5m.cjs} +2 -2
  144. package/dist/{list-GmGQKun4.cjs.map → list-DZAZpM5m.cjs.map} +1 -1
  145. package/dist/{list-Cp-I9q0R.js → list-rGydduh7.js} +2 -2
  146. package/dist/{list-Cp-I9q0R.js.map → list-rGydduh7.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-bzDPHaHQ.cjs → litElement.mixin-B1eYYBf4.cjs} +2 -2
  150. package/dist/{litElement.mixin-bzDPHaHQ.cjs.map → litElement.mixin-B1eYYBf4.cjs.map} +1 -1
  151. package/dist/{litElement.mixin-BzhYdE-s.js → litElement.mixin-Cq-COufw.js} +2 -2
  152. package/dist/{litElement.mixin-BzhYdE-s.js.map → litElement.mixin-Cq-COufw.js.map} +1 -1
  153. package/dist/{media-DTdOxwsY.js → media-BG2j6r0I.js} +27 -55
  154. package/dist/media-BG2j6r0I.js.map +1 -0
  155. package/dist/{media-DzPzgQVq.cjs → media-C_UPDRKi.cjs} +8 -36
  156. package/dist/media-C_UPDRKi.cjs.map +1 -0
  157. package/dist/{menu-DmRH9LKU.cjs → menu-D5aDG-Rp.cjs} +2 -2
  158. package/dist/{menu-DmRH9LKU.cjs.map → menu-D5aDG-Rp.cjs.map} +1 -1
  159. package/dist/{menu-CyouBgEC.js → menu-DvZSvoOx.js} +3 -3
  160. package/dist/{menu-CyouBgEC.js.map → menu-DvZSvoOx.js.map} +1 -1
  161. package/dist/menu.cjs +1 -1
  162. package/dist/menu.js +1 -1
  163. package/dist/nav-drawer.cjs +1 -1
  164. package/dist/nav-drawer.js +1 -1
  165. package/dist/{notification-service-iaaiYOCz.cjs → notification-service-BzzXjm4l.cjs} +2 -2
  166. package/dist/{notification-service-iaaiYOCz.cjs.map → notification-service-BzzXjm4l.cjs.map} +1 -1
  167. package/dist/{notification-service-5CLr66rH.js → notification-service-DKHubhXv.js} +3 -3
  168. package/dist/{notification-service-5CLr66rH.js.map → notification-service-DKHubhXv.js.map} +1 -1
  169. package/dist/notification.cjs +1 -1
  170. package/dist/notification.js +1 -1
  171. package/dist/{option-BN5jqJ5U.cjs → option-DqN5-RK7.cjs} +2 -2
  172. package/dist/{option-BN5jqJ5U.cjs.map → option-DqN5-RK7.cjs.map} +1 -1
  173. package/dist/{option-BCCLGZkk.js → option-T6zGawbH.js} +2 -2
  174. package/dist/{option-BCCLGZkk.js.map → option-T6zGawbH.js.map} +1 -1
  175. package/dist/option.cjs +1 -1
  176. package/dist/option.js +1 -1
  177. package/dist/{payment-card-form-CC19F7EH.cjs → payment-card-form-C42icpX4.cjs} +2 -2
  178. package/dist/{payment-card-form-CC19F7EH.cjs.map → payment-card-form-C42icpX4.cjs.map} +1 -1
  179. package/dist/{payment-card-form-C7IkJyYO.js → payment-card-form-GEOaUypQ.js} +3 -3
  180. package/dist/{payment-card-form-C7IkJyYO.js.map → payment-card-form-GEOaUypQ.js.map} +1 -1
  181. package/dist/{progress-Dbfk44z0.cjs → progress-CL35MIi9.cjs} +2 -2
  182. package/dist/{progress-Dbfk44z0.cjs.map → progress-CL35MIi9.cjs.map} +1 -1
  183. package/dist/{progress-DYk5Em61.js → progress-EL16etnw.js} +2 -2
  184. package/dist/{progress-DYk5Em61.js.map → progress-EL16etnw.js.map} +1 -1
  185. package/dist/progress.cjs +1 -1
  186. package/dist/progress.js +1 -1
  187. package/dist/{radio-button-CABGVVlQ.js → radio-button-BQ7snEVj.js} +3 -3
  188. package/dist/{radio-button-CABGVVlQ.js.map → radio-button-BQ7snEVj.js.map} +1 -1
  189. package/dist/{radio-button-CNQZeJgH.cjs → radio-button-DrSJB4B-.cjs} +2 -2
  190. package/dist/{radio-button-CNQZeJgH.cjs.map → radio-button-DrSJB4B-.cjs.map} +1 -1
  191. package/dist/radio-group.cjs +1 -1
  192. package/dist/radio-group.js +1 -1
  193. package/dist/{schmancy-steps-container-Dlr_V8N0.js → schmancy-steps-container-2WW-9LYL.js} +2 -2
  194. package/dist/{schmancy-steps-container-Dlr_V8N0.js.map → schmancy-steps-container-2WW-9LYL.js.map} +1 -1
  195. package/dist/{schmancy-steps-container-39pHxNAK.cjs → schmancy-steps-container-C_HHZFeb.cjs} +2 -2
  196. package/dist/{schmancy-steps-container-39pHxNAK.cjs.map → schmancy-steps-container-C_HHZFeb.cjs.map} +1 -1
  197. package/dist/{select-DxmJTxAy.cjs → select-BHRtVoTo.cjs} +2 -2
  198. package/dist/{select-DxmJTxAy.cjs.map → select-BHRtVoTo.cjs.map} +1 -1
  199. package/dist/{select-UfyNhLTO.js → select-Bl8FO2kb.js} +3 -3
  200. package/dist/{select-UfyNhLTO.js.map → select-Bl8FO2kb.js.map} +1 -1
  201. package/dist/select.cjs +1 -1
  202. package/dist/select.js +1 -1
  203. package/dist/{sheet-Dp2wyj6y.cjs → sheet-BiUUD0Td.cjs} +2 -2
  204. package/dist/{sheet-Dp2wyj6y.cjs.map → sheet-BiUUD0Td.cjs.map} +1 -1
  205. package/dist/{sheet-b-tYD9Bq.js → sheet-WpG2m2yT.js} +4 -4
  206. package/dist/{sheet-b-tYD9Bq.js.map → sheet-WpG2m2yT.js.map} +1 -1
  207. package/dist/sheet.cjs +1 -1
  208. package/dist/sheet.js +2 -2
  209. package/dist/{sheet.service-IRrxLZ3N.cjs → sheet.service-B5sh8d0k.cjs} +2 -2
  210. package/dist/{sheet.service-IRrxLZ3N.cjs.map → sheet.service-B5sh8d0k.cjs.map} +1 -1
  211. package/dist/{sheet.service-Cnpanz9P.js → sheet.service-COPNmxwp.js} +2 -2
  212. package/dist/{sheet.service-Cnpanz9P.js.map → sheet.service-COPNmxwp.js.map} +1 -1
  213. package/dist/{slider-BzsOgIrd.js → slider-4ggti1yr.js} +3 -3
  214. package/dist/{slider-BzsOgIrd.js.map → slider-4ggti1yr.js.map} +1 -1
  215. package/dist/{slider-DxUw0ywu.cjs → slider-DX-XUnE-.cjs} +2 -2
  216. package/dist/{slider-DxUw0ywu.cjs.map → slider-DX-XUnE-.cjs.map} +1 -1
  217. package/dist/slider.cjs +1 -1
  218. package/dist/slider.js +1 -1
  219. package/dist/{spinner-EZjRf-QZ.js → spinner-BPqLh7JL.js} +2 -2
  220. package/dist/{spinner-EZjRf-QZ.js.map → spinner-BPqLh7JL.js.map} +1 -1
  221. package/dist/{spinner-B2VjkiCF.cjs → spinner-Cq8tY2xk.cjs} +2 -2
  222. package/dist/{spinner-B2VjkiCF.cjs.map → spinner-Cq8tY2xk.cjs.map} +1 -1
  223. package/dist/steps.cjs +1 -1
  224. package/dist/steps.js +1 -1
  225. package/dist/{surface-BmAoIqMr.js → surface-1xboRERM.js} +2 -2
  226. package/dist/{surface-BmAoIqMr.js.map → surface-1xboRERM.js.map} +1 -1
  227. package/dist/{surface-063HkUq8.cjs → surface-YyZ8eXfj.cjs} +2 -2
  228. package/dist/{surface-063HkUq8.cjs.map → surface-YyZ8eXfj.cjs.map} +1 -1
  229. package/dist/surface.cjs +1 -1
  230. package/dist/surface.js +1 -1
  231. package/dist/{table-DyqYDcX9.js → table-C6EWKqDY.js} +2 -2
  232. package/dist/{table-DyqYDcX9.js.map → table-C6EWKqDY.js.map} +1 -1
  233. package/dist/{table-DiUP88FH.cjs → table-DpXmflf7.cjs} +2 -2
  234. package/dist/{table-DiUP88FH.cjs.map → table-DpXmflf7.cjs.map} +1 -1
  235. package/dist/table.cjs +1 -1
  236. package/dist/table.js +1 -1
  237. package/dist/{tabs-compatibility-Cy8kD9mX.js → tabs-compatibility-AFzKAP2D.js} +2 -2
  238. package/dist/{tabs-compatibility-Cy8kD9mX.js.map → tabs-compatibility-AFzKAP2D.js.map} +1 -1
  239. package/dist/{tabs-compatibility-DfgDgm3L.cjs → tabs-compatibility-ThgWuSrK.cjs} +2 -2
  240. package/dist/{tabs-compatibility-DfgDgm3L.cjs.map → tabs-compatibility-ThgWuSrK.cjs.map} +1 -1
  241. package/dist/tabs.cjs +1 -1
  242. package/dist/tabs.js +1 -1
  243. package/dist/{tailwind.mixin-C9z3GSDB.cjs → tailwind.mixin-DNME2oUL.cjs} +2 -2
  244. package/dist/{tailwind.mixin-C9z3GSDB.cjs.map → tailwind.mixin-DNME2oUL.cjs.map} +1 -1
  245. package/dist/{tailwind.mixin-Bnsuwr6X.js → tailwind.mixin-epCxS6FK.js} +9 -9
  246. package/dist/{tailwind.mixin-Bnsuwr6X.js.map → tailwind.mixin-epCxS6FK.js.map} +1 -1
  247. package/dist/teleport.cjs +1 -1
  248. package/dist/teleport.js +1 -1
  249. package/dist/{textarea-C655CWvM.cjs → textarea-B_TlKSop.cjs} +2 -2
  250. package/dist/{textarea-C655CWvM.cjs.map → textarea-B_TlKSop.cjs.map} +1 -1
  251. package/dist/{textarea-CQM25O_4.js → textarea-JO7OVdfk.js} +2 -2
  252. package/dist/{textarea-CQM25O_4.js.map → textarea-JO7OVdfk.js.map} +1 -1
  253. package/dist/textarea.cjs +1 -1
  254. package/dist/textarea.js +1 -1
  255. package/dist/{theme-button-CWlSwmLe.js → theme-button-C8cK7un6.js} +2 -2
  256. package/dist/{theme-button-CWlSwmLe.js.map → theme-button-C8cK7un6.js.map} +1 -1
  257. package/dist/{theme-button-D70_9T_Q.cjs → theme-button-DnrKANEK.cjs} +2 -2
  258. package/dist/{theme-button-D70_9T_Q.cjs.map → theme-button-DnrKANEK.cjs.map} +1 -1
  259. package/dist/theme-button.cjs +1 -1
  260. package/dist/theme-button.js +1 -1
  261. package/dist/theme.cjs +1 -1
  262. package/dist/theme.js +1 -1
  263. package/dist/{timezone-DrQWdXpw.cjs → timezone-C56jMhLK.cjs} +2 -2
  264. package/dist/{timezone-DrQWdXpw.cjs.map → timezone-C56jMhLK.cjs.map} +1 -1
  265. package/dist/{timezone-DnBsehNw.js → timezone-CEEEd-9_.js} +3 -3
  266. package/dist/{timezone-DnBsehNw.js.map → timezone-CEEEd-9_.js.map} +1 -1
  267. package/dist/{tooltip-DdXpj7ri.js → tooltip-CnuYee5c.js} +2 -2
  268. package/dist/{tooltip-DdXpj7ri.js.map → tooltip-CnuYee5c.js.map} +1 -1
  269. package/dist/{tooltip-dlvpo-O7.cjs → tooltip-twQMYpmk.cjs} +2 -2
  270. package/dist/{tooltip-dlvpo-O7.cjs.map → tooltip-twQMYpmk.cjs.map} +1 -1
  271. package/dist/tooltip.cjs +1 -1
  272. package/dist/tooltip.js +1 -1
  273. package/dist/{tree-BX1rDcI3.js → tree-CfnCGGn7.js} +2 -2
  274. package/dist/{tree-BX1rDcI3.js.map → tree-CfnCGGn7.js.map} +1 -1
  275. package/dist/{tree-BUQThnka.cjs → tree-Dv5R6kdP.cjs} +2 -2
  276. package/dist/{tree-BUQThnka.cjs.map → tree-Dv5R6kdP.cjs.map} +1 -1
  277. package/dist/tree.cjs +1 -1
  278. package/dist/tree.js +1 -1
  279. package/dist/{typewriter-Czy543Ke.js → typewriter-DAxRjeRy.js} +4 -4
  280. package/dist/{typewriter-Czy543Ke.js.map → typewriter-DAxRjeRy.js.map} +1 -1
  281. package/dist/{typewriter-BfD8bxa4.cjs → typewriter-egr1HiFJ.cjs} +2 -2
  282. package/dist/{typewriter-BfD8bxa4.cjs.map → typewriter-egr1HiFJ.cjs.map} +1 -1
  283. package/dist/typewriter.cjs +1 -1
  284. package/dist/typewriter.js +1 -1
  285. package/dist/{typography-DyM6-J-U.cjs → typography-DVZ2ezpU.cjs} +2 -2
  286. package/dist/{typography-DyM6-J-U.cjs.map → typography-DVZ2ezpU.cjs.map} +1 -1
  287. package/dist/{typography-DS-zFvYn.js → typography-De5UXL0j.js} +2 -2
  288. package/dist/{typography-DS-zFvYn.js.map → typography-De5UXL0j.js.map} +1 -1
  289. package/dist/typography.cjs +1 -1
  290. package/dist/typography.js +1 -1
  291. package/package.json +1 -1
  292. package/dist/media-DTdOxwsY.js.map +0 -1
  293. package/dist/media-DzPzgQVq.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-D8Y4NfOS.cjs","sources":["../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/dayjs.min.js","../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/plugin/quarterOfYear.js","../src/date-range/date-range-helpers.ts","../src/date-range/date-range-presets.ts","../src/date-range/date-utils.ts","../src/date-range/date-range-dialog.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\r\nimport { PresetUnit } from './date-range-presets'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')}-${toDate.format('D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('MMM D, YYYY')}${fromTime} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n/**\r\n * Calculate the appropriate shift unit and amount for a date range\r\n */\r\nexport function calculateShiftParams(\r\n\tfromDate: dayjs.Dayjs,\r\n\ttoDate: dayjs.Dayjs,\r\n\tactivePresetStep?: PresetUnit\r\n): { unit: PresetUnit; amount: number } {\r\n\tif (activePresetStep) {\r\n\t\treturn { unit: activePresetStep, amount: 1 }\r\n\t}\r\n\r\n\tconst rangeDurationInDays = toDate.diff(fromDate, 'day')\r\n\r\n\t// For very long ranges, use years\r\n\tif (rangeDurationInDays >= 360) {\r\n\t\treturn { unit: 'year', amount: Math.round(rangeDurationInDays / 365) }\r\n\t}\r\n\t// For long ranges, use quarters\r\n\telse if (rangeDurationInDays >= 90) {\r\n\t\treturn { unit: 'quarter', amount: Math.round(rangeDurationInDays / 90) }\r\n\t}\r\n\t// For medium-long ranges, use months\r\n\telse if (rangeDurationInDays >= 30) {\r\n\t\treturn { unit: 'month', amount: Math.round(rangeDurationInDays / 30) }\r\n\t}\r\n\t// For medium ranges, use weeks\r\n\telse if (rangeDurationInDays >= 7) {\r\n\t\treturn { unit: 'week', amount: Math.round(rangeDurationInDays / 7) }\r\n\t}\r\n\t// For shorter ranges, use days\r\n\telse {\r\n\t\treturn { unit: 'day', amount: rangeDurationInDays + 1 }\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper method to safely add/subtract quarter values\r\n */\r\nexport function adjustQuarter(date: dayjs.Dayjs, amount: number, direction: 1 | -1): dayjs.Dayjs {\r\n\t// Get current quarter (1-4)\r\n\tconst currentQuarter = date.quarter()\r\n\r\n\t// Calculate new quarter\r\n\tlet newQuarter = currentQuarter + direction * amount\r\n\tlet yearAdjustment = 0\r\n\r\n\t// Handle year boundaries\r\n\twhile (newQuarter > 4) {\r\n\t\tnewQuarter -= 4\r\n\t\tyearAdjustment += 1\r\n\t}\r\n\r\n\twhile (newQuarter < 1) {\r\n\t\tnewQuarter += 4\r\n\t\tyearAdjustment -= 1\r\n\t}\r\n\r\n\t// Adjust year if needed\r\n\tconst adjustedDate = date.add(yearAdjustment, 'year')\r\n\r\n\t// Set to the start of the new quarter\r\n\tconst newDate = adjustedDate.month((newQuarter - 1) * 3)\r\n\r\n\t// Maintain the same day of month if possible\r\n\tconst daysInMonth = newDate.daysInMonth()\r\n\tconst targetDay = Math.min(date.date(), daysInMonth)\r\n\r\n\treturn newDate.date(targetDay)\r\n}","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { $dialog } from '../dialog/dialog-service'\nimport { DateRangePreset, PresetCategory } from './date-range-presets'\n\n/**\n * Dialog content component for date range selection\n * \n * @element schmancy-date-range-dialog\n */\n@customElement('schmancy-date-range-dialog')\nexport class SchmancyDateRangeDialog extends $LitElement() {\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\t@property({ type: String }) activePreset: string | null = null\n\t@property({ type: Array }) presetCategories: PresetCategory[] = []\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom = { ...this.dateFrom, value: input.value }\n\t\t\n\t\t// If the new start date is after the current end date, adjust the end date\n\t\tif (this.dateTo.value && dayjs(this.dateFrom.value).isAfter(dayjs(this.dateTo.value))) {\n\t\t\tthis.dateTo = { ...this.dateTo, value: this.dateFrom.value }\n\t\t}\n\t\t\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo = { ...this.dateTo, value: input.value }\n\t\t\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\tthis.dispatchEvent(new CustomEvent('preset-select', {\n\t\t\tdetail: { preset },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t\t$dialog.dismiss()\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.dispatchEvent(new CustomEvent('announce', {\n\t\t\t\tdetail: { message: 'Invalid date format. Please check your input.' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true\n\t\t\t}))\n\t\t\treturn\n\t\t}\n\n\t\tthis.dispatchEvent(new CustomEvent('apply-dates', {\n\t\t\tdetail: { \n\t\t\t\tdateFrom: this.dateFrom.value, \n\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\tswapIfNeeded: fromDate.isAfter(toDate)\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\n\t\t$dialog.dismiss()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Custom Range Section with Inline Calendars -->\n\t\t\t\t<schmancy-surface type=\"container\" class=\"rounded-xl p-4 mb-6\">\n\t\t\t\t\t<div class=\"flex flex-col gap-4\">\n\t\t\t\t\t\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t\t\t<!-- From Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateFrom.label || 'From'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- To Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateTo.label || 'To'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<!-- Apply Button - Now at the bottom for logical flow -->\n\t\t\t\t\t\t<div class=\"flex justify-end mt-2\">\n\t\t\t\t\t\t\t<schmancy-button \n\t\t\t\t\t\t\t\tvariant=\"filled\" \n\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\n\t\t\t\t<!-- Presets Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0\">\n\t\t\t\t\t<div class=\"grid grid-cols-2 md:grid-cols-5 gap-6\">\n\t\t\t\t\t\t${this.presetCategories.map(\n\t\t\t\t\t\t\tcategory => html`\n\t\t\t\t\t\t\t\t<div class=\"space-y-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"text-surface-onVariant font-medium\">\n\t\t\t\t\t\t\t\t\t\t${category.name}\n\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t<div class=\"space-y-1\">\n\t\t\t\t\t\t\t\t\t\t${category.presets.map(\n\t\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"${this.activePreset === preset.label ? 'filled' : 'text'}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"w-full justify-start text-left\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.handlePresetSelection(preset, e)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-pressed=\"${this.activePreset === preset.label}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"${preset.label}: ${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"truncate\">${preset.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, PropertyValues } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { debounceTime, fromEvent, takeUntil, timer } from 'rxjs'\nimport { $dialog } from '../dialog/dialog-service'\nimport { adjustQuarter, calculateShiftParams, detectDateRangeType, formatDateRange } from './date-range-helpers'\nimport { DateRangePreset, generatePresetCategories, PresetCategory } from './date-range-presets'\nimport { validateInitialDateRange } from './date-utils'\nimport './date-range-dialog'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends $LitElement() {\n\t// Core properties\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Enhanced functionality\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: Boolean }) disabled = false\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\t@state() private isMobile = false\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.checkMobileView()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// Set up global event handlers using RxJS\n\t\tthis.setupEventHandlers()\n\t}\n\n\tprivate setupEventHandlers() {\n\t\t// Handle keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tthis.handleKeyboardNavigation(event)\n\t\t\t})\n\n\t\t// Handle window resize with debouncing\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(150),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkMobileView()\n\t\t\t})\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\n\n\n\tprivate toggleDropdown(e: Event) {\n\t\te.stopPropagation()\n\t\tif (this.disabled) return\n\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown()\n\t\t}\n\t}\n\n\tprivate openDropdown() {\n\t\tif (this.disabled) return\n\t\t\n\t\tthis.isOpen = true\n\t\t\n\t\t// Create dialog with the new component\n\t\tconst dialogContent = html`\n\t\t\t<schmancy-date-range-dialog\n\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t.dateFrom=\"${this.dateFrom}\"\n\t\t\t\t.dateTo=\"${this.dateTo}\"\n\t\t\t\t.minDate=\"${this.minDate}\"\n\t\t\t\t.maxDate=\"${this.maxDate}\"\n\t\t\t\t.activePreset=\"${this.activePreset}\"\n\t\t\t\t.presetCategories=\"${this.presetCategories}\"\n\t\t\t\t@preset-select=\"${(e: CustomEvent) => {\n\t\t\t\t\tthis.activePreset = e.detail.preset.label\n\t\t\t\t\tthis.setDateRange(e.detail.preset.range.dateFrom, e.detail.preset.range.dateTo)\n\t\t\t\t}}\"\n\t\t\t\t@date-change=\"${() => this.updateSelectedDateRange()}\"\n\t\t\t\t@apply-dates=\"${(e: CustomEvent) => {\n\t\t\t\t\tconst { dateFrom, dateTo, swapIfNeeded } = e.detail\n\t\t\t\t\tif (swapIfNeeded) {\n\t\t\t\t\t\tthis.setDateRange(dateTo, dateFrom)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\t\t\t}\n\t\t\t\t}}\"\n\t\t\t\t@announce=\"${(e: CustomEvent) => this.announceToScreenReader(e.detail.message)}\"\n\t\t\t></schmancy-date-range-dialog>\n\t\t`\n\t\t\n\t\t// Use the dialog service - it will automatically find the nearest schmancy-theme\n\t\t$dialog.component(dialogContent, {\n\t\t\ttitle: 'Select Date Range',\n\t\t\twidth: this.isMobile ? '100vw' : '800px',\n\t\t\thideActions: true\n\t\t}).then(() => {\n\t\t\tthis.isOpen = false\n\t\t})\n\t}\n\n\tprivate closeDropdown() {\n\t\t$dialog.dismiss()\n\t\tthis.isOpen = false\n\t}\n\n\n\t/**\n\t * Shifts the date range based on its type (preset or custom)\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\n\t\t// Get active preset and calculate shift parameters\n\t\tconst activePreset = this.presetRanges.find(p => p.label === this.activePreset)\n\t\tconst { unit, amount } = calculateShiftParams(fromDate, toDate, activePreset?.step)\n\n\t\t// Detect date range type\n\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\n\t\tlet newFromDate: dayjs.Dayjs\n\t\tlet newToDate: dayjs.Dayjs\n\n\t\t// Handle shifting based on unit\n\t\tif (unit === 'quarter') {\n\t\t\tnewFromDate = adjustQuarter(fromDate, amount, dir)\n\t\t\tnewToDate = adjustQuarter(toDate, amount, dir)\n\t\t\t\n\t\t\tif (rangeType.isFullQuarter) {\n\t\t\t\tnewFromDate = newFromDate.startOf('quarter')\n\t\t\t\tnewToDate = newFromDate.endOf('quarter')\n\t\t\t}\n\t\t} else if (unit === 'hour') {\n\t\t\tconst rangeDurationInHours = toDate.diff(fromDate, 'hour')\n\t\t\tnewFromDate = dir > 0 ? fromDate.add(rangeDurationInHours, 'hour') : fromDate.subtract(rangeDurationInHours, 'hour')\n\t\t\tnewToDate = dir > 0 ? toDate.add(rangeDurationInHours, 'hour') : toDate.subtract(rangeDurationInHours, 'hour')\n\t\t} else {\n\t\t\t// Handle all other units (day, week, month, year)\n\t\t\tif (dir > 0) {\n\t\t\t\tnewFromDate = fromDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t} else {\n\t\t\t\tnewFromDate = fromDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t}\n\n\t\t\t// Preserve full period ranges\n\t\t\tif (unit === 'year' && rangeType.isFullYear) {\n\t\t\t\tnewFromDate = newFromDate.startOf('year')\n\t\t\t\tnewToDate = newFromDate.endOf('year')\n\t\t\t} else if (unit === 'month' && rangeType.isFullMonth) {\n\t\t\t\tnewFromDate = newFromDate.startOf('month')\n\t\t\t\tnewToDate = newFromDate.endOf('month')\n\t\t\t} else if (unit === 'week' && rangeType.isFullWeek) {\n\t\t\t\tnewFromDate = newFromDate.startOf('week')\n\t\t\t\tnewToDate = newFromDate.endOf('week')\n\t\t\t}\n\t\t}\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\n\t/**\n\t * Check if view is mobile\n\t */\n\tprivate checkMobileView() {\n\t\tthis.isMobile = window.innerWidth < 768\n\t}\n\n\n\n\n\t/**\n\t * Announce messages to screen readers\n\t */\n\tprivate announceToScreenReader(message: string) {\n\t\tthis.announceMessage = message\n\t\t// Clear the message after announcement\n\t\ttimer(100)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.announceMessage = ''\n\t\t\t})\n\t}\n\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Trigger using the preferred schmancy-grid pattern -->\n\t\t\t\t<section @click=${(event: Event) => event.stopPropagation()} class=\"flex\" >\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.toggleDropdown(e)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}"],"names":["t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","quarter","bind","adjustQuarter","amount","direction","newQuarter","yearAdjustment","newDate","targetDay","generateLastNDaysPresets","days","map","label","range","dateFrom","dayjs","dateTo","step","generateLastNWeeksPresets","weeks","generateLastNMonthsPresets","generateLastNQuartersPresets","quarters","enforceDateFormat","dateString","expectedFormat","parsedDate","validateInitialDateRange","formattedDateFrom","formattedDateTo","SchmancyDateRangeDialog","$LitElement","super","type","value","activePreset","presetCategories","input","target","dispatchEvent","CustomEvent","detail","bubbles","composed","preset","stopPropagation","$dialog","dismiss","fromDate","swapIfNeeded","message","html","ifDefined","minDate","maxDate","handleFromDateChange","handleToDateChange","applyManualDateSelection","category","presets","handlePresetSelection","__decorateClass","property","Object","customElement","quarterOfYear","SchmancyDateRange","constructor","customPresets","disabled","required","placeholder","clearable","isOpen","selectedDateRange","announceMessage","isMobile","presetRanges","memoizedPresets","Map","connectedCallback","initPresetRanges","checkMobileView","dateFormat","getDateFormat","validatedRange","updateSelectedDateRange","now","setupEventHandlers","fromEvent","document","pipe","takeUntil","disconnecting","subscribe","event","handleKeyboardNavigation","window","debounceTime","disconnectedCallback","changedProps","updated","has","cacheKey","JSON","stringify","cached","push","includeTime","categories","customCategory","find","checkAndUpdateActivePreset","fromValue","toValue","fromTime","toTime","announceToScreenReader","closeDropdown","openDropdown","dialogContent","setDateRange","component","title","width","hideActions","then","dir","unit","activePresetStep","rangeDurationInDays","rangeType","isFullMonth","isFullQuarter","isFullYear","isFullWeek","day","newFromDate","newToDate","rangeDurationInHours","key","contains","shiftDateRange","preventDefault","ctrlKey","currentFrom","currentTo","monthStart","daysDiff","monthEnd","matchingPreset","innerWidth","timer","toggleDropdown","Boolean","state"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"date-range-DqaB9kwM.cjs","sources":["../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/dayjs.min.js","../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/plugin/quarterOfYear.js","../src/date-range/date-range-helpers.ts","../src/date-range/date-range-presets.ts","../src/date-range/date-utils.ts","../src/date-range/date-range-dialog.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\r\nimport { PresetUnit } from './date-range-presets'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')}-${toDate.format('D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('MMM D, YYYY')}${fromTime} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n/**\r\n * Calculate the appropriate shift unit and amount for a date range\r\n */\r\nexport function calculateShiftParams(\r\n\tfromDate: dayjs.Dayjs,\r\n\ttoDate: dayjs.Dayjs,\r\n\tactivePresetStep?: PresetUnit\r\n): { unit: PresetUnit; amount: number } {\r\n\tif (activePresetStep) {\r\n\t\treturn { unit: activePresetStep, amount: 1 }\r\n\t}\r\n\r\n\tconst rangeDurationInDays = toDate.diff(fromDate, 'day')\r\n\r\n\t// For very long ranges, use years\r\n\tif (rangeDurationInDays >= 360) {\r\n\t\treturn { unit: 'year', amount: Math.round(rangeDurationInDays / 365) }\r\n\t}\r\n\t// For long ranges, use quarters\r\n\telse if (rangeDurationInDays >= 90) {\r\n\t\treturn { unit: 'quarter', amount: Math.round(rangeDurationInDays / 90) }\r\n\t}\r\n\t// For medium-long ranges, use months\r\n\telse if (rangeDurationInDays >= 30) {\r\n\t\treturn { unit: 'month', amount: Math.round(rangeDurationInDays / 30) }\r\n\t}\r\n\t// For medium ranges, use weeks\r\n\telse if (rangeDurationInDays >= 7) {\r\n\t\treturn { unit: 'week', amount: Math.round(rangeDurationInDays / 7) }\r\n\t}\r\n\t// For shorter ranges, use days\r\n\telse {\r\n\t\treturn { unit: 'day', amount: rangeDurationInDays + 1 }\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper method to safely add/subtract quarter values\r\n */\r\nexport function adjustQuarter(date: dayjs.Dayjs, amount: number, direction: 1 | -1): dayjs.Dayjs {\r\n\t// Get current quarter (1-4)\r\n\tconst currentQuarter = date.quarter()\r\n\r\n\t// Calculate new quarter\r\n\tlet newQuarter = currentQuarter + direction * amount\r\n\tlet yearAdjustment = 0\r\n\r\n\t// Handle year boundaries\r\n\twhile (newQuarter > 4) {\r\n\t\tnewQuarter -= 4\r\n\t\tyearAdjustment += 1\r\n\t}\r\n\r\n\twhile (newQuarter < 1) {\r\n\t\tnewQuarter += 4\r\n\t\tyearAdjustment -= 1\r\n\t}\r\n\r\n\t// Adjust year if needed\r\n\tconst adjustedDate = date.add(yearAdjustment, 'year')\r\n\r\n\t// Set to the start of the new quarter\r\n\tconst newDate = adjustedDate.month((newQuarter - 1) * 3)\r\n\r\n\t// Maintain the same day of month if possible\r\n\tconst daysInMonth = newDate.daysInMonth()\r\n\tconst targetDay = Math.min(date.date(), daysInMonth)\r\n\r\n\treturn newDate.date(targetDay)\r\n}","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { $dialog } from '../dialog/dialog-service'\nimport { DateRangePreset, PresetCategory } from './date-range-presets'\n\n/**\n * Dialog content component for date range selection\n * \n * @element schmancy-date-range-dialog\n */\n@customElement('schmancy-date-range-dialog')\nexport class SchmancyDateRangeDialog extends $LitElement() {\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\t@property({ type: String }) activePreset: string | null = null\n\t@property({ type: Array }) presetCategories: PresetCategory[] = []\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom = { ...this.dateFrom, value: input.value }\n\t\t\n\t\t// If the new start date is after the current end date, adjust the end date\n\t\tif (this.dateTo.value && dayjs(this.dateFrom.value).isAfter(dayjs(this.dateTo.value))) {\n\t\t\tthis.dateTo = { ...this.dateTo, value: this.dateFrom.value }\n\t\t}\n\t\t\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo = { ...this.dateTo, value: input.value }\n\t\t\n\t\tthis.dispatchEvent(new CustomEvent('date-change', {\n\t\t\tdetail: { dateFrom: this.dateFrom.value, dateTo: this.dateTo.value },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\tthis.dispatchEvent(new CustomEvent('preset-select', {\n\t\t\tdetail: { preset },\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\t\t$dialog.dismiss()\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.dispatchEvent(new CustomEvent('announce', {\n\t\t\t\tdetail: { message: 'Invalid date format. Please check your input.' },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true\n\t\t\t}))\n\t\t\treturn\n\t\t}\n\n\t\tthis.dispatchEvent(new CustomEvent('apply-dates', {\n\t\t\tdetail: { \n\t\t\t\tdateFrom: this.dateFrom.value, \n\t\t\t\tdateTo: this.dateTo.value,\n\t\t\t\tswapIfNeeded: fromDate.isAfter(toDate)\n\t\t\t},\n\t\t\tbubbles: true,\n\t\t\tcomposed: true\n\t\t}))\n\n\t\t$dialog.dismiss()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Custom Range Section with Inline Calendars -->\n\t\t\t\t<schmancy-surface type=\"container\" class=\"rounded-xl p-4 mb-6\">\n\t\t\t\t\t<div class=\"flex flex-col gap-4\">\n\t\t\t\t\t\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t\t\t<!-- From Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateFrom.label || 'From'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- To Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateTo.label || 'To'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<!-- Apply Button - Now at the bottom for logical flow -->\n\t\t\t\t\t\t<div class=\"flex justify-end mt-2\">\n\t\t\t\t\t\t\t<schmancy-button \n\t\t\t\t\t\t\t\tvariant=\"filled\" \n\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\n\t\t\t\t<!-- Presets Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0\">\n\t\t\t\t\t<div class=\"grid grid-cols-2 md:grid-cols-5 gap-6\">\n\t\t\t\t\t\t${this.presetCategories.map(\n\t\t\t\t\t\t\tcategory => html`\n\t\t\t\t\t\t\t\t<div class=\"space-y-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"text-surface-onVariant font-medium\">\n\t\t\t\t\t\t\t\t\t\t${category.name}\n\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t<div class=\"space-y-1\">\n\t\t\t\t\t\t\t\t\t\t${category.presets.map(\n\t\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"${this.activePreset === preset.label ? 'filled' : 'text'}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"w-full justify-start text-left\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.handlePresetSelection(preset, e)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-pressed=\"${this.activePreset === preset.label}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"${preset.label}: ${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"truncate\">${preset.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n}","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, PropertyValues } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { debounceTime, fromEvent, takeUntil, timer } from 'rxjs'\nimport { $dialog } from '../dialog/dialog-service'\nimport { adjustQuarter, calculateShiftParams, detectDateRangeType, formatDateRange } from './date-range-helpers'\nimport { DateRangePreset, generatePresetCategories, PresetCategory } from './date-range-presets'\nimport { validateInitialDateRange } from './date-utils'\nimport './date-range-dialog'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends $LitElement() {\n\t// Core properties\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Enhanced functionality\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: Boolean }) disabled = false\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\t@state() private isMobile = false\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.checkMobileView()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// Set up global event handlers using RxJS\n\t\tthis.setupEventHandlers()\n\t}\n\n\tprivate setupEventHandlers() {\n\t\t// Handle keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tthis.handleKeyboardNavigation(event)\n\t\t\t})\n\n\t\t// Handle window resize with debouncing\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(150),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkMobileView()\n\t\t\t})\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\n\n\n\tprivate toggleDropdown(e: Event) {\n\t\te.stopPropagation()\n\t\tif (this.disabled) return\n\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown()\n\t\t}\n\t}\n\n\tprivate openDropdown() {\n\t\tif (this.disabled) return\n\t\t\n\t\tthis.isOpen = true\n\t\t\n\t\t// Create dialog with the new component\n\t\tconst dialogContent = html`\n\t\t\t<schmancy-date-range-dialog\n\t\t\t\t.type=\"${this.type}\"\n\t\t\t\t.dateFrom=\"${this.dateFrom}\"\n\t\t\t\t.dateTo=\"${this.dateTo}\"\n\t\t\t\t.minDate=\"${this.minDate}\"\n\t\t\t\t.maxDate=\"${this.maxDate}\"\n\t\t\t\t.activePreset=\"${this.activePreset}\"\n\t\t\t\t.presetCategories=\"${this.presetCategories}\"\n\t\t\t\t@preset-select=\"${(e: CustomEvent) => {\n\t\t\t\t\tthis.activePreset = e.detail.preset.label\n\t\t\t\t\tthis.setDateRange(e.detail.preset.range.dateFrom, e.detail.preset.range.dateTo)\n\t\t\t\t}}\"\n\t\t\t\t@date-change=\"${() => this.updateSelectedDateRange()}\"\n\t\t\t\t@apply-dates=\"${(e: CustomEvent) => {\n\t\t\t\t\tconst { dateFrom, dateTo, swapIfNeeded } = e.detail\n\t\t\t\t\tif (swapIfNeeded) {\n\t\t\t\t\t\tthis.setDateRange(dateTo, dateFrom)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setDateRange(dateFrom, dateTo)\n\t\t\t\t\t}\n\t\t\t\t}}\"\n\t\t\t\t@announce=\"${(e: CustomEvent) => this.announceToScreenReader(e.detail.message)}\"\n\t\t\t></schmancy-date-range-dialog>\n\t\t`\n\t\t\n\t\t// Use the dialog service - it will automatically find the nearest schmancy-theme\n\t\t$dialog.component(dialogContent, {\n\t\t\ttitle: 'Select Date Range',\n\t\t\twidth: this.isMobile ? '100vw' : '800px',\n\t\t\thideActions: true\n\t\t}).then(() => {\n\t\t\tthis.isOpen = false\n\t\t})\n\t}\n\n\tprivate closeDropdown() {\n\t\t$dialog.dismiss()\n\t\tthis.isOpen = false\n\t}\n\n\n\t/**\n\t * Shifts the date range based on its type (preset or custom)\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\n\t\t// Get active preset and calculate shift parameters\n\t\tconst activePreset = this.presetRanges.find(p => p.label === this.activePreset)\n\t\tconst { unit, amount } = calculateShiftParams(fromDate, toDate, activePreset?.step)\n\n\t\t// Detect date range type\n\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\n\t\tlet newFromDate: dayjs.Dayjs\n\t\tlet newToDate: dayjs.Dayjs\n\n\t\t// Handle shifting based on unit\n\t\tif (unit === 'quarter') {\n\t\t\tnewFromDate = adjustQuarter(fromDate, amount, dir)\n\t\t\tnewToDate = adjustQuarter(toDate, amount, dir)\n\t\t\t\n\t\t\tif (rangeType.isFullQuarter) {\n\t\t\t\tnewFromDate = newFromDate.startOf('quarter')\n\t\t\t\tnewToDate = newFromDate.endOf('quarter')\n\t\t\t}\n\t\t} else if (unit === 'hour') {\n\t\t\tconst rangeDurationInHours = toDate.diff(fromDate, 'hour')\n\t\t\tnewFromDate = dir > 0 ? fromDate.add(rangeDurationInHours, 'hour') : fromDate.subtract(rangeDurationInHours, 'hour')\n\t\t\tnewToDate = dir > 0 ? toDate.add(rangeDurationInHours, 'hour') : toDate.subtract(rangeDurationInHours, 'hour')\n\t\t} else {\n\t\t\t// Handle all other units (day, week, month, year)\n\t\t\tif (dir > 0) {\n\t\t\t\tnewFromDate = fromDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t} else {\n\t\t\t\tnewFromDate = fromDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t}\n\n\t\t\t// Preserve full period ranges\n\t\t\tif (unit === 'year' && rangeType.isFullYear) {\n\t\t\t\tnewFromDate = newFromDate.startOf('year')\n\t\t\t\tnewToDate = newFromDate.endOf('year')\n\t\t\t} else if (unit === 'month' && rangeType.isFullMonth) {\n\t\t\t\tnewFromDate = newFromDate.startOf('month')\n\t\t\t\tnewToDate = newFromDate.endOf('month')\n\t\t\t} else if (unit === 'week' && rangeType.isFullWeek) {\n\t\t\t\tnewFromDate = newFromDate.startOf('week')\n\t\t\t\tnewToDate = newFromDate.endOf('week')\n\t\t\t}\n\t\t}\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\n\t/**\n\t * Check if view is mobile\n\t */\n\tprivate checkMobileView() {\n\t\tthis.isMobile = window.innerWidth < 768\n\t}\n\n\n\n\n\t/**\n\t * Announce messages to screen readers\n\t */\n\tprivate announceToScreenReader(message: string) {\n\t\tthis.announceMessage = message\n\t\t// Clear the message after announcement\n\t\ttimer(100)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.announceMessage = ''\n\t\t\t})\n\t}\n\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Trigger using the preferred schmancy-grid pattern -->\n\t\t\t\t<section @click=${(event: Event) => event.stopPropagation()} class=\"flex\" >\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.toggleDropdown(e)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}"],"names":["t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","quarter","bind","adjustQuarter","amount","direction","newQuarter","yearAdjustment","newDate","targetDay","generateLastNDaysPresets","days","map","label","range","dateFrom","dayjs","dateTo","step","generateLastNWeeksPresets","weeks","generateLastNMonthsPresets","generateLastNQuartersPresets","quarters","enforceDateFormat","dateString","expectedFormat","parsedDate","validateInitialDateRange","formattedDateFrom","formattedDateTo","SchmancyDateRangeDialog","$LitElement","super","type","value","activePreset","presetCategories","input","target","dispatchEvent","CustomEvent","detail","bubbles","composed","preset","stopPropagation","$dialog","dismiss","fromDate","swapIfNeeded","message","html","ifDefined","minDate","maxDate","handleFromDateChange","handleToDateChange","applyManualDateSelection","category","presets","handlePresetSelection","__decorateClass","property","Object","customElement","quarterOfYear","SchmancyDateRange","constructor","customPresets","disabled","required","placeholder","clearable","isOpen","selectedDateRange","announceMessage","isMobile","presetRanges","memoizedPresets","Map","connectedCallback","initPresetRanges","checkMobileView","dateFormat","getDateFormat","validatedRange","updateSelectedDateRange","now","setupEventHandlers","fromEvent","document","pipe","takeUntil","disconnecting","subscribe","event","handleKeyboardNavigation","window","debounceTime","disconnectedCallback","changedProps","updated","has","cacheKey","JSON","stringify","cached","push","includeTime","categories","customCategory","find","checkAndUpdateActivePreset","fromValue","toValue","fromTime","toTime","announceToScreenReader","closeDropdown","openDropdown","dialogContent","setDateRange","component","title","width","hideActions","then","dir","unit","activePresetStep","rangeDurationInDays","rangeType","isFullMonth","isFullQuarter","isFullYear","isFullWeek","day","newFromDate","newToDate","rangeDurationInHours","key","contains","shiftDateRange","preventDefault","ctrlKey","currentFrom","currentTo","monthStart","daysDiff","monthEnd","matchingPreset","innerWidth","timer","toggleDropdown","Boolean","state"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -3,8 +3,8 @@ import { property as m, state as l, customElement as D } from "lit/decorators.js
3
3
  import "rxjs";
4
4
  import "lit/directives/class-map.js";
5
5
  import "lit/directives/style-map.js";
6
- import "./tailwind.mixin-Bnsuwr6X.js";
7
- import { S as p } from "./formField.mixin-B5IdUrHP.js";
6
+ import "./tailwind.mixin-epCxS6FK.js";
7
+ import { S as p } from "./formField.mixin-D0GeY28y.js";
8
8
  var u = Object.defineProperty, c = Object.getOwnPropertyDescriptor, h = (a, t, i, r) => {
9
9
  for (var s, d = r > 1 ? void 0 : r ? c(t, i) : t, e = a.length - 1; e >= 0; e--) (s = a[e]) && (d = (r ? s(t, i, d) : s(d)) || d);
10
10
  return r && d && u(t, i, d), d;
@@ -193,4 +193,4 @@ h([m({ type: String })], o.prototype, "type", 2), h([m({ type: Object })], o.pro
193
193
  export {
194
194
  o as S
195
195
  };
196
- //# sourceMappingURL=date-range-inline-DsJ52mz_.js.map
196
+ //# sourceMappingURL=date-range-inline-Bqnc8wBb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-range-inline-DsJ52mz_.js","sources":["../src/date-range-inline/date-range-inline.ts"],"sourcesContent":["import { html } from 'lit'\r\nimport { customElement, property, state } from 'lit/decorators.js'\r\nimport { SchmancyFormField } from '@mixins/index'\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'schmancy-date-range-inline': SchmancyDateRangeInline\r\n\t}\r\n}\r\n\r\nexport type SchmancyDateRangeInlineChangeEvent = CustomEvent<{\r\n\tdateFrom: string\r\n\tdateTo: string\r\n\tisValid: boolean\r\n}>\r\n\r\n/**\r\n * Smart inline date range picker that handles all the heavy lifting.\r\n * Auto-corrects invalid ranges, provides smart defaults, and validates dates.\r\n */\r\n@customElement('schmancy-date-range-inline')\r\nexport default class SchmancyDateRangeInline extends SchmancyFormField() {\r\n\t/**\r\n\t * Input type - 'date' or 'datetime-local'\r\n\t */\r\n\t@property({ type: String })\r\n\ttype: 'date' | 'datetime-local' = 'date'\r\n\r\n\t/**\r\n\t * From date configuration\r\n\t */\r\n\t@property({ type: Object })\r\n\tdateFrom: { label: string; value: string } = { label: 'From', value: '' }\r\n\r\n\t/**\r\n\t * To date configuration\r\n\t */\r\n\t@property({ type: Object })\r\n\tdateTo: { label: string; value: string } = { label: 'To', value: '' }\r\n\r\n\t/**\r\n\t * Minimum allowed date\r\n\t */\r\n\t@property({ type: String })\r\n\tminDate?: string\r\n\r\n\t/**\r\n\t * Maximum allowed date\r\n\t */\r\n\t@property({ type: String })\r\n\tmaxDate?: string\r\n\r\n\t/**\r\n\t * Compact mode for smaller UI\r\n\t */\r\n\t@property({ type: Boolean })\r\n\tcompact = false\r\n\r\n\t/**\r\n\t * Auto-correct invalid date ranges\r\n\t */\r\n\t@property({ type: Boolean })\r\n\tautoCorrect = true\r\n\r\n\t/**\r\n\t * Minimum gap between dates (in days)\r\n\t */\r\n\t@property({ type: Number })\r\n\tminGap = 0\r\n\r\n\t/**\r\n\t * Maximum gap between dates (in days)\r\n\t */\r\n\t@property({ type: Number })\r\n\tmaxGap?: number\r\n\r\n\t/**\r\n\t * Default gap when auto-setting dates (in days)\r\n\t */\r\n\t@property({ type: Number })\r\n\tdefaultGap = 1\r\n\r\n\t/**\r\n\t * Whether to allow same date selection\r\n\t */\r\n\t@property({ type: Boolean })\r\n\tallowSameDate = false\r\n\r\n\t/**\r\n\t * Internal validation state\r\n\t */\r\n\t@state()\r\n\tprivate validationState = {\r\n\t\tdateFromError: '',\r\n\t\tdateToError: '',\r\n\t\trangeError: ''\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\t// Initialize with smart defaults if no values provided\r\n\t\tif (!this.dateFrom.value && !this.dateTo.value) {\r\n\t\t\tthis.setSmartDefaults()\r\n\t\t} else {\r\n\t\t\t// Validate initial values\r\n\t\t\tthis.validateAndCorrect()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Set smart default dates based on context\r\n\t */\r\n\tprivate setSmartDefaults() {\r\n\t\tconst today = new Date()\r\n\t\tconst tomorrow = new Date(today)\r\n\t\ttomorrow.setDate(tomorrow.getDate() + this.defaultGap)\r\n\r\n\t\tconst format = this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'\r\n\t\t\r\n\t\tthis.dateFrom = {\r\n\t\t\t...this.dateFrom,\r\n\t\t\tvalue: this.formatDate(today, format)\r\n\t\t}\r\n\t\t\r\n\t\tthis.dateTo = {\r\n\t\t\t...this.dateTo,\r\n\t\t\tvalue: this.formatDate(tomorrow, format)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Format date to required string format\r\n\t */\r\n\tprivate formatDate(date: Date, format: string): string {\r\n\t\tconst year = date.getFullYear()\r\n\t\tconst month = String(date.getMonth() + 1).padStart(2, '0')\r\n\t\tconst day = String(date.getDate()).padStart(2, '0')\r\n\t\t\r\n\t\tif (format === 'YYYY-MM-DD') {\r\n\t\t\treturn `${year}-${month}-${day}`\r\n\t\t} else {\r\n\t\t\tconst hours = String(date.getHours()).padStart(2, '0')\r\n\t\t\tconst minutes = String(date.getMinutes()).padStart(2, '0')\r\n\t\t\treturn `${year}-${month}-${day}T${hours}:${minutes}`\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Parse date string to Date object\r\n\t */\r\n\tprivate parseDate(dateStr: string): Date | null {\r\n\t\tif (!dateStr) return null\r\n\t\tconst date = new Date(dateStr)\r\n\t\treturn isNaN(date.getTime()) ? null : date\r\n\t}\r\n\r\n\t/**\r\n\t * Calculate days between two dates\r\n\t */\r\n\tprivate getDaysBetween(date1: Date, date2: Date): number {\r\n\t\tconst msPerDay = 24 * 60 * 60 * 1000\r\n\t\treturn Math.floor((date2.getTime() - date1.getTime()) / msPerDay)\r\n\t}\r\n\r\n\t/**\r\n\t * Handle from date change with validation and auto-correction\r\n\t */\r\n\tprivate handleDateFromChange(e: Event) {\r\n\t\tconst input = e.target as HTMLInputElement\r\n\t\tconst newValue = input.value\r\n\r\n\t\t// Update the value\r\n\t\tthis.dateFrom = { ...this.dateFrom, value: newValue }\r\n\r\n\t\t// Clear previous errors\r\n\t\tthis.validationState = { ...this.validationState, dateFromError: '', rangeError: '' }\r\n\r\n\t\tif (!newValue) {\r\n\t\t\t// Allow empty for optional fields\r\n\t\t\tif (!this.required) {\r\n\t\t\t\tthis.emitChange()\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tthis.validationState = { ...this.validationState, dateFromError: 'Start date is required' }\r\n\t\t\tthis.error = true\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Validate and potentially auto-correct\r\n\t\tthis.validateAndCorrect('from')\r\n\t}\r\n\r\n\t/**\r\n\t * Handle to date change with validation and auto-correction\r\n\t */\r\n\tprivate handleDateToChange(e: Event) {\r\n\t\tconst input = e.target as HTMLInputElement\r\n\t\tconst newValue = input.value\r\n\r\n\t\t// Update the value\r\n\t\tthis.dateTo = { ...this.dateTo, value: newValue }\r\n\r\n\t\t// Clear previous errors\r\n\t\tthis.validationState = { ...this.validationState, dateToError: '', rangeError: '' }\r\n\r\n\t\tif (!newValue) {\r\n\t\t\t// Allow empty for optional fields\r\n\t\t\tif (!this.required) {\r\n\t\t\t\tthis.emitChange()\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tthis.validationState = { ...this.validationState, dateToError: 'End date is required' }\r\n\t\t\tthis.error = true\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Validate and potentially auto-correct\r\n\t\tthis.validateAndCorrect('to')\r\n\t}\r\n\r\n\t/**\r\n\t * Validate dates and auto-correct if enabled\r\n\t */\r\n\tprivate validateAndCorrect(changedField?: 'from' | 'to') {\r\n\t\tconst fromDate = this.parseDate(this.dateFrom.value)\r\n\t\tconst toDate = this.parseDate(this.dateTo.value)\r\n\r\n\t\t// Reset validation state\r\n\t\tlet hasError = false\r\n\t\tconst newValidationState = { dateFromError: '', dateToError: '', rangeError: '' }\r\n\r\n\t\t// Validate individual dates\r\n\t\tif (this.dateFrom.value && !fromDate) {\r\n\t\t\tnewValidationState.dateFromError = 'Invalid date format'\r\n\t\t\thasError = true\r\n\t\t}\r\n\r\n\t\tif (this.dateTo.value && !toDate) {\r\n\t\t\tnewValidationState.dateToError = 'Invalid date format'\r\n\t\t\thasError = true\r\n\t\t}\r\n\r\n\t\t// If both dates are valid, check range constraints\r\n\t\tif (fromDate && toDate) {\r\n\t\t\tconst daysBetween = this.getDaysBetween(fromDate, toDate)\r\n\r\n\t\t\t// Check if from date is after to date\r\n\t\t\tif (fromDate > toDate) {\r\n\t\t\t\tif (this.autoCorrect) {\r\n\t\t\t\t\t// Auto-correct based on which field changed\r\n\t\t\t\t\tif (changedField === 'from') {\r\n\t\t\t\t\t\t// User changed from date, adjust to date\r\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\r\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.defaultGap)\r\n\t\t\t\t\t\tthis.dateTo = {\r\n\t\t\t\t\t\t\t...this.dateTo,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (changedField === 'to') {\r\n\t\t\t\t\t\t// User changed to date, adjust from date\r\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\r\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.defaultGap)\r\n\t\t\t\t\t\tthis.dateFrom = {\r\n\t\t\t\t\t\t\t...this.dateFrom,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// No specific field changed, swap them\r\n\t\t\t\t\t\tconst tempValue = this.dateFrom.value\r\n\t\t\t\t\t\tthis.dateFrom = { ...this.dateFrom, value: this.dateTo.value }\r\n\t\t\t\t\t\tthis.dateTo = { ...this.dateTo, value: tempValue }\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Re-validate after correction\r\n\t\t\t\t\tthis.validateAndCorrect()\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewValidationState.rangeError = 'End date must be after start date'\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check same date constraint\r\n\t\t\tif (!this.allowSameDate && daysBetween === 0) {\r\n\t\t\t\tif (this.autoCorrect && changedField) {\r\n\t\t\t\t\t// Auto-correct by adjusting the other date\r\n\t\t\t\t\tif (changedField === 'from') {\r\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\r\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.defaultGap)\r\n\t\t\t\t\t\tthis.dateTo = {\r\n\t\t\t\t\t\t\t...this.dateTo,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\r\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.defaultGap)\r\n\t\t\t\t\t\tthis.dateFrom = {\r\n\t\t\t\t\t\t\t...this.dateFrom,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Re-validate after correction\r\n\t\t\t\t\tthis.validateAndCorrect()\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewValidationState.rangeError = 'Start and end dates cannot be the same'\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check minimum gap\r\n\t\t\tif (this.minGap > 0 && daysBetween < this.minGap) {\r\n\t\t\t\tif (this.autoCorrect && changedField) {\r\n\t\t\t\t\t// Auto-correct to maintain minimum gap\r\n\t\t\t\t\tif (changedField === 'from') {\r\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\r\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.minGap)\r\n\t\t\t\t\t\tthis.dateTo = {\r\n\t\t\t\t\t\t\t...this.dateTo,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\r\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.minGap)\r\n\t\t\t\t\t\tthis.dateFrom = {\r\n\t\t\t\t\t\t\t...this.dateFrom,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Re-validate after correction\r\n\t\t\t\t\tthis.validateAndCorrect()\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewValidationState.rangeError = `Minimum ${this.minGap} day${this.minGap > 1 ? 's' : ''} required between dates`\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check maximum gap\r\n\t\t\tif (this.maxGap !== undefined && daysBetween > this.maxGap) {\r\n\t\t\t\tif (this.autoCorrect && changedField) {\r\n\t\t\t\t\t// Auto-correct to maintain maximum gap\r\n\t\t\t\t\tif (changedField === 'from') {\r\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\r\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.maxGap)\r\n\t\t\t\t\t\tthis.dateTo = {\r\n\t\t\t\t\t\t\t...this.dateTo,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\r\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.maxGap)\r\n\t\t\t\t\t\tthis.dateFrom = {\r\n\t\t\t\t\t\t\t...this.dateFrom,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Re-validate after correction\r\n\t\t\t\t\tthis.validateAndCorrect()\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewValidationState.rangeError = `Maximum ${this.maxGap} day${this.maxGap > 1 ? 's' : ''} allowed between dates`\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check against min/max date constraints\r\n\t\t\tif (this.minDate) {\r\n\t\t\t\tconst minDateObj = this.parseDate(this.minDate)\r\n\t\t\t\tif (minDateObj && fromDate < minDateObj) {\r\n\t\t\t\t\tnewValidationState.dateFromError = 'Date is before minimum allowed date'\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.maxDate) {\r\n\t\t\t\tconst maxDateObj = this.parseDate(this.maxDate)\r\n\t\t\t\tif (maxDateObj && toDate > maxDateObj) {\r\n\t\t\t\t\tnewValidationState.dateToError = 'Date is after maximum allowed date'\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Update validation state\r\n\t\tthis.validationState = newValidationState\r\n\t\tthis.error = hasError\r\n\r\n\t\t// Emit change event with validation status\r\n\t\tthis.emitChange()\r\n\t}\r\n\r\n\t/**\r\n\t * Get computed min date for the \"to\" field based on \"from\" value\r\n\t */\r\n\tprivate getComputedMinDateTo(): string | undefined {\r\n\t\tif (!this.dateFrom.value) return this.minDate\r\n\r\n\t\tconst fromDate = this.parseDate(this.dateFrom.value)\r\n\t\tif (!fromDate) return this.minDate\r\n\r\n\t\t// Calculate minimum date based on constraints\r\n\t\tconst minToDate = new Date(fromDate)\r\n\t\t\r\n\t\tif (!this.allowSameDate) {\r\n\t\t\tminToDate.setDate(minToDate.getDate() + 1)\r\n\t\t}\r\n\t\t\r\n\t\tif (this.minGap > 0) {\r\n\t\t\tminToDate.setDate(fromDate.getDate() + this.minGap)\r\n\t\t}\r\n\r\n\t\t// Compare with global minDate if set\r\n\t\tif (this.minDate) {\r\n\t\t\tconst globalMin = this.parseDate(this.minDate)\r\n\t\t\tif (globalMin && globalMin > minToDate) {\r\n\t\t\t\treturn this.minDate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.formatDate(minToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t}\r\n\r\n\t/**\r\n\t * Get computed max date for the \"from\" field based on \"to\" value\r\n\t */\r\n\tprivate getComputedMaxDateFrom(): string | undefined {\r\n\t\tif (!this.dateTo.value) return this.maxDate\r\n\r\n\t\tconst toDate = this.parseDate(this.dateTo.value)\r\n\t\tif (!toDate) return this.maxDate\r\n\r\n\t\t// Calculate maximum date based on constraints\r\n\t\tconst maxFromDate = new Date(toDate)\r\n\t\t\r\n\t\tif (!this.allowSameDate) {\r\n\t\t\tmaxFromDate.setDate(maxFromDate.getDate() - 1)\r\n\t\t}\r\n\t\t\r\n\t\tif (this.minGap > 0) {\r\n\t\t\tmaxFromDate.setDate(toDate.getDate() - this.minGap)\r\n\t\t}\r\n\r\n\t\t// Compare with global maxDate if set\r\n\t\tif (this.maxDate) {\r\n\t\t\tconst globalMax = this.parseDate(this.maxDate)\r\n\t\t\tif (globalMax && globalMax < maxFromDate) {\r\n\t\t\t\treturn this.maxDate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.formatDate(maxFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t}\r\n\r\n\temitChange() {\r\n\t\tconst isValid = !this.error && \r\n\t\t\t!!this.dateFrom.value && \r\n\t\t\t!!this.dateTo.value && \r\n\t\t\t!this.validationState.dateFromError && \r\n\t\t\t!this.validationState.dateToError && \r\n\t\t\t!this.validationState.rangeError\r\n\r\n\t\tthis.dispatchEvent(new CustomEvent<SchmancyDateRangeInlineChangeEvent['detail']>('change', {\r\n\t\t\tdetail: {\r\n\t\t\t\tdateFrom: this.dateFrom.value,\r\n\t\t\t\tdateTo: this.dateTo.value,\r\n\t\t\t\tisValid\r\n\t\t\t},\r\n\t\t\tbubbles: true,\r\n\t\t\tcomposed: true\r\n\t\t}))\r\n\t}\r\n\r\n\tprotected render() {\r\n\t\t// Determine which error to show on each input\r\n\t\tconst fromError = this.validationState.dateFromError || this.validationState.rangeError\r\n\t\tconst toError = this.validationState.dateToError || this.validationState.rangeError\r\n\r\n\t\treturn html`\r\n\t\t\t<div class=\"w-full\">\r\n\t\t\t\t<div class=\"flex items-start gap-2 w-full\">\r\n\t\t\t\t\t<div class=\"flex-1\">\r\n\t\t\t\t\t\t<schmancy-input\r\n\t\t\t\t\t\t\t.type=${this.type}\r\n\t\t\t\t\t\t\t.label=${this.dateFrom.label}\r\n\t\t\t\t\t\t\t.value=${this.dateFrom.value}\r\n\t\t\t\t\t\t\t.min=${this.minDate}\r\n\t\t\t\t\t\t\t.max=${this.getComputedMaxDateFrom()}\r\n\t\t\t\t\t\t\t@change=${this.handleDateFromChange}\r\n\t\t\t\t\t\t\t.error=${!!fromError}\r\n\t\t\t\t\t\t\t.hint=${fromError || ''}\r\n\t\t\t\t\t\t\t.required=${this.required}\r\n\t\t\t\t\t\t\t.disabled=${this.disabled}\r\n\t\t\t\t\t\t\tsize=${this.compact ? 'sm' : 'md'}\r\n\t\t\t\t\t\t></schmancy-input>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"flex items-center justify-center ${this.compact ? 'pt-8' : 'pt-10'} px-1\">\r\n\t\t\t\t\t\t<schmancy-icon class=\"text-surface-onVariant opacity-50\">\r\n\t\t\t\t\t\t\tarrow_forward\r\n\t\t\t\t\t\t</schmancy-icon>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"flex-1\">\r\n\t\t\t\t\t\t<schmancy-input\r\n\t\t\t\t\t\t\t.type=${this.type}\r\n\t\t\t\t\t\t\t.label=${this.dateTo.label}\r\n\t\t\t\t\t\t\t.value=${this.dateTo.value}\r\n\t\t\t\t\t\t\t.min=${this.getComputedMinDateTo()}\r\n\t\t\t\t\t\t\t.max=${this.maxDate}\r\n\t\t\t\t\t\t\t@change=${this.handleDateToChange}\r\n\t\t\t\t\t\t\t.error=${!!toError}\r\n\t\t\t\t\t\t\t.hint=${toError || ''}\r\n\t\t\t\t\t\t\t.required=${this.required}\r\n\t\t\t\t\t\t\t.disabled=${this.disabled}\r\n\t\t\t\t\t\t\tsize=${this.compact ? 'sm' : 'md'}\r\n\t\t\t\t\t\t></schmancy-input>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t`\r\n\t}\r\n}"],"names":["SchmancyDateRangeInline","SchmancyFormField","super","arguments","this","type","dateFrom","label","value","dateTo","compact","autoCorrect","minGap","defaultGap","allowSameDate","validationState","dateFromError","dateToError","rangeError","connectedCallback","validateAndCorrect","setSmartDefaults","today","Date","tomorrow","setDate","getDate","format","formatDate","date","year","getFullYear","month","String","getMonth","padStart","day","getHours","getMinutes","dateStr","isNaN","getTime","date1","date2","Math","floor","e","newValue","target","required","error","emitChange","changedField","fromDate","parseDate","toDate","hasError","newValidationState","daysBetween","getDaysBetween","newToDate","newFromDate","tempValue","maxGap","minDate","minDateObj","maxDate","maxDateObj","getComputedMinDateTo","minToDate","globalMin","maxFromDate","globalMax","isValid","dispatchEvent","CustomEvent","detail","bubbles","composed","render","fromError","toError","html","getComputedMaxDateFrom","handleDateFromChange","disabled","handleDateToChange","__decorateClass","property","prototype","Object","Boolean","Number","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"date-range-inline-Bqnc8wBb.js","sources":["../src/date-range-inline/date-range-inline.ts"],"sourcesContent":["import { html } from 'lit'\r\nimport { customElement, property, state } from 'lit/decorators.js'\r\nimport { SchmancyFormField } from '@mixins/index'\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'schmancy-date-range-inline': SchmancyDateRangeInline\r\n\t}\r\n}\r\n\r\nexport type SchmancyDateRangeInlineChangeEvent = CustomEvent<{\r\n\tdateFrom: string\r\n\tdateTo: string\r\n\tisValid: boolean\r\n}>\r\n\r\n/**\r\n * Smart inline date range picker that handles all the heavy lifting.\r\n * Auto-corrects invalid ranges, provides smart defaults, and validates dates.\r\n */\r\n@customElement('schmancy-date-range-inline')\r\nexport default class SchmancyDateRangeInline extends SchmancyFormField() {\r\n\t/**\r\n\t * Input type - 'date' or 'datetime-local'\r\n\t */\r\n\t@property({ type: String })\r\n\ttype: 'date' | 'datetime-local' = 'date'\r\n\r\n\t/**\r\n\t * From date configuration\r\n\t */\r\n\t@property({ type: Object })\r\n\tdateFrom: { label: string; value: string } = { label: 'From', value: '' }\r\n\r\n\t/**\r\n\t * To date configuration\r\n\t */\r\n\t@property({ type: Object })\r\n\tdateTo: { label: string; value: string } = { label: 'To', value: '' }\r\n\r\n\t/**\r\n\t * Minimum allowed date\r\n\t */\r\n\t@property({ type: String })\r\n\tminDate?: string\r\n\r\n\t/**\r\n\t * Maximum allowed date\r\n\t */\r\n\t@property({ type: String })\r\n\tmaxDate?: string\r\n\r\n\t/**\r\n\t * Compact mode for smaller UI\r\n\t */\r\n\t@property({ type: Boolean })\r\n\tcompact = false\r\n\r\n\t/**\r\n\t * Auto-correct invalid date ranges\r\n\t */\r\n\t@property({ type: Boolean })\r\n\tautoCorrect = true\r\n\r\n\t/**\r\n\t * Minimum gap between dates (in days)\r\n\t */\r\n\t@property({ type: Number })\r\n\tminGap = 0\r\n\r\n\t/**\r\n\t * Maximum gap between dates (in days)\r\n\t */\r\n\t@property({ type: Number })\r\n\tmaxGap?: number\r\n\r\n\t/**\r\n\t * Default gap when auto-setting dates (in days)\r\n\t */\r\n\t@property({ type: Number })\r\n\tdefaultGap = 1\r\n\r\n\t/**\r\n\t * Whether to allow same date selection\r\n\t */\r\n\t@property({ type: Boolean })\r\n\tallowSameDate = false\r\n\r\n\t/**\r\n\t * Internal validation state\r\n\t */\r\n\t@state()\r\n\tprivate validationState = {\r\n\t\tdateFromError: '',\r\n\t\tdateToError: '',\r\n\t\trangeError: ''\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\t// Initialize with smart defaults if no values provided\r\n\t\tif (!this.dateFrom.value && !this.dateTo.value) {\r\n\t\t\tthis.setSmartDefaults()\r\n\t\t} else {\r\n\t\t\t// Validate initial values\r\n\t\t\tthis.validateAndCorrect()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Set smart default dates based on context\r\n\t */\r\n\tprivate setSmartDefaults() {\r\n\t\tconst today = new Date()\r\n\t\tconst tomorrow = new Date(today)\r\n\t\ttomorrow.setDate(tomorrow.getDate() + this.defaultGap)\r\n\r\n\t\tconst format = this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD'\r\n\t\t\r\n\t\tthis.dateFrom = {\r\n\t\t\t...this.dateFrom,\r\n\t\t\tvalue: this.formatDate(today, format)\r\n\t\t}\r\n\t\t\r\n\t\tthis.dateTo = {\r\n\t\t\t...this.dateTo,\r\n\t\t\tvalue: this.formatDate(tomorrow, format)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Format date to required string format\r\n\t */\r\n\tprivate formatDate(date: Date, format: string): string {\r\n\t\tconst year = date.getFullYear()\r\n\t\tconst month = String(date.getMonth() + 1).padStart(2, '0')\r\n\t\tconst day = String(date.getDate()).padStart(2, '0')\r\n\t\t\r\n\t\tif (format === 'YYYY-MM-DD') {\r\n\t\t\treturn `${year}-${month}-${day}`\r\n\t\t} else {\r\n\t\t\tconst hours = String(date.getHours()).padStart(2, '0')\r\n\t\t\tconst minutes = String(date.getMinutes()).padStart(2, '0')\r\n\t\t\treturn `${year}-${month}-${day}T${hours}:${minutes}`\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Parse date string to Date object\r\n\t */\r\n\tprivate parseDate(dateStr: string): Date | null {\r\n\t\tif (!dateStr) return null\r\n\t\tconst date = new Date(dateStr)\r\n\t\treturn isNaN(date.getTime()) ? null : date\r\n\t}\r\n\r\n\t/**\r\n\t * Calculate days between two dates\r\n\t */\r\n\tprivate getDaysBetween(date1: Date, date2: Date): number {\r\n\t\tconst msPerDay = 24 * 60 * 60 * 1000\r\n\t\treturn Math.floor((date2.getTime() - date1.getTime()) / msPerDay)\r\n\t}\r\n\r\n\t/**\r\n\t * Handle from date change with validation and auto-correction\r\n\t */\r\n\tprivate handleDateFromChange(e: Event) {\r\n\t\tconst input = e.target as HTMLInputElement\r\n\t\tconst newValue = input.value\r\n\r\n\t\t// Update the value\r\n\t\tthis.dateFrom = { ...this.dateFrom, value: newValue }\r\n\r\n\t\t// Clear previous errors\r\n\t\tthis.validationState = { ...this.validationState, dateFromError: '', rangeError: '' }\r\n\r\n\t\tif (!newValue) {\r\n\t\t\t// Allow empty for optional fields\r\n\t\t\tif (!this.required) {\r\n\t\t\t\tthis.emitChange()\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tthis.validationState = { ...this.validationState, dateFromError: 'Start date is required' }\r\n\t\t\tthis.error = true\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Validate and potentially auto-correct\r\n\t\tthis.validateAndCorrect('from')\r\n\t}\r\n\r\n\t/**\r\n\t * Handle to date change with validation and auto-correction\r\n\t */\r\n\tprivate handleDateToChange(e: Event) {\r\n\t\tconst input = e.target as HTMLInputElement\r\n\t\tconst newValue = input.value\r\n\r\n\t\t// Update the value\r\n\t\tthis.dateTo = { ...this.dateTo, value: newValue }\r\n\r\n\t\t// Clear previous errors\r\n\t\tthis.validationState = { ...this.validationState, dateToError: '', rangeError: '' }\r\n\r\n\t\tif (!newValue) {\r\n\t\t\t// Allow empty for optional fields\r\n\t\t\tif (!this.required) {\r\n\t\t\t\tthis.emitChange()\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tthis.validationState = { ...this.validationState, dateToError: 'End date is required' }\r\n\t\t\tthis.error = true\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Validate and potentially auto-correct\r\n\t\tthis.validateAndCorrect('to')\r\n\t}\r\n\r\n\t/**\r\n\t * Validate dates and auto-correct if enabled\r\n\t */\r\n\tprivate validateAndCorrect(changedField?: 'from' | 'to') {\r\n\t\tconst fromDate = this.parseDate(this.dateFrom.value)\r\n\t\tconst toDate = this.parseDate(this.dateTo.value)\r\n\r\n\t\t// Reset validation state\r\n\t\tlet hasError = false\r\n\t\tconst newValidationState = { dateFromError: '', dateToError: '', rangeError: '' }\r\n\r\n\t\t// Validate individual dates\r\n\t\tif (this.dateFrom.value && !fromDate) {\r\n\t\t\tnewValidationState.dateFromError = 'Invalid date format'\r\n\t\t\thasError = true\r\n\t\t}\r\n\r\n\t\tif (this.dateTo.value && !toDate) {\r\n\t\t\tnewValidationState.dateToError = 'Invalid date format'\r\n\t\t\thasError = true\r\n\t\t}\r\n\r\n\t\t// If both dates are valid, check range constraints\r\n\t\tif (fromDate && toDate) {\r\n\t\t\tconst daysBetween = this.getDaysBetween(fromDate, toDate)\r\n\r\n\t\t\t// Check if from date is after to date\r\n\t\t\tif (fromDate > toDate) {\r\n\t\t\t\tif (this.autoCorrect) {\r\n\t\t\t\t\t// Auto-correct based on which field changed\r\n\t\t\t\t\tif (changedField === 'from') {\r\n\t\t\t\t\t\t// User changed from date, adjust to date\r\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\r\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.defaultGap)\r\n\t\t\t\t\t\tthis.dateTo = {\r\n\t\t\t\t\t\t\t...this.dateTo,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (changedField === 'to') {\r\n\t\t\t\t\t\t// User changed to date, adjust from date\r\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\r\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.defaultGap)\r\n\t\t\t\t\t\tthis.dateFrom = {\r\n\t\t\t\t\t\t\t...this.dateFrom,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// No specific field changed, swap them\r\n\t\t\t\t\t\tconst tempValue = this.dateFrom.value\r\n\t\t\t\t\t\tthis.dateFrom = { ...this.dateFrom, value: this.dateTo.value }\r\n\t\t\t\t\t\tthis.dateTo = { ...this.dateTo, value: tempValue }\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Re-validate after correction\r\n\t\t\t\t\tthis.validateAndCorrect()\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewValidationState.rangeError = 'End date must be after start date'\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check same date constraint\r\n\t\t\tif (!this.allowSameDate && daysBetween === 0) {\r\n\t\t\t\tif (this.autoCorrect && changedField) {\r\n\t\t\t\t\t// Auto-correct by adjusting the other date\r\n\t\t\t\t\tif (changedField === 'from') {\r\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\r\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.defaultGap)\r\n\t\t\t\t\t\tthis.dateTo = {\r\n\t\t\t\t\t\t\t...this.dateTo,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\r\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.defaultGap)\r\n\t\t\t\t\t\tthis.dateFrom = {\r\n\t\t\t\t\t\t\t...this.dateFrom,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Re-validate after correction\r\n\t\t\t\t\tthis.validateAndCorrect()\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewValidationState.rangeError = 'Start and end dates cannot be the same'\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check minimum gap\r\n\t\t\tif (this.minGap > 0 && daysBetween < this.minGap) {\r\n\t\t\t\tif (this.autoCorrect && changedField) {\r\n\t\t\t\t\t// Auto-correct to maintain minimum gap\r\n\t\t\t\t\tif (changedField === 'from') {\r\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\r\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.minGap)\r\n\t\t\t\t\t\tthis.dateTo = {\r\n\t\t\t\t\t\t\t...this.dateTo,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\r\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.minGap)\r\n\t\t\t\t\t\tthis.dateFrom = {\r\n\t\t\t\t\t\t\t...this.dateFrom,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Re-validate after correction\r\n\t\t\t\t\tthis.validateAndCorrect()\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewValidationState.rangeError = `Minimum ${this.minGap} day${this.minGap > 1 ? 's' : ''} required between dates`\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check maximum gap\r\n\t\t\tif (this.maxGap !== undefined && daysBetween > this.maxGap) {\r\n\t\t\t\tif (this.autoCorrect && changedField) {\r\n\t\t\t\t\t// Auto-correct to maintain maximum gap\r\n\t\t\t\t\tif (changedField === 'from') {\r\n\t\t\t\t\t\tconst newToDate = new Date(fromDate)\r\n\t\t\t\t\t\tnewToDate.setDate(newToDate.getDate() + this.maxGap)\r\n\t\t\t\t\t\tthis.dateTo = {\r\n\t\t\t\t\t\t\t...this.dateTo,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst newFromDate = new Date(toDate)\r\n\t\t\t\t\t\tnewFromDate.setDate(newFromDate.getDate() - this.maxGap)\r\n\t\t\t\t\t\tthis.dateFrom = {\r\n\t\t\t\t\t\t\t...this.dateFrom,\r\n\t\t\t\t\t\t\tvalue: this.formatDate(newFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// Re-validate after correction\r\n\t\t\t\t\tthis.validateAndCorrect()\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnewValidationState.rangeError = `Maximum ${this.maxGap} day${this.maxGap > 1 ? 's' : ''} allowed between dates`\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Check against min/max date constraints\r\n\t\t\tif (this.minDate) {\r\n\t\t\t\tconst minDateObj = this.parseDate(this.minDate)\r\n\t\t\t\tif (minDateObj && fromDate < minDateObj) {\r\n\t\t\t\t\tnewValidationState.dateFromError = 'Date is before minimum allowed date'\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.maxDate) {\r\n\t\t\t\tconst maxDateObj = this.parseDate(this.maxDate)\r\n\t\t\t\tif (maxDateObj && toDate > maxDateObj) {\r\n\t\t\t\t\tnewValidationState.dateToError = 'Date is after maximum allowed date'\r\n\t\t\t\t\thasError = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Update validation state\r\n\t\tthis.validationState = newValidationState\r\n\t\tthis.error = hasError\r\n\r\n\t\t// Emit change event with validation status\r\n\t\tthis.emitChange()\r\n\t}\r\n\r\n\t/**\r\n\t * Get computed min date for the \"to\" field based on \"from\" value\r\n\t */\r\n\tprivate getComputedMinDateTo(): string | undefined {\r\n\t\tif (!this.dateFrom.value) return this.minDate\r\n\r\n\t\tconst fromDate = this.parseDate(this.dateFrom.value)\r\n\t\tif (!fromDate) return this.minDate\r\n\r\n\t\t// Calculate minimum date based on constraints\r\n\t\tconst minToDate = new Date(fromDate)\r\n\t\t\r\n\t\tif (!this.allowSameDate) {\r\n\t\t\tminToDate.setDate(minToDate.getDate() + 1)\r\n\t\t}\r\n\t\t\r\n\t\tif (this.minGap > 0) {\r\n\t\t\tminToDate.setDate(fromDate.getDate() + this.minGap)\r\n\t\t}\r\n\r\n\t\t// Compare with global minDate if set\r\n\t\tif (this.minDate) {\r\n\t\t\tconst globalMin = this.parseDate(this.minDate)\r\n\t\t\tif (globalMin && globalMin > minToDate) {\r\n\t\t\t\treturn this.minDate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.formatDate(minToDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t}\r\n\r\n\t/**\r\n\t * Get computed max date for the \"from\" field based on \"to\" value\r\n\t */\r\n\tprivate getComputedMaxDateFrom(): string | undefined {\r\n\t\tif (!this.dateTo.value) return this.maxDate\r\n\r\n\t\tconst toDate = this.parseDate(this.dateTo.value)\r\n\t\tif (!toDate) return this.maxDate\r\n\r\n\t\t// Calculate maximum date based on constraints\r\n\t\tconst maxFromDate = new Date(toDate)\r\n\t\t\r\n\t\tif (!this.allowSameDate) {\r\n\t\t\tmaxFromDate.setDate(maxFromDate.getDate() - 1)\r\n\t\t}\r\n\t\t\r\n\t\tif (this.minGap > 0) {\r\n\t\t\tmaxFromDate.setDate(toDate.getDate() - this.minGap)\r\n\t\t}\r\n\r\n\t\t// Compare with global maxDate if set\r\n\t\tif (this.maxDate) {\r\n\t\t\tconst globalMax = this.parseDate(this.maxDate)\r\n\t\t\tif (globalMax && globalMax < maxFromDate) {\r\n\t\t\t\treturn this.maxDate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.formatDate(maxFromDate, this.type === 'datetime-local' ? 'YYYY-MM-DDTHH:mm' : 'YYYY-MM-DD')\r\n\t}\r\n\r\n\temitChange() {\r\n\t\tconst isValid = !this.error && \r\n\t\t\t!!this.dateFrom.value && \r\n\t\t\t!!this.dateTo.value && \r\n\t\t\t!this.validationState.dateFromError && \r\n\t\t\t!this.validationState.dateToError && \r\n\t\t\t!this.validationState.rangeError\r\n\r\n\t\tthis.dispatchEvent(new CustomEvent<SchmancyDateRangeInlineChangeEvent['detail']>('change', {\r\n\t\t\tdetail: {\r\n\t\t\t\tdateFrom: this.dateFrom.value,\r\n\t\t\t\tdateTo: this.dateTo.value,\r\n\t\t\t\tisValid\r\n\t\t\t},\r\n\t\t\tbubbles: true,\r\n\t\t\tcomposed: true\r\n\t\t}))\r\n\t}\r\n\r\n\tprotected render() {\r\n\t\t// Determine which error to show on each input\r\n\t\tconst fromError = this.validationState.dateFromError || this.validationState.rangeError\r\n\t\tconst toError = this.validationState.dateToError || this.validationState.rangeError\r\n\r\n\t\treturn html`\r\n\t\t\t<div class=\"w-full\">\r\n\t\t\t\t<div class=\"flex items-start gap-2 w-full\">\r\n\t\t\t\t\t<div class=\"flex-1\">\r\n\t\t\t\t\t\t<schmancy-input\r\n\t\t\t\t\t\t\t.type=${this.type}\r\n\t\t\t\t\t\t\t.label=${this.dateFrom.label}\r\n\t\t\t\t\t\t\t.value=${this.dateFrom.value}\r\n\t\t\t\t\t\t\t.min=${this.minDate}\r\n\t\t\t\t\t\t\t.max=${this.getComputedMaxDateFrom()}\r\n\t\t\t\t\t\t\t@change=${this.handleDateFromChange}\r\n\t\t\t\t\t\t\t.error=${!!fromError}\r\n\t\t\t\t\t\t\t.hint=${fromError || ''}\r\n\t\t\t\t\t\t\t.required=${this.required}\r\n\t\t\t\t\t\t\t.disabled=${this.disabled}\r\n\t\t\t\t\t\t\tsize=${this.compact ? 'sm' : 'md'}\r\n\t\t\t\t\t\t></schmancy-input>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"flex items-center justify-center ${this.compact ? 'pt-8' : 'pt-10'} px-1\">\r\n\t\t\t\t\t\t<schmancy-icon class=\"text-surface-onVariant opacity-50\">\r\n\t\t\t\t\t\t\tarrow_forward\r\n\t\t\t\t\t\t</schmancy-icon>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"flex-1\">\r\n\t\t\t\t\t\t<schmancy-input\r\n\t\t\t\t\t\t\t.type=${this.type}\r\n\t\t\t\t\t\t\t.label=${this.dateTo.label}\r\n\t\t\t\t\t\t\t.value=${this.dateTo.value}\r\n\t\t\t\t\t\t\t.min=${this.getComputedMinDateTo()}\r\n\t\t\t\t\t\t\t.max=${this.maxDate}\r\n\t\t\t\t\t\t\t@change=${this.handleDateToChange}\r\n\t\t\t\t\t\t\t.error=${!!toError}\r\n\t\t\t\t\t\t\t.hint=${toError || ''}\r\n\t\t\t\t\t\t\t.required=${this.required}\r\n\t\t\t\t\t\t\t.disabled=${this.disabled}\r\n\t\t\t\t\t\t\tsize=${this.compact ? 'sm' : 'md'}\r\n\t\t\t\t\t\t></schmancy-input>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t`\r\n\t}\r\n}"],"names":["SchmancyDateRangeInline","SchmancyFormField","super","arguments","this","type","dateFrom","label","value","dateTo","compact","autoCorrect","minGap","defaultGap","allowSameDate","validationState","dateFromError","dateToError","rangeError","connectedCallback","validateAndCorrect","setSmartDefaults","today","Date","tomorrow","setDate","getDate","format","formatDate","date","year","getFullYear","month","String","getMonth","padStart","day","getHours","getMinutes","dateStr","isNaN","getTime","date1","date2","Math","floor","e","newValue","target","required","error","emitChange","changedField","fromDate","parseDate","toDate","hasError","newValidationState","daysBetween","getDaysBetween","newToDate","newFromDate","tempValue","maxGap","minDate","minDateObj","maxDate","maxDateObj","getComputedMinDateTo","minToDate","globalMin","maxFromDate","globalMax","isValid","dispatchEvent","CustomEvent","detail","bubbles","composed","render","fromError","toError","html","getComputedMaxDateFrom","handleDateFromChange","disabled","handleDateToChange","__decorateClass","property","prototype","Object","Boolean","Number","state","customElement"],"mappings":"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"}