@nova-design-system/nova-webcomponents 3.5.0 → 3.7.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 (467) hide show
  1. package/dist/cjs/{timeline.animation-dbb9c5ea.js → collapse.animation-a129dc3f.js} +5 -26
  2. package/dist/cjs/collapse.animation-a129dc3f.js.map +1 -0
  3. package/dist/cjs/fade.animation-644b5c4d.js +70 -0
  4. package/dist/cjs/fade.animation-644b5c4d.js.map +1 -0
  5. package/dist/cjs/{grow.animation-a1f0bc22.js → grow.animation-6d003803.js} +5 -5
  6. package/dist/cjs/{grow.animation-a1f0bc22.js.map → grow.animation-6d003803.js.map} +1 -1
  7. package/dist/cjs/index-c56424e5.js +8 -0
  8. package/dist/cjs/index.cjs.js +6 -4
  9. package/dist/cjs/index.cjs.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/native.cjs.js +1 -1
  12. package/dist/cjs/nv-accordion-item.cjs.entry.js +181 -0
  13. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -0
  14. package/dist/cjs/nv-accordion.cjs.entry.js +167 -0
  15. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -0
  16. package/dist/cjs/nv-alert.cjs.entry.js +6 -4
  17. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-badge_2.cjs.entry.js +9 -7
  20. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
  22. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-calendar.cjs.entry.js +96 -66
  25. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-datagrid.cjs.entry.js +2 -2
  28. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  29. package/dist/cjs/nv-dialog.cjs.entry.js +19 -6
  30. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
  33. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nv-fielddate.cjs.entry.js +121 -35
  35. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  36. package/dist/cjs/nv-fielddaterange.cjs.entry.js +32 -4
  37. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
  39. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  40. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +95 -102
  41. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  43. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  44. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  45. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  46. package/dist/cjs/nv-fieldslider.cjs.entry.js +53 -9
  47. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  49. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  50. package/dist/cjs/nv-fieldtime.cjs.entry.js +10 -10
  51. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  53. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  54. package/dist/cjs/nv-menu.cjs.entry.js +1 -1
  55. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  56. package/dist/cjs/nv-popover.cjs.entry.js +4 -3
  57. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  59. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  60. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  62. package/dist/cjs/nv-tooltip.cjs.entry.js +3 -2
  63. package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
  64. package/dist/cjs/{fade.animation-0d33d198.js → stylefire.es-717e022a.js} +1 -65
  65. package/dist/cjs/stylefire.es-717e022a.js.map +1 -0
  66. package/dist/cjs/timeline.animation-155e8839.js +25 -0
  67. package/dist/cjs/timeline.animation-155e8839.js.map +1 -0
  68. package/dist/collection/collection-manifest.json +2 -0
  69. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +153 -0
  70. package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -0
  71. package/dist/collection/components/nv-accordion/nv-accordion.js +310 -0
  72. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -0
  73. package/dist/collection/components/nv-accordion/styles/nv-accordion.css +15 -0
  74. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js +6 -0
  75. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js.map +1 -0
  76. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +353 -0
  77. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -0
  78. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +66 -0
  79. package/dist/collection/components/nv-alert/nv-alert.js +1 -1
  80. package/dist/collection/components/nv-avatar/nv-avatar.js +1 -1
  81. package/dist/collection/components/nv-badge/nv-badge.js +2 -2
  82. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
  83. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
  84. package/dist/collection/components/nv-button/nv-button.js +1 -1
  85. package/dist/collection/components/nv-calendar/nv-calendar.css +10 -0
  86. package/dist/collection/components/nv-calendar/nv-calendar.js +110 -43
  87. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  88. package/dist/collection/components/nv-calendar/nv-calendar.utils.js +0 -20
  89. package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -1
  90. package/dist/collection/components/nv-calendar/partials/calendar-grid.js +6 -2
  91. package/dist/collection/components/nv-calendar/partials/calendar-grid.js.map +1 -1
  92. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +5 -31
  93. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
  94. package/dist/collection/components/nv-col/nv-col.js +1 -1
  95. package/dist/collection/components/nv-datagrid/nv-datagrid.js +2 -2
  96. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
  97. package/dist/collection/components/nv-dialog/nv-dialog.css +1 -1
  98. package/dist/collection/components/nv-dialog/nv-dialog.js +38 -5
  99. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  100. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  101. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  102. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +6 -4
  103. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
  104. package/dist/collection/components/nv-fielddate/nv-fielddate.js +148 -34
  105. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  106. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +2 -0
  107. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +61 -4
  108. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  109. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +3 -3
  110. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  111. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +7 -1
  112. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js.map +1 -1
  113. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +44 -34
  114. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  115. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +127 -117
  116. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  117. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
  118. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  119. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  120. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  121. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  122. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -1
  123. package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js +45 -1
  124. package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js.map +1 -1
  125. package/dist/collection/components/nv-fieldslider/partials/range-thumb.js +4 -4
  126. package/dist/collection/components/nv-fieldslider/partials/range-thumb.js.map +1 -1
  127. package/dist/collection/components/nv-fieldslider/partials/single-thumb.js +3 -3
  128. package/dist/collection/components/nv-fieldslider/partials/single-thumb.js.map +1 -1
  129. package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js +42 -1
  130. package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js.map +1 -1
  131. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  132. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  133. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  134. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  135. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +11 -13
  136. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  137. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  138. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  139. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  140. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  141. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  142. package/dist/collection/components/nv-row/nv-row.js +1 -1
  143. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  144. package/dist/collection/components/nv-table/nv-table.js +2 -2
  145. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  146. package/dist/collection/components/nv-tooltip/nv-tooltip.js +21 -3
  147. package/dist/collection/components/nv-tooltip/nv-tooltip.js.map +1 -1
  148. package/dist/components/index.js +4 -3
  149. package/dist/components/index.js.map +1 -1
  150. package/dist/components/nv-accordion-item.d.ts +11 -0
  151. package/dist/components/nv-accordion-item.js +8 -0
  152. package/dist/components/nv-accordion-item.js.map +1 -0
  153. package/dist/components/nv-accordion.d.ts +11 -0
  154. package/dist/components/nv-accordion.js +212 -0
  155. package/dist/components/nv-accordion.js.map +1 -0
  156. package/dist/components/nv-alert.js +6 -4
  157. package/dist/components/nv-alert.js.map +1 -1
  158. package/dist/components/nv-avatar.js +2 -2
  159. package/dist/components/nv-badge.js +1 -1
  160. package/dist/components/nv-breadcrumb.js +3 -3
  161. package/dist/components/nv-breadcrumbs.js +1 -1
  162. package/dist/components/nv-button.js +1 -1
  163. package/dist/components/nv-calendar.js +1 -1
  164. package/dist/components/nv-col.js +1 -1
  165. package/dist/components/nv-datagrid.js +4 -4
  166. package/dist/components/nv-datagridcolumn.js +1 -1
  167. package/dist/components/nv-dialog.js +25 -11
  168. package/dist/components/nv-dialog.js.map +1 -1
  169. package/dist/components/nv-dialogfooter.js +1 -1
  170. package/dist/components/nv-dialogheader.js +1 -1
  171. package/dist/components/nv-fieldcheckbox.js +1 -1
  172. package/dist/components/nv-fielddate.js +130 -42
  173. package/dist/components/nv-fielddate.js.map +1 -1
  174. package/dist/components/nv-fielddaterange.js +40 -11
  175. package/dist/components/nv-fielddaterange.js.map +1 -1
  176. package/dist/components/nv-fielddropdown.js +8 -8
  177. package/dist/components/nv-fielddropdownitem.js +1 -1
  178. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  179. package/dist/components/nv-fieldmultiselect.js +104 -112
  180. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  181. package/dist/components/nv-fieldnumber.js +1 -1
  182. package/dist/components/nv-fieldpassword.js +6 -6
  183. package/dist/components/nv-fieldradio.js +3 -3
  184. package/dist/components/nv-fieldselect.js +8 -8
  185. package/dist/components/nv-fieldslider.js +57 -13
  186. package/dist/components/nv-fieldslider.js.map +1 -1
  187. package/dist/components/nv-fieldtext.js +1 -1
  188. package/dist/components/nv-fieldtextarea.js +3 -3
  189. package/dist/components/nv-fieldtime.js +14 -14
  190. package/dist/components/nv-fieldtime.js.map +1 -1
  191. package/dist/components/nv-icon.js +1 -1
  192. package/dist/components/nv-iconbutton.js +1 -1
  193. package/dist/components/nv-loader.js +1 -1
  194. package/dist/components/nv-menu.js +4 -4
  195. package/dist/components/nv-menuitem.js +1 -1
  196. package/dist/components/nv-popover.js +1 -1
  197. package/dist/components/nv-row.js +1 -1
  198. package/dist/components/nv-stack.js +1 -1
  199. package/dist/components/nv-table.js +2 -2
  200. package/dist/components/nv-toggle.js +2 -2
  201. package/dist/components/nv-tooltip.js +1 -1
  202. package/dist/components/{p-9e6e26cb.js → p-0143cee0.js} +5 -5
  203. package/dist/components/p-0143cee0.js.map +1 -0
  204. package/dist/components/{p-e8c083e3.js → p-07550eac.js} +3 -3
  205. package/dist/components/{p-e8c083e3.js.map → p-07550eac.js.map} +1 -1
  206. package/dist/components/{p-1daca48a.js → p-09cdd71f.js} +2 -65
  207. package/dist/components/p-09cdd71f.js.map +1 -0
  208. package/dist/components/{p-919b5237.js → p-12258eef.js} +5 -5
  209. package/dist/components/{p-919b5237.js.map → p-12258eef.js.map} +1 -1
  210. package/dist/components/{p-05c19c9a.js → p-144e80f0.js} +4 -4
  211. package/dist/components/{p-05c19c9a.js.map → p-144e80f0.js.map} +1 -1
  212. package/dist/components/p-15aeab4d.js +23 -0
  213. package/dist/components/p-15aeab4d.js.map +1 -0
  214. package/dist/components/p-1cbacdba.js +68 -0
  215. package/dist/components/p-1cbacdba.js.map +1 -0
  216. package/dist/components/p-44df0d22.js +223 -0
  217. package/dist/components/p-44df0d22.js.map +1 -0
  218. package/dist/components/{p-cebdbb40.js → p-5d5668f0.js} +3 -3
  219. package/dist/components/{p-cebdbb40.js.map → p-5d5668f0.js.map} +1 -1
  220. package/dist/components/{p-001c888b.js → p-8067d283.js} +5 -4
  221. package/dist/components/p-8067d283.js.map +1 -0
  222. package/dist/components/{p-4badc1d2.js → p-8b82a6f4.js} +7 -7
  223. package/dist/components/{p-4badc1d2.js.map → p-8b82a6f4.js.map} +1 -1
  224. package/dist/components/{p-c1765831.js → p-8d45dbfe.js} +2 -2
  225. package/dist/components/{p-c1765831.js.map → p-8d45dbfe.js.map} +1 -1
  226. package/dist/components/{p-9f1e8ef3.js → p-91a558eb.js} +2 -2
  227. package/dist/components/{p-9f1e8ef3.js.map → p-91a558eb.js.map} +1 -1
  228. package/dist/components/{p-42301d8f.js → p-9a263d0e.js} +3 -23
  229. package/dist/components/p-9a263d0e.js.map +1 -0
  230. package/dist/components/{p-5bee0141.js → p-ba87d9d5.js} +6 -5
  231. package/dist/components/p-ba87d9d5.js.map +1 -0
  232. package/dist/components/{p-6277f746.js → p-ca130ad2.js} +2 -2
  233. package/dist/components/{p-6277f746.js.map → p-ca130ad2.js.map} +1 -1
  234. package/dist/components/{p-a0d7e0cd.js → p-d32b75ac.js} +99 -68
  235. package/dist/components/p-d32b75ac.js.map +1 -0
  236. package/dist/components/{p-970cd9b1.js → p-d576d64f.js} +5 -5
  237. package/dist/components/{p-970cd9b1.js.map → p-d576d64f.js.map} +1 -1
  238. package/dist/components/{p-e072f051.js → p-dd7ff995.js} +2 -2
  239. package/dist/components/{p-e072f051.js.map → p-dd7ff995.js.map} +1 -1
  240. package/dist/components/{p-918bb719.js → p-dfd2d4f0.js} +2 -2
  241. package/dist/components/{p-918bb719.js.map → p-dfd2d4f0.js.map} +1 -1
  242. package/dist/components/{p-44f0039b.js → p-e104c58a.js} +4 -4
  243. package/dist/components/p-e104c58a.js.map +1 -0
  244. package/dist/components/{p-00ac701f.js → p-e8e6f88a.js} +8 -6
  245. package/dist/components/p-e8e6f88a.js.map +1 -0
  246. package/dist/components/{p-d56b30ab.js → p-f97d1cb1.js} +3 -3
  247. package/dist/components/{p-d56b30ab.js.map → p-f97d1cb1.js.map} +1 -1
  248. package/dist/esm/{timeline.animation-1b88f052.js → collapse.animation-16e3af45.js} +3 -23
  249. package/dist/esm/collapse.animation-16e3af45.js.map +1 -0
  250. package/dist/esm/fade.animation-71e8e34c.js +68 -0
  251. package/dist/esm/fade.animation-71e8e34c.js.map +1 -0
  252. package/dist/esm/{grow.animation-cac164da.js → grow.animation-f7b26024.js} +2 -2
  253. package/dist/esm/{grow.animation-cac164da.js.map → grow.animation-f7b26024.js.map} +1 -1
  254. package/dist/esm/index-a1936cd0.js +8 -0
  255. package/dist/esm/index.js +5 -3
  256. package/dist/esm/index.js.map +1 -1
  257. package/dist/esm/loader.js +1 -1
  258. package/dist/esm/native.js +1 -1
  259. package/dist/esm/nv-accordion-item.entry.js +177 -0
  260. package/dist/esm/nv-accordion-item.entry.js.map +1 -0
  261. package/dist/esm/nv-accordion.entry.js +163 -0
  262. package/dist/esm/nv-accordion.entry.js.map +1 -0
  263. package/dist/esm/nv-alert.entry.js +5 -3
  264. package/dist/esm/nv-alert.entry.js.map +1 -1
  265. package/dist/esm/nv-avatar.entry.js +1 -1
  266. package/dist/esm/nv-badge_2.entry.js +7 -5
  267. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  268. package/dist/esm/nv-breadcrumb.entry.js +1 -1
  269. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  270. package/dist/esm/nv-button.entry.js +1 -1
  271. package/dist/esm/nv-calendar.entry.js +96 -66
  272. package/dist/esm/nv-calendar.entry.js.map +1 -1
  273. package/dist/esm/nv-col.entry.js +1 -1
  274. package/dist/esm/nv-datagrid.entry.js +2 -2
  275. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  276. package/dist/esm/nv-dialog.entry.js +19 -6
  277. package/dist/esm/nv-dialog.entry.js.map +1 -1
  278. package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
  279. package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
  280. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  281. package/dist/esm/nv-fielddate.entry.js +121 -35
  282. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  283. package/dist/esm/nv-fielddaterange.entry.js +32 -4
  284. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  285. package/dist/esm/nv-fielddropdown.entry.js +3 -3
  286. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  287. package/dist/esm/nv-fieldmultiselect.entry.js +95 -102
  288. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  289. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  290. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  291. package/dist/esm/nv-fieldradio.entry.js +3 -3
  292. package/dist/esm/nv-fieldselect.entry.js +5 -5
  293. package/dist/esm/nv-fieldslider.entry.js +53 -9
  294. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  295. package/dist/esm/nv-fieldtext.entry.js +3 -3
  296. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  297. package/dist/esm/nv-fieldtime.entry.js +10 -10
  298. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  299. package/dist/esm/nv-icon.entry.js +1 -1
  300. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  301. package/dist/esm/nv-menu.entry.js +1 -1
  302. package/dist/esm/nv-menuitem.entry.js +1 -1
  303. package/dist/esm/nv-popover.entry.js +4 -3
  304. package/dist/esm/nv-popover.entry.js.map +1 -1
  305. package/dist/esm/nv-row.entry.js +1 -1
  306. package/dist/esm/nv-stack.entry.js +1 -1
  307. package/dist/esm/nv-table.entry.js +2 -2
  308. package/dist/esm/nv-toggle.entry.js +2 -2
  309. package/dist/esm/nv-tooltip.entry.js +4 -3
  310. package/dist/esm/nv-tooltip.entry.js.map +1 -1
  311. package/dist/esm/{fade.animation-2a077983.js → stylefire.es-74da334a.js} +2 -65
  312. package/dist/esm/stylefire.es-74da334a.js.map +1 -0
  313. package/dist/esm/timeline.animation-adf35ecb.js +23 -0
  314. package/dist/esm/timeline.animation-adf35ecb.js.map +1 -0
  315. package/dist/native/index.esm.js +1 -1
  316. package/dist/native/index.esm.js.map +1 -1
  317. package/dist/native/native.css +1 -1
  318. package/dist/native/native.esm.js +1 -1
  319. package/dist/native/native.esm.js.map +1 -1
  320. package/dist/native/p-051db87c.entry.js +2 -0
  321. package/dist/native/p-051db87c.entry.js.map +1 -0
  322. package/dist/native/{p-a0505695.entry.js → p-08452012.entry.js} +2 -2
  323. package/dist/native/p-09cdd71f.js +16 -0
  324. package/dist/native/p-09cdd71f.js.map +1 -0
  325. package/dist/native/p-0e005d95.entry.js +2 -0
  326. package/dist/native/{p-d4bf2587.entry.js.map → p-0e005d95.entry.js.map} +1 -1
  327. package/dist/native/p-10ce53ea.entry.js +2 -0
  328. package/dist/native/{p-54198779.entry.js → p-12039da4.entry.js} +2 -2
  329. package/dist/native/p-1235c007.entry.js +2 -0
  330. package/dist/native/p-15aeab4d.js +2 -0
  331. package/dist/native/p-15aeab4d.js.map +1 -0
  332. package/dist/native/{p-003b6377.entry.js → p-16ef7dd4.entry.js} +2 -2
  333. package/dist/native/{p-1d98477d.entry.js → p-1ad1bff9.entry.js} +2 -2
  334. package/dist/native/p-1cbacdba.js +2 -0
  335. package/dist/native/p-1cbacdba.js.map +1 -0
  336. package/dist/native/{p-914da1e1.entry.js → p-1f932a4b.entry.js} +2 -2
  337. package/dist/native/p-2a6783ca.entry.js +2 -0
  338. package/dist/native/p-2a6783ca.entry.js.map +1 -0
  339. package/dist/native/{p-a5c72bd3.entry.js → p-34bf336f.entry.js} +2 -2
  340. package/dist/native/{p-e293b3fe.entry.js → p-3f139780.entry.js} +2 -2
  341. package/dist/native/{p-dd256ea3.entry.js → p-40fa3328.entry.js} +2 -2
  342. package/dist/native/{p-a983e6a0.entry.js → p-4b15cff3.entry.js} +2 -2
  343. package/dist/native/p-516da423.entry.js +2 -0
  344. package/dist/native/p-516da423.entry.js.map +1 -0
  345. package/dist/native/{p-08ca678c.entry.js → p-51a57a3a.entry.js} +2 -2
  346. package/dist/native/{p-5b06f4b5.entry.js → p-64cb38e6.entry.js} +2 -2
  347. package/dist/native/{p-af1e6035.entry.js → p-67c34b8c.entry.js} +2 -2
  348. package/dist/native/{p-e9962dac.entry.js → p-68edb2e8.entry.js} +2 -2
  349. package/dist/native/p-73c08f3b.entry.js +2 -0
  350. package/dist/native/p-73c08f3b.entry.js.map +1 -0
  351. package/dist/native/p-7703c736.entry.js +2 -0
  352. package/dist/native/p-7703c736.entry.js.map +1 -0
  353. package/dist/native/{p-6029e51b.entry.js → p-85a54ef2.entry.js} +2 -2
  354. package/dist/native/p-8d45dbfe.js +2 -0
  355. package/dist/native/p-916acbd3.entry.js +2 -0
  356. package/dist/native/p-916acbd3.entry.js.map +1 -0
  357. package/dist/native/p-9a263d0e.js +2 -0
  358. package/dist/native/p-9a263d0e.js.map +1 -0
  359. package/dist/native/{p-1a5d3b87.entry.js → p-9dc1c3e7.entry.js} +2 -2
  360. package/dist/native/p-a36dc25a.entry.js +2 -0
  361. package/dist/native/{p-ad128108.entry.js.map → p-a36dc25a.entry.js.map} +1 -1
  362. package/dist/native/p-a50f3850.entry.js +2 -0
  363. package/dist/native/{p-19f484a0.entry.js → p-a73fa60a.entry.js} +2 -2
  364. package/dist/native/p-b3f9db23.entry.js +2 -0
  365. package/dist/native/{p-82568ec7.entry.js.map → p-b3f9db23.entry.js.map} +1 -1
  366. package/dist/native/p-baddee4c.entry.js +7 -0
  367. package/dist/native/p-baddee4c.entry.js.map +1 -0
  368. package/dist/native/p-bba5cc9b.entry.js +2 -0
  369. package/dist/native/p-bba5cc9b.entry.js.map +1 -0
  370. package/dist/native/{p-1e0df2d3.entry.js → p-bee62b2b.entry.js} +2 -2
  371. package/dist/native/p-dc34da69.entry.js +2 -0
  372. package/dist/native/p-dc34da69.entry.js.map +1 -0
  373. package/dist/native/p-ec92ee7a.entry.js +2 -0
  374. package/dist/native/{p-6ea1c78b.entry.js → p-f00a4552.entry.js} +2 -2
  375. package/dist/native/{p-dd6b1d79.entry.js → p-f540db71.entry.js} +2 -2
  376. package/dist/native/{p-be9aeed4.entry.js → p-f687e05c.entry.js} +2 -2
  377. package/dist/native/p-f687e05c.entry.js.map +1 -0
  378. package/dist/native/{p-b5b9190a.entry.js → p-fa81b77f.entry.js} +2 -2
  379. package/dist/native/p-fa81b77f.entry.js.map +1 -0
  380. package/dist/native/{p-2d98d4f0.entry.js → p-fcd52432.entry.js} +2 -2
  381. package/dist/types/components/nv-accordion/nv-accordion.d.ts +82 -0
  382. package/dist/types/components/nv-accordion/nv-accordion.docs.d.ts +4 -0
  383. package/dist/types/components/nv-accordion-item/nv-accordion-item.d.ts +79 -0
  384. package/dist/types/components/nv-accordion-item/nv-accordion-item.docs.d.ts +4 -0
  385. package/dist/types/components/nv-calendar/nv-calendar.d.ts +7 -1
  386. package/dist/types/components/nv-calendar/partials/calendar-grid.d.ts +6 -2
  387. package/dist/types/components/nv-dialog/nv-dialog.d.ts +7 -0
  388. package/dist/types/components/nv-fieldcheckbox/nv-fieldcheckbox.d.ts +2 -0
  389. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +27 -2
  390. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -0
  391. package/dist/types/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.d.ts +6 -0
  392. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +17 -16
  393. package/dist/types/components/nv-fieldslider/nv-fieldslider.utils.d.ts +13 -0
  394. package/dist/types/components/nv-fieldslider/partials/range-thumb.d.ts +2 -0
  395. package/dist/types/components/nv-fieldslider/partials/single-thumb.d.ts +2 -0
  396. package/dist/types/components/nv-tooltip/nv-tooltip.d.ts +7 -0
  397. package/dist/types/components.d.ts +287 -10
  398. package/dist/vscode-data.json +71 -5
  399. package/hydrate/index.js +1461 -879
  400. package/hydrate/index.mjs +1461 -879
  401. package/package.json +1 -1
  402. package/readme.md +6 -0
  403. package/dist/cjs/fade.animation-0d33d198.js.map +0 -1
  404. package/dist/cjs/timeline.animation-dbb9c5ea.js.map +0 -1
  405. package/dist/components/p-001c888b.js.map +0 -1
  406. package/dist/components/p-00ac701f.js.map +0 -1
  407. package/dist/components/p-1daca48a.js.map +0 -1
  408. package/dist/components/p-42301d8f.js.map +0 -1
  409. package/dist/components/p-44f0039b.js.map +0 -1
  410. package/dist/components/p-5bee0141.js.map +0 -1
  411. package/dist/components/p-9e6e26cb.js.map +0 -1
  412. package/dist/components/p-a0d7e0cd.js.map +0 -1
  413. package/dist/esm/fade.animation-2a077983.js.map +0 -1
  414. package/dist/esm/timeline.animation-1b88f052.js.map +0 -1
  415. package/dist/native/p-0493c51a.entry.js +0 -2
  416. package/dist/native/p-1daca48a.js +0 -16
  417. package/dist/native/p-1daca48a.js.map +0 -1
  418. package/dist/native/p-42301d8f.js +0 -2
  419. package/dist/native/p-42301d8f.js.map +0 -1
  420. package/dist/native/p-45cbe6e4.entry.js +0 -2
  421. package/dist/native/p-46428304.entry.js +0 -2
  422. package/dist/native/p-46428304.entry.js.map +0 -1
  423. package/dist/native/p-58f4dc0e.entry.js +0 -2
  424. package/dist/native/p-58f4dc0e.entry.js.map +0 -1
  425. package/dist/native/p-59b07b36.entry.js +0 -2
  426. package/dist/native/p-59b07b36.entry.js.map +0 -1
  427. package/dist/native/p-82568ec7.entry.js +0 -2
  428. package/dist/native/p-82c4bf56.entry.js +0 -2
  429. package/dist/native/p-82c4bf56.entry.js.map +0 -1
  430. package/dist/native/p-86ab23ea.entry.js +0 -2
  431. package/dist/native/p-ad128108.entry.js +0 -2
  432. package/dist/native/p-b5b9190a.entry.js.map +0 -1
  433. package/dist/native/p-b9c7b644.entry.js +0 -2
  434. package/dist/native/p-b9c7b644.entry.js.map +0 -1
  435. package/dist/native/p-be9aeed4.entry.js.map +0 -1
  436. package/dist/native/p-bee972c7.entry.js +0 -2
  437. package/dist/native/p-c1765831.js +0 -2
  438. package/dist/native/p-d21b2da2.entry.js +0 -7
  439. package/dist/native/p-d21b2da2.entry.js.map +0 -1
  440. package/dist/native/p-d4bf2587.entry.js +0 -2
  441. package/dist/native/p-eaf51f2c.entry.js +0 -2
  442. package/dist/native/p-eaf51f2c.entry.js.map +0 -1
  443. /package/dist/native/{p-a0505695.entry.js.map → p-08452012.entry.js.map} +0 -0
  444. /package/dist/native/{p-0493c51a.entry.js.map → p-10ce53ea.entry.js.map} +0 -0
  445. /package/dist/native/{p-54198779.entry.js.map → p-12039da4.entry.js.map} +0 -0
  446. /package/dist/native/{p-86ab23ea.entry.js.map → p-1235c007.entry.js.map} +0 -0
  447. /package/dist/native/{p-003b6377.entry.js.map → p-16ef7dd4.entry.js.map} +0 -0
  448. /package/dist/native/{p-1d98477d.entry.js.map → p-1ad1bff9.entry.js.map} +0 -0
  449. /package/dist/native/{p-914da1e1.entry.js.map → p-1f932a4b.entry.js.map} +0 -0
  450. /package/dist/native/{p-a5c72bd3.entry.js.map → p-34bf336f.entry.js.map} +0 -0
  451. /package/dist/native/{p-e293b3fe.entry.js.map → p-3f139780.entry.js.map} +0 -0
  452. /package/dist/native/{p-dd256ea3.entry.js.map → p-40fa3328.entry.js.map} +0 -0
  453. /package/dist/native/{p-a983e6a0.entry.js.map → p-4b15cff3.entry.js.map} +0 -0
  454. /package/dist/native/{p-08ca678c.entry.js.map → p-51a57a3a.entry.js.map} +0 -0
  455. /package/dist/native/{p-5b06f4b5.entry.js.map → p-64cb38e6.entry.js.map} +0 -0
  456. /package/dist/native/{p-af1e6035.entry.js.map → p-67c34b8c.entry.js.map} +0 -0
  457. /package/dist/native/{p-e9962dac.entry.js.map → p-68edb2e8.entry.js.map} +0 -0
  458. /package/dist/native/{p-6029e51b.entry.js.map → p-85a54ef2.entry.js.map} +0 -0
  459. /package/dist/native/{p-c1765831.js.map → p-8d45dbfe.js.map} +0 -0
  460. /package/dist/native/{p-1a5d3b87.entry.js.map → p-9dc1c3e7.entry.js.map} +0 -0
  461. /package/dist/native/{p-bee972c7.entry.js.map → p-a50f3850.entry.js.map} +0 -0
  462. /package/dist/native/{p-19f484a0.entry.js.map → p-a73fa60a.entry.js.map} +0 -0
  463. /package/dist/native/{p-1e0df2d3.entry.js.map → p-bee62b2b.entry.js.map} +0 -0
  464. /package/dist/native/{p-45cbe6e4.entry.js.map → p-ec92ee7a.entry.js.map} +0 -0
  465. /package/dist/native/{p-6ea1c78b.entry.js.map → p-f00a4552.entry.js.map} +0 -0
  466. /package/dist/native/{p-dd6b1d79.entry.js.map → p-f540db71.entry.js.map} +0 -0
  467. /package/dist/native/{p-2d98d4f0.entry.js.map → p-fcd52432.entry.js.map} +0 -0
package/hydrate/index.mjs CHANGED
@@ -2721,263 +2721,181 @@ var registerHost = (elm, cmpMeta) => {
2721
2721
  };
2722
2722
  var styles = /* @__PURE__ */ new Map();
2723
2723
 
2724
- function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
2724
+ const nvAccordionCss = "nv-accordion{display:block;border:var(--spacing-px) solid var(--color-content-low-border);border-radius:var(--radius-rounded-lg)}nv-accordion .nv-accordion__footer{padding:var(--spacing-3);background:var(--color-level-05-background);border-radius:0 0 var(--radius-rounded-lg) var(--radius-rounded-lg);margin-top:calc(var(--spacing-px) * -1);border-top:var(--spacing-px) solid var(--color-content-low-border)}nv-accordion .nv-accordion__footer:empty{display:none}";
2725
+ var NvAccordionStyle0 = nvAccordionCss;
2725
2726
 
2726
- var FeedbackColors;
2727
- (function (FeedbackColors) {
2728
- FeedbackColors["Information"] = "information";
2729
- FeedbackColors["Warning"] = "warning";
2730
- FeedbackColors["Success"] = "success";
2731
- FeedbackColors["Error"] = "error";
2732
- FeedbackColors["Neutral"] = "neutral";
2733
- })(FeedbackColors || (FeedbackColors = {}));
2734
- var DeprecatedSemanticColors;
2735
- (function (DeprecatedSemanticColors) {
2736
- DeprecatedSemanticColors["Neutral"] = "neutral";
2737
- DeprecatedSemanticColors["Primary"] = "primary";
2738
- DeprecatedSemanticColors["Secondary"] = "secondary";
2739
- DeprecatedSemanticColors["Success"] = "success";
2740
- DeprecatedSemanticColors["Error"] = "error";
2741
- })(DeprecatedSemanticColors || (DeprecatedSemanticColors = {}));
2742
- var SemanticSizes;
2743
- (function (SemanticSizes) {
2744
- SemanticSizes["ExtraSmall"] = "xs";
2745
- SemanticSizes["Small"] = "sm";
2746
- SemanticSizes["Medium"] = "md";
2747
- SemanticSizes["Large"] = "lg";
2748
- SemanticSizes["ExtraLarge"] = "xl";
2749
- })(SemanticSizes || (SemanticSizes = {}));
2750
- var ButtonSize;
2751
- (function (ButtonSize) {
2752
- ButtonSize["ExtraSmall"] = "xs";
2753
- ButtonSize["Small"] = "sm";
2754
- ButtonSize["Medium"] = "md";
2755
- ButtonSize["Large"] = "lg";
2756
- })(ButtonSize || (ButtonSize = {}));
2757
- var ButtonEmphasis;
2758
- (function (ButtonEmphasis) {
2759
- ButtonEmphasis["High"] = "high";
2760
- ButtonEmphasis["Medium"] = "medium";
2761
- ButtonEmphasis["Low"] = "low";
2762
- ButtonEmphasis["Lower"] = "lower";
2763
- })(ButtonEmphasis || (ButtonEmphasis = {}));
2764
- var ButtonType;
2765
- (function (ButtonType) {
2766
- ButtonType["Submit"] = "submit";
2767
- ButtonType["Reset"] = "reset";
2768
- ButtonType["Button"] = "button";
2769
- })(ButtonType || (ButtonType = {}));
2770
- var IconButtonShape;
2771
- (function (IconButtonShape) {
2772
- IconButtonShape["Square"] = "square";
2773
- IconButtonShape["Rounded"] = "rounded";
2774
- })(IconButtonShape || (IconButtonShape = {}));
2775
- var LoaderColors;
2776
- (function (LoaderColors) {
2777
- LoaderColors["High"] = "brand";
2778
- LoaderColors["Low"] = "white";
2779
- })(LoaderColors || (LoaderColors = {}));
2780
- var LabelPlacement;
2781
- (function (LabelPlacement) {
2782
- LabelPlacement["Before"] = "before";
2783
- LabelPlacement["After"] = "after";
2784
- })(LabelPlacement || (LabelPlacement = {}));
2785
- var TextInputAutocomplete;
2786
- (function (TextInputAutocomplete) {
2787
- TextInputAutocomplete["On"] = "on";
2788
- TextInputAutocomplete["Off"] = "off";
2789
- TextInputAutocomplete["Section"] = "section-*";
2790
- TextInputAutocomplete["Shipping"] = "shipping";
2791
- TextInputAutocomplete["Billing"] = "billing";
2792
- TextInputAutocomplete["Home"] = "home";
2793
- TextInputAutocomplete["Work"] = "work";
2794
- TextInputAutocomplete["Mobile"] = "mobile";
2795
- TextInputAutocomplete["Fax"] = "fax";
2796
- TextInputAutocomplete["Pager"] = "pager";
2797
- TextInputAutocomplete["Tel"] = "tel";
2798
- TextInputAutocomplete["TelCountryCode"] = "tel-country-code";
2799
- TextInputAutocomplete["TelNational"] = "tel-national";
2800
- TextInputAutocomplete["TelAreaCode"] = "tel-area-code";
2801
- TextInputAutocomplete["TelLocal"] = "tel-local";
2802
- TextInputAutocomplete["TelLocalPrefix"] = "tel-local-prefix";
2803
- TextInputAutocomplete["TelLocalSuffix"] = "tel-local-suffix";
2804
- TextInputAutocomplete["TelExtension"] = "tel-extension";
2805
- TextInputAutocomplete["Email"] = "email";
2806
- TextInputAutocomplete["IMProtocol"] = "impp";
2807
- TextInputAutocomplete["Name"] = "name";
2808
- TextInputAutocomplete["HonorificPrefix"] = "honorific-prefix";
2809
- TextInputAutocomplete["GivenName"] = "given-name";
2810
- TextInputAutocomplete["AdditionalName"] = "additional-name";
2811
- TextInputAutocomplete["FamilyName"] = "family-name";
2812
- TextInputAutocomplete["HonorificSuffix"] = "honorific-suffix";
2813
- TextInputAutocomplete["Nickname"] = "nickname";
2814
- TextInputAutocomplete["Username"] = "username";
2815
- TextInputAutocomplete["NewPassword"] = "new-password";
2816
- TextInputAutocomplete["CurrentPassword"] = "current-password";
2817
- TextInputAutocomplete["OneTimeCode"] = "one-time-code";
2818
- TextInputAutocomplete["OrganizationTitle"] = "organization-title";
2819
- TextInputAutocomplete["Organization"] = "organization";
2820
- TextInputAutocomplete["StreetAddress"] = "street-address";
2821
- TextInputAutocomplete["AddressLine1"] = "address-line1";
2822
- TextInputAutocomplete["AddressLine2"] = "address-line2";
2823
- TextInputAutocomplete["AddressLine3"] = "address-line3";
2824
- TextInputAutocomplete["AddressLevel4"] = "address-level4";
2825
- TextInputAutocomplete["AddressLevel3"] = "address-level3";
2826
- TextInputAutocomplete["AddressLevel2"] = "address-level2";
2827
- TextInputAutocomplete["AddressLevel1"] = "address-level1";
2828
- TextInputAutocomplete["Country"] = "country";
2829
- TextInputAutocomplete["CountryName"] = "country-name";
2830
- TextInputAutocomplete["PostalCode"] = "postal-code";
2831
- TextInputAutocomplete["CCName"] = "cc-name";
2832
- TextInputAutocomplete["CCGivenName"] = "cc-given-name";
2833
- TextInputAutocomplete["CCAdditionalName"] = "cc-additional-name";
2834
- TextInputAutocomplete["CCFamilyName"] = "cc-family-name";
2835
- TextInputAutocomplete["CCNumber"] = "cc-number";
2836
- TextInputAutocomplete["CCExp"] = "cc-exp";
2837
- TextInputAutocomplete["CCExpMonth"] = "cc-exp-month";
2838
- TextInputAutocomplete["CCExpYear"] = "cc-exp-year";
2839
- TextInputAutocomplete["CCCSC"] = "cc-csc";
2840
- TextInputAutocomplete["CCType"] = "cc-type";
2841
- TextInputAutocomplete["TransactionCurrency"] = "transaction-currency";
2842
- TextInputAutocomplete["TransactionAmount"] = "transaction-amount";
2843
- TextInputAutocomplete["Language"] = "language";
2844
- TextInputAutocomplete["Bday"] = "bday";
2845
- TextInputAutocomplete["BdayDay"] = "bday-day";
2846
- TextInputAutocomplete["BdayMonth"] = "bday-month";
2847
- TextInputAutocomplete["BdayYear"] = "bday-year";
2848
- TextInputAutocomplete["Sex"] = "sex";
2849
- TextInputAutocomplete["Url"] = "url";
2850
- TextInputAutocomplete["Photo"] = "photo";
2851
- })(TextInputAutocomplete || (TextInputAutocomplete = {}));
2852
- var TimeType;
2853
- (function (TimeType) {
2854
- TimeType["Hours"] = "hours";
2855
- TimeType["Minutes"] = "minutes";
2856
- TimeType["Seconds"] = "seconds";
2857
- })(TimeType || (TimeType = {}));
2858
- var GlobalFilterPosition;
2859
- (function (GlobalFilterPosition) {
2860
- GlobalFilterPosition["End"] = "end";
2861
- GlobalFilterPosition["Start"] = "start";
2862
- GlobalFilterPosition["Center"] = "center";
2863
- })(GlobalFilterPosition || (GlobalFilterPosition = {}));
2864
- var SortingPossibility;
2865
- (function (SortingPossibility) {
2866
- SortingPossibility["Asc"] = "asc";
2867
- SortingPossibility["Desc"] = "desc";
2868
- })(SortingPossibility || (SortingPossibility = {}));
2869
- const WEEK_ABBREVIATIONS = {
2870
- 'fr-FR': 'Sem', // Semaine
2871
- 'fr-BE': 'Sem', // Semaine
2872
- 'nl-BE': 'W', // Week
2873
- 'en-BE': 'W', // Week
2874
- 'en-US': 'W', // Week
2875
- 'en-GB': 'W', // Week
2876
- 'es-ES': 'Sem', // Semana
2877
- 'de-DE': 'KW', // Kalenderwoche
2878
- 'it-IT': 'Set', // Settimana
2879
- 'pt-PT': 'Sem', // Semana
2880
- 'nl-NL': 'W', // Week
2881
- 'pl-PL': 'Tyd', // Tydzień
2882
- 'ru-RU': 'Нед', // Неделя
2883
- 'ja-JP': '週', // Shū
2884
- 'zh-CN': '周', // Zhōu
2885
- 'ko-KR': '주', // Ju
2886
- };
2887
- const CUSTOM_DAY_NAMES = {
2888
- 'fr-BE': ['Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di'],
2889
- 'nl-BE': ['Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za', 'Zo'],
2890
- 'de-DE': ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'],
2891
- 'en-BE': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
2892
- 'en-US': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
2893
- 'en-GB': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
2894
- };
2895
- const CUSTOM_MONTH_NAMES = {
2896
- 'fr-BE': [
2897
- 'Jan',
2898
- 'Fev',
2899
- 'Mar',
2900
- 'Avr',
2901
- 'Mai',
2902
- 'Jun',
2903
- 'Jul',
2904
- 'Aou',
2905
- 'Sep',
2906
- 'Oct',
2907
- 'Nov',
2908
- 'Dec',
2909
- ],
2910
- 'nl-BE': [
2911
- 'Jan',
2912
- 'Feb',
2913
- 'Maa',
2914
- 'Apr',
2915
- 'Mei',
2916
- 'Jun',
2917
- 'Jul',
2918
- 'Aug',
2919
- 'Sep',
2920
- 'Okt',
2921
- 'Nov',
2922
- 'Dec',
2923
- ],
2924
- 'de-DE': [
2925
- 'Jan',
2926
- 'Feb',
2927
- 'Mär',
2928
- 'Apr',
2929
- 'Mai',
2930
- 'Jun',
2931
- 'Jul',
2932
- 'Aug',
2933
- 'Sep',
2934
- 'Okt',
2935
- 'Nov',
2936
- 'Dez',
2937
- ],
2938
- 'en-BE': [
2939
- 'Jan',
2940
- 'Feb',
2941
- 'Mar',
2942
- 'Apr',
2943
- 'May',
2944
- 'Jun',
2945
- 'Jul',
2946
- 'Aug',
2947
- 'Sep',
2948
- 'Oct',
2949
- 'Nov',
2950
- 'Dec',
2951
- ],
2952
- 'en-US': [
2953
- 'Jan',
2954
- 'Feb',
2955
- 'Mar',
2956
- 'Apr',
2957
- 'May',
2958
- 'Jun',
2959
- 'Jul',
2960
- 'Aug',
2961
- 'Sep',
2962
- 'Oct',
2963
- 'Nov',
2964
- 'Dec',
2965
- ],
2966
- 'en-GB': [
2967
- 'Jan',
2968
- 'Feb',
2969
- 'Mar',
2970
- 'Apr',
2971
- 'May',
2972
- 'Jun',
2973
- 'Jul',
2974
- 'Aug',
2975
- 'Sep',
2976
- 'Oct',
2977
- 'Nov',
2978
- 'Dec',
2979
- ],
2980
- };
2727
+ /**
2728
+ * @slot default - Slot for custom content (optional, ignored if data is provided)
2729
+ */
2730
+ class NvAccordion {
2731
+ constructor(hostRef) {
2732
+ registerInstance(this, hostRef);
2733
+ this.openChanged = createEvent(this, "openChanged", 7);
2734
+ /****************************************************************************/
2735
+ //#region PROPERTIES
2736
+ /**
2737
+ * Data to display as a list of items (title, subtitle, content).
2738
+ */
2739
+ this.data = [];
2740
+ /**
2741
+ * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)
2742
+ */
2743
+ this.mode = 'accordion';
2744
+ //#endregion PROPERTIES
2745
+ /****************************************************************************/
2746
+ //#region STATE
2747
+ /**
2748
+ * Internal index of open items (not exposed)
2749
+ */
2750
+ this.internalOpenIndexes = [];
2751
+ }
2752
+ //#endregion EVENTS
2753
+ /****************************************************************************/
2754
+ //#region METHODS
2755
+ /**
2756
+ * Opens an item by its index (Public API)
2757
+ * @param {number} index Index of the item to open
2758
+ */
2759
+ async open(index) {
2760
+ this.toggleItem(index, true);
2761
+ }
2762
+ /**
2763
+ * Closes an item by its index (Public API)
2764
+ * @param {number} index Index of the item to close
2765
+ */
2766
+ async close(index) {
2767
+ this.toggleItem(index, false);
2768
+ }
2769
+ /**
2770
+ * Toggles an item's state (internal)
2771
+ * @param {number} index Item index
2772
+ * @param {boolean} [forceOpen] Force open (true) or close (false)
2773
+ */
2774
+ toggleItem(index, forceOpen) {
2775
+ let openIndexes = this.openIndexes !== undefined
2776
+ ? [...this.openIndexes]
2777
+ : [...(this.internalOpenIndexes || [])];
2778
+ const isOpen = openIndexes.includes(index);
2779
+ if (this.mode === 'accordion') {
2780
+ openIndexes = forceOpen === false || isOpen ? [] : [index];
2781
+ }
2782
+ else {
2783
+ if (forceOpen === false) {
2784
+ openIndexes = openIndexes.filter(i => i !== index);
2785
+ }
2786
+ else if (!isOpen) {
2787
+ openIndexes.push(index);
2788
+ }
2789
+ }
2790
+ this.internalOpenIndexes = openIndexes;
2791
+ this.openChanged.emit({ openIndexes });
2792
+ if (this.openIndexes !== undefined) {
2793
+ this.openIndexes =
2794
+ this.mode === 'accordion'
2795
+ ? [openIndexes[0]].filter(x => x !== undefined)
2796
+ : [...openIndexes];
2797
+ }
2798
+ // Update child elements state - for both data and slot usage
2799
+ this.updateChildrenState();
2800
+ }
2801
+ /**
2802
+ * Updates the open state of child elements based on internalOpenIndexes
2803
+ */
2804
+ async updateChildrenState() {
2805
+ // Force a re-render by updating the state
2806
+ this.internalOpenIndexes = [...(this.internalOpenIndexes || [])];
2807
+ }
2808
+ /**
2809
+ * Listens to itemToggle events from nv-accordion-item elements
2810
+ * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item
2811
+ */
2812
+ onItemToggle(event) {
2813
+ // Find the index of the item that emitted the event
2814
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2815
+ const targetItem = event.target;
2816
+ const index = items.indexOf(targetItem);
2817
+ if (index !== -1) {
2818
+ // If the event comes from an item that is opening, handle accordion mode
2819
+ if (event.detail === true) {
2820
+ if (this.mode === 'accordion') {
2821
+ // Close all other items
2822
+ items.forEach((item, i) => {
2823
+ if (i !== index && item.open) {
2824
+ item.open = false;
2825
+ }
2826
+ });
2827
+ this.internalOpenIndexes = [index];
2828
+ }
2829
+ else {
2830
+ // Add index to internalOpenIndexes if not already present
2831
+ if (!this.internalOpenIndexes.includes(index)) {
2832
+ this.internalOpenIndexes = [...this.internalOpenIndexes, index];
2833
+ }
2834
+ }
2835
+ }
2836
+ else {
2837
+ // If the item is closing, remove it from internalOpenIndexes
2838
+ this.internalOpenIndexes = this.internalOpenIndexes.filter(i => i !== index);
2839
+ }
2840
+ // Emit openChanged event
2841
+ this.openChanged.emit({ openIndexes: this.internalOpenIndexes });
2842
+ if (this.openIndexes !== undefined) {
2843
+ this.openIndexes =
2844
+ this.mode === 'accordion'
2845
+ ? [this.internalOpenIndexes[0]].filter(x => x !== undefined)
2846
+ : [...this.internalOpenIndexes];
2847
+ }
2848
+ }
2849
+ }
2850
+ //#endregion METHODS
2851
+ /****************************************************************************/
2852
+ //#region WATCHERS
2853
+ //#endregion WATCHERS
2854
+ /****************************************************************************/
2855
+ //#region LIFECYCLE
2856
+ componentWillLoad() {
2857
+ if (this.openIndexes !== undefined) {
2858
+ this.internalOpenIndexes = [...this.openIndexes];
2859
+ }
2860
+ }
2861
+ componentDidLoad() {
2862
+ // If using direct child elements, initialize their state
2863
+ if (!this.data || this.data.length === 0) {
2864
+ this.updateChildrenState();
2865
+ }
2866
+ }
2867
+ componentWillUpdate() {
2868
+ if (this.openIndexes !== undefined) {
2869
+ this.internalOpenIndexes = [...this.openIndexes];
2870
+ }
2871
+ }
2872
+ //#endregion LIFECYCLE
2873
+ /****************************************************************************/
2874
+ //#region RENDER
2875
+ render() {
2876
+ return (hAsync(Host, { key: 'a6cb21b274024a00e60e0d0db780f25fab6e5bc2', role: "list", class: "nv-accordion" }, this.data && this.data.length > 0 ? (this.data.map((item, i) => {
2877
+ var _a;
2878
+ return (hAsync("nv-accordion-item", { key: (_a = item.id) !== null && _a !== void 0 ? _a : i, itemTitle: item.title, disabled: item.disabled, open: (this.internalOpenIndexes || []).includes(i) }, item.subtitle ? (hAsync("div", { slot: "header" }, hAsync("div", { class: "nv-accordion-item__header-content" }, hAsync("span", { class: "nv-accordion-item__title" }, item.title), hAsync("span", { class: "nv-accordion-item__subtitle" }, item.subtitle)))) : null, hAsync("div", { slot: "content" }, item.content), item.footer && hAsync("div", { slot: "footer" }, item.footer)));
2879
+ })) : (hAsync("slot", null))));
2880
+ }
2881
+ get el() { return getElement(this); }
2882
+ static get style() { return NvAccordionStyle0; }
2883
+ static get cmpMeta() { return {
2884
+ "$flags$": 4,
2885
+ "$tagName$": "nv-accordion",
2886
+ "$members$": {
2887
+ "data": [16],
2888
+ "mode": [513],
2889
+ "openIndexes": [1040],
2890
+ "internalOpenIndexes": [32],
2891
+ "open": [64],
2892
+ "close": [64]
2893
+ },
2894
+ "$listeners$": [[0, "itemToggle", "onItemToggle"]],
2895
+ "$lazyBundleId$": "-",
2896
+ "$attrsToReflect$": [["mode", "mode"]]
2897
+ }; }
2898
+ }
2981
2899
 
2982
2900
  /******************************************************************************
2983
2901
  Copyright (c) Microsoft Corporation.
@@ -4674,362 +4592,815 @@ function buildSVGAttrs(_a, dimensions, totalPathLength, cssBuilder, attrs, isDas
4674
4592
  attrs[attrKey] = style[key];
4675
4593
  }
4676
4594
  }
4677
- if (originX !== undefined || originY !== undefined || style.transform) {
4678
- attrs.style.transformOrigin = calculateSVGTransformOrigin(dimensions, originX !== undefined ? originX : defaultOrigin, originY !== undefined ? originY : defaultOrigin);
4595
+ if (originX !== undefined || originY !== undefined || style.transform) {
4596
+ attrs.style.transformOrigin = calculateSVGTransformOrigin(dimensions, originX !== undefined ? originX : defaultOrigin, originY !== undefined ? originY : defaultOrigin);
4597
+ }
4598
+ if (attrX !== undefined) attrs.x = attrX;
4599
+ if (attrY !== undefined) attrs.y = attrY;
4600
+ if (totalPathLength !== undefined && pathLength !== undefined) {
4601
+ attrs[isDashCase ? 'stroke-dashoffset' : 'strokeDashoffset'] = progressToPixels(-pathOffset, totalPathLength);
4602
+ attrs[isDashCase ? 'stroke-dasharray' : 'strokeDasharray'] = progressToPixels(pathLength, totalPathLength) + " " + progressToPixels(pathSpacing, totalPathLength);
4603
+ }
4604
+ return attrs;
4605
+ }
4606
+ function createAttrBuilder(dimensions, totalPathLength, isDashCase) {
4607
+ if (isDashCase === void 0) {
4608
+ isDashCase = true;
4609
+ }
4610
+ var attrs = svgAttrsTemplate();
4611
+ var cssBuilder = createStyleBuilder(svgStyleConfig);
4612
+ return function (state) {
4613
+ return buildSVGAttrs(state, dimensions, totalPathLength, cssBuilder, attrs, isDashCase);
4614
+ };
4615
+ }
4616
+
4617
+ var getDimensions$1 = function (element) {
4618
+ return typeof element.getBBox === 'function' ? element.getBBox() : element.getBoundingClientRect();
4619
+ };
4620
+ var getSVGElementDimensions = function (element) {
4621
+ try {
4622
+ return getDimensions$1(element);
4623
+ } catch (e) {
4624
+ return { x: 0, y: 0, width: 0, height: 0 };
4625
+ }
4626
+ };
4627
+
4628
+ var isPath = function (element) {
4629
+ return element.tagName === 'path';
4630
+ };
4631
+ var svgStyler = /*#__PURE__*/createStyler({
4632
+ onRead: function (key, _a) {
4633
+ var element = _a.element;
4634
+ key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;
4635
+ if (!isTransformProp(key)) {
4636
+ return element.getAttribute(key);
4637
+ } else {
4638
+ var valueType = getValueType(key);
4639
+ return valueType ? valueType.default || 0 : 0;
4640
+ }
4641
+ },
4642
+ onRender: function (state, _a) {
4643
+ var element = _a.element,
4644
+ buildAttrs = _a.buildAttrs;
4645
+ var attrs = buildAttrs(state);
4646
+ for (var key in attrs) {
4647
+ if (key === 'style') {
4648
+ Object.assign(element.style, attrs.style);
4649
+ } else {
4650
+ element.setAttribute(key, attrs[key]);
4651
+ }
4652
+ }
4653
+ }
4654
+ });
4655
+ var svg = function (element) {
4656
+ var dimensions = getSVGElementDimensions(element);
4657
+ var pathLength = isPath(element) && element.getTotalLength ? element.getTotalLength() : undefined;
4658
+ return svgStyler({
4659
+ element: element,
4660
+ buildAttrs: createAttrBuilder(dimensions, pathLength)
4661
+ });
4662
+ };
4663
+
4664
+ var viewport = /*#__PURE__*/createStyler({
4665
+ useCache: false,
4666
+ onRead: function (key) {
4667
+ return key === 'scrollTop' ? window.pageYOffset : window.pageXOffset;
4668
+ },
4669
+ onRender: function (_a) {
4670
+ var _b = _a.scrollTop,
4671
+ scrollTop = _b === void 0 ? 0 : _b,
4672
+ _c = _a.scrollLeft,
4673
+ scrollLeft = _c === void 0 ? 0 : _c;
4674
+ return window.scrollTo(scrollLeft, scrollTop);
4675
+ }
4676
+ });
4677
+
4678
+ var cache = /*#__PURE__*/new WeakMap();
4679
+ var isHTMLElement$1 = function (node) {
4680
+ return node instanceof HTMLElement || typeof node.click === 'function';
4681
+ };
4682
+ var isSVGElement = function (node) {
4683
+ return node instanceof SVGElement || 'ownerSVGElement' in node;
4684
+ };
4685
+ var createDOMStyler = function (node, props) {
4686
+ var styler;
4687
+ if (node === window) {
4688
+ styler = viewport(node);
4689
+ } else if (isHTMLElement$1(node)) {
4690
+ styler = createCssStyler(node, props);
4691
+ } else if (isSVGElement(node)) {
4692
+ styler = svg(node);
4693
+ }
4694
+ cache.set(node, styler);
4695
+ return styler;
4696
+ };
4697
+ var getStyler = function (node, props) {
4698
+ return cache.has(node) ? cache.get(node) : createDOMStyler(node, props);
4699
+ };
4700
+ function index(nodeOrSelector, props) {
4701
+ var node = typeof nodeOrSelector === 'string' ? document.querySelector(nodeOrSelector) : nodeOrSelector;
4702
+ return getStyler(node, props);
4703
+ }
4704
+
4705
+ const useCollapse = (node, { duration } = { duration: 200 }) => {
4706
+ const nodeStyler = index(node);
4707
+ /**
4708
+ * Will set the overflow to hidden, and animate the max height to 0. Make sure
4709
+ * the element has no border or y padding set, otherwise the animation will
4710
+ * not work as expected.
4711
+ */
4712
+ function collapse() {
4713
+ return new Promise(resolve => {
4714
+ const height = node.getBoundingClientRect().height;
4715
+ nodeStyler.set({ overflow: 'hidden' });
4716
+ animate({
4717
+ from: height,
4718
+ to: 0,
4719
+ duration,
4720
+ onUpdate: value => {
4721
+ nodeStyler.set({
4722
+ maxHeight: value,
4723
+ });
4724
+ },
4725
+ onComplete: () => {
4726
+ resolve();
4727
+ },
4728
+ });
4729
+ });
4730
+ }
4731
+ /**
4732
+ * Apply the collapsed styles without animating, useful when initial state
4733
+ * is collapsed.
4734
+ */
4735
+ function setCollapsed() {
4736
+ node.style.maxHeight = '0';
4737
+ node.style.overflow = 'hidden';
4738
+ }
4739
+ /**
4740
+ * Apply the expanded styles without animating, useful when initial state
4741
+ * is expanded.
4742
+ */
4743
+ function setExpanded() {
4744
+ node.style.maxHeight = '';
4745
+ node.style.overflow = '';
4746
+ }
4747
+ /**
4748
+ * Will set the overflow to hidden, and animate the max height to the value
4749
+ * of the scrollHeight. Make sure the element has no border or y padding set,
4750
+ * otherwise the animation will not work as expected. Once complete, the
4751
+ * max-height and overflow style properties will be removed.
4752
+ */
4753
+ function expand() {
4754
+ return new Promise(resolve => {
4755
+ const scrollHeight = node.scrollHeight;
4756
+ nodeStyler.set({
4757
+ overflow: 'hidden',
4758
+ });
4759
+ animate({
4760
+ from: 0,
4761
+ to: scrollHeight,
4762
+ duration,
4763
+ onUpdate: value => {
4764
+ nodeStyler.set({
4765
+ maxHeight: value,
4766
+ });
4767
+ },
4768
+ onComplete: () => {
4769
+ node.style.removeProperty('max-height');
4770
+ node.style.removeProperty('overflow');
4771
+ resolve();
4772
+ },
4773
+ });
4774
+ });
4775
+ }
4776
+ return {
4777
+ collapse,
4778
+ expand,
4779
+ setCollapsed,
4780
+ setExpanded,
4781
+ };
4782
+ };
4783
+
4784
+ const useFade = (node, { duration } = { duration: 200 }) => {
4785
+ const nodeStyler = index(node);
4786
+ /**
4787
+ * Will animate the opacity to 1, and removes the opacity style attribute once
4788
+ * complete.
4789
+ */
4790
+ function fadeIn() {
4791
+ return new Promise(resolve => {
4792
+ animate({
4793
+ from: { opacity: 0 },
4794
+ to: { opacity: 1 },
4795
+ duration,
4796
+ onUpdate(latest) {
4797
+ nodeStyler.set({ opacity: latest.opacity });
4798
+ },
4799
+ onComplete() {
4800
+ resolve();
4801
+ node.style.removeProperty('opacity');
4802
+ },
4803
+ });
4804
+ });
4805
+ }
4806
+ /**
4807
+ * Applies the fadeOut styles without animating, useful when initial state
4808
+ * is hidden.
4809
+ */
4810
+ function setFadeOut() {
4811
+ node.style.opacity = '0';
4679
4812
  }
4680
- if (attrX !== undefined) attrs.x = attrX;
4681
- if (attrY !== undefined) attrs.y = attrY;
4682
- if (totalPathLength !== undefined && pathLength !== undefined) {
4683
- attrs[isDashCase ? 'stroke-dashoffset' : 'strokeDashoffset'] = progressToPixels(-pathOffset, totalPathLength);
4684
- attrs[isDashCase ? 'stroke-dasharray' : 'strokeDasharray'] = progressToPixels(pathLength, totalPathLength) + " " + progressToPixels(pathSpacing, totalPathLength);
4813
+ /**
4814
+ * Applies the fadeIn styles without animating, useful when initial state
4815
+ * is visible.
4816
+ */
4817
+ function setFadeIn() {
4818
+ node.style.opacity = '1';
4685
4819
  }
4686
- return attrs;
4687
- }
4688
- function createAttrBuilder(dimensions, totalPathLength, isDashCase) {
4689
- if (isDashCase === void 0) {
4690
- isDashCase = true;
4820
+ /**
4821
+ * Will animate the opacity to 0, once complete, the opacity style attribute
4822
+ * will stay on the element.
4823
+ */
4824
+ function fadeOut() {
4825
+ return new Promise(resolve => {
4826
+ animate({
4827
+ from: { opacity: 1 },
4828
+ to: { opacity: 0 },
4829
+ duration,
4830
+ onUpdate(latest) {
4831
+ nodeStyler.set({ opacity: latest.opacity });
4832
+ },
4833
+ onComplete() {
4834
+ resolve();
4835
+ },
4836
+ });
4837
+ });
4691
4838
  }
4692
- var attrs = svgAttrsTemplate();
4693
- var cssBuilder = createStyleBuilder(svgStyleConfig);
4694
- return function (state) {
4695
- return buildSVGAttrs(state, dimensions, totalPathLength, cssBuilder, attrs, isDashCase);
4839
+ return {
4840
+ fadeIn,
4841
+ fadeOut,
4842
+ setFadeOut,
4843
+ setFadeIn,
4696
4844
  };
4697
- }
4698
-
4699
- var getDimensions$1 = function (element) {
4700
- return typeof element.getBBox === 'function' ? element.getBBox() : element.getBoundingClientRect();
4701
- };
4702
- var getSVGElementDimensions = function (element) {
4703
- try {
4704
- return getDimensions$1(element);
4705
- } catch (e) {
4706
- return { x: 0, y: 0, width: 0, height: 0 };
4707
- }
4708
4845
  };
4709
4846
 
4710
- var isPath = function (element) {
4711
- return element.tagName === 'path';
4712
- };
4713
- var svgStyler = /*#__PURE__*/createStyler({
4714
- onRead: function (key, _a) {
4715
- var element = _a.element;
4716
- key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;
4717
- if (!isTransformProp(key)) {
4718
- return element.getAttribute(key);
4719
- } else {
4720
- var valueType = getValueType(key);
4721
- return valueType ? valueType.default || 0 : 0;
4847
+ const useGrow = (node, { duration = 200, amount = 0.8, hasFade = true } = {}) => {
4848
+ const nodeStyler = index(node);
4849
+ /**
4850
+ * Will animate the scale and optionally the opacity to make the element grow and fade in,
4851
+ * and removes the scale and opacity style attributes once complete.
4852
+ */
4853
+ function growIn() {
4854
+ return new Promise(resolve => {
4855
+ animate({
4856
+ from: { opacity: hasFade ? 0 : 1, scale: amount },
4857
+ to: { opacity: 1, scale: 1 },
4858
+ duration,
4859
+ onUpdate(latest) {
4860
+ const updates = {
4861
+ scale: latest.scale,
4862
+ };
4863
+ if (hasFade) {
4864
+ updates['opacity'] = latest.opacity;
4865
+ }
4866
+ nodeStyler.set(updates);
4867
+ },
4868
+ onComplete() {
4869
+ resolve();
4870
+ if (hasFade) {
4871
+ node.style.removeProperty('opacity');
4872
+ }
4873
+ node.style.removeProperty('transform');
4874
+ },
4875
+ });
4876
+ });
4877
+ }
4878
+ /**
4879
+ * Applies the growOut styles without animating, useful when the initial
4880
+ * state is hidden.
4881
+ */
4882
+ function setGrowOut() {
4883
+ node.style.transform = `scale(${amount})`;
4884
+ if (hasFade) {
4885
+ node.style.opacity = '0';
4722
4886
  }
4723
- },
4724
- onRender: function (state, _a) {
4725
- var element = _a.element,
4726
- buildAttrs = _a.buildAttrs;
4727
- var attrs = buildAttrs(state);
4728
- for (var key in attrs) {
4729
- if (key === 'style') {
4730
- Object.assign(element.style, attrs.style);
4731
- } else {
4732
- element.setAttribute(key, attrs[key]);
4733
- }
4887
+ }
4888
+ /**
4889
+ * Applies the growIn styles without animating, useful when the initial
4890
+ * state is visible.
4891
+ */
4892
+ function setGrowIn() {
4893
+ node.style.transform = `scale(1)`;
4894
+ if (hasFade) {
4895
+ node.style.opacity = '1';
4734
4896
  }
4735
4897
  }
4736
- });
4737
- var svg = function (element) {
4738
- var dimensions = getSVGElementDimensions(element);
4739
- var pathLength = isPath(element) && element.getTotalLength ? element.getTotalLength() : undefined;
4740
- return svgStyler({
4741
- element: element,
4742
- buildAttrs: createAttrBuilder(dimensions, pathLength)
4743
- });
4898
+ /**
4899
+ * Will animate the scale and optionally the opacity to make the element shrink and fade out,
4900
+ * leaving the scale and opacity styles on the element.
4901
+ */
4902
+ function growOut() {
4903
+ return new Promise(resolve => {
4904
+ animate({
4905
+ from: { opacity: 1, scale: 1 },
4906
+ to: { opacity: hasFade ? 0 : 1, scale: amount },
4907
+ duration,
4908
+ onUpdate(latest) {
4909
+ const updates = {
4910
+ scale: latest.scale,
4911
+ };
4912
+ if (hasFade) {
4913
+ updates['opacity'] = latest.opacity;
4914
+ }
4915
+ nodeStyler.set(updates);
4916
+ },
4917
+ onComplete() {
4918
+ resolve();
4919
+ },
4920
+ });
4921
+ });
4922
+ }
4923
+ return {
4924
+ growIn,
4925
+ growOut,
4926
+ setGrowOut,
4927
+ setGrowIn,
4928
+ };
4744
4929
  };
4745
4930
 
4746
- var viewport = /*#__PURE__*/createStyler({
4747
- useCache: false,
4748
- onRead: function (key) {
4749
- return key === 'scrollTop' ? window.pageYOffset : window.pageXOffset;
4931
+ /**
4932
+ * Will execute a series of animation promises in sequence.
4933
+ * This is useful for chaining animations where each step depends on the
4934
+ * previous one completing before starting the next.
4935
+ *
4936
+ * @param {Array<() => Promise<void>>} animations - The array of animation functions.
4937
+ * @returns {Object} - An object with a `start` method to begin the timeline.
4938
+ *
4939
+ * @example
4940
+ * const { fadeOut } = useFade(this.ref);
4941
+ * const { collapse } = useCollapse(this.ref);
4942
+ *
4943
+ * timeline(fadeOut, collapse).start();
4944
+ */
4945
+ const timeline = (...animations) => ({
4946
+ start: () => {
4947
+ return animations.reduce((promise, animation) => promise.then(() => animation()), Promise.resolve());
4750
4948
  },
4751
- onRender: function (_a) {
4752
- var _b = _a.scrollTop,
4753
- scrollTop = _b === void 0 ? 0 : _b,
4754
- _c = _a.scrollLeft,
4755
- scrollLeft = _c === void 0 ? 0 : _c;
4756
- return window.scrollTo(scrollLeft, scrollTop);
4757
- }
4758
4949
  });
4759
4950
 
4760
- var cache = /*#__PURE__*/new WeakMap();
4761
- var isHTMLElement$1 = function (node) {
4762
- return node instanceof HTMLElement || typeof node.click === 'function';
4763
- };
4764
- var isSVGElement = function (node) {
4765
- return node instanceof SVGElement || 'ownerSVGElement' in node;
4766
- };
4767
- var createDOMStyler = function (node, props) {
4768
- var styler;
4769
- if (node === window) {
4770
- styler = viewport(node);
4771
- } else if (isHTMLElement$1(node)) {
4772
- styler = createCssStyler(node, props);
4773
- } else if (isSVGElement(node)) {
4774
- styler = svg(node);
4951
+ const nvAccordionItemCss = "nv-accordion-item{display:block;border-bottom:var(--spacing-px) solid var(--color-content-low-border)}nv-accordion-item:last-child{border-bottom:none}nv-accordion-item .nv-accordion-item__header{cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4)}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__chevron{margin-left:var(--spacing-2);flex-shrink:0}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__header-content{display:flex;flex-direction:column;gap:var(--spacing-0-5);flex:1;min-width:0}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__title{color:var(--color-content-high-text);font-size:var(--font-size-lg);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--line-height-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__subtitle{color:var(--color-content-low-text);font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--line-height-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}nv-accordion-item .nv-accordion-item__content{background:var(--color-level-10-background)}nv-accordion-item .nv-accordion-item__content .nv-accordion-item__content-inner{padding:var(--spacing-4);color:var(--color-content-low-text);font-size:var(--font-size-md);font-style:normal;font-weight:500;line-height:var(--line-height-base);}nv-accordion-item.is-disabled{opacity:var(--opacity-disabled);pointer-events:none}nv-accordion-item.is-open .nv-accordion-item__header{border-bottom:var(--spacing-px) solid var(--color-content-low-border)}";
4952
+ var NvAccordionItemStyle0 = nvAccordionItemCss;
4953
+
4954
+ /**
4955
+ * Accordion item element for nv-accordion.
4956
+ *
4957
+ * @slot header - Custom header (replaces itemTitle/subtitle)
4958
+ * @slot content - Main content (expandable area)
4959
+ */
4960
+ class NvAccordionItem {
4961
+ constructor(hostRef) {
4962
+ registerInstance(this, hostRef);
4963
+ this.itemToggle = createEvent(this, "itemToggle", 7);
4964
+ /** Open or closed */
4965
+ this.open = false;
4966
+ /** Disables the item */
4967
+ this.disabled = false;
4968
+ /** Parent expansion mode (accordion or multi) */
4969
+ this.mode = 'accordion';
4970
+ //#endregion EVENTS
4971
+ /****************************************************************************/
4972
+ //#region STATE
4973
+ /** Internal state for open/close rendering */
4974
+ this.currentOpenState = false;
4975
+ /**
4976
+ * Controls if the panel has been initialized for animations
4977
+ */
4978
+ this.isInitialized = false;
4979
+ /**
4980
+ * Animation in progress
4981
+ */
4982
+ this.isAnimating = false;
4983
+ /**
4984
+ * Handler for header click
4985
+ */
4986
+ this.handleHeaderClick = () => {
4987
+ this.toggle();
4988
+ };
4989
+ /**
4990
+ * Handler for iconbutton click
4991
+ * @param {Event} e - Click event
4992
+ */
4993
+ this.handleIconClick = (e) => {
4994
+ e.stopPropagation(); // Prevent header click from triggering
4995
+ this.toggle();
4996
+ };
4997
+ /**
4998
+ * Handler for keyboard events on iconbutton
4999
+ * @param {KeyboardEvent} e - Keyboard event
5000
+ */
5001
+ this.handleHeaderKeyDown = (e) => {
5002
+ if (this.disabled)
5003
+ return;
5004
+ switch (e.key) {
5005
+ case 'Enter':
5006
+ case ' ':
5007
+ e.preventDefault();
5008
+ this.toggle();
5009
+ break;
5010
+ case 'ArrowDown':
5011
+ e.preventDefault();
5012
+ if (!this.open) {
5013
+ this.open = true;
5014
+ this.itemToggle.emit(this.open);
5015
+ this.updateVisibility(this.open);
5016
+ }
5017
+ break;
5018
+ case 'ArrowUp':
5019
+ e.preventDefault();
5020
+ if (this.open) {
5021
+ this.open = false;
5022
+ this.itemToggle.emit(this.open);
5023
+ this.updateVisibility(this.open);
5024
+ }
5025
+ break;
5026
+ }
5027
+ };
4775
5028
  }
4776
- cache.set(node, styler);
4777
- return styler;
4778
- };
4779
- var getStyler = function (node, props) {
4780
- return cache.has(node) ? cache.get(node) : createDOMStyler(node, props);
4781
- };
4782
- function index(nodeOrSelector, props) {
4783
- var node = typeof nodeOrSelector === 'string' ? document.querySelector(nodeOrSelector) : nodeOrSelector;
4784
- return getStyler(node, props);
4785
- }
4786
-
4787
- const useCollapse = (node, { duration } = { duration: 200 }) => {
4788
- const nodeStyler = index(node);
5029
+ //#endregion STATE
5030
+ /****************************************************************************/
5031
+ //#region WATCHERS
5032
+ async onOpenChanged(newValue, oldValue) {
5033
+ this.currentOpenState = newValue; // Synchronize internal state
5034
+ // Skip initial render
5035
+ if (oldValue === undefined) {
5036
+ return;
5037
+ }
5038
+ await this.updateVisibility(newValue);
5039
+ }
5040
+ //#endregion WATCHERS
5041
+ /****************************************************************************/
5042
+ //#region ANIMATIONS
4789
5043
  /**
4790
- * Will set the overflow to hidden, and animate the max height to 0. Make sure
4791
- * the element has no border or y padding set, otherwise the animation will
4792
- * not work as expected.
5044
+ * Updates the visibility state with Nova animation system
5045
+ * @param {boolean} open - Whether the accordion item should be open
4793
5046
  */
4794
- function collapse() {
4795
- return new Promise(resolve => {
4796
- const height = node.getBoundingClientRect().height;
4797
- nodeStyler.set({ overflow: 'hidden' });
4798
- animate({
4799
- from: height,
4800
- to: 0,
4801
- duration,
4802
- onUpdate: value => {
4803
- nodeStyler.set({
4804
- maxHeight: value,
4805
- });
4806
- },
4807
- onComplete: () => {
4808
- resolve();
4809
- },
4810
- });
5047
+ async updateVisibility(open) {
5048
+ if (!this.contentRef)
5049
+ return;
5050
+ this.isAnimating = true;
5051
+ const { collapse, expand } = useCollapse(this.contentRef, {
5052
+ duration: 200,
4811
5053
  });
5054
+ if (open) {
5055
+ // Expand with animation
5056
+ await expand();
5057
+ }
5058
+ else {
5059
+ // Collapse with animation
5060
+ await collapse();
5061
+ }
5062
+ this.isAnimating = false;
4812
5063
  }
4813
- /**
4814
- * Apply the collapsed styles without animating, useful when initial state
4815
- * is collapsed.
4816
- */
4817
- function setCollapsed() {
4818
- node.style.maxHeight = '0';
4819
- node.style.overflow = 'hidden';
5064
+ //#endregion ANIMATIONS
5065
+ /****************************************************************************/
5066
+ //#region LIFECYCLE
5067
+ componentWillLoad() {
5068
+ this.currentOpenState = this.open; // Initial synchronization
5069
+ }
5070
+ componentDidLoad() {
5071
+ if (this.contentRef) {
5072
+ const { setExpanded, setCollapsed } = useCollapse(this.contentRef);
5073
+ if (this.open) {
5074
+ // If open by default on initial load, set expanded state without animation
5075
+ setExpanded();
5076
+ }
5077
+ else {
5078
+ // If closed by default, set collapsed state without animation
5079
+ setCollapsed();
5080
+ }
5081
+ }
5082
+ }
5083
+ disconnectedCallback() {
5084
+ if (this.mutationObserver) {
5085
+ this.mutationObserver.disconnect();
5086
+ }
4820
5087
  }
5088
+ //#endregion LIFECYCLE
5089
+ /****************************************************************************/
5090
+ //#region METHODS
4821
5091
  /**
4822
- * Apply the expanded styles without animating, useful when initial state
4823
- * is expanded.
5092
+ * Toggle open/close (Public API)
4824
5093
  */
4825
- function setExpanded() {
4826
- node.style.maxHeight = '';
4827
- node.style.overflow = '';
5094
+ async toggle() {
5095
+ if (!this.disabled && !this.isAnimating) {
5096
+ this.open = !this.open;
5097
+ this.itemToggle.emit(this.open);
5098
+ // Force animation update directly instead of relying on watcher
5099
+ await this.updateVisibility(this.open);
5100
+ }
4828
5101
  }
4829
5102
  /**
4830
- * Will set the overflow to hidden, and animate the max height to the value
4831
- * of the scrollHeight. Make sure the element has no border or y padding set,
4832
- * otherwise the animation will not work as expected. Once complete, the
4833
- * max-height and overflow style properties will be removed.
5103
+ * Get the chevron icon name based on open state
5104
+ * @returns {string} The icon name to display in the chevron button
4834
5105
  */
4835
- function expand() {
4836
- return new Promise(resolve => {
4837
- const scrollHeight = node.scrollHeight;
4838
- nodeStyler.set({
4839
- overflow: 'hidden',
4840
- });
4841
- animate({
4842
- from: 0,
4843
- to: scrollHeight,
4844
- duration,
4845
- onUpdate: value => {
4846
- nodeStyler.set({
4847
- maxHeight: value,
4848
- });
4849
- },
4850
- onComplete: () => {
4851
- node.style.removeProperty('max-height');
4852
- node.style.removeProperty('overflow');
4853
- resolve();
4854
- },
4855
- });
4856
- });
5106
+ get chevronIconName() {
5107
+ return this.open ? 'chevron-top' : 'chevron-down';
4857
5108
  }
4858
- return {
4859
- collapse,
4860
- expand,
4861
- setCollapsed,
4862
- setExpanded,
4863
- };
5109
+ //#endregion METHODS
5110
+ /****************************************************************************/
5111
+ //#region RENDER
5112
+ render() {
5113
+ return (hAsync(Host, { key: 'dfb8ca76f8ac40c938323be1ccba4353ea33a616', class: {
5114
+ 'nv-accordion-item': true,
5115
+ 'is-open': this.open,
5116
+ 'is-disabled': this.disabled,
5117
+ 'is-animating': this.isAnimating,
5118
+ }, role: "listitem", "aria-expanded": this.open ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, hAsync("div", { key: '258efe0502a39d963a9e75c16285ee9cbc65cb9f', class: "nv-accordion-item__header", onClick: this.handleHeaderClick, "aria-controls": "content" }, hAsync("slot", { key: 'bb4dae743f06e3d41d1f7b8c17793b668df9347b', name: "header" }, hAsync("div", { key: 'f3142a81c6be776d95ab9292101b889db6e35805', class: "nv-accordion-item__header-content" }, this.itemTitle && (hAsync("span", { key: 'e897d8b4d414ba4e93b2853c152059579063335e', class: "nv-accordion-item__title" }, this.itemTitle)), this.subtitle && (hAsync("span", { key: 'b8e03ceb1ca0e4c0b0fe24398f0e1c592ac077ab', class: "nv-accordion-item__subtitle" }, this.subtitle)))), hAsync("nv-iconbutton", { key: '8d90711a96f5ce2e7d6f5ebcf3922cd0fedd69bd', emphasis: "low", size: "sm", shape: "square", name: this.chevronIconName, tabindex: this.disabled ? -1 : 0, onClick: this.handleIconClick, onKeyDown: this.handleHeaderKeyDown, "aria-expanded": this.open ? 'true' : 'false', "aria-controls": "content", "aria-label": this.open ? 'Fermer la section' : 'Ouvrir la section' })), hAsync("div", { key: '171b5165f3663fa5f0fa28ef84145dfc998e9f10', id: "content", class: "nv-accordion-item__content", "aria-hidden": !this.open ? 'true' : 'false', ref: el => (this.contentRef = el) }, hAsync("div", { key: 'dcf753f23cec073a036d8137f1299dcf4ca4af78', class: "nv-accordion-item__content-inner" }, hAsync("slot", { key: '3dc85def21aace19f3d211262b6cf66ccb9438fa', name: "content" })))));
5119
+ }
5120
+ get el() { return getElement(this); }
5121
+ static get watchers() { return {
5122
+ "open": ["onOpenChanged"]
5123
+ }; }
5124
+ static get style() { return NvAccordionItemStyle0; }
5125
+ static get cmpMeta() { return {
5126
+ "$flags$": 4,
5127
+ "$tagName$": "nv-accordion-item",
5128
+ "$members$": {
5129
+ "itemTitle": [513, "item-title"],
5130
+ "subtitle": [513],
5131
+ "open": [1540],
5132
+ "disabled": [516],
5133
+ "maxContentHeight": [514, "max-content-height"],
5134
+ "mode": [513],
5135
+ "currentOpenState": [32],
5136
+ "isInitialized": [32],
5137
+ "isAnimating": [32],
5138
+ "toggle": [64]
5139
+ },
5140
+ "$listeners$": undefined,
5141
+ "$lazyBundleId$": "-",
5142
+ "$attrsToReflect$": [["itemTitle", "item-title"], ["subtitle", "subtitle"], ["open", "open"], ["disabled", "disabled"], ["maxContentHeight", "max-content-height"], ["mode", "mode"]]
5143
+ }; }
5144
+ }
5145
+
5146
+ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
5147
+
5148
+ var FeedbackColors;
5149
+ (function (FeedbackColors) {
5150
+ FeedbackColors["Information"] = "information";
5151
+ FeedbackColors["Warning"] = "warning";
5152
+ FeedbackColors["Success"] = "success";
5153
+ FeedbackColors["Error"] = "error";
5154
+ FeedbackColors["Neutral"] = "neutral";
5155
+ })(FeedbackColors || (FeedbackColors = {}));
5156
+ var DeprecatedSemanticColors;
5157
+ (function (DeprecatedSemanticColors) {
5158
+ DeprecatedSemanticColors["Neutral"] = "neutral";
5159
+ DeprecatedSemanticColors["Primary"] = "primary";
5160
+ DeprecatedSemanticColors["Secondary"] = "secondary";
5161
+ DeprecatedSemanticColors["Success"] = "success";
5162
+ DeprecatedSemanticColors["Error"] = "error";
5163
+ })(DeprecatedSemanticColors || (DeprecatedSemanticColors = {}));
5164
+ var SemanticSizes;
5165
+ (function (SemanticSizes) {
5166
+ SemanticSizes["ExtraSmall"] = "xs";
5167
+ SemanticSizes["Small"] = "sm";
5168
+ SemanticSizes["Medium"] = "md";
5169
+ SemanticSizes["Large"] = "lg";
5170
+ SemanticSizes["ExtraLarge"] = "xl";
5171
+ })(SemanticSizes || (SemanticSizes = {}));
5172
+ var ButtonSize;
5173
+ (function (ButtonSize) {
5174
+ ButtonSize["ExtraSmall"] = "xs";
5175
+ ButtonSize["Small"] = "sm";
5176
+ ButtonSize["Medium"] = "md";
5177
+ ButtonSize["Large"] = "lg";
5178
+ })(ButtonSize || (ButtonSize = {}));
5179
+ var ButtonEmphasis;
5180
+ (function (ButtonEmphasis) {
5181
+ ButtonEmphasis["High"] = "high";
5182
+ ButtonEmphasis["Medium"] = "medium";
5183
+ ButtonEmphasis["Low"] = "low";
5184
+ ButtonEmphasis["Lower"] = "lower";
5185
+ })(ButtonEmphasis || (ButtonEmphasis = {}));
5186
+ var ButtonType;
5187
+ (function (ButtonType) {
5188
+ ButtonType["Submit"] = "submit";
5189
+ ButtonType["Reset"] = "reset";
5190
+ ButtonType["Button"] = "button";
5191
+ })(ButtonType || (ButtonType = {}));
5192
+ var IconButtonShape;
5193
+ (function (IconButtonShape) {
5194
+ IconButtonShape["Square"] = "square";
5195
+ IconButtonShape["Rounded"] = "rounded";
5196
+ })(IconButtonShape || (IconButtonShape = {}));
5197
+ var LoaderColors;
5198
+ (function (LoaderColors) {
5199
+ LoaderColors["High"] = "brand";
5200
+ LoaderColors["Low"] = "white";
5201
+ })(LoaderColors || (LoaderColors = {}));
5202
+ var LabelPlacement;
5203
+ (function (LabelPlacement) {
5204
+ LabelPlacement["Before"] = "before";
5205
+ LabelPlacement["After"] = "after";
5206
+ })(LabelPlacement || (LabelPlacement = {}));
5207
+ var TextInputAutocomplete;
5208
+ (function (TextInputAutocomplete) {
5209
+ TextInputAutocomplete["On"] = "on";
5210
+ TextInputAutocomplete["Off"] = "off";
5211
+ TextInputAutocomplete["Section"] = "section-*";
5212
+ TextInputAutocomplete["Shipping"] = "shipping";
5213
+ TextInputAutocomplete["Billing"] = "billing";
5214
+ TextInputAutocomplete["Home"] = "home";
5215
+ TextInputAutocomplete["Work"] = "work";
5216
+ TextInputAutocomplete["Mobile"] = "mobile";
5217
+ TextInputAutocomplete["Fax"] = "fax";
5218
+ TextInputAutocomplete["Pager"] = "pager";
5219
+ TextInputAutocomplete["Tel"] = "tel";
5220
+ TextInputAutocomplete["TelCountryCode"] = "tel-country-code";
5221
+ TextInputAutocomplete["TelNational"] = "tel-national";
5222
+ TextInputAutocomplete["TelAreaCode"] = "tel-area-code";
5223
+ TextInputAutocomplete["TelLocal"] = "tel-local";
5224
+ TextInputAutocomplete["TelLocalPrefix"] = "tel-local-prefix";
5225
+ TextInputAutocomplete["TelLocalSuffix"] = "tel-local-suffix";
5226
+ TextInputAutocomplete["TelExtension"] = "tel-extension";
5227
+ TextInputAutocomplete["Email"] = "email";
5228
+ TextInputAutocomplete["IMProtocol"] = "impp";
5229
+ TextInputAutocomplete["Name"] = "name";
5230
+ TextInputAutocomplete["HonorificPrefix"] = "honorific-prefix";
5231
+ TextInputAutocomplete["GivenName"] = "given-name";
5232
+ TextInputAutocomplete["AdditionalName"] = "additional-name";
5233
+ TextInputAutocomplete["FamilyName"] = "family-name";
5234
+ TextInputAutocomplete["HonorificSuffix"] = "honorific-suffix";
5235
+ TextInputAutocomplete["Nickname"] = "nickname";
5236
+ TextInputAutocomplete["Username"] = "username";
5237
+ TextInputAutocomplete["NewPassword"] = "new-password";
5238
+ TextInputAutocomplete["CurrentPassword"] = "current-password";
5239
+ TextInputAutocomplete["OneTimeCode"] = "one-time-code";
5240
+ TextInputAutocomplete["OrganizationTitle"] = "organization-title";
5241
+ TextInputAutocomplete["Organization"] = "organization";
5242
+ TextInputAutocomplete["StreetAddress"] = "street-address";
5243
+ TextInputAutocomplete["AddressLine1"] = "address-line1";
5244
+ TextInputAutocomplete["AddressLine2"] = "address-line2";
5245
+ TextInputAutocomplete["AddressLine3"] = "address-line3";
5246
+ TextInputAutocomplete["AddressLevel4"] = "address-level4";
5247
+ TextInputAutocomplete["AddressLevel3"] = "address-level3";
5248
+ TextInputAutocomplete["AddressLevel2"] = "address-level2";
5249
+ TextInputAutocomplete["AddressLevel1"] = "address-level1";
5250
+ TextInputAutocomplete["Country"] = "country";
5251
+ TextInputAutocomplete["CountryName"] = "country-name";
5252
+ TextInputAutocomplete["PostalCode"] = "postal-code";
5253
+ TextInputAutocomplete["CCName"] = "cc-name";
5254
+ TextInputAutocomplete["CCGivenName"] = "cc-given-name";
5255
+ TextInputAutocomplete["CCAdditionalName"] = "cc-additional-name";
5256
+ TextInputAutocomplete["CCFamilyName"] = "cc-family-name";
5257
+ TextInputAutocomplete["CCNumber"] = "cc-number";
5258
+ TextInputAutocomplete["CCExp"] = "cc-exp";
5259
+ TextInputAutocomplete["CCExpMonth"] = "cc-exp-month";
5260
+ TextInputAutocomplete["CCExpYear"] = "cc-exp-year";
5261
+ TextInputAutocomplete["CCCSC"] = "cc-csc";
5262
+ TextInputAutocomplete["CCType"] = "cc-type";
5263
+ TextInputAutocomplete["TransactionCurrency"] = "transaction-currency";
5264
+ TextInputAutocomplete["TransactionAmount"] = "transaction-amount";
5265
+ TextInputAutocomplete["Language"] = "language";
5266
+ TextInputAutocomplete["Bday"] = "bday";
5267
+ TextInputAutocomplete["BdayDay"] = "bday-day";
5268
+ TextInputAutocomplete["BdayMonth"] = "bday-month";
5269
+ TextInputAutocomplete["BdayYear"] = "bday-year";
5270
+ TextInputAutocomplete["Sex"] = "sex";
5271
+ TextInputAutocomplete["Url"] = "url";
5272
+ TextInputAutocomplete["Photo"] = "photo";
5273
+ })(TextInputAutocomplete || (TextInputAutocomplete = {}));
5274
+ var TimeType;
5275
+ (function (TimeType) {
5276
+ TimeType["Hours"] = "hours";
5277
+ TimeType["Minutes"] = "minutes";
5278
+ TimeType["Seconds"] = "seconds";
5279
+ })(TimeType || (TimeType = {}));
5280
+ var GlobalFilterPosition;
5281
+ (function (GlobalFilterPosition) {
5282
+ GlobalFilterPosition["End"] = "end";
5283
+ GlobalFilterPosition["Start"] = "start";
5284
+ GlobalFilterPosition["Center"] = "center";
5285
+ })(GlobalFilterPosition || (GlobalFilterPosition = {}));
5286
+ var SortingPossibility;
5287
+ (function (SortingPossibility) {
5288
+ SortingPossibility["Asc"] = "asc";
5289
+ SortingPossibility["Desc"] = "desc";
5290
+ })(SortingPossibility || (SortingPossibility = {}));
5291
+ const WEEK_ABBREVIATIONS = {
5292
+ 'fr-FR': 'Sem', // Semaine
5293
+ 'fr-BE': 'Sem', // Semaine
5294
+ 'nl-BE': 'W', // Week
5295
+ 'en-BE': 'W', // Week
5296
+ 'en-US': 'W', // Week
5297
+ 'en-GB': 'W', // Week
5298
+ 'es-ES': 'Sem', // Semana
5299
+ 'de-DE': 'KW', // Kalenderwoche
5300
+ 'it-IT': 'Set', // Settimana
5301
+ 'pt-PT': 'Sem', // Semana
5302
+ 'nl-NL': 'W', // Week
5303
+ 'pl-PL': 'Tyd', // Tydzień
5304
+ 'ru-RU': 'Нед', // Неделя
5305
+ 'ja-JP': '週', // Shū
5306
+ 'zh-CN': '周', // Zhōu
5307
+ 'ko-KR': '주', // Ju
4864
5308
  };
4865
-
4866
- const useFade = (node, { duration } = { duration: 200 }) => {
4867
- const nodeStyler = index(node);
4868
- /**
4869
- * Will animate the opacity to 1, and removes the opacity style attribute once
4870
- * complete.
4871
- */
4872
- function fadeIn() {
4873
- return new Promise(resolve => {
4874
- animate({
4875
- from: { opacity: 0 },
4876
- to: { opacity: 1 },
4877
- duration,
4878
- onUpdate(latest) {
4879
- nodeStyler.set({ opacity: latest.opacity });
4880
- },
4881
- onComplete() {
4882
- resolve();
4883
- node.style.removeProperty('opacity');
4884
- },
4885
- });
4886
- });
4887
- }
4888
- /**
4889
- * Applies the fadeOut styles without animating, useful when initial state
4890
- * is hidden.
4891
- */
4892
- function setFadeOut() {
4893
- node.style.opacity = '0';
4894
- }
4895
- /**
4896
- * Applies the fadeIn styles without animating, useful when initial state
4897
- * is visible.
4898
- */
4899
- function setFadeIn() {
4900
- node.style.opacity = '1';
4901
- }
4902
- /**
4903
- * Will animate the opacity to 0, once complete, the opacity style attribute
4904
- * will stay on the element.
4905
- */
4906
- function fadeOut() {
4907
- return new Promise(resolve => {
4908
- animate({
4909
- from: { opacity: 1 },
4910
- to: { opacity: 0 },
4911
- duration,
4912
- onUpdate(latest) {
4913
- nodeStyler.set({ opacity: latest.opacity });
4914
- },
4915
- onComplete() {
4916
- resolve();
4917
- },
4918
- });
4919
- });
4920
- }
4921
- return {
4922
- fadeIn,
4923
- fadeOut,
4924
- setFadeOut,
4925
- setFadeIn,
4926
- };
5309
+ const CUSTOM_DAY_NAMES = {
5310
+ 'fr-BE': ['Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di'],
5311
+ 'nl-BE': ['Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za', 'Zo'],
5312
+ 'de-DE': ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'],
5313
+ 'en-BE': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
5314
+ 'en-US': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
5315
+ 'en-GB': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
4927
5316
  };
4928
-
4929
- const useGrow = (node, { duration = 200, amount = 0.8, hasFade = true } = {}) => {
4930
- const nodeStyler = index(node);
4931
- /**
4932
- * Will animate the scale and optionally the opacity to make the element grow and fade in,
4933
- * and removes the scale and opacity style attributes once complete.
4934
- */
4935
- function growIn() {
4936
- return new Promise(resolve => {
4937
- animate({
4938
- from: { opacity: hasFade ? 0 : 1, scale: amount },
4939
- to: { opacity: 1, scale: 1 },
4940
- duration,
4941
- onUpdate(latest) {
4942
- const updates = {
4943
- scale: latest.scale,
4944
- };
4945
- if (hasFade) {
4946
- updates['opacity'] = latest.opacity;
4947
- }
4948
- nodeStyler.set(updates);
4949
- },
4950
- onComplete() {
4951
- resolve();
4952
- if (hasFade) {
4953
- node.style.removeProperty('opacity');
4954
- }
4955
- node.style.removeProperty('transform');
4956
- },
4957
- });
4958
- });
4959
- }
4960
- /**
4961
- * Applies the growOut styles without animating, useful when the initial
4962
- * state is hidden.
4963
- */
4964
- function setGrowOut() {
4965
- node.style.transform = `scale(${amount})`;
4966
- if (hasFade) {
4967
- node.style.opacity = '0';
4968
- }
4969
- }
4970
- /**
4971
- * Applies the growIn styles without animating, useful when the initial
4972
- * state is visible.
4973
- */
4974
- function setGrowIn() {
4975
- node.style.transform = `scale(1)`;
4976
- if (hasFade) {
4977
- node.style.opacity = '1';
4978
- }
4979
- }
4980
- /**
4981
- * Will animate the scale and optionally the opacity to make the element shrink and fade out,
4982
- * leaving the scale and opacity styles on the element.
4983
- */
4984
- function growOut() {
4985
- return new Promise(resolve => {
4986
- animate({
4987
- from: { opacity: 1, scale: 1 },
4988
- to: { opacity: hasFade ? 0 : 1, scale: amount },
4989
- duration,
4990
- onUpdate(latest) {
4991
- const updates = {
4992
- scale: latest.scale,
4993
- };
4994
- if (hasFade) {
4995
- updates['opacity'] = latest.opacity;
4996
- }
4997
- nodeStyler.set(updates);
4998
- },
4999
- onComplete() {
5000
- resolve();
5001
- },
5002
- });
5003
- });
5004
- }
5005
- return {
5006
- growIn,
5007
- growOut,
5008
- setGrowOut,
5009
- setGrowIn,
5010
- };
5317
+ const CUSTOM_MONTH_NAMES = {
5318
+ 'fr-BE': [
5319
+ 'Jan',
5320
+ 'Fev',
5321
+ 'Mar',
5322
+ 'Avr',
5323
+ 'Mai',
5324
+ 'Jun',
5325
+ 'Jul',
5326
+ 'Aou',
5327
+ 'Sep',
5328
+ 'Oct',
5329
+ 'Nov',
5330
+ 'Dec',
5331
+ ],
5332
+ 'nl-BE': [
5333
+ 'Jan',
5334
+ 'Feb',
5335
+ 'Maa',
5336
+ 'Apr',
5337
+ 'Mei',
5338
+ 'Jun',
5339
+ 'Jul',
5340
+ 'Aug',
5341
+ 'Sep',
5342
+ 'Okt',
5343
+ 'Nov',
5344
+ 'Dec',
5345
+ ],
5346
+ 'de-DE': [
5347
+ 'Jan',
5348
+ 'Feb',
5349
+ 'Mär',
5350
+ 'Apr',
5351
+ 'Mai',
5352
+ 'Jun',
5353
+ 'Jul',
5354
+ 'Aug',
5355
+ 'Sep',
5356
+ 'Okt',
5357
+ 'Nov',
5358
+ 'Dez',
5359
+ ],
5360
+ 'en-BE': [
5361
+ 'Jan',
5362
+ 'Feb',
5363
+ 'Mar',
5364
+ 'Apr',
5365
+ 'May',
5366
+ 'Jun',
5367
+ 'Jul',
5368
+ 'Aug',
5369
+ 'Sep',
5370
+ 'Oct',
5371
+ 'Nov',
5372
+ 'Dec',
5373
+ ],
5374
+ 'en-US': [
5375
+ 'Jan',
5376
+ 'Feb',
5377
+ 'Mar',
5378
+ 'Apr',
5379
+ 'May',
5380
+ 'Jun',
5381
+ 'Jul',
5382
+ 'Aug',
5383
+ 'Sep',
5384
+ 'Oct',
5385
+ 'Nov',
5386
+ 'Dec',
5387
+ ],
5388
+ 'en-GB': [
5389
+ 'Jan',
5390
+ 'Feb',
5391
+ 'Mar',
5392
+ 'Apr',
5393
+ 'May',
5394
+ 'Jun',
5395
+ 'Jul',
5396
+ 'Aug',
5397
+ 'Sep',
5398
+ 'Oct',
5399
+ 'Nov',
5400
+ 'Dec',
5401
+ ],
5011
5402
  };
5012
5403
 
5013
- /**
5014
- * Will execute a series of animation promises in sequence.
5015
- * This is useful for chaining animations where each step depends on the
5016
- * previous one completing before starting the next.
5017
- *
5018
- * @param {Array<() => Promise<void>>} animations - The array of animation functions.
5019
- * @returns {Object} - An object with a `start` method to begin the timeline.
5020
- *
5021
- * @example
5022
- * const { fadeOut } = useFade(this.ref);
5023
- * const { collapse } = useCollapse(this.ref);
5024
- *
5025
- * timeline(fadeOut, collapse).start();
5026
- */
5027
- const timeline = (...animations) => ({
5028
- start: () => {
5029
- return animations.reduce((promise, animation) => promise.then(() => animation()), Promise.resolve());
5030
- },
5031
- });
5032
-
5033
5404
  const nvAlertCss = "nv-alert{display:flex !important;align-items:flex-start;position:relative;gap:var(--alert-gap-x);border-radius:var(--alert-radius);font-family:\"TT Norms Pro\", \"Montserrat\", sans-serif}nv-alert>nv-icon{margin-left:var(--alert-icon-position-x);margin-top:var(--alert-icon-position-y)}nv-alert.hidden{display:none !important}nv-alert.feedback-information{background-color:var(--components-alert-information-background);border:1px solid var(--components-alert-information-border) !important}nv-alert.feedback-information>.close:focus,nv-alert.feedback-information>.close:focus-within{outline:none}nv-alert.feedback-information>.close:focus-visible,nv-alert.feedback-information>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-information-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-warning{background-color:var(--components-alert-warning-background);border:1px solid var(--components-alert-warning-border) !important}nv-alert.feedback-warning>.close:focus,nv-alert.feedback-warning>.close:focus-within{outline:none}nv-alert.feedback-warning>.close:focus-visible,nv-alert.feedback-warning>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-warning-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-error{background-color:var(--components-alert-error-background);border:1px solid var(--components-alert-error-border) !important}nv-alert.feedback-error>.close:focus,nv-alert.feedback-error>.close:focus-within{outline:none}nv-alert.feedback-error>.close:focus-visible,nv-alert.feedback-error>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-error-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-success{background-color:var(--components-alert-success-background);border:1px solid var(--components-alert-success-border) !important}nv-alert.feedback-success>.close:focus,nv-alert.feedback-success>.close:focus-within{outline:none}nv-alert.feedback-success>.close:focus-visible,nv-alert.feedback-success>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-success-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-neutral{background-color:var(--components-alert-neutral-background);border:1px solid var(--components-alert-neutral-border) !important}nv-alert.feedback-neutral>.close:focus,nv-alert.feedback-neutral>.close:focus-within{outline:none}nv-alert.feedback-neutral>.close:focus-visible,nv-alert.feedback-neutral>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-neutral-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert>nv-icon.icon-information{color:var(--components-alert-information-icon)}nv-alert>nv-icon.icon-warning{color:var(--components-alert-warning-icon)}nv-alert>nv-icon.icon-error{color:var(--components-alert-error-icon)}nv-alert>nv-icon.icon-success{color:var(--components-alert-success-icon)}nv-alert>nv-icon.icon-neutral{color:var(--components-alert-neutral-icon)}nv-alert>.content{display:flex;padding:var(--alert-padding);padding-left:0;flex-direction:column;gap:var(--alert-gap-y)}nv-alert>.content>.heading{color:var(--components-alert-content-title);font-size:var(--alert-heading-font-size);line-height:var(--alert-heading-line-height);font-weight:var(--alert-heading-font-weight)}nv-alert>.content>.message{color:var(--components-alert-content-description);font-size:var(--alert-message-font-size);line-height:var(--alert-message-line-height)}nv-alert>.close{border-radius:var(--alert-radius);position:absolute;display:flex;top:var(--alert-icon-position-y);right:var(--alert-icon-position-x);padding:0;border:none;background:none;cursor:pointer}";
5034
5405
  var NvAlertStyle0 = nvAlertCss;
5035
5406
 
@@ -5187,7 +5558,7 @@ class NvAlert {
5187
5558
  //#region RENDER
5188
5559
  render() {
5189
5560
  var _a;
5190
- return (hAsync(Host, { key: '8c775b0d81d4f6f82421b667925e1ceafead5b2d', role: "alert", class: clsx('root', `feedback-${this.feedback}`) }, hAsync("nv-icon", { key: 'e42f28e360d600c9863fb7f11eab2a1c501bb6ce', name: (_a = this.icon) !== null && _a !== void 0 ? _a : this.getDefaultIcon(), class: `icon-${this.feedback}`, size: "md" }), hAsync("div", { key: '87f7d65ea812afda0ce6ba6ace6e443dd53263da', class: "content" }, this.heading && hAsync("p", { key: '8150784a2663d47410fd6b92ca678f756f086f28', class: "heading" }, this.heading), this.message && hAsync("p", { key: '27f029f2ded81f82e260dc0f2087d46ba5cd7e62', class: "message" }, this.message), hAsync("slot", { key: '3256f379c6d7ea5dab9d284b9229ceffb55e7443' })), this.dismissible && (hAsync("button", { key: '6b7f333b26ab17c2c523a3c9933599176a9152c0', class: "close", type: "button", onClick: this.handleDismiss }, hAsync("nv-icon", { key: 'badcf4153b6add49042b91415e010f662a042e61', name: "x", size: "sm" })))));
5561
+ return (hAsync(Host, { key: 'f0e75ac2c38aced1dcf76cb1d5f03becefbee71d', role: "alert", class: clsx('root', `feedback-${this.feedback}`) }, hAsync("nv-icon", { key: '19f7fcf452d62277ab436acd20c285f44fbaecd4', name: (_a = this.icon) !== null && _a !== void 0 ? _a : this.getDefaultIcon(), class: `icon-${this.feedback}`, size: "md" }), hAsync("div", { key: '8e656ffd0bce63bd33d92b97df21389af265e182', class: "content" }, this.heading && hAsync("p", { key: '0aa928e8ee8605d735f890bc67128563ce3ad379', class: "heading" }, this.heading), this.message && hAsync("p", { key: '690d9928646d25a636b2bb04eb65eee40c402f52', class: "message" }, this.message), hAsync("slot", { key: '86309f093688dbb81ff805f1c9137b200541e905' })), this.dismissible && (hAsync("button", { key: '387695ff1e23a7e289cf58c51042ccc561d451ad', class: "close", type: "button", onClick: this.handleDismiss }, hAsync("nv-icon", { key: '788b99b4c56fc8c936a67ac48d2db37fdcca7631', name: "x", size: "sm" })))));
5191
5562
  }
5192
5563
  get ref() { return getElement(this); }
5193
5564
  static get watchers() { return {
@@ -5271,7 +5642,7 @@ class NvAvatar {
5271
5642
  /****************************************************************************/
5272
5643
  //#region RENDER
5273
5644
  render() {
5274
- return (hAsync(Host, { key: 'aa00ea05df513c899c6ed43fd0307178e98b6145', class: clsx(`avatar-${this.size}`, `avatar-color-${this.color}`), "aria-label": this.alt }, this.src ? (hAsync("img", { src: this.src, alt: this.alt })) : this.initials ? (this.trimInitials(this.initials)) : (hAsync("slot", { name: "icon" }, hAsync("nv-icon", { name: "user" })))));
5645
+ return (hAsync(Host, { key: '127d470eb9121f611f9e18f029ab9ef15a4a49df', class: clsx(`avatar-${this.size}`, `avatar-color-${this.color}`), "aria-label": this.alt }, this.src ? (hAsync("img", { src: this.src, alt: this.alt })) : this.initials ? (this.trimInitials(this.initials)) : (hAsync("slot", { name: "icon" }, hAsync("nv-icon", { name: "user" })))));
5275
5646
  }
5276
5647
  static get style() { return NvAvatarStyle0; }
5277
5648
  static get cmpMeta() { return {
@@ -5427,12 +5798,12 @@ class NvBadge {
5427
5798
  /****************************************************************************/
5428
5799
  //#region RENDER
5429
5800
  render() {
5430
- return (hAsync(Host, { key: 'cde39aa20bdbc6529d317a1f9f0c04f7bf79112e', class: clsx(`badge-${this.color}`, {
5801
+ return (hAsync(Host, { key: '435c5bb1f565c8bd95cca5c6828157c80f60aa39', class: clsx(`badge-${this.color}`, {
5431
5802
  'has-close': this.dismissible,
5432
5803
  'with-gap': this.dismissible || this.label,
5433
5804
  'visually-hidden': this._isHidden,
5434
5805
  'is-icon-only': this.isIconOnly,
5435
- }) }, hAsync("slot", { key: 'cd0ebe919619431f096fe87e6e9412cbed88e467', name: "leading-icon" }, this.leadIcon && hAsync("nv-icon", { key: 'b010613a9ffe4b9ae027e128ba519c43d4211d7d', name: this.leadIcon, size: "sm" })), hAsync("span", { key: '5035aa8d35272f716442731b9493483835e083c6', class: clsx({ 'visually-hidden': this.isIconOnly }) }, this.label, hAsync("slot", { key: '81a475c0081911d8b4606450ecdf085a4f7e2853' })), this.dismissible && (hAsync("button", { key: '402fe040a11cae0974ffa911b81f781230fd0516', onClick: this.handleClose, class: "close", type: "button" }, hAsync("nv-icon", { key: '6f32fa2ae87170963c22bd35cebcf18500426570', name: "x", size: "sm" })))));
5806
+ }) }, hAsync("slot", { key: '271dc833471e026af5088f48227639682e661e97', name: "leading-icon" }, this.leadIcon && hAsync("nv-icon", { key: 'e578eabf4c5a09e61e28c3839b943804acdf88e8', name: this.leadIcon, size: "sm" })), hAsync("span", { key: '24d16a21b2b4499be712f9b747c9ab63c5e6ca0c', class: clsx({ 'visually-hidden': this.isIconOnly }) }, this.label, hAsync("slot", { key: '3e3827620e6ade8be256ce7dd0b8bb949f36f2d5' })), this.dismissible && (hAsync("button", { key: '90ed9ec1b71815554b963b0eafeb5536578700cf', onClick: this.handleClose, class: "close", type: "button" }, hAsync("nv-icon", { key: 'df426e5d88c2bf02e7aa83c179c05db4795f03db', name: "x", size: "sm" })))));
5436
5807
  }
5437
5808
  get ref() { return getElement(this); }
5438
5809
  static get watchers() { return {
@@ -5495,7 +5866,7 @@ class NvBreadcrumb {
5495
5866
  /****************************************************************************/
5496
5867
  //#region RENDER
5497
5868
  render() {
5498
- return (hAsync(Host, { key: '50f858dc015ef2cd51f54a08fa53ec88ee42ac41', role: "listitem", "aria-current": this.current ? 'location' : undefined, class: clsx({ 'visually-hidden': this.current }) }, this.type === 'collapsed' ? (hAsync("button", { ref: el => (this.popoverTrigger = el) }, "...")) : (hAsync("slot", null)), this.tooltip && (hAsync("nv-tooltip", { key: '1df40faa4a483d4abf8895def5db87696cf0d08e', message: this.tooltip, triggerElement: this.popoverTrigger, placement: "top" })), this.type === 'collapsed' && (hAsync("nv-popover", { key: '90174908cdcf1b3e1f8a8a82a01cfa505311c930', triggerMode: "click", groupName: "breadcrumbs", triggerElement: this.popoverTrigger }, hAsync("ul", { key: '72282abd41c80bb8edf0c6b19506be32bf5ed688', slot: "content" }, hAsync("slot", { key: '4b9c325c0d27162c4856796f6a7d7c9b39edf993' })))), hAsync("span", { key: '62316fc8efc09067a0a64d4e90e76d57b329ee81', "data-scope": "separator" }, "/")));
5869
+ return (hAsync(Host, { key: 'b0cfdee987585488bd49734900ee421b081e6df4', role: "listitem", "aria-current": this.current ? 'location' : undefined, class: clsx({ 'visually-hidden': this.current }) }, this.type === 'collapsed' ? (hAsync("button", { ref: el => (this.popoverTrigger = el) }, "...")) : (hAsync("slot", null)), this.tooltip && (hAsync("nv-tooltip", { key: '970d9552c3f81bffd86889fc2ff169f73810507b', message: this.tooltip, triggerElement: this.popoverTrigger, placement: "top" })), this.type === 'collapsed' && (hAsync("nv-popover", { key: '1b14ce172db49aaeb199d6801978f96204ba05a1', triggerMode: "click", groupName: "breadcrumbs", triggerElement: this.popoverTrigger }, hAsync("ul", { key: 'b984309f9290bb4bcfed796200ffaad6e52a2b93', slot: "content" }, hAsync("slot", { key: '189408f75e689b98b4cf9397074dbaefaecece9a' })))), hAsync("span", { key: '62a4bed098620043b69f1e7dcf51db7de035f5fc', "data-scope": "separator" }, "/")));
5499
5870
  }
5500
5871
  get el() { return getElement(this); }
5501
5872
  static get style() { return NvBreadcrumbStyle0; }
@@ -5525,7 +5896,7 @@ class NvBreadcrumbs {
5525
5896
  }
5526
5897
  //#region RENDER
5527
5898
  render() {
5528
- return (hAsync(Host, { key: '19ad2bb41f4254a98a571cbadb50ba5ed7d29f62', role: "navigation", "aria-label": "breadcrumbs" }, hAsync("ol", { key: '11b77f0f11c6b1dc2ce5ab3f4f7b23e8ec728b61' }, hAsync("slot", { key: 'c0c683f93c6874aa5f84fb735d13c1b5eabcd951' }))));
5899
+ return (hAsync(Host, { key: '4337fe5161c0ce444001e1b92221f3adac26e4bf', role: "navigation", "aria-label": "breadcrumbs" }, hAsync("ol", { key: '00d470eadfe879be525a4a4b7ec3368601a0697c' }, hAsync("slot", { key: '2d012f152b49f33f399aa14dfb18a4c39265128c' }))));
5529
5900
  }
5530
5901
  static get style() { return NvBreadcrumbsStyle0; }
5531
5902
  static get cmpMeta() { return {
@@ -5689,7 +6060,7 @@ class NvButton {
5689
6060
  /****************************************************************************/
5690
6061
  //#region RENDER
5691
6062
  render() {
5692
- return (hAsync(Host, { key: 'f8b20f9052d71f93eaf03f98550a7237225cadf2', role: "button", tabindex: "0", onClick: this.handleButtonClick }, this.loading && (hAsync("nv-loader", { key: 'c1cefa72ee24dad9ce16bbfe1f51e6cec6dc7fbc', size: this.size === ButtonSize.Large ? 'sm' : 'xs' })), hAsync("slot", { key: '36a311494e45ebc23b1133923a676d58e87f3800', name: "leading-icon" }), hAsync("slot", { key: 'f6fea826cda9a09f7152f4e30cc6981c89e73ebe' }), hAsync("slot", { key: 'd59c23ff85ea7efc16c69c5adbeb0e91786f1f68', name: "trailing-icon" })));
6063
+ return (hAsync(Host, { key: '54c0b3351f4d8a180058a03e61a562882fb98498', role: "button", tabindex: "0", onClick: this.handleButtonClick }, this.loading && (hAsync("nv-loader", { key: '21315e4af4111bcf47c67e65a9a58a1d7121a43e', size: this.size === ButtonSize.Large ? 'sm' : 'xs' })), hAsync("slot", { key: 'f37683ddaa2c11c5b7accfc99429c930f5a3dcf6', name: "leading-icon" }), hAsync("slot", { key: 'd17ebe7505d9027c6c58f930a8ea9b097561cead' }), hAsync("slot", { key: '2cd6c9756cc7540417041adf5830b734291b2ab5', name: "trailing-icon" })));
5693
6064
  }
5694
6065
  static get formAssociated() { return true; }
5695
6066
  get el() { return getElement(this); }
@@ -5954,26 +6325,6 @@ function parseDate(dateInput, dateFormat) {
5954
6325
  parsed = dayjs(dateInput, dateFormat, true);
5955
6326
  }
5956
6327
  if (!parsed.isValid()) {
5957
- // Check if the date input contains placeholder characters (incomplete input from Inputmask)
5958
- // This specifically targets partial dates being typed with placeholder characters
5959
- const hasPlaceholderChars = typeof dateInput === 'string' &&
5960
- (dateInput.includes('_') ||
5961
- dateInput.includes('-_') ||
5962
- dateInput.includes('/_') ||
5963
- dateInput.includes('._'));
5964
- // Check if it looks like a partial date being typed (starts with valid pattern)
5965
- const looksLikePartialDate = typeof dateInput === 'string' &&
5966
- dateInput.length < dateFormat.length &&
5967
- /^[\d\-/.]*$/.test(dateInput) && // Only contains digits and date separators
5968
- dateInput.length > 0;
5969
- const isIncompleteInput = hasPlaceholderChars || looksLikePartialDate;
5970
- // Only log error if it's not an incomplete input (to avoid spam during typing)
5971
- if (!isIncompleteInput) {
5972
- console.error(`Parsing error:`, {
5973
- dateInput,
5974
- dateFormat: dateFormat,
5975
- });
5976
- }
5977
6328
  return null;
5978
6329
  }
5979
6330
  return parsed.toDate();
@@ -6135,9 +6486,13 @@ const CalendarGrid = props => {
6135
6486
  return (hAsync("div", { class: "days-container" },
6136
6487
  hAsync("div", { class: "days-header" }, dayNames.map((day, index) => (hAsync("div", { class: "day-header", key: `day-header-${index}` }, day)))),
6137
6488
  hAsync("div", { class: "days-grid" }, days.map(day => {
6489
+ if (day.isBlank) {
6490
+ return hAsync("div", { class: "day day-blank" });
6491
+ }
6138
6492
  const date = day.date;
6139
- if (!date)
6140
- return null;
6493
+ if (!date || !day.dayOfMonth) {
6494
+ return hAsync("div", { class: "day-cell is-disabled is-empty" });
6495
+ }
6141
6496
  const isSelected = selectionType === 'single' &&
6142
6497
  isSameDate(date, selectedDate, { isUTCMode });
6143
6498
  const isInRange = isDateInRange(date);
@@ -6148,7 +6503,7 @@ const CalendarGrid = props => {
6148
6503
  }))));
6149
6504
  };
6150
6505
 
6151
- const nvCalendarCss = "nv-calendar{display:block}.datepicker-root{display:flex;justify-content:center;align-items:flex-start;width:auto}.datepicker-container{font-family:system-ui, sans-serif;display:flex;flex-direction:column;align-items:stretch;background:var(--components-calendar-background);border-radius:var(--calendar-radius);padding:var(--calendar-padding);box-shadow:0px var(--shadow-y-axis-md-1) var(--shadow-blur-md-1) var(--shadow-spread-md, 0) var(--shadow-color-opacity-0), 0px var(--shadow-y-axis-md-2) var(--shadow-blur-md-2) var(--shadow-spread-md, 0) var(--shadow-color-opacity-2);border:1px solid var(--components-calendar-border);width:auto;max-width:100%}.datepicker-container-single{max-width:300px}.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-left),.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-container-single:has(.shortcuts-placement-left),.datepicker-container-single:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-wrapper{display:flex;justify-content:center;align-items:flex-start;gap:var(--calendar-gap-x);width:auto;overflow-x:hidden}.datepicker-wrapper::-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)}}";
6506
+ const nvCalendarCss = "nv-calendar{display:block}.datepicker-root{display:flex;justify-content:center;align-items:flex-start;width:auto}.datepicker-container{font-family:system-ui, sans-serif;display:flex;flex-direction:column;align-items:stretch;background:var(--components-calendar-background);border-radius:var(--calendar-radius);padding:var(--calendar-padding);box-shadow:0px var(--shadow-y-axis-md-1) var(--shadow-blur-md-1) var(--shadow-spread-md, 0) var(--shadow-color-opacity-0), 0px var(--shadow-y-axis-md-2) var(--shadow-blur-md-2) var(--shadow-spread-md, 0) var(--shadow-color-opacity-2);border:1px solid var(--components-calendar-border);width:auto;max-width:100%}.datepicker-container-single{max-width:300px}.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-left),.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-container-single:has(.shortcuts-placement-left),.datepicker-container-single:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-wrapper{display:flex;justify-content:center;align-items:flex-start;gap:var(--calendar-gap-x);width:auto;overflow-x:hidden}.datepicker-wrapper::-webkit-scrollbar{width:6px;height:6px}.datepicker-wrapper::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}.datepicker-wrapper::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}.datepicker-wrapper.single{justify-content:center}.calendar-container{display:flex;flex-direction:column;align-items:center;padding:var(--calendar-padding);width:auto;position:relative}.calendar-separator{width:1px;background:var(--components-calendar-border);height:auto;min-height:100%;margin:0 10px}.header{display:flex;justify-content:start;align-items:center;margin-bottom:var(--calendar-header-margin-bottom);width:100%}.header nv-iconbutton{width:var(--calendar-header-button-size);height:var(--calendar-header-button-size)}.nav-buttons{display:flex;gap:var(--spacing-0);margin-left:auto}.nav-left{order:-1}.date-controls{display:flex;gap:var(--spacing-1);align-items:center;min-height:34px;justify-content:center}.datepicker-container-single .date-controls{justify-content:flex-start}.datepicker-container:not(.datepicker-container-single) .date-controls{justify-content:start;flex-grow:1}.date-controls .month-select,.date-controls .year-input{background:transparent !important}.calendar-wrapper:nth-child(n+2) .datepicker-container{margin-left:42px}.calendar-grid{display:grid;grid-template-columns:auto 1fr;column-gap:var(--calendar-weeks-calendar-gap-x);position:relative}.calendar-grid.slide-left{animation:slideLeft 0.3s ease-out}.calendar-grid.slide-right{animation:slideRight 0.3s ease-out}.week-numbers{display:grid;grid-template-rows:var(--calendar-cell-size) repeat(6, var(--calendar-cell-size));background:var(--components-calendar-weeks-background);color:var(--components-calendar-weeks-text);border-radius:var(--calendar-weeks-radius);width:var(--calendar-weeks-size);row-gap:var(--calendar-grid-gap-y)}.week-numbers .clickable{cursor:pointer}.week-numbers .clickable:hover{background-color:var(--components-calendar-weeks-background-hover);color:var(--components-calendar-weeks-text-hover);border-radius:var(--calendar-radius)}.week-header,.week-number{display:grid;place-items:center;font-size:var(--calendar-cell-font-size)}.week-header{font-weight:700;color:var(--components-calendar-weeks-text)}.week-number{color:var(--components-calendar-cell-text)}.days-container{display:grid;grid-template-rows:auto 1fr;row-gap:var(--calendar-grid-gap-y)}.days-header{display:grid;grid-template-columns:repeat(7, var(--calendar-cell-size));height:var(--calendar-cell-size)}.day-header{display:grid;place-items:center;font-size:var(--calendar-cell-font-size);color:var(--components-calendar-cell-text)}.days-grid{display:grid;grid-template-columns:repeat(7, var(--calendar-cell-size));grid-template-rows:repeat(6, var(--calendar-cell-size));animation:fadeIn 0.2s ease-in;row-gap:var(--calendar-grid-gap-y);z-index:0}.day{display:grid;place-items:center;width:var(--calendar-cell-size);height:var(--calendar-cell-size);font-size:var(--calendar-cell-font-size);border-radius:var(--calendar-cell-radius);cursor:pointer;border:none;background:transparent;transition:all 0.2s ease;text-align:center;animation:scaleIn 0.2s ease-out}.day:hover:not(.disabled,.empty,.selected){background:var(--components-calendar-cell-background-hover);color:var(--components-calendar-cell-text-hover)}.day.selected,.day.selected:hover .day.is-today.selected,.day.is-today.selected:hover{background:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected) !important}.day.disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.day.is-empty{pointer-events:none;background-color:transparent;border-color:transparent}.day.day-blank{pointer-events:none;background-color:transparent;border-color:transparent}.day.outside-month{color:var(--components-calendar-cell-text);opacity:var(--opacity-disabled)}.day.outside-month.selected{opacity:1 !important;color:var(--components-calendar-cell-text-selected)}.day.outside-month.in-range{opacity:0.5 !important;background-color:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-in-range)}.day.outside-month.in-range:hover{opacity:0.7 !important;background-color:var(--components-calendar-cell-background-in-range)}.day.in-range{background:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-in-range);border-radius:0;position:relative}.day.range-start,.day.range-start:focus,.day.range-start:hover,.day.range-end,.day.range-end:focus,.day.range-end:hover{background-color:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected) !important}.day.range-start,.day.range-end,.day.range-start.is-today,.day.range-end.is-today{background:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected);position:relative;border-radius:var(--radius-rounded-full)}.day.range-start:hover,.day.range-end:hover,.day.range-start.is-today:hover,.day.range-end.is-today:hover{color:var(--components-calendar-cell-text-today)}.day.range-start:before,.day.range-end:before,.day.range-start.is-today:before,.day.range-end.is-today:before{content:\"\";position:absolute;bottom:0;left:0;right:0;top:0;z-index:-1;background-color:var(--components-calendar-cell-background-in-range);border-radius:var(--radius-rounded-full);width:auto;height:auto}.day.range-start:has(~.range-end):before,.day.range-start:has(+.in-range):before{border-top-right-radius:0;border-bottom-right-radius:0}.day.range-end:before{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.day.outside-month.range-start,.day.outside-month.range-end{opacity:1 !important;background:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected)}.day.is-today{font-weight:700;position:relative;color:var(--components-calendar-cell-text-today)}.day.is-today.range-start,.day.is-today.range-end{color:var(--components-calendar-cell-text-selected)}.day.is-today.range-start:hover,.day.is-today.range-end:hover{color:var(--components-calendar-cell-text-today)}.day.is-today::after{content:\"\";position:absolute;bottom:var(--spacing-1);left:50%;transform:translateX(-50%);width:var(--calendar-cell-dot-size);height:var(--calendar-cell-dot-size);background-color:currentColor;border-radius:50%}.day.is-today.selected::after{color:var(--components-calendar-cell-text-selected)}.day.is-today.selected::after::after{background-color:var(--components-calendar-cell-dot-selected)}.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)}}";
6152
6507
  var NvCalendarStyle0 = nvCalendarCss;
6153
6508
 
6154
6509
  /**
@@ -6210,6 +6565,8 @@ class NvCalendar {
6210
6565
  this.showActions = false;
6211
6566
  /** Cache for parsed disabled dates */
6212
6567
  this.parsedDisabledDates = [];
6568
+ /** Flag to indicate a user click for selection */
6569
+ this.isUserClick = false;
6213
6570
  //#endregion PROPERTIES
6214
6571
  /****************************************************************************/
6215
6572
  //#region STATE
@@ -6245,7 +6602,7 @@ class NvCalendar {
6245
6602
  }
6246
6603
  // Navigate to the date if not prevented
6247
6604
  const preventNavigation = this.el.getAttribute('data-prevent-navigation') === 'true';
6248
- if (!preventNavigation) {
6605
+ if (!preventNavigation && !this.isUserClick) {
6249
6606
  this.currentDate = parsedDate;
6250
6607
  }
6251
6608
  }
@@ -6273,7 +6630,7 @@ class NvCalendar {
6273
6630
  }
6274
6631
  // Navigate to start date if not prevented
6275
6632
  const preventNavigation = this.el.getAttribute('data-prevent-navigation') === 'true';
6276
- if (!preventNavigation) {
6633
+ if (!preventNavigation && !this.isUserClick) {
6277
6634
  this.currentDate = startDate;
6278
6635
  }
6279
6636
  }
@@ -6294,20 +6651,14 @@ class NvCalendar {
6294
6651
  */
6295
6652
  this.changeMonth = (offset) => {
6296
6653
  const newDate = new Date(this.currentDate);
6297
- // Ensure we only move by one month at a time
6654
+ newDate.setUTCDate(1); // Set to the first of the month to avoid day-of-month issues
6298
6655
  newDate.setUTCMonth(newDate.getUTCMonth() + offset);
6299
- // Add the appropriate animation class
6300
6656
  const containers = this.el.querySelectorAll('.calendar-grid');
6301
6657
  containers.forEach(container => {
6302
- // Remove existing animation classes
6303
6658
  container.classList.remove('slide-left', 'slide-right');
6304
- // Add the new animation class
6305
6659
  const animationClass = offset > 0 ? 'slide-left' : 'slide-right';
6306
6660
  container.classList.add(animationClass);
6307
- // Remove the class after the animation
6308
- setTimeout(() => {
6309
- container.classList.remove(animationClass);
6310
- }, 300); // 300ms corresponds to $slide-duration in the SCSS
6661
+ setTimeout(() => container.classList.remove(animationClass), 300);
6311
6662
  });
6312
6663
  this.currentDate = newDate;
6313
6664
  };
@@ -6319,12 +6670,16 @@ class NvCalendar {
6319
6670
  if (this.isDateDisabled(date)) {
6320
6671
  return;
6321
6672
  }
6673
+ this.isUserClick = true;
6322
6674
  if (this.selectionType === 'single') {
6323
6675
  this.handleSingleSelection(date);
6324
6676
  }
6325
6677
  else {
6326
6678
  this.handleRangeSelection(date);
6327
6679
  }
6680
+ requestAnimationFrame(() => {
6681
+ this.isUserClick = false;
6682
+ });
6328
6683
  };
6329
6684
  /**
6330
6685
  * Handles single date selection
@@ -6467,12 +6822,15 @@ class NvCalendar {
6467
6822
  /**
6468
6823
  * Generates the days of the current month
6469
6824
  * @param {number} offset - Month offset (0 by default)
6470
- * @param {number} totalCalendars - Number of calendars to display (1 by default)
6471
6825
  * @returns {Array<{ dayOfMonth: number | null, date: Date | null, isSelected: boolean, isDisabled: boolean }>} Array of formatted days
6472
6826
  */
6473
- this.getDaysInMonth = (offset = 0, totalCalendars = 1) => {
6474
- const year = this.currentDate.getUTCFullYear();
6475
- const month = this.currentDate.getUTCMonth() + offset;
6827
+ this.getDaysInMonth = (offset = 0) => {
6828
+ const baseMonth = this.currentDate.getUTCMonth();
6829
+ // Correctly calculate the year and month for the given offset
6830
+ const targetDate = new Date(this.currentDate);
6831
+ targetDate.setUTCMonth(baseMonth + offset);
6832
+ const year = targetDate.getUTCFullYear();
6833
+ const month = targetDate.getUTCMonth();
6476
6834
  const firstDay = new Date(Date.UTC(year, month, 1));
6477
6835
  const lastDay = new Date(Date.UTC(year, month + 1, 0));
6478
6836
  const days = [];
@@ -6481,18 +6839,18 @@ class NvCalendar {
6481
6839
  const dayOfWeekIndex = firstDay.getUTCDay(); // 0 = Sunday, 1 = Monday, etc.
6482
6840
  // Adjust based on firstDayOfWeek (if week starts on Monday, offset is different)
6483
6841
  const offsetDays = (dayOfWeekIndex - this.firstDayOfWeek + 7) % 7;
6484
- // Add the days of the previous month for the first calendar
6485
- if (offset === 0 && offsetDays > 0) {
6486
- const prevMonthLastDay = new Date(Date.UTC(year, month, 0)).getUTCDate();
6487
- for (let i = offsetDays; i > 0; i--) {
6488
- const date = new Date(Date.UTC(year, month - 1, prevMonthLastDay - i + 1));
6489
- days.push({
6490
- dayOfMonth: date.getUTCDate(),
6491
- date,
6492
- isCurrentMonth: false,
6493
- isDisabled: this.isDateDisabled(date),
6494
- });
6495
- }
6842
+ // Add padding days from the previous month
6843
+ for (let i = 0; i < offsetDays; i++) {
6844
+ const prevMonthDay = new Date(Date.UTC(year, month, 0)).getUTCDate();
6845
+ const date = new Date(Date.UTC(year, month - 1, prevMonthDay - offsetDays + 1 + i));
6846
+ days.push({
6847
+ dayOfMonth: date.getUTCDate(),
6848
+ date,
6849
+ isCurrentMonth: false,
6850
+ isDisabled: this.isDateDisabled(date),
6851
+ // Days from previous month are blank if not the first calendar
6852
+ isBlank: offset > 0,
6853
+ });
6496
6854
  }
6497
6855
  // Add the days of the current month
6498
6856
  for (let i = 1; i <= lastDay.getUTCDate(); i++) {
@@ -6502,11 +6860,12 @@ class NvCalendar {
6502
6860
  date,
6503
6861
  isCurrentMonth: true,
6504
6862
  isDisabled: this.isDateDisabled(date),
6863
+ isBlank: false,
6505
6864
  });
6506
6865
  }
6507
- // Add the days of the next month only for the last calendar
6508
- if (offset === totalCalendars - 1) {
6509
- const nextMonthDaysNeeded = 7 - (days.length % 7 || 7);
6866
+ // Add padding days to fill the last week
6867
+ const nextMonthDaysNeeded = 7 - (days.length % 7 || 7);
6868
+ if (nextMonthDaysNeeded < 7) {
6510
6869
  for (let i = 1; i <= nextMonthDaysNeeded; i++) {
6511
6870
  const date = new Date(Date.UTC(year, month + 1, i));
6512
6871
  days.push({
@@ -6514,6 +6873,8 @@ class NvCalendar {
6514
6873
  date,
6515
6874
  isCurrentMonth: false,
6516
6875
  isDisabled: this.isDateDisabled(date),
6876
+ // Days from next month are blank if not the last calendar
6877
+ isBlank: offset < this.numberOfCalendars - 1,
6517
6878
  });
6518
6879
  }
6519
6880
  }
@@ -6551,12 +6912,25 @@ class NvCalendar {
6551
6912
  this.handleMonthChange = (event, calendarOffset = 0) => {
6552
6913
  const select = event.target;
6553
6914
  const selectedMonth = parseInt(select.value, 10);
6554
- const currentMonth = this.currentDate.getUTCMonth();
6555
- // Calculate the difference considering the calendar offset
6556
- const monthDiff = selectedMonth - ((currentMonth + calendarOffset) % 12);
6557
6915
  const newDate = new Date(this.currentDate);
6558
- newDate.setUTCMonth(newDate.getUTCMonth() + monthDiff);
6559
- this.currentDate = newDate;
6916
+ // Date for the calendar being changed
6917
+ const targetCalendarDate = new Date(newDate.toUTCString());
6918
+ targetCalendarDate.setUTCMonth(targetCalendarDate.getUTCMonth() + calendarOffset);
6919
+ const currentMonth = targetCalendarDate.getUTCMonth();
6920
+ let monthDiff = selectedMonth - currentMonth;
6921
+ // Smartly adjust for year change
6922
+ if (monthDiff > 6) {
6923
+ // e.g. from Jan to Dec, go back 1 month
6924
+ monthDiff -= 12;
6925
+ }
6926
+ if (monthDiff < -6) {
6927
+ // e.g. from Dec to Jan, go forward 1 month
6928
+ monthDiff += 12;
6929
+ }
6930
+ // Apply the diff to the original `currentDate`
6931
+ const finalDate = new Date(this.currentDate);
6932
+ finalDate.setUTCMonth(finalDate.getUTCMonth() + monthDiff);
6933
+ this.currentDate = finalDate;
6560
6934
  };
6561
6935
  /**
6562
6936
  * Handles year change in the numeric entry
@@ -6568,9 +6942,10 @@ class NvCalendar {
6568
6942
  const year = parseInt(input.value, 10);
6569
6943
  if (!isNaN(year) && year >= 1900 && year <= 2100) {
6570
6944
  const newDate = new Date(this.currentDate);
6571
- newDate.setUTCFullYear(year);
6572
6945
  newDate.setUTCMonth(newDate.getUTCMonth() + calendarOffset);
6573
- this.currentDate = newDate;
6946
+ newDate.setUTCFullYear(year);
6947
+ newDate.setUTCMonth(newDate.getUTCMonth() - calendarOffset);
6948
+ this.currentDate = new Date(newDate);
6574
6949
  }
6575
6950
  };
6576
6951
  /**
@@ -6581,7 +6956,7 @@ class NvCalendar {
6581
6956
  this.handleWeekSelection = (weekDays, calendarIndex) => {
6582
6957
  if (this.selectionType !== 'range')
6583
6958
  return;
6584
- const allDays = this.getDaysInMonth(calendarIndex, this.numberOfCalendars);
6959
+ const allDays = this.getDaysInMonth(calendarIndex);
6585
6960
  const weekStart = weekDays[0];
6586
6961
  const weekEnd = weekDays[weekDays.length - 1];
6587
6962
  if (!weekStart || !weekEnd)
@@ -6794,12 +7169,17 @@ class NvCalendar {
6794
7169
  index,
6795
7170
  /** Month offset */
6796
7171
  offset) => {
6797
- const days = this.getDaysInMonth(offset, this.numberOfCalendars);
7172
+ const days = this.getDaysInMonth(offset);
6798
7173
  const weeks = [];
6799
7174
  for (let i = 0; i < days.length; i += 7) {
6800
7175
  weeks.push(days.slice(i, i + 7));
6801
7176
  }
6802
- return (hAsync("div", { class: "calendar-wrapper" }, hAsync("div", { class: "calendar-container", key: `calendar-${index}` }, this.renderHeader(offset, index), hAsync("div", { class: "calendar-grid" }, this.showWeekNumbers && this.renderWeekNumbers(weeks, index), hAsync(CalendarGrid, { days: days, 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 }))), index < this.numberOfCalendars - 1 && (hAsync("div", { class: "calendar-separator" }))));
7177
+ // Add year and month to the key to force re-render on date change
7178
+ const targetDate = new Date(this.currentDate);
7179
+ targetDate.setUTCMonth(targetDate.getUTCMonth() + offset);
7180
+ const year = targetDate.getUTCFullYear();
7181
+ const month = targetDate.getUTCMonth();
7182
+ return (hAsync("div", { class: "calendar-wrapper" }, hAsync("div", { class: "calendar-container", key: `calendar-${index}-${year}-${month}` }, this.renderHeader(offset, index), hAsync("div", { class: "calendar-grid" }, this.showWeekNumbers && this.renderWeekNumbers(weeks, index), hAsync(CalendarGrid, { days: days, 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 }))), index < this.numberOfCalendars - 1 && (hAsync("div", { class: "calendar-separator" }))));
6803
7183
  };
6804
7184
  /**
6805
7185
  * Renders the shortcuts
@@ -6849,7 +7229,7 @@ class NvCalendar {
6849
7229
  this.endDate = endDate;
6850
7230
  // Do not navigate to the start date if data-prevent-navigation attribute is present
6851
7231
  const preventNavigation = this.el.getAttribute('data-prevent-navigation') === 'true';
6852
- if (!preventNavigation) {
7232
+ if (!preventNavigation && !this.isUserClick) {
6853
7233
  this.currentDate = startDate;
6854
7234
  }
6855
7235
  }
@@ -6877,7 +7257,7 @@ class NvCalendar {
6877
7257
  this.selectedDate = parsedDate;
6878
7258
  // Do not navigate to the selected date if data-prevent-navigation attribute is present
6879
7259
  const preventNavigation = this.el.getAttribute('data-prevent-navigation') === 'true';
6880
- if (!preventNavigation) {
7260
+ if (!preventNavigation && !this.isUserClick) {
6881
7261
  this.currentDate = parsedDate;
6882
7262
  }
6883
7263
  }
@@ -6991,6 +7371,27 @@ class NvCalendar {
6991
7371
  throw error; // Re-throw to let the caller handle it
6992
7372
  }
6993
7373
  }
7374
+ /**
7375
+ * Clears the current selection and resets the calendar to its initial state.
7376
+ * This method can be called programmatically to reset the calendar.
7377
+ */
7378
+ async clear() {
7379
+ if (this.selectionType === 'single') {
7380
+ this.selectedDate = null;
7381
+ this.singleValue = '';
7382
+ this.value = '';
7383
+ this.singleDateChange.emit('');
7384
+ this.valueChanged.emit('');
7385
+ }
7386
+ else {
7387
+ this.startDate = null;
7388
+ this.endDate = null;
7389
+ this.rangeValue = { start: '', end: '' };
7390
+ this.value = '';
7391
+ this.rangeDateChange.emit({ start: '', end: '' });
7392
+ this.valueChanged.emit('');
7393
+ }
7394
+ }
6994
7395
  /**
6995
7396
  * Renders the datepicker
6996
7397
  * @returns {JSX.Element} Datepicker
@@ -6998,8 +7399,8 @@ class NvCalendar {
6998
7399
  * @slot default - Child content of the component.
6999
7400
  */
7000
7401
  render() {
7001
- return (hAsync(Host, { key: '43d4f3ab9199e9c5f15e853f15283fa59e4a436d' }, hAsync("div", { key: 'b9956225cb2c16d997aa44266af8f8c8222ea968', class: "datepicker-root" }, hAsync("div", { key: '05b63935bc5ebf500bb52d10688385f994b47fb4', class: `datepicker-container ${this.numberOfCalendars === 1 ? 'datepicker-container-single' : ''}` }, hAsync("div", { key: 'd7af15b9ce051026cf841b3be361b32d8db41fc1', class: `datepicker-wrapper ${this.numberOfCalendars === 1 ? 'single' : ''}` }, this.shortcutsPlacement === 'left' && this.renderShortcuts(), Array.from({ length: this.numberOfCalendars }, (_, index) => this.renderCalendar(index, index)), this.shortcutsPlacement === 'right' && this.renderShortcuts()), ((this.hasShortcuts && this.shortcutsPlacement === 'bottom') ||
7002
- this.hasActions) && (hAsync("div", { key: '1765334bf15564bc9886b210c54bddba64c7042e', class: "datepicker-controls" }, this.shortcutsPlacement === 'bottom' && this.renderShortcuts(), this.hasActions && this.renderActions())))), hAsync("slot", { key: '0ac3446394b8c23b859e5f0065370b95b6fd05d2' })));
7402
+ return (hAsync(Host, { key: '7abeb96312f2bcf26eed3a133ef59d5d3b5b528f' }, hAsync("div", { key: 'e0b2db720853551e3b6445e92b39b418123cb83e', class: "datepicker-root" }, hAsync("div", { key: '1a83c285278c440c4e33ae770a033974e4924830', class: `datepicker-container ${this.numberOfCalendars === 1 ? 'datepicker-container-single' : ''}` }, hAsync("div", { key: '3481fe780a3e1d8f0c1e22ffc82c3b7830721055', class: `datepicker-wrapper ${this.numberOfCalendars === 1 ? 'single' : ''}` }, this.shortcutsPlacement === 'left' && this.renderShortcuts(), Array.from({ length: this.numberOfCalendars }, (_, index) => this.renderCalendar(index, index)), this.shortcutsPlacement === 'right' && this.renderShortcuts()), ((this.hasShortcuts && this.shortcutsPlacement === 'bottom') ||
7403
+ this.hasActions) && (hAsync("div", { key: '3a644bdc993142c181c45173756e362025d4a23a', class: "datepicker-controls" }, this.shortcutsPlacement === 'bottom' && this.renderShortcuts(), this.hasActions && this.renderActions())))), hAsync("slot", { key: '4a4290ccf63429a9a88cfd95a33b4fdc34c8ef74' })));
7003
7404
  }
7004
7405
  get el() { return getElement(this); }
7005
7406
  static get watchers() { return {
@@ -7033,7 +7434,8 @@ class NvCalendar {
7033
7434
  "selectedDate": [32],
7034
7435
  "startDate": [32],
7035
7436
  "endDate": [32],
7036
- "months": [32]
7437
+ "months": [32],
7438
+ "clear": [64]
7037
7439
  },
7038
7440
  "$listeners$": undefined,
7039
7441
  "$lazyBundleId$": "-",
@@ -7069,7 +7471,7 @@ class NvCol {
7069
7471
  /****************************************************************************/
7070
7472
  //#region RENDER
7071
7473
  render() {
7072
- return (hAsync(Host, { key: '8f7112dc8ce8896d9e7265741f06b7449dd508df', class: clsx(this.getColSize()) }, hAsync("slot", { key: '3bedff11752d04db2615a5f26d4d910d95dee76c' })));
7474
+ return (hAsync(Host, { key: 'e258bc3e01d3bd35bf64f14241c70ae044fac132', class: clsx(this.getColSize()) }, hAsync("slot", { key: 'd36caf0fde38eae6cd37b62fb4c02e3de6b7225e' })));
7073
7475
  }
7074
7476
  static get style() { return NvColStyle0; }
7075
7477
  static get cmpMeta() { return {
@@ -11570,7 +11972,7 @@ class NvDatagrid {
11570
11972
  const rows = !this.table || this.table === undefined || this.parsedData.length === 0
11571
11973
  ? []
11572
11974
  : (_c = (_b = this.table) === null || _b === void 0 ? void 0 : _b.getRowModel()) === null || _c === void 0 ? void 0 : _c.rows;
11573
- return (hAsync(Host, { key: '95d3cea67d17f1aab33e7bc054161760e6d6df54' }, hAsync("div", { key: 'b6cbdf841ab4ba64d2ccbf49fc6caf9ef082c7ee', class: "hidden" }, hAsync("slot", { key: '18dde7efeec5c1bc38a044a683910db41f70e22d' })), hAsync("slot", { key: 'd3ffb496e938ee3c91c5a7422357cbee90100d84', name: "before" }), this.enableGlobalFilter && this.table && (hAsync("div", { key: '0ab19e6c1c585d4e77004ec9238dba3baff83614', class: `search-container justify-${this.globalFilterPosition}` }, hAsync("nv-fieldtext", { key: '76722d31da818102347278c7b62a93deaa9c29a1', value: this.globalFilterSearchTerm, onInput: this.handleGlobalFilteringOnInput, placeholder: "Search all columns..." }))), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (hAsync("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (hAsync("div", null, hAsync("table", null, this.parsedColumns.length > 0 && headerGroups.length > 0 && (hAsync("thead", null, this.parsedColumns.length > 0 && headerGroups
11975
+ return (hAsync(Host, { key: 'b149279b85a3138e5be62b2f431a82fe5056b996' }, hAsync("div", { key: '84ffd6a613a7e51539f0bc7e5ddff16a1769af5a', class: "hidden" }, hAsync("slot", { key: 'cabafd2aab117816742972bd4eb6e7122c333ee9' })), hAsync("slot", { key: '17a26ba154ddc2dea82f7576878107ede55a2043', name: "before" }), this.enableGlobalFilter && this.table && (hAsync("div", { key: '822bb793cad6266810571dbb2c087c9e2b68958d', class: `search-container justify-${this.globalFilterPosition}` }, hAsync("nv-fieldtext", { key: 'b9fd668a09b602ded195e4d10b79ae3d06c9a0f6', value: this.globalFilterSearchTerm, onInput: this.handleGlobalFilteringOnInput, placeholder: "Search all columns..." }))), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (hAsync("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (hAsync("div", null, hAsync("table", null, this.parsedColumns.length > 0 && headerGroups.length > 0 && (hAsync("thead", null, this.parsedColumns.length > 0 && headerGroups
11574
11976
  ? headerGroups === null || headerGroups === void 0 ? void 0 : headerGroups.map(headerGroup => (hAsync("tr", { key: headerGroup.id }, headerGroup.headers.map(header => {
11575
11977
  return this.getHeaderCell(header);
11576
11978
  }))))
@@ -11581,7 +11983,7 @@ class NvDatagrid {
11581
11983
  return (hAsync("td", { key: cell.id, "data-row-id": rowId }, this.flexRender(cell.column.columnDef.cell, cell.getContext())));
11582
11984
  })));
11583
11985
  }))), this.table && this.enableRowSelection ? (hAsync("tfoot", null, hAsync("tr", null, hAsync("td", { colSpan: 20 }, this.enableRowSelection && this.table ? (hAsync("div", null, this.rowSelectionState &&
11584
- Object.keys(this.rowSelectionState).length > 0 ? (hAsync("span", null, Object.keys(this.rowSelectionState).length, " of", ' ', ((_e = (_d = this.table.getPreFilteredRowModel()) === null || _d === void 0 ? void 0 : _d.rows) === null || _e === void 0 ? void 0 : _e.length) || 0, ' ', "Total Rows Selected")) : (hAsync("span", null, "No rows selected")))) : null)))) : null), this.getPagination())), hAsync("slot", { key: 'ee4cdbb4683a3da20154fd60580d694d8f78feb8', name: "after" })));
11986
+ Object.keys(this.rowSelectionState).length > 0 ? (hAsync("span", null, Object.keys(this.rowSelectionState).length, " of", ' ', ((_e = (_d = this.table.getPreFilteredRowModel()) === null || _d === void 0 ? void 0 : _d.rows) === null || _e === void 0 ? void 0 : _e.length) || 0, ' ', "Total Rows Selected")) : (hAsync("span", null, "No rows selected")))) : null)))) : null), this.getPagination())), hAsync("slot", { key: 'f509745423857527f2983c5cce1289441cc1f7c7', name: "after" })));
11585
11987
  }
11586
11988
  get el() { return getElement(this); }
11587
11989
  static get watchers() { return {
@@ -11646,7 +12048,7 @@ class NvDatagridcolumn {
11646
12048
  /****************************************************************************/
11647
12049
  //#region RENDER
11648
12050
  render() {
11649
- return (hAsync(Host, { key: 'daa7b24c99857d7467f0a5ce0b69dcbeb42577e7' }, hAsync("slot", { key: '8c2fe1f1b806322cdf1c89b9243dd0d094e565eb', name: "header" }), hAsync("slot", { key: '81ae95ccd66f88c05253fde0ec9e0d20e02e5304', name: "cell" })));
12051
+ return (hAsync(Host, { key: '49c4b8807b26a76cf26e9ac9567a5bca7de0aee7' }, hAsync("slot", { key: '9e6c8b69a92fe4caec10025c941e39f1266b4f93', name: "header" }), hAsync("slot", { key: '992fa9c1d00fe8ed65df5ad2157b78140d2794a0', name: "cell" })));
11650
12052
  }
11651
12053
  static get cmpMeta() { return {
11652
12054
  "$flags$": 4,
@@ -12278,7 +12680,7 @@ function v4(options, buf, offset) {
12278
12680
  return unsafeStringify(rnds);
12279
12681
  }
12280
12682
 
12281
- const nvDialogCss = "dialog{border-radius:var(--radius-rounded-2xl);background:var(--color-level-00-background);min-width:400px;width:fit-content;max-width:clamp(90vw, min(90vw, 960px), 960px);margin:auto;max-height:90vh;overflow:hidden;box-shadow:0px var(--shadow-y-axis-2xl) var(--shadow-blur-2xl) var(--shadow-spread-2xl) var(--shadow-color-opacity-3) var(--shadow-color-opacity-3)}dialog.full{width:90vw}dialog::backdrop{opacity:var(--components-overlay-opacity);background:var(--components-overlay-background)}dialog .content{display:flex;flex-direction:column;align-items:flex-start;height:fit-content;max-height:90vh;overflow:hidden}dialog .content nv-button.close-button{position:absolute;top:var(--dialog-dismissible-position-top);right:var(--dialog-dismissible-position-right);display:flex;padding:var(--button-sm-icon-button-padding);justify-content:flex-end;align-items:flex-start;gap:10px}dialog .content .content-body{overflow:auto;box-sizing:border-box;padding:var(--dialog-body-padding-y) var(--dialog-body-padding-x);scrollbar-gutter:stable both-edges;font-family:\"TT Norms Pro\", sans-serif;font-size:var(--font-size-md);font-style:normal;font-weight:400;line-height:var(--line-height-base);color:var(--color-content-medium-text)}dialog .content .content-body::-webkit-scrollbar{width:6px;height:6px}dialog .content .content-body::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}dialog .content .content-body::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}";
12683
+ const nvDialogCss = "dialog{border-radius:var(--radius-rounded-2xl);background:var(--color-level-00-background);min-width:min(90vw, 400px);width:fit-content;max-width:clamp(90vw, min(90vw, 960px), 960px);margin:auto;max-height:90vh;overflow:hidden;box-shadow:0px var(--shadow-y-axis-2xl) var(--shadow-blur-2xl) var(--shadow-spread-2xl) var(--shadow-color-opacity-3) var(--shadow-color-opacity-3)}dialog.full{width:90vw}dialog::backdrop{opacity:var(--components-overlay-opacity);background:var(--components-overlay-background)}dialog .content{display:flex;flex-direction:column;align-items:flex-start;height:fit-content;max-height:90vh;overflow:hidden}dialog .content nv-button.close-button{position:absolute;top:var(--dialog-dismissible-position-top);right:var(--dialog-dismissible-position-right);display:flex;padding:var(--button-sm-icon-button-padding);justify-content:flex-end;align-items:flex-start;gap:10px}dialog .content .content-body{overflow:auto;box-sizing:border-box;padding:var(--dialog-body-padding-y) var(--dialog-body-padding-x);scrollbar-gutter:stable both-edges;font-family:\"TT Norms Pro\", sans-serif;font-size:var(--font-size-md);font-style:normal;font-weight:400;line-height:var(--line-height-base);color:var(--color-content-medium-text)}dialog .content .content-body::-webkit-scrollbar{width:6px;height:6px}dialog .content .content-body::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}dialog .content .content-body::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}";
12282
12684
  var NvDialogStyle0 = nvDialogCss;
12283
12685
 
12284
12686
  /**
@@ -12313,6 +12715,11 @@ class NvDialog {
12313
12715
  * If true, the dialog takes full width styling.
12314
12716
  */
12315
12717
  this.full = false;
12718
+ /**
12719
+ * Controls whether the dialog should automatically focus the first focusable element when opened.
12720
+ * When disabled, prevents unwanted tooltip triggers on dialog open.
12721
+ */
12722
+ this.autofocus = false;
12316
12723
  /**
12317
12724
  * Handles the close button click.
12318
12725
  */
@@ -12420,15 +12827,23 @@ class NvDialog {
12420
12827
  }
12421
12828
  /**
12422
12829
  * Prevents the body from scrolling when the dialog is open.
12830
+ * Compensates for scrollbar width to prevent layout shift.
12423
12831
  */
12424
12832
  preventScroll() {
12425
- document.body.style.overflow = 'hidden';
12833
+ // Calculate scrollbar width
12834
+ const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;
12835
+ // Apply overflow hidden and padding compensation
12836
+ document.documentElement.style.overflow = 'hidden';
12837
+ document.documentElement.style.paddingRight = `${scrollBarWidth}px`;
12426
12838
  }
12427
12839
  /**
12428
12840
  * Allows the body to scroll when the dialog is closed.
12841
+ * Removes the applied overflow and padding styles.
12429
12842
  */
12430
12843
  allowScroll() {
12431
- document.body.style.overflow = '';
12844
+ // Remove the applied styles
12845
+ document.documentElement.style.removeProperty('overflow');
12846
+ document.documentElement.style.removeProperty('padding-right');
12432
12847
  }
12433
12848
  ensureFormId(formElement) {
12434
12849
  if (!formElement.id) {
@@ -12505,8 +12920,8 @@ class NvDialog {
12505
12920
  if (this.open) {
12506
12921
  this.show();
12507
12922
  }
12508
- // Check if any element already has autofocus before setting it automatically
12509
- if (!this.dialogElement.querySelector('[autofocus]')) {
12923
+ // Only set autofocus if the prop is true and no element already has autofocus
12924
+ if (this.autofocus && !this.dialogElement.querySelector('[autofocus]')) {
12510
12925
  this.setAutofocus();
12511
12926
  }
12512
12927
  this.attachEventListeners();
@@ -12525,7 +12940,7 @@ class NvDialog {
12525
12940
  //#region RENDER
12526
12941
  render() {
12527
12942
  const hasForm = this.form || this.el.querySelector('form');
12528
- return (hAsync(Host, { key: 'c1eb9b79f52028c3ef7a57bad99260a45b678eb5' }, hAsync("slot", { key: '65a624853aa7242dc849a1196c6b5b8c331d426f', name: "trigger" }), hAsync("dialog", { key: '17369b9be014e9136d77f99628b4bc8184d36370', ref: el => (this.dialogElement = el), onClose: this.handleDialogClose, role: "dialog", "aria-modal": "true", "aria-labelledby": "dialog-header", "aria-describedby": "dialog-content", class: clsx({ full: this.full }) }, hAsync("div", { key: '8a17cd8deff162b333e2ac90c487454743d76f3d', class: "content" }, !this.undismissable && (hAsync("nv-button", { key: 'd61a63785ce284ce2039be5c62d6e2bcce2a9b44', class: "close-button", emphasis: "lower", size: "sm", onClick: this.handleCloseButton, "aria-label": "Close dialog" }, hAsync("nv-icon", { key: '5a0adb449785bc684c41d0e35aad08ccb725386a', name: "x", size: "sm" }))), this.headerElement ? (hAsync("slot", { name: "header" })) : (hAsync("nv-dialogheader", { id: "dialog-header" })), hAsync("div", { key: '7c39e52d8fe6fc9ab2fdc2574a0c105d790bbfbe', class: "content-body", id: "dialog-content" }, hAsync("slot", { key: '038d9f3623177af5d996631dd9ae25fec49fd778' })), this.footerElement ? (hAsync("slot", { name: "footer" })) : (hAsync("nv-dialogfooter", { form: this.form, primaryButtonType: hasForm ? ButtonType.Submit : ButtonType.Button, onDialogCanceled: this.handleCancelButton, undismissable: this.undismissable }))))));
12943
+ return (hAsync(Host, { key: '8e4a46dd7749656670d5b8eb167aae2108644375' }, hAsync("slot", { key: '954980e2b451c9f5c0e4f09df76c62c1f04ab01e', name: "trigger" }), hAsync("dialog", { key: '8541ad521ae348d26764756e45c668f7aab5c278', ref: el => (this.dialogElement = el), onClose: this.handleDialogClose, role: "dialog", "aria-modal": "true", "aria-labelledby": "dialog-header", "aria-describedby": "dialog-content", class: clsx({ full: this.full }) }, hAsync("div", { key: 'cd07e78da6f5cb3abd14640b941629bff034ec63', class: "content" }, !this.undismissable && (hAsync("nv-button", { key: '5b610a9d30acd450a273e9dc10a4a29bdf85d58c', class: "close-button", emphasis: "lower", size: "sm", onClick: this.handleCloseButton, "aria-label": "Close dialog" }, hAsync("nv-icon", { key: '4e5841c525221c6c23c699deaeefa7492f57e091', name: "x", size: "sm" }))), this.headerElement ? (hAsync("slot", { name: "header" })) : (hAsync("nv-dialogheader", { id: "dialog-header" })), hAsync("div", { key: 'f09fd0f7013b1c2c912ed7958a8a9cab0016858b', class: "content-body", id: "dialog-content" }, hAsync("slot", { key: 'c3c196c3e8f40acbb29f3fa89d1620e7beaad10c' })), this.footerElement ? (hAsync("slot", { name: "footer" })) : (hAsync("nv-dialogfooter", { form: this.form, primaryButtonType: hasForm ? ButtonType.Submit : ButtonType.Button, onDialogCanceled: this.handleCancelButton, undismissable: this.undismissable }))))));
12529
12944
  }
12530
12945
  get el() { return getElement(this); }
12531
12946
  static get watchers() { return {
@@ -12544,12 +12959,13 @@ class NvDialog {
12544
12959
  "clickOutside": [516, "click-outside"],
12545
12960
  "controlled": [516],
12546
12961
  "full": [516],
12962
+ "autofocus": [516],
12547
12963
  "show": [64],
12548
12964
  "close": [64]
12549
12965
  },
12550
12966
  "$listeners$": [[4, "keydown", "handleKeyDown"], [4, "click", "handleDocumentClick"], [5, "touchstart", "handleDocumentTouch"]],
12551
12967
  "$lazyBundleId$": "-",
12552
- "$attrsToReflect$": [["open", "open"], ["undismissable", "undismissable"], ["clickOutside", "click-outside"], ["controlled", "controlled"], ["full", "full"]]
12968
+ "$attrsToReflect$": [["open", "open"], ["undismissable", "undismissable"], ["clickOutside", "click-outside"], ["controlled", "controlled"], ["full", "full"], ["autofocus", "autofocus"]]
12553
12969
  }; }
12554
12970
  }
12555
12971
 
@@ -12641,7 +13057,7 @@ class NvDialogfooter {
12641
13057
  /****************************************************************************/
12642
13058
  //#region RENDER
12643
13059
  render() {
12644
- return (hAsync(Host, { key: '5756a0cc697188c3fdee2930b1c6ae7922af71cc' }, !this.hasSlot ? (hAsync(Fragment, null, !this.undismissable && (hAsync("nv-button", { onClick: this.handleCancel, emphasis: "low", size: "sm" }, this.cancelLabel)), hAsync("nv-button", { onClick: this.handlePrimary, disabled: this.disabled, danger: this.danger, size: "sm", emphasis: "high", form: this.form, type: this.primaryButtonType }, this.leadingIcon && (hAsync("nv-icon", { slot: "leading-icon", name: this.leadingIcon, size: "sm" })), this.primaryLabel, this.trailingIcon && (hAsync("nv-icon", { slot: "trailing-icon", name: this.trailingIcon, size: "sm" }))))) : (hAsync("slot", null))));
13060
+ return (hAsync(Host, { key: '278895398ddd9fd6aaf6da3d0cbcad12d628f908' }, !this.hasSlot ? (hAsync(Fragment, null, !this.undismissable && (hAsync("nv-button", { onClick: this.handleCancel, emphasis: "low", size: "sm" }, this.cancelLabel)), hAsync("nv-button", { onClick: this.handlePrimary, disabled: this.disabled, danger: this.danger, size: "sm", emphasis: "high", form: this.form, type: this.primaryButtonType }, this.leadingIcon && (hAsync("nv-icon", { slot: "leading-icon", name: this.leadingIcon, size: "sm" })), this.primaryLabel, this.trailingIcon && (hAsync("nv-icon", { slot: "trailing-icon", name: this.trailingIcon, size: "sm" }))))) : (hAsync("slot", null))));
12645
13061
  }
12646
13062
  static get formAssociated() { return true; }
12647
13063
  get el() { return getElement(this); }
@@ -12697,7 +13113,7 @@ class NvDialogheader {
12697
13113
  /****************************************************************************/
12698
13114
  //#region RENDER
12699
13115
  render() {
12700
- return (hAsync(Host, { key: '850e2408cb7a35903be3bc51fbee000fc58f4a76' }, !this.hasSlot ? (hAsync(Fragment, null, hAsync("div", { class: "heading" }, this.heading), hAsync("div", { class: "subheading" }, this.subheading))) : (hAsync("slot", null))));
13116
+ return (hAsync(Host, { key: '2ace10c91041456a36909763b62a2adeede183c7' }, !this.hasSlot ? (hAsync(Fragment, null, hAsync("div", { class: "heading" }, this.heading), hAsync("div", { class: "subheading" }, this.subheading))) : (hAsync("slot", null))));
12701
13117
  }
12702
13118
  get el() { return getElement(this); }
12703
13119
  static get style() { return NvDialogheaderStyle0; }
@@ -12718,6 +13134,8 @@ const nvFieldcheckboxCss = "nv-fieldcheckbox{--nv-fieldcheckbox-border-default:v
12718
13134
  var NvFieldcheckboxStyle0 = nvFieldcheckboxCss;
12719
13135
 
12720
13136
  /**
13137
+ * @slot default - Next to the label and description.
13138
+ * @slot main - Replaces the label and description.
12721
13139
  * @slot label - Content to be placed as the label, will override the label prop.
12722
13140
  * @slot description - Content to be placed as the description, will override the description prop.
12723
13141
  * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.
@@ -12834,13 +13252,13 @@ class NvFieldcheckbox {
12834
13252
  /****************************************************************************/
12835
13253
  //#region RENDER
12836
13254
  render() {
12837
- return (hAsync(Host, { key: '98f9dfdadab534193e7076f929c9820a231fecba', class: clsx(this.labelPlacement === 'before' && 'label-placement-before', this.error && 'error') }, hAsync("div", { key: '5a4d02d46b7c8c8930c24f794452180d58604ffe', class: "input-container" }, hAsync("input", { key: 'f7a4002a5fb9800ed4036638773ac42c49d4ae0f', type: "checkbox", id: this.inputId, name: this.name, autofocus: this.autofocus, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly && !this.required, required: this.required, indeterminate: this.indeterminate, ref: el => {
13255
+ return (hAsync(Host, { key: '46e0688340e1cda23f1fdbefb349fbaa8bb188f2', class: clsx(this.labelPlacement === 'before' && 'label-placement-before', this.error && 'error') }, hAsync("div", { key: '5769e3e61f69b7a9821864aab6338b13b46db4cc', class: "input-container" }, hAsync("input", { key: '0acc841c8583ca1d0781135b95a038703b3be516', type: "checkbox", id: this.inputId, name: this.name, autofocus: this.autofocus, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly && !this.required, required: this.required, indeterminate: this.indeterminate, ref: el => {
12838
13256
  if (el) {
12839
13257
  el.indeterminate = this.indeterminate;
12840
13258
  }
12841
- } }), hAsync("span", { key: '56a2547ecf96ef3f7f28054592471323497cb94f', class: "icon" }, this.checked && !this.indeterminate && (hAsync("slot", { key: 'af4e10bd52b42850c8348e0aed8c90a7e700d64a', name: "checked-icon" }, hAsync("svg", { key: '105847f526c391566cef42fa35d94fbaba0e8984', xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 14 14", fill: "none" }, hAsync("path", { key: '41e221d5f3eab7a4cc88d4ed9454f198d69ec815', d: "M11.6667 3.5L5.25004 9.91667L2.33337 7", "stroke-linecap": "round", "stroke-linejoin": "round" })))), this.indeterminate && (hAsync("slot", { key: '3a1f5ffdc34a1ecdc1bb7f1b5347e1f12f5f690d', name: "indeterminate-icon" }, hAsync("svg", { key: '1b68c27172d5b6b9ba2419d278c0ac0299d7a4b7', class: "indeterminate-svg", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 14 14", fill: "none" }, hAsync("path", { key: '7b2f4e5fe1d961fad290aade639b9807446f34ba', d: "M2.9165 7H11.0832", "stroke-linecap": "round", "stroke-linejoin": "round" })))))), hAsync("div", { key: 'd472d7d8901ff7de37fe370bf5d637fc8ae6069d', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'c8dbda4d6f9cb757476c9a96934599171f6ea7ae', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, hAsync("slot", { key: '3c0ec17aeb856457b63981fd0e21ead69ca3af0f', name: "label" }, this.label))), (this.description ||
12842
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'dff6c3a69496324cabcf25ae7639c98a7d908769', class: "description" }, hAsync("slot", { key: '498c8216c9a0a537f1aa2a542b3caa688b76e55d', name: "description" }, this.description))), (this.errorDescription ||
12843
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '6c584da0ad93e7f0ad62610d760c36d77b1a6fc6', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '93df382e666707cdde3133daae7aa66914215149', name: "error-description" }, this.errorDescription))))));
13259
+ } }), hAsync("span", { key: 'a2bdc7fa16b4cb5e266c1666746f88b462ef6bbc', class: "icon" }, this.checked && !this.indeterminate && (hAsync("slot", { key: 'aa00b58bb2fb2132b4b355568bbecafbf14d9536', name: "checked-icon" }, hAsync("svg", { key: '3d7e92b03fc0ebc0676a5f5a011e0a5f16bb06d9', xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 14 14", fill: "none" }, hAsync("path", { key: '28170c912acd9442af03c889afc10d348657a84b', d: "M11.6667 3.5L5.25004 9.91667L2.33337 7", "stroke-linecap": "round", "stroke-linejoin": "round" })))), this.indeterminate && (hAsync("slot", { key: '790eca10b1eea865ecde7be45c00ae3bbf65132b', name: "indeterminate-icon" }, hAsync("svg", { key: 'a00b2e00c2e2038dd1d67c43aef4f30e5d7a27e7', class: "indeterminate-svg", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 14 14", fill: "none" }, hAsync("path", { key: '6e7eb5f117a0244594392a52f932a91056093168', d: "M2.9165 7H11.0832", "stroke-linecap": "round", "stroke-linejoin": "round" })))))), hAsync("slot", { key: '4c11bb2b8078adc0d7d5f3c52c2525bc836ad075' }), hAsync("div", { key: '323cab79ca6e047df5482d75490ba7288eef5e27', class: "text-container" }, hAsync("slot", { key: '5bc6845d98ee06117b97588e71467ce106e1ab60', name: "main" }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'ce639cb27b8ea446f2a0d73a36c3c9541bde9ab8', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, hAsync("slot", { key: 'cd4b650b2f1b064b65211e90fdddff15b0d6f1f4', name: "label" }, this.label))), (this.description ||
13260
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '7de730e025d5eeae626bbe64125479dc9ebb4332', class: "description" }, hAsync("slot", { key: '2c2f6343838ffff29e1e920ae927d89e9a63f02e', name: "description" }, this.description)))), (this.errorDescription ||
13261
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'b49fd559c3bf84e814da0093f9af64e62510725d', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: 'b15a968201d8ef5ea5e764beac553cf8ca0b87d3', name: "error-description" }, this.errorDescription))))));
12844
13262
  }
12845
13263
  static get formAssociated() { return true; }
12846
13264
  get el() { return getElement(this); }
@@ -16633,10 +17051,12 @@ var inputmask = {exports: {}};
16633
17051
 
16634
17052
  var Inputmask = /*@__PURE__*/getDefaultExportFromCjs(inputmask.exports);
16635
17053
 
16636
- const nvFielddateCss = "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-fielddate{--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-fielddate[fluid]:not([fluid=false]){max-width:unset}nv-fielddate[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-fielddate[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-fielddate[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-fielddate[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fielddate 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-fielddate nv-popover{width:100%;display:block}nv-fielddate nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto}nv-fielddate nv-popover [slot=content]{display:block;width:100%}nv-fielddate nv-popover .datepicker-container{border:none}nv-fielddate .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;display:flex;align-items:center;gap:8px}nv-fielddate .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}nv-fielddate .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddate .input-wrapper .input-container:focus-within,nv-fielddate .input-wrapper .input-container:focus-within:hover,nv-fielddate .input-wrapper .input-container:focus,nv-fielddate .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-fielddate .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-fielddate .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-fielddate .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-fielddate .input-wrapper .input-container input:focus{outline:none}nv-fielddate .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-fielddate .input-wrapper .input-container input[type=password]::-ms-clear,nv-fielddate .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddate .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddate .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddate .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddate .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-fielddate .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)}";
17054
+ const nvFielddateCss = "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-fielddate{--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-fielddate[fluid]:not([fluid=false]){max-width:unset}nv-fielddate[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-fielddate[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-fielddate[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-fielddate[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fielddate 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-fielddate nv-popover{width:100%;display:block}nv-fielddate nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto}nv-fielddate nv-popover [slot=content]{display:block;width:100%}nv-fielddate nv-popover .datepicker-container{border:none}nv-fielddate .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;display:flex;align-items:center;gap:8px}nv-fielddate .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}nv-fielddate .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddate .input-wrapper .input-container:focus-within,nv-fielddate .input-wrapper .input-container:focus-within:hover,nv-fielddate .input-wrapper .input-container:focus,nv-fielddate .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-fielddate .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-fielddate .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-fielddate .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%;font-feature-settings:\"tnum\";font-family:\"TTNorms Pro Mono\", monospace}nv-fielddate .input-wrapper .input-container input:focus{outline:none}nv-fielddate .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-fielddate .input-wrapper .input-container input[type=password]::-ms-clear,nv-fielddate .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddate .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddate .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddate .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddate .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-fielddate .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)}";
16637
17055
  var NvFielddateStyle0 = nvFielddateCss;
16638
17056
 
16639
17057
  /**
17058
+ * A field date component that combines an input with a calendar popover.
17059
+ *
16640
17060
  * @slot default - Child content of the component.
16641
17061
  * @slot leading-input - Content to be placed before the input text, within the input container.
16642
17062
  * @slot before-input - Content to be placed before the input text, outside the input container.
@@ -16760,10 +17180,7 @@ class NvFielddate {
16760
17180
  this.inputElement.focus();
16761
17181
  // Select the first characters based on the date format
16762
17182
  const format = this.dateFormat;
16763
- if (format.startsWith('DD')) {
16764
- this.inputElement.setSelectionRange(0, 2);
16765
- }
16766
- else if (format.startsWith('MM')) {
17183
+ if (format.startsWith('DD') || format.startsWith('MM')) {
16767
17184
  this.inputElement.setSelectionRange(0, 2);
16768
17185
  }
16769
17186
  else if (format.startsWith('YYYY')) {
@@ -16790,13 +17207,66 @@ class NvFielddate {
16790
17207
  }
16791
17208
  };
16792
17209
  /**
16793
- * Toggles the opening/closing of the popover.
17210
+ * Initializes the input mask.
16794
17211
  */
16795
- this.toggleCalendar = () => {
16796
- if (this.readonly || this.disabled) {
17212
+ this.initializeInputMask = () => {
17213
+ this.currentPlaceholder = '';
17214
+ if (this.inputElement.inputmask) {
16797
17215
  return;
16798
17216
  }
16799
- this.open = !this.open;
17217
+ const inputMask = new Inputmask({
17218
+ alias: 'datetime',
17219
+ inputFormat: this.convertToInputmaskFormat(this.dateFormat),
17220
+ placeholder: ' ',
17221
+ prefillYear: false,
17222
+ clearIncomplete: false,
17223
+ showMaskOnHover: false,
17224
+ showMaskOnFocus: false,
17225
+ clearMaskOnLostFocus: false,
17226
+ insertMode: true,
17227
+ rightAlign: false,
17228
+ oncomplete: function (e) {
17229
+ const input = e.target;
17230
+ const event = new CustomEvent('input', { bubbles: true });
17231
+ input.dispatchEvent(event);
17232
+ },
17233
+ });
17234
+ inputMask.mask(this.inputElement);
17235
+ // Set the value after applying the mask
17236
+ if (this.inputElement.name === this.name && this.singleValue) {
17237
+ requestAnimationFrame(() => {
17238
+ this.inputElement.value = this.singleValue;
17239
+ const event = new CustomEvent('input', { bubbles: true });
17240
+ this.inputElement.dispatchEvent(event);
17241
+ });
17242
+ }
17243
+ };
17244
+ /**
17245
+ * Handles keydown events on the input before the mask is initialized.
17246
+ * Initializes the mask on the first number input.
17247
+ * @param {KeyboardEvent} event - The keyboard event.
17248
+ */
17249
+ this.handleKeydownBeforeMask = (event) => {
17250
+ const allowedKeys = [
17251
+ 'Backspace',
17252
+ 'Delete',
17253
+ 'Tab',
17254
+ 'ArrowLeft',
17255
+ 'ArrowRight',
17256
+ 'ArrowUp',
17257
+ 'ArrowDown',
17258
+ 'Home',
17259
+ 'End',
17260
+ ];
17261
+ if (/\d/.test(event.key)) {
17262
+ this.initializeInputMask();
17263
+ this.inputElement.removeEventListener('keydown', this.handleKeydownBeforeMask);
17264
+ }
17265
+ else if (!allowedKeys.includes(event.key) &&
17266
+ !event.metaKey &&
17267
+ !event.ctrlKey) {
17268
+ event.preventDefault();
17269
+ }
16800
17270
  };
16801
17271
  /**
16802
17272
  * Handles focus events on the input element.
@@ -16808,6 +17278,16 @@ class NvFielddate {
16808
17278
  event.target.blur();
16809
17279
  return;
16810
17280
  }
17281
+ if (!this.inputElement.inputmask) {
17282
+ this.inputElement.addEventListener('keydown', this.handleKeydownBeforeMask);
17283
+ }
17284
+ this.open = true;
17285
+ };
17286
+ /**
17287
+ * Handles blur events on the input element.
17288
+ */
17289
+ this.handleBlur = () => {
17290
+ this.inputElement.removeEventListener('keydown', this.handleKeydownBeforeMask);
16811
17291
  };
16812
17292
  /**
16813
17293
  * Prevents the valueChanged event from the calendar from propagating up.
@@ -16830,6 +17310,15 @@ class NvFielddate {
16830
17310
  this.setInputRef = (el) => {
16831
17311
  this.inputElement = el;
16832
17312
  };
17313
+ /**
17314
+ * Toggles the opening/closing of the popover.
17315
+ */
17316
+ this.toggleCalendar = () => {
17317
+ if (this.readonly || this.disabled) {
17318
+ return;
17319
+ }
17320
+ this.open = !this.open;
17321
+ };
16833
17322
  }
16834
17323
  //#endregion PROPERTIES
16835
17324
  /****************************************************************************/
@@ -16840,20 +17329,39 @@ class NvFielddate {
16840
17329
  * @returns {string} Format adapted for Inputmask.
16841
17330
  */
16842
17331
  convertToInputmaskFormat(format) {
16843
- switch (format) {
16844
- case 'DD/MM/YYYY':
16845
- return 'dd/mm/yyyy';
16846
- case 'MM/DD/YYYY':
16847
- return 'mm/dd/yyyy';
16848
- case 'YYYY-MM-DD':
16849
- return 'yyyy-mm-dd';
16850
- case 'DD.MM.YYYY':
16851
- return 'dd.mm.yyyy';
16852
- case 'YYYYMMDD':
16853
- return 'yyyymmdd';
16854
- default:
16855
- return format;
17332
+ // If the format is not specified, use the default format
17333
+ if (!format) {
17334
+ return 'dd/mm/yyyy';
17335
+ }
17336
+ const formatMap = {
17337
+ 'DD/MM/YYYY': 'dd/mm/yyyy',
17338
+ 'MM/DD/YYYY': 'mm/dd/yyyy',
17339
+ 'YYYY-MM-DD': 'yyyy-mm-dd',
17340
+ 'DD.MM.YYYY': 'dd.mm.yyyy',
17341
+ 'YYYYMMDD': 'yyyymmdd',
17342
+ };
17343
+ return formatMap[format] || 'dd/mm/yyyy';
17344
+ }
17345
+ /**
17346
+ * Clears the current selection and resets the field to its initial state.
17347
+ * This method can be called programmatically to reset the field.
17348
+ */
17349
+ async clear() {
17350
+ // Reset internal state
17351
+ this.singleValue = '';
17352
+ this.value = '';
17353
+ // Reset the input element value
17354
+ if (this.inputElement) {
17355
+ this.inputElement.value = '';
17356
+ // Remove the input mask and reinitialize if needed
17357
+ if (this.inputElement.inputmask) {
17358
+ this.inputElement.inputmask.remove();
17359
+ }
16856
17360
  }
17361
+ // Emit events to notify about the change
17362
+ this.valueChanged.emit('');
17363
+ // Close the popover if open
17364
+ this.open = false;
16857
17365
  }
16858
17366
  //#endregion METHODS
16859
17367
  /****************************************************************************/
@@ -16865,19 +17373,17 @@ class NvFielddate {
16865
17373
  if (this.value) {
16866
17374
  this.singleValue = this.value;
16867
17375
  }
17376
+ this.currentPlaceholder = this.placeholder || this.dateFormat;
16868
17377
  }
16869
17378
  componentDidLoad() {
16870
- const inputs = this.el.querySelectorAll('.input-wrapper input');
16871
- inputs.forEach((input) => {
16872
- Inputmask({
16873
- alias: 'datetime',
16874
- inputFormat: this.convertToInputmaskFormat(this.dateFormat),
16875
- placeholder: '_'.repeat(this.dateFormat.length),
16876
- }).mask(input);
16877
- });
17379
+ // Inputmask is now initialized on the first keypress
16878
17380
  }
16879
17381
  disconnectedCallback() {
16880
17382
  document.removeEventListener('click', this.handleClickOutside);
17383
+ if (this.inputElement &&
17384
+ this.inputElement.inputmask) {
17385
+ this.inputElement.inputmask.remove();
17386
+ }
16881
17387
  }
16882
17388
  /**
16883
17389
  * Handles the single date selection event from nv-calendar.
@@ -16922,12 +17428,12 @@ class NvFielddate {
16922
17428
  /****************************************************************************/
16923
17429
  //#region RENDER
16924
17430
  render() {
16925
- return (hAsync(Host, { key: '4af4649cc8fdc95f2f12d1c495549a006c82c742' }, ((this.label && this.label.length > 0) ||
16926
- this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'c4905c94c62c8eb01120b30e3b5c16c2dafec20d', htmlFor: this.inputId }, hAsync("slot", { key: 'b8e952b9a6acb9f136d3461514b82a6767723c3c', name: "label" }, this.label))), hAsync("nv-popover", { key: 'de6620c60eb3db3c6f0f435977f257636be81a80', ref: this.setPopoverRef, id: this.popoverId, triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { key: 'e2189ad3476f3d088c07153bc4c1e63357317ded', slot: "trigger", class: "input-wrapper" }, hAsync("slot", { key: 'a35e545f1379c479734719d8460d5031631f5730', name: "before-input" }), hAsync("div", { key: '01338c24dfff69e019ff6d2344f176effb2dac06', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: 'f6552d188174e77e8f75a9b0554e3ea78c57056d', name: "leading-input" }), hAsync("input", { key: '1b9ad6226166b6bf08afda41f0f6b789fe12dd27', id: this.inputId, ref: this.setInputRef, placeholder: this.placeholder, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: this.required, autofocus: this.autofocus, value: this.singleValue, onInput: this.handleInput, onFocus: this.handleFocus, "data-scope": "date" }), this.error && (hAsync("nv-icon", { key: '0527f051261672a8df205d26dcb253c20b3dfd4b', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: 'ed83a0a0b7a88f392f16bf97f20885261f88665d', name: "circle-check", class: "validation", size: "md" })), hAsync("nv-iconbutton", { key: '6abf3dff6a1bcc0759bea91ab3674d61f4c016c2', class: "toggle-calendar-icon", name: "calendar" //{this.open ? 'chevron-top' : 'chevron-down'}
17431
+ return (hAsync(Host, { key: '45af13d8290479c8ec171c0702d9d695c5047610' }, ((this.label && this.label.length > 0) ||
17432
+ this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'd30403c879f8ca0449d8d25d22bb401ece876758', htmlFor: this.inputId }, hAsync("slot", { key: 'aec155a914cff6b7ea8170dbd1f0d9ee4f35172e', name: "label" }, this.label))), hAsync("nv-popover", { key: '522969535f2b8340f1a9b425c4ea6291fc65cb7e', ref: this.setPopoverRef, id: this.popoverId, triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { key: 'eb1d5ab314fe654b3642afb22d9e3fbc340de969', slot: "trigger", class: "input-wrapper" }, hAsync("slot", { key: '6c28354e914075c36db9bee659d140669a745cab', name: "before-input" }), hAsync("div", { key: '68d3aa4a8afcec4042a8930678cea7046f3e31d7', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: 'ed7ada6913a6735af622369236b5f521f2e96aad', name: "leading-input" }), hAsync("input", { key: '49607b25253233665544e8e85db3814734280fe0', id: this.inputId, ref: this.setInputRef, placeholder: this.currentPlaceholder, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: this.required, autofocus: this.autofocus, value: this.singleValue, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, "data-scope": "date" }), this.error && (hAsync("nv-icon", { key: '35d06926d78f7c653fbf0424b59802fb4489004a', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: '17ca631dca201fb412c921619223c1abc8777d2b', name: "circle-check", class: "validation", size: "md" })), hAsync("nv-iconbutton", { key: 'e08d735115cde3d22a657b986f4a7a5a0347d1af', class: "toggle-calendar-icon", name: "calendar" //{this.open ? 'chevron-top' : 'chevron-down'}
16927
17433
  ,
16928
- size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide calendar' : 'Show calendar', "aria-pressed": this.open.toString(), onClick: this.toggleCalendar, tabIndex: this.disabled ? -1 : 0 })), hAsync("slot", { key: '76d584ac756b228e356a17ad36e4558f9a497ea3', name: "after-input" })), hAsync("div", { key: '4914e6fa5046fb287bedb841f2a0b71f1f86e5a3', slot: "content" }, hAsync("nv-calendar", { key: 'fcfb949ee9c378aac2d7c792ed79fcb3cbf8e987', dateFormat: this.dateFormat, singleValue: this.singleValue, firstDayOfWeek: this.firstDayOfWeek, numberOfCalendars: this.numberOfCalendars, min: this.min, max: this.max, locale: this.locale, shortcutsPlacement: this.shortcutsPlacement, showActions: this.showActions, shortcuts: this.shortcuts, showWeekNumbers: this.showWeekNumbers, disabledDates: this.disabledDates, onValueChanged: this.handleCalendarValueChanged }))), ((this.description && this.description.length > 0) ||
16929
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '52ffcb5f41161b9dc95c0fc18a252b6568817ffb', class: "description" }, hAsync("slot", { key: '91c68f28fe31f5ecfa58d80e5decb018890f18fe', name: "description" }, this.description))), (this.errorDescription ||
16930
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '0c0b8c65f261c2439446dd05014d172e6b829244', hidden: !this.error, class: "error-description" }, this.el.querySelector('[slot="error-description"]') ? (hAsync("slot", { name: "error-description" })) : (this.errorDescription))), hAsync("slot", { key: 'cf9410ad858faf59d7ada7ce70b18aa768e30a65' })));
17434
+ size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide calendar' : 'Show calendar', "aria-pressed": this.open.toString(), onClick: this.toggleCalendar, tabIndex: this.disabled ? -1 : 0 })), hAsync("slot", { key: '75cf593c7b9f2078f055522d6e43440dbe0cc522', name: "after-input" })), hAsync("div", { key: '0df8cd2360a17f5cc786e6b29c67ded308c18104', slot: "content" }, hAsync("nv-calendar", { key: '045a02370ef9dfe31ae3d0b2f702fafb25c7da8f', dateFormat: this.dateFormat, singleValue: this.singleValue, firstDayOfWeek: this.firstDayOfWeek, numberOfCalendars: this.numberOfCalendars, min: this.min, max: this.max, locale: this.locale, shortcutsPlacement: this.shortcutsPlacement, showActions: this.showActions, shortcuts: this.shortcuts, showWeekNumbers: this.showWeekNumbers, disabledDates: this.disabledDates, onValueChanged: this.handleCalendarValueChanged }))), ((this.description && this.description.length > 0) ||
17435
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'ecedbfe16857d9976349f3f3875be13f9ffc4b53', class: "description" }, hAsync("slot", { key: 'e848d9e03e169c9ac57ce2fb7cdb00466f658c61', name: "description" }, this.description))), (this.errorDescription ||
17436
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '028b4d496ba3ee5eefa0107da8a62c771709a3ed', hidden: !this.error, class: "error-description" }, this.el.querySelector('[slot="error-description"]') ? (hAsync("slot", { name: "error-description" })) : (this.errorDescription))), hAsync("slot", { key: 'd3b79a0ae56ec7eb444c28985b1ffcfd8a4e36a1' })));
16931
17437
  }
16932
17438
  get el() { return getElement(this); }
16933
17439
  static get watchers() { return {
@@ -16964,7 +17470,9 @@ class NvFielddate {
16964
17470
  "disabledDates": [16],
16965
17471
  "fluid": [516],
16966
17472
  "singleValue": [32],
16967
- "open": [32]
17473
+ "currentPlaceholder": [32],
17474
+ "open": [32],
17475
+ "clear": [64]
16968
17476
  },
16969
17477
  "$listeners$": [[0, "singleDateChange", "handleSingleDateChange"], [0, "closePopover", "handleClosePopover"], [0, "keydown", "handleKeyDown"]],
16970
17478
  "$lazyBundleId$": "-",
@@ -17233,6 +17741,34 @@ class NvFielddaterange {
17233
17741
  */
17234
17742
  updateCalendarValue() {
17235
17743
  }
17744
+ /**
17745
+ * Clears the current selection and resets the date range field to its initial state.
17746
+ * This method can be called programmatically to reset the field.
17747
+ */
17748
+ async clear() {
17749
+ // Reset internal state
17750
+ this.startValue = '';
17751
+ this.endValue = '';
17752
+ this.value = '';
17753
+ // Reset both input elements
17754
+ const inputs = this.el.querySelectorAll('.input-wrapper input');
17755
+ inputs.forEach((input) => {
17756
+ input.value = '';
17757
+ // Remove input mask if exists
17758
+ if (input.inputmask) {
17759
+ input.inputmask.remove();
17760
+ }
17761
+ });
17762
+ // Emit events to notify about the change
17763
+ this.valueChanged.emit('');
17764
+ this.dateRangeChange.emit({ start: '', end: '' });
17765
+ // Close the popover if open
17766
+ this.open = false;
17767
+ // Clear the calendar if it exists
17768
+ if (this.calendarElement) {
17769
+ this.calendarElement.clear();
17770
+ }
17771
+ }
17236
17772
  //#endregion METHODS
17237
17773
  /****************************************************************************/
17238
17774
  //#region LIFECYCLE
@@ -17421,10 +17957,10 @@ class NvFielddaterange {
17421
17957
  /****************************************************************************/
17422
17958
  //#region RENDER
17423
17959
  render() {
17424
- return (hAsync(Host, { key: '465121dc54f228353f5e0416de7a6889881244d7' }, ((this.label && this.label.length > 0) ||
17425
- this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '7d49a2c5114d5d15f7e078e2fbbfe67c3200c329', htmlFor: this.startInputId }, hAsync("slot", { key: 'b16d2baa2541b4f08bf038fb67749ee4b79b6567', name: "label" }, this.label))), hAsync("nv-popover", { key: 'e5df35c897f8241d068eb54f94428a1a72f8cd34', ref: el => (this.popoverElement = el), id: this.popoverId, triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { key: 'ea9cc60c12b0d141e9848781fd37152e8987901d', slot: "trigger", class: "input-wrapper" }, hAsync("slot", { key: 'ee646b624af619c46a5d27b6ccab9de3adafd2b8', name: "before-input" }), hAsync("div", { key: 'bb1d2196576e40957ebf8a1a3b35c49432eb8202', class: "input-container" }, hAsync("slot", { key: '29f3b2a8d06e1e2adfcfbafb80d5770d404df7b9', name: "leading-input" }), hAsync("div", { key: '5703a0d07400177971b0204803389e2550c1a774', class: "range-inputs" }, hAsync("input", { key: '9005cfb0e5d7b21ce934ac4938e81a5abac57c64', id: this.startInputId, type: "text", placeholder: this.startPlaceholder, name: this.startName, disabled: this.disabled, readOnly: this.readonly, required: this.required, autofocus: this.autofocus, value: this.startValue, onInput: this.handleStartInput, onFocus: this.handleFocus, "data-scope": "date-range" }), hAsync("div", { key: '039104ceddbd8c19577245e95108abd444a17db4', class: "range-separator" }), hAsync("input", { key: 'b55cbf8f5abc64384d050504c41a144d01ec3487', id: this.endInputId, type: "text", placeholder: this.endPlaceholder, name: this.endName, disabled: this.disabled, readOnly: this.readonly, required: this.required, value: this.endValue, onInput: this.handleEndInput, onFocus: this.handleFocus, "data-scope": "date-range" })), this.error && (hAsync("nv-icon", { key: '85deffe8b8fe96fd4aab624ef787c52dd04040f9', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: '35ed30cb3394f9162883c73406b627aea05ffa64', name: "circle-check", class: "validation", size: "md" })), hAsync("nv-iconbutton", { key: '6013c80bacd8183f0d2e2f2bfb176b937070fff2', class: "toggle-calendar-icon", name: "calendar", size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide calendar' : 'Show calendar', "aria-pressed": this.open.toString(), onClick: this.toggleCalendar, tabIndex: this.disabled ? -1 : 0 })), hAsync("slot", { key: 'd5a00d1a0e49a5a03a6f63dfbdba8073f32543c5', name: "after-input" })), hAsync("div", { key: 'b42689f8f233417af0f84eb8fbc41b60e28fcf4e', slot: "content" }, hAsync("nv-calendar", { key: '5d581f7c5a6fab5933580733a8b22acddb62bc95', ref: el => (this.calendarElement = el), dateFormat: this.dateFormat, value: this.value, firstDayOfWeek: this.firstDayOfWeek, numberOfCalendars: this.numberOfCalendars, min: this.min, max: this.max, locale: this.locale, shortcutsPlacement: this.shortcutsPlacement, showActions: this.showActions, shortcuts: this.shortcuts, showWeekNumbers: this.showWeekNumbers, disabledDates: this.disabledDates, selectionType: "range", "data-prevent-navigation": "true" }))), ((this.description && this.description.length > 0) ||
17426
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '3774d441e866da984a96282978066a4f4ad31f4f', class: "description" }, hAsync("slot", { key: '3c7166a46a880fb5d09f6070ac3f502e69935fc2', name: "description" }, this.description))), (this.errorDescription ||
17427
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'b9dad22b19e4b5d2bca41cf361490a7626f025ea', hidden: !this.error, class: "error-description" }, this.el.querySelector('[slot="error-description"]') ? (hAsync("slot", { name: "error-description" })) : (this.errorDescription))), hAsync("slot", { key: '79a3f83127cbcc61f63efe42c8bffa607af33360' })));
17960
+ return (hAsync(Host, { key: 'e2d5ce2c864dbc8ba478a1ce1353aa8e51e13ec1' }, ((this.label && this.label.length > 0) ||
17961
+ this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '6e171200b763f8e7a907d305475bb7d4faa27979', htmlFor: this.startInputId }, hAsync("slot", { key: '9f8b94e7491d4cd73e17f41ba290acda1fe73f3b', name: "label" }, this.label))), hAsync("nv-popover", { key: '9bf5539eeceadb960c3438ddc05fe986f800d33b', ref: el => (this.popoverElement = el), id: this.popoverId, triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { key: '58f7625d27c2266429ddc4f653d61efefed5bc66', slot: "trigger", class: "input-wrapper" }, hAsync("slot", { key: '206064a5c1be74082202849b96e46a8207377098', name: "before-input" }), hAsync("div", { key: 'bd66fb676a5a749e17ede3f75c8a4404586c0c63', class: "input-container" }, hAsync("slot", { key: '7c78a037f5189143ea32ca843e1c27b52d8f2d4b', name: "leading-input" }), hAsync("div", { key: 'fbe89bc4502eca56e05029d65a45684484921433', class: "range-inputs" }, hAsync("input", { key: '397e572e87dd7f01977008b44847469cabd06494', id: this.startInputId, type: "text", placeholder: this.startPlaceholder, name: this.startName, disabled: this.disabled, readOnly: this.readonly, required: this.required, autofocus: this.autofocus, value: this.startValue, onInput: this.handleStartInput, onFocus: this.handleFocus, "data-scope": "date-range" }), hAsync("div", { key: '378d2755919eafc9f4edd8ee451c01e49dc70cfe', class: "range-separator" }), hAsync("input", { key: '2de8dcda3161667a543c04ae529a0f617f6598c6', id: this.endInputId, type: "text", placeholder: this.endPlaceholder, name: this.endName, disabled: this.disabled, readOnly: this.readonly, required: this.required, value: this.endValue, onInput: this.handleEndInput, onFocus: this.handleFocus, "data-scope": "date-range" })), this.error && (hAsync("nv-icon", { key: '5880e135764a7f9f87d92a4f7a84eba9f56b7d46', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: '5d764360d3dbfc306962cb9e4b67d7d3c4bc09ed', name: "circle-check", class: "validation", size: "md" })), hAsync("nv-iconbutton", { key: '1b09d57633f8e115cc3d92a82d35399c53be265b', class: "toggle-calendar-icon", name: "calendar", size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide calendar' : 'Show calendar', "aria-pressed": this.open.toString(), onClick: this.toggleCalendar, tabIndex: this.disabled ? -1 : 0 })), hAsync("slot", { key: '7ec41f782b0343eeb427bee4d7f2ab1b549978b3', name: "after-input" })), hAsync("div", { key: 'ea714333fe596af8a10c6f8a1e6c72935f8e5c91', slot: "content" }, hAsync("nv-calendar", { key: 'ffaa70c5bc76c422396b233d3dc46fdeb2d06b10', ref: el => (this.calendarElement = el), dateFormat: this.dateFormat, value: this.value, firstDayOfWeek: this.firstDayOfWeek, numberOfCalendars: this.numberOfCalendars, min: this.min, max: this.max, locale: this.locale, shortcutsPlacement: this.shortcutsPlacement, showActions: this.showActions, shortcuts: this.shortcuts, showWeekNumbers: this.showWeekNumbers, disabledDates: this.disabledDates, selectionType: "range", "data-prevent-navigation": "true" }))), ((this.description && this.description.length > 0) ||
17962
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '7f4aa271c896234907d95cfe7660e1c41ab8ddf7', class: "description" }, hAsync("slot", { key: 'fce93594f7af4d054f886ce3caf48cfffb6809aa', name: "description" }, this.description))), (this.errorDescription ||
17963
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'f5a19b5d4c90c4319dc4eb09d1067f202ab229c9', hidden: !this.error, class: "error-description" }, this.el.querySelector('[slot="error-description"]') ? (hAsync("slot", { name: "error-description" })) : (this.errorDescription))), hAsync("slot", { key: '1d494e4c192b38c26e8cfe5482516382cacc13c6' })));
17428
17964
  }
17429
17965
  get el() { return getElement(this); }
17430
17966
  static get watchers() { return {
@@ -17466,7 +18002,8 @@ class NvFielddaterange {
17466
18002
  "fluid": [516],
17467
18003
  "startValue": [32],
17468
18004
  "endValue": [32],
17469
- "open": [32]
18005
+ "open": [32],
18006
+ "clear": [64]
17470
18007
  },
17471
18008
  "$listeners$": [[0, "rangeDateChange", "handleRangeDateChange"], [0, "valueChanged", "handleCalendarValueChanged"], [0, "closePopover", "handleClosePopover"], [0, "applyDateRange", "handleApplyDateRange"], [0, "singleDateChange", "handleDateReset"], [0, "rangeDateChange", "handleDateReset"], [0, "keydown", "handleKeyDown"]],
17472
18009
  "$lazyBundleId$": "-",
@@ -17835,9 +18372,9 @@ class NvFielddropdown {
17835
18372
  //#region RENDER
17836
18373
  render() {
17837
18374
  var _a;
17838
- return (hAsync(Host, { key: '2c45eb94cd36a430780ccb2b6ca75c6d0cf14749', role: "combobox", "aria-expanded": this.open.toString(), "aria-haspopup": "listbox", "aria-label": this.label }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'b5f4fd518e20ffa8bd1f83595279c26fd4627597', htmlFor: this.inputId }, hAsync("slot", { key: '6ba6870341c7ef37698adde01f5402db65d73898', name: "label" }, this.label))), hAsync("nv-popover", { key: '0d3833a9402ff6b3d3ef6592aaeba5030aeca661', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { key: '5ae8307fbd0a0798f6103ae68fcfd7ac0c0cd5d6', class: "input-wrapper", slot: "trigger" }, hAsync("slot", { key: '1844cb0ffe38189f2a39734a6c78487b0ef5533f', name: "before-input" }), hAsync("div", { key: '9c3fc1eeddb22c0945606b28b08c6e4e59d4f745', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: '0a4eaf84a3b3eb71edec875122e45705d3f0cbbf', name: "leading-input" }), this.filterable || this.disabled || this.readonly ? (hAsync("input", { "data-scope": "focusable", id: this.inputId, type: "search", ref: e => (this.inputElement = e), autofocus: this.autofocus, autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.getSelectedLabel(), required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput, onFocus: this.handleInputFocus, onClick: this.handleInputFocus, onKeyDown: this.handleKeyDown })) : (hAsync("p", { "data-scope": "focusable", id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClick, tabIndex: this.disabled ? -1 : 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocus }, this.getSelectedLabel() || this.value || this.placeholder)), this.filterable && this.filterText && this.open && (hAsync("nv-iconbutton", { key: '9cbbd6c7c8ab6bda015d5302d4a7ef2eb5d730f2', name: "x", size: "md", emphasis: "lower", class: "clear-button", onClick: this.clearFilter, "aria-label": "Clear input" })), this.error && (hAsync("nv-icon", { key: 'd1bbfb1f515a79ea7fd74c93041d832c55203939', name: "alert-circle", class: "validation", size: "md" })), hAsync("nv-iconbutton", { key: '8665b644210fb6fc3a763d955a81ac7202647965', "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopover, tabIndex: this.disabled ? -1 : 0 })), hAsync("slot", { key: '9a49e69a4d59c2cd5181b533b2fe9ec34e30d9f4', name: "after-input" })), hAsync("div", { key: '8aafef9ac1c4bfd2d41fc7fe784927cdf4800423', slot: "content", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) > 0 ? (hAsync("ul", null, this.options.map(option => (hAsync("nv-fielddropdownitem", { label: option.label, value: option.value, disabled: option.disabled, selected: option.value === this.value }))))) : (hAsync("slot", { name: "content" })))), (this.description ||
17839
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '8cc32aa4d2e7b7137d07505c70d522bf14241c59', class: "description" }, hAsync("slot", { key: '096efa39ff2ea02e76ed5a90459889d33321e99a', name: "description" }, this.description))), (this.errorDescription ||
17840
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'bae304b963c369cf0417339cf1d3d5b45f5914ed', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: 'b17b69ee8240bf72bcee918ba8210df995434917', name: "error-description" }, this.errorDescription)))));
18375
+ return (hAsync(Host, { key: '39025d9624475fa633e36c3ba44feed7f34f42e1', role: "combobox", "aria-expanded": this.open.toString(), "aria-haspopup": "listbox", "aria-label": this.label }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '961a78a526a81e7fb0a219f1e46d6126880993db', htmlFor: this.inputId }, hAsync("slot", { key: '9d6b7d6fa1cc80393f0e85819a437e8193bdf672', name: "label" }, this.label))), hAsync("nv-popover", { key: '564fcf5fa2f263874b737fdf1bcc5a9aa9bc21d3', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { key: '415ed0ee145ce9253380baed4a026afa018c59b7', class: "input-wrapper", slot: "trigger" }, hAsync("slot", { key: 'ddbece3ddfa0bcd16a8587c4ee693f8c44b69356', name: "before-input" }), hAsync("div", { key: '546fbc02d2051f47aea2a369ae479658c3c1d8dc', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: '95bb574eeb43285f73fd731581d1426095f7538a', name: "leading-input" }), this.filterable || this.disabled || this.readonly ? (hAsync("input", { "data-scope": "focusable", id: this.inputId, type: "search", ref: e => (this.inputElement = e), autofocus: this.autofocus, autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.getSelectedLabel(), required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput, onFocus: this.handleInputFocus, onClick: this.handleInputFocus, onKeyDown: this.handleKeyDown })) : (hAsync("p", { "data-scope": "focusable", id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClick, tabIndex: this.disabled ? -1 : 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocus }, this.getSelectedLabel() || this.value || this.placeholder)), this.filterable && this.filterText && this.open && (hAsync("nv-iconbutton", { key: '669c6b2e93a85789e747e3f384dfd7b940cda9a7', name: "x", size: "md", emphasis: "lower", class: "clear-button", onClick: this.clearFilter, "aria-label": "Clear input" })), this.error && (hAsync("nv-icon", { key: '65f91d73115249ded5344e78f18ed7c37f8265b9', name: "alert-circle", class: "validation", size: "md" })), hAsync("nv-iconbutton", { key: '05644dcc1dfdbb0aa625b49484fab299b5b58894', "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopover, tabIndex: this.disabled ? -1 : 0 })), hAsync("slot", { key: 'd84d1936300877825adc9c61cc7d9ba773b92194', name: "after-input" })), hAsync("div", { key: 'de5e6bb6f3b40fed39cf90d046e8361dcb2a4d8f', slot: "content", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) > 0 ? (hAsync("ul", null, this.options.map(option => (hAsync("nv-fielddropdownitem", { label: option.label, value: option.value, disabled: option.disabled, selected: option.value === this.value }))))) : (hAsync("slot", { name: "content" })))), (this.description ||
18376
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '648b7fb9b7dade22d763f9afc468a4b48115a1a0', class: "description" }, hAsync("slot", { key: 'b560fb630a56c3d42363c1b8f0fa494faefd00d6', name: "description" }, this.description))), (this.errorDescription ||
18377
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'bcb614617bb1183f33d20d51304d8ff17d9c7381', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '5345cb01032f24b0527bf22d77116a77bb439969', name: "error-description" }, this.errorDescription)))));
17841
18378
  }
17842
18379
  static get formAssociated() { return true; }
17843
18380
  get el() { return getElement(this); }
@@ -17939,7 +18476,7 @@ class NvFielddropdownitem {
17939
18476
  /****************************************************************************/
17940
18477
  //#region RENDER
17941
18478
  render() {
17942
- return (hAsync(Host, { key: '42ae50d3837bdc7dcf986114255efde54f021ad2', role: "menuitem", tabindex: '-1', onClick: this.handleSelected }, hAsync("slot", { key: '8e61bac8b76d9ababa2999099f47cc906a6112c2' }), !this.composed && (hAsync("div", { key: 'b53f386a10225a6ae5dd97978f038feb86c52513', class: "text-wrapper" }, hAsync("span", { key: '69431d91f69f96ead8f31754f66943a1772034fc', "data-scope": "text" }, this.label))), this.selected && (hAsync("nv-icon", { key: '71d79762ef64c0414661878dca7760217edf04d1', name: "check", "aria-hidden": "true", "data-scope": "selected" }))));
18479
+ return (hAsync(Host, { key: '486800fafd79ee133a459521e84b06c538f5585e', role: "menuitem", tabindex: '-1', onClick: this.handleSelected }, hAsync("slot", { key: 'fd9c5c5aad8c585735ddbcaf0cb98ab26d89ec69' }), !this.composed && (hAsync("div", { key: '145a6e02b2338f47235c3616a1af63bf5b0ea465', class: "text-wrapper" }, hAsync("span", { key: 'bc013eaf7fe0d56c1d609c3fce846f25ef2cfbb3', "data-scope": "text" }, this.label))), this.selected && (hAsync("nv-icon", { key: 'f7f6a4b2b27753d54eb92a77364329a29a3d6f08', name: "check", "aria-hidden": "true", "data-scope": "selected" }))));
17943
18480
  }
17944
18481
  get el() { return getElement(this); }
17945
18482
  static get style() { return NvFielddropdownitemStyle0; }
@@ -17961,6 +18498,12 @@ class NvFielddropdownitem {
17961
18498
  const nvFielddropdownitemcheckCss = "nv-fielddropdownitemcheck{cursor:pointer;display:flex;padding:var(--list-dropdown-item-padding-y) var(--list-dropdown-item-padding-x);border-radius:var(--list-dropdown-item-radius)}nv-fielddropdownitemcheck slot-fb,nv-fielddropdownitemcheck span{all:unset}nv-fielddropdownitemcheck:hover{background-color:var(--components-list-dropdown-item-background-hover)}";
17962
18499
  var NvFielddropdownitemcheckStyle0 = nvFielddropdownitemcheckCss;
17963
18500
 
18501
+ /**
18502
+ * @slot default - Next to the label and description.
18503
+ * @slot main - Replaces the label and description.
18504
+ * @slot label - Content to be placed as the label, will override the label prop.
18505
+ * @slot description - Content to be placed as the description, will override the description prop.
18506
+ */
17964
18507
  class NvFielddropdownitemcheck {
17965
18508
  constructor(hostRef) {
17966
18509
  registerInstance(this, hostRef);
@@ -18004,12 +18547,12 @@ class NvFielddropdownitemcheck {
18004
18547
  };
18005
18548
  }
18006
18549
  render() {
18007
- return (hAsync(Host, { key: '7230c0b30bfd5be59114e025748708663f2f16ec', onClick: this.handleClick }, hAsync("nv-fieldcheckbox", { key: 'f71e4add967442b397b6c36dff1653a2bd0ad91d', checked: this.checked, name: this.label || this.value, label: this.label || this.value, "label-placement": "after", description: this.description, disabled: this.disabled, tabindex: "-1", role: "option", onCheckedChanged: this.onFieldcheckboxChanged })));
18550
+ return (hAsync(Host, { key: '82abe79dd061f60e380f033027f799121769f89e', onClick: this.handleClick }, hAsync("nv-fieldcheckbox", { key: '505181c56faacb09e55c428d91287d96e1c3b72a', checked: this.checked, name: this.label || this.value, label: this.label || this.value, "label-placement": "after", description: this.description, disabled: this.disabled, tabindex: "-1", role: "option", onCheckedChanged: this.onFieldcheckboxChanged }, hAsync("slot", { key: '95a53b7d4ec735fd3256505b57e2a497b475f511' }), hAsync("slot", { key: '137d5e2b3046417bbc90c0bd2dd10b846d1dfd53', name: "main" }), hAsync("slot", { key: '47d4a73e401186b7bc7a18aaad82018f0ccc1e2f', name: "label" }), hAsync("slot", { key: 'ff5c752d386c282635a97ad2bcb8858571aff7e9', name: "description" }))));
18008
18551
  }
18009
18552
  get el() { return getElement(this); }
18010
18553
  static get style() { return NvFielddropdownitemcheckStyle0; }
18011
18554
  static get cmpMeta() { return {
18012
- "$flags$": 0,
18555
+ "$flags$": 4,
18013
18556
  "$tagName$": "nv-fielddropdownitemcheck",
18014
18557
  "$members$": {
18015
18558
  "checked": [1540],
@@ -18041,7 +18584,7 @@ class NvFieldmultiselect {
18041
18584
  constructor(hostRef) {
18042
18585
  registerInstance(this, hostRef);
18043
18586
  this.valueChanged = createEvent(this, "valueChanged", 7);
18044
- this.multiselectChange = createEvent(this, "multiselectChange", 7);
18587
+ this.filterTextChanged = createEvent(this, "filterTextChanged", 7);
18045
18588
  /****************************************************************************/
18046
18589
  //#region PROPERTIES
18047
18590
  /**
@@ -18058,6 +18601,11 @@ class NvFieldmultiselect {
18058
18601
  * always type in fresh data.
18059
18602
  */
18060
18603
  this.autocomplete = 'off';
18604
+ /**
18605
+ * Specifies the selected values of the multiselect field.
18606
+ * This is the canonical value for the component and is used for form submission.
18607
+ */
18608
+ this.value = [];
18061
18609
  /**
18062
18610
  * Marks the input field as required.
18063
18611
  */
@@ -18111,17 +18659,13 @@ class NvFieldmultiselect {
18111
18659
  * Text for the badge showing the number of selected items.
18112
18660
  */
18113
18661
  this.badgeLabel = '';
18114
- //#endregion PROPERTIES
18115
- /****************************************************************************/
18116
- //#region STATE
18117
18662
  /**
18118
18663
  * The text entered by the user for filtering multiselect items.
18119
18664
  */
18120
18665
  this.filterText = '';
18121
- /**
18122
- * List of selected values in the multiselect.
18123
- */
18124
- this.selectedValues = [];
18666
+ //#endregion PROPERTIES
18667
+ /****************************************************************************/
18668
+ //#region STATE
18125
18669
  /**
18126
18670
  * Sorted options for display.
18127
18671
  */
@@ -18131,8 +18675,8 @@ class NvFieldmultiselect {
18131
18675
  * Handle badge close for options mode.
18132
18676
  */
18133
18677
  this.handleBadgeCloseOptions = () => {
18134
- this.selectedValues = [];
18135
- this.multiselectChange.emit(this.selectedValues);
18678
+ this.value = [];
18679
+ this.valueChanged.emit(this.value);
18136
18680
  // Uncheck all elements
18137
18681
  const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
18138
18682
  items.forEach(item => {
@@ -18148,8 +18692,8 @@ class NvFieldmultiselect {
18148
18692
  * Handle badge close for slots mode.
18149
18693
  */
18150
18694
  this.handleBadgeCloseSlots = () => {
18151
- this.selectedValues = [];
18152
- this.multiselectChange.emit(this.selectedValues);
18695
+ this.value = [];
18696
+ this.valueChanged.emit(this.value);
18153
18697
  // Uncheck all elements
18154
18698
  const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
18155
18699
  items.forEach(item => {
@@ -18167,12 +18711,19 @@ class NvFieldmultiselect {
18167
18711
  if (this.isHandlingEscape) {
18168
18712
  return;
18169
18713
  }
18170
- this.filterText = '';
18171
- // Reset filter if needed
18714
+ // Reset filter if needed, but preserve the filter text
18172
18715
  if (this.filterable) {
18173
18716
  this.resetFilter();
18174
18717
  }
18175
18718
  };
18719
+ /**
18720
+ * Clear the filter text
18721
+ */
18722
+ this.clearFilterText = () => {
18723
+ this.filterText = '';
18724
+ this.filterTextChanged.emit('');
18725
+ this.resetFilter();
18726
+ };
18176
18727
  /**
18177
18728
  * Handle input blur for options mode.
18178
18729
  */
@@ -18181,10 +18732,9 @@ class NvFieldmultiselect {
18181
18732
  if (!this.el.contains(document.activeElement)) {
18182
18733
  // Close the popover without affecting the divider
18183
18734
  this.open = false;
18184
- // Reset filter if needed
18735
+ // Clear filter text when focus is lost
18185
18736
  if (this.filterable) {
18186
- this.filterText = '';
18187
- this.resetFilter();
18737
+ this.clearFilterText();
18188
18738
  }
18189
18739
  }
18190
18740
  }, 150);
@@ -18242,15 +18792,14 @@ class NvFieldmultiselect {
18242
18792
  return;
18243
18793
  }
18244
18794
  const input = event.target;
18245
- this.value = input.value;
18246
- this.valueChanged.emit(this.value);
18795
+ this.filterText = input.value;
18796
+ this.filterTextChanged.emit(this.filterText);
18247
18797
  // Clear any existing timer
18248
18798
  if (this.debounceTimer) {
18249
18799
  window.clearTimeout(this.debounceTimer);
18250
18800
  }
18251
18801
  // Set a new timer for filtering
18252
18802
  this.debounceTimer = window.setTimeout(() => {
18253
- this.filterText = input.value.toLowerCase();
18254
18803
  this.filterItemsOption();
18255
18804
  }, this.debounceDelay);
18256
18805
  };
@@ -18264,15 +18813,14 @@ class NvFieldmultiselect {
18264
18813
  if (this.disabled || this.readonly)
18265
18814
  return;
18266
18815
  const input = event.target;
18267
- this.value = input.value;
18268
- this.valueChanged.emit(this.value);
18816
+ this.filterText = input.value;
18817
+ this.filterTextChanged.emit(this.filterText);
18269
18818
  // Clear any existing timer
18270
18819
  if (this.debounceTimer) {
18271
18820
  window.clearTimeout(this.debounceTimer);
18272
18821
  }
18273
18822
  // Set a new timer for filtering
18274
18823
  this.debounceTimer = window.setTimeout(() => {
18275
- this.filterText = input.value.toLowerCase();
18276
18824
  this.filterSlotsItems();
18277
18825
  }, this.debounceDelay);
18278
18826
  };
@@ -18302,10 +18850,9 @@ class NvFieldmultiselect {
18302
18850
  if (!this.el.contains(document.activeElement)) {
18303
18851
  // Close the popover without affecting the divider
18304
18852
  this.open = false;
18305
- // Reset filter if needed
18853
+ // Clear filter text when focus is lost
18306
18854
  if (this.filterable) {
18307
- this.filterText = '';
18308
- this.resetFilter();
18855
+ this.clearFilterText();
18309
18856
  }
18310
18857
  }
18311
18858
  }, 150);
@@ -18336,14 +18883,14 @@ class NvFieldmultiselect {
18336
18883
  * @returns {any} The JSX for options mode
18337
18884
  */
18338
18885
  this.renderOptionsMode = () => {
18339
- return (hAsync(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { htmlFor: this.inputId }, hAsync("slot", { name: "label" }, this.label))), hAsync("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { class: "input-wrapper-multiselect", slot: "trigger" }, hAsync("slot", { name: "before-input" }), hAsync("div", { class: "input-container-multiselect" }, hAsync("slot", { name: "leading-input" }), this.selectedValues.length > 0 && (hAsync("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.selectedValues.length > 0, label: `${this.selectedValues.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.selectedValues.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseOptions })), this.filterable || this.disabled || this.readonly ? (hAsync("input", { type: "text", id: this.inputId, ref: e => (this.inputElement = e), autofocus: this.autofocus, autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.value, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputOptions, onFocus: this.handleInputFocusOptions, onBlur: this.handleInputBlurOptions, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (hAsync("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickOptions, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusOptions, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, hAsync("span", null, this.value || this.placeholder))), this.error && (hAsync("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), hAsync("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverOptions })), hAsync("slot", { name: "after-input" })), hAsync("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, hAsync("ul", { role: "content" }, this.options.map(option => (hAsync("nv-fielddropdownitemcheck", { label: option.label, description: option.description, value: option.value, checked: this.selectedValues.includes(option.value), disabled: option.disabled }))), hAsync("hr", { class: "multiselect-divider", style: { display: 'none' } })))), this.renderDescriptions()));
18886
+ return (hAsync(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { htmlFor: this.inputId }, hAsync("slot", { name: "label" }, this.label))), hAsync("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { class: "input-wrapper-multiselect", slot: "trigger" }, hAsync("slot", { name: "before-input" }), hAsync("div", { class: "input-container-multiselect" }, hAsync("slot", { name: "leading-input" }), this.value.length > 0 && (hAsync("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.value.length > 0, label: `${this.value.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.value.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseOptions })), this.filterable || this.disabled || this.readonly ? (hAsync("input", { type: "text", id: this.inputId, ref: e => (this.inputElement = e), autofocus: this.autofocus, autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.filterText, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputOptions, onFocus: this.handleInputFocusOptions, onBlur: this.handleInputBlurOptions, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (hAsync("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickOptions, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusOptions, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, hAsync("span", null, this.placeholder))), this.error && (hAsync("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (hAsync("nv-iconbutton", { "data-scope": "clear-filter", name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), hAsync("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverOptions })), hAsync("slot", { name: "after-input" })), hAsync("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, hAsync("ul", { role: "content" }, this.options.map(option => (hAsync("nv-fielddropdownitemcheck", { label: option.label, description: option.description, value: option.value, checked: this.value.includes(option.value), disabled: option.disabled }))), hAsync("hr", { class: "multiselect-divider", style: { display: 'none' } })))), this.renderDescriptions()));
18340
18887
  };
18341
18888
  /**
18342
18889
  * Renders the component in slots mode
18343
18890
  * @returns {any} The JSX for slots mode
18344
18891
  */
18345
18892
  this.renderSlotsMode = () => {
18346
- return (hAsync(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { htmlFor: this.inputId }, hAsync("slot", { name: "label" }, this.label))), hAsync("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { class: "input-wrapper-multiselect", slot: "trigger" }, hAsync("slot", { name: "before-input" }), hAsync("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, hAsync("slot", { name: "leading-input" }), this.selectedValues.length > 0 && (hAsync("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.selectedValues.length > 0, label: `${this.selectedValues.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.selectedValues.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseSlots })), this.filterable || this.disabled || this.readonly ? (hAsync("input", { id: this.inputId, ref: e => (this.inputElement = e), autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.value, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputSlots, onFocus: this.handleInputFocusSlots, onBlur: this.handleInputBlurSlots, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (hAsync("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickSlots, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusSlots, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, hAsync("span", null, this.value || this.placeholder))), this.error && (hAsync("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), hAsync("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverSlots })), hAsync("slot", { name: "after-input" })), hAsync("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, hAsync("slot", { name: "content" }))), this.renderDescriptions()));
18893
+ return (hAsync(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { htmlFor: this.inputId }, hAsync("slot", { name: "label" }, this.label))), hAsync("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { class: "input-wrapper-multiselect", slot: "trigger" }, hAsync("slot", { name: "before-input" }), hAsync("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, hAsync("slot", { name: "leading-input" }), this.value.length > 0 && (hAsync("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.value.length > 0, label: `${this.value.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.value.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseSlots })), this.filterable || this.disabled || this.readonly ? (hAsync("input", { id: this.inputId, ref: e => (this.inputElement = e), autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.filterText, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputSlots, onFocus: this.handleInputFocusSlots, onBlur: this.handleInputBlurSlots, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (hAsync("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickSlots, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusSlots, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, hAsync("span", null, this.placeholder))), this.error && (hAsync("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (hAsync("nv-iconbutton", { name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), hAsync("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverSlots })), hAsync("slot", { name: "after-input" })), hAsync("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, hAsync("slot", { name: "content" }))), this.renderDescriptions()));
18347
18894
  };
18348
18895
  }
18349
18896
  //#endregion EVENTS
@@ -18352,7 +18899,7 @@ class NvFieldmultiselect {
18352
18899
  handleOptionsChange(newValue) {
18353
18900
  if (!newValue)
18354
18901
  return;
18355
- this.selectedValues = newValue
18902
+ this.value = newValue
18356
18903
  .filter(option => option.checked)
18357
18904
  .map(option => option.value);
18358
18905
  this.reorderOptionsContent();
@@ -18361,8 +18908,10 @@ class NvFieldmultiselect {
18361
18908
  * Emitted when the value changes.
18362
18909
  */
18363
18910
  watchValueHandler() {
18364
- // Handle value change and update the corresponding multiselect item if it exists
18365
- this.setInitialSelection();
18911
+ // Synchronize child components when value changes programmatically
18912
+ if (this.el && this.el.isConnected) {
18913
+ this.syncChildComponents();
18914
+ }
18366
18915
  }
18367
18916
  //#endregion WATCHERS
18368
18917
  /****************************************************************************/
@@ -18402,22 +18951,23 @@ class NvFieldmultiselect {
18402
18951
  }
18403
18952
  const { value, checked } = event.detail;
18404
18953
  if (value !== undefined && value !== null) {
18405
- const newSelectedValues = [...this.selectedValues];
18406
- const valueIndex = newSelectedValues.indexOf(value);
18954
+ const newValue = [...this.value];
18955
+ const valueIndex = newValue.indexOf(value);
18407
18956
  if (checked && valueIndex === -1) {
18408
- newSelectedValues.push(value);
18957
+ newValue.push(value);
18409
18958
  }
18410
18959
  else if (!checked && valueIndex > -1) {
18411
- newSelectedValues.splice(valueIndex, 1);
18960
+ newValue.splice(valueIndex, 1);
18412
18961
  }
18413
- // Update the state and emit the event only if the selection has changed
18414
- if (JSON.stringify(this.selectedValues) !==
18415
- JSON.stringify(newSelectedValues)) {
18416
- this.selectedValues = newSelectedValues;
18417
- // Use requestAnimationFrame to ensure the state is updated before emitting the event
18418
- requestAnimationFrame(() => {
18419
- this.multiselectChange.emit(this.selectedValues);
18420
- });
18962
+ // Always update the state and emit the event when an item is checked/unchecked
18963
+ this.value = newValue;
18964
+ this.valueChanged.emit(this.value);
18965
+ // Update the checked state of all items to ensure consistency
18966
+ this.syncChildComponents();
18967
+ // Preserve the filter text in the input
18968
+ if (this.filterable && this.inputElement) {
18969
+ // Keep the current filter text in the input
18970
+ this.inputElement.value = this.filterText;
18421
18971
  }
18422
18972
  }
18423
18973
  else {
@@ -18456,12 +19006,10 @@ class NvFieldmultiselect {
18456
19006
  }
18457
19007
  // Specific initialization for slots mode
18458
19008
  if (!this.options) {
19009
+ // Use a microtask to ensure DOM is ready
18459
19010
  Promise.resolve().then(() => {
18460
- const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
18461
- // Initialize selectedValues with checked items
18462
- this.selectedValues = items
18463
- .filter(item => item.hasAttribute('checked'))
18464
- .map(item => item.getAttribute('value') || '');
19011
+ // Synchronize child components
19012
+ this.syncChildComponents();
18465
19013
  // Force a reorder after initialization
18466
19014
  requestAnimationFrame(() => {
18467
19015
  this.reorderSlotContent();
@@ -18472,13 +19020,8 @@ class NvFieldmultiselect {
18472
19020
  if (this.options) {
18473
19021
  this.sortedOptions = [...((_a = this.options) !== null && _a !== void 0 ? _a : [])];
18474
19022
  }
18475
- // Apply filtering if the multiselect is filterable and there is a value
18476
- if (this.filterable && this.value) {
18477
- this.filterText = String(this.value).toLocaleLowerCase();
18478
- this.filterItems();
18479
- }
18480
- else {
18481
- // Reset visibility state of all dropdown items
19023
+ // Reset filter if needed
19024
+ if (!this.filterText) {
18482
19025
  this.resetFilter();
18483
19026
  }
18484
19027
  }
@@ -18489,6 +19032,8 @@ class NvFieldmultiselect {
18489
19032
  if (this.options) {
18490
19033
  this.handleOptionsChange(this.options);
18491
19034
  }
19035
+ // Final synchronization of child components after everything is loaded
19036
+ this.syncChildComponents();
18492
19037
  }
18493
19038
  /**
18494
19039
  * Unsubscribe from click outside event.
@@ -18506,38 +19051,6 @@ class NvFieldmultiselect {
18506
19051
  async getFilterText() {
18507
19052
  return this.filterText;
18508
19053
  }
18509
- /**
18510
- * Set the initial selection based on the current value and update the inputElement value.
18511
- */
18512
- setInitialSelection() {
18513
- var _a;
18514
- const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitem'));
18515
- const selectedItem = items.find(item => {
18516
- var _a;
18517
- return item.getAttribute('label') === this.value ||
18518
- item.getAttribute('value') === this.value ||
18519
- ((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === this.value;
18520
- });
18521
- // Remove 'selected' from all items first to reset the state
18522
- items.forEach(item => {
18523
- item.removeAttribute('selected');
18524
- item.classList.remove('selected');
18525
- });
18526
- if (selectedItem) {
18527
- // Add the `selected` attribute and `selected` class for visual styling
18528
- selectedItem.setAttribute('selected', 'true');
18529
- selectedItem.classList.add('selected');
18530
- // Update the value and inputElement value to reflect the pre-selected item
18531
- this.value =
18532
- selectedItem.getAttribute('label') ||
18533
- selectedItem.getAttribute('value') ||
18534
- ((_a = selectedItem.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
18535
- '';
18536
- if (this.inputElement) {
18537
- this.inputElement.value = this.value;
18538
- }
18539
- }
18540
- }
18541
19054
  /**
18542
19055
  * Reset the filter and make all items visible.
18543
19056
  */
@@ -18554,8 +19067,8 @@ class NvFieldmultiselect {
18554
19067
  if (emptyMessage)
18555
19068
  emptyMessage.remove();
18556
19069
  // Reorder with divider if needed
18557
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
18558
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
19070
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
19071
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
18559
19072
  if (selectedItems.length > 0) {
18560
19073
  this.manageDivider(ul, selectedItems, unselectedItems);
18561
19074
  }
@@ -18566,7 +19079,7 @@ class NvFieldmultiselect {
18566
19079
  * @returns {string[]} The selected values.
18567
19080
  */
18568
19081
  async getSelectedValues() {
18569
- return this.selectedValues;
19082
+ return this.value;
18570
19083
  }
18571
19084
  /**
18572
19085
  * Reorder the content of the slot.
@@ -18588,8 +19101,8 @@ class NvFieldmultiselect {
18588
19101
  return;
18589
19102
  }
18590
19103
  // Separate checked vs unchecked
18591
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
18592
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
19104
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
19105
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
18593
19106
  // Reinsert CHECKED items FIRST
18594
19107
  // appendChild() moves the element without recreating it
18595
19108
  // this is not trigger a re-rendering of the component in the platforms
@@ -18615,8 +19128,8 @@ class NvFieldmultiselect {
18615
19128
  if (!ul)
18616
19129
  return;
18617
19130
  const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
18618
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
18619
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
19131
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
19132
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
18620
19133
  // Reorder the elements
18621
19134
  selectedItems.forEach(item => ul.appendChild(item));
18622
19135
  unselectedItems.forEach(item => ul.appendChild(item));
@@ -18652,8 +19165,8 @@ class NvFieldmultiselect {
18652
19165
  }
18653
19166
  // Reorder with divider
18654
19167
  const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
18655
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
18656
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
19168
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
19169
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
18657
19170
  this.manageDivider(ul, selectedItems, unselectedItems);
18658
19171
  return;
18659
19172
  }
@@ -18674,8 +19187,8 @@ class NvFieldmultiselect {
18674
19187
  });
18675
19188
  // Manage the divider with the visible items
18676
19189
  const visibleItems = items.filter(item => item.style.display !== 'none');
18677
- const visibleSelected = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
18678
- const visibleUnselected = visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
19190
+ const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
19191
+ const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
18679
19192
  this.manageDivider(ul, visibleSelected, visibleUnselected);
18680
19193
  }
18681
19194
  else {
@@ -18733,8 +19246,8 @@ class NvFieldmultiselect {
18733
19246
  });
18734
19247
  // Manage the divider with the visible items
18735
19248
  const visibleItems = items.filter(item => item.style.display !== 'none');
18736
- const visibleSelected = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
18737
- const visibleUnselected = visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
19249
+ const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
19250
+ const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
18738
19251
  this.manageDivider(ul, visibleSelected, visibleUnselected);
18739
19252
  // Add or remove the empty message based on the case
18740
19253
  if (!hasVisibleItems) {
@@ -18782,8 +19295,8 @@ class NvFieldmultiselect {
18782
19295
  });
18783
19296
  // Get visible items after filtering
18784
19297
  const visibleItems = items.filter(item => item.style.display !== 'none');
18785
- const visibleSelectedItems = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
18786
- this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || '')));
19298
+ const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
19299
+ this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
18787
19300
  // Add empty message if no items match the filter
18788
19301
  if (!hasVisibleItems) {
18789
19302
  const emptyMessage = document.createElement('li');
@@ -18980,6 +19493,29 @@ class NvFieldmultiselect {
18980
19493
  divider.style.display = 'none';
18981
19494
  }
18982
19495
  }
19496
+ /**
19497
+ * Synchronizes the checked state of all child nv-fielddropdownitemcheck components
19498
+ * with the current selectedValues state.
19499
+ */
19500
+ syncChildComponents() {
19501
+ // Early return if element is not ready
19502
+ if (!this.el || !this.el.isConnected) {
19503
+ return;
19504
+ }
19505
+ const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
19506
+ items.forEach(item => {
19507
+ // Get the effective value: use explicit value if present, otherwise use label
19508
+ const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
19509
+ if (this.value.includes(itemValue)) {
19510
+ item.setAttribute('checked', '');
19511
+ item.checked = true;
19512
+ }
19513
+ else {
19514
+ item.removeAttribute('checked');
19515
+ item.checked = false;
19516
+ }
19517
+ });
19518
+ }
18983
19519
  /**
18984
19520
  * Renders description and error description sections
18985
19521
  * @returns {any} The JSX for descriptions
@@ -19015,7 +19551,7 @@ class NvFieldmultiselect {
19015
19551
  "description": [513],
19016
19552
  "placeholder": [513],
19017
19553
  "autocomplete": [513],
19018
- "value": [1537],
19554
+ "value": [1040],
19019
19555
  "required": [516],
19020
19556
  "readonly": [516],
19021
19557
  "disabled": [516],
@@ -19030,8 +19566,7 @@ class NvFieldmultiselect {
19030
19566
  "autofocus": [516],
19031
19567
  "fluid": [516],
19032
19568
  "badgeLabel": [513, "badge-label"],
19033
- "filterText": [32],
19034
- "selectedValues": [32],
19569
+ "filterText": [1537, "filter-text"],
19035
19570
  "sortedOptions": [32],
19036
19571
  "isHandlingEscape": [32],
19037
19572
  "getFilterText": [64],
@@ -19040,7 +19575,7 @@ class NvFieldmultiselect {
19040
19575
  },
19041
19576
  "$listeners$": [[0, "openChanged", "handleOpenChanged"], [0, "itemChecked", "handleItemChecked"], [0, "slotchange", "handleSlotChange"], [0, "keydown", "handleKeyDown"]],
19042
19577
  "$lazyBundleId$": "-",
19043
- "$attrsToReflect$": [["inputId", "input-id"], ["name", "name"], ["label", "label"], ["description", "description"], ["placeholder", "placeholder"], ["autocomplete", "autocomplete"], ["value", "value"], ["required", "required"], ["readonly", "readonly"], ["disabled", "disabled"], ["error", "error"], ["errorDescription", "error-description"], ["maxHeight", "max-height"], ["open", "open"], ["emptyResult", "empty-result"], ["filterable", "filterable"], ["debounceDelay", "debounce-delay"], ["autofocus", "autofocus"], ["fluid", "fluid"], ["badgeLabel", "badge-label"]]
19578
+ "$attrsToReflect$": [["inputId", "input-id"], ["name", "name"], ["label", "label"], ["description", "description"], ["placeholder", "placeholder"], ["autocomplete", "autocomplete"], ["required", "required"], ["readonly", "readonly"], ["disabled", "disabled"], ["error", "error"], ["errorDescription", "error-description"], ["maxHeight", "max-height"], ["open", "open"], ["emptyResult", "empty-result"], ["filterable", "filterable"], ["debounceDelay", "debounce-delay"], ["autofocus", "autofocus"], ["fluid", "fluid"], ["badgeLabel", "badge-label"], ["filterText", "filter-text"]]
19044
19579
  }; }
19045
19580
  }
19046
19581
 
@@ -19164,9 +19699,9 @@ class NvFieldnumber {
19164
19699
  /****************************************************************************/
19165
19700
  //#region RENDER
19166
19701
  render() {
19167
- return (hAsync(Host, { key: '9a2922f5aaa1047da249563152b08f5fd74f0340' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'f7f0f9a711f4c94ea4f6257a541aabbd08b9ca31', htmlFor: this.inputId }, hAsync("slot", { key: '9dbcb9386a05462da3cdeba01e6c4831ef52b7a5', name: "label" }, this.label))), hAsync("div", { key: '81ff77ec49a03d9bb622b8e934b71a475770b518', class: "input-wrapper" }, hAsync("slot", { key: 'd445e90aeebaf9b546b96cbbc77c72b10ab144bf', name: "before-input" }), hAsync("div", { key: '537c96360b91404d1ca560be27a71dbd0efd54ce', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: '894fc44bf45a7d66d5d108fd816d19aa86b24407', name: "leading-input" }), hAsync("input", { key: 'a774febb21a489c858d1308f6d38b138815896aa', id: this.inputId, ref: e => (this.inputElement = e), placeholder: this.placeholder, name: this.name, type: "number", autofocus: this.autofocus, required: this.required, max: this.max, min: this.min, step: this.step, value: this.value, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput }), hAsync("slot", { key: 'e955eb9ad46950afcfe3de93ae18540ed583f66f', name: "trailing-input" }), this.error && (hAsync("nv-icon", { key: 'b2b5824c6cb2e1bb378600f0fb6511b8695e8df4', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: 'bce78b06f5ae6ed68bf795abad0f34dadd849422', name: "circle-check", class: "validation", size: "md" })), hAsync("div", { key: '2c304550d4f49de47cf24e6d650e995f98b4a17a', class: "stepper" }, hAsync("nv-iconbutton", { key: 'e96f7a47521387c79149f93f3cb4719cd24a9c0d', size: "md", name: "minus", emphasis: "lower", onClick: this.handleMinus, disabled: this.isMinValueReached(), onMouseDown: this.preventSelection, tabindex: "-1" }), hAsync("nv-iconbutton", { key: '2f579a243c57166f3ccd43960deccda9b3f2d798', size: "md", name: "plus", emphasis: "lower", onClick: this.handlePlus, disabled: this.isMaxValueReached(), onMouseDown: this.preventSelection, tabindex: "-1" }))), hAsync("slot", { key: 'b305bae132034786a51e6a918f650391f0e4d406', name: "after-input" })), (this.description ||
19168
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '6eaae8de9885c77a36342ba48b9b0e88266e9bfe', class: "description" }, hAsync("slot", { key: '3a2f56c02df550ce7ca8b51771acbfd3dd7bf2d4', name: "description" }, this.description))), (this.errorDescription ||
19169
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'aa505a05a032ac11c8626cbb601544c1037aabf6', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: 'e94717e1233cba33c2c189bb0b971f8ca6dc979e', name: "error-description" }, this.errorDescription)))));
19702
+ return (hAsync(Host, { key: '0fcd74073e1c3f2c8de00c21e1ff782d4ed2fbe8' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'c4dc1dc4efd2150fb897f0602b07ab22643756e6', htmlFor: this.inputId }, hAsync("slot", { key: 'a0aa360dd532e11fd0273c8ba8d5ded3adc45642', name: "label" }, this.label))), hAsync("div", { key: 'c2ffeb70a8e5ffe43ec5061e035add48fd0f09a2', class: "input-wrapper" }, hAsync("slot", { key: '62ef15b0961ae4af93940d3d2dd10fdb6a636d4d', name: "before-input" }), hAsync("div", { key: '07be430ad207b6023ee969b7ad290d4946f4b6fe', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: '69978ac5971a25cc8c0515250d741ac8a658c3bd', name: "leading-input" }), hAsync("input", { key: '284f8da710438e470a26541b7cf72f89730ef3ab', id: this.inputId, ref: e => (this.inputElement = e), placeholder: this.placeholder, name: this.name, type: "number", autofocus: this.autofocus, required: this.required, max: this.max, min: this.min, step: this.step, value: this.value, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput }), hAsync("slot", { key: 'd028cd632cff77f592429e97a81a1d45aeec621d', name: "trailing-input" }), this.error && (hAsync("nv-icon", { key: '7de629b71971559c647ba4ad4885815124bb63b3', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: '135e609c2e568174db3503633f389c70a2fceaba', name: "circle-check", class: "validation", size: "md" })), hAsync("div", { key: '17a952157f55ff65911d852a4274de5db4241508', class: "stepper" }, hAsync("nv-iconbutton", { key: '33d0412ea6ed883d92b64363b404628d610e2339', size: "md", name: "minus", emphasis: "lower", onClick: this.handleMinus, disabled: this.isMinValueReached(), onMouseDown: this.preventSelection, tabindex: "-1" }), hAsync("nv-iconbutton", { key: '68bf536a5fe5bb0b3c2c3bd5508324c050cb8764', size: "md", name: "plus", emphasis: "lower", onClick: this.handlePlus, disabled: this.isMaxValueReached(), onMouseDown: this.preventSelection, tabindex: "-1" }))), hAsync("slot", { key: '3922a559b4ca954bee9caea379c940e7b132f65f', name: "after-input" })), (this.description ||
19703
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '8844bf48e0251717549d4e0079370fe2f590c616', class: "description" }, hAsync("slot", { key: 'f35c77ffa2f01a66d72ef75a65c5c634b14bbdbc', name: "description" }, this.description))), (this.errorDescription ||
19704
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'ce407c77dd30a235c7691727480c911ad6128392', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '7ffb85e03e5a9a949f022398537c74a812b8a12f', name: "error-description" }, this.errorDescription)))));
19170
19705
  }
19171
19706
  static get formAssociated() { return true; }
19172
19707
  get el() { return getElement(this); }
@@ -19314,9 +19849,9 @@ class NvFieldpassword {
19314
19849
  /****************************************************************************/
19315
19850
  //#region RENDER
19316
19851
  render() {
19317
- return (hAsync(Host, { key: 'de631f354c11bca46438aa57eb2f5b255b99f439' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'b5b7d00ec3cd2bf062c7891f44cb1b9f4032e659', htmlFor: this.inputId }, hAsync("slot", { key: '04149706c9f07e290cf9d93b2890de26c6ba832a', name: "label" }, this.label))), hAsync("div", { key: 'eb7a834ceb2769de0059ca96226bb8a31e7f3e95', class: "input-wrapper" }, hAsync("slot", { key: 'd250f823150eb3ff2fc93869cd7c7afa9738a8ef', name: "before-input" }), hAsync("div", { key: 'a1ce5f337b3c29152869395a33acdf4b872e8e04', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: '589cc579cba9c2364bda3948cdf14ac4e1687088', name: "leading-input" }), hAsync("input", { key: '5f45023c3a4f5dca5bff08e960221c711eb008b6', 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) && (hAsync("nv-icon", { key: '1b78092817109ee795bf90c8182abfa0a9af35af', name: this.success ? 'circle-check' : 'alert-circle', class: "validation", size: "md" })), !this.hidePasswordIcon && (hAsync("nv-iconbutton", { key: '1d64a57a5e4eab88b499a9783d460a33d052950e', 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() }))), hAsync("slot", { key: '1183158e98fa88ca143b5443db36f7f658b9acb7', name: "after-input" })), (this.description ||
19318
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '34181f122eb6651a605bc00f96bccd7cfce6b11b', class: "description" }, hAsync("slot", { key: '74a0b8e00d96d60884f32c89a4a15e9b2f7c25ed', name: "description" }, this.description))), (this.errorDescription ||
19319
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'd16bf3d39dc42960dc089df6ac8959d09f8a1076', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: 'cf19821689d4889eda9ce5a6cfa5675b97fca86e', name: "error-description" }, this.errorDescription)))));
19852
+ return (hAsync(Host, { key: 'b8d142f5a35087f977437af4d2094783e455d9a0' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'f26d2c14ee03d1ef80fe263a1849c0da03a39a8c', htmlFor: this.inputId }, hAsync("slot", { key: '13dfa9e681e1b5a7244e7debc7d1c1af36bedd37', name: "label" }, this.label))), hAsync("div", { key: '5a01c9cc4573543e0d6633f9b8fadfa1ad6b066a', class: "input-wrapper" }, hAsync("slot", { key: '2ff066ad5da2d3fe0885ccc1a0c97f9817ff4bbe', name: "before-input" }), hAsync("div", { key: '429535a2b55ea4af5374067948f5be1d16898694', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: '00d8fa3cd0e8af41f1b9c46cefc256a29187db9d', name: "leading-input" }), hAsync("input", { key: '7aa5db4e17d62e3a9c10e8b5e2dabe224033b2da', 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) && (hAsync("nv-icon", { key: '0c919def4c580387d87a2f500a663f4dba5874cb', name: this.success ? 'circle-check' : 'alert-circle', class: "validation", size: "md" })), !this.hidePasswordIcon && (hAsync("nv-iconbutton", { key: '2b020de565c3311431c83c68a773731055c1c6c5', 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() }))), hAsync("slot", { key: '938de4d9c513e3aef3de1e9a108e69558843b466', name: "after-input" })), (this.description ||
19853
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '6150e4be7c79bf10a1a2db3b14334c4fd9d2396c', class: "description" }, hAsync("slot", { key: 'de557936e4ed9e0798cbbb95f832fa6a831d63a9', name: "description" }, this.description))), (this.errorDescription ||
19854
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '74e43aa5f463f8156d44d261d5641c0aafccc5fc', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '4956c95a870964a712524fb30d26e9fd500edef8', name: "error-description" }, this.errorDescription)))));
19320
19855
  }
19321
19856
  static get formAssociated() { return true; }
19322
19857
  get el() { return getElement(this); }
@@ -19444,9 +19979,9 @@ class NvFieldradio {
19444
19979
  /****************************************************************************/
19445
19980
  //#region RENDER
19446
19981
  render() {
19447
- return (hAsync(Host, { key: 'e1a92204a7d3e07de9485873906ed57dc2f4dfb1', class: clsx(this.labelPlacement === 'before' && 'label-placement-before', this.error && 'error') }, hAsync("input", { key: '8161b36c31b960a4ca4f7a1291a9cdbdd830429c', type: "radio", id: this.inputId, name: this.name, autofocus: this.autofocus, autocomplete: "off", value: this.value, checked: this.checked, disabled: this.disabled }), hAsync("div", { key: '8d5ff5b5742a96dc9d1167298859a7a97347eeab', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '7417fe1c5041e20fd63abca907fd75fe7d3b49d2', htmlFor: this.inputId }, hAsync("slot", { key: 'e29a092dbd19c912c496e1ae56d9f46bcb44208c', name: "label" }, this.label))), (this.description ||
19448
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'a894108a6e5235010d18547a39daf526e066e432', class: "description" }, hAsync("slot", { key: 'c67b5b5a5d2ef1f27e69eb251e9a15c98909db85', name: "description" }, this.description))), (this.errorDescription ||
19449
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '18ea2ae58994289900f28c0e6220e113b45b2a92', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '52a10763fb7bf688e5a1de5e854aa0d80bc996f4', name: "error-description" }, this.errorDescription))))));
19982
+ return (hAsync(Host, { key: '5721fd4ffd6d8b1392e65d0b8eaea4dea241be63', class: clsx(this.labelPlacement === 'before' && 'label-placement-before', this.error && 'error') }, hAsync("input", { key: 'c54d8952edb57e34016a85ba2b6b9c7fc2a20a37', type: "radio", id: this.inputId, name: this.name, autofocus: this.autofocus, autocomplete: "off", value: this.value, checked: this.checked, disabled: this.disabled }), hAsync("div", { key: 'e80c6c12fbf461776822185109e05aea5a6c954b', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '0f89b274c7ee7ea7d2e3116a004575176d044b5b', htmlFor: this.inputId }, hAsync("slot", { key: '04b04fbc8ad5a199def48e728c74f13e7230414d', name: "label" }, this.label))), (this.description ||
19983
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'e5c5048c50d0089393a29f12eb09f0ae26aedcfc', class: "description" }, hAsync("slot", { key: '6902044f273d508a79a66a3f185fc4a9ac48e94f', name: "description" }, this.description))), (this.errorDescription ||
19984
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '8d388b64deccd2f398485dfa0b83d70b8c50ae47', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: 'c5237272b97c754d2745eb62a85519f2c14dfb27', name: "error-description" }, this.errorDescription))))));
19450
19985
  }
19451
19986
  static get formAssociated() { return true; }
19452
19987
  get el() { return getElement(this); }
@@ -19830,13 +20365,13 @@ class NvFieldselect {
19830
20365
  * @returns {HTMLStencilElement} The HTML element to render.
19831
20366
  */
19832
20367
  render() {
19833
- return (hAsync(Host, { key: '17dc03e5db7ec57623e6fb4c06199aaf1ed85991' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '81fff1ee75f4e1415f60a2900303123cee3c8b58', htmlFor: this.inputId }, hAsync("slot", { key: '69569c3981e754e22ffcfb4d73121ee7056f0695', name: "label" }, this.label))), hAsync("div", { key: '251d557b6f1618241cccbb36e8c03415075ddf98', class: "select-wrapper" }, hAsync("slot", { key: '765d37ea12613de6e65cc77c9aa0000e75dc1243', name: "before-input" }), hAsync("div", { key: '6150af4f94e13a2fced6dcf597d1310a2282c337', class: "select-container", onClick: this.handleSelectContainerClick }, hAsync("slot", { key: '88f48c27c2a109d9db8a65671e3028c13272dde7', name: "leading-input" }), this.internalReadonly && (hAsync("input", { key: '2e0884fdbdda028426957530f815f0ce2b772322', id: this.inputId + '-readonly', type: "text", value: this.computedDisplayValue, readonly: true, class: "readonly-input", "aria-readonly": "true", "aria-label": this.label, "aria-describedby": this.error
20368
+ return (hAsync(Host, { key: 'ff869c177289342a39ae292a530359af940a5669' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '10815f70059de9b1774ccc26b69d441d250e1833', htmlFor: this.inputId }, hAsync("slot", { key: 'afe78cd3671151060fd1e2a37b77c164767908fa', name: "label" }, this.label))), hAsync("div", { key: '064d8f512bc5f11831096d3a092afb00dcfeb1bc', class: "select-wrapper" }, hAsync("slot", { key: 'c12d375bc5a558d25f1eb34343e2ad5fce784558', name: "before-input" }), hAsync("div", { key: 'ffb39cfc0444edc49a4e2b6318990085009d7598', class: "select-container", onClick: this.handleSelectContainerClick }, hAsync("slot", { key: 'd5fccac0e92fe0553b8478a6f5dc9be4591e8c23', name: "leading-input" }), this.internalReadonly && (hAsync("input", { key: '94dc05d08de8120c78fa140df5eb3adc09ce97da', id: this.inputId + '-readonly', type: "text", value: this.computedDisplayValue, readonly: true, class: "readonly-input", "aria-readonly": "true", "aria-label": this.label, "aria-describedby": this.error
19834
20369
  ? `${this.inputId}-error`
19835
- : `${this.inputId}-description` })), hAsync("select", { key: '0bd79358080fd6d76e28ba574e5fae336ab4b34d', id: this.inputId, ref: el => (this.selectElement = el), name: this.name, autofocus: this.autofocus, disabled: this.disabled, required: this.required, multiple: this.multiple, onChange: this.handleSelectChange, class: this.internalReadonly ? 'hidden' : '', "aria-label": this.label, "aria-describedby": this.error
20370
+ : `${this.inputId}-description` })), hAsync("select", { key: '85ffba58429aaa393cc9178e0866a61f85d92103', id: this.inputId, ref: el => (this.selectElement = el), name: this.name, autofocus: this.autofocus, disabled: this.disabled, required: this.required, multiple: this.multiple, onChange: this.handleSelectChange, class: this.internalReadonly ? 'hidden' : '', "aria-label": this.label, "aria-describedby": this.error
19836
20371
  ? `${this.inputId}-error`
19837
- : `${this.inputId}-description` }, this.parsedOptions.length > 0 ? (this.parsedOptions.map(option => (hAsync("option", { value: option.value, selected: option.selected, disabled: option.disabled }, option.label)))) : (hAsync("slot", null))), hAsync("div", { key: '8266f6651293d179f5d119bc25b0d171d1064cd8', class: "select-icons" }, this.error && (hAsync("nv-icon", { key: '5300e5c151dfdca429550a4e1823954783b4f086', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: '40ff228bfc531fe269a4acca577ebe2230d679e9', name: "circle-check", class: "validation", size: "md" })), !this.multiple && (hAsync("nv-iconbutton", { key: '5d77e09bbce330e3e855035f2cab0b0001ba7839', name: "chevron-down", size: "md", emphasis: "lower", tabindex: -1 })))), hAsync("slot", { key: 'b19c29e25d9f9cae2c6a3e4129f6f74cbb01becd', name: "after-input" })), (this.description ||
19838
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'ef53e3d22291e580bcf2554273d47cdfa43eefc4', class: "description", id: `${this.inputId}-description` }, hAsync("slot", { key: '8bdbcef6106634c2ce37c8c1be50d6bd7cbe9e2f', name: "description" }, this.description))), (this.errorDescription ||
19839
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '1e4b5d282fcacceac0c46a02dfa1243a00c28ac0', class: "error-description", id: `${this.inputId}-error` }, hAsync("slot", { key: '634be5308aaf40697bd1e7a2ef085e94e0d38f43', name: "error-description" }, this.errorDescription)))));
20372
+ : `${this.inputId}-description` }, this.parsedOptions.length > 0 ? (this.parsedOptions.map(option => (hAsync("option", { value: option.value, selected: option.selected, disabled: option.disabled }, option.label)))) : (hAsync("slot", null))), hAsync("div", { key: '694b0306ddaf671faea9dd863bb7f2917b567ffb', class: "select-icons" }, this.error && (hAsync("nv-icon", { key: '4f86b0916dcbfefb24af5e5e2c0ca009ece6193b', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: 'f99ba37d4a70b7c352b4abb0be0b5eb85b4cc947', name: "circle-check", class: "validation", size: "md" })), !this.multiple && (hAsync("nv-iconbutton", { key: 'b152a3b110b0f780b29adcf1efb4aadf98cf81be', name: "chevron-down", size: "md", emphasis: "lower", tabindex: -1 })))), hAsync("slot", { key: '63c6076165bae5d36732179c4a761d5b381076b5', name: "after-input" })), (this.description ||
20373
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'dd3e41b62290c580e050eb5a4742aabc7395cbda', class: "description", id: `${this.inputId}-description` }, hAsync("slot", { key: '87bedab511a8b3d07d6616e4937342b6d272c5f3', name: "description" }, this.description))), (this.errorDescription ||
20374
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'd4cf69f5f2446fbbf8ed36910d89c3aa7ac2c826', class: "error-description", id: `${this.inputId}-error` }, hAsync("slot", { key: '2fc8b58658bd406af834dcad378b3b00aca40b22', name: "error-description" }, this.errorDescription)))));
19840
20375
  }
19841
20376
  static get formAssociated() { return true; }
19842
20377
  get el() { return getElement(this); }
@@ -19882,6 +20417,18 @@ class NvFieldselect {
19882
20417
  /**
19883
20418
  * Utility functions for nv-fieldslider.
19884
20419
  */
20420
+ /**
20421
+ * Gets the number of decimal places in a number.
20422
+ * @param {number} num - The number to check
20423
+ * @returns {number} The number of decimal places
20424
+ */
20425
+ function getDecimalPlaces(num) {
20426
+ if (Number.isInteger(num))
20427
+ return 0;
20428
+ const str = num.toString();
20429
+ const decimalPart = str.split('.')[1];
20430
+ return decimalPart ? decimalPart.length : 0;
20431
+ }
19885
20432
  /**
19886
20433
  * Clamp a value between min and max.
19887
20434
  * @param {number} value - The value to clamp
@@ -19914,7 +20461,26 @@ function valueToPercent(value, min, max) {
19914
20461
  */
19915
20462
  function snapToStep(value, min, max, step) {
19916
20463
  const clamped = clamp$1(value, min, max);
19917
- const snapped = Math.round((clamped - min) / step) * step + min;
20464
+ const decimalPlaces = getDecimalPlaces(step);
20465
+ // To avoid floating point issues in calculations, we can work with integers
20466
+ // by multiplying all values by a power of 10 based on decimal places
20467
+ if (decimalPlaces > 0) {
20468
+ const multiplier = Math.pow(10, decimalPlaces);
20469
+ // Convert to integer-based calculation
20470
+ const scaledValue = Math.round((clamped - min) * multiplier);
20471
+ const scaledStep = Math.round(step * multiplier);
20472
+ // Round to nearest step using integer math
20473
+ const roundedSteps = Math.round(scaledValue / scaledStep);
20474
+ // Calculate snapped value and scale back down
20475
+ const scaledSnapped = roundedSteps * scaledStep;
20476
+ const snapped = min + scaledSnapped / multiplier;
20477
+ // Format to correct decimal places to ensure precision
20478
+ return clamp$1(parseFloat(snapped.toFixed(decimalPlaces)), min, max);
20479
+ }
20480
+ // For integer steps, use the original method
20481
+ const stepsFromMin = (clamped - min) / step;
20482
+ const roundedSteps = Math.round(stepsFromMin);
20483
+ const snapped = min + roundedSteps * step;
19918
20484
  return clamp$1(snapped, min, max);
19919
20485
  }
19920
20486
  /**
@@ -19955,6 +20521,19 @@ function snapToTicks(value, ticks) {
19955
20521
  }
19956
20522
  return closestTick;
19957
20523
  }
20524
+ /**
20525
+ * Format a numeric value for display, preserving trailing zeros based on step precision
20526
+ * @param {number} value - The value to format
20527
+ * @param {number} step - The step size that determines decimal precision
20528
+ * @returns {string} Formatted value string with appropriate decimal places
20529
+ */
20530
+ function formatValueForDisplay(value, step) {
20531
+ const decimalPlaces = getDecimalPlaces(step);
20532
+ if (decimalPlaces > 0) {
20533
+ return value.toFixed(decimalPlaces);
20534
+ }
20535
+ return String(value);
20536
+ }
19958
20537
 
19959
20538
  /**
19960
20539
  * Renders single thumb in standard mode.
@@ -19962,7 +20541,7 @@ function snapToTicks(value, ticks) {
19962
20541
  * @returns {JSX.Element} JSX element representing the thumb
19963
20542
  */
19964
20543
  const SingleThumb = props => {
19965
- const { value, min, max, rawPosition, isDragging, snap, disabled, readonly, onKeyDown, labelBeforeValue, labelAfterValue, } = props;
20544
+ const { value, min, max, step, rawPosition, isDragging, snap, disabled, readonly, onKeyDown, labelBeforeValue, labelAfterValue, } = props;
19966
20545
  // Use raw position for visual display during dragging, but the snapped value otherwise
19967
20546
  let displayPosition = value;
19968
20547
  if (isDragging && !snap) {
@@ -19972,7 +20551,7 @@ const SingleThumb = props => {
19972
20551
  return (hAsync("div", { class: "thumb", style: { left: `${percent}%` }, role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, "aria-disabled": disabled ? 'true' : undefined, "aria-readonly": readonly ? 'true' : undefined, tabindex: disabled ? -1 : 0, onKeyDown: onKeyDown },
19973
20552
  hAsync("div", { class: "thumb-tooltip" },
19974
20553
  labelBeforeValue && (hAsync("span", { class: "label-before" }, labelBeforeValue)),
19975
- String(value),
20554
+ formatValueForDisplay(value, step),
19976
20555
  labelAfterValue && hAsync("span", { class: "label-after" }, labelAfterValue))));
19977
20556
  };
19978
20557
 
@@ -19982,7 +20561,7 @@ const SingleThumb = props => {
19982
20561
  * @returns {JSX.Element[]} Array of JSX elements representing the range slider thumbs
19983
20562
  */
19984
20563
  const RangeThumb = props => {
19985
- const { rangeValue, rawRangePosition, activeDragThumb, isDragging, snap, min, max, disabled, readonly, onKeyDown, labelBeforeValue, labelAfterValue, } = props;
20564
+ const { rangeValue, rawRangePosition, activeDragThumb, isDragging, snap, min, max, step, disabled, readonly, onKeyDown, labelBeforeValue, labelAfterValue, } = props;
19986
20565
  const [leftValue, rightValue] = rangeValue;
19987
20566
  // Use raw positions for visual display during dragging, but the snapped values otherwise
19988
20567
  let displayLeftPosition = leftValue;
@@ -20006,12 +20585,12 @@ const RangeThumb = props => {
20006
20585
  hAsync("div", { class: "thumb thumb-left", style: { left: `${leftPercent}%` }, role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": leftValue, "aria-disabled": disabled ? 'true' : undefined, "aria-readonly": readonly ? 'true' : undefined, "data-thumb": "left", tabindex: disabled ? -1 : 0, onKeyDown: onKeyDown },
20007
20586
  hAsync("div", { class: "thumb-tooltip" },
20008
20587
  labelBeforeValue && (hAsync("span", { class: "label-before" }, labelBeforeValue)),
20009
- String(leftValue),
20588
+ formatValueForDisplay(leftValue, step),
20010
20589
  labelAfterValue && hAsync("span", { class: "label-after" }, labelAfterValue))),
20011
20590
  hAsync("div", { class: "thumb thumb-right", style: { left: `${rightPercent}%` }, role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": rightValue, "aria-disabled": disabled ? 'true' : undefined, "aria-readonly": readonly ? 'true' : undefined, "data-thumb": "right", tabindex: disabled ? -1 : 0, onKeyDown: onKeyDown },
20012
20591
  hAsync("div", { class: "thumb-tooltip" },
20013
20592
  labelBeforeValue && (hAsync("span", { class: "label-before" }, labelBeforeValue)),
20014
- String(rightValue),
20593
+ formatValueForDisplay(rightValue, step),
20015
20594
  labelAfterValue && hAsync("span", { class: "label-after" }, labelAfterValue))),
20016
20595
  ];
20017
20596
  };
@@ -20520,11 +21099,11 @@ class NvFieldslider {
20520
21099
  /****************************************************************************/
20521
21100
  //#region RENDER
20522
21101
  render() {
20523
- return (hAsync(Host, { key: 'b6d4fb8acbdeecc38af8cedc10b57bc051d16306' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '5ca9f08e3f0d4640aad7433c0ec861dcc2044936', htmlFor: this.startInputId }, hAsync("slot", { key: 'c31ba9e87a5fd0f6c5d28f0bfa6e42895d6ce6e9', name: "label" }, this.label))), hAsync("div", { key: 'd6942e4dba60e5b58eb16c8631466743ea0590dd', class: "slider-container" }, this.range ? (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 0, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : null, hAsync("div", { key: '7404f2d26e96220f9c1c615487b837855694d335', class: "track-container" }, hAsync("div", { key: '353747e80e3af3ec203b527648f7eca0d47c837b', class: "track", onPointerDown: this.onTrackInteraction }, this.range ? (hAsync(RangeThumb, { rangeValue: this.rangeValueInternal, rawRangePosition: this.rawRangePosition, activeDragThumb: this.activeDragThumb, isDragging: this.isDragging, snap: this.snap, min: this.min, max: this.max, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue })) : (hAsync(SingleThumb, { value: this.valueInternal, min: this.min, max: this.max, rawPosition: this.rawPosition, isDragging: this.isDragging, snap: this.snap, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue }))), hAsync(TickMarks, { key: '08e3ed7962b8ca6b15c4c592993c79adcb4622ee', ticks: this.internalTicks, min: this.min, max: this.max })), this.range ? (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 1, inputId: this.endInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name }))), (this.success ||
21102
+ return (hAsync(Host, { key: '688357b41179bb99a662b8ea22f2beb7454b0d8c' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '7628e9ac0f304aa792f7c68f3e0b9b96d84583e0', htmlFor: this.startInputId }, hAsync("slot", { key: 'd876dc0602df8badadcfdf435d68356d382c8b25', name: "label" }, this.label))), hAsync("div", { key: '4aedd7863c3d06e4ad7dec800b14f858568bcb79', class: "slider-container" }, this.range ? (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 0, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : null, hAsync("div", { key: '74d455d904614092ed51daf34f73425571b7ca24', class: "track-container" }, hAsync("div", { key: 'a53a1e0f1770006fece64a87ca03a511d0e4dd9d', class: "track", onPointerDown: this.onTrackInteraction }, this.range ? (hAsync(RangeThumb, { rangeValue: this.rangeValueInternal, rawRangePosition: this.rawRangePosition, activeDragThumb: this.activeDragThumb, isDragging: this.isDragging, snap: this.snap, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue })) : (hAsync(SingleThumb, { value: this.valueInternal, min: this.min, max: this.max, step: this.step, rawPosition: this.rawPosition, isDragging: this.isDragging, snap: this.snap, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue }))), hAsync(TickMarks, { key: 'aafdd02a87071f214d8710d6a0678ee01668609d', ticks: this.internalTicks, min: this.min, max: this.max })), this.range ? (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 1, inputId: this.endInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name }))), (this.success ||
20524
21103
  this.description ||
20525
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '0860c3cdee38cc112e8e29d61a6ea357c2a146d6', class: "description" }, this.success && (hAsync("nv-icon", { key: '2ad1463f9e868d6b9757a5d5d657111595d711cb', name: "circle-check", class: "validation", size: "md" })), hAsync("slot", { key: '7559546a6067060db4f20d6f65786c868a4638a4', name: "description" }, this.description))), (this.error ||
21104
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '10eb3eb2f7a903af08419df8476c11e27e9e575e', class: "description" }, this.success && (hAsync("nv-icon", { key: 'ee312f8f0563e6dc920e9cbf886784df8c57e719', name: "circle-check", class: "validation", size: "md" })), hAsync("slot", { key: '4ee31b6914ebae20404acd582c27b38b5ad64700', name: "description" }, this.description))), (this.error ||
20526
21105
  this.errorDescription ||
20527
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'cb3c997c250f9ebe3d46bd869bb7c4c9e81e9738', class: "error-description", hidden: !this.error }, this.error && (hAsync("nv-icon", { key: '3644d3f766a30872eaadbad89c87fdfd893a2a1b', name: "alert-circle", class: "validation", size: "md" })), hAsync("slot", { key: '162a532c42328f0aee7309af5544b4d92230ce86', name: "error-description" }, this.errorDescription)))));
21106
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'e37e44dea94b691cbac98d16fb74c5c5cb280c5e', class: "error-description", hidden: !this.error }, this.error && (hAsync("nv-icon", { key: 'c1b403a4848fdcf0e9f51f37ec7454224562ed5c', name: "alert-circle", class: "validation", size: "md" })), hAsync("slot", { key: '87db18643f9473ae30e936fc1a316de95f06c107', name: "error-description" }, this.errorDescription)))));
20528
21107
  }
20529
21108
  static get formAssociated() { return true; }
20530
21109
  get el() { return getElement(this); }
@@ -20699,9 +21278,9 @@ class NvFieldtext {
20699
21278
  /****************************************************************************/
20700
21279
  //#region RENDER
20701
21280
  render() {
20702
- return (hAsync(Host, { key: '1619b7f63a882e953e0153cc2b70de086eeeeb56' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'd7eb27295ab541c523ada7a85faa9c1b03144447', htmlFor: this.inputId }, hAsync("slot", { key: 'a2e0942edc5435cf9f712e98ec74c1162bdd7a9f', name: "label" }, this.label))), hAsync("div", { key: 'acbb7cc279abe926cfd4778c6b244227bf8f1545', class: "input-wrapper" }, hAsync("slot", { key: 'c5e7d37de44dc3948bbebea67d78dc36d9af3106', name: "before-input" }), hAsync("div", { key: '174bc5b0fe2d89c2a6622d924490e57e079c4033', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: 'e2af299a1f2e0f576405d2bb3176e6759faeafda', name: "leading-input" }), hAsync("input", { key: '4e00aa5a7f8bd52e7080be30c8438ca01d151e6d', id: this.inputId, ref: e => (this.inputElement = e), placeholder: this.placeholder, name: this.name, type: this.type, disabled: this.disabled, readOnly: this.readonly, required: this.required, maxlength: this.maxlength, minlength: this.minlength, pattern: this.pattern, autofocus: this.autofocus, autocomplete: this.autocomplete, multiple: this.multiple, value: this.value, onInput: this.handleInput }), hAsync("slot", { key: '035e7478da88e9d944ee192f5af345eab44782d9', name: "trailing-input" }), this.error && (hAsync("nv-icon", { key: '21cc0d22e9e1e355c522985fd15c9a1b5aa40464', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: '229b732174f1b464c240cec94a77725bcf1c7e96', name: "circle-check", class: "validation", size: "md" }))), hAsync("slot", { key: '6522e7106f888f39415e853df131a2a5bb85d5fd', name: "after-input" })), (this.description ||
20703
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '77c4b156e39216f5122b7d5cc9cf4db89171f7f3', class: "description" }, hAsync("slot", { key: '59b732c941ea2ab6fcda2fe87d856b5f7bd6edff', name: "description" }, this.description))), (this.errorDescription ||
20704
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'ba3a666fe48b90369f3c58d1e8a9e14d0d9726f4', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '686143748e2a9c2d079c383e48d02d40beae1ec6', name: "error-description" }, this.errorDescription)))));
21281
+ return (hAsync(Host, { key: '35382ab52aa48116fbedc7683aff4729f06f5969' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '6f849db1b7603fc4de4fb23075fd7daa72438dd2', htmlFor: this.inputId }, hAsync("slot", { key: '24bc67fe3a8de24a8601a2cf3c5afd2532e17c4a', name: "label" }, this.label))), hAsync("div", { key: '8ffd2d0f048082c71a76054842fffd22452b9ad2', class: "input-wrapper" }, hAsync("slot", { key: '478020c16e29399dcc6566651f88acc8d88ef36d', name: "before-input" }), hAsync("div", { key: '1aa0bac3947bdff209268619202ccc38da691761', class: "input-container", onClick: this.handleInputContainerClick }, hAsync("slot", { key: '369b5f0a4c4d1d16217ad5de9221273ece41e1f0', name: "leading-input" }), hAsync("input", { key: '91446fe15f48f45693f56b3fd21926b8114c1dca', id: this.inputId, ref: e => (this.inputElement = e), placeholder: this.placeholder, name: this.name, type: this.type, disabled: this.disabled, readOnly: this.readonly, required: this.required, maxlength: this.maxlength, minlength: this.minlength, pattern: this.pattern, autofocus: this.autofocus, autocomplete: this.autocomplete, multiple: this.multiple, value: this.value, onInput: this.handleInput }), hAsync("slot", { key: '505a9ed004c4492f8daaef9a92bcaf344e2a10fb', name: "trailing-input" }), this.error && (hAsync("nv-icon", { key: 'c1e9ecd4f901862391daa6c9f5c75d3c1b81810f', name: "alert-circle", class: "validation", size: "md" })), this.success && (hAsync("nv-icon", { key: '15a452bdbbb386a51e4fe51370bd09521cc6f47f', name: "circle-check", class: "validation", size: "md" }))), hAsync("slot", { key: '7e7e3969dd6f3d1b80eab00ac966f7ba9f13895c', name: "after-input" })), (this.description ||
21282
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'b4ca95846a8fdf68e95d602968506bf009f9334f', class: "description" }, hAsync("slot", { key: 'fce329e819b837318b2d9bf9e16a8ef886aa940a', name: "description" }, this.description))), (this.errorDescription ||
21283
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'c3800ac457b5f0f87a3bdf9e9e37a36f5905786c', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: 'f77d02598ba261bf2b48b16ecfa3fc15fe221599', name: "error-description" }, this.errorDescription)))));
20705
21284
  }
20706
21285
  static get formAssociated() { return true; }
20707
21286
  get el() { return getElement(this); }
@@ -20921,9 +21500,9 @@ class NvFieldtextarea {
20921
21500
  /****************************************************************************/
20922
21501
  //#region RENDER
20923
21502
  render() {
20924
- return (hAsync(Host, { key: 'f5ac973e97efc7bb3d2c3ce59507a56b2605ecb0' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'e36602ae0fe5eb0684611c100502152dd85cfc5e', htmlFor: this.inputId }, hAsync("slot", { key: 'd6a35797136c52201a67bfbcf06c9ba1826a6594', name: "label" }, this.label))), hAsync("div", { key: 'fdab36db53b550a8ce9c88bb0f52aeb40d724a34', class: "textarea-wrapper" }, hAsync("div", { key: '447355abb8874e1f8b6a958e026bb4b9a955ad4e', class: "textarea-container", onClick: this.handleTextareaContainerClick }, hAsync("textarea", { key: '4a2151f726b1335ab78f895e8ce85f7a17fc62d3', id: this.inputId, ref: e => (this.textareaElement = e), placeholder: this.placeholder, autofocus: this.autofocus, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: this.required, maxlength: this.maxlength, minlength: this.minlength, autocomplete: "off", value: this.value, onInput: this.handleTextarea, rows: this.rows, class: clsx(this.resize === 'none' && 'resize-none', this.resize === 'vertical' && 'resize-y', this.resize === 'horizontal' && 'resize-x', this.resize === 'both' && 'resize') }))), (this.description ||
20925
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '2e66d3bd367d812f9f94110e094716adb489a600', class: "description" }, hAsync("slot", { key: 'bbc7983f3c6884766e8d14322d1a803243e0b6df', name: "description" }, this.description))), (this.errorDescription ||
20926
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'e62612c112e89ba2c3309869ac15670ac36d90d7', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '1d53e6c9f6abd5f026c47e3fbad331bb8614eea2', name: "error-description" }, this.errorDescription)))));
21503
+ return (hAsync(Host, { key: '2b054e4460ac1532cb2006feaa3930abc8e21505' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '5058a7c4a77a37336bcc58fd6b727f1f9564d7b2', htmlFor: this.inputId }, hAsync("slot", { key: '0c5abb11d0c2377b702ae1614134e28e53a6e1e2', name: "label" }, this.label))), hAsync("div", { key: 'e6d9981eaab913b3cf04fd99e0fbd07830fbebff', class: "textarea-wrapper" }, hAsync("div", { key: '23392da0e927d2eb5720fa98499afd2fcb33d840', class: "textarea-container", onClick: this.handleTextareaContainerClick }, hAsync("textarea", { key: '9b9521f4e033002ea346e3054118a114349dd7ee', id: this.inputId, ref: e => (this.textareaElement = e), placeholder: this.placeholder, autofocus: this.autofocus, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: this.required, maxlength: this.maxlength, minlength: this.minlength, autocomplete: "off", value: this.value, onInput: this.handleTextarea, rows: this.rows, class: clsx(this.resize === 'none' && 'resize-none', this.resize === 'vertical' && 'resize-y', this.resize === 'horizontal' && 'resize-x', this.resize === 'both' && 'resize') }))), (this.description ||
21504
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '27411a39625e1f03bbe23ae52ceadb04ab0afd4e', class: "description" }, hAsync("slot", { key: '56a5e1a95376899525911e096ded708a4987711d', name: "description" }, this.description))), (this.errorDescription ||
21505
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '2336848d28c0d67c95607da5bcab3348c4c15e0a', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: 'a200628a9ed75402395e415eab743afddf0a5d27', name: "error-description" }, this.errorDescription)))));
20927
21506
  }
20928
21507
  static get formAssociated() { return true; }
20929
21508
  get el() { return getElement(this); }
@@ -20979,7 +21558,7 @@ function startsWithIgnoreCase(str, prefix) {
20979
21558
  return str.toLowerCase().startsWith(prefix.toLowerCase());
20980
21559
  }
20981
21560
 
20982
- const nvFieldtimeCss = "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-fieldtime{--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-fieldtime[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-fieldtime[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-fieldtime[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-fieldtime[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fieldtime 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-fieldtime nv-popover{width:100%;display:block}nv-fieldtime nv-popover [data-scope=popover]{padding:var(--list-dropdown-padding);background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:100%}nv-fieldtime .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fieldtime .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;display:flex;justify-content:flex-start;align-items:center;position:relative;width:100%;min-height:40px;gap:0;padding-left:var(--form-field-padding-x)}nv-fieldtime .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldtime .input-container:focus-within,nv-fieldtime .input-container:focus-within:hover,nv-fieldtime .input-container:focus,nv-fieldtime .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-fieldtime .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-fieldtime .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldtime .input-container input.time-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%;width:100%;min-width:24px;flex:0 0 24px;text-align:center;padding:0;margin:0}nv-fieldtime .input-container input.time-input:focus{outline:none}nv-fieldtime .input-container input.time-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-fieldtime .input-container input.time-input[type=password]::-ms-clear,nv-fieldtime .input-container input.time-input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldtime .input-container input.time-input::-webkit-inner-spin-button,nv-fieldtime .input-container input.time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}nv-fieldtime .input-container span{width:100%;text-align:center;min-width:24px;flex:0 0 24px;padding:0 4px;color:var(--components-form-field-content-text)}nv-fieldtime .input-container>nv-iconbutton{border:0px;border-radius:0px;margin-left:auto}nv-fieldtime .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fieldtime .input-container nv-icon.validation{color:var(--nv-field-border-default);position:absolute;right:50px;top:50%;transform:translateY(-50%)}nv-fieldtime .input-container:focus,nv-fieldtime .input-container:focus-within{border-color:var(--color-focus-brand);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--color-focus-brand)}nv-fieldtime .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-fieldtime .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldtime hr{border:none;border-top:1px solid var(--dropdown-divider-color, #ccc);margin:0.5rem 0}nv-fieldtime .time-dropdown{width:100%}nv-fieldtime .time-dropdown .time-columns{display:flex;justify-content:flex-start;align-items:center}nv-fieldtime .time-dropdown .time-columns .time-column{flex:1;text-align:center;padding-right:2px;max-height:200px;overflow-y:auto;scroll-behavior:smooth;scrollbar-gutter:stable both-edges}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar{width:6px;height:6px}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}nv-fieldtime .time-dropdown .time-columns .time-column:last-child{border-right:none}nv-fieldtime .time-dropdown .time-columns .time-column .time-option{padding:var(--list-dropdown-item-padding-y) var(--list-dropdown-item-padding-x);text-align:center;cursor:pointer;transition:background-color 0.2s;height:40px;border-radius:var(--list-dropdown-item-radius);display:flex;justify-content:center;align-items:center}nv-fieldtime .time-dropdown .time-columns .time-column .time-option:hover{background-color:var(--components-list-dropdown-item-background-hover);color:var(--components-list-dropdown-item-label-hover)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option:focus,nv-fieldtime .time-dropdown .time-columns .time-column .time-option:focus-within{background-color:var(--components-list-dropdown-item-background-hover);color:var(--components-list-dropdown-item-label-hover)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option.selected{background-color:var(--components-list-dropdown-item-background-active);color:var(--components-list-dropdown-item-label-active);border-width:1px;border-style:solid;border-color:var(--components-list-dropdown-item-border-active)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option.highlighted{background-color:var(--components-list-dropdown-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}";
21561
+ const nvFieldtimeCss = "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-fieldtime{--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-fieldtime[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-fieldtime[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-fieldtime[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-fieldtime[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fieldtime 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-fieldtime nv-popover{width:100%;display:block}nv-fieldtime nv-popover [data-scope=popover]{padding:var(--list-dropdown-padding);background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:100%}nv-fieldtime .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fieldtime .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;display:flex;justify-content:flex-start;align-items:center;position:relative;width:100%;min-height:40px;gap:0;padding-left:var(--form-field-padding-x)}nv-fieldtime .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldtime .input-container:focus-within,nv-fieldtime .input-container:focus-within:hover,nv-fieldtime .input-container:focus,nv-fieldtime .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-fieldtime .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-fieldtime .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldtime .input-container input.time-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%;width:100%;min-width:24px;flex:0 0 24px;text-align:center;padding:0;margin:0}nv-fieldtime .input-container input.time-input:focus{outline:none}nv-fieldtime .input-container input.time-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-fieldtime .input-container input.time-input[type=password]::-ms-clear,nv-fieldtime .input-container input.time-input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldtime .input-container input.time-input::-webkit-inner-spin-button,nv-fieldtime .input-container input.time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}nv-fieldtime .input-container span{width:100%;text-align:center;min-width:24px;flex:0 0 24px;padding:0 4px;color:var(--components-form-field-content-text)}nv-fieldtime .input-container>nv-iconbutton{border:0px;border-radius:0px;margin-left:auto}nv-fieldtime .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fieldtime .input-container nv-icon.validation{color:var(--nv-field-border-default);position:absolute;right:50px;top:50%;transform:translateY(-50%)}nv-fieldtime .input-container:focus,nv-fieldtime .input-container:focus-within{border-color:var(--color-focus-brand);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--color-focus-brand)}nv-fieldtime .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-fieldtime .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldtime hr{border:none;border-top:1px solid var(--dropdown-divider-color, #ccc);margin:0.5rem 0}nv-fieldtime .time-dropdown{width:100%}nv-fieldtime .time-dropdown .time-columns{display:flex;justify-content:flex-start;align-items:center}nv-fieldtime .time-dropdown .time-columns .time-column{flex:1;text-align:center;max-height:200px;overflow-y:auto;scroll-behavior:smooth;scrollbar-gutter:stable both-edges;scrollbar-gutter:auto}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar{width:6px;height:6px}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}nv-fieldtime .time-dropdown .time-columns .time-column:last-child{border-right:none}nv-fieldtime .time-dropdown .time-columns .time-column .time-option{padding:var(--calendar-padding);text-align:center;cursor:pointer;transition:background-color 0.2s;border-radius:var(--list-dropdown-item-radius);color:var(--components-calendar-cell-text);font-size:var(--font-size-sm);display:flex;justify-content:center;align-items:center}nv-fieldtime .time-dropdown .time-columns .time-column .time-option:hover{background-color:var(--components-calendar-cell-background-hover);color:var(--components-calendar-cell-text-hover)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option:focus,nv-fieldtime .time-dropdown .time-columns .time-column .time-option:focus-within{background-color:var(--components-calendar-cell-background-hover);color:var(--components-calendar-cell-text-hover)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option.selected{background-color:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option.highlighted{background-color:var(--components-calendar-cell-background-hover);color:var(--components-menu-contextual-item-content-hover)}";
20983
21562
  var NvFieldtimeStyle0 = nvFieldtimeCss;
20984
21563
 
20985
21564
  /**
@@ -21951,26 +22530,26 @@ class NvFieldtime {
21951
22530
  }, key: `${option}-${index}`, onClick: e => this.handleTimeOptionClick(e, type) }, option)))));
21952
22531
  }
21953
22532
  render() {
21954
- return (hAsync(Host, { key: '757fd8e7217562805cc463fcc62a29b150e07746', onclick: e => this.handleHostClick(e) }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '50bc85aea3f5191e8629ff5f8dee2386513d01f2', htmlFor: this.inputId }, hAsync("slot", { key: '61a751dee3629e470168ec75fbb66ded1ad3c5bc', name: "label" }, this.label))), hAsync("nv-popover", { key: 'fd96b7e7bc80c873442d01c13998b718c71a0434', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { key: '65c075a139cb62092e1cbddbab2ac50a4dd6eb0b', class: "input-wrapper", slot: "trigger" }, hAsync("slot", { key: 'b7adb1b1cb3d02715e9c9b5099ce750850998bd9', name: "before-input" }), hAsync("div", { key: '61e8f2283bf0c1e56d37904532002753055957c4', class: "input-container" }, hAsync("slot", { key: 'cd0f10bac015e720a7bb9ce195f0bbd15c989f72', name: "leading-input" }), startsWithIgnoreCase(this.format, 'HH') && [
21955
- hAsync("input", { key: '4609d5071d4436d3bd59fa57017348ad2e1b34ae', ref: el => (this.inputElements[TimeType.Hours] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.hours, onInput: e => this.handleInputChange(e, TimeType.Hours), placeholder: this.format.includes('hh') ? 'hh' : 'HH', inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Hours), name: this.name
22533
+ return (hAsync(Host, { key: 'a8d08a4dac97430398e3f769f353e91ef08de9c0', onclick: e => this.handleHostClick(e) }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'e7d4a858f6194f085144fd59894ad54220a17a03', htmlFor: this.inputId }, hAsync("slot", { key: '69901d62cdd32e3d7d1efe14066ef5ab42eed0d5', name: "label" }, this.label))), hAsync("nv-popover", { key: '2541a920b4ce7b98515c58867ab1ab25d9cace9d', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, hAsync("div", { key: '2f501df272714fd912b0d0981c27db89b46ae424', class: "input-wrapper", slot: "trigger" }, hAsync("slot", { key: '41ee670692e5facaa0ddd065a2a79a66825d207b', name: "before-input" }), hAsync("div", { key: '24e41277073946b78ae4d1f8f38173045e699845', class: "input-container" }, hAsync("slot", { key: '6db3ce5df588697b9183225be3b603a3b51a156f', name: "leading-input" }), startsWithIgnoreCase(this.format, 'HH') && [
22534
+ hAsync("input", { key: 'ee093f322342ac3572ad76c48ebc2ecbed63ac01', ref: el => (this.inputElements[TimeType.Hours] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.hours, onInput: e => this.handleInputChange(e, TimeType.Hours), placeholder: this.format.includes('hh') ? 'hh' : 'HH', inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Hours), name: this.name
21956
22535
  ? `${TimeType.Hours}-${this.name}`
21957
22536
  : TimeType.Hours, id: this.inputId, readonly: this.readonly, disabled: this.disabled, required: this.required, onKeyDown: e => this.handleKeyDown(e), onBlur: () => this.handleInputBlur() }),
21958
22537
  ], this.format.includes('mm') && [
21959
- hAsync("span", { key: 'a92d1f6762397cf19fb9b66650ece033a34090fa' }, ":"),
21960
- hAsync("input", { key: '88f8e9e3a1dfcbee2b1ea1a5aa9e698b6ad455e5', ref: el => (this.inputElements[TimeType.Minutes] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.minutes, onInput: e => this.handleInputChange(e, TimeType.Minutes), placeholder: "mm", inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Minutes), name: this.name
22538
+ hAsync("span", { key: '9cec44d707277c298ba7a70934e1593a12207799' }, ":"),
22539
+ hAsync("input", { key: '2acaf3b143f0f5e9e04005213bdfe9ea5334bf53', ref: el => (this.inputElements[TimeType.Minutes] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.minutes, onInput: e => this.handleInputChange(e, TimeType.Minutes), placeholder: "mm", inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Minutes), name: this.name
21961
22540
  ? `${TimeType.Minutes}-${this.name}`
21962
22541
  : TimeType.Minutes, id: `${this.inputId}-minutes`, readonly: this.readonly, disabled: this.disabled, required: this.required, onKeyDown: e => this.handleKeyDown(e), onBlur: () => this.handleInputBlur() }),
21963
22542
  ], this.format.includes('ss') && [
21964
- hAsync("span", { key: '80f7b55263f287a136a0d75965ca2aeebb9286a4' }, ":"),
21965
- hAsync("input", { key: '71cf4d20ed7c85f535092c29116849982dfcfa54', ref: el => (this.inputElements[TimeType.Seconds] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.seconds, onInput: e => this.handleInputChange(e, TimeType.Seconds), placeholder: "ss", inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Seconds), name: this.name
22543
+ hAsync("span", { key: '07e0b374bdcad92339c4ddc10d71cc963a8a71ff' }, ":"),
22544
+ hAsync("input", { key: '84838544717af0bc967258d91fbee2748072be4f', ref: el => (this.inputElements[TimeType.Seconds] = el), type: "number", autofocus: this.autofocus, class: "time-input", pattern: "[0-9]*", maxlength: "3", value: this.seconds, onInput: e => this.handleInputChange(e, TimeType.Seconds), placeholder: "ss", inputMode: "numeric", onFocus: () => this.handleFocus(TimeType.Seconds), name: this.name
21966
22545
  ? `${TimeType.Seconds}-${this.name}`
21967
22546
  : TimeType.Seconds, id: `${this.inputId}-seconds`, readonly: this.readonly, disabled: this.disabled, required: this.required, onKeyDown: e => this.handleKeyDown(e), onBlur: () => this.handleInputBlur() }),
21968
- ], hAsync("nv-iconbutton", { key: 'd7dd4eeec66097b1b28843a2b152de3a54264d86', name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide time picker' : 'Show time picker', "aria-pressed": this.open.toString(), onClick: () => this.HandleDropdownIconClick() }), this.error && (hAsync("nv-icon", { key: 'a4d970f47e77340f0d979018f82d63fe16e330ac', name: "alert-circle", class: "validation", size: "sm" })), this.success && (hAsync("nv-icon", { key: '09a48f8cddcbc7ebd68e824cd3b6b98d4bdb05bc', name: "circle-check", class: "validation", size: "sm" }))), hAsync("slot", { key: 'd0f36a492944565d4abaf110ba5852c32c9aa17f', name: "after-input" })), hAsync("div", { key: 'edf9e7b894f55b2ba8075a26a24dad36034baba3', class: "time-dropdown", slot: "content" }, hAsync("div", { key: '3119fd1f881fbc06e1b00c687aa5e2e719959455', class: "time-columns" }, startsWithIgnoreCase(this.format, 'HH') &&
22547
+ ], hAsync("nv-iconbutton", { key: 'ec8d0d5c7eb9aa720deef07f23c712287246f3a8', name: 'clock', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide time picker' : 'Show time picker', "aria-pressed": this.open.toString(), onClick: () => this.HandleDropdownIconClick() }), this.error && (hAsync("nv-icon", { key: 'dbef458469153ef93ad94903a2bcf439f6243d40', name: "alert-circle", class: "validation", size: "sm" })), this.success && (hAsync("nv-icon", { key: '3dfb5e5b32dc91ebe53502f9117f628ae79bf57c', name: "circle-check", class: "validation", size: "sm" }))), hAsync("slot", { key: '744e72f9c7828f8487f58265dac564670ba26329', name: "after-input" })), hAsync("div", { key: '72dc9823125b9109bc27e049936007e796a97a06', class: "time-dropdown", slot: "content" }, hAsync("div", { key: '1b1f8241a25500cf9ce22ebea20becd6882760cc', class: "time-columns" }, startsWithIgnoreCase(this.format, 'HH') &&
21969
22548
  this.RenderTimeOptionsColumn(TimeType.Hours), this.format.includes('mm') &&
21970
22549
  this.RenderTimeOptionsColumn(TimeType.Minutes), this.format.includes('ss') &&
21971
22550
  this.RenderTimeOptionsColumn(TimeType.Seconds)))), (this.description ||
21972
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'fdce7e05e292bf00dcec4ff8f00e8d014d4e35d8', class: "description" }, hAsync("slot", { key: '8f0a4f0a8128d49eeb6910f5fc77b7518dee60d4', name: "description" }, this.description))), (this.errorDescription ||
21973
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'c54ffb42c2cb4ffb002f6786f8ffe17b2c33cbd3', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '902f6adc01ec02ecbbb1a8f524e14e3f3ad9c707', name: "error-description" }, this.errorDescription)))));
22551
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '57985d7f2626853a24db80d56607b5453b00b6c9', class: "description" }, hAsync("slot", { key: 'ba3383c066c6bcac3b1e6183b84528723de9cddc', name: "description" }, this.description))), (this.errorDescription ||
22552
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '6f02373e082fcc7e34e0d35441783122cd7c0266', hidden: !this.error, class: "error-description" }, hAsync("slot", { key: '43508d63829f53f5b5c718f1a112abbe5919b900', name: "error-description" }, this.errorDescription)))));
21974
22553
  }
21975
22554
  static get formAssociated() { return true; }
21976
22555
  get el() { return getElement(this); }
@@ -22075,7 +22654,7 @@ class NvIcon {
22075
22654
  /****************************************************************************/
22076
22655
  //#region RENDER
22077
22656
  render() {
22078
- return (hAsync(Host, { key: 'aff2c5f8f5ec978f9c5fce0f4ff17563d09e9a27', class: clsx(this.color && `${this.color}`), role: "img", "aria-label": `${this.name}-icon` }, hAsync("svg", { key: 'd16b1b378c88ecef80efb00356d30c0e9b4ad022', stroke: "currentColor", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: `nv-icon-${this.size}` }, hAsync("use", { key: 'b3588d9c1e56dffe2bd432cac7e2410ed3f1b2ca', href: `#${this.name}` }))));
22657
+ return (hAsync(Host, { key: '8cb4ada2454c7e9676cd088397eb4416ccab2d82', class: clsx(this.color && `${this.color}`), role: "img", "aria-label": `${this.name}-icon` }, hAsync("svg", { key: '4934c79fa096935be509ff6a641361dac44a4a9f', stroke: "currentColor", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: `nv-icon-${this.size}` }, hAsync("use", { key: '54e429910d5f9916f98e4cdef0be5f2f620df51e', href: `#${this.name}` }))));
22079
22658
  }
22080
22659
  static get style() { return NvIconStyle0; }
22081
22660
  static get cmpMeta() { return {
@@ -22219,7 +22798,7 @@ class NvIconbutton {
22219
22798
  /****************************************************************************/
22220
22799
  //#region RENDER
22221
22800
  render() {
22222
- return (hAsync(Host, { key: '9e290d8190d198790563c7523ac4708157bb27e4', role: "button", type: this.type, tabindex: "0", disabled: this.disabled ? true : undefined, class: clsx('root', `size-${this.size}`, `emphasis-${this.emphasis}`, this.loading && 'loading', `shape-${this.shape}`), onClick: this.handleClick }, this.loading && hAsync("nv-loader", { key: 'a3d3af89e6e000de9e4e6112a22ae901c1bf0409', size: this.size }), !this.loading && hAsync("nv-icon", { key: '1094bb262963888f1313744f1779809a76a78e44', name: this.name, size: this.size }), hAsync("slot", { key: '7dea704e805ed97fd7933e019b4117d86fb9aca6' })));
22801
+ return (hAsync(Host, { key: 'a59a26804e97dfbacf40fae6678b3b3ba66440a9', role: "button", type: this.type, tabindex: "0", disabled: this.disabled ? true : undefined, class: clsx('root', `size-${this.size}`, `emphasis-${this.emphasis}`, this.loading && 'loading', `shape-${this.shape}`), onClick: this.handleClick }, this.loading && hAsync("nv-loader", { key: '7cbe3502ff1c6fd76f7a9ab68128f5d5a0bbf7fa', size: this.size }), !this.loading && hAsync("nv-icon", { key: '46cbb9c609991ea27316b8909551d303559652fc', name: this.name, size: this.size }), hAsync("slot", { key: 'd2ca8959b7be7600e56fe23437e5da07d58985c2' })));
22223
22802
  }
22224
22803
  static get formAssociated() { return true; }
22225
22804
  get el() { return getElement(this); }
@@ -22267,7 +22846,7 @@ class NvLoader {
22267
22846
  //#region RENDER
22268
22847
  /* <slot> empty to force rendering change */
22269
22848
  render() {
22270
- return (hAsync(Host, { key: '34d77e3d0ceec39d545b8098ebb1c673633d6660', class: clsx(this.size && `size-${this.size}`, this.color && `color-${this.color}`) }));
22849
+ return (hAsync(Host, { key: '049afa243c1ce99643408d86afa99e69c5468b8b', class: clsx(this.size && `size-${this.size}`, this.color && `color-${this.color}`) }));
22271
22850
  }
22272
22851
  static get style() { return NvLoaderStyle0; }
22273
22852
  static get cmpMeta() { return {
@@ -22478,7 +23057,7 @@ class NvMenu {
22478
23057
  });
22479
23058
  }
22480
23059
  render() {
22481
- return (hAsync(Host, { key: 'a830e83199683e3e02cc19dc1f1148a8db8a510b' }, hAsync("slot", { key: '9f02da6e13c4ea8be3d561c4c2f500cfc7441b47', name: "trigger" }), hAsync("nv-popover", { key: '46fc7825a9a90b06862d487b856cf1085cfa2603', ref: el => (this.popoverElement = el), triggerMode: "click", triggerElement: this.triggerElement, placement: this.placement, nested: this.nested, open: this.open }, this.items ? (hAsync("ul", { slot: "content" }, this.renderMenuItems())) : (hAsync("slot", { name: "content" })))));
23060
+ return (hAsync(Host, { key: '25e38953e8d6e4c591087f3964822eed76cd3775' }, hAsync("slot", { key: 'f6ad4e16d740129dc296a3e0b2c5dffdd063b182', name: "trigger" }), hAsync("nv-popover", { key: 'c355356a877bb0cedfd69bfaf4e724c06612c1e5', ref: el => (this.popoverElement = el), triggerMode: "click", triggerElement: this.triggerElement, placement: this.placement, nested: this.nested, open: this.open }, this.items ? (hAsync("ul", { slot: "content" }, this.renderMenuItems())) : (hAsync("slot", { name: "content" })))));
22482
23061
  }
22483
23062
  get el() { return getElement(this); }
22484
23063
  static get style() { return NvMenuStyle0; }
@@ -22549,7 +23128,7 @@ class NvMenuitem {
22549
23128
  /****************************************************************************/
22550
23129
  //#region RENDER
22551
23130
  render() {
22552
- return (hAsync(Host, { key: 'e1d8de1448ac00846ecec2480e1e00d2a4b9fbf1', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && hAsync("nv-icon", { key: '1fe6acb264c0c54114dfa22df1efc676be300baf', name: this.icon }), hAsync("slot", { key: 'f3e1c15b56d209867bc28c7b23122309feb7c93f' }), this.label && hAsync("span", { key: '38619eb47c50150a0e4779fbf5fa7fa8da1e1d4c', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && hAsync("kbd", { key: 'f30be0820969fd79f1ed55eb39878efb8cf9e527' }, this.shortcut), this.hasSubmenu && hAsync("nv-icon", { key: '8ab74974f2e12f7eb16aabe587597f64502c2911', name: "chevron-right" })));
23131
+ return (hAsync(Host, { key: '327165c89f4e5decf8dc4b7b28e18562e528056d', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && hAsync("nv-icon", { key: '4247d922bca3797dc3f2917218749a8d3c038df1', name: this.icon }), hAsync("slot", { key: '1f81464ccf47a5bd918873ef70d3d3385e870638' }), this.label && hAsync("span", { key: '113358a0cacfa53710ec0049a8e1c5e981de5b15', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && hAsync("kbd", { key: 'ee7c773b89bf1f55876cf297600247883cd54937' }, this.shortcut), this.hasSubmenu && hAsync("nv-icon", { key: '70cbe2df51d9fbffe3b474b54e87aa06801acef7', name: "chevron-right" })));
22553
23132
  }
22554
23133
  get el() { return getElement(this); }
22555
23134
  static get style() { return NvMenuitemStyle0; }
@@ -24934,7 +25513,7 @@ class NvPopover {
24934
25513
  /****************************************************************************/
24935
25514
  //#region RENDER
24936
25515
  render() {
24937
- return (hAsync(Host, { key: 'dd1a09e6df99069395fff7bb1a1b5d5e52331755' }, hAsync("slot", { key: '998460dcac1e6cae6e420413c2e9bef460ed7d76', name: "trigger" }), hAsync("div", { key: '36a4bad082087b073e1f26b997f902611f6b7265', "data-scope": "popover", hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (hAsync("div", { key: '7734847121f62b2233c0d99baa05c9c71ba9d6e4', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), hAsync("slot", { key: '29d5e8860f9ccdf2382f61c4276019a36983b0ff', name: "content" }))));
25516
+ return (hAsync(Host, { key: '27f6f8acc148b3dc2b16a391c54a4a1de0637a57' }, hAsync("slot", { key: 'd25614b3bfc5565d3729da11f6f83b4d92e83e19', name: "trigger" }), hAsync("div", { key: '3b777862573405b2bb2a377750d9bb859a4bb20b', "data-scope": "popover", hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (hAsync("div", { key: 'dda88155630bca69ec06a766e2999ed369d5d6c6', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), hAsync("slot", { key: '51eaf873fe239d3c4106e997f6cdd37b1bb29074', name: "content" }))));
24938
25517
  }
24939
25518
  get el() { return getElement(this); }
24940
25519
  static get watchers() { return {
@@ -24979,7 +25558,7 @@ class NvRow {
24979
25558
  /****************************************************************************/
24980
25559
  //#region RENDER
24981
25560
  render() {
24982
- return (hAsync(Host, { key: '7a41dce9acbfdc42b66a032f1d20437ebf3d79a1' }, hAsync("slot", { key: '570d2bc95ad3ab2502a1e87699cdcb5818743b7b' })));
25561
+ return (hAsync(Host, { key: 'daad5f10b72b95468ac50a3deab7faf87769be42' }, hAsync("slot", { key: '16509b69358739997fe97a45ea9476f30682de2b' })));
24983
25562
  }
24984
25563
  static get style() { return NvRowStyle0; }
24985
25564
  static get cmpMeta() { return {
@@ -25014,7 +25593,7 @@ class NvStack {
25014
25593
  /****************************************************************************/
25015
25594
  //#region RENDER
25016
25595
  render() {
25017
- return (hAsync(Host, { key: '5f8251f0d74fbad4eb2af388202d943b10a57667', class: clsx(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') }, hAsync("slot", { key: '751196ccf84a2c64dd2c453e4f9ef92799102140' })));
25596
+ return (hAsync(Host, { key: '0a93c321e46c7e17ac0efe09556ee4447fec5f74', class: clsx(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') }, hAsync("slot", { key: 'faf55f3f579311c333e1ea66f1a19ace98594377' })));
25018
25597
  }
25019
25598
  static get style() { return NvStackStyle0; }
25020
25599
  static get cmpMeta() { return {
@@ -25351,14 +25930,14 @@ class NvTable {
25351
25930
  const rows = !this.table || this.table === undefined || this.parsedData.length === 0
25352
25931
  ? []
25353
25932
  : this.table.data;
25354
- return (hAsync(Host, { key: 'a7c287297ac47d07daf0039f9379a7698147475d' }, hAsync("div", { key: '039d839527e1ac48b9725fb2a66e4d852c7a08e3', class: "hidden" }, hAsync("slot", { key: '31c79cf49fa8799d5c68047995b02aebdbff33de' })), hAsync("slot", { key: 'c007f5ce656ecbb736678454a64a531763af4df1', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (hAsync("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (hAsync("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (hAsync("thead", { class: "table-header" }, hAsync("tr", null, headerGroups &&
25933
+ return (hAsync(Host, { key: 'a389cee4e6b29cdb852b8b6c0f8fd39926474525' }, hAsync("div", { key: 'ea7629bc0cba0ec1cbe59f6f03ac2527095d9abb', class: "hidden" }, hAsync("slot", { key: 'b070a8e7f54fd3846744bb659447b97547d1c7cf' })), hAsync("slot", { key: 'b0eb0a2d7c98073e88282b1e2e513b9e6a335345', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (hAsync("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (hAsync("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (hAsync("thead", { class: "table-header" }, hAsync("tr", null, headerGroups &&
25355
25934
  headerGroups.map(col => {
25356
25935
  return (hAsync("th", { key: col.name }, this.renderTemplate(this.headerTemplateCache.get(col.name), {}) || col.header));
25357
25936
  })))), hAsync("tbody", { class: "table-body" }, !rows || rows.length === 0 ? (hAsync("tr", null, hAsync("td", { colSpan: headerGroups.length || 12, class: "no-data" }, this.noDataMessage))) : (rows.map(row => (hAsync("tr", { key: JSON.stringify(row) }, headerGroups.map(col => {
25358
25937
  var _a;
25359
25938
  return (hAsync("td", null, this.renderTemplate(this.templateCache.get(col.name), row) ||
25360
25939
  ((_a = row[col.name]) !== null && _a !== void 0 ? _a : this.fallbackValue)));
25361
- })))))))), hAsync("slot", { key: 'f50f12ca506cf3e6484dd04b485d06c505f23664', name: "after" })));
25940
+ })))))))), hAsync("slot", { key: '599e4c1663c3a80375e3c511358be381b06eec2f', name: "after" })));
25362
25941
  }
25363
25942
  get el() { return getElement(this); }
25364
25943
  static get watchers() { return {
@@ -25478,8 +26057,8 @@ class NvToggle {
25478
26057
  /****************************************************************************/
25479
26058
  //#region RENDER
25480
26059
  render() {
25481
- return (hAsync(Host, { key: 'e9159f5b38ef70de9058878abc81c35fb2a3d5d9', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, hAsync("div", { key: '912ae7587d86e0f31114fd2166571b412dbe63d7', class: "input-container" }, hAsync("input", { key: 'ecbc0069ec0ccbccfa664cd2253125bb8310e086', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), hAsync("div", { key: 'd7dd3611927aa1a38adcb8283a648239d68108b6', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '6d4f9adc04cc2e40a6b581d73ef68aeee4f8ec31', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, hAsync("slot", { key: 'dccd8f62b8fec99879450d8073ed85c4d9203431', name: "label" }, this.label))), (this.description ||
25482
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'dd148af7f803d3e407f24d0e4e8ec67a752ee119', class: "description" }, hAsync("slot", { key: '95119657c064cdcdb24482381bf398287d1500de', name: "description" }, this.description))))));
26060
+ return (hAsync(Host, { key: '7aac2ef8519d5c033a0e74461755e2286420032a', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, hAsync("div", { key: 'fb0f560aff50b9d3c2b75ba2b59dd68012f5af10', class: "input-container" }, hAsync("input", { key: '61ff98c20dec0822979f04ad3b3316fc3caac31f', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), hAsync("div", { key: '543ad351428f6ae60e94bd31e3a7a6922c02e5d4', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '42f764c9c4454cf5b8b1fa88c2c43654170a5222', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, hAsync("slot", { key: '125247eeea72b68de829f36ad817a4381541ad07', name: "label" }, this.label))), (this.description ||
26061
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'a2fcd0d39a8f555e7d6b64879e84ff7f011e4901', class: "description" }, hAsync("slot", { key: '4e7af6b6a0a25fcb4d9529dcb1a32cb7c928c7de', name: "description" }, this.description))))));
25483
26062
  }
25484
26063
  static get formAssociated() { return true; }
25485
26064
  get el() { return getElement(this); }
@@ -25518,6 +26097,7 @@ var NvTooltipStyle0 = nvTooltipCss;
25518
26097
  class NvTooltip {
25519
26098
  constructor(hostRef) {
25520
26099
  registerInstance(this, hostRef);
26100
+ this.openChanged = createEvent(this, "openChanged", 7);
25521
26101
  /**
25522
26102
  * Decides where the tooltip shows up next to the element it’s linked to
25523
26103
  * (above, below, to the sides). If there isn’t enough room, it will adjust
@@ -25531,7 +26111,7 @@ class NvTooltip {
25531
26111
  */
25532
26112
  this.enterDelay = 0;
25533
26113
  }
25534
- //#endregion PROPERTIES
26114
+ //#endregion EVENTS
25535
26115
  /****************************************************************************/
25536
26116
  //#region LIFECYCLE
25537
26117
  componentWillLoad() {
@@ -25544,7 +26124,7 @@ class NvTooltip {
25544
26124
  /****************************************************************************/
25545
26125
  //#region RENDER
25546
26126
  render() {
25547
- return (hAsync(Host, { key: 'a5ac533aff7f1dbeb92fdea0b512418a05ed39d1' }, hAsync("slot", { key: '5c96133df21b7fdc7cf2d9eb73766dc88d4bdc2e' }), hAsync("nv-popover", { key: 'e80cb8ebb57f57940e9a32bb00499a5a35e1e547', triggerMode: "hover", hasArrow: true, placement: this.placement, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, hAsync("p", { key: '180dedb4dcf838271ea48986f5c8183fd8772af4', slot: "content" }, this.message), hAsync("slot", { key: 'b5a026e8a446e08a1a50fc3838757e4b4264b07a', name: "content" }))));
26127
+ return (hAsync(Host, { key: 'ced39f0ebd3ee8eba520e6d6241728e95031dafc' }, hAsync("slot", { key: '2b65cb626604a29e1924e7eb2bbb4e937c1a9e9c' }), hAsync("nv-popover", { key: 'd4c91e52da651c1545b6d7af98c740e08eeaffbf', triggerMode: "hover", hasArrow: true, placement: this.placement, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, hAsync("p", { key: '45805ecf6ffee80f4f81acce2d921ad66585bf2b', slot: "content" }, this.message), hAsync("slot", { key: 'e6a7e80c35c3a87627a50b271c86783fab791338', name: "content" }))));
25548
26128
  }
25549
26129
  get el() { return getElement(this); }
25550
26130
  static get style() { return NvTooltipStyle0; }
@@ -25564,6 +26144,8 @@ class NvTooltip {
25564
26144
  }
25565
26145
 
25566
26146
  registerComponents([
26147
+ NvAccordion,
26148
+ NvAccordionItem,
25567
26149
  NvAlert,
25568
26150
  NvAvatar,
25569
26151
  NvBadge,