@nova-design-system/nova-webcomponents 3.3.0 → 3.4.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 (222) hide show
  1. package/dist/cjs/index-c56424e5.js +8 -8
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/native.cjs.js +1 -1
  4. package/dist/cjs/nv-calendar.cjs.entry.js +20 -4
  5. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  6. package/dist/cjs/nv-datagrid.cjs.entry.js +44 -11
  7. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  8. package/dist/cjs/nv-fielddaterange.cjs.entry.js +28 -5
  9. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  10. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  11. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  12. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  13. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  14. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  15. package/dist/cjs/nv-fieldslider.cjs.entry.js +7 -7
  16. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  18. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  19. package/dist/cjs/nv-fieldtime.cjs.entry.js +9 -9
  20. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  21. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  22. package/dist/cjs/nv-menu.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-popover.cjs.entry.js +2 -2
  25. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  28. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  29. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  30. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  31. package/dist/collection/components/nv-calendar/nv-calendar.utils.js +20 -4
  32. package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -1
  33. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +88 -2
  34. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  35. package/dist/collection/components/nv-datagrid/nv-datagrid.js +89 -10
  36. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  37. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +0 -1
  38. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js.map +1 -1
  39. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +31 -4
  40. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  41. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +8 -0
  42. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
  43. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +4 -3
  44. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  45. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  46. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  47. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  48. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  49. package/dist/collection/components/nv-fieldslider/partials/field-input.js +1 -1
  50. package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
  51. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +9 -1
  52. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  53. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  54. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  55. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  56. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  57. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  58. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  59. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  60. package/dist/collection/components/nv-popover/nv-popover.js +3 -3
  61. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  62. package/dist/collection/components/nv-row/nv-row.js +1 -1
  63. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  64. package/dist/collection/components/nv-table/nv-table.js +2 -2
  65. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  66. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  67. package/dist/collection/templates/navigation.docs.js +1 -1
  68. package/dist/collection/templates/navigation.docs.js.map +1 -1
  69. package/dist/components/nv-alert.js +1 -1
  70. package/dist/components/nv-avatar.js +1 -1
  71. package/dist/components/nv-badge.js +1 -1
  72. package/dist/components/nv-breadcrumb.js +2 -2
  73. package/dist/components/nv-button.js +1 -1
  74. package/dist/components/nv-calendar.js +1 -1
  75. package/dist/components/nv-datagrid.js +53 -18
  76. package/dist/components/nv-datagrid.js.map +1 -1
  77. package/dist/components/nv-dialog.js +4 -4
  78. package/dist/components/nv-dialogfooter.js +1 -1
  79. package/dist/components/nv-fielddate.js +6 -6
  80. package/dist/components/nv-fielddaterange.js +36 -12
  81. package/dist/components/nv-fielddaterange.js.map +1 -1
  82. package/dist/components/nv-fielddropdown.js +5 -5
  83. package/dist/components/nv-fielddropdownitem.js +1 -1
  84. package/dist/components/nv-fieldmultiselect.js +5 -5
  85. package/dist/components/nv-fieldnumber.js +1 -180
  86. package/dist/components/nv-fieldnumber.js.map +1 -1
  87. package/dist/components/nv-fieldpassword.js +6 -6
  88. package/dist/components/nv-fieldradio.js +3 -3
  89. package/dist/components/nv-fieldselect.js +8 -8
  90. package/dist/components/nv-fieldslider.js +27 -9
  91. package/dist/components/nv-fieldslider.js.map +1 -1
  92. package/dist/components/nv-fieldtext.js +1 -1
  93. package/dist/components/nv-fieldtextarea.js +3 -3
  94. package/dist/components/nv-fieldtime.js +13 -13
  95. package/dist/components/nv-icon.js +1 -1
  96. package/dist/components/nv-iconbutton.js +1 -1
  97. package/dist/components/nv-loader.js +1 -1
  98. package/dist/components/nv-menu.js +4 -4
  99. package/dist/components/nv-menuitem.js +1 -1
  100. package/dist/components/nv-popover.js +1 -1
  101. package/dist/components/nv-row.js +1 -1
  102. package/dist/components/nv-stack.js +1 -1
  103. package/dist/components/nv-table.js +2 -2
  104. package/dist/components/nv-toggle.js +2 -2
  105. package/dist/components/nv-tooltip.js +1 -1
  106. package/dist/components/{p-eabbc885.js → p-131e5140.js} +3 -3
  107. package/dist/components/{p-eabbc885.js.map → p-131e5140.js.map} +1 -1
  108. package/dist/components/{p-95a7581c.js → p-3f567fde.js} +4 -4
  109. package/dist/components/{p-95a7581c.js.map → p-3f567fde.js.map} +1 -1
  110. package/dist/components/{p-7935c1cb.js → p-3f58525b.js} +5 -5
  111. package/dist/components/{p-7935c1cb.js.map → p-3f58525b.js.map} +1 -1
  112. package/dist/components/{p-e28c4707.js → p-953d8b4d.js} +2 -2
  113. package/dist/components/{p-e28c4707.js.map → p-953d8b4d.js.map} +1 -1
  114. package/dist/components/{p-b6d858b2.js → p-9f1e8ef3.js} +2 -2
  115. package/dist/components/{p-b6d858b2.js.map → p-9f1e8ef3.js.map} +1 -1
  116. package/dist/components/{p-5e90b9b8.js → p-a0d7e0cd.js} +21 -5
  117. package/dist/components/p-a0d7e0cd.js.map +1 -0
  118. package/dist/components/{p-8d92f0e1.js → p-a1438b39.js} +3 -3
  119. package/dist/components/{p-8d92f0e1.js.map → p-a1438b39.js.map} +1 -1
  120. package/dist/components/{p-c9006520.js → p-a189d074.js} +4 -4
  121. package/dist/components/{p-c9006520.js.map → p-a189d074.js.map} +1 -1
  122. package/dist/components/p-a29a9396.js +184 -0
  123. package/dist/components/p-a29a9396.js.map +1 -0
  124. package/dist/components/{p-9fa0de38.js → p-b207be02.js} +2 -2
  125. package/dist/components/{p-9fa0de38.js.map → p-b207be02.js.map} +1 -1
  126. package/dist/components/{p-5ee4015d.js → p-dcaf9010.js} +2 -2
  127. package/dist/components/{p-5ee4015d.js.map → p-dcaf9010.js.map} +1 -1
  128. package/dist/components/{p-bb6d1e4e.js → p-dec6fc68.js} +2 -2
  129. package/dist/components/{p-bb6d1e4e.js.map → p-dec6fc68.js.map} +1 -1
  130. package/dist/components/{p-2ae214d2.js → p-df465ef2.js} +2 -2
  131. package/dist/components/{p-2ae214d2.js.map → p-df465ef2.js.map} +1 -1
  132. package/dist/components/{p-3e32b5a1.js → p-f7c7a406.js} +3 -3
  133. package/dist/components/{p-3e32b5a1.js.map → p-f7c7a406.js.map} +1 -1
  134. package/dist/esm/index-a1936cd0.js +8 -8
  135. package/dist/esm/loader.js +1 -1
  136. package/dist/esm/native.js +1 -1
  137. package/dist/esm/nv-calendar.entry.js +20 -4
  138. package/dist/esm/nv-calendar.entry.js.map +1 -1
  139. package/dist/esm/nv-datagrid.entry.js +44 -11
  140. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  141. package/dist/esm/nv-fielddaterange.entry.js +28 -5
  142. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  143. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  144. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  145. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  146. package/dist/esm/nv-fieldradio.entry.js +3 -3
  147. package/dist/esm/nv-fieldselect.entry.js +5 -5
  148. package/dist/esm/nv-fieldslider.entry.js +7 -7
  149. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  150. package/dist/esm/nv-fieldtext.entry.js +3 -3
  151. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  152. package/dist/esm/nv-fieldtime.entry.js +9 -9
  153. package/dist/esm/nv-icon.entry.js +1 -1
  154. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  155. package/dist/esm/nv-menu.entry.js +1 -1
  156. package/dist/esm/nv-menuitem.entry.js +1 -1
  157. package/dist/esm/nv-popover.entry.js +2 -2
  158. package/dist/esm/nv-popover.entry.js.map +1 -1
  159. package/dist/esm/nv-row.entry.js +1 -1
  160. package/dist/esm/nv-stack.entry.js +1 -1
  161. package/dist/esm/nv-table.entry.js +2 -2
  162. package/dist/esm/nv-toggle.entry.js +2 -2
  163. package/dist/esm/nv-tooltip.entry.js +1 -1
  164. package/dist/native/native.esm.js +1 -1
  165. package/dist/native/native.esm.js.map +1 -1
  166. package/dist/native/{p-45459dbb.entry.js → p-01164e86.entry.js} +2 -2
  167. package/dist/native/{p-dc7dd7f3.entry.js → p-0410facd.entry.js} +2 -2
  168. package/dist/native/p-0410facd.entry.js.map +1 -0
  169. package/dist/native/{p-58bb90ad.entry.js → p-0ec2d430.entry.js} +2 -2
  170. package/dist/native/{p-58bb90ad.entry.js.map → p-0ec2d430.entry.js.map} +1 -1
  171. package/dist/native/{p-ed6019fe.entry.js → p-14895e84.entry.js} +2 -2
  172. package/dist/native/p-14895e84.entry.js.map +1 -0
  173. package/dist/native/{p-fdea17ce.entry.js → p-24659a85.entry.js} +2 -2
  174. package/dist/native/{p-838f7842.entry.js → p-2b1e7675.entry.js} +2 -2
  175. package/dist/native/{p-d040bd61.entry.js → p-2bc7d66a.entry.js} +2 -2
  176. package/dist/native/{p-26cf4938.entry.js → p-2c3fb8cc.entry.js} +2 -2
  177. package/dist/native/p-2c3fb8cc.entry.js.map +1 -0
  178. package/dist/native/{p-83288db0.entry.js → p-55df8bf9.entry.js} +2 -2
  179. package/dist/native/{p-5b6c59e0.entry.js → p-7ba03c5d.entry.js} +2 -2
  180. package/dist/native/p-82c4bf56.entry.js +2 -0
  181. package/dist/native/p-82c4bf56.entry.js.map +1 -0
  182. package/dist/native/{p-8fb4e5c0.entry.js → p-9850c1d7.entry.js} +2 -2
  183. package/dist/native/{p-b8f2c1e7.entry.js → p-a0505695.entry.js} +2 -2
  184. package/dist/native/p-a0505695.entry.js.map +1 -0
  185. package/dist/native/{p-f94d7054.entry.js → p-a30206c1.entry.js} +2 -2
  186. package/dist/native/{p-3817efb2.entry.js → p-c7b8b7ba.entry.js} +2 -2
  187. package/dist/native/p-c92d55f9.entry.js +2 -0
  188. package/dist/native/{p-64a76565.entry.js → p-c9d3de9c.entry.js} +2 -2
  189. package/dist/native/{p-e2c1992e.entry.js → p-cbca9326.entry.js} +2 -2
  190. package/dist/native/{p-60c64f2b.entry.js → p-ec87200a.entry.js} +2 -2
  191. package/dist/native/{p-d53e8795.entry.js → p-f377b285.entry.js} +2 -2
  192. package/dist/native/{p-050d6c6c.entry.js → p-ff0f3794.entry.js} +2 -2
  193. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +106 -2
  194. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +2 -0
  195. package/dist/types/components/nv-fieldnumber/nv-fieldnumber.d.ts +1 -0
  196. package/dist/types/components.d.ts +138 -0
  197. package/hydrate/index.js +145 -71
  198. package/hydrate/index.mjs +145 -71
  199. package/package.json +10 -2
  200. package/dist/components/p-5e90b9b8.js.map +0 -1
  201. package/dist/native/p-26cf4938.entry.js.map +0 -1
  202. package/dist/native/p-4f9cdf0b.entry.js +0 -2
  203. package/dist/native/p-abc251aa.entry.js +0 -2
  204. package/dist/native/p-abc251aa.entry.js.map +0 -1
  205. package/dist/native/p-b8f2c1e7.entry.js.map +0 -1
  206. package/dist/native/p-dc7dd7f3.entry.js.map +0 -1
  207. package/dist/native/p-ed6019fe.entry.js.map +0 -1
  208. /package/dist/native/{p-45459dbb.entry.js.map → p-01164e86.entry.js.map} +0 -0
  209. /package/dist/native/{p-fdea17ce.entry.js.map → p-24659a85.entry.js.map} +0 -0
  210. /package/dist/native/{p-838f7842.entry.js.map → p-2b1e7675.entry.js.map} +0 -0
  211. /package/dist/native/{p-d040bd61.entry.js.map → p-2bc7d66a.entry.js.map} +0 -0
  212. /package/dist/native/{p-83288db0.entry.js.map → p-55df8bf9.entry.js.map} +0 -0
  213. /package/dist/native/{p-5b6c59e0.entry.js.map → p-7ba03c5d.entry.js.map} +0 -0
  214. /package/dist/native/{p-8fb4e5c0.entry.js.map → p-9850c1d7.entry.js.map} +0 -0
  215. /package/dist/native/{p-f94d7054.entry.js.map → p-a30206c1.entry.js.map} +0 -0
  216. /package/dist/native/{p-3817efb2.entry.js.map → p-c7b8b7ba.entry.js.map} +0 -0
  217. /package/dist/native/{p-4f9cdf0b.entry.js.map → p-c92d55f9.entry.js.map} +0 -0
  218. /package/dist/native/{p-64a76565.entry.js.map → p-c9d3de9c.entry.js.map} +0 -0
  219. /package/dist/native/{p-e2c1992e.entry.js.map → p-cbca9326.entry.js.map} +0 -0
  220. /package/dist/native/{p-60c64f2b.entry.js.map → p-ec87200a.entry.js.map} +0 -0
  221. /package/dist/native/{p-d53e8795.entry.js.map → p-f377b285.entry.js.map} +0 -0
  222. /package/dist/native/{p-050d6c6c.entry.js.map → p-ff0f3794.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{r as t,h as a,H as s}from"./p-d0a33e64.js";import{c as n}from"./p-8a1a6e56.js";const c="nv-stack{display:flex;align-items:center;justify-content:flex-start;flex-direction:row}nv-stack nv-col{display:flex}nv-stack:not(nv-row){flex-wrap:nowrap}nv-stack>.nv-stack-item-flex{flex-shrink:1;flex-grow:1}nv-stack>.nv-stack-item-lead{margin-right:auto}nv-stack>.nv-stack-item-lead+*{margin-left:0}nv-stack>.nv-stack-item-center{margin-right:auto;margin-left:auto}nv-stack>.nv-stack-item-tail{margin-left:auto}nv-stack>.nv-stack-nowrap{white-space:nowrap}nv-stack.nv-stack-vertical{align-items:stretch;flex-direction:column}nv-stack.nv-stack-vertical>.nv-stack-item-lead{margin-right:0;margin-bottom:auto}nv-stack.nv-stack-vertical>.nv-stack-item-lead+*{margin-top:0}nv-stack.nv-stack-vertical>.nv-stack-item-tail{margin-left:0;margin-top:auto}nv-stack.nv-stack-vertical>.nv-stack-item-center{margin:auto 0}nv-stack.nv-stack-flex>*{flex-shrink:1;flex-grow:1}nv-stack.nv-stack-fill>*{height:100%}nv-stack.nv-stack-fill.nv-stack-vertical>*{height:auto;width:100%}";const i=c;const e=class{constructor(a){t(this,a);this.gutter=2}render(){return a(s,{key:"bc18faae4116df9b3a2f944b97c5e5cf096654ae",class:n(this.fill&&"nv-stack-fill",this.flex&&"nv-stack-flex",this.full&&"w-full",this.gutter&&!this.vertical&&`gap-x-${this.gutter}`,this.gutter&&this.vertical&&`gap-y-${this.gutter}`,this.vertical&&"nv-stack-vertical")},a("slot",{key:"fe3a07a01bd3a5898bcd1533c7966241cff21b44"}))}};e.style=i;export{e as nv_stack};
2
- //# sourceMappingURL=p-83288db0.entry.js.map
1
+ import{r as t,h as a,H as s}from"./p-d0a33e64.js";import{c as n}from"./p-8a1a6e56.js";const c="nv-stack{display:flex;align-items:center;justify-content:flex-start;flex-direction:row}nv-stack nv-col{display:flex}nv-stack:not(nv-row){flex-wrap:nowrap}nv-stack>.nv-stack-item-flex{flex-shrink:1;flex-grow:1}nv-stack>.nv-stack-item-lead{margin-right:auto}nv-stack>.nv-stack-item-lead+*{margin-left:0}nv-stack>.nv-stack-item-center{margin-right:auto;margin-left:auto}nv-stack>.nv-stack-item-tail{margin-left:auto}nv-stack>.nv-stack-nowrap{white-space:nowrap}nv-stack.nv-stack-vertical{align-items:stretch;flex-direction:column}nv-stack.nv-stack-vertical>.nv-stack-item-lead{margin-right:0;margin-bottom:auto}nv-stack.nv-stack-vertical>.nv-stack-item-lead+*{margin-top:0}nv-stack.nv-stack-vertical>.nv-stack-item-tail{margin-left:0;margin-top:auto}nv-stack.nv-stack-vertical>.nv-stack-item-center{margin:auto 0}nv-stack.nv-stack-flex>*{flex-shrink:1;flex-grow:1}nv-stack.nv-stack-fill>*{height:100%}nv-stack.nv-stack-fill.nv-stack-vertical>*{height:auto;width:100%}";const e=c;const i=class{constructor(a){t(this,a);this.gutter=2}render(){return a(s,{key:"61662dda82c5191e4d90098e10d01bad6524e8c7",class:n(this.fill&&"nv-stack-fill",this.flex&&"nv-stack-flex",this.full&&"w-full",this.gutter&&!this.vertical&&`gap-x-${this.gutter}`,this.gutter&&this.vertical&&`gap-y-${this.gutter}`,this.vertical&&"nv-stack-vertical")},a("slot",{key:"7ee777cdebbfe9d4f6438a2a79407d9f670f2885"}))}};i.style=e;export{i as nv_stack};
2
+ //# sourceMappingURL=p-55df8bf9.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as e,c as n,h as t,H as o,g as i}from"./p-d0a33e64.js";const r="nv-menuitem{display:flex;align-items:center;max-width:300px;width:100vw;font-size:var(--menu-contextual-item-font-size);font-weight:var(--menu-contextual-item-font-weight);color:var(--components-menu-contextual-item-content);border-radius:var(--menu-contextual-item-radius);gap:var(--menu-contextual-item-gap-x);padding:var(--menu-contextual-item-padding-y) var(--menu-contextual-item-padding-x);transition:background-color 150ms ease-out;cursor:pointer}nv-menuitem:hover,nv-menuitem:focus,nv-menuitem:focus-within{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menuitem *{pointer-events:none}nv-menuitem kbd{color:var(--components-menu-contextual-item-shortcut)}nv-menuitem [data-scope=text]{margin-right:auto}nv-menuitem[disabled]:not([disabled=false]){cursor:unset;background-color:unset;color:var(--components-menu-contextual-item-content-disabled)}nv-menu{display:inline-block;position:relative}nv-menu:has([fluid]:not([fluid=false])){display:block}nv-menu nv-popover{display:unset}nv-menu nv-popover [data-scope=popover]{background-color:transparent !important;padding:0 !important}nv-menu [slot=content]{padding:var(--menu-contextual-padding-y) var(--menu-contextual-padding-x);border-radius:var(--menu-contextual-radius);gap:var(--menu-contextual-gap-y);background-color:var(--components-menu-contextual-background);border-color:var(--components-menu-contextual-border);display:flex;flex-direction:column}nv-menu nv-menu[open]:not([open=false])>nv-menuitem{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menu hr{display:block;margin:var(--menu-contextual-divider-padding-top) var(--menu-contextual-divider-padding-x) var(--menu-contextual-divider-padding-bottom) var(--menu-contextual-divider-padding-x)}";const a=r;const s=class{constructor(o){e(this,o);this.menuitemSelected=n(this,"menuitemSelected",7);this.isHandlingKeyDown=false;this.open=false;this.nested=false;this.disableCloseOnSelect=false;this.placement="bottom-end";this.renderMenuItems=()=>this.items.map((e=>{var n;if(e.hasSubmenu&&((n=e.submenuItems)===null||n===void 0?void 0:n.length)>0){return t("nv-menu",{nested:true,placement:"right-start",items:e.submenuItems},t("nv-menuitem",{slot:"trigger",hasSubmenu:true,disabled:e.disabled,icon:e.icon,shortcut:e.shortcut,id:e.value,name:e.label,label:e.label}))}return t("nv-menuitem",{disabled:e.disabled,icon:e.icon,shortcut:e.shortcut,id:e.value,name:e.label,label:e.label})}))}async show(){this.open=true}async close(){this.open=false}handleMenuItemSelect(e){if(this.disableCloseOnSelect)return;if(e.detail.hasSubmenu)return;this.open=false}handleKeydown(e){if(!this.open){if((e.key==="Enter"||e.key==="ArrowDown"||e.key===" ")&&document.activeElement===this.triggerElement){e.preventDefault();this.show();const n=this.popoverElement.querySelector("nv-menuitem");if(n){requestAnimationFrame((()=>n.focus()))}}return}if(this.isHandlingKeyDown)return;this.isHandlingKeyDown=true;if(e.key==="ArrowDown"||e.key==="ArrowUp"||e.key==="ArrowLeft"||e.key==="ArrowRight"||e.key==="Escape"){e.preventDefault()}if(e.key==="Escape"&&!this.nested){this.close();this.triggerElement.focus();this.isHandlingKeyDown=false;return}const n=this.el.querySelector('[slot="content"]');const t=Array.from(n.childNodes).filter((e=>{var n;return(n=e.matches)===null||n===void 0?void 0:n.call(e,"nv-menuitem, nv-menu")}));let o=t.indexOf(document.activeElement);if(o===-1)o=t.indexOf(document.activeElement.parentElement);if(o===-1&&t.find((e=>e.matches("nv-menu[open]")))){this.isHandlingKeyDown=false;return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){t.forEach((e=>{if(e.matches("nv-menu"))e.close()}))}if(e.key==="ArrowDown"){let e=(o+1)%t.length;while(t[e].matches("nv-menuitem[disabled]")){e=(e+1)%t.length}const n=t[e];if(n.matches("nv-menuitem")){n.focus()}else if(n.matches("nv-menu")){n.querySelector("nv-menuitem").focus()}}if(e.key==="ArrowUp"){let e=(o-1+t.length)%t.length;while(t[e].matches("nv-menuitem[disabled]")){e=(e-1+t.length)%t.length}const n=t[e];if(n.matches("nv-menuitem")){n.focus()}else if(n.matches("nv-menu")){n.querySelector("nv-menuitem").focus()}}if(e.key==="ArrowRight"){const e=t[o];if(!e.matches("nv-menu")){this.isHandlingKeyDown=false;return}e.show()}if(e.key==="ArrowLeft"&&this.nested){if(t.find((e=>e.matches("nv-menu[open]")))){this.isHandlingKeyDown=false;return}this.close();this.triggerElement.focus()}this.isHandlingKeyDown=false}handleOpenChanged(e){e.stopPropagation();if(e.target===this.el.querySelector("nv-popover")){this.open=e.detail}const n=this.triggerElement===document.activeElement;const t=this.triggerElement.matches(":focus-visible");if(n&&t)this.focusFirstItem()}focusFirstItem(){const e=this.popoverElement.querySelector("nv-menuitem");if(e){requestAnimationFrame((()=>e.focus()))}}componentWillLoad(){this.triggerElement=Array.from(this.el.children).find((e=>e.getAttribute("slot")==="trigger"))}render(){return t(o,{key:"55cb23963aea78dabf518a9a54308391ed5c5dcb"},t("slot",{key:"b7bd9090491a34f3205afb8db8d7ca87864d0c04",name:"trigger"}),t("nv-popover",{key:"8b7e35e0b394827a5bd66858a4f3e81e90dcb597",ref:e=>this.popoverElement=e,triggerMode:"click",triggerElement:this.triggerElement,placement:this.placement,nested:this.nested,open:this.open},this.items?t("ul",{slot:"content"},this.renderMenuItems()):t("slot",{name:"content"})))}get el(){return i(this)}};s.style=a;export{s as nv_menu};
2
- //# sourceMappingURL=p-5b6c59e0.entry.js.map
1
+ import{r as e,c as n,h as t,H as o,g as i}from"./p-d0a33e64.js";const r="nv-menuitem{display:flex;align-items:center;max-width:300px;width:100vw;font-size:var(--menu-contextual-item-font-size);font-weight:var(--menu-contextual-item-font-weight);color:var(--components-menu-contextual-item-content);border-radius:var(--menu-contextual-item-radius);gap:var(--menu-contextual-item-gap-x);padding:var(--menu-contextual-item-padding-y) var(--menu-contextual-item-padding-x);transition:background-color 150ms ease-out;cursor:pointer}nv-menuitem:hover,nv-menuitem:focus,nv-menuitem:focus-within{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menuitem *{pointer-events:none}nv-menuitem kbd{color:var(--components-menu-contextual-item-shortcut)}nv-menuitem [data-scope=text]{margin-right:auto}nv-menuitem[disabled]:not([disabled=false]){cursor:unset;background-color:unset;color:var(--components-menu-contextual-item-content-disabled)}nv-menu{display:inline-block;position:relative}nv-menu:has([fluid]:not([fluid=false])){display:block}nv-menu nv-popover{display:unset}nv-menu nv-popover [data-scope=popover]{background-color:transparent !important;padding:0 !important}nv-menu [slot=content]{padding:var(--menu-contextual-padding-y) var(--menu-contextual-padding-x);border-radius:var(--menu-contextual-radius);gap:var(--menu-contextual-gap-y);background-color:var(--components-menu-contextual-background);border-color:var(--components-menu-contextual-border);display:flex;flex-direction:column}nv-menu nv-menu[open]:not([open=false])>nv-menuitem{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menu hr{display:block;margin:var(--menu-contextual-divider-padding-top) var(--menu-contextual-divider-padding-x) var(--menu-contextual-divider-padding-bottom) var(--menu-contextual-divider-padding-x)}";const a=r;const s=class{constructor(o){e(this,o);this.menuitemSelected=n(this,"menuitemSelected",7);this.isHandlingKeyDown=false;this.open=false;this.nested=false;this.disableCloseOnSelect=false;this.placement="bottom-end";this.renderMenuItems=()=>this.items.map((e=>{var n;if(e.hasSubmenu&&((n=e.submenuItems)===null||n===void 0?void 0:n.length)>0){return t("nv-menu",{nested:true,placement:"right-start",items:e.submenuItems},t("nv-menuitem",{slot:"trigger",hasSubmenu:true,disabled:e.disabled,icon:e.icon,shortcut:e.shortcut,id:e.value,name:e.label,label:e.label}))}return t("nv-menuitem",{disabled:e.disabled,icon:e.icon,shortcut:e.shortcut,id:e.value,name:e.label,label:e.label})}))}async show(){this.open=true}async close(){this.open=false}handleMenuItemSelect(e){if(this.disableCloseOnSelect)return;if(e.detail.hasSubmenu)return;this.open=false}handleKeydown(e){if(!this.open){if((e.key==="Enter"||e.key==="ArrowDown"||e.key===" ")&&document.activeElement===this.triggerElement){e.preventDefault();this.show();const n=this.popoverElement.querySelector("nv-menuitem");if(n){requestAnimationFrame((()=>n.focus()))}}return}if(this.isHandlingKeyDown)return;this.isHandlingKeyDown=true;if(e.key==="ArrowDown"||e.key==="ArrowUp"||e.key==="ArrowLeft"||e.key==="ArrowRight"||e.key==="Escape"){e.preventDefault()}if(e.key==="Escape"&&!this.nested){this.close();this.triggerElement.focus();this.isHandlingKeyDown=false;return}const n=this.el.querySelector('[slot="content"]');const t=Array.from(n.childNodes).filter((e=>{var n;return(n=e.matches)===null||n===void 0?void 0:n.call(e,"nv-menuitem, nv-menu")}));let o=t.indexOf(document.activeElement);if(o===-1)o=t.indexOf(document.activeElement.parentElement);if(o===-1&&t.find((e=>e.matches("nv-menu[open]")))){this.isHandlingKeyDown=false;return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){t.forEach((e=>{if(e.matches("nv-menu"))e.close()}))}if(e.key==="ArrowDown"){let e=(o+1)%t.length;while(t[e].matches("nv-menuitem[disabled]")){e=(e+1)%t.length}const n=t[e];if(n.matches("nv-menuitem")){n.focus()}else if(n.matches("nv-menu")){n.querySelector("nv-menuitem").focus()}}if(e.key==="ArrowUp"){let e=(o-1+t.length)%t.length;while(t[e].matches("nv-menuitem[disabled]")){e=(e-1+t.length)%t.length}const n=t[e];if(n.matches("nv-menuitem")){n.focus()}else if(n.matches("nv-menu")){n.querySelector("nv-menuitem").focus()}}if(e.key==="ArrowRight"){const e=t[o];if(!e.matches("nv-menu")){this.isHandlingKeyDown=false;return}e.show()}if(e.key==="ArrowLeft"&&this.nested){if(t.find((e=>e.matches("nv-menu[open]")))){this.isHandlingKeyDown=false;return}this.close();this.triggerElement.focus()}this.isHandlingKeyDown=false}handleOpenChanged(e){e.stopPropagation();if(e.target===this.el.querySelector("nv-popover")){this.open=e.detail}const n=this.triggerElement===document.activeElement;const t=this.triggerElement.matches(":focus-visible");if(n&&t)this.focusFirstItem()}focusFirstItem(){const e=this.popoverElement.querySelector("nv-menuitem");if(e){requestAnimationFrame((()=>e.focus()))}}componentWillLoad(){this.triggerElement=Array.from(this.el.children).find((e=>e.getAttribute("slot")==="trigger"))}render(){return t(o,{key:"e95adf4b7d951357f550a8084ce957c97134d58f"},t("slot",{key:"e2db24c208c716c24c3357c95983c87ee0f11d88",name:"trigger"}),t("nv-popover",{key:"735f6d29c7333293aea263eea751b021fbfd0943",ref:e=>this.popoverElement=e,triggerMode:"click",triggerElement:this.triggerElement,placement:this.placement,nested:this.nested,open:this.open},this.items?t("ul",{slot:"content"},this.renderMenuItems()):t("slot",{name:"content"})))}get el(){return i(this)}};s.style=a;export{s as nv_menu};
2
+ //# sourceMappingURL=p-7ba03c5d.entry.js.map
@@ -0,0 +1,2 @@
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,d as i,W as o}from"./p-e2d0a77d.js";import{c}from"./p-0462f723.js";var d={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",d="month",h="quarter",l="year",u="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,v=/\[([^\]]+)]|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,d),a=n-s<0,i=e.clone().add(r+(a?-1:1),d);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:d,y:l,w:c,d:o,D:u,h:i,m:a,s,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},b="en",w={};w[b]=g;var k="$isDayjsObject",D=function(t){return t instanceof Y||!(!t||!t[k])},M=function t(e,n,r){var s;if(!e)return b;if("string"==typeof e){var a=e.toLowerCase();w[a]&&(s=a),n&&(w[a]=n,s=a);var i=e.split("-");if(!s&&i.length>1)return t(i[0])}else{var o=e.name;w[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[k]=!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(p);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,h=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)},p=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)},v=this.$W,g=this.$M,m=this.$D,y="set"+(this.$u?"UTC":"");switch(h){case l:return r?f(1,0):f(31,11);case d:return r?f(1,g):f(0,g+1);case c:var b=this.$locale().weekStart||0,w=(v<b?v+7:v)-b;return f(r?m-w:m+(6-w),g);case o:case u:return p(y+"Hours",0);case i:return p(y+"Minutes",1);case a:return p(y+"Seconds",2);case s:return p(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),h="set"+(this.$u?"UTC":""),f=(n={},n[o]=h+"Date",n[u]=h+"Date",n[d]=h+"Month",n[l]=h+"FullYear",n[i]=h+"Hours",n[a]=h+"Minutes",n[s]=h+"Seconds",n[r]=h+"Milliseconds",n)[c],p=c===o?this.$D+(e-this.$W):e;if(c===d||c===l){var v=this.clone().set(u,1);v.$d[f](p),v.init(),this.$d=v.set(u,Math.min(this.$D,v.daysInMonth())).$d}else f&&this.$d[f](p);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,h){var u,f=this;r=Number(r);var p=C.p(h),v=function(t){var e=x(f);return C.w(e.date(e.date()+Math.round(t*r)),f)};if(p===d)return this.set(d,this.$M+r);if(p===l)return this.set(l,this.$y+r);if(p===o)return v(1);if(p===c)return v(7);var g=(u={},u[a]=e,u[i]=n,u[s]=t,u)[p]||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,d=n.months,h=n.meridiem,l=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")},p=h||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(v,(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 l(n.monthsShort,o,d,3);case"MMMM":return l(d,o);case"D":return e.$D;case"DD":return C.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return l(n.weekdaysMin,e.$W,c,2);case"ddd":return l(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 p(a,i,!0);case"A":return p(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 p,v=this,g=C.p(u),m=x(r),y=(m.utcOffset()-this.utcOffset())*e,b=this-m,w=function(){return C.m(v,m)};switch(g){case l:p=w()/12;break;case d:p=w();break;case h:p=w()/3;break;case c:p=(b-y)/6048e5;break;case o:p=(b-y)/864e5;break;case i:p=b/n;break;case a:p=b/e;break;case s:p=b/t;break;default:p=b}return f?p:C.a(p)},m.daysInMonth=function(){return this.endOf(d).$D},m.$locale=function(){return w[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",d],["$y",l],["$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=w[b],x.Ls=w,x.p={},x}))})(d);const h=d.exports;var l={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}},d=[/[+-]\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)}],h=function(t){var e=i[t];return e&&(e.indexOf?e:e.s.concat(e.f))},l=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=l(t,!1)}],a:[a,function(t){this.afternoon=l(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=h("months"),n=(h("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=h("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:d,ZZ:d};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 d=a[c],h=u[d],l=h&&h[0],f=h&&h[1];a[c]=f?{regex:l,parser:f}:d.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,d=t.slice(r),h=i.exec(d)[0];c.call(e,h),t=t.replace(h,"")}}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],d=!0===a[3],h=c||d,l=a[2];d&&(l=a[2]),i=this.$locale(),!c&&l&&(i=n.Ls[l]),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,d=s.minutes,h=s.seconds,l=s.milliseconds,u=s.zone,p=s.week,v=new Date,g=o||(a||i?1:v.getDate()),m=a||v.getFullYear(),y=0;a&&!i||(y=i>0?i-1:v.getMonth());var b,w=c||0,k=d||0,D=h||0,M=l||0;return u?new Date(Date.UTC(m,y,g,w,k,D,M+60*u.offset*1e3)):n?new Date(Date.UTC(m,y,g,w,k,D,M)):(b=new Date(m,y,g,w,k,D,M),p&&(b=r(b).week(p).toDate()),b)}catch(t){return new Date("")}}(e,o,r,n),this.init(),l&&!0!==l&&(this.$L=this.locale(l).$L),h&&e!=this.format(o)&&(this.$d=new Date("")),i={}}else if(o instanceof Array)for(var u=o.length,p=1;p<=u;p+=1){a[1]=o[p-1];var v=n.apply(this,a);if(v.isValid()){this.$d=v.$d,this.$L=v.$L,this.init();break}p===u&&(this.$d=new Date(""))}else s.call(this,t)}}}))})(l);const u=l.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 d=i.utcOffset;i.utcOffset=function(r,s){var a=this.$utils().u;if(a(r))return this.$u?0:a(this.$offset)?d.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 h=i.format;i.format=function(t){var e=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.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 l=i.toDate;i.toDate=function(t){return"s"===t&&this.$offset?a(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():l.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 p=f.exports;var v={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)}}}))})(v);const g=v.exports;h.extend(u);h.extend(p);h.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 h(t).unix().toString()}if(e.dateFormat==="x"){return t.getTime().toString()}return n?h(t).utc().format(e.dateFormat):h(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 w(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){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?h.unix(e).utc().toDate():h.unix(e).toDate()}if(e==="x"){const e=Number(t);if(isNaN(e))return null;return n?h(e).utc().toDate():h(e).toDate()}if(e==="Ticks"){const e=Number(t);if(isNaN(e))return null;const r=(e-621355968e9)/1e4;return n?h(r).utc().toDate():h(r).toDate()}let r;if(n){r=h.utc(t,e,true)}else{r=h(t,e,true)}if(!r.isValid()){const n=typeof t==="string"&&(t.includes("_")||t.includes("-_")||t.includes("/_")||t.includes("._"));const r=typeof t==="string"&&t.length<e.length&&/^[\d\-/.]*$/.test(t)&&t.length>0;const s=n||r;if(!s){console.error(`Parsing error:`,{dateInput:t,dateFormat:e})}return null}return r.toDate()}const M=e=>{const{date:n,dayOfMonth:r,isCurrentMonth:s,isSelected:a,isInRange:i,isStart:o,isEnd:c,isToday:d,isDisabled:h,onClick:l}=e;const u=["day",a?"selected":"",o?"range-start":"",c?"range-end":"",i?"in-range":"",h?"disabled":"",!s?"outside-month":"",d?"is-today":""].filter(Boolean).join(" ");const f=()=>{if(!h&&l){l(n)}};return t("div",{class:u,onClick:f,"aria-disabled":h},r)};const x=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 C=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=k(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 Y=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 S=e=>{const{currentDate:n,months:r,numberOfCalendars:s,calendarIndex:a,monthOffset:i,onMonthChange:o,onMonthSelect:c,onYearChange:d}=e;const h=t=>()=>o(t);const l=t=>e=>c(e,t);const u=t=>e=>d(e,t);const f=(n.getUTCMonth()+i)%12;const p=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:h(-1)}),t("div",{class:"date-controls"},t("select",{class:"month-select mr-4",onChange:l(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:p,onChange:u(i)})),s===1&&t("div",{class:"nav-buttons"},t("nv-iconbutton",{emphasis:"lower",name:"chevron-left",onClick:h(-1)}),t("nv-iconbutton",{emphasis:"lower",name:"chevron-right",onClick:h(1)})),s>1&&a===s-1&&t("nv-iconbutton",{emphasis:"lower",name:"chevron-right",onClick:h(1),class:"nav-right"}))};const T=e=>{const{days:n,dayNames:r,selectionType:s,selectedDate:a,startDate:i,endDate:o,isUTCMode:c,onDayClick:d,isDateInRange:h,isToday:l}=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"},n.map((e=>{const n=e.date;if(!n)return null;const r=s==="single"&&y(n,a,{isUTCMode:c});const u=h(n);const f=y(n,i,{isUTCMode:c});const p=y(n,o,{isUTCMode:c});const v=l(n);return t(M,{date:n,dayOfMonth:e.dayOfMonth,isCurrentMonth:e.isCurrentMonth,isSelected:r,isInRange:u,isStart:f,isEnd:p,isToday:v,isDisabled:e.isDisabled,selectionType:s,onClick:d})}))))};const $='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.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)}.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 z=$;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.currentDate=null;this.selectedDate=null;this.startDate=null;this.endDate=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==="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.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.currentDate=t}}else{console.warn(`Invalid date range format: ${e[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.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.handleDateSelection=t=>{if(this.isDateDisabled(t)){return}if(this.selectionType==="single"){this.handleSingleSelection(t)}else{this.handleRangeSelection(t)}};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;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=>{if(!t)return true;if(this.min){const e=D(this.min,this.dateFormat);if(e&&t<e){return true}}if(this.max){const e=D(this.max,this.dateFormat);if(e&&t>e){return true}}return this.parsedDisabledDates.some((e=>y(t,e,{isUTCMode: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 w(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,e=1)=>{const n=this.currentDate.getUTCFullYear();const r=this.currentDate.getUTCMonth()+t;const s=new Date(Date.UTC(n,r,1));const a=new Date(Date.UTC(n,r+1,0));const i=[];const o=s.getUTCDay();const c=(o-this.firstDayOfWeek+7)%7;if(t===0&&c>0){const t=new Date(Date.UTC(n,r,0)).getUTCDate();for(let e=c;e>0;e--){const s=new Date(Date.UTC(n,r-1,t-e+1));i.push({dayOfMonth:s.getUTCDate(),date:s,isCurrentMonth:false,isDisabled:this.isDateDisabled(s)})}}for(let t=1;t<=a.getUTCDate();t++){const e=new Date(Date.UTC(n,r,t));i.push({dayOfMonth:t,date:e,isCurrentMonth:true,isDisabled:this.isDateDisabled(e)})}if(t===e-1){const t=7-(i.length%7||7);for(let e=1;e<=t;e++){const t=new Date(Date.UTC(n,r+1,e));i.push({dayOfMonth:e,date:t,isCurrentMonth:false,isDisabled:this.isDateDisabled(t)})}}return i};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=this.currentDate.getUTCMonth();const a=r-(s+e)%12;const i=new Date(this.currentDate);i.setUTCMonth(i.getUTCMonth()+a);this.currentDate=i};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.setUTCFullYear(r);t.setUTCMonth(t.getUTCMonth()+e);this.currentDate=t}};this.handleWeekSelection=(t,e)=>{if(this.selectionType!=="range")return;const n=this.getDaysInMonth(e,this.numberOfCalendars);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(S,{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(C,{weeks:e,localizedWeekText:this.getLocalizedWeekText(),selectionType:this.selectionType,onWeekSelect:this.handleWeekSelection,calendarIndex:n});this.renderCalendar=(e,n)=>{const r=this.getDaysInMonth(n,this.numberOfCalendars);const s=[];for(let t=0;t<r.length;t+=7){s.push(r.slice(t,t+7))}return t("div",{class:"calendar-wrapper"},t("div",{class:"calendar-container",key:`calendar-${e}`},this.renderHeader(n,e),t("div",{class:"calendar-grid"},this.showWeekNumbers&&this.renderWeekNumbers(s,e),t(T,{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}))),e<this.numberOfCalendars-1&&t("div",{class:"calendar-separator"}))};this.renderShortcuts=()=>{if(!this.hasShortcuts){return null}return t(Y,{shortcuts:this.shortcuts,placement:this.shortcutsPlacement,onShortcutClick:this.applyShortcut})};this.renderActions=()=>t("div",{class:"datepicker-actions"},t("slot",{name:"actions"},t(x,{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.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.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}}render(){return t(r,{key:"43d4f3ab9199e9c5f15e853f15283fa59e4a436d"},t("div",{key:"b9956225cb2c16d997aa44266af8f8c8222ea968",class:"datepicker-root"},t("div",{key:"05b63935bc5ebf500bb52d10688385f994b47fb4",class:`datepicker-container ${this.numberOfCalendars===1?"datepicker-container-single":""}`},t("div",{key:"d7af15b9ce051026cf841b3be361b32d8db41fc1",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:"1765334bf15564bc9886b210c54bddba64c7042e",class:"datepicker-controls"},this.shortcutsPlacement==="bottom"&&this.renderShortcuts(),this.hasActions&&this.renderActions()))),t("slot",{key:"0ac3446394b8c23b859e5f0065370b95b6fd05d2"}))}get el(){return s(this)}static get watchers(){return{numberOfCalendars:["validateNumberOfCalendars"],rangeValue:["onRangeValueChange"],disabledDates:["handleDisabledDatesChange"],singleValue:["onSingleValueChange"],value:["onValueChange"]}}};_.style=z;export{_ as nv_calendar};
2
+ //# sourceMappingURL=p-82c4bf56.entry.js.map
@@ -0,0 +1 @@
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","hasPlaceholderChars","looksLikePartialDate","isIncompleteInput","DayCell","props","dayOfMonth","isCurrentMonth","isSelected","isInRange","isStart","isEnd","isToday","isDisabled","onClick","dayClasses","filter","Boolean","handleClick","class","CalendarActions","onReset","onConfirm","useSlot","emphasis","size","WeekNumbers","localizedWeekText","selectionType","onWeekSelect","calendarIndex","handleWeekClick","dates","createWeekHandler","weekIndex","firstDayWithDate","_a","find","weekNumber","isClickable","key","role","undefined","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","max","CalendarGrid","days","dayNames","selectedDate","startDate","endDate","onDayClick","isDateInRange","isTodayDate","nvCalendarCss","NvCalendarStyle0","NvCalendar","constructor","hostRef","firstDayOfWeek","shortcutsPlacement","showActions","parsedDisabledDates","parseUnifiedValue","values","trim","singleValue","preventNavigation","el","getAttribute","warn","rangeValue","start","end","changeMonth","newDate","setUTCMonth","containers","querySelectorAll","container","classList","remove","animationClass","setTimeout","handleDateSelection","isDateDisabled","handleSingleSelection","handleRangeSelection","formattedDate","valueChanged","emit","singleDateChange","startFormatted","endFormatted","legacyRange","rangeDateChange","minDate","maxDate","some","disabledDate","checkDate","getDayNames","CUSTOM_DAY_NAMES","formatter","Intl","DateTimeFormat","weekday","getDaysInMonth","totalCalendars","firstDay","lastDay","dayOfWeekIndex","offsetDays","prevMonthLastDay","push","nextMonthDaysNeeded","initializeMonths","CUSTOM_MONTH_NAMES","from","getLocalizedWeekText","WEEK_ABBREVIATIONS","handleMonthChange","calendarOffset","select","target","selectedMonth","parseInt","monthDiff","handleYearChange","input","setUTCFullYear","handleWeekSelection","weekDays","allDays","weekEnd","selectedWeekDays","validDays","today","parseDisabledDates","disabledDates","applyShortcut","CustomEvent","bubbles","composed","dispatchEvent","forceCalendarUpdate","resetSelection","confirmSelection","dateStr","renderHeader","renderWeekNumbers","renderCalendar","showWeekNumbers","renderShortcuts","hasShortcuts","renderActions","validateNumberOfCalendars","newValue","onRangeValueChange","validateDateRange","handleDisabledDatesChange","onSingleValueChange","oldValue","onValueChange","componentWillLoad","swapped","hasActions","startDateStr","endDateStr","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 // Check if the date input contains placeholder characters (incomplete input from Inputmask)\n // This specifically targets partial dates being typed with placeholder characters\n const hasPlaceholderChars =\n typeof dateInput === 'string' &&\n (dateInput.includes('_') ||\n dateInput.includes('-_') ||\n dateInput.includes('/_') ||\n dateInput.includes('._'));\n\n // Check if it looks like a partial date being typed (starts with valid pattern)\n const looksLikePartialDate =\n typeof dateInput === 'string' &&\n dateInput.length < dateFormat.length &&\n /^[\\d\\-/.]*$/.test(dateInput) && // Only contains digits and date separators\n dateInput.length > 0;\n\n const isIncompleteInput = hasPlaceholderChars || looksLikePartialDate;\n\n // Only log error if it's not an incomplete input (to avoid spam during typing)\n if (!isIncompleteInput) {\n console.error(`Parsing error:`, {\n dateInput,\n dateFormat: dateFormat,\n });\n }\n return null;\n }\n return parsed.toDate();\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?: (date: Date) => void;\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 } = 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 ]\n .filter(Boolean)\n .join(' ');\n\n const handleClick = () => {\n if (!isDisabled && onClick) {\n onClick(date);\n }\n };\n\n return (\n // eslint-disable-next-line react/jsx-no-bind\n <div class={dayClasses} onClick={handleClick} aria-disabled={isDisabled}>\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 */\ninterface DayData {\n /** Day of the month (1-31) */\n dayOfMonth: number;\n /** Complete date */\n date: Date;\n /** If the day belongs to the current month */\n isCurrentMonth: boolean;\n /** If the day is disabled */\n isDisabled: boolean;\n}\n\n/**\n * Props for the CalendarGrid component\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: (date: Date) => 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}\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 } = 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\">\n {days.map(day => {\n const date = day.date;\n if (!date) return null;\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\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 />\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\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\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} from '@stencil/core';\nimport {\n WEEK_ABBREVIATIONS,\n CUSTOM_DAY_NAMES,\n CUSTOM_MONTH_NAMES,\n} from '../../utils/constants';\n\nimport {\n parseDate,\n isSameDate,\n formatDate,\n isSameOrAfter,\n isSameOrBefore,\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 //#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 /** 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) {\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) {\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 === '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) {\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) {\n this.currentDate = startDate;\n }\n } else {\n // Handle malformed dates gracefully - reset state\n console.warn(`Invalid date range format: ${values[0]}, ${values[1]}`);\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 // Ensure we only move by one month at a time\n newDate.setUTCMonth(newDate.getUTCMonth() + offset);\n\n // Add the appropriate animation class\n const containers = this.el.querySelectorAll('.calendar-grid');\n containers.forEach(container => {\n // Remove existing animation classes\n container.classList.remove('slide-left', 'slide-right');\n\n // Add the new animation class\n const animationClass = offset > 0 ? 'slide-left' : 'slide-right';\n container.classList.add(animationClass);\n\n // Remove the class after the animation\n setTimeout(() => {\n container.classList.remove(animationClass);\n }, 300); // 300ms corresponds to $slide-duration in the SCSS\n });\n\n this.currentDate = newDate;\n };\n\n /**\n * Handles date selection based on the mode\n * @param {Date} date - Selected date\n */\n private handleDateSelection = (date: Date) => {\n if (this.isDateDisabled(date)) {\n return;\n }\n\n if (this.selectionType === 'single') {\n this.handleSingleSelection(date);\n } else {\n this.handleRangeSelection(date);\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\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 if (!date) return true;\n\n // Minimum bound check\n if (this.min) {\n const minDate = parseDate(this.min, this.dateFormat);\n if (minDate && date < minDate) {\n return true;\n }\n }\n\n // Maximum bound check\n if (this.max) {\n const maxDate = parseDate(this.max, this.dateFormat);\n if (maxDate && date > maxDate) {\n return true;\n }\n }\n\n // Check disabled dates\n return this.parsedDisabledDates.some(disabledDate =>\n isSameDate(date, disabledDate, { isUTCMode: 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 * @param {number} totalCalendars - Number of calendars to display (1 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 totalCalendars: number = 1,\n ): Array<{\n /** Day of the month (1 to 31) */\n dayOfMonth: number;\n /** Complete date */\n date: Date;\n /** If the day belongs to the current month */\n isCurrentMonth: boolean;\n /** If the day is disabled */\n isDisabled: boolean;\n }> => {\n const year = this.currentDate.getUTCFullYear();\n const month = this.currentDate.getUTCMonth() + offset;\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 the days of the previous month for the first calendar\n if (offset === 0 && offsetDays > 0) {\n const prevMonthLastDay = new Date(Date.UTC(year, month, 0)).getUTCDate();\n for (let i = offsetDays; i > 0; i--) {\n const date = new Date(\n Date.UTC(year, month - 1, prevMonthLastDay - i + 1),\n );\n days.push({\n dayOfMonth: date.getUTCDate(),\n date,\n isCurrentMonth: false,\n isDisabled: this.isDateDisabled(date),\n });\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 });\n }\n\n // Add the days of the next month only for the last calendar\n if (offset === totalCalendars - 1) {\n const nextMonthDaysNeeded = 7 - (days.length % 7 || 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 });\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 currentMonth = this.currentDate.getUTCMonth();\n\n // Calculate the difference considering the calendar offset\n const monthDiff = selectedMonth - ((currentMonth + calendarOffset) % 12);\n\n const newDate = new Date(this.currentDate);\n newDate.setUTCMonth(newDate.getUTCMonth() + monthDiff);\n this.currentDate = newDate;\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.setUTCFullYear(year);\n newDate.setUTCMonth(newDate.getUTCMonth() + calendarOffset);\n this.currentDate = 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, this.numberOfCalendars);\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 //#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 * 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, this.numberOfCalendars);\n const weeks = [];\n for (let i = 0; i < days.length; i += 7) {\n weeks.push(days.slice(i, i + 7));\n }\n\n return (\n <div class=\"calendar-wrapper\">\n <div class=\"calendar-container\" key={`calendar-${index}`}>\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 />\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 +1,2 @@
1
- import{r as e,c as r,h as o,H as i,g as a}from"./p-d0a33e64.js";import{v as n}from"./p-f5ff676c.js";const t='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-fieldpassword{--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-fieldpassword[fluid]:not([fluid=false]){max-width:unset}nv-fieldpassword[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-fieldpassword[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-fieldpassword[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-fieldpassword[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fieldpassword 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-fieldpassword .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch}nv-fieldpassword .input-wrapper .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;position:relative}nv-fieldpassword .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldpassword .input-wrapper .input-container:focus-within,nv-fieldpassword .input-wrapper .input-container:focus-within:hover,nv-fieldpassword .input-wrapper .input-container:focus,nv-fieldpassword .input-wrapper .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-fieldpassword .input-wrapper .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-fieldpassword .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldpassword .input-wrapper .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-fieldpassword .input-wrapper .input-container input:focus{outline:none}nv-fieldpassword .input-wrapper .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-fieldpassword .input-wrapper .input-container input[type=password]::-ms-clear,nv-fieldpassword .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldpassword .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fieldpassword .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fieldpassword .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldpassword .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-fieldpassword .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)}';const d=t;const s=class{constructor(o){e(this,o);this.valueChanged=r(this,"valueChanged",7);this.inputId=n();this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.mode="text";this.autocomplete="off";this.hidePasswordIcon=false;this.showPassword=false;this.autofocus=false;this.fluid=false;this.handleInputContainerClick=()=>{this.inputElement.focus()};this.togglePasswordVisibility=()=>{this.showPasswordState=!this.showPasswordState};this.handleInput=e=>{const r=e.target;this.value=r.value;this.valueChanged.emit(r.value)}}handleShowPasswordChange(e){this.showPasswordState=e}componentWillLoad(){this.showPasswordState=this.showPassword}render(){return o(i,{key:"79c3035769b9053d53d62526b2e0d430d5f944ae"},(this.label||this.el.querySelector('[slot="label"]'))&&o("label",{key:"2341f2b9ae8c5acb8ce48e15caae8a629a1c0333",htmlFor:this.inputId},o("slot",{key:"ad2301f92adf58c460d4ca76681330b133db2f33",name:"label"},this.label)),o("div",{key:"c12f8401a41c6761686b74e725dd91911eaafbb0",class:"input-wrapper"},o("slot",{key:"badd6d65663029bc3252ef0818bb1c6220d01ddf",name:"before-input"}),o("div",{key:"0ffb2332657f893c00fe2ca68f4bbbd622bb31f1",class:"input-container",onClick:this.handleInputContainerClick},o("slot",{key:"afa1daa6fab0f2a46ab46f0c99e4e4cf10d7a1fe",name:"leading-input"}),o("input",{key:"cc567c4a7fe51a24a99c7a471294d7f6086d8b2d",id:this.inputId,ref:e=>this.inputElement=e,autofocus:this.autofocus,autocomplete:this.autocomplete,placeholder:this.placeholder,name:this.name,type:this.showPasswordState?"text":"password",inputMode:this.mode,value:this.value,required:this.required,maxlength:this.maxlength,minlength:this.minlength,pattern:this.pattern,disabled:this.disabled,readOnly:this.readonly,onInput:this.handleInput}),(this.success||this.error)&&o("nv-icon",{key:"7087d6e35b30de786f3ded46fc74dc9987af6afa",name:this.success?"circle-check":"alert-circle",class:"validation",size:"md"}),!this.hidePasswordIcon&&o("nv-iconbutton",{key:"6fe5e3936ef42c79ed8a5b8a959a22ecbbe52fd6",name:this.showPasswordState?"eye":"eye-off",size:"md",emphasis:"lower",onClick:this.togglePasswordVisibility,"aria-label":this.showPasswordState?"Hide password":"Show password","aria-pressed":this.showPasswordState.toString()})),o("slot",{key:"eab04665ad3394860ad30e366eaf18ae4aee445a",name:"after-input"})),(this.description||this.el.querySelector('[slot="description"]'))&&o("div",{key:"5bc5bd055301bf5fe1b801c2091cd3307c79104f",class:"description"},o("slot",{key:"133ebfcb219aaa0c5fd64e4442c1125b26c623b4",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&o("div",{key:"2a319732006d29becaa602ae16f2d8e885214931",hidden:!this.error,class:"error-description"},o("slot",{key:"e6e75fe487745820b1b8d3de1ed52df8aa9652d4",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return a(this)}static get watchers(){return{showPassword:["handleShowPasswordChange"]}}};s.style=d;export{s as nv_fieldpassword};
2
- //# sourceMappingURL=p-8fb4e5c0.entry.js.map
1
+ import{r as e,c as r,h as o,H as i,g as n}from"./p-d0a33e64.js";import{v as a}from"./p-f5ff676c.js";const t='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-fieldpassword{--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-fieldpassword[fluid]:not([fluid=false]){max-width:unset}nv-fieldpassword[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-fieldpassword[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-fieldpassword[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-fieldpassword[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fieldpassword 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-fieldpassword .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch}nv-fieldpassword .input-wrapper .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;position:relative}nv-fieldpassword .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldpassword .input-wrapper .input-container:focus-within,nv-fieldpassword .input-wrapper .input-container:focus-within:hover,nv-fieldpassword .input-wrapper .input-container:focus,nv-fieldpassword .input-wrapper .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-fieldpassword .input-wrapper .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-fieldpassword .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldpassword .input-wrapper .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-fieldpassword .input-wrapper .input-container input:focus{outline:none}nv-fieldpassword .input-wrapper .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-fieldpassword .input-wrapper .input-container input[type=password]::-ms-clear,nv-fieldpassword .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldpassword .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fieldpassword .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fieldpassword .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldpassword .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-fieldpassword .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)}';const d=t;const s=class{constructor(o){e(this,o);this.valueChanged=r(this,"valueChanged",7);this.inputId=a();this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.mode="text";this.autocomplete="off";this.hidePasswordIcon=false;this.showPassword=false;this.autofocus=false;this.fluid=false;this.handleInputContainerClick=()=>{this.inputElement.focus()};this.togglePasswordVisibility=()=>{this.showPasswordState=!this.showPasswordState};this.handleInput=e=>{const r=e.target;this.value=r.value;this.valueChanged.emit(r.value)}}handleShowPasswordChange(e){this.showPasswordState=e}componentWillLoad(){this.showPasswordState=this.showPassword}render(){return o(i,{key:"fb277f244fb9f92e09cf77463c3a59b1a7a93095"},(this.label||this.el.querySelector('[slot="label"]'))&&o("label",{key:"84227c9b8844bcb02917e6f942c206758f2378b8",htmlFor:this.inputId},o("slot",{key:"36331156c6823f96b017a18a4d134b3a0467e289",name:"label"},this.label)),o("div",{key:"babca6f3bf893084259917bfec7434a189bc6a88",class:"input-wrapper"},o("slot",{key:"7ff461c1b36594cde5e2934b3c4aaa3eaafbea20",name:"before-input"}),o("div",{key:"ac90041750bfdcc23245c42d7e6c52ae855b4bb5",class:"input-container",onClick:this.handleInputContainerClick},o("slot",{key:"0696566301e7fd935c0316b70b41f15cc68b2276",name:"leading-input"}),o("input",{key:"776db054e9b5fb46b592723fa6b0ad073e0cad93",id:this.inputId,ref:e=>this.inputElement=e,autofocus:this.autofocus,autocomplete:this.autocomplete,placeholder:this.placeholder,name:this.name,type:this.showPasswordState?"text":"password",inputMode:this.mode,value:this.value,required:this.required,maxlength:this.maxlength,minlength:this.minlength,pattern:this.pattern,disabled:this.disabled,readOnly:this.readonly,onInput:this.handleInput}),(this.success||this.error)&&o("nv-icon",{key:"73d827ca041e3841b5159dd829769def664a5e8b",name:this.success?"circle-check":"alert-circle",class:"validation",size:"md"}),!this.hidePasswordIcon&&o("nv-iconbutton",{key:"7920164504e0834d8e8f0b91a51e4747cbaa0bfb",name:this.showPasswordState?"eye":"eye-off",size:"md",emphasis:"lower",onClick:this.togglePasswordVisibility,"aria-label":this.showPasswordState?"Hide password":"Show password","aria-pressed":this.showPasswordState.toString()})),o("slot",{key:"4c651f834fe546cd75fc6f24ba37f35f3713c004",name:"after-input"})),(this.description||this.el.querySelector('[slot="description"]'))&&o("div",{key:"9db3be325ffe22ddaaaf6052d03b0eb5a8decc9f",class:"description"},o("slot",{key:"e262fafe3e0d3f1ffbf059eb80d0b0b2128f0c07",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&o("div",{key:"28571af4f63bdf4a9d7ff558d0d672546765f188",hidden:!this.error,class:"error-description"},o("slot",{key:"9b3635bec4932601c0b265cfef7851ab48bad289",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{showPassword:["handleShowPasswordChange"]}}};s.style=d;export{s as nv_fieldpassword};
2
+ //# sourceMappingURL=p-9850c1d7.entry.js.map