@nova-design-system/nova-react 3.0.0-beta.42 → 3.0.0-beta.44

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 (270) hide show
  1. package/dist/cjs/index-BZCQTWfv.js +26372 -0
  2. package/dist/cjs/index-B_VOAJzk.js +26373 -0
  3. package/dist/cjs/index-CDe7nrrW.js +26373 -0
  4. package/dist/cjs/index-CEWbQ5nh.js +26373 -0
  5. package/dist/cjs/index-CIcUUomJ.js +26373 -0
  6. package/dist/cjs/index-CtI3SivD.js +26373 -0
  7. package/dist/cjs/index-wDACGzKb.js +26373 -0
  8. package/dist/cjs/index.js +1 -1
  9. package/dist/cjs/nv-alert.entry-B-P-Fgdo.js +173 -0
  10. package/dist/cjs/nv-alert.entry-B3NpZh1C.js +173 -0
  11. package/dist/cjs/nv-alert.entry-BU86GY-d.js +173 -0
  12. package/dist/cjs/nv-alert.entry-CwZcD170.js +173 -0
  13. package/dist/cjs/nv-alert.entry-CxSN1zpW.js +173 -0
  14. package/dist/cjs/nv-alert.entry-DsoqN5tQ.js +173 -0
  15. package/dist/cjs/nv-alert.entry-xuY-Lvuj.js +173 -0
  16. package/dist/cjs/nv-avatar.entry-CFgnor0-.js +67 -0
  17. package/dist/cjs/nv-avatar.entry-DJkpupVT.js +67 -0
  18. package/dist/cjs/nv-avatar.entry-DKXMQPOz.js +67 -0
  19. package/dist/cjs/nv-avatar.entry-DWOADxdQ.js +67 -0
  20. package/dist/cjs/nv-avatar.entry-DjyiGt07.js +67 -0
  21. package/dist/cjs/nv-avatar.entry-DuN1d3Vy.js +67 -0
  22. package/dist/cjs/nv-avatar.entry-yyLQEqI7.js +67 -0
  23. package/dist/cjs/nv-badge_2.entry-BFURAuBQ.js +195 -0
  24. package/dist/cjs/nv-badge_2.entry-BQXL0ZhP.js +195 -0
  25. package/dist/cjs/nv-badge_2.entry-CJQWS2xG.js +195 -0
  26. package/dist/cjs/nv-badge_2.entry-D0jeqYIQ.js +195 -0
  27. package/dist/cjs/nv-badge_2.entry-DKGHx4c8.js +194 -0
  28. package/dist/cjs/nv-badge_2.entry-Drgx-565.js +195 -0
  29. package/dist/cjs/nv-badge_2.entry-im1VnU5f.js +195 -0
  30. package/dist/cjs/nv-base.entry-9HF044Di.js +71 -0
  31. package/dist/cjs/nv-base.entry-BmY-1Lne.js +71 -0
  32. package/dist/cjs/nv-base.entry-BuxI7QmU.js +71 -0
  33. package/dist/cjs/nv-base.entry-CcaAXjnO.js +71 -0
  34. package/dist/cjs/nv-base.entry-Ch8ncPl0.js +71 -0
  35. package/dist/cjs/nv-base.entry-D7gUvPIG.js +71 -0
  36. package/dist/cjs/nv-base.entry-c723sI4Y.js +71 -0
  37. package/dist/cjs/nv-breadcrumb.entry-B9rOxsg_.js +45 -0
  38. package/dist/cjs/nv-breadcrumb.entry-BtM_AHRC.js +45 -0
  39. package/dist/cjs/nv-breadcrumb.entry-C-xHbSJw.js +45 -0
  40. package/dist/cjs/nv-breadcrumb.entry-CL9l0Wkr.js +45 -0
  41. package/dist/cjs/nv-breadcrumb.entry-CxGReUqZ.js +45 -0
  42. package/dist/cjs/nv-breadcrumb.entry-LYt0sALP.js +45 -0
  43. package/dist/cjs/nv-breadcrumb.entry-wy-P2BMg.js +45 -0
  44. package/dist/cjs/nv-breadcrumbs.entry-9LlUycIv.js +20 -0
  45. package/dist/cjs/nv-breadcrumbs.entry-B7CaTbBe.js +20 -0
  46. package/dist/cjs/nv-breadcrumbs.entry-BA-TnreZ.js +20 -0
  47. package/dist/cjs/nv-breadcrumbs.entry-CEmZ3yFi.js +20 -0
  48. package/dist/cjs/nv-breadcrumbs.entry-De5lsjQf.js +20 -0
  49. package/dist/cjs/nv-breadcrumbs.entry-_w38BddR.js +20 -0
  50. package/dist/cjs/nv-breadcrumbs.entry-ubxLcEUH.js +20 -0
  51. package/dist/cjs/nv-button.entry-B3rEQuGV.js +162 -0
  52. package/dist/cjs/nv-button.entry-B5-Wf9hh.js +162 -0
  53. package/dist/cjs/nv-button.entry-CBNfIn-r.js +162 -0
  54. package/dist/cjs/nv-button.entry-D-DPQDNM.js +162 -0
  55. package/dist/cjs/nv-button.entry-DHZX7KH4.js +162 -0
  56. package/dist/cjs/nv-button.entry-DLoECCSK.js +162 -0
  57. package/dist/cjs/nv-button.entry-Dk6DqHG2.js +162 -0
  58. package/dist/cjs/nv-calendar.entry-BeCCaAVE.js +1036 -0
  59. package/dist/cjs/nv-calendar.entry-DNyH8T5e.js +1036 -0
  60. package/dist/cjs/nv-calendar.entry-DSWhDnEC.js +1036 -0
  61. package/dist/cjs/nv-calendar.entry-DUHckAh3.js +1036 -0
  62. package/dist/cjs/nv-calendar.entry-NU1TumeS.js +1036 -0
  63. package/dist/cjs/nv-calendar.entry-UUE6v4YC.js +1036 -0
  64. package/dist/cjs/nv-calendar.entry-ZtfR2qOV.js +1036 -0
  65. package/dist/cjs/nv-col.entry-B5nCHhbO.js +37 -0
  66. package/dist/cjs/nv-col.entry-Bx1VZSMw.js +37 -0
  67. package/dist/cjs/nv-col.entry-C400BeEE.js +37 -0
  68. package/dist/cjs/nv-col.entry-CYjFAVMF.js +37 -0
  69. package/dist/cjs/nv-col.entry-DDEtfCv-.js +37 -0
  70. package/dist/cjs/nv-col.entry-DqzImLSJ.js +37 -0
  71. package/dist/cjs/nv-col.entry-DtYBQEJz.js +37 -0
  72. package/dist/cjs/nv-datagrid.entry-5VIvkJGL.js +3671 -0
  73. package/dist/cjs/nv-datagrid.entry-Ba9sfMQp.js +3671 -0
  74. package/dist/cjs/nv-datagrid.entry-Beehe_Sq.js +3671 -0
  75. package/dist/cjs/nv-datagrid.entry-CkD_jV75.js +3671 -0
  76. package/dist/cjs/nv-datagrid.entry-D6p67Pa6.js +3671 -0
  77. package/dist/cjs/nv-datagrid.entry-DKqScS8N.js +3671 -0
  78. package/dist/cjs/nv-datagrid.entry-ee865R4b.js +3671 -0
  79. package/dist/cjs/nv-datagridcolumn.entry-BeGXaBUe.js +18 -0
  80. package/dist/cjs/nv-datagridcolumn.entry-BodICzof.js +18 -0
  81. package/dist/cjs/nv-datagridcolumn.entry-C_FtSltZ.js +18 -0
  82. package/dist/cjs/nv-datagridcolumn.entry-D1cyTR_G.js +18 -0
  83. package/dist/cjs/nv-datagridcolumn.entry-DRE7BDkk.js +18 -0
  84. package/dist/cjs/nv-datagridcolumn.entry-Du6-7fjr.js +18 -0
  85. package/dist/cjs/nv-datagridcolumn.entry-N70Aen6Q.js +18 -0
  86. package/dist/cjs/nv-dialog.entry-BgHknrOx.js +784 -0
  87. package/dist/cjs/nv-dialog.entry-C1hg-EG1.js +784 -0
  88. package/dist/cjs/nv-dialog.entry-COv2do_O.js +784 -0
  89. package/dist/cjs/nv-dialog.entry-Ck2hU43g.js +784 -0
  90. package/dist/cjs/nv-dialog.entry-Cl8iLrCo.js +784 -0
  91. package/dist/cjs/nv-dialog.entry-Cy71tlWz.js +784 -0
  92. package/dist/cjs/nv-dialog.entry-DdAHZGzm.js +784 -0
  93. package/dist/cjs/nv-dialogfooter_2.entry-CXvA0O-2.js +134 -0
  94. package/dist/cjs/nv-dialogfooter_2.entry-Ck6adFfd.js +134 -0
  95. package/dist/cjs/nv-dialogfooter_2.entry-DHa0SYhR.js +134 -0
  96. package/dist/cjs/nv-dialogfooter_2.entry-DKvzkpt3.js +134 -0
  97. package/dist/cjs/nv-dialogfooter_2.entry-D_VuofBe.js +134 -0
  98. package/dist/cjs/nv-dialogfooter_2.entry-L5tHIb_T.js +134 -0
  99. package/dist/cjs/nv-dialogfooter_2.entry-kEa1K0n5.js +134 -0
  100. package/dist/cjs/nv-fieldcheckbox.entry-B4We4zG2.js +137 -0
  101. package/dist/cjs/nv-fieldcheckbox.entry-BmYyNV4r.js +137 -0
  102. package/dist/cjs/nv-fieldcheckbox.entry-CBsQsbIA.js +137 -0
  103. package/dist/cjs/nv-fieldcheckbox.entry-DTIebeJR.js +137 -0
  104. package/dist/cjs/nv-fieldcheckbox.entry-P--9IAJF.js +137 -0
  105. package/dist/cjs/nv-fieldcheckbox.entry-dBYg7CBU.js +137 -0
  106. package/dist/cjs/nv-fieldcheckbox.entry-dxhUZiEg.js +137 -0
  107. package/dist/cjs/nv-fielddate.entry-B53E-JaI.js +278 -0
  108. package/dist/cjs/nv-fielddate.entry-Bofdd2rE.js +278 -0
  109. package/dist/cjs/nv-fielddate.entry-CIo_61Dc.js +278 -0
  110. package/dist/cjs/nv-fielddate.entry-CekIFTA0.js +278 -0
  111. package/dist/cjs/nv-fielddate.entry-DgS0X1wI.js +278 -0
  112. package/dist/cjs/nv-fielddate.entry-Do69eqHA.js +278 -0
  113. package/dist/cjs/nv-fielddate.entry-NJ6RAqlG.js +278 -0
  114. package/dist/cjs/nv-fielddaterange.entry-BtPwfRw-.js +355 -0
  115. package/dist/cjs/nv-fielddaterange.entry-CxaBrZAX.js +355 -0
  116. package/dist/cjs/nv-fielddaterange.entry-D-6LjhjB.js +355 -0
  117. package/dist/cjs/nv-fielddaterange.entry-D0fq5KFb.js +355 -0
  118. package/dist/cjs/nv-fielddaterange.entry-D2dzD3rW.js +355 -0
  119. package/dist/cjs/nv-fielddaterange.entry-DTLKVIqg.js +355 -0
  120. package/dist/cjs/nv-fielddaterange.entry-w8WXPDuX.js +355 -0
  121. package/dist/cjs/nv-fielddropdown.entry-BAaPyGtB.js +361 -0
  122. package/dist/cjs/nv-fielddropdown.entry-C5kMWmPP.js +361 -0
  123. package/dist/cjs/nv-fielddropdown.entry-CX2Ycn2i.js +361 -0
  124. package/dist/cjs/nv-fielddropdown.entry-CZxQlRNa.js +361 -0
  125. package/dist/cjs/nv-fielddropdown.entry-DVl_Uy5A.js +361 -0
  126. package/dist/cjs/nv-fielddropdown.entry-akfp1Bcy.js +361 -0
  127. package/dist/cjs/nv-fielddropdown.entry-hHh_RDC4.js +361 -0
  128. package/dist/cjs/nv-fielddropdownitem.entry-BscNyhXz.js +68 -0
  129. package/dist/cjs/nv-fielddropdownitem.entry-CMWgXP_Z.js +68 -0
  130. package/dist/cjs/nv-fielddropdownitem.entry-CS1Ejbc9.js +68 -0
  131. package/dist/cjs/nv-fielddropdownitem.entry-CW4WMmSZ.js +68 -0
  132. package/dist/cjs/nv-fielddropdownitem.entry-CuQqsz4f.js +68 -0
  133. package/dist/cjs/nv-fielddropdownitem.entry-Dn2HJc1t.js +68 -0
  134. package/dist/cjs/nv-fielddropdownitem.entry-HK2I5pUG.js +68 -0
  135. package/dist/cjs/nv-fieldmultiselect.entry-5jdK36m6.js +1060 -0
  136. package/dist/cjs/nv-fieldmultiselect.entry-6o1yhNI5.js +1060 -0
  137. package/dist/cjs/nv-fieldmultiselect.entry-BGzYCJuF.js +1060 -0
  138. package/dist/cjs/nv-fieldmultiselect.entry-BN1ObPi8.js +1060 -0
  139. package/dist/cjs/nv-fieldmultiselect.entry-CuVEYN0v.js +1060 -0
  140. package/dist/cjs/nv-fieldmultiselect.entry-DHXJErt4.js +1060 -0
  141. package/dist/cjs/nv-fieldmultiselect.entry-DycRd14V.js +1060 -0
  142. package/dist/cjs/nv-fieldnumber.entry-BHhIsjLK.js +126 -0
  143. package/dist/cjs/nv-fieldnumber.entry-BklKxOFA.js +126 -0
  144. package/dist/cjs/nv-fieldnumber.entry-C8zJkL24.js +126 -0
  145. package/dist/cjs/nv-fieldnumber.entry-C9rKWY_M.js +126 -0
  146. package/dist/cjs/nv-fieldnumber.entry-CEmPQK-3.js +126 -0
  147. package/dist/cjs/nv-fieldnumber.entry-CLhjFlCj.js +126 -0
  148. package/dist/cjs/nv-fieldnumber.entry-_UiieYov.js +126 -0
  149. package/dist/cjs/nv-fieldpassword.entry-7lS0Msfg.js +115 -0
  150. package/dist/cjs/nv-fieldpassword.entry-B9-QFEsB.js +115 -0
  151. package/dist/cjs/nv-fieldpassword.entry-BIIoIKH4.js +115 -0
  152. package/dist/cjs/nv-fieldpassword.entry-BPhQxjsj.js +115 -0
  153. package/dist/cjs/nv-fieldpassword.entry-C5vG4jlh.js +115 -0
  154. package/dist/cjs/nv-fieldpassword.entry-C_jsHFJI.js +115 -0
  155. package/dist/cjs/nv-fieldpassword.entry-DZkGQwM8.js +115 -0
  156. package/dist/cjs/nv-fieldradio.entry-BgpmbG9E.js +102 -0
  157. package/dist/cjs/nv-fieldradio.entry-CXR4k3wf.js +102 -0
  158. package/dist/cjs/nv-fieldradio.entry-CnasQlEx.js +102 -0
  159. package/dist/cjs/nv-fieldradio.entry-DUDPigQb.js +102 -0
  160. package/dist/cjs/nv-fieldradio.entry-DiD7Luxv.js +102 -0
  161. package/dist/cjs/nv-fieldradio.entry-Ili2RVKl.js +102 -0
  162. package/dist/cjs/nv-fieldradio.entry-aRAaLwpK.js +102 -0
  163. package/dist/cjs/nv-fieldselect.entry-B94QXSEk.js +365 -0
  164. package/dist/cjs/nv-fieldselect.entry-BwtEjL08.js +365 -0
  165. package/dist/cjs/nv-fieldselect.entry-CFDqeR-D.js +365 -0
  166. package/dist/cjs/nv-fieldselect.entry-CJSu63o5.js +365 -0
  167. package/dist/cjs/nv-fieldselect.entry-CmN1R9ij.js +365 -0
  168. package/dist/cjs/nv-fieldselect.entry-CoDfr4ie.js +365 -0
  169. package/dist/cjs/nv-fieldselect.entry-DgmnHnOR.js +365 -0
  170. package/dist/cjs/nv-fieldtext.entry-B1TlZWjU.js +119 -0
  171. package/dist/cjs/nv-fieldtext.entry-BfQrX8ft.js +119 -0
  172. package/dist/cjs/nv-fieldtext.entry-BrUQu4OD.js +119 -0
  173. package/dist/cjs/nv-fieldtext.entry-CW6P-R-Q.js +119 -0
  174. package/dist/cjs/nv-fieldtext.entry-CyLJxDw6.js +119 -0
  175. package/dist/cjs/nv-fieldtext.entry-DDqDSJp3.js +119 -0
  176. package/dist/cjs/nv-fieldtext.entry-IeIHa3jf.js +119 -0
  177. package/dist/cjs/nv-fieldtextarea.entry-D86SKGIN.js +194 -0
  178. package/dist/cjs/nv-fieldtextarea.entry-DlFdCv_d.js +194 -0
  179. package/dist/cjs/nv-fieldtextarea.entry-DqzeITCG.js +194 -0
  180. package/dist/cjs/nv-fieldtextarea.entry-TI-bucN-.js +194 -0
  181. package/dist/cjs/nv-fieldtextarea.entry-qMX2O8cX.js +194 -0
  182. package/dist/cjs/nv-fieldtextarea.entry-tTnWQgE4.js +194 -0
  183. package/dist/cjs/nv-fieldtextarea.entry-v6VpnEuH.js +194 -0
  184. package/dist/cjs/nv-fieldtime.entry-CPyLyQfR.js +1011 -0
  185. package/dist/cjs/nv-fieldtime.entry-CYmcHY1D.js +1011 -0
  186. package/dist/cjs/nv-fieldtime.entry-DGP1X4wF.js +1011 -0
  187. package/dist/cjs/nv-fieldtime.entry-DLSuRrlr.js +1011 -0
  188. package/dist/cjs/nv-fieldtime.entry-Zbjbmm7_.js +1011 -0
  189. package/dist/cjs/nv-fieldtime.entry-eDVRT6te.js +1011 -0
  190. package/dist/cjs/nv-fieldtime.entry-j-Fliiqj.js +1011 -0
  191. package/dist/cjs/nv-icon.entry-B0Y3rgBQ.js +79 -0
  192. package/dist/cjs/nv-icon.entry-B_wtREWb.js +79 -0
  193. package/dist/cjs/nv-icon.entry-BfRAl2b6.js +79 -0
  194. package/dist/cjs/nv-icon.entry-CrKTCqY_.js +79 -0
  195. package/dist/cjs/nv-icon.entry-DRRmcXzh.js +79 -0
  196. package/dist/cjs/nv-icon.entry-Dlj1ko2i.js +79 -0
  197. package/dist/cjs/nv-icon.entry-S7WlK_lO.js +79 -0
  198. package/dist/cjs/nv-iconbutton_2.entry-B02iDUid.js +163 -0
  199. package/dist/cjs/nv-iconbutton_2.entry-C1Legk9t.js +163 -0
  200. package/dist/cjs/nv-iconbutton_2.entry-CUiW6MtK.js +163 -0
  201. package/dist/cjs/nv-iconbutton_2.entry-ClcvupMe.js +163 -0
  202. package/dist/cjs/nv-iconbutton_2.entry-D8MI5uzP.js +163 -0
  203. package/dist/cjs/nv-iconbutton_2.entry-D8hZ51H-.js +163 -0
  204. package/dist/cjs/nv-iconbutton_2.entry-QwaiOoYl.js +163 -0
  205. package/dist/cjs/nv-menu.entry-BfmYkdYY.js +227 -0
  206. package/dist/cjs/nv-menu.entry-CT98WIRF.js +227 -0
  207. package/dist/cjs/nv-menu.entry-CfERF478.js +227 -0
  208. package/dist/cjs/nv-menu.entry-Ci3I7PDt.js +227 -0
  209. package/dist/cjs/nv-menu.entry-DtLnsQW-.js +227 -0
  210. package/dist/cjs/nv-menu.entry-Kz5kGi2w.js +227 -0
  211. package/dist/cjs/nv-menu.entry-XdjjbAL6.js +227 -0
  212. package/dist/cjs/nv-menuitem.entry-C8nXPwP0.js +58 -0
  213. package/dist/cjs/nv-menuitem.entry-C9dsQqqN.js +58 -0
  214. package/dist/cjs/nv-menuitem.entry-Cedg0TCQ.js +58 -0
  215. package/dist/cjs/nv-menuitem.entry-CxCLeNsY.js +58 -0
  216. package/dist/cjs/nv-menuitem.entry-DkIG5z-x.js +58 -0
  217. package/dist/cjs/nv-menuitem.entry-bPnSDq_9.js +58 -0
  218. package/dist/cjs/nv-menuitem.entry-sRx1fD0O.js +58 -0
  219. package/dist/cjs/nv-popover.entry-BGXEOQM6.js +1960 -0
  220. package/dist/cjs/nv-popover.entry-C57rfYUn.js +1960 -0
  221. package/dist/cjs/nv-popover.entry-C6HFJJ-m.js +1960 -0
  222. package/dist/cjs/nv-popover.entry-CiGCCbn9.js +1960 -0
  223. package/dist/cjs/nv-popover.entry-CjTPZYkq.js +1960 -0
  224. package/dist/cjs/nv-popover.entry-CtO6pR6l.js +1960 -0
  225. package/dist/cjs/nv-popover.entry-Mo3DNUH6.js +1960 -0
  226. package/dist/cjs/nv-row.entry-BEgyuDR-.js +21 -0
  227. package/dist/cjs/nv-row.entry-BM_EcSp4.js +21 -0
  228. package/dist/cjs/nv-row.entry-B_7PiJA7.js +21 -0
  229. package/dist/cjs/nv-row.entry-Ca7LiDAy.js +21 -0
  230. package/dist/cjs/nv-row.entry-Cy9vd2iY.js +21 -0
  231. package/dist/cjs/nv-row.entry-DKoNhAcX.js +21 -0
  232. package/dist/cjs/nv-row.entry-OYGKTXhV.js +21 -0
  233. package/dist/cjs/nv-stack.entry-BNyPxECg.js +30 -0
  234. package/dist/cjs/nv-stack.entry-C8ZFDaKn.js +30 -0
  235. package/dist/cjs/nv-stack.entry-CLMAAbkw.js +30 -0
  236. package/dist/cjs/nv-stack.entry-DfRRFeEo.js +30 -0
  237. package/dist/cjs/nv-stack.entry-DiXvhuSS.js +30 -0
  238. package/dist/cjs/nv-stack.entry-lwhqS230.js +30 -0
  239. package/dist/cjs/nv-stack.entry-u3NjC31-.js +30 -0
  240. package/dist/cjs/nv-table.entry-BNy2ALll.js +338 -0
  241. package/dist/cjs/nv-table.entry-BPazUUGA.js +338 -0
  242. package/dist/cjs/nv-table.entry-COwgRxqz.js +338 -0
  243. package/dist/cjs/nv-table.entry-CTo8cqCN.js +338 -0
  244. package/dist/cjs/nv-table.entry-DzOGLNUx.js +338 -0
  245. package/dist/cjs/nv-table.entry-mEtRfake.js +338 -0
  246. package/dist/cjs/nv-table.entry-o525Lfea.js +338 -0
  247. package/dist/cjs/nv-tablecolumn.entry-BESdQMDh.js +18 -0
  248. package/dist/cjs/nv-tablecolumn.entry-CuEt5Wgn.js +18 -0
  249. package/dist/cjs/nv-tablecolumn.entry-D3I1dB1X.js +18 -0
  250. package/dist/cjs/nv-tablecolumn.entry-DvJF_QTE.js +18 -0
  251. package/dist/cjs/nv-tablecolumn.entry-DvO0JxdY.js +18 -0
  252. package/dist/cjs/nv-tablecolumn.entry-L4KLlHFu.js +18 -0
  253. package/dist/cjs/nv-tablecolumn.entry-vrmt1Y0L.js +18 -0
  254. package/dist/cjs/nv-toggle.entry-BIclNIeq.js +79 -0
  255. package/dist/cjs/nv-toggle.entry-Bv0DrF-x.js +79 -0
  256. package/dist/cjs/nv-toggle.entry-BxKZDHdI.js +79 -0
  257. package/dist/cjs/nv-toggle.entry-DYhnFucd.js +79 -0
  258. package/dist/cjs/nv-toggle.entry-PRWy57Ro.js +79 -0
  259. package/dist/cjs/nv-toggle.entry-fDIAyeVX.js +79 -0
  260. package/dist/cjs/nv-toggle.entry-yqg7e7Qc.js +79 -0
  261. package/dist/cjs/nv-tooltip.entry--TVfBopp.js +44 -0
  262. package/dist/cjs/nv-tooltip.entry-58RCazbO.js +44 -0
  263. package/dist/cjs/nv-tooltip.entry-BBJNnZmj.js +44 -0
  264. package/dist/cjs/nv-tooltip.entry-Bnu7xEl6.js +44 -0
  265. package/dist/cjs/nv-tooltip.entry-BrrSQyMx.js +44 -0
  266. package/dist/cjs/nv-tooltip.entry-BuSwME_F.js +44 -0
  267. package/dist/cjs/nv-tooltip.entry-ChQpdQn_.js +44 -0
  268. package/dist/generated/components.js +2 -2
  269. package/dist/types/generated/components.d.ts +2 -4
  270. package/package.json +1 -1
@@ -0,0 +1,1036 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-CEWbQ5nh.js');
4
+ var _commonjsHelpers1789f0cf = require('./_commonjsHelpers-1789f0cf-BJu3ubxk.js');
5
+ var constants98e2dcc2 = require('./constants-98e2dcc2-C0SBCapP.js');
6
+ require('react');
7
+
8
+ var dayjs_min = {exports: {}};
9
+
10
+ (function (module, exports) {
11
+ !function(t,e){module.exports=e();}(_commonjsHelpers1789f0cf.commonjsGlobal,(function(){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,true),this.parse(t),this.$x=this.$x||t.x||{},this[p]=true;}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,false)},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,true);case "A":return $(s,u,false);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,true);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=true),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}));
12
+ }(dayjs_min));
13
+
14
+ const dayjs = dayjs_min.exports;
15
+
16
+ var customParseFormat$1 = {exports: {}};
17
+
18
+ (function (module, exports) {
19
+ !function(e,t){module.exports=t();}(_commonjsHelpers1789f0cf.commonjsGlobal,(function(){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,false);}],a:[o,function(e){this.afternoon=d(e,true);}],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=true,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=true===o[2],h=true===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&&true!==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);};}}));
20
+ }(customParseFormat$1));
21
+
22
+ const customParseFormat = customParseFormat$1.exports;
23
+
24
+ var utc$1 = {exports: {}};
25
+
26
+ (function (module, exports) {
27
+ !function(t,i){module.exports=i();}(_commonjsHelpers1789f0cf.commonjsGlobal,(function(){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:true,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:true});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:false})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=true),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)};}}));
28
+ }(utc$1));
29
+
30
+ const utc = utc$1.exports;
31
+
32
+ var weekOfYear$1 = {exports: {}};
33
+
34
+ (function (module, exports) {
35
+ !function(e,t){module.exports=t();}(_commonjsHelpers1789f0cf.commonjsGlobal,(function(){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,true);return o<0?r(this).startOf("week").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)};}}));
36
+ }(weekOfYear$1));
37
+
38
+ const weekOfYear = weekOfYear$1.exports;
39
+
40
+ const nvCalendarCss = "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.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.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:1 !important;background-color:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-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{background:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected);opacity:1 !important}.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)}.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)}}";
41
+ const NvCalendarStyle0 = nvCalendarCss;
42
+
43
+ // Extend dayjs with plugins
44
+ dayjs.extend(customParseFormat);
45
+ dayjs.extend(utc);
46
+ dayjs.extend(weekOfYear);
47
+ const NvCalendar = class {
48
+ constructor(hostRef) {
49
+ index.registerInstance(this, hostRef);
50
+ this.singleDateChange = index.createEvent(this, "singleDateChange");
51
+ this.rangeDateChange = index.createEvent(this, "rangeDateChange");
52
+ /****************************************************************************/
53
+ //#region PROPERTIES
54
+ /**
55
+ * First day of the week (0 = Sunday, 1 = Monday, etc.)
56
+ * @default 0
57
+ */
58
+ this.firstDayOfWeek = 0;
59
+ /**
60
+ * Number of calendars to display
61
+ * @default 1
62
+ */
63
+ this.numberOfCalendars = 1;
64
+ /**
65
+ * Selected date (ISO string format)
66
+ * ex: "2025-03-15"
67
+ */
68
+ this.singleValue = '';
69
+ /**
70
+ * Selected date range
71
+ * format: { start: ISO string, end: ISO string }
72
+ * ex: { start: "2025-03-15", end: "2025-03-20" }
73
+ */
74
+ this.rangeValue = '';
75
+ /**
76
+ * Minimum date for selection (ISO string format, ex: "2025-01-01")
77
+ */
78
+ this.min = '';
79
+ /**
80
+ * Maximum date for selection (ISO string format, ex: "2025-12-31")
81
+ */
82
+ this.max = '';
83
+ /** Disabled dates (ISO string array)
84
+ * @default '[]'
85
+ */
86
+ this.disabledDates = '';
87
+ /** Locale for date formatting
88
+ * @default 'en-BE'
89
+ */
90
+ this.locale = 'en-BE';
91
+ /** Date format (ex: 'YYYY-MM-DD', 'DD-MM-YYYY', etc.)
92
+ * @default 'YYYY-MM-DD'
93
+ * @note If the date format is in UTC mode, the date will be displayed in UTC time.
94
+ * @note If the date format is not in UTC mode, the date will be displayed in the local time.
95
+ */
96
+ this.dateFormat = 'YYYY-MM-DD';
97
+ /**
98
+ * Footer placement
99
+ * @default 'bottom'
100
+ */
101
+ this.shortcutsPlacement = 'bottom';
102
+ /**
103
+ * Selection type (single date or date range)
104
+ * @default 'single'
105
+ */
106
+ this.selectionType = 'single';
107
+ /**
108
+ * Show action buttons
109
+ * @default false
110
+ */
111
+ this.showActions = false;
112
+ /**
113
+ * Custom actions to display in the footer
114
+ * JSON array of objects with the following properties:
115
+ * - label: string
116
+ * - onClick: function
117
+ * @default '[]'
118
+ */
119
+ this.shortcuts = '[]';
120
+ /** Cache for parsed disabled dates */
121
+ this.parsedDisabledDates = [];
122
+ /** Selected date */
123
+ this.selectedDate = null;
124
+ /** Start date */
125
+ this.startDate = null;
126
+ /** End date */
127
+ this.endDate = null;
128
+ /** List of formatted months for the selector */
129
+ this.months = [];
130
+ /**
131
+ * Resets the current selection
132
+ */
133
+ this.resetSelection = () => {
134
+ if (this.selectionType === 'single') {
135
+ this.selectedDate = null;
136
+ this.singleValue = '';
137
+ this.singleDateChange.emit('');
138
+ }
139
+ else {
140
+ this.startDate = null;
141
+ this.endDate = null;
142
+ this.rangeValue = '';
143
+ this.rangeDateChange.emit({ start: '', end: '' });
144
+ }
145
+ };
146
+ /**
147
+ * Confirms the current selection
148
+ */
149
+ this.confirmSelection = () => {
150
+ if (this.selectionType === 'single' && this.selectedDate) {
151
+ const dateStr = this.formatDate(this.selectedDate);
152
+ this.singleDateChange.emit(dateStr);
153
+ this.singleValue = dateStr;
154
+ const event = new CustomEvent('closePopover', {
155
+ bubbles: true,
156
+ composed: true,
157
+ });
158
+ this.el.dispatchEvent(event);
159
+ }
160
+ else if (this.selectionType === 'range' &&
161
+ this.startDate &&
162
+ this.endDate) {
163
+ this.rangeDateChange.emit({
164
+ start: this.formatDate(this.startDate),
165
+ end: this.formatDate(this.endDate),
166
+ });
167
+ this.rangeValue = JSON.stringify({
168
+ start: this.formatDate(this.startDate),
169
+ end: this.formatDate(this.endDate),
170
+ });
171
+ const event = new CustomEvent('closePopover', {
172
+ bubbles: true,
173
+ composed: true,
174
+ });
175
+ this.el.dispatchEvent(event);
176
+ }
177
+ };
178
+ }
179
+ //#endregion EVENTS
180
+ /****************************************************************************/
181
+ //#region LIFECYCLE
182
+ componentWillLoad() {
183
+ this.parseDisabledDates();
184
+ if (this.selectionType === 'single' && this.singleValue) {
185
+ this.selectedDate = this.parseDate(this.singleValue);
186
+ this.currentDate = this.selectedDate;
187
+ }
188
+ else if (this.selectionType === 'range' && this.rangeValue) {
189
+ try {
190
+ let parsed;
191
+ if (typeof this.rangeValue === 'string') {
192
+ parsed = JSON.parse(this.rangeValue);
193
+ }
194
+ else {
195
+ parsed = this.rangeValue;
196
+ }
197
+ if (parsed.start && parsed.end) {
198
+ this.startDate = this.parseDate(parsed.start);
199
+ this.endDate = this.parseDate(parsed.end);
200
+ this.currentDate = this.startDate;
201
+ if (this.startDate && this.endDate && this.startDate > this.endDate) {
202
+ console.warn(`Warning: startDate (${this.formatDate(this.startDate)}) is after endDate (${this.formatDate(this.endDate)})`);
203
+ // [this.startDate, this.endDate] = [this.endDate, this.startDate];
204
+ throw new Error('startDate cannot be after endDate');
205
+ }
206
+ }
207
+ }
208
+ catch (error) {
209
+ console.error('Invalid JSON for rangeValue:', error);
210
+ }
211
+ }
212
+ else {
213
+ this.currentDate = new Date();
214
+ }
215
+ this.initializeMonths();
216
+ }
217
+ // componentDidLoad() {
218
+ // if (this.rangeValue) {
219
+ // this.onRangeValueChange(this.rangeValue);
220
+ // }
221
+ // }
222
+ //#endregion LIFECYCLE
223
+ /****************************************************************************/
224
+ //#region METHODS
225
+ /**
226
+ * Change the displayed month
227
+ * @param {number} offset - Month offset (-1 for previous, 1 for next)
228
+ * @param {number} calendarOffset - Month offset for the calendar (0 by default)
229
+ */
230
+ changeMonth(offset, calendarOffset = 0) {
231
+ const newDate = new Date(this.currentDate);
232
+ newDate.setUTCMonth(newDate.getUTCMonth() + offset + calendarOffset);
233
+ // Add the appropriate animation class
234
+ const containers = this.el.querySelectorAll('.calendar-grid');
235
+ containers.forEach(container => {
236
+ // Remove existing animation classes
237
+ container.classList.remove('slide-left', 'slide-right');
238
+ // Add the new animation class
239
+ const animationClass = offset > 0 ? 'slide-left' : 'slide-right';
240
+ container.classList.add(animationClass);
241
+ // Remove the class after the animation
242
+ setTimeout(() => {
243
+ container.classList.remove(animationClass);
244
+ }, 300); // 300ms corresponds to $slide-duration in the SCSS
245
+ });
246
+ this.currentDate = newDate;
247
+ }
248
+ /**
249
+ * Handles date selection based on the mode
250
+ * @param {Date} date - Selected date
251
+ */
252
+ handleDateSelection(date) {
253
+ if (this.isDateDisabled(date)) {
254
+ return;
255
+ }
256
+ if (this.selectionType === 'single') {
257
+ this.handleSingleSelection(date);
258
+ }
259
+ else {
260
+ this.handleRangeSelection(date);
261
+ }
262
+ }
263
+ /**
264
+ * Handles single date selection
265
+ * @param {Date} date - Selected date
266
+ */
267
+ handleSingleSelection(date) {
268
+ if (!date)
269
+ return;
270
+ const formattedDate = this.formatDate(date);
271
+ this.selectedDate = date;
272
+ this.singleDateChange.emit(formattedDate);
273
+ }
274
+ /**
275
+ * Handles range date selection
276
+ * @param {Date} date - Selected date
277
+ */
278
+ handleRangeSelection(date) {
279
+ if (!this.startDate || (this.startDate && this.endDate)) {
280
+ this.startDate = date;
281
+ this.endDate = null;
282
+ }
283
+ else {
284
+ this.endDate = date;
285
+ if (this.startDate > this.endDate) {
286
+ [this.startDate, this.endDate] = [this.endDate, this.startDate];
287
+ }
288
+ this.rangeDateChange.emit({
289
+ start: this.formatDate(this.startDate),
290
+ end: this.formatDate(this.endDate),
291
+ });
292
+ }
293
+ }
294
+ /**
295
+ * Calculates the ISO week number
296
+ * @param {Date} date - Date to calculate
297
+ * @returns {number} Week number
298
+ */
299
+ getWeekNumber(date) {
300
+ const startOfYear = new Date(date.getFullYear(), 0, 1);
301
+ const pastDaysOfYear = (date.getTime() - startOfYear.getTime()) / 86400000;
302
+ return Math.ceil((pastDaysOfYear + startOfYear.getDay() + 1) / 7);
303
+ }
304
+ /**
305
+ * Checks if a date is disabled.
306
+ * Disabled if:
307
+ * - The date is before min (if defined)
308
+ * - The date is after max (if defined)
309
+ * - The date is in the disabledDates array
310
+ * @param {Date} date - Date to check
311
+ * @returns {boolean} true if the date is disabled
312
+ */
313
+ isDateDisabled(date) {
314
+ if (!date)
315
+ return true;
316
+ // Minimum bound check
317
+ if (this.min) {
318
+ const minDate = this.parseDate(this.min);
319
+ if (minDate && date < minDate) {
320
+ return true;
321
+ }
322
+ }
323
+ // Maximum bound check
324
+ if (this.max) {
325
+ const maxDate = this.parseDate(this.max);
326
+ if (maxDate && date > maxDate) {
327
+ return true;
328
+ }
329
+ }
330
+ // Check disabled dates
331
+ return this.parsedDisabledDates.some(disabledDate => this.isSameDate(date, disabledDate));
332
+ }
333
+ /**
334
+ * Checks if a date is in the selected range
335
+ * @param {Date} date - Date to check
336
+ * @returns {boolean} true if the date is in the range
337
+ */
338
+ isDateInRange(date) {
339
+ if (!date || !this.startDate || !this.endDate)
340
+ return false;
341
+ const checkDate = this.parseDate(date);
342
+ const startDate = this.parseDate(this.startDate);
343
+ const endDate = this.parseDate(this.endDate);
344
+ // Verify if startDate and endDate are valid
345
+ if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
346
+ return false;
347
+ }
348
+ // Verify that startDate is before endDate (additional security)
349
+ if (startDate > endDate)
350
+ return false;
351
+ // Comparison based only on the date (year, month, day)
352
+ return (this.isSameOrAfter(checkDate, startDate) &&
353
+ this.isSameOrBefore(checkDate, endDate));
354
+ }
355
+ /**
356
+ * Retrieves the localized day names
357
+ * @returns {string[]} Array of short day names
358
+ */
359
+ getDayNames() {
360
+ // If we have custom day names for this locale
361
+ if (constants98e2dcc2.CUSTOM_DAY_NAMES[this.locale]) {
362
+ const days = [...constants98e2dcc2.CUSTOM_DAY_NAMES[this.locale]];
363
+ // Reorganize the days based on the first day of the week
364
+ const firstDays = days.slice(0, this.firstDayOfWeek);
365
+ const remainingDays = days.slice(this.firstDayOfWeek);
366
+ return [...remainingDays, ...firstDays];
367
+ }
368
+ // Otherwise, use the default behavior
369
+ const formatter = new Intl.DateTimeFormat(this.locale, {
370
+ weekday: 'short',
371
+ });
372
+ const days = [...Array(7)].map((_, i) => formatter.format(new Date(2023, 0, i + 1)).toUpperCase());
373
+ // Reorganize the days based on the first day of the week
374
+ const firstDays = days.slice(0, this.firstDayOfWeek);
375
+ const remainingDays = days.slice(this.firstDayOfWeek);
376
+ return [...remainingDays, ...firstDays];
377
+ }
378
+ /**
379
+ * Generates the days of the current month
380
+ * @param {number} offset - Month offset (0 by default)
381
+ * @param {number} totalCalendars - Number of calendars to display (1 by default)
382
+ * @returns {Array<{ dayOfMonth: number | null, date: Date | null, isSelected: boolean, isDisabled: boolean }>} Array of formatted days
383
+ */
384
+ getDaysInMonth(offset = 0, totalCalendars = 1) {
385
+ const year = this.currentDate.getUTCFullYear();
386
+ const month = this.currentDate.getUTCMonth() + offset;
387
+ const firstDay = new Date(Date.UTC(year, month, 1));
388
+ const lastDay = new Date(Date.UTC(year, month + 1, 0));
389
+ const days = [];
390
+ // Calculate the offset to include the days of the previous month only for the first calendar
391
+ const offsetDays = offset === 0 ? (firstDay.getUTCDay() - this.firstDayOfWeek + 7) % 7 : 0;
392
+ // Add the days of the previous month for the first calendar
393
+ if (offset === 0) {
394
+ const prevMonthLastDay = new Date(Date.UTC(year, month, 0)).getUTCDate();
395
+ for (let i = offsetDays; i > 0; i--) {
396
+ const date = new Date(Date.UTC(year, month - 1, prevMonthLastDay - i + 1));
397
+ days.push({
398
+ dayOfMonth: date.getUTCDate(),
399
+ date,
400
+ isCurrentMonth: false,
401
+ isDisabled: this.isDateDisabled(date),
402
+ });
403
+ }
404
+ }
405
+ // Add the days of the current month
406
+ for (let i = 1; i <= lastDay.getUTCDate(); i++) {
407
+ const date = new Date(Date.UTC(year, month, i));
408
+ days.push({
409
+ dayOfMonth: i,
410
+ date,
411
+ isCurrentMonth: true,
412
+ isDisabled: this.isDateDisabled(date),
413
+ });
414
+ }
415
+ // Add the days of the next month only for the last calendar
416
+ if (offset === totalCalendars - 1) {
417
+ const nextMonthDaysNeeded = 7 - (days.length % 7 || 7);
418
+ for (let i = 1; i <= nextMonthDaysNeeded; i++) {
419
+ const date = new Date(Date.UTC(year, month + 1, i));
420
+ days.push({
421
+ dayOfMonth: i,
422
+ date,
423
+ isCurrentMonth: false,
424
+ isDisabled: this.isDateDisabled(date),
425
+ });
426
+ }
427
+ }
428
+ return days;
429
+ }
430
+ /** Initializes the list of formatted months according to the locale */
431
+ initializeMonths() {
432
+ // If we have custom month names for this locale
433
+ if (constants98e2dcc2.CUSTOM_MONTH_NAMES[this.locale]) {
434
+ this.months = constants98e2dcc2.CUSTOM_MONTH_NAMES[this.locale].map((label, value) => ({
435
+ value,
436
+ label,
437
+ }));
438
+ return;
439
+ }
440
+ // Otherwise, use the default behavior
441
+ const formatter = new Intl.DateTimeFormat(this.locale, { month: 'short' });
442
+ this.months = Array.from({ length: 12 }, (_, i) => ({
443
+ value: i,
444
+ label: formatter.format(new Date(2000, i, 1)).toUpperCase(),
445
+ }));
446
+ }
447
+ /**
448
+ * Retrieves the localized abbreviation for "week"
449
+ * @returns {string} Localized abbreviation for "week"
450
+ */
451
+ getLocalizedWeekText() {
452
+ return constants98e2dcc2.WEEK_ABBREVIATIONS[this.locale] || 'W';
453
+ }
454
+ /**
455
+ * Handles month change in the selector
456
+ * @param {Event} event - Month change event
457
+ * @param {number} calendarOffset - Calendar offset (0 by default)
458
+ */
459
+ handleMonthChange(event, calendarOffset = 0) {
460
+ const select = event.target;
461
+ const selectedMonth = parseInt(select.value, 10);
462
+ const currentMonth = this.currentDate.getUTCMonth();
463
+ // Calculate the difference considering the calendar offset
464
+ const monthDiff = selectedMonth - ((currentMonth + calendarOffset) % 12);
465
+ const newDate = new Date(this.currentDate);
466
+ newDate.setUTCMonth(newDate.getUTCMonth() + monthDiff);
467
+ this.currentDate = newDate;
468
+ }
469
+ /**
470
+ * Handles year change in the numeric entry
471
+ * @param {Event} event - Year change event
472
+ * @param {number} calendarOffset - Calendar offset (0 by default)
473
+ */
474
+ handleYearChange(event, calendarOffset = 0) {
475
+ const input = event.target;
476
+ const year = parseInt(input.value, 10);
477
+ if (!isNaN(year) && year >= 1900 && year <= 2100) {
478
+ const newDate = new Date(this.currentDate);
479
+ newDate.setUTCFullYear(year);
480
+ newDate.setUTCMonth(newDate.getUTCMonth() + calendarOffset);
481
+ this.currentDate = newDate;
482
+ }
483
+ }
484
+ /**
485
+ * Handles week selection
486
+ * @param {Date[]} weekDays - Selected week days
487
+ * @param {number} calendarIndex - Calendar index from which the selection is made
488
+ */
489
+ handleWeekSelection(weekDays, calendarIndex) {
490
+ if (this.selectionType !== 'range')
491
+ return;
492
+ const allDays = this.getDaysInMonth(calendarIndex, this.numberOfCalendars);
493
+ const weekStart = weekDays[0];
494
+ const weekEnd = weekDays[weekDays.length - 1];
495
+ if (!weekStart || !weekEnd)
496
+ return;
497
+ const selectedWeekDays = allDays.filter(day => day.date && day.date >= weekStart && day.date <= weekEnd);
498
+ const validDays = selectedWeekDays.filter(day => !this.isDateDisabled(day.date));
499
+ if (validDays.length > 0) {
500
+ this.startDate = validDays[0].date;
501
+ this.endDate = validDays[validDays.length - 1].date;
502
+ this.rangeDateChange.emit({
503
+ start: this.formatDate(this.startDate),
504
+ end: this.formatDate(this.endDate),
505
+ });
506
+ }
507
+ }
508
+ /**
509
+ * Checks if a date corresponds to today
510
+ * @param {Date} date - Date to check
511
+ * @returns {boolean} true if the date is today
512
+ */
513
+ isToday(date) {
514
+ const today = new Date();
515
+ return (date.getDate() === today.getDate() &&
516
+ date.getMonth() === today.getMonth() &&
517
+ date.getFullYear() === today.getFullYear());
518
+ }
519
+ /**
520
+ * Watches the changes of the number of calendars
521
+ * @watch numberOfCalendars
522
+ * @param {number} newValue - New number of calendars
523
+ */
524
+ validateNumberOfCalendars(newValue) {
525
+ if (newValue < 1 || newValue > 4) {
526
+ console.warn('numberOfCalendars must be between 1 and 4. Defaulting to 1.');
527
+ this.numberOfCalendars = 1;
528
+ }
529
+ }
530
+ /**
531
+ * Watches the changes of the selected date range
532
+ * @watch rangeValue
533
+ * @param {Object} newValue - New rangeValue value
534
+ * @param {string} newValue.start - Start date
535
+ * @param {string} newValue.end - End date
536
+ */
537
+ onRangeValueChange(newValue) {
538
+ if (newValue) {
539
+ try {
540
+ const parsed = JSON.parse(newValue);
541
+ if (parsed.start && parsed.end) {
542
+ this.startDate = this.parseDate(parsed.start);
543
+ this.endDate = this.parseDate(parsed.end);
544
+ this.currentDate = this.parseDate(parsed.start);
545
+ }
546
+ }
547
+ catch (error) {
548
+ console.error('Invalid JSON for rangeValue:', error);
549
+ }
550
+ }
551
+ }
552
+ /**
553
+ * Watches the changes of the disabled dates
554
+ * @watch disabledDates
555
+ * @description Watches the changes of the disabled dates
556
+ */
557
+ handleDisabledDatesChange() {
558
+ this.parseDisabledDates();
559
+ }
560
+ /**
561
+ * Watches the changes of the single value
562
+ * @watch singleValue
563
+ * @param {string} newValue - New single value
564
+ * @param {string} oldValue - Old single value
565
+ */
566
+ onSingleValueChange(newValue, oldValue) {
567
+ if (this.selectionType === 'single' && newValue !== oldValue && newValue) {
568
+ const parsedDate = this.parseDate(newValue);
569
+ if (parsedDate) {
570
+ this.selectedDate = parsedDate;
571
+ this.currentDate = parsedDate;
572
+ }
573
+ }
574
+ }
575
+ /**
576
+ * Convert a date string/Date to a Date without timezone offset
577
+ * @param {string | Date} dateInput - Date under string or Date object form
578
+ * @returns {Date} Date in Date form without timezone offset
579
+ */
580
+ parseDate(dateInput) {
581
+ if (dateInput instanceof Date)
582
+ return dateInput;
583
+ // Handling Unix Seconds ("X") formats
584
+ if (this.dateFormat === 'X') {
585
+ const unixSeconds = Number(dateInput);
586
+ if (isNaN(unixSeconds))
587
+ return null;
588
+ return this.isUTCMode
589
+ ? dayjs.unix(unixSeconds).utc().toDate()
590
+ : dayjs.unix(unixSeconds).toDate();
591
+ }
592
+ // Handling Unix Milliseconds ("x") formats
593
+ if (this.dateFormat === 'x') {
594
+ const unixMilliseconds = Number(dateInput);
595
+ if (isNaN(unixMilliseconds))
596
+ return null;
597
+ return this.isUTCMode
598
+ ? dayjs(unixMilliseconds).utc().toDate()
599
+ : dayjs(unixMilliseconds).toDate();
600
+ }
601
+ // Handling C# Ticks format
602
+ if (this.dateFormat === 'Ticks') {
603
+ const ticks = Number(dateInput);
604
+ if (isNaN(ticks))
605
+ return null;
606
+ // Conversion of .NET ticks to milliseconds since Unix epoch
607
+ const unixMilliseconds = (ticks - 621355968000000000) / 10000;
608
+ return this.isUTCMode
609
+ ? dayjs(unixMilliseconds).utc().toDate()
610
+ : dayjs(unixMilliseconds).toDate();
611
+ }
612
+ // For all other formats, use customParseFormat in strict mode
613
+ let parsed;
614
+ if (this.isUTCMode) {
615
+ parsed = dayjs.utc(dateInput, this.dateFormat, true);
616
+ }
617
+ else {
618
+ parsed = dayjs(dateInput, this.dateFormat, true);
619
+ }
620
+ if (!parsed.isValid()) {
621
+ console.error(`Parsing error:`, {
622
+ dateInput,
623
+ dateFormat: this.dateFormat,
624
+ });
625
+ return null;
626
+ }
627
+ return parsed.toDate();
628
+ }
629
+ /**
630
+ * Formats a date to a string according to the format
631
+ * @param {Date} date - Date to format
632
+ * @returns {string} Formatted date
633
+ */
634
+ formatDate(date) {
635
+ if (!date)
636
+ return '';
637
+ // If the format is "Ticks", convert the time to C# ticks
638
+ if (this.dateFormat === 'Ticks') {
639
+ const ticks = date.getTime() * 10000 + 621355968000000000;
640
+ return ticks.toString();
641
+ }
642
+ // If the format is "X" (Unix Seconds)
643
+ if (this.dateFormat === 'X') {
644
+ return dayjs(date).unix().toString();
645
+ }
646
+ // If the format is "x" (Unix Milliseconds)
647
+ if (this.dateFormat === 'x') {
648
+ return date.getTime().toString();
649
+ }
650
+ // Otherwise, format according to the mode (UTC or local)
651
+ return this.isUTCMode
652
+ ? dayjs(date).utc().format(this.dateFormat)
653
+ : dayjs(date).format(this.dateFormat);
654
+ }
655
+ /**
656
+ * Parse and cache the disabled dates
657
+ * @description Parse and cache the disabled dates
658
+ */
659
+ parseDisabledDates() {
660
+ if (!this.disabledDates) {
661
+ this.parsedDisabledDates = [];
662
+ return;
663
+ }
664
+ try {
665
+ const disabledDatesArray = JSON.parse(this.disabledDates);
666
+ this.parsedDisabledDates = disabledDatesArray
667
+ .map(date => this.parseDate(date))
668
+ .filter(date => date !== null);
669
+ }
670
+ catch (error) {
671
+ console.error('Error parsing disabled dates:', error);
672
+ this.parsedDisabledDates = [];
673
+ }
674
+ }
675
+ /**
676
+ * Checks if two dates are identical
677
+ * @param {Date | null} date1 - First date
678
+ * @param {Date | null} date2 - Second date
679
+ * @returns {boolean} true if the dates are identical
680
+ */
681
+ isSameDate(date1, date2) {
682
+ if (!date1 || !date2)
683
+ return false;
684
+ if (this.isUTCMode) {
685
+ return (date1.getUTCFullYear() === date2.getUTCFullYear() &&
686
+ date1.getUTCMonth() === date2.getUTCMonth() &&
687
+ date1.getUTCDate() === date2.getUTCDate());
688
+ }
689
+ else {
690
+ return (date1.getFullYear() === date2.getFullYear() &&
691
+ date1.getMonth() === date2.getMonth() &&
692
+ date1.getDate() === date2.getDate());
693
+ }
694
+ }
695
+ /**
696
+ * Checks if a date is identical or after another date
697
+ * @param {Date} date - Date to check
698
+ * @param {Date} compareDate - Reference date
699
+ * @returns {boolean} true if `date` >= `compareDate`
700
+ */
701
+ isSameOrAfter(date, compareDate) {
702
+ if (this.isUTCMode) {
703
+ return (date.getUTCFullYear() > compareDate.getUTCFullYear() ||
704
+ (date.getUTCFullYear() === compareDate.getUTCFullYear() &&
705
+ date.getUTCMonth() > compareDate.getUTCMonth()) ||
706
+ (date.getUTCFullYear() === compareDate.getUTCFullYear() &&
707
+ date.getUTCMonth() === compareDate.getUTCMonth() &&
708
+ date.getUTCDate() >= compareDate.getUTCDate()));
709
+ }
710
+ else {
711
+ return (date.getFullYear() > compareDate.getFullYear() ||
712
+ (date.getFullYear() === compareDate.getFullYear() &&
713
+ date.getMonth() > compareDate.getMonth()) ||
714
+ (date.getFullYear() === compareDate.getFullYear() &&
715
+ date.getMonth() === compareDate.getMonth() &&
716
+ date.getDate() >= compareDate.getDate()));
717
+ }
718
+ }
719
+ /**
720
+ * Checks if a date is identical or before another date
721
+ * @param {Date} date - Date to check
722
+ * @param {Date} compareDate - Reference date
723
+ * @returns {boolean} true if `date` <= `compareDate`
724
+ */
725
+ isSameOrBefore(date, compareDate) {
726
+ if (this.isUTCMode) {
727
+ return (date.getUTCFullYear() < compareDate.getUTCFullYear() ||
728
+ (date.getUTCFullYear() === compareDate.getUTCFullYear() &&
729
+ date.getUTCMonth() < compareDate.getUTCMonth()) ||
730
+ (date.getUTCFullYear() === compareDate.getUTCFullYear() &&
731
+ date.getUTCMonth() === compareDate.getUTCMonth() &&
732
+ date.getUTCDate() <= compareDate.getUTCDate()));
733
+ }
734
+ else {
735
+ return (date.getFullYear() < compareDate.getFullYear() ||
736
+ (date.getFullYear() === compareDate.getFullYear() &&
737
+ date.getMonth() < compareDate.getMonth()) ||
738
+ (date.getFullYear() === compareDate.getFullYear() &&
739
+ date.getMonth() === compareDate.getMonth() &&
740
+ date.getDate() <= compareDate.getDate()));
741
+ }
742
+ }
743
+ /**
744
+ * Applies a shortcut selection
745
+ * @param {Object} shortcut - Shortcut to apply
746
+ * @param {string | Date} shortcut.singleValue - Selected date value
747
+ * @param {Object} shortcut.rangeValue - Start and end date values
748
+ * @param {string | Date} shortcut.rangeValue.start - Start date value
749
+ * @param {string | Date} shortcut.rangeValue.end - End date value
750
+ * @param {string} shortcut.label - Label
751
+ */
752
+ applyShortcut(shortcut) {
753
+ this.selectedDate = null;
754
+ this.startDate = null;
755
+ this.endDate = null;
756
+ if (shortcut.singleValue) {
757
+ const newDate = this.parseDate(shortcut.singleValue);
758
+ this.selectedDate = newDate;
759
+ this.singleDateChange.emit(this.formatDate(newDate));
760
+ this.singleValue = this.formatDate(newDate);
761
+ if (!this.showActions) {
762
+ const event = new CustomEvent('closePopover', {
763
+ bubbles: true,
764
+ composed: true,
765
+ });
766
+ this.el.dispatchEvent(event);
767
+ }
768
+ this.forceCalendarUpdate(newDate);
769
+ }
770
+ else {
771
+ const start = this.parseDate(shortcut.rangeValue.start);
772
+ const end = this.parseDate(shortcut.rangeValue.end);
773
+ this.startDate = start;
774
+ this.endDate = end;
775
+ this.rangeDateChange.emit({
776
+ start: this.formatDate(start),
777
+ end: this.formatDate(end),
778
+ });
779
+ this.rangeValue = JSON.stringify({
780
+ start: this.formatDate(start),
781
+ end: this.formatDate(end),
782
+ });
783
+ if (!this.showActions) {
784
+ const event = new CustomEvent('closePopover', {
785
+ bubbles: true,
786
+ composed: true,
787
+ });
788
+ this.el.dispatchEvent(event);
789
+ }
790
+ this.forceCalendarUpdate(end);
791
+ }
792
+ }
793
+ /**
794
+ * Method to force the complete calendar update (and fix the persistent hover problem)
795
+ * @param {Date} newDate - Date to force
796
+ */
797
+ forceCalendarUpdate(newDate) {
798
+ this.currentDate = new Date(newDate);
799
+ this.currentDate = new Date(this.currentDate); // Force a re-render
800
+ // Reset visually the hover/touch effect
801
+ requestAnimationFrame(() => {
802
+ const days = document.querySelectorAll('.day');
803
+ days.forEach(el => {
804
+ el.classList.remove('hover', 'active', 'touched');
805
+ el.style.pointerEvents = 'none';
806
+ });
807
+ // Add specific touch handling (for mobile)
808
+ document.body.addEventListener('touchstart', this.clearTouchState, {
809
+ passive: true,
810
+ });
811
+ // Reset the touch state after 50ms
812
+ setTimeout(() => {
813
+ days.forEach(el => {
814
+ el.style.pointerEvents = '';
815
+ });
816
+ }, 50);
817
+ });
818
+ }
819
+ /**
820
+ * Function to reset the touch effect (Mobile fix)
821
+ */
822
+ clearTouchState() {
823
+ document.querySelectorAll('.day').forEach(el => {
824
+ el.classList.remove('touched');
825
+ });
826
+ // Remove the listener after the first interaction
827
+ document.body.removeEventListener('touchstart', this.clearTouchState);
828
+ }
829
+ /**
830
+ * Handles month change with an offset
831
+ * @param {number} direction - Direction (-1 for previous, 1 for next)
832
+ * @param {number} offset - Month offset (0 by default)
833
+ * @returns {Function} Change month handler
834
+ */
835
+ getChangeMonthHandler(direction, offset) {
836
+ return () => this.changeMonth(direction, offset);
837
+ }
838
+ /**
839
+ * Handles month change from an event (ex: dropdown)
840
+ * @param {number} offset - Month offset (0 by default)
841
+ * @returns {Function} Change month handler
842
+ */
843
+ getHandleMonthChange(offset) {
844
+ return (event) => this.handleMonthChange(event, offset);
845
+ }
846
+ /**
847
+ * Handles year change from an event (ex: dropdown)
848
+ * @param {number} offset - Year offset (0 by default)
849
+ * @returns {Function} Change year handler
850
+ */
851
+ getHandleYearChange(offset) {
852
+ return (event) => this.handleYearChange(event, offset);
853
+ }
854
+ /**
855
+ * Handles day click
856
+ * @param {Date} date - Date to handle
857
+ * @param {boolean} isDisabled - Whether the date is disabled
858
+ * @returns {Function} Day click handler
859
+ */
860
+ getDayClickHandler(date, isDisabled) {
861
+ return isDisabled ? undefined : () => this.handleDateSelection(date);
862
+ }
863
+ /**
864
+ * Handles shortcut selection
865
+ * @param {Object} shortcut - Shortcut to handle
866
+ * @param {string | Date} shortcut.singleValue - Selected date value
867
+ * @param {Object} shortcut.rangeValue - Start and end date values
868
+ * @param {string | Date} shortcut.rangeValue.start - Start date value
869
+ * @param {string | Date} shortcut.rangeValue.end - End date value
870
+ * @param {string} shortcut.label - Label
871
+ * @returns {Function} Shortcut selection handler
872
+ */
873
+ getShortcutHandler(shortcut) {
874
+ return () => this.applyShortcut(shortcut);
875
+ }
876
+ /**
877
+ * Handles week selection
878
+ * @param {Date[]} dates - Dates to handle
879
+ * @param {number} index - Calendar index
880
+ * @returns {Function} Week selection handler
881
+ */
882
+ getWeekSelectionHandler(dates, index) {
883
+ return () => {
884
+ if (this.selectionType === 'range') {
885
+ this.handleWeekSelection(dates, index);
886
+ }
887
+ };
888
+ }
889
+ parsedShortcuts() {
890
+ try {
891
+ return this.shortcuts ? JSON.parse(this.shortcuts) : [];
892
+ }
893
+ catch (error) {
894
+ console.error('Invalid JSON for shortcuts:', error);
895
+ return [];
896
+ }
897
+ }
898
+ /**
899
+ * Checks if the date format is in UTC mode
900
+ * @returns {boolean} true if the date format is in UTC mode
901
+ */
902
+ get isUTCMode() {
903
+ return this.dateFormat.includes('Z');
904
+ }
905
+ /**
906
+ * Checks if shortcuts are visible
907
+ * @returns {boolean} true if shortcuts are visible
908
+ */
909
+ get hasShortcuts() {
910
+ return (this.shortcutsPlacement === 'bottom' && this.parsedShortcuts().length > 0);
911
+ }
912
+ /**
913
+ * Checks if actions are visible
914
+ * @returns {boolean} true if actions are visible
915
+ */
916
+ get hasActions() {
917
+ return this.showActions;
918
+ }
919
+ //#endregion METHODS
920
+ /****************************************************************************/
921
+ //#region RENDER
922
+ /**
923
+ * Renders the header
924
+ * @param {number} offset - Month offset
925
+ * @param {number} index - Calendar index
926
+ * @returns {JSX.Element} Header
927
+ * @description Renders the header of the calendar
928
+ */
929
+ renderHeader(offset, index$1) {
930
+ return (index.h("div", { class: "header" }, this.numberOfCalendars > 1 && index$1 === 0 && (index.h("nv-iconbutton", { class: "nav-left", emphasis: "lower", name: "chevron-left", onClick: this.getChangeMonthHandler(-1, offset) })), index.h("div", { class: "date-controls" }, index.h("select", { class: "month-select mr-4", onChange: this.getHandleMonthChange(offset) }, this.months.map(month => (index.h("option", { key: month.value, value: month.value, selected: month.value === (this.currentDate.getUTCMonth() + offset) % 12 }, month.label)))), index.h("input", { type: "number", class: "year-input", min: "1950", max: "2100", value: this.currentDate.getUTCFullYear() +
931
+ Math.floor((this.currentDate.getUTCMonth() + offset) / 12), onChange: this.getHandleYearChange(offset) })), this.numberOfCalendars === 1 && (index.h("div", { class: "nav-buttons" }, index.h("nv-iconbutton", { emphasis: "lower", name: "chevron-left", onClick: this.getChangeMonthHandler(-1, offset) }), index.h("nv-iconbutton", { emphasis: "lower", name: "chevron-right", onClick: this.getChangeMonthHandler(1, offset) }))), this.numberOfCalendars > 1 && index$1 === this.numberOfCalendars - 1 && (index.h("nv-iconbutton", { emphasis: "lower", name: "chevron-right", onClick: this.getChangeMonthHandler(1, offset), class: "nav-right" }))));
932
+ }
933
+ /**
934
+ * Renders the week numbers
935
+ * @param {Array<{date: Date}>} weeks - Weeks to render
936
+ * @param {number} index - Calendar index
937
+ * @returns {JSX.Element} Week numbers
938
+ * @description Renders the week numbers of the calendar
939
+ */
940
+ renderWeekNumbers(
941
+ /** Weeks to render */
942
+ weeks,
943
+ /** Calendar index */
944
+ index$1) {
945
+ return (index.h("div", { class: "week-numbers" }, index.h("div", { class: "week-header" }, this.getLocalizedWeekText()), weeks.map((week, weekIndex) => {
946
+ var _a;
947
+ const dates = week.map(d => d.date);
948
+ return (index.h("div", { class: `week-number ${this.selectionType === 'range' ? 'clickable' : ''}`, onClick: this.getWeekSelectionHandler(dates, index$1), key: `week-${weekIndex}` }, this.getWeekNumber(((_a = week.find(d => d.date)) === null || _a === void 0 ? void 0 : _a.date) || new Date())));
949
+ })));
950
+ }
951
+ renderDaysGrid(
952
+ /** Days to render */
953
+ days) {
954
+ return (index.h("div", { class: "days-grid" }, days.map(day => {
955
+ const date = day.date;
956
+ if (!date)
957
+ return null;
958
+ const isSelected = this.selectionType === 'single' &&
959
+ this.isSameDate(date, this.selectedDate);
960
+ const isInRange = this.isDateInRange(date);
961
+ const isStart = this.isSameDate(date, this.startDate);
962
+ const isEnd = this.isSameDate(date, this.endDate);
963
+ const isToday = this.isToday(date);
964
+ const isOutsideMonth = !day.isCurrentMonth;
965
+ const dayClasses = [
966
+ 'day',
967
+ isSelected ? 'selected' : '',
968
+ isStart ? 'range-start' : '',
969
+ isEnd ? 'range-end' : '',
970
+ isInRange ? 'in-range' : '',
971
+ day.isDisabled ? 'disabled' : '',
972
+ isOutsideMonth ? 'outside-month' : '',
973
+ isToday ? 'is-today' : '',
974
+ ];
975
+ return (index.h("div", { class: dayClasses.filter(Boolean).join(' '), onClick: this.getDayClickHandler(date, day.isDisabled), "aria-disabled": day.isDisabled, key: `day-${date.toISOString()}` }, day.dayOfMonth));
976
+ })));
977
+ }
978
+ /**
979
+ * Renders the calendar
980
+ * @param {number} index - Calendar index
981
+ * @param {number} offset - Month offset
982
+ * @returns {JSX.Element} Calendar
983
+ * @description Renders the calendar of the calendar
984
+ */
985
+ renderCalendar(
986
+ /** Calendar index */
987
+ index$1,
988
+ /** Month offset */
989
+ offset) {
990
+ const days = this.getDaysInMonth(offset, this.numberOfCalendars);
991
+ const weeks = [];
992
+ for (let i = 0; i < days.length; i += 7) {
993
+ weeks.push(days.slice(i, i + 7));
994
+ }
995
+ return (index.h("div", { class: "calendar-wrapper" }, index.h("div", { class: "calendar-container", key: `calendar-${index$1}` }, this.renderHeader(offset, index$1), index.h("div", { class: "calendar-grid" }, this.showWeekNumbers && this.renderWeekNumbers(weeks, index$1), index.h("div", { class: "days-container" }, index.h("div", { class: "days-header" }, this.getDayNames().map(day => (index.h("div", { class: "day-header" }, day)))), this.renderDaysGrid(days)))), index$1 < this.numberOfCalendars - 1 && (index.h("div", { class: "calendar-separator" }))));
996
+ }
997
+ /**
998
+ * Renders the shortcuts
999
+ * @returns {JSX.Element} Shortcuts
1000
+ * @description Renders the shortcuts of the calendar
1001
+ */
1002
+ renderShortcuts() {
1003
+ if (!this.parsedShortcuts().length) {
1004
+ return null;
1005
+ }
1006
+ return (index.h("div", { class: `shortcuts-container shortcuts-placement-${this.shortcutsPlacement}` }, this.parsedShortcuts().map(shortcut => (index.h("nv-button", { emphasis: "lower", size: "xs", "aria-label": shortcut.label, onClick: this.getShortcutHandler(shortcut) }, shortcut.label)))));
1007
+ }
1008
+ /**
1009
+ * Renders the actions
1010
+ * @returns {JSX.Element} Actions
1011
+ * @description Renders the actions of the calendar
1012
+ * @slot actions - Child content of the component.
1013
+ */
1014
+ renderActions() {
1015
+ return (index.h("div", { class: "datepicker-actions" }, index.h("slot", { name: "actions" }, index.h("nv-button", { emphasis: "low", size: "xs", onClick: this.resetSelection }, "Cancel"), index.h("nv-button", { size: "xs", onClick: this.confirmSelection }, "OK"))));
1016
+ }
1017
+ /**
1018
+ * Renders the datepicker
1019
+ * @returns {JSX.Element} Datepicker
1020
+ * @description Renders the datepicker of the calendar
1021
+ * @slot default - Child content of the component.
1022
+ */
1023
+ render() {
1024
+ return (index.h(index.Host, { key: '49bdf5cc44f9e8f13b0fd61936d3b015e6105d18' }, index.h("div", { key: 'e1a0fcc20c7c12930df31c36751824a64fae053f', class: "datepicker-root" }, index.h("div", { key: '48cd6f6d92c41c748fdd05a6d932cbb634e3dfd6', class: `datepicker-container ${this.numberOfCalendars === 1 ? 'datepicker-container-single' : ''}` }, index.h("div", { key: 'f5d5ca631e448067cbfb04f0bcc74695b5c6fb5e', class: `datepicker-wrapper ${this.numberOfCalendars === 1 ? 'single' : ''}` }, this.shortcutsPlacement === 'left' && this.renderShortcuts(), Array.from({ length: this.numberOfCalendars }, (_, index) => this.renderCalendar(index, index)), this.shortcutsPlacement === 'right' && this.renderShortcuts()), (this.hasShortcuts || this.hasActions) && (index.h("div", { key: 'cb1ebc42e3616b9c35d147c227a53924fd2c73c8', class: "datepicker-controls" }, this.hasShortcuts && this.renderShortcuts(), this.hasActions && this.renderActions())))), index.h("slot", { key: 'e9bec2dd219502e8855c6195ebe69bff8fff0da5' })));
1025
+ }
1026
+ get el() { return index.getElement(this); }
1027
+ static get watchers() { return {
1028
+ "numberOfCalendars": ["validateNumberOfCalendars"],
1029
+ "rangeValue": ["onRangeValueChange"],
1030
+ "disabledDates": ["handleDisabledDatesChange"],
1031
+ "singleValue": ["onSingleValueChange"]
1032
+ }; }
1033
+ };
1034
+ NvCalendar.style = NvCalendarStyle0;
1035
+
1036
+ exports.nv_calendar = NvCalendar;