@nova-design-system/nova-webcomponents 3.12.0 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/dist/cjs/collapse.animation-47397763.js +218 -0
  2. package/dist/cjs/collapse.animation-47397763.js.map +1 -0
  3. package/dist/cjs/{constants-aac59496.js → constants-52f6f8e9.js} +6 -1
  4. package/dist/cjs/constants-52f6f8e9.js.map +1 -0
  5. package/dist/cjs/fade.animation-cf6eba0d.js +726 -0
  6. package/dist/cjs/fade.animation-cf6eba0d.js.map +1 -0
  7. package/dist/cjs/{grow.animation-6d003803.js → grow.animation-9258ba63.js} +6 -5
  8. package/dist/cjs/grow.animation-9258ba63.js.map +1 -0
  9. package/dist/cjs/index-c56424e5.js +4 -0
  10. package/dist/cjs/index.cjs.js +16 -7
  11. package/dist/cjs/index.cjs.js.map +1 -1
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/native.cjs.js +1 -1
  14. package/dist/cjs/nv-accordion-item.cjs.entry.js +72 -38
  15. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nv-accordion.cjs.entry.js +79 -65
  17. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-alert.cjs.entry.js +12 -12
  19. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  21. package/dist/cjs/nv-badge_2.cjs.entry.js +4 -4
  22. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-calendar.cjs.entry.js +14 -10
  24. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-datagrid.cjs.entry.js +1 -1
  26. package/dist/cjs/nv-dialog.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +9 -6
  28. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +0 -30
  30. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-fieldnumber.cjs.entry.js +1 -1
  32. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nv-fieldslider.cjs.entry.js +24 -16
  34. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nv-fieldtime.cjs.entry.js +1 -1
  36. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  37. package/dist/cjs/nv-notification.cjs.entry.js +120 -0
  38. package/dist/cjs/nv-notification.cjs.entry.js.map +1 -0
  39. package/dist/cjs/nv-popover.cjs.entry.js +4 -4
  40. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  41. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  42. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  43. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  44. package/dist/cjs/nv-togglebutton.cjs.entry.js +1 -1
  45. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +1 -1
  46. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  47. package/dist/cjs/slide.animation-bedfc827.js +70 -0
  48. package/dist/cjs/slide.animation-bedfc827.js.map +1 -0
  49. package/dist/cjs/{stylefire.es-717e022a.js → style-value-types.es-eea2f16f.js} +51 -696
  50. package/dist/cjs/style-value-types.es-eea2f16f.js.map +1 -0
  51. package/dist/cjs/{timeline.animation-155e8839.js → timeline.animation-2878afb6.js} +20 -1
  52. package/dist/cjs/timeline.animation-2878afb6.js.map +1 -0
  53. package/dist/collection/animations/collapse.animation.js +110 -50
  54. package/dist/collection/animations/collapse.animation.js.map +1 -1
  55. package/dist/collection/animations/index.js +1 -0
  56. package/dist/collection/animations/index.js.map +1 -1
  57. package/dist/collection/animations/slide.animation.js +65 -0
  58. package/dist/collection/animations/slide.animation.js.map +1 -0
  59. package/dist/collection/animations/timeline.animation.js +19 -1
  60. package/dist/collection/animations/timeline.animation.js.map +1 -1
  61. package/dist/collection/collection-manifest.json +1 -0
  62. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +78 -20
  63. package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -1
  64. package/dist/collection/components/nv-accordion/nv-accordion.js +88 -68
  65. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
  66. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +70 -36
  67. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
  68. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +3 -0
  69. package/dist/collection/components/nv-alert/nv-alert.css +1 -1
  70. package/dist/collection/components/nv-alert/nv-alert.js +6 -6
  71. package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
  72. package/dist/collection/components/nv-calendar/nv-calendar.css +4 -0
  73. package/dist/collection/components/nv-calendar/nv-calendar.docs.js +14 -0
  74. package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
  75. package/dist/collection/components/nv-calendar/nv-calendar.js +47 -3
  76. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  77. package/dist/collection/components/nv-calendar/partials/calendar-actions.js +2 -2
  78. package/dist/collection/components/nv-calendar/partials/calendar-actions.js.map +1 -1
  79. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +8 -0
  80. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  81. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +13 -11
  82. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js.map +1 -1
  83. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +0 -30
  84. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  85. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +1 -1
  86. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  87. package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +0 -1
  88. package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js.map +1 -1
  89. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +10 -10
  90. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -1
  91. package/dist/collection/components/nv-fieldslider/partials/field-input.js +13 -5
  92. package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
  93. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +27 -0
  94. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +0 -1
  95. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
  96. package/dist/collection/components/nv-notification/nv-notification.docs.js +72 -0
  97. package/dist/collection/components/nv-notification/nv-notification.docs.js.map +1 -0
  98. package/dist/collection/components/nv-notification/nv-notification.js +333 -0
  99. package/dist/collection/components/nv-notification/nv-notification.js.map +1 -0
  100. package/dist/collection/components/nv-notification/styles/nv-notification.css +155 -0
  101. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  102. package/dist/collection/components/nv-row/nv-row.js +1 -1
  103. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  104. package/dist/collection/components/nv-table/nv-table.js +2 -2
  105. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  106. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  107. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +0 -1
  108. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
  109. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  110. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  111. package/dist/collection/utils/constants.js +5 -0
  112. package/dist/collection/utils/constants.js.map +1 -1
  113. package/dist/components/index.js +9 -6
  114. package/dist/components/index.js.map +1 -1
  115. package/dist/components/nv-accordion-item.js +1 -1
  116. package/dist/components/nv-accordion.js +88 -71
  117. package/dist/components/nv-accordion.js.map +1 -1
  118. package/dist/components/nv-alert.js +13 -13
  119. package/dist/components/nv-alert.js.map +1 -1
  120. package/dist/components/nv-avatar.js +2 -2
  121. package/dist/components/nv-badge.js +1 -1
  122. package/dist/components/nv-breadcrumb.js +2 -2
  123. package/dist/components/nv-button.js +1 -1
  124. package/dist/components/nv-calendar.js +1 -1
  125. package/dist/components/nv-datagrid.js +3 -3
  126. package/dist/components/nv-dialog.js +4 -4
  127. package/dist/components/nv-dialogfooter.js +1 -1
  128. package/dist/components/nv-fielddate.js +5 -5
  129. package/dist/components/nv-fielddaterange.js +5 -5
  130. package/dist/components/nv-fielddropdown.js +4 -4
  131. package/dist/components/nv-fielddropdownitem.js +1 -1
  132. package/dist/components/nv-fieldmultiselect.js +4 -34
  133. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  134. package/dist/components/nv-fieldnumber.js +1 -1
  135. package/dist/components/nv-fieldpassword.js +2 -2
  136. package/dist/components/nv-fieldselect.js +2 -2
  137. package/dist/components/nv-fieldslider.js +27 -19
  138. package/dist/components/nv-fieldslider.js.map +1 -1
  139. package/dist/components/nv-fieldtext.js +1 -1
  140. package/dist/components/nv-fieldtime.js +4 -4
  141. package/dist/components/nv-icon.js +1 -1
  142. package/dist/components/nv-iconbutton.js +1 -1
  143. package/dist/components/nv-menu.js +3 -3
  144. package/dist/components/nv-menuitem.js +1 -1
  145. package/dist/components/nv-notification.d.ts +11 -0
  146. package/dist/components/nv-notification.js +150 -0
  147. package/dist/components/nv-notification.js.map +1 -0
  148. package/dist/components/nv-popover.js +1 -1
  149. package/dist/components/nv-row.js +1 -1
  150. package/dist/components/nv-stack.js +1 -1
  151. package/dist/components/nv-table.js +2 -2
  152. package/dist/components/nv-toggle.js +2 -2
  153. package/dist/components/nv-togglebutton.js +1 -1
  154. package/dist/components/nv-togglebuttongroup.js +1 -1
  155. package/dist/components/nv-tooltip.js +1 -1
  156. package/dist/components/{p-2030d84d.js → p-0b5816f7.js} +2 -2
  157. package/dist/components/{p-2030d84d.js.map → p-0b5816f7.js.map} +1 -1
  158. package/dist/components/{p-5f594b35.js → p-2277cfc8.js} +7 -2
  159. package/dist/components/p-2277cfc8.js.map +1 -0
  160. package/dist/components/{p-57ae32bc.js → p-2854cf01.js} +2 -2
  161. package/dist/components/{p-57ae32bc.js.map → p-2854cf01.js.map} +1 -1
  162. package/dist/components/{p-095c8285.js → p-2de17259.js} +2 -2
  163. package/dist/components/{p-095c8285.js.map → p-2de17259.js.map} +1 -1
  164. package/dist/components/p-31591941.js +216 -0
  165. package/dist/components/p-31591941.js.map +1 -0
  166. package/dist/components/{p-09cdd71f.js → p-42ea6b74.js} +34 -688
  167. package/dist/components/p-42ea6b74.js.map +1 -0
  168. package/dist/components/{p-0b015832.js → p-5073bfd6.js} +2 -2
  169. package/dist/components/{p-0b015832.js.map → p-5073bfd6.js.map} +1 -1
  170. package/dist/components/{p-2ad58e41.js → p-60244646.js} +5 -5
  171. package/dist/components/{p-2ad58e41.js.map → p-60244646.js.map} +1 -1
  172. package/dist/components/{p-b2c31970.js → p-68fa3890.js} +17 -11
  173. package/dist/components/p-68fa3890.js.map +1 -0
  174. package/dist/components/{p-b7629769.js → p-89ac047e.js} +4 -4
  175. package/dist/components/p-89ac047e.js.map +1 -0
  176. package/dist/components/{p-7372258e.js → p-99a55bc4.js} +2 -2
  177. package/dist/components/{p-7372258e.js.map → p-99a55bc4.js.map} +1 -1
  178. package/dist/{esm/timeline.animation-adf35ecb.js → components/p-a52cd849.js} +20 -2
  179. package/dist/components/p-a52cd849.js.map +1 -0
  180. package/dist/components/{p-4c3dc7e4.js → p-a9dc0824.js} +13 -10
  181. package/dist/components/p-a9dc0824.js.map +1 -0
  182. package/dist/components/{p-b3035205.js → p-ca38a8a9.js} +2 -2
  183. package/dist/components/{p-b3035205.js.map → p-ca38a8a9.js.map} +1 -1
  184. package/dist/components/{p-84f4b071.js → p-ddd0a394.js} +75 -41
  185. package/dist/components/p-ddd0a394.js.map +1 -0
  186. package/dist/components/{p-ddb7aa4e.js → p-e4ac8333.js} +6 -6
  187. package/dist/components/{p-ddb7aa4e.js.map → p-e4ac8333.js.map} +1 -1
  188. package/dist/components/{p-dc5dad90.js → p-e6c04562.js} +2 -2
  189. package/dist/components/{p-dc5dad90.js.map → p-e6c04562.js.map} +1 -1
  190. package/dist/components/{p-87079346.js → p-eb443b26.js} +3 -3
  191. package/dist/components/{p-87079346.js.map → p-eb443b26.js.map} +1 -1
  192. package/dist/components/p-eda2f9f3.js +68 -0
  193. package/dist/components/p-eda2f9f3.js.map +1 -0
  194. package/dist/components/p-ee0df37f.js +723 -0
  195. package/dist/components/p-ee0df37f.js.map +1 -0
  196. package/dist/components/{p-8d45dbfe.js → p-fb560fa3.js} +3 -2
  197. package/dist/components/p-fb560fa3.js.map +1 -0
  198. package/dist/esm/collapse.animation-acda1bf5.js +216 -0
  199. package/dist/esm/collapse.animation-acda1bf5.js.map +1 -0
  200. package/dist/esm/{constants-a857c476.js → constants-d0f19e7b.js} +7 -2
  201. package/dist/esm/constants-d0f19e7b.js.map +1 -0
  202. package/dist/esm/fade.animation-eb454088.js +723 -0
  203. package/dist/esm/fade.animation-eb454088.js.map +1 -0
  204. package/dist/esm/{grow.animation-f7b26024.js → grow.animation-5b2abb3a.js} +3 -2
  205. package/dist/esm/grow.animation-5b2abb3a.js.map +1 -0
  206. package/dist/esm/index-a1936cd0.js +4 -0
  207. package/dist/esm/index.js +10 -7
  208. package/dist/esm/index.js.map +1 -1
  209. package/dist/esm/loader.js +1 -1
  210. package/dist/esm/native.js +1 -1
  211. package/dist/esm/nv-accordion-item.entry.js +72 -38
  212. package/dist/esm/nv-accordion-item.entry.js.map +1 -1
  213. package/dist/esm/nv-accordion.entry.js +80 -66
  214. package/dist/esm/nv-accordion.entry.js.map +1 -1
  215. package/dist/esm/nv-alert.entry.js +12 -12
  216. package/dist/esm/nv-alert.entry.js.map +1 -1
  217. package/dist/esm/nv-avatar.entry.js +1 -1
  218. package/dist/esm/nv-badge_2.entry.js +4 -4
  219. package/dist/esm/nv-button.entry.js +1 -1
  220. package/dist/esm/nv-calendar.entry.js +14 -10
  221. package/dist/esm/nv-calendar.entry.js.map +1 -1
  222. package/dist/esm/nv-datagrid.entry.js +1 -1
  223. package/dist/esm/nv-dialog.entry.js +1 -1
  224. package/dist/esm/nv-dialogfooter_2.entry.js +9 -6
  225. package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
  226. package/dist/esm/nv-fieldmultiselect.entry.js +0 -30
  227. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  228. package/dist/esm/nv-fieldnumber.entry.js +1 -1
  229. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  230. package/dist/esm/nv-fieldslider.entry.js +24 -16
  231. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  232. package/dist/esm/nv-fieldtime.entry.js +1 -1
  233. package/dist/esm/nv-icon.entry.js +1 -1
  234. package/dist/esm/nv-notification.entry.js +116 -0
  235. package/dist/esm/nv-notification.entry.js.map +1 -0
  236. package/dist/esm/nv-popover.entry.js +4 -4
  237. package/dist/esm/nv-row.entry.js +1 -1
  238. package/dist/esm/nv-stack.entry.js +1 -1
  239. package/dist/esm/nv-table.entry.js +2 -2
  240. package/dist/esm/nv-toggle.entry.js +2 -2
  241. package/dist/esm/nv-togglebutton.entry.js +1 -1
  242. package/dist/esm/nv-togglebuttongroup.entry.js +1 -1
  243. package/dist/esm/nv-tooltip.entry.js +1 -1
  244. package/dist/esm/slide.animation-f444aa0b.js +68 -0
  245. package/dist/esm/slide.animation-f444aa0b.js.map +1 -0
  246. package/dist/esm/{stylefire.es-74da334a.js → style-value-types.es-f5d10b79.js} +34 -688
  247. package/dist/esm/style-value-types.es-f5d10b79.js.map +1 -0
  248. package/dist/esm/timeline.animation-79215cd4.js +41 -0
  249. package/dist/esm/timeline.animation-79215cd4.js.map +1 -0
  250. package/dist/native/index.esm.js +1 -1
  251. package/dist/native/index.esm.js.map +1 -1
  252. package/dist/native/native.css +1 -1
  253. package/dist/native/native.esm.js +1 -1
  254. package/dist/native/native.esm.js.map +1 -1
  255. package/dist/native/p-08582c21.entry.js +2 -0
  256. package/dist/native/p-08582c21.entry.js.map +1 -0
  257. package/dist/native/p-0a99c6fb.entry.js +2 -0
  258. package/dist/native/p-0a99c6fb.entry.js.map +1 -0
  259. package/dist/native/p-0e488b3d.entry.js +2 -0
  260. package/dist/native/p-0e488b3d.entry.js.map +1 -0
  261. package/dist/native/{p-3a8f65a9.entry.js → p-1f01fb64.entry.js} +2 -2
  262. package/dist/native/{p-c3ad7617.entry.js → p-225a05bf.entry.js} +2 -2
  263. package/dist/native/p-2277cfc8.js +2 -0
  264. package/dist/native/p-2277cfc8.js.map +1 -0
  265. package/dist/native/p-25f2ce81.entry.js +2 -0
  266. package/dist/native/{p-29ee7b1c.entry.js → p-29f68e07.entry.js} +2 -2
  267. package/dist/native/p-29f68e07.entry.js.map +1 -0
  268. package/dist/native/p-31591941.js +2 -0
  269. package/dist/native/p-31591941.js.map +1 -0
  270. package/dist/native/{p-63fea160.entry.js → p-33f503c5.entry.js} +2 -2
  271. package/dist/native/{p-43071c3b.entry.js → p-3784efdc.entry.js} +2 -2
  272. package/dist/native/{p-47901c83.entry.js → p-3f861ddc.entry.js} +2 -2
  273. package/dist/native/{p-ab1e1a96.entry.js → p-40c4a221.entry.js} +2 -2
  274. package/dist/native/p-42ea6b74.js +16 -0
  275. package/dist/native/p-42ea6b74.js.map +1 -0
  276. package/dist/native/{p-62aa0531.entry.js → p-52b8c872.entry.js} +2 -2
  277. package/dist/native/{p-e7a929e7.entry.js → p-5a43fe48.entry.js} +2 -2
  278. package/dist/native/{p-a63929db.entry.js → p-788e9ee5.entry.js} +3 -3
  279. package/dist/native/{p-f033c4ce.entry.js → p-7bbcf477.entry.js} +2 -2
  280. package/dist/native/p-8c823928.entry.js +2 -0
  281. package/dist/native/p-9a46baa9.entry.js +2 -0
  282. package/dist/native/p-9a46baa9.entry.js.map +1 -0
  283. package/dist/native/p-a52cd849.js +2 -0
  284. package/dist/native/p-a52cd849.js.map +1 -0
  285. package/dist/native/{p-48cf2457.entry.js → p-bb71a17f.entry.js} +2 -2
  286. package/dist/native/p-cfd5785e.entry.js +2 -0
  287. package/dist/native/p-cfd5785e.entry.js.map +1 -0
  288. package/dist/native/{p-bcff76ab.entry.js → p-d95ee31e.entry.js} +2 -2
  289. package/dist/native/p-da2c7d3c.entry.js +2 -0
  290. package/dist/native/p-da2c7d3c.entry.js.map +1 -0
  291. package/dist/native/p-eda2f9f3.js +2 -0
  292. package/dist/native/p-eda2f9f3.js.map +1 -0
  293. package/dist/native/p-ee0df37f.js +2 -0
  294. package/dist/native/p-ee0df37f.js.map +1 -0
  295. package/dist/native/p-ee516944.entry.js +2 -0
  296. package/dist/native/p-ee516944.entry.js.map +1 -0
  297. package/dist/native/p-f5120223.entry.js +2 -0
  298. package/dist/native/p-f5120223.entry.js.map +1 -0
  299. package/dist/native/{p-2d647761.entry.js → p-f5eb047e.entry.js} +2 -2
  300. package/dist/native/p-fb560fa3.js +2 -0
  301. package/dist/native/{p-8d45dbfe.js.map → p-fb560fa3.js.map} +1 -1
  302. package/dist/types/animations/collapse.animation.d.ts +10 -2
  303. package/dist/types/animations/index.d.ts +1 -0
  304. package/dist/types/animations/slide.animation.d.ts +11 -0
  305. package/dist/types/animations/timeline.animation.d.ts +17 -1
  306. package/dist/types/components/nv-accordion/nv-accordion.d.ts +5 -7
  307. package/dist/types/components/nv-accordion-item/nv-accordion-item.d.ts +23 -8
  308. package/dist/types/components/nv-alert/nv-alert.d.ts +1 -1
  309. package/dist/types/components/nv-calendar/nv-calendar.d.ts +4 -0
  310. package/dist/types/components/nv-calendar/partials/calendar-actions.d.ts +4 -0
  311. package/dist/types/components/nv-dialogfooter/nv-dialogfooter.d.ts +8 -4
  312. package/dist/types/components/nv-fieldslider/nv-fieldslider.d.ts +3 -2
  313. package/dist/types/components/nv-fieldslider/partials/field-input.d.ts +7 -3
  314. package/dist/types/components/nv-notification/nv-notification.d.ts +75 -0
  315. package/dist/types/components/nv-notification/nv-notification.docs.d.ts +4 -0
  316. package/dist/types/components.d.ts +142 -9
  317. package/dist/types/nova-docs.d.ts +6 -0
  318. package/dist/types/utils/constants.d.ts +4 -0
  319. package/dist/vscode-data.json +77 -3
  320. package/hydrate/index.js +642 -263
  321. package/hydrate/index.mjs +642 -263
  322. package/package.json +5 -1
  323. package/readme.md +169 -42
  324. package/dist/cjs/collapse.animation-a129dc3f.js +0 -86
  325. package/dist/cjs/collapse.animation-a129dc3f.js.map +0 -1
  326. package/dist/cjs/constants-aac59496.js.map +0 -1
  327. package/dist/cjs/fade.animation-644b5c4d.js +0 -70
  328. package/dist/cjs/fade.animation-644b5c4d.js.map +0 -1
  329. package/dist/cjs/grow.animation-6d003803.js.map +0 -1
  330. package/dist/cjs/stylefire.es-717e022a.js.map +0 -1
  331. package/dist/cjs/timeline.animation-155e8839.js.map +0 -1
  332. package/dist/components/p-09cdd71f.js.map +0 -1
  333. package/dist/components/p-15aeab4d.js +0 -23
  334. package/dist/components/p-15aeab4d.js.map +0 -1
  335. package/dist/components/p-1cbacdba.js +0 -68
  336. package/dist/components/p-1cbacdba.js.map +0 -1
  337. package/dist/components/p-4c3dc7e4.js.map +0 -1
  338. package/dist/components/p-5f594b35.js.map +0 -1
  339. package/dist/components/p-84f4b071.js.map +0 -1
  340. package/dist/components/p-8d45dbfe.js.map +0 -1
  341. package/dist/components/p-9a263d0e.js +0 -84
  342. package/dist/components/p-9a263d0e.js.map +0 -1
  343. package/dist/components/p-b2c31970.js.map +0 -1
  344. package/dist/components/p-b7629769.js.map +0 -1
  345. package/dist/esm/collapse.animation-16e3af45.js +0 -84
  346. package/dist/esm/collapse.animation-16e3af45.js.map +0 -1
  347. package/dist/esm/constants-a857c476.js.map +0 -1
  348. package/dist/esm/fade.animation-71e8e34c.js +0 -68
  349. package/dist/esm/fade.animation-71e8e34c.js.map +0 -1
  350. package/dist/esm/grow.animation-f7b26024.js.map +0 -1
  351. package/dist/esm/stylefire.es-74da334a.js.map +0 -1
  352. package/dist/esm/timeline.animation-adf35ecb.js.map +0 -1
  353. package/dist/native/p-09cdd71f.js +0 -16
  354. package/dist/native/p-09cdd71f.js.map +0 -1
  355. package/dist/native/p-0da8f0d1.entry.js +0 -2
  356. package/dist/native/p-0da8f0d1.entry.js.map +0 -1
  357. package/dist/native/p-15aeab4d.js +0 -2
  358. package/dist/native/p-15aeab4d.js.map +0 -1
  359. package/dist/native/p-1cbacdba.js +0 -2
  360. package/dist/native/p-1cbacdba.js.map +0 -1
  361. package/dist/native/p-29ee7b1c.entry.js.map +0 -1
  362. package/dist/native/p-38af3aaf.entry.js +0 -2
  363. package/dist/native/p-38af3aaf.entry.js.map +0 -1
  364. package/dist/native/p-3fcaac6d.entry.js +0 -2
  365. package/dist/native/p-3fcaac6d.entry.js.map +0 -1
  366. package/dist/native/p-5d352456.entry.js +0 -2
  367. package/dist/native/p-5f594b35.js +0 -2
  368. package/dist/native/p-5f594b35.js.map +0 -1
  369. package/dist/native/p-67d861e2.entry.js +0 -2
  370. package/dist/native/p-67d861e2.entry.js.map +0 -1
  371. package/dist/native/p-7703c736.entry.js +0 -2
  372. package/dist/native/p-7703c736.entry.js.map +0 -1
  373. package/dist/native/p-8d45dbfe.js +0 -2
  374. package/dist/native/p-9a263d0e.js +0 -2
  375. package/dist/native/p-9a263d0e.js.map +0 -1
  376. package/dist/native/p-9e0fe7e8.entry.js +0 -2
  377. package/dist/native/p-9e0fe7e8.entry.js.map +0 -1
  378. package/dist/native/p-ac5496e7.entry.js +0 -2
  379. package/dist/native/p-e603c6ed.entry.js +0 -2
  380. package/dist/native/p-e603c6ed.entry.js.map +0 -1
  381. /package/dist/native/{p-3a8f65a9.entry.js.map → p-1f01fb64.entry.js.map} +0 -0
  382. /package/dist/native/{p-c3ad7617.entry.js.map → p-225a05bf.entry.js.map} +0 -0
  383. /package/dist/native/{p-ac5496e7.entry.js.map → p-25f2ce81.entry.js.map} +0 -0
  384. /package/dist/native/{p-63fea160.entry.js.map → p-33f503c5.entry.js.map} +0 -0
  385. /package/dist/native/{p-43071c3b.entry.js.map → p-3784efdc.entry.js.map} +0 -0
  386. /package/dist/native/{p-47901c83.entry.js.map → p-3f861ddc.entry.js.map} +0 -0
  387. /package/dist/native/{p-ab1e1a96.entry.js.map → p-40c4a221.entry.js.map} +0 -0
  388. /package/dist/native/{p-62aa0531.entry.js.map → p-52b8c872.entry.js.map} +0 -0
  389. /package/dist/native/{p-e7a929e7.entry.js.map → p-5a43fe48.entry.js.map} +0 -0
  390. /package/dist/native/{p-a63929db.entry.js.map → p-788e9ee5.entry.js.map} +0 -0
  391. /package/dist/native/{p-f033c4ce.entry.js.map → p-7bbcf477.entry.js.map} +0 -0
  392. /package/dist/native/{p-5d352456.entry.js.map → p-8c823928.entry.js.map} +0 -0
  393. /package/dist/native/{p-48cf2457.entry.js.map → p-bb71a17f.entry.js.map} +0 -0
  394. /package/dist/native/{p-bcff76ab.entry.js.map → p-d95ee31e.entry.js.map} +0 -0
  395. /package/dist/native/{p-2d647761.entry.js.map → p-f5eb047e.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{h as t,r as e,c as n,H as r,g as s}from"./p-d0a33e64.js";import{C as a,h as i,W as o}from"./p-5f594b35.js";import{c}from"./p-0462f723.js";var l={exports:{}};(function(t,e){!function(e,n){t.exports=n()}(c,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",s="second",a="minute",i="hour",o="day",c="week",l="month",d="quarter",h="year",u="date",f="Invalid Date",v=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|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,g={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},y={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),s=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(s,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()),s=e.clone().add(r,l),a=n-s<0,i=e.clone().add(r+(a?-1:1),l);return+(-(r+(n-s)/(a?s-i:i-s))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:l,y:h,w:c,d:o,D:u,h:i,m:a,s,ms:r,Q:d}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},b="en",k={};k[b]=g;var w="$isDayjsObject",D=function(t){return t instanceof Y||!(!t||!t[w])},M=function t(e,n,r){var s;if(!e)return b;if("string"==typeof e){var a=e.toLowerCase();k[a]&&(s=a),n&&(k[a]=n,s=a);var i=e.split("-");if(!s&&i.length>1)return t(i[0])}else{var o=e.name;k[o]=e,s=o}return!r&&s&&(b=s),s||!r&&b},x=function(t,e){if(D(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new Y(n)},C=y;C.l=M,C.i=D,C.w=function(t,e){return x(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var Y=function(){function g(t){this.$L=M(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[w]=!0}var m=g.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(C.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(v);if(r){var s=r[2]-1||0,a=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],s,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],s,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}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 C},m.isValid=function(){return!(this.$d.toString()===f)},m.isSame=function(t,e){var n=x(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return x(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<x(t)},m.$g=function(t,e,n){return C.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=!!C.u(e)||e,d=C.p(t),f=function(t,e){var s=C.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?s:s.endOf(o)},v=function(t,e){return C.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},p=this.$W,g=this.$M,m=this.$D,y="set"+(this.$u?"UTC":"");switch(d){case h:return r?f(1,0):f(31,11);case l:return r?f(1,g):f(0,g+1);case c:var b=this.$locale().weekStart||0,k=(p<b?p+7:p)-b;return f(r?m-k:m+(6-k),g);case o:case u:return v(y+"Hours",0);case i:return v(y+"Minutes",1);case a:return v(y+"Seconds",2);case s:return v(y+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,c=C.p(t),d="set"+(this.$u?"UTC":""),f=(n={},n[o]=d+"Date",n[u]=d+"Date",n[l]=d+"Month",n[h]=d+"FullYear",n[i]=d+"Hours",n[a]=d+"Minutes",n[s]=d+"Seconds",n[r]=d+"Milliseconds",n)[c],v=c===o?this.$D+(e-this.$W):e;if(c===l||c===h){var p=this.clone().set(u,1);p.$d[f](v),p.init(),this.$d=p.set(u,Math.min(this.$D,p.daysInMonth())).$d}else f&&this.$d[f](v);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[C.p(t)]()},m.add=function(r,d){var u,f=this;r=Number(r);var v=C.p(d),p=function(t){var e=x(f);return C.w(e.date(e.date()+Math.round(t*r)),f)};if(v===l)return this.set(l,this.$M+r);if(v===h)return this.set(h,this.$y+r);if(v===o)return p(1);if(v===c)return p(7);var g=(u={},u[a]=e,u[i]=n,u[s]=t,u)[v]||1,m=this.$d.getTime()+r*g;return C.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||f;var r=t||"YYYY-MM-DDTHH:mm:ssZ",s=C.z(this),a=this.$H,i=this.$m,o=this.$M,c=n.weekdays,l=n.months,d=n.meridiem,h=function(t,n,s,a){return t&&(t[n]||t(e,r))||s[n].slice(0,a)},u=function(t){return C.s(a%12||12,t,"0")},v=d||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(p,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return C.s(e.$y,4,"0");case"M":return o+1;case"MM":return C.s(o+1,2,"0");case"MMM":return h(n.monthsShort,o,l,3);case"MMMM":return h(l,o);case"D":return e.$D;case"DD":return C.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,c,2);case"ddd":return h(n.weekdaysShort,e.$W,c,3);case"dddd":return c[e.$W];case"H":return String(a);case"HH":return C.s(a,2,"0");case"h":return u(1);case"hh":return u(2);case"a":return v(a,i,!0);case"A":return v(a,i,!1);case"m":return String(i);case"mm":return C.s(i,2,"0");case"s":return String(e.$s);case"ss":return C.s(e.$s,2,"0");case"SSS":return C.s(e.$ms,3,"0");case"Z":return s}return null}(t)||s.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,u,f){var v,p=this,g=C.p(u),m=x(r),y=(m.utcOffset()-this.utcOffset())*e,b=this-m,k=function(){return C.m(p,m)};switch(g){case h:v=k()/12;break;case l:v=k();break;case d:v=k()/3;break;case c:v=(b-y)/6048e5;break;case o:v=(b-y)/864e5;break;case i:v=b/n;break;case a:v=b/e;break;case s:v=b/t;break;default:v=b}return f?v:C.a(v)},m.daysInMonth=function(){return this.endOf(l).$D},m.$locale=function(){return k[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=M(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return C.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()},g}(),S=Y.prototype;return x.prototype=S,[["$ms",r],["$s",s],["$m",a],["$H",i],["$W",o],["$M",l],["$y",h],["$D",u]].forEach((function(t){S[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),x.extend=function(t,e){return t.$i||(t(e,Y,x),t.$i=!0),x},x.locale=M,x.isDayjs=D,x.unix=function(t){return x(1e3*t)},x.en=k[b],x.Ls=k,x.p={},x}))})(l);const d=l.exports;var h={exports:{}};(function(t,e){!function(e,n){t.exports=n()}(c,(function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,r=/\d\d/,s=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,i={},o=function(t){return(t=+t)+(t>68?1900:2e3)};var c=function(t){return function(e){this[t]=+e}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if("Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:"+"===e[0]?-n:n}(t)}],d=function(t){var e=i[t];return e&&(e.indexOf?e:e.s.concat(e.f))},h=function(t,e){var n,r=i.meridiem;if(r){for(var s=1;s<=24;s+=1)if(t.indexOf(r(s,0,e))>-1){n=s>12;break}}else n=t===(e?"pm":"PM");return n},u={A:[a,function(t){this.afternoon=h(t,!1)}],a:[a,function(t){this.afternoon=h(t,!0)}],Q:[n,function(t){this.month=3*(t-1)+1}],S:[n,function(t){this.milliseconds=100*+t}],SS:[r,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[s,c("seconds")],ss:[s,c("seconds")],m:[s,c("minutes")],mm:[s,c("minutes")],H:[s,c("hours")],h:[s,c("hours")],HH:[s,c("hours")],hh:[s,c("hours")],D:[s,c("day")],DD:[r,c("day")],Do:[a,function(t){var e=i.ordinal,n=t.match(/\d+/);if(this.day=n[0],e)for(var r=1;r<=31;r+=1)e(r).replace(/\[|\]/g,"")===t&&(this.day=r)}],w:[s,c("week")],ww:[r,c("week")],M:[s,c("month")],MM:[r,c("month")],MMM:[a,function(t){var e=d("months"),n=(d("monthsShort")||e.map((function(t){return t.slice(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[a,function(t){var e=d("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,c("year")],YY:[r,function(t){this.year=o(t)}],YYYY:[/\d{4}/,c("year")],Z:l,ZZ:l};function f(n){var r,s;r=n,s=i&&i.formats;for(var a=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,r){var a=r&&r.toUpperCase();return n||s[r]||t[r]||s[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),o=a.length,c=0;c<o;c+=1){var l=a[c],d=u[l],h=d&&d[0],f=d&&d[1];a[c]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(t){for(var e={},n=0,r=0;n<o;n+=1){var s=a[n];if("string"==typeof s)r+=s.length;else{var i=s.regex,c=s.parser,l=t.slice(r),d=i.exec(l)[0];c.call(e,d),t=t.replace(d,"")}}return function(t){var e=t.afternoon;if(void 0!==e){var n=t.hours;e?n<12&&(t.hours+=12):12===n&&(t.hours=0),delete t.afternoon}}(e),e}}return function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(o=t.parseTwoDigitYear);var r=e.prototype,s=r.parse;r.parse=function(t){var e=t.date,r=t.utc,a=t.args;this.$u=r;var o=a[1];if("string"==typeof o){var c=!0===a[2],l=!0===a[3],d=c||l,h=a[2];l&&(h=a[2]),i=this.$locale(),!c&&h&&(i=n.Ls[h]),this.$d=function(t,e,n,r){try{if(["x","X"].indexOf(e)>-1)return new Date(("X"===e?1e3:1)*t);var s=f(e)(t),a=s.year,i=s.month,o=s.day,c=s.hours,l=s.minutes,d=s.seconds,h=s.milliseconds,u=s.zone,v=s.week,p=new Date,g=o||(a||i?1:p.getDate()),m=a||p.getFullYear(),y=0;a&&!i||(y=i>0?i-1:p.getMonth());var b,k=c||0,w=l||0,D=d||0,M=h||0;return u?new Date(Date.UTC(m,y,g,k,w,D,M+60*u.offset*1e3)):n?new Date(Date.UTC(m,y,g,k,w,D,M)):(b=new Date(m,y,g,k,w,D,M),v&&(b=r(b).week(v).toDate()),b)}catch(t){return new Date("")}}(e,o,r,n),this.init(),h&&!0!==h&&(this.$L=this.locale(h).$L),d&&e!=this.format(o)&&(this.$d=new Date("")),i={}}else if(o instanceof Array)for(var u=o.length,v=1;v<=u;v+=1){a[1]=o[v-1];var p=n.apply(this,a);if(p.isValid()){this.$d=p.$d,this.$L=p.$L,this.init();break}v===u&&(this.$d=new Date(""))}else s.call(this,t)}}}))})(h);const u=h.exports;var f={exports:{}};(function(t,e){!function(e,n){t.exports=n()}(c,(function(){var t="minute",e=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(r,s,a){var i=s.prototype;a.utc=function(t){var e={date:t,utc:!0,args:arguments};return new s(e)},i.utc=function(e){var n=a(this.toDate(),{locale:this.$L,utc:!0});return e?n.add(this.utcOffset(),t):n},i.local=function(){return a(this.toDate(),{locale:this.$L,utc:!1})};var o=i.parse;i.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var c=i.init;i.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else c.call(this)};var l=i.utcOffset;i.utcOffset=function(r,s){var a=this.$utils().u;if(a(r))return this.$u?0:a(this.$offset)?l.call(this):this.$offset;if("string"==typeof r&&(r=function(t){void 0===t&&(t="");var r=t.match(e);if(!r)return null;var s=(""+r[0]).match(n)||["-",0,0],a=s[0],i=60*+s[1]+ +s[2];return 0===i?0:"+"===a?i:-i}(r),null===r))return this;var i=Math.abs(r)<=16?60*r:r,o=this;if(s)return o.$offset=i,o.$u=0===r,o;if(0!==r){var c=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(i+c,t)).$offset=i,o.$x.$localOffset=c}else o=this.utc();return o};var d=i.format;i.format=function(t){var e=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return d.call(this,e)},i.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},i.isUTC=function(){return!!this.$u},i.toISOString=function(){return this.toDate().toISOString()},i.toString=function(){return this.toDate().toUTCString()};var h=i.toDate;i.toDate=function(t){return"s"===t&&this.$offset?a(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():h.call(this)};var u=i.diff;i.diff=function(t,e,n){if(t&&this.$u===t.$u)return u.call(this,t,e,n);var r=this.local(),s=a(t).local();return u.call(r,s,e,n)}}}))})(f);const v=f.exports;var p={exports:{}};(function(t,e){!function(e,n){t.exports=n()}(c,(function(){var t="week",e="year";return function(n,r,s){var a=r.prototype;a.week=function(n){if(void 0===n&&(n=null),null!==n)return this.add(7*(n-this.week()),"day");var r=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var a=s(this).startOf(e).add(1,e).date(r),i=s(this).endOf(t);if(a.isBefore(i))return 1}var o=s(this).startOf(e).date(r).startOf(t).subtract(1,"millisecond"),c=this.diff(o,t,!0);return c<0?s(this).startOf("week").week():Math.ceil(c)},a.weeks=function(t){return void 0===t&&(t=null),this.week(t)}}}))})(p);const g=p.exports;d.extend(u);d.extend(v);d.extend(g);function m(t,e){if(!t)return"";const n=e.dateFormat.includes("Z");const r=e.dateFormat==="YYYY-MM-DD[T]HH:mm:ss[Z]";if(r){return t.toISOString()}if(e.dateFormat==="Ticks"){const e=t.getTime()*1e4+621355968e9;return e.toString()}if(e.dateFormat==="X"){return d(t).unix().toString()}if(e.dateFormat==="x"){return t.getTime().toString()}return n?d(t).utc().format(e.dateFormat):d(t).format(e.dateFormat)}function y(t,e,n){if(!t||!e)return false;if(n.isUTCMode){return t.getUTCFullYear()===e.getUTCFullYear()&&t.getUTCMonth()===e.getUTCMonth()&&t.getUTCDate()===e.getUTCDate()}else{return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}}function b(t,e,n){if(!t||!e)return false;if(n.isUTCMode){return t.getUTCFullYear()<e.getUTCFullYear()||t.getUTCFullYear()===e.getUTCFullYear()&&t.getUTCMonth()<e.getUTCMonth()||t.getUTCFullYear()===e.getUTCFullYear()&&t.getUTCMonth()===e.getUTCMonth()&&t.getUTCDate()<=e.getUTCDate()}else{return t.getFullYear()<e.getFullYear()||t.getFullYear()===e.getFullYear()&&t.getMonth()<e.getMonth()||t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()<=e.getDate()}}function k(t,e,n){if(!t||!e)return false;if(n.isUTCMode){return t.getUTCFullYear()>e.getUTCFullYear()||t.getUTCFullYear()===e.getUTCFullYear()&&t.getUTCMonth()>e.getUTCMonth()||t.getUTCFullYear()===e.getUTCFullYear()&&t.getUTCMonth()===e.getUTCMonth()&&t.getUTCDate()>=e.getUTCDate()}else{return t.getFullYear()>e.getFullYear()||t.getFullYear()===e.getFullYear()&&t.getMonth()>e.getMonth()||t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()>=e.getDate()}}function w(t){const e=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate()));e.setUTCDate(e.getUTCDate()+3-(e.getUTCDay()+6)%7);const n=new Date(Date.UTC(e.getUTCFullYear(),0,4));return 1+Math.round(((e.getTime()-n.getTime())/864e5-3+(n.getUTCDay()+6)%7)/7)}function D(t,e){if(t instanceof Date)return t;const n=e.includes("Z");if(typeof t==="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/.test(t)){try{const e=new Date(t);if(!isNaN(e.getTime())){return e}}catch(t){console.error("Error parsing ISO date:",t)}}if(e==="X"){const e=Number(t);if(isNaN(e))return null;return n?d.unix(e).utc().toDate():d.unix(e).toDate()}if(e==="x"){const e=Number(t);if(isNaN(e))return null;return n?d(e).utc().toDate():d(e).toDate()}if(e==="Ticks"){const e=Number(t);if(isNaN(e))return null;const r=(e-621355968e9)/1e4;return n?d(r).utc().toDate():d(r).toDate()}let r;if(n){r=d.utc(t,e,true)}else{r=d(t,e,true)}if(!r.isValid()){return null}return r.toDate()}function M(t,e,n,r,s,a){if(!t)return true;if(e){const n=D(e,s);if(n&&t<n){return true}}if(n){const e=D(n,s);if(e&&t>e){return true}}return r.some((e=>y(t,e,{isUTCMode:a})))}const x=(t,e,n)=>{if(!n||!e||!t){return false}const r=e<n?e:n;const s=e<n?n:e;return t>r&&t<s};const C=(t,e,n,r,s,a,i)=>{if(!e||!t){return true}const o=t<e?t:e;const c=t<e?e:t;const l=new Date(o);while(l<=c){if(M(l,n,r,s,a,i)){return false}l.setDate(l.getDate()+1)}return true};const Y=e=>{const{date:n,dayOfMonth:r,isCurrentMonth:s,isSelected:a,isInRange:i,isStart:o,isEnd:c,isToday:l,isDisabled:d,onClick:h,onDayHover:u,isInHoverRange:f,isHoverRangeValid:v}=e;const p=["day",a?"selected":"",o?"range-start":"",c?"range-end":"",i?"in-range":"",d?"disabled":"",!s?"outside-month":"",l?"is-today":"",f&&v?"hover-range":"",f&&!v?"hover-blocked":""].filter(Boolean).join(" ");return t("div",{class:p,"data-date":n.toISOString(),onClick:!d?h:undefined,onMouseEnter:u,"aria-disabled":d},r)};const S=e=>{const{onReset:n,onConfirm:r,useSlot:s=false}=e;return t("div",{class:"datepicker-actions"},s?t("slot",{name:"actions"},t("nv-button",{emphasis:"low",size:"xs",onClick:n},"Cancel"),t("nv-button",{size:"xs",onClick:r},"OK")):t("div",null,t("nv-button",{emphasis:"low",size:"xs",onClick:n},"Cancel"),t("nv-button",{size:"xs",onClick:r},"OK")))};const T=e=>{const{weeks:n,localizedWeekText:r,selectionType:s,onWeekSelect:a,calendarIndex:i}=e;const o=t=>{if(s==="range"){const e=t.map((t=>t.date));a(e,i)}};const c=t=>()=>o(t);return t("div",{class:"week-numbers"},t("div",{class:"week-header"},r),n.map(((e,n)=>{var r;const a=((r=e.find((t=>t.date)))===null||r===void 0?void 0:r.date)||new Date;const i=w(a);const o=s==="range";return t("div",{class:`week-number ${o?"clickable":""}`,onClick:c(e),key:`week-${n}`,role:o?"button":undefined,tabindex:o?0:undefined},i)})))};const $=e=>{const{shortcuts:n,placement:r,onShortcutClick:s}=e;if(!n||n.length===0){return null}const a=t=>()=>s(t);return t("div",{class:`shortcuts-container shortcuts-placement-${r}`},n.map(((e,n)=>t("nv-button",{key:`shortcut-${n}`,emphasis:"lower",size:"xs","aria-label":e.label,onClick:a(e)},e.label))))};const H=e=>{const{currentDate:n,months:r,numberOfCalendars:s,calendarIndex:a,monthOffset:i,onMonthChange:o,onMonthSelect:c,onYearChange:l}=e;const d=t=>()=>o(t);const h=t=>e=>c(e,t);const u=t=>e=>l(e,t);const f=(n.getUTCMonth()+i)%12;const v=n.getUTCFullYear()+Math.floor((n.getUTCMonth()+i)/12);return t("div",{class:"header"},s>1&&a===0&&t("nv-iconbutton",{class:"nav-left",emphasis:"lower",name:"chevron-left",onClick:d(-1)}),t("div",{class:"date-controls"},t("select",{class:"month-select mr-4",onChange:h(i)},r.map((e=>t("option",{key:e.value,value:e.value,selected:e.value===f},e.label)))),t("input",{type:"number",class:"year-input",min:"1950",max:"2100",value:v,onChange:u(i)})),s===1&&t("div",{class:"nav-buttons"},t("nv-iconbutton",{emphasis:"lower",name:"chevron-left",onClick:d(-1)}),t("nv-iconbutton",{emphasis:"lower",name:"chevron-right",onClick:d(1)})),s>1&&a===s-1&&t("nv-iconbutton",{emphasis:"lower",name:"chevron-right",onClick:d(1),class:"nav-right"}))};const z=e=>{const{days:n,dayNames:r,selectionType:s,selectedDate:a,startDate:i,endDate:o,isUTCMode:c,onDayClick:l,isDateInRange:d,isToday:h,onDayHover:u,onMouseLeave:f,hoverDate:v,isInHoverRange:p,isHoverRangeValid:g}=e;return t("div",{class:"days-container"},t("div",{class:"days-header"},r.map(((e,n)=>t("div",{class:"day-header",key:`day-header-${n}`},e)))),t("div",{class:"days-grid",onMouseLeave:f},n.map((e=>{if(e.isBlank){return t("div",{class:"day day-blank"})}const n=e.date;if(!n||!e.dayOfMonth){return t("div",{class:"day-cell is-disabled is-empty"})}const r=s==="single"&&y(n,a,{isUTCMode:c});const f=d(n);const m=y(n,i,{isUTCMode:c});const b=y(n,o,{isUTCMode:c});const k=h(n);const w=p(n,i,v);const D=g(i,v);return t(Y,{date:n,dayOfMonth:e.dayOfMonth,isCurrentMonth:e.isCurrentMonth,isSelected:r,isInRange:f,isStart:m,isEnd:b,isToday:k,isDisabled:e.isDisabled,selectionType:s,onClick:l,onDayHover:u,isInHoverRange:w,isHoverRangeValid:D})}))))};const I='nv-calendar{display:block}.datepicker-root{display:flex;justify-content:center;align-items:flex-start;width:auto}.datepicker-container{font-family:system-ui, sans-serif;display:flex;flex-direction:column;align-items:stretch;background:var(--components-calendar-background);border-radius:var(--calendar-radius);padding:var(--calendar-padding);box-shadow:0px var(--shadow-y-axis-md-1) var(--shadow-blur-md-1) var(--shadow-spread-md, 0) var(--shadow-color-opacity-0), 0px var(--shadow-y-axis-md-2) var(--shadow-blur-md-2) var(--shadow-spread-md, 0) var(--shadow-color-opacity-2);border:1px solid var(--components-calendar-border);width:auto;max-width:100%}.datepicker-container-single{max-width:300px}.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-left),.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-container-single:has(.shortcuts-placement-left),.datepicker-container-single:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-wrapper{display:flex;justify-content:center;align-items:flex-start;gap:var(--calendar-gap-x);width:auto;overflow-x:hidden}.datepicker-wrapper::-webkit-scrollbar{width:6px;height:6px}.datepicker-wrapper::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}.datepicker-wrapper::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}.datepicker-wrapper.single{justify-content:center}.calendar-container{display:flex;flex-direction:column;align-items:center;padding:var(--calendar-padding);width:auto;position:relative}.calendar-separator{width:1px;background:var(--components-calendar-border);height:auto;min-height:100%;margin:0 10px}.header{display:flex;justify-content:start;align-items:center;margin-bottom:var(--calendar-header-margin-bottom);width:100%}.header nv-iconbutton{width:var(--calendar-header-button-size);height:var(--calendar-header-button-size)}.nav-buttons{display:flex;gap:var(--spacing-0);margin-left:auto}.nav-left{order:-1}.date-controls{display:flex;gap:var(--spacing-1);align-items:center;min-height:34px;justify-content:center}.datepicker-container-single .date-controls{justify-content:flex-start}.datepicker-container:not(.datepicker-container-single) .date-controls{justify-content:start;flex-grow:1}.date-controls .month-select,.date-controls .year-input{background:transparent !important}.calendar-wrapper:nth-child(n+2) .datepicker-container{margin-left:42px}.calendar-grid{display:grid;grid-template-columns:auto 1fr;column-gap:var(--calendar-weeks-calendar-gap-x);position:relative}.calendar-grid.slide-left{animation:slideLeft 0.3s ease-out}.calendar-grid.slide-right{animation:slideRight 0.3s ease-out}.week-numbers{display:grid;grid-template-rows:var(--calendar-cell-size) repeat(6, var(--calendar-cell-size));background:var(--components-calendar-weeks-background);color:var(--components-calendar-weeks-text);border-radius:var(--calendar-weeks-radius);width:var(--calendar-weeks-size);row-gap:var(--calendar-grid-gap-y)}.week-numbers .clickable{cursor:pointer}.week-numbers .clickable:hover{background-color:var(--components-calendar-weeks-background-hover);color:var(--components-calendar-weeks-text-hover);border-radius:var(--calendar-radius)}.week-header,.week-number{display:grid;place-items:center;font-size:var(--calendar-cell-font-size)}.week-header{font-weight:700;color:var(--components-calendar-weeks-text)}.week-number{color:var(--components-calendar-cell-text)}.days-container{display:grid;grid-template-rows:auto 1fr;row-gap:var(--calendar-grid-gap-y)}.days-header{display:grid;grid-template-columns:repeat(7, var(--calendar-cell-size));height:var(--calendar-cell-size)}.day-header{display:grid;place-items:center;font-size:var(--calendar-cell-font-size);color:var(--components-calendar-cell-text)}.days-grid{display:grid;grid-template-columns:repeat(7, var(--calendar-cell-size));grid-template-rows:repeat(6, var(--calendar-cell-size));animation:fadeIn 0.2s ease-in;row-gap:var(--calendar-grid-gap-y);z-index:0}.day{display:grid;place-items:center;width:var(--calendar-cell-size);height:var(--calendar-cell-size);font-size:var(--calendar-cell-font-size);border-radius:var(--calendar-cell-radius);cursor:pointer;border:none;background:transparent;transition:all 0.2s ease;text-align:center;animation:scaleIn 0.2s ease-out}.day:hover:not(.disabled,.empty,.selected){background:var(--components-calendar-cell-background-hover);color:var(--components-calendar-cell-text-hover)}.day.selected,.day.selected:hover .day.is-today.selected,.day.is-today.selected:hover{background:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected) !important}.day.disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.day.is-empty{pointer-events:none;background-color:transparent;border-color:transparent}.day.day-blank{pointer-events:none;background-color:transparent;border-color:transparent}.day.outside-month{color:var(--components-calendar-cell-text);opacity:var(--opacity-disabled)}.day.outside-month.selected{opacity:1 !important;color:var(--components-calendar-cell-text-selected)}.day.outside-month.in-range{opacity:0.5 !important;background-color:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-in-range)}.day.outside-month.in-range:hover{opacity:0.7 !important;background-color:var(--components-calendar-cell-background-in-range)}.day.in-range{background:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-in-range);border-radius:0;position:relative}.day.range-start,.day.range-start:focus,.day.range-start:hover,.day.range-end,.day.range-end:focus,.day.range-end:hover{background-color:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected) !important}.day.range-start,.day.range-end,.day.range-start.is-today,.day.range-end.is-today{background:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected);position:relative;border-radius:var(--radius-rounded-full)}.day.range-start:hover,.day.range-end:hover,.day.range-start.is-today:hover,.day.range-end.is-today:hover{color:var(--components-calendar-cell-text-today)}.day.range-start:before,.day.range-end:before,.day.range-start.is-today:before,.day.range-end.is-today:before{content:"";position:absolute;bottom:0;left:0;right:0;top:0;z-index:-1;background-color:var(--components-calendar-cell-background-in-range);border-radius:var(--radius-rounded-full);width:auto;height:auto}.day.range-start:has(~.range-end):before,.day.range-start:has(+.in-range):before{border-top-right-radius:0;border-bottom-right-radius:0}.day.range-end:before{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.day.outside-month.range-start,.day.outside-month.range-end{opacity:1 !important;background:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected)}.day.is-today{font-weight:700;position:relative;color:var(--components-calendar-cell-text-today)}.day.is-today.range-start,.day.is-today.range-end{color:var(--components-calendar-cell-text-selected)}.day.is-today.range-start:hover,.day.is-today.range-end:hover{color:var(--components-calendar-cell-text-today)}.day.is-today::after{content:"";position:absolute;bottom:var(--spacing-1);left:50%;transform:translateX(-50%);width:var(--calendar-cell-dot-size);height:var(--calendar-cell-dot-size);background-color:currentColor;border-radius:50%}.day.is-today.selected::after{color:var(--components-calendar-cell-text-selected)}.day.is-today.selected::after::after{background-color:var(--components-calendar-cell-dot-selected)}.day.hover-range{background-color:var(--components-calendar-cell-background-hover)}.day.hover-blocked{background-color:var(--components-calendar-cell-background-hover)}.day.disabled.hover-blocked{background-color:transparent}.calendar-footer{display:flex;gap:var(--spacing-1);justify-content:flex-start;width:100%;flex-wrap:wrap}.footer-placement-left{justify-content:flex-start}.footer-placement-right{justify-content:flex-end}.footer-placement-center{justify-content:center}.datepicker-controls{display:flex;flex-direction:column;border-top:1px solid var(--components-calendar-border);padding:var(--calendar-controls-padding-top) var(--calendar-padding) var(--calendar-padding);gap:var(--calendar-grid-gap-y);margin-top:var(--calendar-controls-margin-top)}.datepicker-actions{display:flex;justify-content:flex-end;gap:var(--spacing-1);width:100%}.datepicker-actions slot-fb{display:contents !important}.calendar-footer+.datepicker-actions{margin-top:0}.shortcuts-placement-left,.shortcuts-placement-right{display:flex;flex-direction:column;gap:var(--spacing-1);margin-top:var(--spacing-4)}.shortcuts-placement-left{align-items:flex-end}.shortcuts-placement-right{align-items:flex-start}@keyframes slideLeft{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideRight{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}';const N=I;const _=class{constructor(r){e(this,r);this.singleDateChange=n(this,"singleDateChange",7);this.rangeDateChange=n(this,"rangeDateChange",7);this.valueChanged=n(this,"valueChanged",7);this.firstDayOfWeek=1;this.numberOfCalendars=1;this.value="";this.locale="en-BE";this.dateFormat="YYYY-MM-DD";this.shortcutsPlacement="bottom";this.selectionType="single";this.showActions=false;this.parsedDisabledDates=[];this.isUserClick=false;this.currentDate=null;this.selectedDate=null;this.startDate=null;this.endDate=null;this.hoverDate=null;this.months=[];this.parseUnifiedValue=t=>{if(!t){this.selectedDate=null;this.startDate=null;this.endDate=null;return}const e=t.split(",").map((t=>t.trim())).filter(Boolean);if(this.selectionType==="range"&&e.length<2){console.warn(`Invalid date range format: ${t}`);this.startDate=null;this.endDate=null;return}if(this.selectionType==="single"&&e.length>=1){const t=D(e[0],this.dateFormat);if(t){this.selectedDate=t;if(!this.showActions){this.singleValue=e[0]}const n=this.el.getAttribute("data-prevent-navigation")==="true";if(!n&&!this.isUserClick){this.currentDate=t}}else{console.warn(`Invalid date format: ${e[0]}`);this.selectedDate=null;if(!this.showActions){this.singleValue=""}}}else if(this.selectionType==="range"&&e.length>=2){const t=D(e[0],this.dateFormat);const n=D(e[1],this.dateFormat);if(t&&n){this.startDate=t;this.endDate=n;if(!this.showActions){this.rangeValue={start:e[0],end:e[1]}}const r=this.el.getAttribute("data-prevent-navigation")==="true";if(!r&&!this.isUserClick){this.currentDate=t}}else{console.warn(`Invalid date range format: ${e===null||e===void 0?void 0:e[0]}, ${e===null||e===void 0?void 0:e[1]}`);this.startDate=null;this.endDate=null;if(!this.showActions){this.rangeValue={start:"",end:""}}}}};this.changeMonth=t=>{const e=new Date(this.currentDate);e.setUTCDate(1);e.setUTCMonth(e.getUTCMonth()+t);const n=this.el.querySelectorAll(".calendar-grid");n.forEach((e=>{e.classList.remove("slide-left","slide-right");const n=t>0?"slide-left":"slide-right";e.classList.add(n);setTimeout((()=>e.classList.remove(n)),300)}));this.currentDate=e};this.handleMouseLeave=()=>{this.hoverDate=null};this.handleDayHover=t=>{const e=t.target;const n=e.getAttribute("data-date");if(n&&this.selectionType==="range"&&this.startDate&&!this.endDate){this.hoverDate=new Date(n)}};this.handleDateSelection=t=>{const e=t.target;const n=e.getAttribute("data-date");if(!n)return;const r=new Date(n);if(this.isDateDisabled(r)){return}this.isUserClick=true;if(this.selectionType==="single"){this.handleSingleSelection(r)}else{this.handleRangeSelection(r)}requestAnimationFrame((()=>{this.isUserClick=false}))};this.handleSingleSelection=t=>{if(!t)return;const e=m(t,{dateFormat:this.dateFormat});this.selectedDate=t;this.value=e;this.valueChanged.emit(e);if(!this.showActions){this.singleValue=e;this.singleDateChange.emit(e)}};this.handleRangeSelection=t=>{if(!this.startDate||this.startDate&&this.endDate){this.startDate=t;this.endDate=null}else{this.endDate=t;this.hoverDate=null;if(this.startDate>this.endDate){[this.startDate,this.endDate]=[this.endDate,this.startDate]}const e=m(this.startDate,{dateFormat:this.dateFormat});const n=m(this.endDate,{dateFormat:this.dateFormat});this.value=`${e},${n}`;this.valueChanged.emit(this.value);if(!this.showActions){const t={start:e,end:n};this.rangeDateChange.emit(t);this.rangeValue=t}}};this.isDateDisabled=t=>M(t,this.min,this.max,this.parsedDisabledDates,this.dateFormat,this.isUTCMode);this.isDateInRange=t=>{if(!t||!this.startDate||!this.endDate)return false;const e=D(t,this.dateFormat);const n=D(this.startDate,this.dateFormat);const r=D(this.endDate,this.dateFormat);if(isNaN(n.getTime())||isNaN(r.getTime())){return false}if(n>r)return false;return k(e,n,{isUTCMode:this.isUTCMode})&&b(e,r,{isUTCMode:this.isUTCMode})};this.getDayNames=()=>{let t;if(a[this.locale]){t=[...a[this.locale]]}else{const e=new Intl.DateTimeFormat(this.locale,{weekday:"short"});t=[...Array(7)].map(((t,n)=>e.format(new Date(2023,0,n+2)).toUpperCase()))}if(this.firstDayOfWeek===0){return[t[6],...t.slice(0,6)]}else if(this.firstDayOfWeek===1){return t}else{const e=this.firstDayOfWeek-1;return[...t.slice(e),...t.slice(0,e)]}};this.getDaysInMonth=(t=0)=>{const e=this.currentDate.getUTCMonth();const n=new Date(this.currentDate);n.setUTCMonth(e+t);const r=n.getUTCFullYear();const s=n.getUTCMonth();const a=new Date(Date.UTC(r,s,1));const i=new Date(Date.UTC(r,s+1,0));const o=[];const c=a.getUTCDay();const l=(c-this.firstDayOfWeek+7)%7;for(let e=0;e<l;e++){const n=new Date(Date.UTC(r,s,0)).getUTCDate();const a=new Date(Date.UTC(r,s-1,n-l+1+e));o.push({dayOfMonth:a.getUTCDate(),date:a,isCurrentMonth:false,isDisabled:this.isDateDisabled(a),isBlank:t>0})}for(let t=1;t<=i.getUTCDate();t++){const e=new Date(Date.UTC(r,s,t));o.push({dayOfMonth:t,date:e,isCurrentMonth:true,isDisabled:this.isDateDisabled(e),isBlank:false})}const d=7-(o.length%7||7);if(d<7){for(let e=1;e<=d;e++){const n=new Date(Date.UTC(r,s+1,e));o.push({dayOfMonth:e,date:n,isCurrentMonth:false,isDisabled:this.isDateDisabled(n),isBlank:t<this.numberOfCalendars-1})}}return o};this.initializeMonths=()=>{if(i[this.locale]){this.months=i[this.locale].map(((t,e)=>({value:e,label:t})));return}const t=new Intl.DateTimeFormat(this.locale,{month:"short"});this.months=Array.from({length:12},((e,n)=>({value:n,label:t.format(new Date(2e3,n,1)).toUpperCase()})))};this.getLocalizedWeekText=()=>o[this.locale]||"W";this.handleMonthChange=(t,e=0)=>{const n=t.target;const r=parseInt(n.value,10);const s=new Date(this.currentDate);const a=new Date(s.toUTCString());a.setUTCMonth(a.getUTCMonth()+e);const i=a.getUTCMonth();let o=r-i;if(o>6){o-=12}if(o<-6){o+=12}const c=new Date(this.currentDate);c.setUTCMonth(c.getUTCMonth()+o);this.currentDate=c};this.handleYearChange=(t,e=0)=>{const n=t.target;const r=parseInt(n.value,10);if(!isNaN(r)&&r>=1900&&r<=2100){const t=new Date(this.currentDate);t.setUTCMonth(t.getUTCMonth()+e);t.setUTCFullYear(r);t.setUTCMonth(t.getUTCMonth()-e);this.currentDate=new Date(t)}};this.handleWeekSelection=(t,e)=>{if(this.selectionType!=="range")return;const n=this.getDaysInMonth(e);const r=t[0];const s=t[t.length-1];if(!r||!s)return;const a=n.filter((t=>t.date&&t.date>=r&&t.date<=s));const i=a.filter((t=>!this.isDateDisabled(t.date)));if(i.length>0){this.startDate=i[0].date;this.endDate=i[i.length-1].date;this.rangeDateChange.emit({start:m(this.startDate,{dateFormat:this.dateFormat}),end:m(this.endDate,{dateFormat:this.dateFormat})})}};this.isToday=t=>{const e=new Date;return t.getDate()===e.getDate()&&t.getMonth()===e.getMonth()&&t.getFullYear()===e.getFullYear()};this.parseDisabledDates=()=>{if(!this.disabledDates){this.parsedDisabledDates=[];return}try{this.parsedDisabledDates=this.disabledDates.map((t=>D(t,this.dateFormat))).filter((t=>t!==null))}catch(t){console.error("Error parsing disabled dates:",t);this.parsedDisabledDates=[]}};this.applyShortcut=t=>{this.selectedDate=null;this.startDate=null;this.endDate=null;if(t.singleValue){const e=D(t.singleValue,this.dateFormat);this.selectedDate=e;const n=m(e,{dateFormat:this.dateFormat});this.value=n;this.valueChanged.emit(n);this.singleValue=n;this.singleDateChange.emit(n);if(!this.showActions){const t=new CustomEvent("closePopover",{bubbles:true,composed:true});this.el.dispatchEvent(t)}this.forceCalendarUpdate(e)}else{const e=D(t.rangeValue.start,this.dateFormat);const n=D(t.rangeValue.end,this.dateFormat);this.startDate=e;this.endDate=n;const r=m(e,{dateFormat:this.dateFormat});const s=m(n,{dateFormat:this.dateFormat});this.value=`${r},${s}`;this.valueChanged.emit(this.value);const a={start:r,end:s};this.rangeDateChange.emit(a);this.rangeValue=a;if(!this.showActions){const t=new CustomEvent("closePopover",{bubbles:true,composed:true});this.el.dispatchEvent(t)}this.currentDate=e}};this.forceCalendarUpdate=t=>{this.currentDate=new Date(t)};this.resetSelection=()=>{if(this.selectionType==="single"){this.selectedDate=null;this.singleValue=null;this.value="";this.singleDateChange.emit("");this.valueChanged.emit("")}else{this.startDate=null;this.endDate=null;this.rangeValue=null;this.value="";this.rangeDateChange.emit({start:"",end:""});this.valueChanged.emit("")}};this.confirmSelection=()=>{if(this.selectionType==="single"&&this.selectedDate){const t=m(this.selectedDate,{dateFormat:this.dateFormat});this.singleDateChange.emit(t);this.singleValue=t;const e=new CustomEvent("closePopover",{bubbles:true,composed:true});this.el.dispatchEvent(e)}else if(this.selectionType==="range"&&this.startDate&&this.endDate){this.rangeDateChange.emit({start:m(this.startDate,{dateFormat:this.dateFormat}),end:m(this.endDate,{dateFormat:this.dateFormat})});this.rangeValue={start:m(this.startDate,{dateFormat:this.dateFormat}),end:m(this.endDate,{dateFormat:this.dateFormat})};const t=new CustomEvent("closePopover",{bubbles:true,composed:true});this.el.dispatchEvent(t)}};this.renderHeader=(e,n)=>t(H,{currentDate:this.currentDate,months:this.months,numberOfCalendars:this.numberOfCalendars,calendarIndex:n,monthOffset:e,onMonthChange:this.changeMonth,onMonthSelect:this.handleMonthChange,onYearChange:this.handleYearChange});this.renderWeekNumbers=(e,n)=>t(T,{weeks:e,localizedWeekText:this.getLocalizedWeekText(),selectionType:this.selectionType,onWeekSelect:this.handleWeekSelection,calendarIndex:n});this.isHoverRangeValidFn=(t,e)=>C(t,e,this.min,this.max,this.parsedDisabledDates,this.dateFormat,this.isUTCMode);this.renderCalendar=(e,n)=>{const r=this.getDaysInMonth(n);const s=[];for(let t=0;t<r.length;t+=7){s.push(r.slice(t,t+7))}const a=new Date(this.currentDate);a.setUTCMonth(a.getUTCMonth()+n);const i=a.getUTCFullYear();const o=a.getUTCMonth();return t("div",{class:"calendar-wrapper"},t("div",{class:"calendar-container",key:`calendar-${e}-${i}-${o}`},this.renderHeader(n,e),t("div",{class:"calendar-grid"},this.showWeekNumbers&&this.renderWeekNumbers(s,e),t(z,{days:r,dayNames:this.getDayNames(),selectionType:this.selectionType,selectedDate:this.selectedDate,startDate:this.startDate,endDate:this.endDate,isUTCMode:this.isUTCMode,onDayClick:this.handleDateSelection,isDateInRange:this.isDateInRange,isToday:this.isToday,onDayHover:this.handleDayHover,onMouseLeave:this.handleMouseLeave,hoverDate:this.hoverDate,isInHoverRange:x,isHoverRangeValid:this.isHoverRangeValidFn}))),e<this.numberOfCalendars-1&&t("div",{class:"calendar-separator"}))};this.renderShortcuts=()=>{if(!this.hasShortcuts){return null}return t($,{shortcuts:this.shortcuts,placement:this.shortcutsPlacement,onShortcutClick:this.applyShortcut})};this.renderActions=()=>t("div",{class:"datepicker-actions"},t("slot",{name:"actions"},t(S,{onReset:this.resetSelection,onConfirm:this.confirmSelection,useSlot:false})))}validateNumberOfCalendars(t){if(t<1||t>4){console.warn("numberOfCalendars must be between 1 and 4. Defaulting to 1.");this.numberOfCalendars=1}}onRangeValueChange(t){if(t&&t.start&&t.end){try{const{startDate:e,endDate:n}=this.validateDateRange(t.start,t.end);this.startDate=e;this.endDate=n;const r=this.el.getAttribute("data-prevent-navigation")==="true";if(!r&&!this.isUserClick){this.currentDate=e}}catch(t){console.error("Invalid rangeValue:",t)}}}handleDisabledDatesChange(){this.parseDisabledDates()}onSingleValueChange(t,e){if(this.selectionType==="single"&&t!==e&&t){const e=D(t,this.dateFormat);if(e){this.selectedDate=e;const t=this.el.getAttribute("data-prevent-navigation")==="true";if(!t&&!this.isUserClick){this.currentDate=e}}}}onValueChange(t,e){if(t!==e){this.parseUnifiedValue(t)}}componentWillLoad(){this.parseDisabledDates();if(this.value){this.parseUnifiedValue(this.value)}else if(this.selectionType==="single"&&this.singleValue){this.selectedDate=D(this.singleValue,this.dateFormat);this.currentDate=this.selectedDate}else if(this.selectionType==="range"&&this.rangeValue){try{if(this.rangeValue.start&&this.rangeValue.end){const{startDate:t,endDate:e,swapped:n}=this.validateDateRange(this.rangeValue.start,this.rangeValue.end);this.startDate=t;this.endDate=e;this.currentDate=t;if(n){this.rangeValue={start:m(t,{dateFormat:this.dateFormat}),end:m(e,{dateFormat:this.dateFormat})}}}}catch(t){console.error("Invalid rangeValue:",t)}}if(!this.currentDate){this.currentDate=new Date}this.initializeMonths()}get hasShortcuts(){return Boolean(this.shortcutsPlacement&&this.shortcuts)}get hasActions(){return this.showActions}get isUTCMode(){return this.dateFormat.includes("Z")}validateDateRange(t,e){try{const n=D(t,this.dateFormat);const r=D(e,this.dateFormat);if(n&&r&&n>r){console.warn(`Warning: startDate (${m(n,{dateFormat:this.dateFormat})}) is after endDate (${m(r,{dateFormat:this.dateFormat})})`);return{startDate:r,endDate:n,swapped:true}}return{startDate:n,endDate:r,swapped:false}}catch(t){console.error("Invalid date range:",t);throw t}}async clear(){if(this.selectionType==="single"){this.selectedDate=null;this.singleValue="";this.value="";this.singleDateChange.emit("");this.valueChanged.emit("")}else{this.startDate=null;this.endDate=null;this.rangeValue={start:"",end:""};this.value="";this.rangeDateChange.emit({start:"",end:""});this.valueChanged.emit("")}}render(){return t(r,{key:"15aa3c2afb51ea1fbd16de597889d687fb8d1982"},t("div",{key:"6492b58cb2b5c9bb7fd6c40e8f37e9c2142b5827",class:"datepicker-root"},t("div",{key:"3cb216c3af4900b48c2dcd09a0a0034c7ebf622d",class:`datepicker-container ${this.numberOfCalendars===1?"datepicker-container-single":""}`},t("div",{key:"0663841721d5db871e7ede0ec396affa560ea99d",class:`datepicker-wrapper ${this.numberOfCalendars===1?"single":""}`},this.shortcutsPlacement==="left"&&this.renderShortcuts(),Array.from({length:this.numberOfCalendars},((t,e)=>this.renderCalendar(e,e))),this.shortcutsPlacement==="right"&&this.renderShortcuts()),(this.hasShortcuts&&this.shortcutsPlacement==="bottom"||this.hasActions)&&t("div",{key:"0a17a627cb1e4a4cb2b91aa104403b00d055bce5",class:"datepicker-controls"},this.shortcutsPlacement==="bottom"&&this.renderShortcuts(),this.hasActions&&this.renderActions()))),t("slot",{key:"3104795c8cc9c81a6aca7e426a145e3966a4361e"}))}get el(){return s(this)}static get watchers(){return{numberOfCalendars:["validateNumberOfCalendars"],rangeValue:["onRangeValueChange"],disabledDates:["handleDisabledDatesChange"],singleValue:["onSingleValueChange"],value:["onValueChange"]}}};_.style=N;export{_ as nv_calendar};
2
- //# sourceMappingURL=p-38af3aaf.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["t","e","module","exports","this","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","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","LTS","LT","L","LL","LLL","LLLL","zone","offset","indexOf","concat","A","afternoon","milliseconds","SS","SSS","ss","mm","H","HH","hh","DD","Do","day","ww","MM","MMM","map","Error","MMMM","Y","YY","YYYY","Z","ZZ","formats","toUpperCase","regex","parser","exec","call","hours","customParseFormat","parseTwoDigitYear","minutes","seconds","week","local","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","yearStart","weeks","dayjs","weekOfYear","formatDate","options","isUTCMode","dateFormat","includes","isISO8601Format","ticks","isSameDate","compareDate","isSameOrBefore","isSameOrAfter","getWeekNumber","setUTCDate","week1","parseDate","dateInput","parsedDate","isNaN","error","console","unixSeconds","unixMilliseconds","parsed","isDateDisabledUtil","max","parsedDisabledDates","minDate","maxDate","some","disabledDate","isInHoverRange","startDate","hoverDate","start","end","isHoverRangeValid","current","setDate","DayCell","props","dayOfMonth","isCurrentMonth","isSelected","isInRange","isStart","isEnd","isToday","isDisabled","onClick","onDayHover","dayClasses","filter","Boolean","class","undefined","onMouseEnter","CalendarActions","onReset","onConfirm","useSlot","emphasis","size","WeekNumbers","localizedWeekText","selectionType","onWeekSelect","calendarIndex","handleWeekClick","dates","createWeekHandler","weekIndex","firstDayWithDate","_a","find","weekNumber","isClickable","key","role","tabindex","CalendarShortcuts","shortcuts","placement","onShortcutClick","createShortcutHandler","shortcut","index","label","CalendarHeader","currentDate","numberOfCalendars","monthOffset","onMonthChange","onMonthSelect","onYearChange","createNavigationHandler","direction","createMonthSelectHandler","event","createYearChangeHandler","currentMonth","currentYear","onChange","value","selected","type","CalendarGrid","days","dayNames","selectedDate","endDate","onDayClick","isDateInRange","onMouseLeave","isBlank","isTodayDate","inHoverRange","hoverRangeValid","nvCalendarCss","NvCalendarStyle0","NvCalendar","constructor","hostRef","firstDayOfWeek","shortcutsPlacement","showActions","isUserClick","parseUnifiedValue","values","trim","warn","singleValue","preventNavigation","el","getAttribute","rangeValue","changeMonth","newDate","setUTCMonth","containers","querySelectorAll","container","classList","remove","animationClass","setTimeout","handleMouseLeave","handleDayHover","target","dateStr","handleDateSelection","isDateDisabled","handleSingleSelection","handleRangeSelection","requestAnimationFrame","formattedDate","valueChanged","emit","singleDateChange","startFormatted","endFormatted","legacyRange","rangeDateChange","checkDate","getDayNames","CUSTOM_DAY_NAMES","formatter","Intl","DateTimeFormat","weekday","getDaysInMonth","baseMonth","targetDate","firstDay","lastDay","dayOfWeekIndex","offsetDays","prevMonthDay","push","nextMonthDaysNeeded","initializeMonths","CUSTOM_MONTH_NAMES","from","getLocalizedWeekText","WEEK_ABBREVIATIONS","handleMonthChange","calendarOffset","select","selectedMonth","parseInt","targetCalendarDate","monthDiff","finalDate","handleYearChange","input","setUTCFullYear","handleWeekSelection","weekDays","allDays","weekEnd","selectedWeekDays","validDays","today","parseDisabledDates","disabledDates","applyShortcut","CustomEvent","bubbles","composed","dispatchEvent","forceCalendarUpdate","resetSelection","confirmSelection","renderHeader","renderWeekNumbers","isHoverRangeValidFn","renderCalendar","showWeekNumbers","renderShortcuts","hasShortcuts","renderActions","validateNumberOfCalendars","newValue","onRangeValueChange","validateDateRange","handleDisabledDatesChange","onSingleValueChange","oldValue","onValueChange","componentWillLoad","swapped","hasActions","startDateStr","endDateStr","clear","render","Host"],"sources":["../../node_modules/dayjs/dayjs.min.js","../../node_modules/dayjs/plugin/customParseFormat.js","../../node_modules/dayjs/plugin/utc.js","../../node_modules/dayjs/plugin/weekOfYear.js","src/components/nv-calendar/nv-calendar.utils.ts","src/components/nv-calendar/partials/day-cell.tsx","src/components/nv-calendar/partials/calendar-actions.tsx","src/components/nv-calendar/partials/week-numbers.tsx","src/components/nv-calendar/partials/calendar-shortcuts.tsx","src/components/nv-calendar/partials/calendar-header.tsx","src/components/nv-calendar/partials/calendar-grid.tsx","src/components/nv-calendar/nv-calendar.scss?tag=nv-calendar","src/components/nv-calendar/nv-calendar.tsx"],"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(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){\"use strict\";var e=\"week\",t=\"year\";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),\"day\");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,\"millisecond\"),o=this.diff(a,e,!0);return o<0?r(this).startOf(\"week\").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport utc from 'dayjs/plugin/utc';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\n\ndayjs.extend(customParseFormat);\ndayjs.extend(utc);\ndayjs.extend(weekOfYear);\n\n/**\n * Formats a date to a string according to the format\n * @param {Date} date - Date to format\n * @returns {string} Formatted date\n * @param {Object} options - Additional options\n * @param {string} options.dateFormat - Date format (ex: 'YYYY-MM-DD', 'DD-MM-YYYY', etc.)\n */\nexport function formatDate(\n date: Date,\n options: {\n /** Date format (ex: 'YYYY-MM-DD', 'DD-MM-YYYY', etc.) */\n dateFormat: string;\n },\n): string {\n if (!date) return '';\n\n const isUTCMode = options.dateFormat.includes('Z');\n const isISO8601Format = options.dateFormat === 'YYYY-MM-DD[T]HH:mm:ss[Z]';\n\n // Special case for ISO 8601\n if (isISO8601Format) {\n // For the ISO 8601 format, use directly toISOString() which is standard\n return date.toISOString();\n }\n\n // If the format is \"Ticks\", convert the time to C# ticks\n if (options.dateFormat === 'Ticks') {\n const ticks = date.getTime() * 10000 + 621355968000000000;\n return ticks.toString();\n }\n\n // If the format is \"X\" (Unix Seconds)\n if (options.dateFormat === 'X') {\n return dayjs(date).unix().toString();\n }\n\n // If the format is \"x\" (Unix Milliseconds)\n if (options.dateFormat === 'x') {\n return date.getTime().toString();\n }\n\n // Otherwise, format according to the mode (UTC or local)\n return isUTCMode\n ? dayjs(date).utc().format(options.dateFormat)\n : dayjs(date).format(options.dateFormat);\n}\n\n/**\n * Checks if two dates are identical\n * @param {Date | null} date - First date\n * @param {Date | null} compareDate - Second date\n * @param {Object} options - Additional options\n * @param {boolean} options.isUTCMode - Whether the dates are in UTC mode\n * @returns {boolean} true if the dates are identical\n */\nexport function isSameDate(\n date: Date | null,\n compareDate: Date | null,\n options: {\n /** Whether the dates are in UTC mode */\n isUTCMode: boolean;\n },\n): boolean {\n if (!date || !compareDate) return false;\n if (options.isUTCMode) {\n return (\n date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() === compareDate.getUTCMonth() &&\n date.getUTCDate() === compareDate.getUTCDate()\n );\n } else {\n return (\n date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() === compareDate.getMonth() &&\n date.getDate() === compareDate.getDate()\n );\n }\n}\n\n/**\n * Checks if a date is identical or before another date\n * @param {Date} date - Date to check\n * @param {Date} compareDate - Reference date\n * @param {Object} options - Additional options\n * @param {boolean} options.isUTCMode - Whether the dates are in UTC mode\n * @returns {boolean} true if `date` <= `compareDate`\n */\nexport function isSameOrBefore(\n date: Date,\n compareDate: Date,\n options: {\n /** Whether the dates are in UTC mode */\n isUTCMode: boolean;\n },\n): boolean {\n if (!date || !compareDate) return false;\n\n if (options.isUTCMode) {\n return (\n date.getUTCFullYear() < compareDate.getUTCFullYear() ||\n (date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() < compareDate.getUTCMonth()) ||\n (date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() === compareDate.getUTCMonth() &&\n date.getUTCDate() <= compareDate.getUTCDate())\n );\n } else {\n return (\n date.getFullYear() < compareDate.getFullYear() ||\n (date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() < compareDate.getMonth()) ||\n (date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() === compareDate.getMonth() &&\n date.getDate() <= compareDate.getDate())\n );\n }\n}\n\n/**\n * Checks if a date is identical or after another date\n * @param {Date} date - Date to check\n * @param {Date} compareDate - Reference date\n * @param {Object} options - Additional options\n * @param {boolean} options.isUTCMode - Whether the dates are in UTC mode\n * @returns {boolean} true if `date` >= `compareDate`\n */\nexport function isSameOrAfter(\n date: Date,\n compareDate: Date,\n options: {\n /** Whether the dates are in UTC mode */\n isUTCMode: boolean;\n },\n): boolean {\n if (!date || !compareDate) return false;\n\n if (options.isUTCMode) {\n return (\n date.getUTCFullYear() > compareDate.getUTCFullYear() ||\n (date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() > compareDate.getUTCMonth()) ||\n (date.getUTCFullYear() === compareDate.getUTCFullYear() &&\n date.getUTCMonth() === compareDate.getUTCMonth() &&\n date.getUTCDate() >= compareDate.getUTCDate())\n );\n } else {\n return (\n date.getFullYear() > compareDate.getFullYear() ||\n (date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() > compareDate.getMonth()) ||\n (date.getFullYear() === compareDate.getFullYear() &&\n date.getMonth() === compareDate.getMonth() &&\n date.getDate() >= compareDate.getDate())\n );\n }\n}\n\n/**\n * Calculates the ISO week number\n * @param {Date} date - Date to calculate\n * @returns {number} Week number\n */\nexport function getWeekNumber(date: Date): number {\n // Create a copy of the date to avoid modifying the original\n const d = new Date(\n Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()),\n );\n\n // Adjust to the same week Thursday (ISO 8601)\n d.setUTCDate(d.getUTCDate() + 3 - ((d.getUTCDay() + 6) % 7));\n\n // Calculate the first Thursday of the year\n const week1 = new Date(Date.UTC(d.getUTCFullYear(), 0, 4));\n\n // Calculate the week number\n return (\n 1 +\n Math.round(\n ((d.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getUTCDay() + 6) % 7)) /\n 7,\n )\n );\n}\n\n/**\n * Convert a date string/Date to a Date without timezone offset\n * @param {string | Date} dateInput - Date under string or Date object form\n * @param {string} dateFormat - Date format (ex: 'YYYY-MM-DD', 'DD-MM-YYYY', etc.)\n * @returns {Date} Date in Date form without timezone offset\n */\nexport function parseDate(\n dateInput: string | Date,\n dateFormat: string,\n): Date | null {\n if (dateInput instanceof Date) return dateInput;\n const isUTCMode = dateFormat.includes('Z');\n\n // Attempt to automatically detect ISO 8601 format (generated by toISOString())\n // The regex checks the standard ISO format: YYYY-MM-DDTHH:mm:ss.sssZ\n if (\n typeof dateInput === 'string' &&\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z$/.test(dateInput)\n ) {\n try {\n const parsedDate = new Date(dateInput);\n if (!isNaN(parsedDate.getTime())) {\n return parsedDate;\n }\n } catch (error) {\n // If it fails, continue with other methods\n console.error('Error parsing ISO date:', error);\n }\n }\n\n // Handling Unix Seconds (\"X\") formats\n if (dateFormat === 'X') {\n const unixSeconds = Number(dateInput);\n if (isNaN(unixSeconds)) return null;\n return isUTCMode\n ? dayjs.unix(unixSeconds).utc().toDate()\n : dayjs.unix(unixSeconds).toDate();\n }\n\n // Handling Unix Milliseconds (\"x\") formats\n if (dateFormat === 'x') {\n const unixMilliseconds = Number(dateInput);\n if (isNaN(unixMilliseconds)) return null;\n return isUTCMode\n ? dayjs(unixMilliseconds).utc().toDate()\n : dayjs(unixMilliseconds).toDate();\n }\n\n // Handling C# Ticks format\n if (dateFormat === 'Ticks') {\n const ticks = Number(dateInput);\n if (isNaN(ticks)) return null;\n // Conversion of .NET ticks to milliseconds since Unix epoch\n const unixMilliseconds = (ticks - 621355968000000000) / 10000;\n return isUTCMode\n ? dayjs(unixMilliseconds).utc().toDate()\n : dayjs(unixMilliseconds).toDate();\n }\n\n // For all other formats, use customParseFormat in strict mode\n let parsed;\n if (isUTCMode) {\n parsed = dayjs.utc(dateInput, dateFormat, true);\n } else {\n parsed = dayjs(dateInput, dateFormat, true);\n }\n if (!parsed.isValid()) {\n return null;\n }\n return parsed.toDate();\n}\n\n/**\n * Checks if a date is disabled.\n * @param {Date} date - Date to check\n * @param {string} min - Minimum date\n * @param {string} max - Maximum date\n * @param {Date[]} parsedDisabledDates - Parsed disabled dates\n * @param {string} dateFormat - Date format\n * @param {boolean} isUTCMode - Whether the dates are in UTC mode\n * @returns {boolean} true if the date is disabled\n */\nexport function isDateDisabledUtil(\n date: Date,\n min: string,\n max: string,\n parsedDisabledDates: Date[],\n dateFormat: string,\n isUTCMode: boolean,\n): boolean {\n if (!date) return true;\n\n if (min) {\n const minDate = parseDate(min, dateFormat);\n if (minDate && date < minDate) {\n return true;\n }\n }\n\n if (max) {\n const maxDate = parseDate(max, dateFormat);\n if (maxDate && date > maxDate) {\n return true;\n }\n }\n\n return parsedDisabledDates.some(disabledDate =>\n isSameDate(date, disabledDate, { isUTCMode }),\n );\n}\n\n/**\n * Checks if a date is within the hover range.\n * @param {Date} date - The date to check.\n * @param {Date} startDate - The start of the range.\n * @param {Date | null} hoverDate - The hovered date.\n * @returns {boolean} True if the date is in the hover range.\n */\nexport const isInHoverRange = (\n date: Date,\n startDate: Date,\n hoverDate: Date | null,\n): boolean => {\n if (!hoverDate || !startDate || !date) {\n return false;\n }\n\n const start = startDate < hoverDate ? startDate : hoverDate;\n const end = startDate < hoverDate ? hoverDate : startDate;\n\n return date > start && date < end;\n};\n\n/**\n * Checks if the hover range is valid (does not contain disabled dates).\n * @param {Date} startDate - The start of the range.\n * @param {Date | null} hoverDate - The hovered date.\n * @param {string} min - The minimum allowed date.\n * @param {string} max - The maximum allowed date.\n * @param {Date[]} parsedDisabledDates - An array of disabled dates.\n * @param {string} dateFormat - The date format for parsing.\n * @param {boolean} isUTCMode - Flag for UTC mode.\n * @returns {boolean} True if the hover range is valid.\n */\nexport const isHoverRangeValid = (\n startDate: Date,\n hoverDate: Date | null,\n min: string,\n max: string,\n parsedDisabledDates: Date[],\n dateFormat: string,\n isUTCMode: boolean,\n): boolean => {\n if (!hoverDate || !startDate) {\n return true;\n }\n\n const start = startDate < hoverDate ? startDate : hoverDate;\n const end = startDate < hoverDate ? hoverDate : startDate;\n\n const current = new Date(start);\n while (current <= end) {\n if (\n isDateDisabledUtil(\n current,\n min,\n max,\n parsedDisabledDates,\n dateFormat,\n isUTCMode,\n )\n ) {\n return false;\n }\n current.setDate(current.getDate() + 1);\n }\n\n return true;\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\n/**\n * Props for the DayCell component\n */\ninterface DayCellProps {\n /** Date object for this cell */\n date: Date;\n /** Day number (1-31) */\n dayOfMonth: number;\n /** Whether this day belongs to the current month */\n isCurrentMonth: boolean;\n /** Whether this day is selected (single mode) */\n isSelected: boolean;\n /** Whether this day is in a selected range */\n isInRange: boolean;\n /** Whether this day is the start of a range */\n isStart: boolean;\n /** Whether this day is the end of a range */\n isEnd: boolean;\n /** Whether this day is today */\n isToday: boolean;\n /** Whether this day is disabled */\n isDisabled: boolean;\n /** Selection type for conditional styling */\n selectionType: 'single' | 'range';\n /** Click handler for day selection */\n onClick?: (event: MouseEvent) => void;\n /** Hover handler for day */\n onDayHover?: (event: MouseEvent) => void;\n /** Whether this day is in a hover range */\n isInHoverRange: boolean;\n /** Whether the hover range is valid */\n isHoverRangeValid: boolean;\n}\n\n/**\n * Renders a single day cell in the calendar grid\n * @param {DayCellProps} props - Component properties\n * @returns {JSX.Element} JSX element representing a day cell\n */\nexport const DayCell: FunctionalComponent<DayCellProps> = props => {\n const {\n date,\n dayOfMonth,\n isCurrentMonth,\n isSelected,\n isInRange,\n isStart,\n isEnd,\n isToday,\n isDisabled,\n onClick,\n onDayHover,\n isInHoverRange,\n isHoverRangeValid,\n } = props;\n\n // Build CSS classes for the day cell\n const dayClasses = [\n 'day',\n isSelected ? 'selected' : '',\n isStart ? 'range-start' : '',\n isEnd ? 'range-end' : '',\n isInRange ? 'in-range' : '',\n isDisabled ? 'disabled' : '',\n !isCurrentMonth ? 'outside-month' : '',\n isToday ? 'is-today' : '',\n isInHoverRange && isHoverRangeValid ? 'hover-range' : '',\n isInHoverRange && !isHoverRangeValid ? 'hover-blocked' : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n class={dayClasses}\n data-date={date.toISOString()}\n onClick={!isDisabled ? onClick : undefined}\n onMouseEnter={onDayHover}\n aria-disabled={isDisabled}\n >\n {dayOfMonth}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\n/**\n * Props for the CalendarActions component\n */\ninterface CalendarActionsProps {\n /** Handler for cancel/reset action */\n onReset: () => void;\n /** Handler for confirm/OK action */\n onConfirm: () => void;\n /** Whether to show the default actions or use slot content */\n useSlot?: boolean;\n}\n\n/**\n * Renders the action buttons for the calendar (Cancel/OK)\n * @param {CalendarActionsProps} props - Component properties\n * @returns {JSX.Element} JSX element representing the action buttons\n */\nexport const CalendarActions: FunctionalComponent<\n CalendarActionsProps\n> = props => {\n const { onReset, onConfirm, useSlot = false } = props;\n\n return (\n <div class=\"datepicker-actions\">\n {useSlot ? (\n <slot name=\"actions\">\n <nv-button emphasis=\"low\" size=\"xs\" onClick={onReset}>\n Cancel\n </nv-button>\n <nv-button size=\"xs\" onClick={onConfirm}>\n OK\n </nv-button>\n </slot>\n ) : (\n <div>\n <nv-button emphasis=\"low\" size=\"xs\" onClick={onReset}>\n Cancel\n </nv-button>\n <nv-button size=\"xs\" onClick={onConfirm}>\n OK\n </nv-button>\n </div>\n )}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { getWeekNumber } from '../nv-calendar.utils';\n\n/**\n * Week data structure\n */\ninterface WeekData {\n /** Date object for this day */\n date: Date;\n}\n\n/**\n * Props for the WeekNumbers component\n */\ninterface WeekNumbersProps {\n /** Array of weeks with their days */\n weeks: Array<Array<WeekData>>;\n /** Localized text for \"week\" abbreviation */\n localizedWeekText: string;\n /** Current selection type */\n selectionType: 'single' | 'range';\n /** Handler for week selection in range mode */\n onWeekSelect: (dates: Date[], calendarIndex: number) => void;\n /** Calendar index for multi-calendar setups */\n calendarIndex: number;\n}\n\n/**\n * Renders the week numbers column for the calendar\n * @param {WeekNumbersProps} props - Component properties\n * @returns {JSX.Element} JSX element representing the week numbers\n */\nexport const WeekNumbers: FunctionalComponent<WeekNumbersProps> = props => {\n const {\n weeks,\n localizedWeekText,\n selectionType,\n onWeekSelect,\n calendarIndex,\n } = props;\n\n /**\n * Handles click on a week number for range selection\n * @param {Array<WeekData>} week - Week data\n */\n const handleWeekClick = (week: Array<WeekData>) => {\n if (selectionType === 'range') {\n const dates = week.map(d => d.date);\n onWeekSelect(dates, calendarIndex);\n }\n };\n\n /**\n * Creates a click handler for a specific week\n * @param {Array<WeekData>} week - Week data\n * @returns {() => void} Click handler function\n */\n const createWeekHandler = (week: Array<WeekData>) => {\n return () => handleWeekClick(week);\n };\n\n return (\n <div class=\"week-numbers\">\n <div class=\"week-header\">{localizedWeekText}</div>\n {weeks.map((week, weekIndex) => {\n const firstDayWithDate = week.find(d => d.date)?.date || new Date();\n const weekNumber = getWeekNumber(firstDayWithDate);\n const isClickable = selectionType === 'range';\n\n return (\n <div\n class={`week-number ${isClickable ? 'clickable' : ''}`}\n onClick={createWeekHandler(week)}\n key={`week-${weekIndex}`}\n role={isClickable ? 'button' : undefined}\n tabindex={isClickable ? 0 : undefined}\n >\n {weekNumber}\n </div>\n );\n })}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\n/**\n * Shortcut data structure\n */\ninterface ShortcutData {\n /** Label of the shortcut */\n label: string;\n /** Selected date value for single selection mode */\n singleValue?: string;\n /** Date range values for range selection mode */\n rangeValue?: {\n /** ISO string for start date */\n start: string;\n /** ISO string for end date */\n end: string;\n };\n}\n\n/**\n * Props for the CalendarShortcuts component\n */\ninterface CalendarShortcutsProps {\n /** Array of shortcut configurations */\n shortcuts: ShortcutData[];\n /** Placement of shortcuts in the calendar */\n placement: 'bottom' | 'left' | 'right';\n /** Handler for shortcut selection */\n onShortcutClick: (shortcut: ShortcutData) => void;\n}\n\n/**\n * Renders the shortcuts for quick date selection\n * @param {CalendarShortcutsProps} props - Component properties\n * @returns {JSX.Element | null} JSX element representing the shortcuts or null if no shortcuts\n */\nexport const CalendarShortcuts: FunctionalComponent<\n CalendarShortcutsProps\n> = props => {\n const { shortcuts, placement, onShortcutClick } = props;\n\n if (!shortcuts || shortcuts.length === 0) {\n return null;\n }\n\n /**\n * Creates a click handler for a specific shortcut\n * @param {ShortcutData} shortcut - The shortcut data\n * @returns {() => void} Click handler function\n */\n const createShortcutHandler = (shortcut: ShortcutData) => {\n return () => onShortcutClick(shortcut);\n };\n\n return (\n <div class={`shortcuts-container shortcuts-placement-${placement}`}>\n {shortcuts.map((shortcut, index) => (\n <nv-button\n key={`shortcut-${index}`}\n emphasis=\"lower\"\n size=\"xs\"\n aria-label={shortcut.label}\n onClick={createShortcutHandler(shortcut)}\n >\n {shortcut.label}\n </nv-button>\n ))}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\n\n/**\n * Month data structure\n */\ninterface MonthData {\n /** Month value (0-11) */\n value: number;\n /** Month label */\n label: string;\n}\n\n/**\n * Props for the CalendarHeader component\n */\ninterface CalendarHeaderProps {\n /** Current displayed date */\n currentDate: Date;\n /** Array of localized months */\n months: MonthData[];\n /** Total number of calendars being displayed */\n numberOfCalendars: number;\n /** Index of this calendar (0-based) */\n calendarIndex: number;\n /** Month offset for this calendar */\n monthOffset: number;\n /** Handler for month navigation */\n onMonthChange: (direction: number) => void;\n /** Handler for month selection from dropdown */\n onMonthSelect: (event: Event, offset: number) => void;\n /** Handler for year input change */\n onYearChange: (event: Event, offset: number) => void;\n}\n\n/**\n * Renders the calendar header with navigation and date controls\n * @param {CalendarHeaderProps} props - Component properties\n * @returns {JSX.Element} JSX element representing the calendar header\n */\nexport const CalendarHeader: FunctionalComponent<\n CalendarHeaderProps\n> = props => {\n const {\n currentDate,\n months,\n numberOfCalendars,\n calendarIndex,\n monthOffset,\n onMonthChange,\n onMonthSelect,\n onYearChange,\n } = props;\n\n /**\n * Creates navigation handler for month change\n * @param {number} direction - Direction of navigation (-1 or 1)\n * @returns {() => void} Navigation handler function\n */\n const createNavigationHandler = (direction: number) => {\n return () => onMonthChange(direction);\n };\n\n /**\n * Creates month selection handler\n * @param {number} offset - Month offset\n * @returns {(event: Event) => void} Month selection handler function\n */\n const createMonthSelectHandler = (offset: number) => {\n return (event: Event) => onMonthSelect(event, offset);\n };\n\n /**\n * Creates year change handler\n * @param {number} offset - Month offset\n * @returns {(event: Event) => void} Year change handler function\n */\n const createYearChangeHandler = (offset: number) => {\n return (event: Event) => onYearChange(event, offset);\n };\n\n const currentMonth = (currentDate.getUTCMonth() + monthOffset) % 12;\n const currentYear =\n currentDate.getUTCFullYear() +\n Math.floor((currentDate.getUTCMonth() + monthOffset) / 12);\n\n return (\n <div class=\"header\">\n {/* Left navigation for first calendar in multi-calendar setup */}\n {numberOfCalendars > 1 && calendarIndex === 0 && (\n <nv-iconbutton\n class=\"nav-left\"\n emphasis=\"lower\"\n name=\"chevron-left\"\n onClick={createNavigationHandler(-1)}\n />\n )}\n\n <div class=\"date-controls\">\n <select\n class=\"month-select mr-4\"\n onChange={createMonthSelectHandler(monthOffset)}\n >\n {months.map(month => (\n <option\n key={month.value}\n value={month.value}\n selected={month.value === currentMonth}\n >\n {month.label}\n </option>\n ))}\n </select>\n <input\n type=\"number\"\n class=\"year-input\"\n min=\"1950\"\n max=\"2100\"\n value={currentYear}\n onChange={createYearChangeHandler(monthOffset)}\n />\n </div>\n\n {/* Navigation buttons for single calendar */}\n {numberOfCalendars === 1 && (\n <div class=\"nav-buttons\">\n <nv-iconbutton\n emphasis=\"lower\"\n name=\"chevron-left\"\n onClick={createNavigationHandler(-1)}\n />\n <nv-iconbutton\n emphasis=\"lower\"\n name=\"chevron-right\"\n onClick={createNavigationHandler(1)}\n />\n </div>\n )}\n\n {/* Right navigation for last calendar in multi-calendar setup */}\n {numberOfCalendars > 1 && calendarIndex === numberOfCalendars - 1 && (\n <nv-iconbutton\n emphasis=\"lower\"\n name=\"chevron-right\"\n onClick={createNavigationHandler(1)}\n class=\"nav-right\"\n />\n )}\n </div>\n );\n};\n","import { FunctionalComponent, h } from '@stencil/core';\nimport { DayCell } from './day-cell';\nimport { isSameDate } from '../nv-calendar.utils';\n\n/**\n * Day data structure\n * @internal\n */\ninterface DayData {\n /** Day of the month (1-31) */\n dayOfMonth: number | null;\n /** Complete date */\n date: Date | null;\n /** If the day belongs to the current month */\n isCurrentMonth: boolean;\n /** If the day is disabled */\n isDisabled: boolean;\n /** If the day is blank */\n isBlank: boolean;\n}\n\n/**\n * Props for the CalendarGrid component\n * @internal\n */\ninterface CalendarGridProps {\n /** Array of day data for the month */\n days: DayData[];\n /** Array of localized day names */\n dayNames: string[];\n /** Current selection type */\n selectionType: 'single' | 'range';\n /** Selected date in single mode */\n selectedDate: Date | null;\n /** Start date in range mode */\n startDate: Date | null;\n /** End date in range mode */\n endDate: Date | null;\n /** Whether date format is in UTC mode */\n isUTCMode: boolean;\n /** Handler for day selection */\n onDayClick: (event: MouseEvent) => void;\n /** Function to check if date is in range */\n isDateInRange: (date: Date) => boolean;\n /** Function to check if date is today */\n isToday: (date: Date) => boolean;\n /** Handler for day hover */\n onDayHover: (event: MouseEvent) => void;\n /** Handler for mouse leave */\n onMouseLeave: () => void;\n /** Hovered date */\n hoverDate: Date | null;\n /** Function to check if date is in hover range */\n isInHoverRange: (\n date: Date,\n startDate: Date,\n hoverDate: Date | null,\n ) => boolean;\n /** Function to check if hover range is valid */\n isHoverRangeValid: (startDate: Date, hoverDate: Date | null) => boolean;\n}\n\n/**\n * Renders the calendar grid with day headers and day cells\n * @param {CalendarGridProps} props - Component properties\n * @returns {JSX.Element} JSX element representing the calendar grid\n */\nexport const CalendarGrid: FunctionalComponent<CalendarGridProps> = props => {\n const {\n days,\n dayNames,\n selectionType,\n selectedDate,\n startDate,\n endDate,\n isUTCMode,\n onDayClick,\n isDateInRange,\n isToday,\n onDayHover,\n onMouseLeave,\n hoverDate,\n isInHoverRange,\n isHoverRangeValid,\n } = props;\n\n return (\n <div class=\"days-container\">\n <div class=\"days-header\">\n {dayNames.map((day, index) => (\n <div class=\"day-header\" key={`day-header-${index}`}>\n {day}\n </div>\n ))}\n </div>\n <div class=\"days-grid\" onMouseLeave={onMouseLeave}>\n {days.map(day => {\n if (day.isBlank) {\n return <div class=\"day day-blank\"></div>;\n }\n\n const date = day.date;\n if (!date || !day.dayOfMonth) {\n return <div class=\"day-cell is-disabled is-empty\"></div>;\n }\n\n const isSelected =\n selectionType === 'single' &&\n isSameDate(date, selectedDate, { isUTCMode });\n const isInRange = isDateInRange(date);\n const isStart = isSameDate(date, startDate, { isUTCMode });\n const isEnd = isSameDate(date, endDate, { isUTCMode });\n const isTodayDate = isToday(date);\n const inHoverRange = isInHoverRange(date, startDate, hoverDate);\n const hoverRangeValid = isHoverRangeValid(startDate, hoverDate);\n\n return (\n <DayCell\n date={date}\n dayOfMonth={day.dayOfMonth}\n isCurrentMonth={day.isCurrentMonth}\n isSelected={isSelected}\n isInRange={isInRange}\n isStart={isStart}\n isEnd={isEnd}\n isToday={isTodayDate}\n isDisabled={day.isDisabled}\n selectionType={selectionType}\n onClick={onDayClick}\n onDayHover={onDayHover}\n isInHoverRange={inHoverRange}\n isHoverRangeValid={hoverRangeValid}\n />\n );\n })}\n </div>\n </div>\n );\n};\n","@import '../../styles/shadow';\n@import '../../styles/scrollbar';\n\n// Borders & Radius\n$border-width: 1px;\n$border-style: solid;\n\n// Transitions\n$transition-speed: 0.2s ease;\n\n$calendar-cell-size: var(--calendar-cell-size);\n\n// Typography\n$font-family: system-ui, sans-serif;\n$font-weight-bold: 700;\n\n// Animations\n$slide-duration: 0.3s;\n$fade-duration: 0.2s;\n\n@mixin root-styles() {\n display: block;\n}\n\nnv-calendar {\n @include root-styles();\n}\n\n.datepicker-root {\n display: flex;\n justify-content: center;\n align-items: flex-start;\n width: auto;\n}\n\n.datepicker-container {\n font-family: $font-family;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n background: var(--components-calendar-background);\n border-radius: var(--calendar-radius);\n padding: var(--calendar-padding);\n @include shadow(md);\n border: $border-width $border-style var(--components-calendar-border);\n width: auto;\n max-width: 100%;\n}\n\n.datepicker-container-single {\n max-width: 300px;\n\n .datepicker-wrapper:has(.shortcuts-placement-left),\n .datepicker-wrapper:has(.shortcuts-placement-right) {\n max-width: 410px !important;\n }\n\n &:has(.shortcuts-placement-left),\n &:has(.shortcuts-placement-right) {\n max-width: 410px !important;\n }\n}\n\n.datepicker-wrapper {\n @include scrollbar();\n display: flex;\n justify-content: center;\n align-items: flex-start;\n gap: var(--calendar-gap-x);\n width: auto;\n overflow-x: hidden;\n}\n\n.datepicker-wrapper.single {\n justify-content: center;\n}\n\n.calendar-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: var(--calendar-padding);\n width: auto;\n position: relative;\n}\n\n.calendar-separator {\n width: $border-width;\n background: var(--components-calendar-border);\n height: auto;\n min-height: 100%;\n margin: 0 10px;\n}\n\n.header {\n display: flex;\n justify-content: start;\n align-items: center;\n margin-bottom: var(--calendar-header-margin-bottom);\n width: 100%;\n\n nv-iconbutton {\n width: var(--calendar-header-button-size);\n height: var(--calendar-header-button-size);\n }\n}\n\n.nav-buttons {\n display: flex;\n gap: var(--spacing-0);\n margin-left: auto;\n}\n.nav-left {\n order: -1;\n}\n\n.date-controls {\n display: flex;\n gap: var(--spacing-1);\n align-items: center;\n min-height: 34px;\n justify-content: center;\n\n .datepicker-container-single & {\n justify-content: flex-start /*!important*/;\n }\n\n .datepicker-container:not(.datepicker-container-single) & {\n justify-content: start;\n flex-grow: 1;\n }\n .month-select,\n .year-input {\n background: transparent !important;\n }\n}\n.calendar-wrapper:nth-child(n + 2) {\n .datepicker-container {\n margin-left: 42px;\n }\n}\n.calendar-grid {\n display: grid;\n grid-template-columns: auto 1fr;\n column-gap: var(--calendar-weeks-calendar-gap-x);\n position: relative;\n\n &.slide-left {\n animation: slideLeft $slide-duration ease-out;\n }\n\n &.slide-right {\n animation: slideRight $slide-duration ease-out;\n }\n}\n\n.week-numbers {\n display: grid;\n grid-template-rows: var(--calendar-cell-size) repeat(\n 6,\n var(--calendar-cell-size)\n );\n background: var(--components-calendar-weeks-background);\n color: var(--components-calendar-weeks-text);\n border-radius: var(--calendar-weeks-radius);\n width: var(--calendar-weeks-size);\n row-gap: var(--calendar-grid-gap-y);\n\n .clickable {\n cursor: pointer;\n &:hover {\n background-color: var(--components-calendar-weeks-background-hover);\n color: var(--components-calendar-weeks-text-hover);\n border-radius: var(--calendar-radius);\n }\n }\n}\n\n.week-header,\n.week-number {\n display: grid;\n place-items: center;\n font-size: var(--calendar-cell-font-size);\n}\n\n.week-header {\n font-weight: $font-weight-bold;\n color: var(--components-calendar-weeks-text);\n}\n\n.week-number {\n color: var(--components-calendar-cell-text);\n}\n\n.days-container {\n display: grid;\n grid-template-rows: auto 1fr;\n row-gap: var(--calendar-grid-gap-y);\n}\n\n.days-header {\n display: grid;\n grid-template-columns: repeat(7, $calendar-cell-size);\n height: $calendar-cell-size;\n}\n\n.day-header {\n display: grid;\n place-items: center;\n font-size: var(--calendar-cell-font-size);\n color: var(--components-calendar-cell-text);\n}\n\n.days-grid {\n display: grid;\n grid-template-columns: repeat(7, $calendar-cell-size);\n grid-template-rows: repeat(6, $calendar-cell-size);\n animation: fadeIn $fade-duration ease-in;\n row-gap: var(--calendar-grid-gap-y);\n z-index: 0;\n}\n\n.day {\n display: grid;\n place-items: center;\n width: $calendar-cell-size;\n height: $calendar-cell-size;\n font-size: var(--calendar-cell-font-size);\n border-radius: var(--calendar-cell-radius);\n cursor: pointer;\n border: none;\n background: transparent;\n transition: all $transition-speed;\n text-align: center;\n animation: scaleIn $fade-duration ease-out;\n\n &:hover:not(.disabled, .empty, .selected) {\n background: var(--components-calendar-cell-background-hover);\n color: var(--components-calendar-cell-text-hover);\n }\n\n &.selected,\n &.selected:hover \n &.is-today.selected,\n &.is-today.selected:hover {\n background: var(--components-calendar-cell-background-selected);\n color: var(--components-calendar-cell-text-selected) !important;\n }\n\n &.disabled {\n opacity: var(--opacity-disabled);\n cursor: not-allowed;\n }\n &.is-empty {\n pointer-events: none;\n background-color: transparent;\n border-color: transparent;\n }\n\n &.day-blank {\n pointer-events: none;\n background-color: transparent;\n border-color: transparent;\n }\n\n &.outside-month {\n color: var(--components-calendar-cell-text);\n opacity: var(--opacity-disabled);\n }\n\n &.outside-month.selected {\n opacity: 1 !important;\n color: var(--components-calendar-cell-text-selected);\n }\n\n &.outside-month.in-range {\n opacity: 0.5 !important;\n background-color: var(--components-calendar-cell-background-in-range);\n color: var(--components-calendar-cell-text-in-range);\n\n &:hover {\n opacity: 0.7 !important;\n background-color: var(--components-calendar-cell-background-in-range);\n }\n }\n\n &.in-range {\n background: var(--components-calendar-cell-background-in-range);\n color: var(--components-calendar-cell-text-in-range);\n border-radius: 0;\n position: relative;\n }\n\n &.range-start,\n &.range-start:focus,\n &.range-start:hover,\n &.range-end,\n &.range-end:focus,\n &.range-end:hover {\n background-color: var(\n --components-calendar-cell-background-selected\n ) !important;\n color: var(--components-calendar-cell-text-selected) !important;\n }\n\n &.range-start,\n &.range-end,\n &.range-start.is-today,\n &.range-end.is-today {\n background: var(--components-calendar-cell-background-selected);\n color: var(--components-calendar-cell-text-selected);\n position: relative;\n border-radius: var(--radius-rounded-full);\n\n &:hover {\n color: var(--components-calendar-cell-text-today);\n }\n\n &:before {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n z-index: -1;\n background-color: var(--components-calendar-cell-background-in-range);\n border-radius: var(--radius-rounded-full);\n width: auto;\n height: auto;\n }\n }\n &.range-start:has(~ .range-end):before,\n &.range-start:has(+ .in-range):before {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n &.range-end:before {\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n }\n\n &.outside-month.range-start,\n &.outside-month.range-end {\n opacity: 1 !important;\n background: var(--components-calendar-cell-background-selected) !important;\n color: var(--components-calendar-cell-text-selected);\n }\n\n &.is-today {\n font-weight: $font-weight-bold;\n position: relative;\n color: var(--components-calendar-cell-text-today);\n\n &.range-start,\n &.range-end {\n color: var(--components-calendar-cell-text-selected);\n &:hover {\n color: var(--components-calendar-cell-text-today);\n }\n }\n\n &::after {\n content: '';\n position: absolute;\n bottom: var(--spacing-1);\n left: 50%;\n transform: translateX(-50%);\n width: var(--calendar-cell-dot-size);\n height: var(--calendar-cell-dot-size);\n background-color: currentColor;\n border-radius: 50%;\n }\n\n &.selected::after {\n color: var(--components-calendar-cell-text-selected);\n &::after {\n background-color: var(--components-calendar-cell-dot-selected);\n }\n }\n }\n\n &.hover-range {\n background-color: var(--components-calendar-cell-background-hover);\n }\n\n &.hover-blocked {\n background-color: var(--components-calendar-cell-background-hover);\n }\n\n &.disabled.hover-blocked {\n background-color: transparent;\n }\n}\n\n.calendar-footer {\n display: flex;\n gap: var(--spacing-1);\n justify-content: flex-start;\n width: 100%;\n flex-wrap: wrap;\n}\n\n.footer-placement-left {\n justify-content: flex-start;\n}\n\n.footer-placement-right {\n justify-content: flex-end;\n}\n\n.footer-placement-center {\n justify-content: center;\n}\n\n.datepicker-controls {\n display: flex;\n flex-direction: column;\n border-top: $border-width $border-style var(--components-calendar-border);\n padding: var(--calendar-controls-padding-top) var(--calendar-padding)\n var(--calendar-padding);\n gap: var(--calendar-grid-gap-y);\n margin-top: var(--calendar-controls-margin-top);\n}\n\n.datepicker-actions {\n display: flex;\n justify-content: flex-end;\n gap: var(--spacing-1);\n width: 100%;\n\n slot-fb {\n display: contents !important;\n }\n}\n\n.calendar-footer + .datepicker-actions {\n margin-top: 0;\n}\n\n.shortcuts-placement-left,\n.shortcuts-placement-right {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-1);\n margin-top: var(--spacing-4);\n}\n\n.shortcuts-placement-left {\n align-items: flex-end;\n}\n\n.shortcuts-placement-right {\n align-items: flex-start;\n}\n\n@keyframes slideLeft {\n from {\n opacity: 0;\n transform: translateX(20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes slideRight {\n from {\n opacity: 0;\n transform: translateX(-20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes scaleIn {\n from {\n opacity: 0;\n transform: scale(0.9);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch,\n Method,\n} from '@stencil/core';\nimport {\n WEEK_ABBREVIATIONS,\n CUSTOM_DAY_NAMES,\n CUSTOM_MONTH_NAMES,\n} from '../../utils/constants';\n\nimport {\n parseDate,\n formatDate,\n isSameOrAfter,\n isSameOrBefore,\n isInHoverRange,\n isHoverRangeValid,\n isDateDisabledUtil,\n} from './nv-calendar.utils';\n\n// Import partials\nimport {\n CalendarHeader,\n CalendarGrid,\n WeekNumbers,\n CalendarShortcuts,\n CalendarActions,\n} from './partials';\n\n/**\n * @slot default - Child content of the component.\n * @slot actions - Child content of the component.\n */\n@Component({\n tag: 'nv-calendar',\n styleUrl: 'nv-calendar.scss',\n shadow: false,\n})\nexport class NvCalendar {\n @Element() el: HTMLNvCalendarElement;\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * First day of the week (0 = Sunday, 1 = Monday, etc.)\n * @default 1\n */\n @Prop({ reflect: true })\n readonly firstDayOfWeek: number = 1;\n\n /**\n * Number of calendars to display\n * @default 1\n */\n @Prop({ mutable: true, reflect: true })\n numberOfCalendars: number = 1;\n\n /**\n * Selected date value. For single mode: ISO date string. For range mode: comma-separated ISO date strings.\n * Examples:\n * - Single: \"2025-03-15\"\n * - Range: \"2025-03-15,2025-03-20\"\n * @default \"\"\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n value: string = '';\n\n /**\n * Selected date (ISO string format)\n * ex: \"2025-03-15\"\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n singleValue: string;\n\n /**\n * Selected date range\n * format: { start: ISO string, end: ISO string }\n * ex: { start: \"2025-03-15\", end: \"2025-03-20\" }\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: false, mutable: true })\n rangeValue: {\n /** ISO string for start date */\n start: string;\n /** ISO string for end date */\n end: string;\n };\n\n /**\n * Minimum date for selection (ISO string format, ex: \"2025-01-01\")\n */\n @Prop({ reflect: true })\n readonly min?: string;\n\n /**\n * Maximum date for selection (ISO string format, ex: \"2025-12-31\")\n */\n @Prop({ reflect: true })\n readonly max?: string;\n\n /**\n * Disabled dates (ISO string array)\n */\n @Prop({ reflect: false })\n readonly disabledDates: Array<string>;\n\n /**\n * Locale for date formatting\n * @default 'en-BE'\n */\n @Prop({ reflect: true })\n readonly locale: string = 'en-BE';\n\n /**\n * Date format (ex: 'YYYY-MM-DD', 'DD-MM-YYYY', etc.)\n * @default 'YYYY-MM-DD'\n * @note If the date format is in UTC mode, the date will be displayed in UTC time.\n * @note If the date format is not in UTC mode, the date will be displayed in the local time.\n */\n @Prop({ reflect: true })\n readonly dateFormat: string = 'YYYY-MM-DD';\n\n /**\n * Footer placement\n * @default 'bottom'\n */\n @Prop({ reflect: true })\n readonly shortcutsPlacement: 'bottom' | 'left' | 'right' = 'bottom';\n\n /**\n * Selection type (single date or date range)\n * @default 'single'\n */\n @Prop({ reflect: true })\n readonly selectionType: 'single' | 'range' = 'single';\n\n /**\n * Show action buttons\n */\n @Prop({ reflect: true })\n readonly showActions: boolean = false;\n\n /**\n * Custom actions to display in the footer\n */\n @Prop({ reflect: true })\n readonly shortcuts: {\n /** Label of the shortcut */\n label: string;\n /** Selected date value for single selection mode */\n singleValue?: string;\n /** Date range values for range selection mode */\n rangeValue?: HTMLNvCalendarElement['rangeValue'];\n }[];\n\n /**\n * Show week numbers\n */\n @Prop({ reflect: true })\n readonly showWeekNumbers: boolean;\n\n /** Cache for parsed disabled dates */\n private parsedDisabledDates: Date[] = [];\n\n /** Flag to indicate a user click for selection */\n private isUserClick: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n\n @State()\n currentDate: Date | null = null;\n\n @State()\n selectedDate: Date | null = null;\n\n @State()\n startDate: Date | null = null;\n\n @State()\n endDate: Date | null = null;\n\n @State()\n hoverDate: Date | null = null;\n\n /** List of formatted months for the selector */\n @State()\n private months: {\n /** Month value */\n value: number;\n /** Month label */\n label: string;\n }[] = [];\n\n //#endregion STATE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when a single date is selected\n */\n @Event()\n singleDateChange: EventEmitter<string>;\n\n /**\n * Emitted when a date range is selected\n */\n @Event()\n rangeDateChange: EventEmitter<HTMLNvCalendarElement['rangeValue']>;\n\n /**\n * Emitted when the unified value changes\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n /**\n * Watches the changes of the number of calendars\n * @param {number} newValue - New number of calendars\n */\n @Watch('numberOfCalendars')\n validateNumberOfCalendars(newValue: number) {\n if (newValue < 1 || newValue > 4) {\n console.warn(\n 'numberOfCalendars must be between 1 and 4. Defaulting to 1.',\n );\n this.numberOfCalendars = 1;\n }\n }\n\n /**\n * Watches the changes of the selected date range\n * @param {Object} newValue - New rangeValue value\n * @param {string} newValue.start - Start date\n * @param {string} newValue.end - End date\n */\n @Watch('rangeValue')\n onRangeValueChange(newValue: typeof this.rangeValue) {\n if (newValue && newValue.start && newValue.end) {\n try {\n const { startDate, endDate } = this.validateDateRange(\n newValue.start,\n newValue.end,\n );\n\n this.startDate = startDate;\n this.endDate = endDate;\n\n // Do not navigate to the start date if data-prevent-navigation attribute is present\n const preventNavigation =\n this.el.getAttribute('data-prevent-navigation') === 'true';\n if (!preventNavigation && !this.isUserClick) {\n this.currentDate = startDate;\n }\n } catch (error) {\n console.error('Invalid rangeValue:', error);\n }\n }\n }\n\n /**\n * Watches the changes of the disabled dates\n * @description Watches the changes of the disabled dates\n */\n @Watch('disabledDates')\n handleDisabledDatesChange() {\n this.parseDisabledDates();\n }\n\n /**\n * Watches the changes of the single value\n * @param {string} newValue - New single value\n * @param {string} oldValue - Old single value\n */\n @Watch('singleValue')\n onSingleValueChange(newValue: string, oldValue: string) {\n if (this.selectionType === 'single' && newValue !== oldValue && newValue) {\n const parsedDate = parseDate(newValue, this.dateFormat);\n if (parsedDate) {\n this.selectedDate = parsedDate;\n\n // Do not navigate to the selected date if data-prevent-navigation attribute is present\n const preventNavigation =\n this.el.getAttribute('data-prevent-navigation') === 'true';\n if (!preventNavigation && !this.isUserClick) {\n this.currentDate = parsedDate;\n }\n }\n }\n }\n\n /**\n * Watches the changes of the unified value prop\n * @param {string} newValue - New value\n * @param {string} oldValue - Old value\n */\n @Watch('value')\n onValueChange(newValue: string, oldValue: string) {\n if (newValue !== oldValue) {\n this.parseUnifiedValue(newValue);\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.parseDisabledDates();\n\n // Initialize from unified value prop if provided\n if (this.value) {\n this.parseUnifiedValue(this.value);\n } else if (this.selectionType === 'single' && this.singleValue) {\n this.selectedDate = parseDate(this.singleValue, this.dateFormat);\n this.currentDate = this.selectedDate;\n } else if (this.selectionType === 'range' && this.rangeValue) {\n try {\n if (this.rangeValue.start && this.rangeValue.end) {\n const { startDate, endDate, swapped } = this.validateDateRange(\n this.rangeValue.start,\n this.rangeValue.end,\n );\n\n this.startDate = startDate;\n this.endDate = endDate;\n this.currentDate = startDate;\n\n if (swapped) {\n // If dates were swapped, update the rangeValue property\n // eslint-disable-next-line @stencil-community/strict-mutable\n this.rangeValue = {\n start: formatDate(startDate, { dateFormat: this.dateFormat }),\n end: formatDate(endDate, { dateFormat: this.dateFormat }),\n };\n }\n }\n } catch (error) {\n console.error('Invalid rangeValue:', error);\n }\n }\n\n // Ensure currentDate is always initialized\n if (!this.currentDate) {\n this.currentDate = new Date();\n }\n\n this.initializeMonths();\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Checks if shortcuts are visible\n * @returns {boolean} true if shortcuts are visible\n */\n private get hasShortcuts(): boolean {\n return Boolean(this.shortcutsPlacement && this.shortcuts);\n }\n\n /**\n * Checks if actions are visible\n * @returns {boolean} true if actions are visible\n */\n private get hasActions(): boolean {\n return this.showActions;\n }\n\n /**\n * Checks if the date format is in UTC mode\n * @returns {boolean} true if the date format is in UTC mode\n */\n private get isUTCMode(): boolean {\n return this.dateFormat.includes('Z');\n }\n\n /**\n * Parses the unified value prop and synchronizes with internal state\n * @param {string} value - Value to parse\n */\n private parseUnifiedValue = (value: string): void => {\n if (!value) {\n // Reset all selections\n this.selectedDate = null;\n this.startDate = null;\n this.endDate = null;\n return;\n }\n\n const values = value\n .split(',')\n .map(v => v.trim())\n .filter(Boolean);\n\n if (this.selectionType === 'range' && values.length < 2) {\n console.warn(`Invalid date range format: ${value}`);\n this.startDate = null;\n this.endDate = null;\n return;\n }\n\n if (this.selectionType === 'single' && values.length >= 1) {\n const parsedDate = parseDate(values[0], this.dateFormat);\n if (parsedDate) {\n this.selectedDate = parsedDate;\n\n // Only sync with legacy prop if not using actions (immediate mode)\n if (!this.showActions) {\n this.singleValue = values[0];\n }\n\n // Navigate to the date if not prevented\n const preventNavigation =\n this.el.getAttribute('data-prevent-navigation') === 'true';\n if (!preventNavigation && !this.isUserClick) {\n this.currentDate = parsedDate;\n }\n } else {\n // Handle malformed date gracefully - reset state\n console.warn(`Invalid date format: ${values[0]}`);\n this.selectedDate = null;\n if (!this.showActions) {\n this.singleValue = '';\n }\n }\n } else if (this.selectionType === 'range' && values.length >= 2) {\n const startDate = parseDate(values[0], this.dateFormat);\n const endDate = parseDate(values[1], this.dateFormat);\n\n if (startDate && endDate) {\n this.startDate = startDate;\n this.endDate = endDate;\n\n // Only sync with legacy prop if not using actions (immediate mode)\n if (!this.showActions) {\n this.rangeValue = {\n start: values[0],\n end: values[1],\n };\n }\n\n // Navigate to start date if not prevented\n const preventNavigation =\n this.el.getAttribute('data-prevent-navigation') === 'true';\n if (!preventNavigation && !this.isUserClick) {\n this.currentDate = startDate;\n }\n } else {\n // Handle malformed dates gracefully - reset state\n console.warn(\n `Invalid date range format: ${values?.[0]}, ${values?.[1]}`,\n );\n this.startDate = null;\n this.endDate = null;\n if (!this.showActions) {\n this.rangeValue = { start: '', end: '' };\n }\n }\n }\n };\n\n /**\n * Validates and processes a date range, warning if start is after end\n * @param {string} startDateStr - Start date in ISO string format\n * @param {string} endDateStr - End date in ISO string format\n * @returns {object} Object containing the validated start and end dates\n */\n private validateDateRange(\n startDateStr: string,\n endDateStr: string,\n ): {\n /** Start date */\n startDate: Date;\n /** End date */\n endDate: Date;\n /** If the dates were swapped */\n swapped: boolean;\n } {\n try {\n const startDate = parseDate(startDateStr, this.dateFormat);\n const endDate = parseDate(endDateStr, this.dateFormat);\n\n if (startDate && endDate && startDate > endDate) {\n console.warn(\n `Warning: startDate (${formatDate(startDate, {\n dateFormat: this.dateFormat,\n })}) is after endDate (${formatDate(endDate, {\n dateFormat: this.dateFormat,\n })})`,\n );\n\n // Return dates in correct order, with swapped flag\n return {\n startDate: endDate,\n endDate: startDate,\n swapped: true,\n };\n }\n\n return {\n startDate,\n endDate,\n swapped: false,\n };\n } catch (error) {\n console.error('Invalid date range:', error);\n throw error; // Re-throw to let the caller handle it\n }\n }\n\n /**\n * Change the displayed month\n * @param {number} offset - Month offset (-1 for previous, 1 for next)\n */\n private changeMonth = (offset: number) => {\n const newDate = new Date(this.currentDate);\n newDate.setUTCDate(1); // Set to the first of the month to avoid day-of-month issues\n newDate.setUTCMonth(newDate.getUTCMonth() + offset);\n\n const containers = this.el.querySelectorAll('.calendar-grid');\n containers.forEach(container => {\n container.classList.remove('slide-left', 'slide-right');\n const animationClass = offset > 0 ? 'slide-left' : 'slide-right';\n container.classList.add(animationClass);\n setTimeout(() => container.classList.remove(animationClass), 300);\n });\n\n this.currentDate = newDate;\n };\n\n private handleMouseLeave = () => {\n this.hoverDate = null;\n };\n\n private handleDayHover = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const dateStr = target.getAttribute('data-date');\n if (\n dateStr &&\n this.selectionType === 'range' &&\n this.startDate &&\n !this.endDate\n ) {\n this.hoverDate = new Date(dateStr);\n }\n };\n\n /**\n * Handles date selection based on the mode\n * @param {MouseEvent} event - The mouse event from the click.\n */\n private handleDateSelection = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const dateStr = target.getAttribute('data-date');\n if (!dateStr) return;\n\n const date = new Date(dateStr);\n if (this.isDateDisabled(date)) {\n return;\n }\n\n this.isUserClick = true;\n\n if (this.selectionType === 'single') {\n this.handleSingleSelection(date);\n } else {\n this.handleRangeSelection(date);\n }\n\n requestAnimationFrame(() => {\n this.isUserClick = false;\n });\n };\n\n /**\n * Handles single date selection\n * @param {Date} date - Selected date\n */\n private handleSingleSelection = (date: Date) => {\n if (!date) return;\n\n const formattedDate = formatDate(date, { dateFormat: this.dateFormat });\n this.selectedDate = date;\n\n // Update the unified value prop (like nv-fieldslider)\n this.value = formattedDate;\n this.valueChanged.emit(formattedDate);\n\n // Legacy support (deprecated) - only sync props if not using actions\n if (!this.showActions) {\n this.singleValue = formattedDate;\n this.singleDateChange.emit(formattedDate);\n }\n };\n\n /**\n * Handles range date selection\n * @param {Date} date - Selected date\n */\n private handleRangeSelection = (date: Date) => {\n if (!this.startDate || (this.startDate && this.endDate)) {\n // Start new range selection\n this.startDate = date;\n this.endDate = null;\n } else {\n // Complete range selection\n this.endDate = date;\n this.hoverDate = null;\n\n // Ensure correct order\n if (this.startDate > this.endDate) {\n [this.startDate, this.endDate] = [this.endDate, this.startDate];\n }\n\n const startFormatted = formatDate(this.startDate, {\n dateFormat: this.dateFormat,\n });\n const endFormatted = formatDate(this.endDate, {\n dateFormat: this.dateFormat,\n });\n\n // Update the unified value prop (like nv-fieldslider)\n this.value = `${startFormatted},${endFormatted}`;\n this.valueChanged.emit(this.value);\n\n // Legacy support (deprecated) - only sync props if not using actions\n if (!this.showActions) {\n const legacyRange = { start: startFormatted, end: endFormatted };\n this.rangeDateChange.emit(legacyRange);\n this.rangeValue = legacyRange;\n }\n }\n };\n\n /**\n * Checks if a date is disabled.\n * Disabled if:\n * - The date is before min (if defined)\n * - The date is after max (if defined)\n * - The date is in the disabledDates array\n * @param {Date} date - Date to check\n * @returns {boolean} true if the date is disabled\n */\n private isDateDisabled = (date: Date): boolean => {\n return isDateDisabledUtil(\n date,\n this.min,\n this.max,\n this.parsedDisabledDates,\n this.dateFormat,\n this.isUTCMode,\n );\n };\n\n /**\n * Checks if a date is in the selected range\n * @param {Date} date - Date to check\n * @returns {boolean} true if the date is in the range\n */\n private isDateInRange = (date: Date): boolean => {\n if (!date || !this.startDate || !this.endDate) return false;\n\n const checkDate = parseDate(date, this.dateFormat);\n const startDate = parseDate(this.startDate, this.dateFormat);\n const endDate = parseDate(this.endDate, this.dateFormat);\n\n // Verify if startDate and endDate are valid\n if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {\n return false;\n }\n\n // Verify that startDate is before endDate (additional security)\n if (startDate > endDate) return false;\n\n // Comparison based only on the date (year, month, day)\n return (\n isSameOrAfter(checkDate, startDate, { isUTCMode: this.isUTCMode }) &&\n isSameOrBefore(checkDate, endDate, { isUTCMode: this.isUTCMode })\n );\n };\n\n /**\n * Retrieves the localized day names\n * @returns {string[]} Array of short day names\n */\n private getDayNames = (): string[] => {\n let days: string[];\n\n // If we have custom day names for this locale\n if (CUSTOM_DAY_NAMES[this.locale]) {\n // Custom day names are expected to start with Monday (index 0 = Monday)\n days = [...CUSTOM_DAY_NAMES[this.locale]];\n } else {\n // Generate days using Intl.DateTimeFormat, starting from Monday\n const formatter = new Intl.DateTimeFormat(this.locale, {\n weekday: 'short',\n });\n\n // Generate days starting from Monday (2023-01-02 was a Monday)\n days = [...Array(7)].map((_, i) =>\n formatter.format(new Date(2023, 0, i + 2)).toUpperCase(),\n );\n }\n\n // Now reorganize based on firstDayOfWeek\n // 0 = Sunday, 1 = Monday (default), 2 = Tuesday, etc.\n if (this.firstDayOfWeek === 0) {\n // If Sunday is first day, move Sunday (last element) to the beginning\n return [days[6], ...days.slice(0, 6)];\n } else if (this.firstDayOfWeek === 1) {\n // If Monday is first day, return as-is (since our array starts with Monday)\n return days;\n } else {\n // For other first days (Tuesday=2, Wednesday=3, etc.)\n const offset = this.firstDayOfWeek - 1; // Convert to 0-based offset from Monday\n return [...days.slice(offset), ...days.slice(0, offset)];\n }\n };\n\n /**\n * Generates the days of the current month\n * @param {number} offset - Month offset (0 by default)\n * @returns {Array<{ dayOfMonth: number | null, date: Date | null, isSelected: boolean, isDisabled: boolean }>} Array of formatted days\n */\n private getDaysInMonth = (\n offset: number = 0,\n ): Array<{\n /** Day of the month (1 to 31) */\n dayOfMonth: number | null;\n /** Complete date */\n date: Date | null;\n /** If the day belongs to the current month */\n isCurrentMonth: boolean;\n /** If the day is disabled */\n isDisabled: boolean;\n /** If the day is blank (padding) */\n isBlank: boolean;\n }> => {\n const baseMonth = this.currentDate.getUTCMonth();\n\n // Correctly calculate the year and month for the given offset\n const targetDate = new Date(this.currentDate);\n targetDate.setUTCMonth(baseMonth + offset);\n const year = targetDate.getUTCFullYear();\n const month = targetDate.getUTCMonth();\n\n const firstDay = new Date(Date.UTC(year, month, 1));\n const lastDay = new Date(Date.UTC(year, month + 1, 0));\n\n const days = [];\n\n // Correct calculation of offset for previous month days\n // Use getUTCDay to stay consistent with UTC timezone\n const dayOfWeekIndex = firstDay.getUTCDay(); // 0 = Sunday, 1 = Monday, etc.\n\n // Adjust based on firstDayOfWeek (if week starts on Monday, offset is different)\n const offsetDays = (dayOfWeekIndex - this.firstDayOfWeek + 7) % 7;\n\n // Add padding days from the previous month\n for (let i = 0; i < offsetDays; i++) {\n const prevMonthDay = new Date(Date.UTC(year, month, 0)).getUTCDate();\n const date = new Date(\n Date.UTC(year, month - 1, prevMonthDay - offsetDays + 1 + i),\n );\n days.push({\n dayOfMonth: date.getUTCDate(),\n date,\n isCurrentMonth: false,\n isDisabled: this.isDateDisabled(date),\n // Days from previous month are blank if not the first calendar\n isBlank: offset > 0,\n });\n }\n\n // Add the days of the current month\n for (let i = 1; i <= lastDay.getUTCDate(); i++) {\n const date = new Date(Date.UTC(year, month, i));\n days.push({\n dayOfMonth: i,\n date,\n isCurrentMonth: true,\n isDisabled: this.isDateDisabled(date),\n isBlank: false,\n });\n }\n\n // Add padding days to fill the last week\n const nextMonthDaysNeeded = 7 - (days.length % 7 || 7);\n if (nextMonthDaysNeeded < 7) {\n for (let i = 1; i <= nextMonthDaysNeeded; i++) {\n const date = new Date(Date.UTC(year, month + 1, i));\n days.push({\n dayOfMonth: i,\n date,\n isCurrentMonth: false,\n isDisabled: this.isDateDisabled(date),\n // Days from next month are blank if not the last calendar\n isBlank: offset < this.numberOfCalendars - 1,\n });\n }\n }\n\n return days;\n };\n\n /** Initializes the list of formatted months according to the locale */\n private initializeMonths = () => {\n // If we have custom month names for this locale\n if (CUSTOM_MONTH_NAMES[this.locale]) {\n this.months = CUSTOM_MONTH_NAMES[this.locale].map((label, value) => ({\n value,\n label,\n }));\n return;\n }\n\n // Otherwise, use the default behavior\n const formatter = new Intl.DateTimeFormat(this.locale, { month: 'short' });\n this.months = Array.from({ length: 12 }, (_, i) => ({\n value: i,\n label: formatter.format(new Date(2000, i, 1)).toUpperCase(),\n }));\n };\n\n /**\n * Retrieves the localized abbreviation for \"week\"\n * @returns {string} Localized abbreviation for \"week\"\n */\n private getLocalizedWeekText = (): string => {\n return WEEK_ABBREVIATIONS[this.locale] || 'W';\n };\n\n /**\n * Handles month change in the selector\n * @param {Event} event - Month change event\n * @param {number} calendarOffset - Calendar offset (0 by default)\n */\n private handleMonthChange = (event: Event, calendarOffset: number = 0) => {\n const select = event.target as HTMLSelectElement;\n const selectedMonth = parseInt(select.value, 10);\n const newDate = new Date(this.currentDate);\n\n // Date for the calendar being changed\n const targetCalendarDate = new Date(newDate.toUTCString());\n targetCalendarDate.setUTCMonth(\n targetCalendarDate.getUTCMonth() + calendarOffset,\n );\n\n const currentMonth = targetCalendarDate.getUTCMonth();\n let monthDiff = selectedMonth - currentMonth;\n\n // Smartly adjust for year change\n if (monthDiff > 6) {\n // e.g. from Jan to Dec, go back 1 month\n monthDiff -= 12;\n }\n if (monthDiff < -6) {\n // e.g. from Dec to Jan, go forward 1 month\n monthDiff += 12;\n }\n\n // Apply the diff to the original `currentDate`\n const finalDate = new Date(this.currentDate);\n finalDate.setUTCMonth(finalDate.getUTCMonth() + monthDiff);\n this.currentDate = finalDate;\n };\n\n /**\n * Handles year change in the numeric entry\n * @param {Event} event - Year change event\n * @param {number} calendarOffset - Calendar offset (0 by default)\n */\n private handleYearChange = (event: Event, calendarOffset: number = 0) => {\n const input = event.target as HTMLInputElement;\n const year = parseInt(input.value, 10);\n if (!isNaN(year) && year >= 1900 && year <= 2100) {\n const newDate = new Date(this.currentDate);\n newDate.setUTCMonth(newDate.getUTCMonth() + calendarOffset);\n newDate.setUTCFullYear(year);\n newDate.setUTCMonth(newDate.getUTCMonth() - calendarOffset);\n this.currentDate = new Date(newDate);\n }\n };\n\n /**\n * Handles week selection\n * @param {Date[]} weekDays - Selected week days\n * @param {number} calendarIndex - Calendar index from which the selection is made\n */\n private handleWeekSelection = (weekDays: Date[], calendarIndex: number) => {\n if (this.selectionType !== 'range') return;\n\n const allDays = this.getDaysInMonth(calendarIndex);\n\n const weekStart = weekDays[0];\n const weekEnd = weekDays[weekDays.length - 1];\n\n if (!weekStart || !weekEnd) return;\n\n const selectedWeekDays = allDays.filter(\n day => day.date && day.date >= weekStart && day.date <= weekEnd,\n );\n\n const validDays = selectedWeekDays.filter(\n day => !this.isDateDisabled(day.date),\n );\n\n if (validDays.length > 0) {\n this.startDate = validDays[0].date;\n this.endDate = validDays[validDays.length - 1].date;\n\n this.rangeDateChange.emit({\n start: formatDate(this.startDate, { dateFormat: this.dateFormat }),\n end: formatDate(this.endDate, { dateFormat: this.dateFormat }),\n });\n }\n };\n\n /**\n * Checks if a date corresponds to today\n * @param {Date} date - Date to check\n * @returns {boolean} true if the date is today\n */\n private isToday = (date: Date): boolean => {\n const today = new Date();\n return (\n date.getDate() === today.getDate() &&\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n );\n };\n\n /**\n * Parse and cache the disabled dates\n * @description Parse and cache the disabled dates\n */\n private parseDisabledDates = () => {\n if (!this.disabledDates) {\n this.parsedDisabledDates = [];\n return;\n }\n\n try {\n this.parsedDisabledDates = this.disabledDates\n .map(date => parseDate(date, this.dateFormat))\n .filter(date => date !== null) as Date[];\n } catch (error) {\n console.error('Error parsing disabled dates:', error);\n this.parsedDisabledDates = [];\n }\n };\n\n /**\n * Applies a shortcut selection\n * @param {Object} shortcut - Shortcut to apply\n * @param {string | Date} shortcut.singleValue - Selected date value\n * @param {Object} shortcut.rangeValue - Start and end date values\n * @param {string | Date} shortcut.rangeValue.start - Start date value\n * @param {string | Date} shortcut.rangeValue.end - End date value\n * @param {string} shortcut.label - Label\n */\n private applyShortcut = (shortcut: (typeof this.shortcuts)[number]) => {\n this.selectedDate = null;\n this.startDate = null;\n this.endDate = null;\n\n if (shortcut.singleValue) {\n const newDate = parseDate(shortcut.singleValue, this.dateFormat);\n this.selectedDate = newDate;\n const formattedDate = formatDate(newDate, {\n dateFormat: this.dateFormat,\n });\n\n // Update the unified value prop (like nv-fieldslider)\n this.value = formattedDate;\n this.valueChanged.emit(formattedDate);\n\n // Legacy support (deprecated) - sync props\n this.singleValue = formattedDate;\n this.singleDateChange.emit(formattedDate);\n\n if (!this.showActions) {\n const event = new CustomEvent('closePopover', {\n bubbles: true,\n composed: true,\n });\n this.el.dispatchEvent(event);\n }\n\n this.forceCalendarUpdate(newDate);\n } else {\n const start = parseDate(shortcut.rangeValue.start, this.dateFormat);\n const end = parseDate(shortcut.rangeValue.end, this.dateFormat);\n\n this.startDate = start;\n this.endDate = end;\n\n const startFormatted = formatDate(start, {\n dateFormat: this.dateFormat,\n });\n const endFormatted = formatDate(end, { dateFormat: this.dateFormat });\n\n // Update the unified value prop (like nv-fieldslider)\n this.value = `${startFormatted},${endFormatted}`;\n this.valueChanged.emit(this.value);\n\n // Legacy support (deprecated) - sync props\n const legacyRange = { start: startFormatted, end: endFormatted };\n this.rangeDateChange.emit(legacyRange);\n // eslint-disable-next-line @stencil-community/strict-mutable\n this.rangeValue = legacyRange;\n\n if (!this.showActions) {\n const event = new CustomEvent('closePopover', {\n bubbles: true,\n composed: true,\n });\n this.el.dispatchEvent(event);\n }\n\n this.currentDate = start;\n }\n };\n\n /**\n * Method to force the complete calendar update\n * @param {Date} newDate - Date to force\n */\n private forceCalendarUpdate = newDate => {\n this.currentDate = new Date(newDate);\n };\n\n /**\n * Resets the current selection\n */\n private resetSelection = (): void => {\n if (this.selectionType === 'single') {\n this.selectedDate = null;\n // eslint-disable-next-line @stencil-community/strict-mutable\n this.singleValue = null;\n // eslint-disable-next-line @stencil-community/strict-mutable\n this.value = '';\n this.singleDateChange.emit('');\n this.valueChanged.emit('');\n } else {\n this.startDate = null;\n this.endDate = null;\n // eslint-disable-next-line @stencil-community/strict-mutable\n this.rangeValue = null;\n // eslint-disable-next-line @stencil-community/strict-mutable\n this.value = '';\n this.rangeDateChange.emit({ start: '', end: '' });\n this.valueChanged.emit('');\n }\n };\n\n /**\n * Confirms the current selection\n */\n private confirmSelection = (): void => {\n if (this.selectionType === 'single' && this.selectedDate) {\n const dateStr = formatDate(this.selectedDate, {\n dateFormat: this.dateFormat,\n });\n this.singleDateChange.emit(dateStr);\n // eslint-disable-next-line @stencil-community/strict-mutable\n this.singleValue = dateStr;\n const event = new CustomEvent('closePopover', {\n bubbles: true,\n composed: true,\n });\n this.el.dispatchEvent(event);\n } else if (\n this.selectionType === 'range' &&\n this.startDate &&\n this.endDate\n ) {\n this.rangeDateChange.emit({\n start: formatDate(this.startDate, { dateFormat: this.dateFormat }),\n end: formatDate(this.endDate, { dateFormat: this.dateFormat }),\n });\n // eslint-disable-next-line @stencil-community/strict-mutable\n this.rangeValue = {\n start: formatDate(this.startDate, { dateFormat: this.dateFormat }),\n end: formatDate(this.endDate, { dateFormat: this.dateFormat }),\n };\n const event = new CustomEvent('closePopover', {\n bubbles: true,\n composed: true,\n });\n this.el.dispatchEvent(event);\n }\n };\n\n /**\n * Clears the current selection and resets the calendar to its initial state.\n * This method can be called programmatically to reset the calendar.\n */\n @Method()\n async clear(): Promise<void> {\n if (this.selectionType === 'single') {\n this.selectedDate = null;\n this.singleValue = '';\n this.value = '';\n this.singleDateChange.emit('');\n this.valueChanged.emit('');\n } else {\n this.startDate = null;\n this.endDate = null;\n this.rangeValue = { start: '', end: '' };\n this.value = '';\n this.rangeDateChange.emit({ start: '', end: '' });\n this.valueChanged.emit('');\n }\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Renders the header\n * @param {number} offset - Month offset\n * @param {number} index - Calendar index\n * @returns {JSX.Element} Header\n * @description Renders the header of the calendar\n */\n private renderHeader = (offset: number, index: number) => {\n return (\n <CalendarHeader\n currentDate={this.currentDate}\n months={this.months}\n numberOfCalendars={this.numberOfCalendars}\n calendarIndex={index}\n monthOffset={offset}\n onMonthChange={this.changeMonth}\n onMonthSelect={this.handleMonthChange}\n onYearChange={this.handleYearChange}\n />\n );\n };\n\n /**\n * Renders the week numbers\n * @param {Array<{date: Date}>} weeks - Weeks to render\n * @param {number} index - Calendar index\n * @returns {JSX.Element} Week numbers\n * @description Renders the week numbers of the calendar\n */\n private renderWeekNumbers = (\n /** Weeks to render */\n weeks: Array<{\n /** Date */\n date: Date;\n }>[],\n /** Calendar index */\n index: number,\n ) => {\n return (\n <WeekNumbers\n weeks={weeks}\n localizedWeekText={this.getLocalizedWeekText()}\n selectionType={this.selectionType}\n onWeekSelect={this.handleWeekSelection}\n calendarIndex={index}\n />\n );\n };\n\n /**\n * Checks if the hover range is valid\n * @param {Date} startDate - Start date\n * @param {Date | null} hoverDate - Hovered date\n * @returns {boolean} true if the hover range is valid\n */\n private isHoverRangeValidFn = (\n startDate: Date,\n hoverDate: Date | null,\n ): boolean => {\n return isHoverRangeValid(\n startDate,\n hoverDate,\n this.min,\n this.max,\n this.parsedDisabledDates,\n this.dateFormat,\n this.isUTCMode,\n );\n };\n\n /**\n * Renders the calendar\n * @param {number} index - Calendar index\n * @param {number} offset - Month offset\n * @returns {JSX.Element} Calendar\n * @description Renders the calendar of the calendar\n */\n private renderCalendar = (\n /** Calendar index */\n index: number,\n /** Month offset */\n offset: number,\n ) => {\n const days = this.getDaysInMonth(offset);\n const weeks = [];\n for (let i = 0; i < days.length; i += 7) {\n weeks.push(days.slice(i, i + 7));\n }\n\n // Add year and month to the key to force re-render on date change\n const targetDate = new Date(this.currentDate);\n targetDate.setUTCMonth(targetDate.getUTCMonth() + offset);\n const year = targetDate.getUTCFullYear();\n const month = targetDate.getUTCMonth();\n\n return (\n <div class=\"calendar-wrapper\">\n <div\n class=\"calendar-container\"\n key={`calendar-${index}-${year}-${month}`}\n >\n {this.renderHeader(offset, index)}\n <div class=\"calendar-grid\">\n {this.showWeekNumbers && this.renderWeekNumbers(weeks, index)}\n <CalendarGrid\n days={days}\n dayNames={this.getDayNames()}\n selectionType={this.selectionType}\n selectedDate={this.selectedDate}\n startDate={this.startDate}\n endDate={this.endDate}\n isUTCMode={this.isUTCMode}\n onDayClick={this.handleDateSelection}\n isDateInRange={this.isDateInRange}\n isToday={this.isToday}\n onDayHover={this.handleDayHover}\n onMouseLeave={this.handleMouseLeave}\n hoverDate={this.hoverDate}\n isInHoverRange={isInHoverRange}\n isHoverRangeValid={this.isHoverRangeValidFn}\n />\n </div>\n </div>\n\n {/* Display a vertical separator only if multiple calendars */}\n {index < this.numberOfCalendars - 1 && (\n <div class=\"calendar-separator\"></div>\n )}\n </div>\n );\n };\n\n /**\n * Renders the shortcuts\n * @returns {JSX.Element} Shortcuts\n * @description Renders the shortcuts of the calendar\n */\n private renderShortcuts = () => {\n if (!this.hasShortcuts) {\n return null;\n }\n\n return (\n <CalendarShortcuts\n shortcuts={this.shortcuts}\n placement={this.shortcutsPlacement}\n onShortcutClick={this.applyShortcut}\n />\n );\n };\n\n /**\n * Renders the actions\n * @returns {JSX.Element} Actions\n * @description Renders the actions of the calendar\n * @slot actions - Child content of the component.\n */\n private renderActions = () => {\n return (\n <div class=\"datepicker-actions\">\n <slot name=\"actions\">\n <CalendarActions\n onReset={this.resetSelection}\n onConfirm={this.confirmSelection}\n useSlot={false}\n />\n </slot>\n </div>\n );\n };\n\n /**\n * Renders the datepicker\n * @returns {JSX.Element} Datepicker\n * @description Renders the datepicker of the calendar\n * @slot default - Child content of the component.\n */\n render() {\n return (\n <Host>\n <div class=\"datepicker-root\">\n <div\n class={`datepicker-container ${\n this.numberOfCalendars === 1 ? 'datepicker-container-single' : ''\n }`}\n >\n <div\n class={`datepicker-wrapper ${\n this.numberOfCalendars === 1 ? 'single' : ''\n }`}\n >\n {this.shortcutsPlacement === 'left' && this.renderShortcuts()}\n\n {Array.from({ length: this.numberOfCalendars }, (_, index) =>\n this.renderCalendar(index, index),\n )}\n\n {this.shortcutsPlacement === 'right' && this.renderShortcuts()}\n </div>\n\n {((this.hasShortcuts && this.shortcutsPlacement === 'bottom') ||\n this.hasActions) && (\n <div class=\"datepicker-controls\">\n {this.shortcutsPlacement === 'bottom' && this.renderShortcuts()}\n {this.hasActions && this.renderActions()}\n </div>\n )}\n </div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{h as e,r as i,c as r,H as t,g as n}from"./p-d0a33e64.js";import{v as s}from"./p-f5ff676c.js";function a(e){if(Number.isInteger(e))return 0;const i=e.toString();const r=i.split(".")[1];return r?r.length:0}function o(e,i,r){return Math.max(i,Math.min(r,e))}function l(e,i,r){if(r===i)return 0;return(e-i)/(r-i)*100}function d(e,i,r,t){const n=o(e,i,r);const s=a(t);if(s>0){const e=Math.pow(10,s);const a=Math.round((n-i)*e);const l=Math.round(t*e);const d=Math.round(a/l);const c=d*l;const f=i+c/e;return o(parseFloat(f.toFixed(s)),i,r)}const l=(n-i)/t;const d=Math.round(l);const c=i+d*t;return o(c,i,r)}function c(e,i,r){const t=[];for(let n=e;n<=i;n+=r){t.push(Number(n.toFixed(10)))}if(t[t.length-1]!==i){t.push(i)}return t}function f(e,i){if(!i||i.length===0)return e;let r=i[0].value;let t=Math.abs(e-r);for(const n of i){const i=Math.abs(e-n.value);if(i<t){t=i;r=n.value}}return r}function h(e,i){const r=a(i);if(r>0){return e.toFixed(r)}return String(e)}const u=i=>{const{value:r,min:t,max:n,step:s,rawPosition:a,isDragging:d,snap:c,disabled:f,readonly:u,onKeyDown:v,labelBeforeValue:b,labelAfterValue:p}=i;let m=r;if(d&&!c){m=o(a,t,n)}const k=l(m,t,n);return e("div",{class:"thumb",style:{left:`${k}%`},role:"slider","aria-valuemin":t,"aria-valuemax":n,"aria-valuenow":r,"aria-disabled":f?"true":undefined,"aria-readonly":u?"true":undefined,tabindex:f?-1:0,onKeyDown:v},e("div",{class:"thumb-tooltip"},b&&e("span",{class:"label-before"},b),h(r,s),p&&e("span",{class:"label-after"},p)))};const v=i=>{const{rangeValue:r,rawRangePosition:t,activeDragThumb:n,isDragging:s,snap:a,min:d,max:c,step:f,disabled:u,readonly:v,onKeyDown:b,labelBeforeValue:p,labelAfterValue:m}=i;const[k,g]=r;let y=k;let x=g;if(s&&!a){const[e,i]=t;if(n==="left"){y=o(e,d,Math.min(g,c))}else if(n==="right"){x=o(i,Math.max(k,d),c)}}const w=l(y,d,c);const V=l(x,d,c);return[e("div",{class:"track-range",style:{left:`${w}%`,width:`${V-w}%`}}),e("div",{class:"thumb thumb-left",style:{left:`${w}%`},role:"slider","aria-valuemin":d,"aria-valuemax":c,"aria-valuenow":k,"aria-disabled":u?"true":undefined,"aria-readonly":v?"true":undefined,"data-thumb":"left",tabindex:u?-1:0,onKeyDown:b},e("div",{class:"thumb-tooltip"},p&&e("span",{class:"label-before"},p),h(k,f),m&&e("span",{class:"label-after"},m))),e("div",{class:"thumb thumb-right",style:{left:`${V}%`},role:"slider","aria-valuemin":d,"aria-valuemax":c,"aria-valuenow":g,"aria-disabled":u?"true":undefined,"aria-readonly":v?"true":undefined,"data-thumb":"right",tabindex:u?-1:0,onKeyDown:b},e("div",{class:"thumb-tooltip"},p&&e("span",{class:"label-before"},p),h(g,f),m&&e("span",{class:"label-after"},m)))]};const b=i=>{const{ticks:r,min:t,max:n}=i;if(r.length===0){return null}return e("div",{class:"track-ticks"},r.map((i=>{const r=l(i.value,t,n);return e("div",{class:"track-tick",style:{left:`${r}%`}},i.label&&e("div",{class:"tick-label"},i.label))})))};const p=i=>{const{range:r,hasField:t,value:n,rangeValue:s,index:a,inputId:o,min:l,max:d,step:c,disabled:f,readonly:h,onInput:u,labelBeforeValue:v,labelAfterValue:b,name:p,endName:m}=i;const k=r?s[a]:n;const g=r?{"data-index":a.toString()}:{};let y;if(r){if(a===0){y=p||""}else{y=m||(p?`${p}-end`:"")}}else{y=p||""}const x=t?"input-container":"input-container hidden-input";return t?e("div",{class:x},e("nv-fieldnumber",Object.assign({id:o,value:k,min:l,max:d,step:c,disabled:f,readonly:h,name:y},g,{onInput:u}),v&&e("span",{class:"label-before",slot:"leading-input"},v),b&&e("span",{class:"label-after",slot:"trailing-input"},b))):e("input",{id:o,type:"hidden",value:k,disabled:f,readonly:h,name:y})};const m='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldslider .slider-container{width:100%;display:flex;flex-direction:row;align-items:center;gap:var(--form-gap-x)}nv-fieldslider .slider-container .track-container{position:relative;flex:1;height:calc(var(--slider-handler-size-min) + 0.25rem);padding:calc(var(--slider-handler-size-min) / 2) 0}nv-fieldslider .slider-container .track-container .track{position:relative;height:var(--slider-track-height);background:var(--components-slider-track-background);border-radius:var(--slider-track-radius);cursor:pointer}nv-fieldslider .slider-container .track-container .track .track-range{position:absolute;top:0;height:var(--slider-track-height);background:var(--components-slider-track-filled-default);border-radius:var(--slider-track-radius);pointer-events:none}nv-fieldslider .slider-container .track-container .track .thumb{position:absolute;top:50%;width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);background:#ffffff;border:var(--slider-handler-stroke) solid var(--components-slider-track-filled-default);border-radius:50%;transform:translate(-50%, -50%);z-index:1;cursor:grab;transition:width 0.2s, height 0.2s, box-shadow 0.2s, background-color 0.2s}nv-fieldslider .slider-container .track-container .track .thumb:hover{width:var(--slider-handler-size-max);height:var(--slider-handler-size-max);border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container .track .thumb:focus{width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);border-color:var(--components-slider-track-filled-focus);outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1);transition:outline;background:var(--components-slider-handler-background-focus)}nv-fieldslider .slider-container .track-container .track .thumb:active{cursor:grabbing;background:var(--components-slider-handler-background-hover)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip{position:absolute;top:25px;left:50%;background-color:var(--components-tooltip-background);color:var(--components-tooltip-text);padding:5px;border-radius:var(--tooltip-radius);font-size:var(--tooltip-font-size);z-index:10;pointer-events:none;user-select:none;opacity:0;transition:opacity 0.3s ease-in-out;transform:translateX(-50%)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip:after{content:"";background:var(--components-tooltip-background);box-shadow:none;border:none;position:absolute;border-bottom-color:transparent;border-right-color:transparent;width:6px;height:6px;transform:rotate(45deg);border-radius:1px;top:-3px;left:50%;margin-left:-3px}nv-fieldslider .slider-container .track-container .track .thumb:hover .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:active .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:focus .thumb-tooltip{opacity:1}nv-fieldslider .slider-container .track-container .track-ticks{position:relative;height:1rem;margin-top:0.25rem}nv-fieldslider .slider-container .track-container .track-ticks .track-tick{position:absolute;top:0;width:var(--slider-tick-height);height:var(--slider-tick-height);background:var(--components-form-field-border-default);border-radius:50%;transform:translate(-50%, 0);pointer-events:none}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:first-of-type{transform:translate(0, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:last-of-type{transform:translate(-100%, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{position:absolute;top:calc(var(--slider-tick-height) + 0.25rem);left:50%;color:var(--components-form-field-border-default);transform:translateX(-50%);white-space:nowrap}.track-tick-first nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:0;transform:translateX(0)}.track-tick-last nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:100%;transform:translateX(-100%)}nv-fieldslider .slider-container .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out;width:90px;flex-grow:unset}nv-fieldslider .slider-container .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldslider .slider-container .input-container:focus-within,nv-fieldslider .slider-container .input-container:focus-within:hover,nv-fieldslider .slider-container .input-container:focus,nv-fieldslider .slider-container .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldslider .slider-container .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldslider .slider-container .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldslider .slider-container .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;}nv-fieldslider .slider-container .input-container input:focus{outline:none}nv-fieldslider .slider-container .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldslider .slider-container .input-container input[type=password]::-ms-clear,nv-fieldslider .slider-container .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldslider .slider-container .input-container .label-before{margin-left:var(--spacing-2);color:var(--components-form-field-icon-default)}nv-fieldslider .slider-container .input-container .label-after{margin-right:var(--spacing-2);color:var(--components-form-field-icon-default)}nv-fieldslider[fluid]:not([fluid=false]){max-width:unset}nv-fieldslider[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldslider[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fieldslider[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldslider[readonly]:not([readonly=false]) .track,nv-fieldslider[readonly]:not([readonly=false]) .thumb{cursor:default}nv-fieldslider label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldslider nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldslider[hide-label]:not([hide-label=false]) label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}nv-fieldslider[has-field]:not([has-field=false]) .thumb-tooltip{display:none}nv-fieldslider>.description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldslider>.error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldslider>.error-description[hidden]{display:none}';const k=m;const g=class{constructor(e){i(this,e);this.valueChanged=r(this,"valueChanged",7);this.startInputId=s();this.endInputId=s();this.hideLabel=false;this.hasField=false;this.range=false;this.disabled=false;this.readonly=false;this.error=false;this.success=false;this.value=[0];this.step=1;this.snap=false;this.snapTicks=false;this.min=0;this.max=100;this.showTicks=false;this.fluid=false;this.isDragging=false;this.activeDragThumb="single";this.internalTicks=[];this.rawPosition=0;this.rawRangePosition=[0,0];this.valueInternal=0;this.rangeValueInternal=[0,0];this.parseValue=()=>{if(typeof this.value==="string"){console.error("Sliders require a number or array of numbers to be passed in the value prop.");return}if(this.range&&this.value.length!==2){console.error("Range sliders require an array of two values to be passed in the value prop.");return}if(!this.range&&this.value.length!==1){console.error("Single sliders require a single value as an array to be passed in the value prop.");return}this.valueInternal=this.value[0];this.rangeValueInternal=[this.value[0],this.value[1]]};this.onTrackInteraction=e=>{if(this.disabled||this.readonly){return}const i=e.currentTarget.getBoundingClientRect();const r=o((e.clientX-i.left)/i.width*100,0,100);const t=this.min+r/100*(this.max-this.min);this.rawPosition=t;if(this.range){const e=l(this.rangeValueInternal[0],this.min,this.max);const i=l(this.rangeValueInternal[1],this.min,this.max);const n=Math.abs(r-e);const s=Math.abs(r-i);if(n<=s){this.activeDragThumb="left";this.rawRangePosition=[t,this.rawRangePosition[1]];this.handleValueChange([t,this.rangeValueInternal[1]])}else{this.activeDragThumb="right";this.rawRangePosition=[this.rawRangePosition[0],t];this.handleValueChange([this.rangeValueInternal[0],t])}}else{this.activeDragThumb="single";this.rawPosition=t;this.handleValueChange(t)}this.isDragging=true;this.registerGlobalEvents()};this.onPointerMove=e=>{if(!this.isDragging||this.disabled||this.readonly){return}const i=this.el.querySelector(".track");if(!i)return;const r=i.getBoundingClientRect();const t=o((e.clientX-r.left)/r.width*100,0,100);const n=this.min+t/100*(this.max-this.min);if(this.range){if(this.activeDragThumb==="left"){this.rawRangePosition=[n,this.rawRangePosition[1]];this.handleValueChange([n,this.rangeValueInternal[1]])}else{this.rawRangePosition=[this.rawRangePosition[0],n];this.handleValueChange([this.rangeValueInternal[0],n])}}else{this.rawPosition=n;this.handleValueChange(n)}};this.onPointerUp=()=>{this.isDragging=false;this.removeGlobalEvents()};this.onKeyDown=e=>{if(this.disabled||this.readonly){return}let i;const r=e.shiftKey?10:1;const t=this.step*r;if(this.range){const r=e.target.getAttribute("data-thumb");const n=r==="left"?0:1;const s=[...this.rangeValueInternal];switch(e.key){case"ArrowRight":case"ArrowUp":s[n]+=t;break;case"ArrowLeft":case"ArrowDown":s[n]-=t;break;case"Home":s[n]=this.min;break;case"End":s[n]=this.max;break;case"PageUp":s[n]+=t*10;break;case"PageDown":s[n]-=t*10;break;default:return}i=s}else{switch(e.key){case"ArrowRight":case"ArrowUp":i=this.valueInternal+t;break;case"ArrowLeft":case"ArrowDown":i=this.valueInternal-t;break;case"Home":i=this.min;break;case"End":i=this.max;break;case"PageUp":i=this.valueInternal+t*10;break;case"PageDown":i=this.valueInternal-t*10;break;default:return}}e.preventDefault();this.handleValueChange(i)};this.handleFieldChange=e=>{const i=e.target;const r=parseFloat(i.value);if(isNaN(r)){return}if(this.range){const e=i.getAttribute("data-index")==="0"?0:1;const t=[...this.rangeValueInternal];t[e]=r;this.handleValueChange(t)}else{this.handleValueChange(r)}}}validateValue(e){const i=o(e,this.min,this.max);if(this.snapTicks&&this.internalTicks&&this.internalTicks.length>0){return f(i,this.internalTicks)}return d(i,this.min,this.max,this.step)}handleValueChange(e){if(this.disabled||this.readonly){return}if(this.range){if(Array.isArray(e)&&e.length===2){const i=[Math.min(e[0],e[1]),Math.max(e[0],e[1])];const r=[this.validateValue(i[0]),this.validateValue(i[1])];if(r[0]!==this.rangeValueInternal[0]||r[1]!==this.rangeValueInternal[1]){this.rangeValueInternal=r;this.value=this.rangeValueInternal;this.valueChanged.emit(this.rangeValueInternal)}}}else{if(typeof e==="number"){const i=this.validateValue(e);if(i!==this.valueInternal){this.valueInternal=i;this.value=[this.valueInternal];this.valueChanged.emit([this.valueInternal])}}}}generateDisplayTicks(){if(this.ticks&&this.ticks.length>0){this.internalTicks=[...this.ticks].sort(((e,i)=>e.value-i.value));return}if(!this.showTicks){this.internalTicks=[];return}const e=c(this.min,this.max,this.step);this.internalTicks=e.map((e=>({value:e})))}registerGlobalEvents(){document.addEventListener("pointermove",this.onPointerMove);document.addEventListener("pointerup",this.onPointerUp);document.addEventListener("pointercancel",this.onPointerUp)}removeGlobalEvents(){document.removeEventListener("pointermove",this.onPointerMove);document.removeEventListener("pointerup",this.onPointerUp);document.removeEventListener("pointercancel",this.onPointerUp)}onValueChange(){this.parseValue()}onConfigChange(){this.generateDisplayTicks();if(this.range){this.handleValueChange(this.rangeValueInternal)}else{this.handleValueChange(this.valueInternal)}}onRangeChange(e){if(e){this.rangeValueInternal=[this.min,this.valueInternal]}else{this.valueInternal=this.rangeValueInternal[1]}}connectedCallback(){this.parseValue();this.generateDisplayTicks();if(this.range){if(!Array.isArray(this.rangeValueInternal)||this.rangeValueInternal.length!==2){this.rangeValueInternal=[this.min,this.max]}this.handleValueChange(this.rangeValueInternal);this.rawRangePosition=[this.rangeValueInternal[0],this.rangeValueInternal[1]]}else{this.handleValueChange(this.valueInternal);this.rawPosition=this.valueInternal}}componentWillLoad(){if(this.value.length===1&&this.range){this.value=[this.value[0],this.value[0]]}else if(this.value.length===2&&!this.range){this.value=[this.value[0]]}}disconnectedCallback(){this.removeGlobalEvents()}render(){return e(t,{key:"7dafd85aa9bae558c6339bacc1ab0f9ca284f252"},(this.label||this.el.querySelector('[slot="label"]'))&&e("label",{key:"5a85de0b6d1216a1cdfa27172def79c7e2d17142",htmlFor:this.startInputId},e("slot",{key:"5f17b24bc70f148a70677f52dfe0be84162a675b",name:"label"},this.label)),e("div",{key:"5fb5d887c5fe61febfd877876365863f0657af93",class:"slider-container"},this.range?e(p,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,index:0,inputId:this.startInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name,endName:this.endName}):null,e("div",{key:"801e4189130725d5f4b3b0f116761e35a89f1236",class:"track-container"},e("div",{key:"fba52a45d3b5ba937b3e87441e17df458c490755",class:"track",onPointerDown:this.onTrackInteraction},this.range?e(v,{rangeValue:this.rangeValueInternal,rawRangePosition:this.rawRangePosition,activeDragThumb:this.activeDragThumb,isDragging:this.isDragging,snap:this.snap,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onKeyDown:this.onKeyDown,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue}):e(u,{value:this.valueInternal,min:this.min,max:this.max,step:this.step,rawPosition:this.rawPosition,isDragging:this.isDragging,snap:this.snap,disabled:this.disabled,readonly:this.readonly,onKeyDown:this.onKeyDown,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue})),e(b,{key:"1530c379bac4d4d0d7ef2eb22ddabe507ace1c0a",ticks:this.internalTicks,min:this.min,max:this.max})),this.range?e(p,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,index:1,inputId:this.endInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name,endName:this.endName}):e(p,{range:this.range,hasField:this.hasField,value:this.valueInternal,rangeValue:this.rangeValueInternal,inputId:this.startInputId,min:this.min,max:this.max,step:this.step,disabled:this.disabled,readonly:this.readonly,onInput:this.handleFieldChange,labelBeforeValue:this.labelBeforeValue,labelAfterValue:this.labelAfterValue,name:this.name})),(this.success||this.description||this.el.querySelector('[slot="description"]'))&&e("div",{key:"032ea2e613073412908abe35fe04545d2369f04a",class:"description"},this.success&&e("nv-icon",{key:"ff7a4249402880359bc46dd07ff39acd196a7630",name:"circle-check",class:"validation",size:"md"}),e("slot",{key:"2fc0542506811cfc2d50eac140aae4cf97d279ea",name:"description"},this.description)),(this.error||this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&e("div",{key:"d7ac4fc356cef87c86f7bd75dd4d5b4151379cfa",class:"error-description",hidden:!this.error},this.error&&e("nv-icon",{key:"598353c10d3f709fee22b44b8f831f22c2804d08",name:"alert-circle",class:"validation",size:"md"}),e("slot",{key:"a426ae3e63aafeea9d74cba5baa4bbf0fb65b0d1",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{value:["onValueChange"],min:["onConfigChange"],max:["onConfigChange"],step:["onConfigChange"],ticks:["onConfigChange"],showTicks:["onConfigChange"],snap:["onConfigChange"],snapTicks:["onConfigChange"],range:["onRangeChange"]}}};g.style=k;export{g as nv_fieldslider};
2
- //# sourceMappingURL=p-3fcaac6d.entry.js.map