@nova-design-system/nova-webcomponents 3.15.0 → 3.17.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 (554) hide show
  1. package/dist/cjs/{index-c56424e5.js → index-93d3b2f8.js} +9 -6
  2. package/dist/cjs/index-93d3b2f8.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +6 -1
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/native.cjs.js +2 -2
  7. package/dist/cjs/nv-accordion-item.cjs.entry.js +2 -2
  8. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
  9. package/dist/cjs/nv-accordion.cjs.entry.js +6 -6
  10. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nv-alert.cjs.entry.js +2 -2
  12. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nv-avatar.cjs.entry.js +2 -2
  14. package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
  16. package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
  17. package/dist/cjs/nv-breadcrumb.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-button.cjs.entry.js +3 -9
  20. package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
  22. package/dist/cjs/nv-calendar.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-datagrid.cjs.entry.js +177 -10
  25. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-dialog.cjs.entry.js +32 -29
  28. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
  30. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nv-fielddate.cjs.entry.js +51 -26
  34. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nv-fielddaterange.cjs.entry.js +68 -42
  36. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nv-fielddropdown.cjs.entry.js +33 -7
  38. package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  40. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +187 -156
  41. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nv-fieldnumber.cjs.entry.js +2 -2
  43. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nv-fieldpassword.cjs.entry.js +2 -2
  45. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nv-fieldradio.cjs.entry.js +2 -2
  47. package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nv-fieldselect.cjs.entry.js +2 -2
  49. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nv-fieldslider.cjs.entry.js +2 -2
  51. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nv-fieldtext.cjs.entry.js +2 -2
  53. package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +2 -2
  55. package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nv-fieldtime.cjs.entry.js +25 -12
  57. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nv-icon.cjs.entry.js +2 -2
  59. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -1
  62. package/dist/cjs/nv-menu.cjs.entry.js +24 -9
  63. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  65. package/dist/cjs/nv-notification.cjs.entry.js +2 -2
  66. package/dist/cjs/nv-notification.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nv-notificationcontainer.cjs.entry.js +1 -1
  68. package/dist/cjs/nv-popover.cjs.entry.js +67 -61
  69. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  70. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  71. package/dist/cjs/nv-split.cjs.entry.js +339 -0
  72. package/dist/cjs/nv-split.cjs.entry.js.map +1 -0
  73. package/dist/cjs/nv-stack.cjs.entry.js +2 -2
  74. package/dist/cjs/nv-table.cjs.entry.js +216 -310
  75. package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  77. package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
  78. package/dist/cjs/nv-togglebutton.cjs.entry.js +1 -1
  79. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
  80. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js.map +1 -1
  81. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  82. package/dist/collection/collection-manifest.json +1 -1
  83. package/dist/collection/components/nv-accordion/nv-accordion.js +12 -9
  84. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
  85. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
  86. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +1 -1
  87. package/dist/collection/components/nv-alert/nv-alert.css +1 -1
  88. package/dist/collection/components/nv-avatar/nv-avatar.css +1 -1
  89. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.css +1 -1
  90. package/dist/collection/components/nv-button/nv-button.js +1 -13
  91. package/dist/collection/components/nv-button/nv-button.js.map +1 -1
  92. package/dist/collection/components/nv-button/styles/nv-button.css +1 -1
  93. package/dist/collection/components/nv-datagrid/nv-datagrid.css +2 -2
  94. package/dist/collection/components/nv-dialog/nv-dialog.css +2 -2
  95. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +13 -0
  96. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  97. package/dist/collection/components/nv-dialog/nv-dialog.js +30 -27
  98. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  99. package/dist/collection/components/nv-dialogheader/nv-dialogheader.css +4 -4
  100. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +3 -3
  101. package/dist/collection/components/nv-fielddate/nv-fielddate.js +49 -24
  102. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  103. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +8 -8
  104. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +66 -43
  105. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  106. package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +8 -8
  107. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +26 -4
  108. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
  109. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +32 -4
  110. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  111. package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +9 -9
  112. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +186 -153
  113. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  114. package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +9 -9
  115. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +8 -8
  116. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +8 -8
  117. package/dist/collection/components/nv-fieldradio/nv-fieldradio.css +3 -3
  118. package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +12 -12
  119. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +7 -7
  120. package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +8 -8
  121. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +9 -1
  122. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
  123. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +8 -8
  124. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +22 -0
  125. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
  126. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +24 -9
  127. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  128. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +8 -8
  129. package/dist/collection/components/nv-icon/nv-icons.js +6 -1
  130. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  131. package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +2 -2
  132. package/dist/collection/components/nv-menu/nv-menu.docs.js +7 -0
  133. package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
  134. package/dist/collection/components/nv-menu/nv-menu.js +26 -8
  135. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  136. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  137. package/dist/collection/components/nv-notification/styles/nv-notification.css +2 -2
  138. package/dist/collection/components/nv-popover/nv-popover.docs.js +11 -0
  139. package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
  140. package/dist/collection/components/nv-popover/nv-popover.js +66 -60
  141. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  142. package/dist/collection/components/nv-split/nv-split.docs.js +41 -0
  143. package/dist/collection/components/nv-split/nv-split.docs.js.map +1 -0
  144. package/dist/collection/components/nv-split/nv-split.js +549 -0
  145. package/dist/collection/components/nv-split/nv-split.js.map +1 -0
  146. package/dist/collection/components/nv-split/styles/nv-split.css +96 -0
  147. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  148. package/dist/collection/components/nv-table/nv-table.docs.js +16 -155
  149. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
  150. package/dist/collection/components/nv-table/nv-table.js +68 -496
  151. package/dist/collection/components/nv-table/nv-table.js.map +1 -1
  152. package/dist/collection/components/nv-table/nv-table.utils.js +175 -0
  153. package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -0
  154. package/dist/collection/components/nv-table/styles/nv-table.css +84 -0
  155. package/dist/collection/components/nv-table/test/nv-table.utils.test.js +604 -0
  156. package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -0
  157. package/dist/collection/components/nv-toggle/nv-toggle.css +3 -3
  158. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
  159. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
  160. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -3
  161. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
  162. package/dist/components/index.js +7 -2
  163. package/dist/components/index.js.map +1 -1
  164. package/dist/components/nv-accordion-item.js +1 -1
  165. package/dist/components/nv-accordion.js +10 -10
  166. package/dist/components/nv-accordion.js.map +1 -1
  167. package/dist/components/nv-alert.js +3 -3
  168. package/dist/components/nv-alert.js.map +1 -1
  169. package/dist/components/nv-avatar.js +3 -3
  170. package/dist/components/nv-avatar.js.map +1 -1
  171. package/dist/components/nv-badge.js +1 -1
  172. package/dist/components/nv-breadcrumb.js +4 -4
  173. package/dist/components/nv-breadcrumb.js.map +1 -1
  174. package/dist/components/nv-breadcrumbs.js +1 -1
  175. package/dist/components/nv-button.js +1 -1
  176. package/dist/components/nv-buttongroup.js +1 -1
  177. package/dist/components/nv-calendar.js +1 -1
  178. package/dist/components/nv-col.js +1 -1
  179. package/dist/components/nv-datagrid.js +174 -7
  180. package/dist/components/nv-datagrid.js.map +1 -1
  181. package/dist/components/nv-datagridcolumn.js +1 -1
  182. package/dist/components/nv-dialog.js +37 -34
  183. package/dist/components/nv-dialog.js.map +1 -1
  184. package/dist/components/nv-dialogfooter.js +1 -1
  185. package/dist/components/nv-dialogheader.js +1 -1
  186. package/dist/components/nv-fieldcheckbox.js +1 -1
  187. package/dist/components/nv-fielddate.js +57 -32
  188. package/dist/components/nv-fielddate.js.map +1 -1
  189. package/dist/components/nv-fielddaterange.js +74 -48
  190. package/dist/components/nv-fielddaterange.js.map +1 -1
  191. package/dist/components/nv-fielddropdown.js +40 -13
  192. package/dist/components/nv-fielddropdown.js.map +1 -1
  193. package/dist/components/nv-fielddropdownitem.js +1 -1
  194. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  195. package/dist/components/nv-fieldmultiselect.js +196 -164
  196. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  197. package/dist/components/nv-fieldnumber.js +1 -1
  198. package/dist/components/nv-fieldpassword.js +5 -5
  199. package/dist/components/nv-fieldpassword.js.map +1 -1
  200. package/dist/components/nv-fieldradio.js +2 -2
  201. package/dist/components/nv-fieldradio.js.map +1 -1
  202. package/dist/components/nv-fieldselect.js +5 -5
  203. package/dist/components/nv-fieldselect.js.map +1 -1
  204. package/dist/components/nv-fieldslider.js +6 -6
  205. package/dist/components/nv-fieldslider.js.map +1 -1
  206. package/dist/components/nv-fieldtext.js +1 -1
  207. package/dist/components/nv-fieldtextarea.js +2 -2
  208. package/dist/components/nv-fieldtextarea.js.map +1 -1
  209. package/dist/components/nv-fieldtime.js +31 -17
  210. package/dist/components/nv-fieldtime.js.map +1 -1
  211. package/dist/components/nv-icon.js +1 -1
  212. package/dist/components/nv-iconbutton.js +1 -1
  213. package/dist/components/nv-loader.js +1 -1
  214. package/dist/components/nv-menu.js +30 -13
  215. package/dist/components/nv-menu.js.map +1 -1
  216. package/dist/components/nv-menuitem.js +1 -1
  217. package/dist/components/nv-notification.js +3 -3
  218. package/dist/components/nv-notification.js.map +1 -1
  219. package/dist/components/nv-notificationcontainer.js +1 -1
  220. package/dist/components/nv-popover.js +1 -1
  221. package/dist/components/nv-row.js +1 -1
  222. package/dist/components/{nv-tablecolumn.d.ts → nv-split.d.ts} +4 -4
  223. package/dist/components/nv-split.js +366 -0
  224. package/dist/components/nv-split.js.map +1 -0
  225. package/dist/components/nv-stack.js +2 -2
  226. package/dist/components/nv-table.js +216 -328
  227. package/dist/components/nv-table.js.map +1 -1
  228. package/dist/components/nv-toggle.js +2 -2
  229. package/dist/components/nv-toggle.js.map +1 -1
  230. package/dist/components/nv-togglebutton.js +1 -1
  231. package/dist/components/nv-togglebuttongroup.js +2 -2
  232. package/dist/components/nv-togglebuttongroup.js.map +1 -1
  233. package/dist/components/nv-tooltip.js +1 -1
  234. package/dist/components/{p-00cbf2a1.js → p-0d5ed1d7.js} +3 -3
  235. package/dist/components/p-0d5ed1d7.js.map +1 -0
  236. package/dist/components/{p-54161bad.js → p-0e6f41c7.js} +2 -2
  237. package/dist/components/{p-54161bad.js.map → p-0e6f41c7.js.map} +1 -1
  238. package/dist/components/{p-0c42fafb.js → p-0fd23531.js} +6 -6
  239. package/dist/components/{p-0c42fafb.js.map → p-0fd23531.js.map} +1 -1
  240. package/dist/components/{p-a823b8e9.js → p-1639703f.js} +2 -2
  241. package/dist/components/{p-a823b8e9.js.map → p-1639703f.js.map} +1 -1
  242. package/dist/components/{p-e5c62ea8.js → p-2cc83e0c.js} +3 -3
  243. package/dist/components/{p-e5c62ea8.js.map → p-2cc83e0c.js.map} +1 -1
  244. package/dist/components/{p-3763c9c4.js → p-31478080.js} +3 -3
  245. package/dist/components/{p-3763c9c4.js.map → p-31478080.js.map} +1 -1
  246. package/dist/components/{p-178fa27e.js → p-378e3127.js} +6 -6
  247. package/dist/components/{p-178fa27e.js.map → p-378e3127.js.map} +1 -1
  248. package/dist/components/{p-51876ca1.js → p-429e01f3.js} +3 -3
  249. package/dist/components/p-429e01f3.js.map +1 -0
  250. package/dist/components/p-47d499b4.js +88 -0
  251. package/dist/components/p-47d499b4.js.map +1 -0
  252. package/dist/components/{p-aff3ed68.js → p-5829b9f7.js} +5 -2
  253. package/dist/components/p-5829b9f7.js.map +1 -0
  254. package/dist/components/{p-ee8944f3.js → p-63595ea1.js} +68 -62
  255. package/dist/components/p-63595ea1.js.map +1 -0
  256. package/dist/components/{p-1af3591a.js → p-6f2b257e.js} +3 -3
  257. package/dist/components/{p-1af3591a.js.map → p-6f2b257e.js.map} +1 -1
  258. package/dist/components/{p-4fc01a78.js → p-7112612c.js} +5 -5
  259. package/dist/components/p-7112612c.js.map +1 -0
  260. package/dist/components/{p-7426b20f.js → p-715e5235.js} +3 -3
  261. package/dist/components/{p-7426b20f.js.map → p-715e5235.js.map} +1 -1
  262. package/dist/components/{p-31e262bd.js → p-7b5102c8.js} +5 -5
  263. package/dist/components/{p-31e262bd.js.map → p-7b5102c8.js.map} +1 -1
  264. package/dist/components/{p-fda58a76.js → p-98429fd7.js} +2 -2
  265. package/dist/components/{p-fda58a76.js.map → p-98429fd7.js.map} +1 -1
  266. package/dist/components/p-9e7468e3.js +185 -0
  267. package/dist/components/p-9e7468e3.js.map +1 -0
  268. package/dist/components/{p-75200cc0.js → p-df5d76a5.js} +3 -3
  269. package/dist/components/{p-75200cc0.js.map → p-df5d76a5.js.map} +1 -1
  270. package/dist/components/{p-51459a44.js → p-f2bac2aa.js} +4 -4
  271. package/dist/components/{p-51459a44.js.map → p-f2bac2aa.js.map} +1 -1
  272. package/dist/esm/{index-a1936cd0.js → index-dc2723f3.js} +9 -6
  273. package/dist/esm/index-dc2723f3.js.map +1 -0
  274. package/dist/esm/index.js +6 -1
  275. package/dist/esm/index.js.map +1 -1
  276. package/dist/esm/loader.js +3 -3
  277. package/dist/esm/native.js +3 -3
  278. package/dist/esm/nv-accordion-item.entry.js +2 -2
  279. package/dist/esm/nv-accordion-item.entry.js.map +1 -1
  280. package/dist/esm/nv-accordion.entry.js +6 -6
  281. package/dist/esm/nv-accordion.entry.js.map +1 -1
  282. package/dist/esm/nv-alert.entry.js +2 -2
  283. package/dist/esm/nv-alert.entry.js.map +1 -1
  284. package/dist/esm/nv-avatar.entry.js +2 -2
  285. package/dist/esm/nv-avatar.entry.js.map +1 -1
  286. package/dist/esm/nv-badge_2.entry.js +1 -1
  287. package/dist/esm/nv-breadcrumb.entry.js +2 -2
  288. package/dist/esm/nv-breadcrumb.entry.js.map +1 -1
  289. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  290. package/dist/esm/nv-button.entry.js +3 -9
  291. package/dist/esm/nv-button.entry.js.map +1 -1
  292. package/dist/esm/nv-buttongroup.entry.js +1 -1
  293. package/dist/esm/nv-calendar.entry.js +1 -1
  294. package/dist/esm/nv-col.entry.js +1 -1
  295. package/dist/esm/nv-datagrid.entry.js +172 -5
  296. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  297. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  298. package/dist/esm/nv-dialog.entry.js +32 -29
  299. package/dist/esm/nv-dialog.entry.js.map +1 -1
  300. package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
  301. package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
  302. package/dist/esm/nv-fieldcheckbox.entry.js +2 -2
  303. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  304. package/dist/esm/nv-fielddate.entry.js +51 -26
  305. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  306. package/dist/esm/nv-fielddaterange.entry.js +68 -42
  307. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  308. package/dist/esm/nv-fielddropdown.entry.js +33 -7
  309. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  310. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  311. package/dist/esm/nv-fieldmultiselect.entry.js +187 -156
  312. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  313. package/dist/esm/nv-fieldnumber.entry.js +2 -2
  314. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  315. package/dist/esm/nv-fieldpassword.entry.js +2 -2
  316. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  317. package/dist/esm/nv-fieldradio.entry.js +2 -2
  318. package/dist/esm/nv-fieldradio.entry.js.map +1 -1
  319. package/dist/esm/nv-fieldselect.entry.js +2 -2
  320. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  321. package/dist/esm/nv-fieldslider.entry.js +2 -2
  322. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  323. package/dist/esm/nv-fieldtext.entry.js +2 -2
  324. package/dist/esm/nv-fieldtext.entry.js.map +1 -1
  325. package/dist/esm/nv-fieldtextarea.entry.js +2 -2
  326. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  327. package/dist/esm/nv-fieldtime.entry.js +25 -12
  328. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  329. package/dist/esm/nv-icon.entry.js +2 -2
  330. package/dist/esm/nv-icon.entry.js.map +1 -1
  331. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  332. package/dist/esm/nv-iconbutton_2.entry.js.map +1 -1
  333. package/dist/esm/nv-menu.entry.js +24 -9
  334. package/dist/esm/nv-menu.entry.js.map +1 -1
  335. package/dist/esm/nv-menuitem.entry.js +1 -1
  336. package/dist/esm/nv-notification.entry.js +2 -2
  337. package/dist/esm/nv-notification.entry.js.map +1 -1
  338. package/dist/esm/nv-notificationcontainer.entry.js +1 -1
  339. package/dist/esm/nv-popover.entry.js +67 -61
  340. package/dist/esm/nv-popover.entry.js.map +1 -1
  341. package/dist/esm/nv-row.entry.js +1 -1
  342. package/dist/esm/nv-split.entry.js +335 -0
  343. package/dist/esm/nv-split.entry.js.map +1 -0
  344. package/dist/esm/nv-stack.entry.js +2 -2
  345. package/dist/esm/nv-table.entry.js +216 -310
  346. package/dist/esm/nv-table.entry.js.map +1 -1
  347. package/dist/esm/nv-toggle.entry.js +2 -2
  348. package/dist/esm/nv-toggle.entry.js.map +1 -1
  349. package/dist/esm/nv-togglebutton.entry.js +1 -1
  350. package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
  351. package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
  352. package/dist/esm/nv-tooltip.entry.js +1 -1
  353. package/dist/native/index.esm.js +1 -1
  354. package/dist/native/index.esm.js.map +1 -1
  355. package/dist/native/native.css +1 -1
  356. package/dist/native/native.esm.js +1 -1
  357. package/dist/native/native.esm.js.map +1 -1
  358. package/dist/native/p-107e80c6.entry.js +2 -0
  359. package/dist/native/p-107e80c6.entry.js.map +1 -0
  360. package/dist/native/{p-5c697133.entry.js → p-112d096c.entry.js} +2 -2
  361. package/dist/native/p-14e622e1.entry.js +2 -0
  362. package/dist/native/p-14e622e1.entry.js.map +1 -0
  363. package/dist/native/p-217de553.entry.js +2 -0
  364. package/dist/native/p-217de553.entry.js.map +1 -0
  365. package/dist/native/{p-85f8f11a.entry.js → p-230af58a.entry.js} +2 -2
  366. package/dist/native/p-2364aefa.entry.js +2 -0
  367. package/dist/native/p-2364aefa.entry.js.map +1 -0
  368. package/dist/native/p-23ee0384.entry.js +2 -0
  369. package/dist/native/{p-29f68e07.entry.js.map → p-23ee0384.entry.js.map} +1 -1
  370. package/dist/native/p-26513cbd.entry.js +2 -0
  371. package/dist/native/p-26513cbd.entry.js.map +1 -0
  372. package/dist/native/p-278613a3.entry.js +2 -0
  373. package/dist/native/{p-6cb6679b.entry.js.map → p-278613a3.entry.js.map} +1 -1
  374. package/dist/native/p-2dfd786f.entry.js +2 -0
  375. package/dist/native/{p-29df974e.entry.js.map → p-2dfd786f.entry.js.map} +1 -1
  376. package/dist/native/{p-d0a33e64.js → p-3060df80.js} +3 -3
  377. package/dist/native/p-3060df80.js.map +1 -0
  378. package/dist/native/p-4dc7483d.entry.js +2 -0
  379. package/dist/native/{p-c7b7ffaf.entry.js.map → p-4dc7483d.entry.js.map} +1 -1
  380. package/dist/native/p-4eaf417d.entry.js +13 -0
  381. package/dist/native/p-4eaf417d.entry.js.map +1 -0
  382. package/dist/native/p-5039ceb8.entry.js +2 -0
  383. package/dist/native/p-5039ceb8.entry.js.map +1 -0
  384. package/dist/native/{p-08322093.entry.js → p-52d2c0ae.entry.js} +2 -2
  385. package/dist/native/p-638967bf.entry.js +2 -0
  386. package/dist/native/p-638967bf.entry.js.map +1 -0
  387. package/dist/native/{p-19090193.entry.js → p-647a0765.entry.js} +2 -2
  388. package/dist/native/p-68dc02be.entry.js +2 -0
  389. package/dist/native/p-68dc02be.entry.js.map +1 -0
  390. package/dist/native/p-6d427897.entry.js +2 -0
  391. package/dist/native/{p-92931ab8.entry.js.map → p-6d427897.entry.js.map} +1 -1
  392. package/dist/native/{p-1504e28b.entry.js → p-701b48a4.entry.js} +2 -2
  393. package/dist/native/p-7c9bf981.entry.js +2 -0
  394. package/dist/native/p-835abdb9.entry.js +2 -0
  395. package/dist/native/{p-f5120223.entry.js.map → p-835abdb9.entry.js.map} +1 -1
  396. package/dist/native/{p-464bb197.entry.js → p-83765537.entry.js} +2 -2
  397. package/dist/native/p-88f9fca5.entry.js +2 -0
  398. package/dist/native/p-88f9fca5.entry.js.map +1 -0
  399. package/dist/native/{p-d2c9247b.entry.js → p-8e423742.entry.js} +3 -3
  400. package/dist/native/{p-d2c9247b.entry.js.map → p-8e423742.entry.js.map} +1 -1
  401. package/dist/native/{p-d882f417.entry.js → p-91fab6c2.entry.js} +2 -2
  402. package/dist/native/p-91fab6c2.entry.js.map +1 -0
  403. package/dist/native/p-95184ea2.entry.js +2 -0
  404. package/dist/native/p-95184ea2.entry.js.map +1 -0
  405. package/dist/native/p-9613087c.entry.js +2 -0
  406. package/dist/native/{p-2781637d.entry.js.map → p-9613087c.entry.js.map} +1 -1
  407. package/dist/native/{p-94dc9c41.entry.js → p-9d7e099f.entry.js} +2 -2
  408. package/dist/native/p-a6fc987a.entry.js +2 -0
  409. package/dist/native/p-a6fc987a.entry.js.map +1 -0
  410. package/dist/native/{p-1235c007.entry.js → p-acabac31.entry.js} +2 -2
  411. package/dist/native/p-acada158.entry.js +2 -0
  412. package/dist/native/p-acada158.entry.js.map +1 -0
  413. package/dist/native/p-b06f0e61.entry.js +2 -0
  414. package/dist/native/p-b06f0e61.entry.js.map +1 -0
  415. package/dist/native/p-b4c15f25.entry.js +2 -0
  416. package/dist/native/p-b4c15f25.entry.js.map +1 -0
  417. package/dist/native/{p-74b129e9.entry.js → p-bcf41cd0.entry.js} +2 -2
  418. package/dist/native/{p-c66565f8.entry.js → p-cb0293ec.entry.js} +2 -2
  419. package/dist/native/p-ce97ce24.entry.js +2 -0
  420. package/dist/native/p-ce97ce24.entry.js.map +1 -0
  421. package/dist/native/p-d0db5e72.entry.js +2 -0
  422. package/dist/native/p-d0db5e72.entry.js.map +1 -0
  423. package/dist/native/p-d7f444fb.entry.js +2 -0
  424. package/dist/native/p-d7f444fb.entry.js.map +1 -0
  425. package/dist/native/p-d878e90a.entry.js +2 -0
  426. package/dist/native/p-d878e90a.entry.js.map +1 -0
  427. package/dist/native/{p-e2c99ce2.entry.js → p-d94bf052.entry.js} +2 -2
  428. package/dist/native/p-ddc41f1f.entry.js +2 -0
  429. package/dist/native/p-ddc41f1f.entry.js.map +1 -0
  430. package/dist/native/p-f30e0be6.entry.js +2 -0
  431. package/dist/native/p-f30e0be6.entry.js.map +1 -0
  432. package/dist/native/p-f3c73492.entry.js +2 -0
  433. package/dist/native/{p-b32d0a5a.entry.js.map → p-f3c73492.entry.js.map} +1 -1
  434. package/dist/native/{p-9c5d6827.entry.js → p-fa78d8eb.entry.js} +2 -2
  435. package/dist/types/components/nv-accordion/nv-accordion.d.ts +2 -4
  436. package/dist/types/components/nv-button/nv-button.d.ts +0 -1
  437. package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -8
  438. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +6 -3
  439. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -4
  440. package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +3 -1
  441. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +12 -11
  442. package/dist/types/components/nv-fieldtime/nv-fieldtime.d.ts +1 -0
  443. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  444. package/dist/types/components/nv-menu/nv-menu.d.ts +4 -1
  445. package/dist/types/components/nv-popover/nv-popover.d.ts +10 -8
  446. package/dist/types/components/nv-split/nv-split.d.ts +128 -0
  447. package/dist/types/components/nv-split/nv-split.docs.d.ts +4 -0
  448. package/dist/types/components/nv-table/nv-table.d.ts +6 -87
  449. package/dist/types/components/nv-table/nv-table.utils.d.ts +129 -0
  450. package/dist/types/components/nv-table/test/nv-table.utils.test.d.ts +1 -0
  451. package/dist/types/components/nv-togglebuttongroup/nv-togglebuttongroup.d.ts +0 -2
  452. package/dist/types/components.d.ts +102 -200
  453. package/dist/vscode-data.json +43 -41
  454. package/hydrate/index.js +1148 -783
  455. package/hydrate/index.mjs +1148 -783
  456. package/package.json +10 -10
  457. package/dist/cjs/dom.utils-4d43f69a.js +0 -170
  458. package/dist/cjs/dom.utils-4d43f69a.js.map +0 -1
  459. package/dist/cjs/index-c56424e5.js.map +0 -1
  460. package/dist/cjs/nv-tablecolumn.cjs.entry.js +0 -21
  461. package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +0 -1
  462. package/dist/collection/components/nv-table/nv-table.css +0 -35
  463. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js +0 -6
  464. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js.map +0 -1
  465. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +0 -52
  466. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +0 -1
  467. package/dist/components/nv-tablecolumn.js +0 -38
  468. package/dist/components/nv-tablecolumn.js.map +0 -1
  469. package/dist/components/p-00cbf2a1.js.map +0 -1
  470. package/dist/components/p-4fc01a78.js.map +0 -1
  471. package/dist/components/p-51876ca1.js.map +0 -1
  472. package/dist/components/p-5d14ba3f.js +0 -88
  473. package/dist/components/p-5d14ba3f.js.map +0 -1
  474. package/dist/components/p-95857e4f.js +0 -191
  475. package/dist/components/p-95857e4f.js.map +0 -1
  476. package/dist/components/p-aff3ed68.js.map +0 -1
  477. package/dist/components/p-cb34aa4f.js +0 -167
  478. package/dist/components/p-cb34aa4f.js.map +0 -1
  479. package/dist/components/p-ee8944f3.js.map +0 -1
  480. package/dist/esm/dom.utils-ac71e0ef.js +0 -167
  481. package/dist/esm/dom.utils-ac71e0ef.js.map +0 -1
  482. package/dist/esm/index-a1936cd0.js.map +0 -1
  483. package/dist/esm/nv-tablecolumn.entry.js +0 -17
  484. package/dist/esm/nv-tablecolumn.entry.js.map +0 -1
  485. package/dist/native/p-0a99c6fb.entry.js +0 -2
  486. package/dist/native/p-0a99c6fb.entry.js.map +0 -1
  487. package/dist/native/p-1ad1bff9.entry.js +0 -2
  488. package/dist/native/p-1ad1bff9.entry.js.map +0 -1
  489. package/dist/native/p-1c83f540.entry.js +0 -2
  490. package/dist/native/p-1c83f540.entry.js.map +0 -1
  491. package/dist/native/p-224b1a01.entry.js +0 -2
  492. package/dist/native/p-224b1a01.entry.js.map +0 -1
  493. package/dist/native/p-234cfa2e.entry.js +0 -2
  494. package/dist/native/p-2781637d.entry.js +0 -2
  495. package/dist/native/p-29df974e.entry.js +0 -2
  496. package/dist/native/p-29f68e07.entry.js +0 -2
  497. package/dist/native/p-45506c37.entry.js +0 -2
  498. package/dist/native/p-45506c37.entry.js.map +0 -1
  499. package/dist/native/p-48774d0c.entry.js +0 -13
  500. package/dist/native/p-48774d0c.entry.js.map +0 -1
  501. package/dist/native/p-4ec61dec.entry.js +0 -2
  502. package/dist/native/p-4ec61dec.entry.js.map +0 -1
  503. package/dist/native/p-5f0776cb.entry.js +0 -2
  504. package/dist/native/p-5f0776cb.entry.js.map +0 -1
  505. package/dist/native/p-6c7a9a21.entry.js +0 -2
  506. package/dist/native/p-6c7a9a21.entry.js.map +0 -1
  507. package/dist/native/p-6cb6679b.entry.js +0 -2
  508. package/dist/native/p-6d13a851.entry.js +0 -2
  509. package/dist/native/p-6d13a851.entry.js.map +0 -1
  510. package/dist/native/p-87784622.entry.js +0 -2
  511. package/dist/native/p-87784622.entry.js.map +0 -1
  512. package/dist/native/p-92931ab8.entry.js +0 -2
  513. package/dist/native/p-9a46baa9.entry.js +0 -2
  514. package/dist/native/p-9a46baa9.entry.js.map +0 -1
  515. package/dist/native/p-a34beedf.entry.js +0 -2
  516. package/dist/native/p-a34beedf.entry.js.map +0 -1
  517. package/dist/native/p-a69dbcef.entry.js +0 -2
  518. package/dist/native/p-a69dbcef.entry.js.map +0 -1
  519. package/dist/native/p-b32d0a5a.entry.js +0 -2
  520. package/dist/native/p-bc01787b.entry.js +0 -2
  521. package/dist/native/p-bc01787b.entry.js.map +0 -1
  522. package/dist/native/p-c7b7ffaf.entry.js +0 -2
  523. package/dist/native/p-cb34aa4f.js +0 -2
  524. package/dist/native/p-cb34aa4f.js.map +0 -1
  525. package/dist/native/p-cea942b9.entry.js +0 -2
  526. package/dist/native/p-cea942b9.entry.js.map +0 -1
  527. package/dist/native/p-d0a33e64.js.map +0 -1
  528. package/dist/native/p-d0ef1bbb.entry.js +0 -2
  529. package/dist/native/p-d0ef1bbb.entry.js.map +0 -1
  530. package/dist/native/p-d882f417.entry.js.map +0 -1
  531. package/dist/native/p-dd023fd6.entry.js +0 -2
  532. package/dist/native/p-dd023fd6.entry.js.map +0 -1
  533. package/dist/native/p-e765a624.entry.js +0 -2
  534. package/dist/native/p-e765a624.entry.js.map +0 -1
  535. package/dist/native/p-f0cbfb3d.entry.js +0 -2
  536. package/dist/native/p-f0cbfb3d.entry.js.map +0 -1
  537. package/dist/native/p-f5120223.entry.js +0 -2
  538. package/dist/native/p-fa177c39.entry.js +0 -2
  539. package/dist/native/p-fa177c39.entry.js.map +0 -1
  540. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +0 -13
  541. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.docs.d.ts +0 -4
  542. /package/dist/native/{p-5c697133.entry.js.map → p-112d096c.entry.js.map} +0 -0
  543. /package/dist/native/{p-85f8f11a.entry.js.map → p-230af58a.entry.js.map} +0 -0
  544. /package/dist/native/{p-08322093.entry.js.map → p-52d2c0ae.entry.js.map} +0 -0
  545. /package/dist/native/{p-19090193.entry.js.map → p-647a0765.entry.js.map} +0 -0
  546. /package/dist/native/{p-1504e28b.entry.js.map → p-701b48a4.entry.js.map} +0 -0
  547. /package/dist/native/{p-234cfa2e.entry.js.map → p-7c9bf981.entry.js.map} +0 -0
  548. /package/dist/native/{p-464bb197.entry.js.map → p-83765537.entry.js.map} +0 -0
  549. /package/dist/native/{p-94dc9c41.entry.js.map → p-9d7e099f.entry.js.map} +0 -0
  550. /package/dist/native/{p-1235c007.entry.js.map → p-acabac31.entry.js.map} +0 -0
  551. /package/dist/native/{p-74b129e9.entry.js.map → p-bcf41cd0.entry.js.map} +0 -0
  552. /package/dist/native/{p-c66565f8.entry.js.map → p-cb0293ec.entry.js.map} +0 -0
  553. /package/dist/native/{p-e2c99ce2.entry.js.map → p-d94bf052.entry.js.map} +0 -0
  554. /package/dist/native/{p-9c5d6827.entry.js.map → p-fa78d8eb.entry.js.map} +0 -0
@@ -1,9 +1,9 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a1936cd0.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-dc2723f3.js';
2
2
  import { I as Inputmask } from './inputmask-edcad3c1.js';
3
3
  import { v as v4 } from './v4-a79185f4.js';
4
4
  import './_commonjsHelpers-1789f0cf.js';
5
5
 
6
- const nvFielddaterangeCss = "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-fielddaterange{--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-fielddaterange[fluid]:not([fluid=false]){max-width:unset}nv-fielddaterange[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-fielddaterange[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-fielddaterange[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-fielddaterange[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fielddaterange 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-fielddaterange nv-popover{width:100%;display:block}nv-fielddaterange nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto;z-index:2}nv-fielddaterange nv-popover [slot=content]{display:block;width:100%}nv-fielddaterange .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-fielddaterange .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-fielddaterange .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddaterange .input-wrapper .input-container:focus-within,nv-fielddaterange .input-wrapper .input-container:focus-within:hover,nv-fielddaterange .input-wrapper .input-container:focus,nv-fielddaterange .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-fielddaterange .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-fielddaterange .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-fielddaterange .input-wrapper .input-container:focus-within,nv-fielddaterange .input-wrapper .input-container:focus-within:hover,nv-fielddaterange .input-wrapper .input-container:focus,nv-fielddaterange .input-wrapper .input-container:focus:hover{box-shadow:none;border-color:var(--nv-field-border-default)}nv-fielddaterange .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%;width:100%}nv-fielddaterange .input-wrapper .input-container input:focus{outline:none}nv-fielddaterange .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-fielddaterange .input-wrapper .input-container input[type=password]::-ms-clear,nv-fielddaterange .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddaterange .input-wrapper .input-container input:focus-within,nv-fielddaterange .input-wrapper .input-container input:focus-within:hover,nv-fielddaterange .input-wrapper .input-container input:focus,nv-fielddaterange .input-wrapper .input-container input:focus:hover{outline:var(--focus-outline-stroke) solid var(--nv-field-border-focus);outline-offset:0px}nv-fielddaterange .input-wrapper .input-container input:focus-within~.range-separator,nv-fielddaterange .input-wrapper .input-container input:focus-within:hover~.range-separator,nv-fielddaterange .input-wrapper .input-container input:focus~.range-separator,nv-fielddaterange .input-wrapper .input-container input:focus:hover~.range-separator{background-color:transparent}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton:last-of-type{border-top-right-radius:var(--form-field-radius);border-bottom-right-radius:var(--form-field-radius)}nv-fielddaterange .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddaterange .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-fielddaterange .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-fielddaterange .range-inputs{display:flex;align-items:center;gap:0;width:100%;z-index:1}nv-fielddaterange .range-inputs input{flex:1;border:none;outline:none;padding:0;font-size:var(--form-field-font-size);color:var(--components-form-field-content-text);background:transparent;min-width:0}nv-fielddaterange .range-inputs input::placeholder{color:var(--components-form-field-content-placeholder)}nv-fielddaterange .range-inputs input:disabled{cursor:not-allowed;color:var(--components-form-field-content-text);background-color:var(--components-form-field-background-disabled)}nv-fielddaterange .range-inputs .range-separator{width:1px;height:1.5rem;background-color:var(--color-content-medium-border)}";
6
+ const nvFielddaterangeCss = "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-fielddaterange{--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-fielddaterange[fluid]:not([fluid=false]){max-width:unset}nv-fielddaterange[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-fielddaterange[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-fielddaterange[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-fielddaterange[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:var(--font-weight-high-emphasis)}nv-fielddaterange label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--form-label-line-height)}nv-fielddaterange nv-popover{width:100%;display:block}nv-fielddaterange nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto;z-index:2}nv-fielddaterange nv-popover [slot=content]{display:block;width:100%}nv-fielddaterange .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-fielddaterange .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-fielddaterange .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddaterange .input-wrapper .input-container:focus-within,nv-fielddaterange .input-wrapper .input-container:focus-within:hover,nv-fielddaterange .input-wrapper .input-container:focus,nv-fielddaterange .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-fielddaterange .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-fielddaterange .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-fielddaterange .input-wrapper .input-container:focus-within,nv-fielddaterange .input-wrapper .input-container:focus-within:hover,nv-fielddaterange .input-wrapper .input-container:focus,nv-fielddaterange .input-wrapper .input-container:focus:hover{box-shadow:none;border-color:var(--nv-field-border-default)}nv-fielddaterange .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:var(--font-weight-medium-emphasis);line-height:var(--form-field-line-height);width:100%;width:100%}nv-fielddaterange .input-wrapper .input-container input:focus{outline:none}nv-fielddaterange .input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:var(--font-weight-low-emphasis);line-height:var(--form-field-line-height)}nv-fielddaterange .input-wrapper .input-container input[type=password]::-ms-clear,nv-fielddaterange .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddaterange .input-wrapper .input-container input:focus-within,nv-fielddaterange .input-wrapper .input-container input:focus-within:hover,nv-fielddaterange .input-wrapper .input-container input:focus,nv-fielddaterange .input-wrapper .input-container input:focus:hover{outline:var(--focus-outline-stroke) solid var(--nv-field-border-focus);outline-offset:0px}nv-fielddaterange .input-wrapper .input-container input:focus-within~.range-separator,nv-fielddaterange .input-wrapper .input-container input:focus-within:hover~.range-separator,nv-fielddaterange .input-wrapper .input-container input:focus~.range-separator,nv-fielddaterange .input-wrapper .input-container input:focus:hover~.range-separator{background-color:transparent}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddaterange .input-wrapper .input-container>nv-iconbutton:last-of-type{border-top-right-radius:var(--form-field-radius);border-bottom-right-radius:var(--form-field-radius)}nv-fielddaterange .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddaterange .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fielddaterange .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:var(--font-family-default), var(--font-family-fallback), 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-fielddaterange .range-inputs{display:flex;align-items:center;gap:0;width:100%;z-index:1}nv-fielddaterange .range-inputs input{flex:1;border:none;outline:none;padding:0;font-size:var(--form-field-font-size);color:var(--components-form-field-content-text);background:transparent;min-width:0}nv-fielddaterange .range-inputs input::placeholder{color:var(--components-form-field-content-placeholder)}nv-fielddaterange .range-inputs input:disabled{cursor:not-allowed;color:var(--components-form-field-content-text);background-color:var(--components-form-field-background-disabled)}nv-fielddaterange .range-inputs .range-separator{width:1px;height:1.5rem;background-color:var(--color-content-medium-border)}";
7
7
  const NvFielddaterangeStyle0 = nvFielddaterangeCss;
8
8
 
9
9
  const NvFielddaterange = class {
@@ -139,6 +139,7 @@ const NvFielddaterange = class {
139
139
  };
140
140
  /**
141
141
  * Handles the input event on the start input element.
142
+ * Updates internal state and calendar navigation without emitting events.
142
143
  * @param {Event} event - The input event
143
144
  */
144
145
  this.handleStartInput = (event) => {
@@ -147,13 +148,17 @@ const NvFielddaterange = class {
147
148
  return;
148
149
  }
149
150
  const input = event.target;
151
+ // Always update startValue to keep state in sync
150
152
  this.startValue = input.value;
151
- // Update unified value prop
152
- this.value = `${input.value},${this.endValue}`;
153
- // Temporarily enable navigation for keyboard input
154
- if (this.calendarElement) {
153
+ // Update calendar value for navigation (without triggering events)
154
+ if (this.calendarElement && input.value) {
155
+ // Temporarily enable navigation for keyboard input
155
156
  this.calendarElement.removeAttribute('data-prevent-navigation');
156
- this.updateCalendarValue();
157
+ // Update calendar's rangeValue to allow navigation
158
+ const currentValue = `${input.value},${this.endValue}`;
159
+ if (this.calendarElement.value !== currentValue) {
160
+ this.calendarElement.value = currentValue;
161
+ }
157
162
  // Restore navigation prevention after update
158
163
  setTimeout(() => {
159
164
  if (this.calendarElement) {
@@ -164,6 +169,7 @@ const NvFielddaterange = class {
164
169
  };
165
170
  /**
166
171
  * Handles the input event on the end input element.
172
+ * Updates internal state and calendar navigation without emitting events.
167
173
  * @param {Event} event - The input event
168
174
  */
169
175
  this.handleEndInput = (event) => {
@@ -172,13 +178,17 @@ const NvFielddaterange = class {
172
178
  return;
173
179
  }
174
180
  const input = event.target;
181
+ // Always update endValue to keep state in sync
175
182
  this.endValue = input.value;
176
- // Update unified value prop
177
- this.value = `${this.startValue},${input.value}`;
178
- // Temporarily enable navigation for keyboard input
179
- if (this.calendarElement) {
183
+ // Update calendar value for navigation (without triggering events)
184
+ if (this.calendarElement && input.value) {
185
+ // Temporarily enable navigation for keyboard input
180
186
  this.calendarElement.removeAttribute('data-prevent-navigation');
181
- this.updateCalendarValue();
187
+ // Update calendar's rangeValue to allow navigation
188
+ const currentValue = `${this.startValue},${input.value}`;
189
+ if (this.calendarElement.value !== currentValue) {
190
+ this.calendarElement.value = currentValue;
191
+ }
182
192
  // Restore navigation prevention after update
183
193
  setTimeout(() => {
184
194
  if (this.calendarElement) {
@@ -211,11 +221,14 @@ const NvFielddaterange = class {
211
221
  };
212
222
  /**
213
223
  * Toggles the opening/closing of the popover.
224
+ * @param {MouseEvent} event - The click event.
214
225
  */
215
- this.toggleCalendar = () => {
226
+ this.toggleCalendar = (event) => {
216
227
  if (this.readonly || this.disabled) {
217
228
  return;
218
229
  }
230
+ // Stop propagation to prevent closing parent dialogs
231
+ event.stopPropagation();
219
232
  this.open = !this.open;
220
233
  };
221
234
  }
@@ -238,11 +251,6 @@ const NvFielddaterange = class {
238
251
  };
239
252
  return formatMap[format] || 'dd/mm/yyyy';
240
253
  }
241
- /**
242
- * Update the calendar's rangeValue property without forcing month change
243
- */
244
- updateCalendarValue() {
245
- }
246
254
  /**
247
255
  * Clears the current selection and resets the date range field to its initial state.
248
256
  * This method can be called programmatically to reset the field.
@@ -294,22 +302,27 @@ const NvFielddaterange = class {
294
302
  this.endValue = '';
295
303
  }
296
304
  },
297
- oncomplete: () => {
298
- if (/[a-zA-Z]/g.test(this.value))
299
- return;
300
- const values = this.value
301
- .split(',')
302
- .map(v => v.trim())
303
- .filter(Boolean);
304
- if (values.length < 2)
305
- return;
306
- // If valid emit change event
307
- this.valueChanged.emit(this.value);
308
- // Legacy support (deprecated)
309
- this.dateRangeChange.emit({
310
- start: this.startValue,
311
- end: input.value,
312
- });
305
+ oncomplete: (e) => {
306
+ const input = e.target;
307
+ // Update the corresponding state based on which input completed
308
+ if (input.id === this.startInputId) {
309
+ this.startValue = input.value;
310
+ }
311
+ else if (input.id === this.endInputId) {
312
+ this.endValue = input.value;
313
+ }
314
+ // Update unified value
315
+ const newValue = `${this.startValue},${this.endValue}`;
316
+ // Only emit if both dates are filled and value changed
317
+ if (this.startValue && this.endValue && this.value !== newValue) {
318
+ this.value = newValue;
319
+ this.valueChanged.emit(this.value);
320
+ // Legacy support (deprecated)
321
+ this.dateRangeChange.emit({
322
+ start: this.startValue,
323
+ end: this.endValue,
324
+ });
325
+ }
313
326
  },
314
327
  });
315
328
  inputMask.mask(input);
@@ -370,17 +383,23 @@ const NvFielddaterange = class {
370
383
  }
371
384
  /**
372
385
  * Handles the range date selection event from nv-calendar.
386
+ * Stops propagation to prevent duplicate events with handleCalendarValueChanged.
373
387
  * @param {CustomEvent<DateRange>} event - The custom event
374
388
  */
375
389
  handleRangeDateChange(event) {
390
+ // Stop propagation to prevent this from being handled by handleCalendarValueChanged
391
+ event.stopPropagation();
376
392
  const { start, end } = event.detail || {};
377
393
  // Check that both dates are defined
378
394
  if (start && end) {
379
395
  this.startValue = start;
380
396
  this.endValue = end;
381
397
  // Update unified value prop (like nv-calendar)
382
- this.value = `${start},${end}`;
383
- this.valueChanged.emit(this.value);
398
+ const newValue = `${start},${end}`;
399
+ if (this.value !== newValue) {
400
+ this.value = newValue;
401
+ this.valueChanged.emit(this.value);
402
+ }
384
403
  // Legacy support (deprecated)
385
404
  this.dateRangeChange.emit({
386
405
  start: this.startValue,
@@ -393,9 +412,16 @@ const NvFielddaterange = class {
393
412
  }
394
413
  /**
395
414
  * Handles the unified value change event from nv-calendar
415
+ * Note: This might not be called if rangeDateChange stops propagation first.
396
416
  * @param {CustomEvent<string>} event - The custom event
397
417
  */
398
418
  handleCalendarValueChanged(event) {
419
+ // Only handle events from the calendar, not from self
420
+ if (event.target === this.el) {
421
+ return;
422
+ }
423
+ // Stop propagation to prevent parent components from receiving calendar events
424
+ event.stopPropagation();
399
425
  const newValue = event.detail || '';
400
426
  if (newValue !== this.value) {
401
427
  this.value = newValue;
@@ -488,12 +514,12 @@ const NvFielddaterange = class {
488
514
  /****************************************************************************/
489
515
  //#region RENDER
490
516
  render() {
491
- return (h(Host, { key: '1f11c1e95c0e1cdc54cc0fc22c6bb3c629d35560' }, ((this.label && this.label.length > 0) ||
492
- this.el.querySelector('[slot="label"]')) && (h("label", { key: 'b7f2d251de0f4e9e8429095d0c74197a963ddb45', htmlFor: this.startInputId }, h("slot", { key: 'bdf0f487baf834fcfb48f81a5d4ba0ad786961f2', name: "label" }, this.label))), h("nv-popover", { key: 'cc25f182c4f6fb8dc5a8d70c9f6a5ab28eaf05bc', ref: el => (this.popoverElement = el), id: this.popoverId, triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { key: 'c2e0214f5e66baf986dcd4de7ea8a83044f90185', slot: "trigger", class: "input-wrapper" }, h("slot", { key: '341b161e3b993305e4ddd6bdfa9138cefd5a8b06', name: "before-input" }), h("div", { key: '4ebf9b5ea2c188cd5b4e12bcdd800d040339ac41', class: "input-container" }, h("slot", { key: 'af19b28485924209146b42db39ec1295609e96e1', name: "leading-input" }), h("div", { key: '93bb5f085cc3da0eb81794bf106597c90b80be09', class: "range-inputs" }, h("input", { key: '3a6143d6480bf57b4d3118cb293de529f4443c64', id: this.startInputId, type: "text", placeholder: this.startPlaceholder ||
493
- this.convertToInputmaskFormat(this.dateFormat), 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" }), h("div", { key: '5b719fa2d4cf0505a2198fcbfb0aed622f3cd1d8', class: "range-separator" }), h("input", { key: 'a126155bb80bcc9926e7b6eae9c02a7f88c447ef', id: this.endInputId, type: "text", placeholder: this.endPlaceholder ||
494
- this.convertToInputmaskFormat(this.dateFormat), 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 && (h("nv-icon", { key: 'bb7ae5511eb9f2dbba73376ad36063a2143336a6', name: "alert-circle", class: "validation", size: "md" })), this.success && (h("nv-icon", { key: '0762e12a2686d58734b00e7fcc176231696d2e31', name: "circle-check", class: "validation", size: "md" })), h("nv-iconbutton", { key: 'dca1f92d86b3e09d3826c8042c730f2ac1cc51d7', 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 })), h("slot", { key: 'ef46e31ef47bb2b9aa485b69b65af2ec93ba94ab', name: "after-input" })), h("div", { key: 'b96f6ee83f4d00a1cc74cc2a03a731a557c6fda5', slot: "content" }, h("nv-calendar", { key: '0f7222572196deeb5c40899fea3b97dc12180665', 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) ||
495
- this.el.querySelector('[slot="description"]')) && (h("div", { key: '17b857ca9a4529b8febd98a9477a6b176c7ba931', class: "description" }, h("slot", { key: 'c03f5413d16ca9adac251ad68d5f7a817520a5d9', name: "description" }, this.description))), (this.errorDescription ||
496
- this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '4d246d32982bf90043fd3c46a24a2eebd9e2ecd7', hidden: !this.error, class: "error-description" }, this.el.querySelector('[slot="error-description"]') ? (h("slot", { name: "error-description" })) : (this.errorDescription))), h("slot", { key: '7cbbc91895e1772e0b1750e61db78b97285f8b85' })));
517
+ return (h(Host, { key: '59ecd9fc59245a97bbbeac742552b350708a1528' }, ((this.label && this.label.length > 0) ||
518
+ this.el.querySelector('[slot="label"]')) && (h("label", { key: '5b0def9db7f90f9828bc8c08b728784e393c109a', htmlFor: this.startInputId }, h("slot", { key: '2b6abe7f34951838636b38cd9bb1a0ed75d6dfbe', name: "label" }, this.label))), h("nv-popover", { key: '5407e344f94f1a168e146df52ea04dc857c95aab', ref: el => (this.popoverElement = el), id: this.popoverId, triggerMode: "controlled", placement: "bottom-start", strategy: "fixed", open: this.open }, h("div", { key: 'c34e8ae161ae52bf26686eb4ef3c0f522538f97c', slot: "trigger", class: "input-wrapper" }, h("slot", { key: 'dee7a416efa8608661edfdbfb6607ab325d20778', name: "before-input" }), h("div", { key: 'b1612645dadbb20c131ec1db6ea790cf03db8645', class: "input-container" }, h("slot", { key: '2c978351dc56c751b775641e91d12ac8b0e7a9c5', name: "leading-input" }), h("div", { key: 'c8a69b1174c5ed62aeb7408c20ecc614ea735e72', class: "range-inputs" }, h("input", { key: '534ef1aebfbb47b2bd9627d1d25701b3b9b50b59', id: this.startInputId, type: "text", placeholder: this.startPlaceholder ||
519
+ this.convertToInputmaskFormat(this.dateFormat), 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" }), h("div", { key: '36d35e60c3aadc7c8252f14dd7d2565e3be8ecde', class: "range-separator" }), h("input", { key: 'e068562f20e2ba20b85b196c1257bf5d9d37c522', id: this.endInputId, type: "text", placeholder: this.endPlaceholder ||
520
+ this.convertToInputmaskFormat(this.dateFormat), 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 && (h("nv-icon", { key: '4eb8a4a4e7c6f26d2d182166935df39c7bce8bc4', name: "alert-circle", class: "validation", size: "md" })), this.success && (h("nv-icon", { key: '796a276976661bb8506a14e6e05156b672950368', name: "circle-check", class: "validation", size: "md" })), h("nv-iconbutton", { key: '9f4115cb1e9ce79f430c1674a2bf39abed781b8b', class: "toggle-calendar-icon", name: "calendar", size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide calendar' : 'Show calendar', onClick: this.toggleCalendar, tabIndex: this.disabled ? -1 : 0 })), h("slot", { key: '12f19584c116d915c8c292f1e851fd149535991d', name: "after-input" })), h("div", { key: 'ddfa1ee0a53cdd7dd613abfe657321bddcd12e7c', slot: "content" }, h("nv-calendar", { key: '618e19c1c53a9c97ed6b857368efdef03e8eee32', 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) ||
521
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: '87d197b39117083736b0b6f7737072a2c95e7119', class: "description" }, h("slot", { key: '5ee232c12b57e5ce07de09b1bc2968d0bc91ec9d', name: "description" }, this.description))), (this.errorDescription ||
522
+ this.el.querySelector('[slot="error-description"]')) && (h("div", { key: 'f4dd844d8c628a33dd7f59e0c9de3f50154ea00e', hidden: !this.error, class: "error-description" }, this.el.querySelector('[slot="error-description"]') ? (h("slot", { name: "error-description" })) : (this.errorDescription))), h("slot", { key: 'af49f08db15166ca7724b5dd08e18bdc06f0ace0' })));
497
523
  }
498
524
  get el() { return getElement(this); }
499
525
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"nv-fielddaterange.entry.js","mappings":"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","names":["uuidv4"],"sources":["src/components/nv-fielddaterange/styles/nv-fielddaterange.scss?tag=nv-fielddaterange","src/components/nv-fielddaterange/nv-fielddaterange.tsx"],"sourcesContent":["@import '../../../styles/form-field';\n@import './mixins';\n\nnv-fielddaterange {\n @include form-field-variables();\n @include form-field-root();\n\n &[fluid]:not([fluid='false']) {\n @include form-field-fluid();\n }\n\n &[readonly]:not([readonly='false']) {\n @include form-field-readonly-variables();\n }\n\n &[error]:not([error='false']) {\n @include form-field-error-variables();\n }\n\n &[success]:not([success='false']) {\n @include form-field-success-variables();\n }\n\n &[required]:not([required='false']) label {\n @include form-field-label-required();\n }\n\n label {\n @include form-field-label();\n }\n\n nv-popover {\n width: 100%;\n display: block;\n\n [data-scope='popover'] {\n padding: 0;\n background-color: var(--components-list-dropdown-background);\n border: 1px solid var(--components-list-dropdown-border);\n width: auto;\n z-index: 2;\n }\n\n [slot='content'] {\n display: block;\n width: 100%;\n }\n }\n\n .input-wrapper {\n @include form-field-input-wrapper();\n display: flex;\n align-items: center;\n gap: 8px;\n\n .input-container {\n @include form-field-input-container();\n\n &:focus-within,\n &:focus-within:hover,\n &:focus,\n &:focus:hover {\n box-shadow: none;\n border-color: var(--nv-field-border-default);\n }\n\n input {\n @include form-field-input();\n width: 100%;\n &:focus-within,\n &:focus-within:hover,\n &:focus,\n &:focus:hover {\n outline: var(--focus-outline-stroke) solid var(--nv-field-border-focus);\n outline-offset: 0px;\n & ~ .range-separator {\n background-color: transparent;\n }\n }\n }\n\n > nv-iconbutton {\n @include form-field-action();\n }\n\n nv-icon.validation {\n @include form-field-icon();\n }\n }\n }\n\n .description {\n @include form-field-description();\n }\n\n .error-description {\n @include form-field-error-description();\n }\n\n .range-inputs {\n display: flex;\n align-items: center;\n gap: 0;\n width: 100%;\n z-index: 1;\n\n input {\n flex: 1;\n border: none;\n outline: none;\n padding: 0;\n font-size: var(--form-field-font-size);\n color: var(--components-form-field-content-text);\n background: transparent;\n min-width: 0; // to avoid overflow\n\n &::placeholder {\n color: var(--components-form-field-content-placeholder);\n }\n\n &:disabled {\n cursor: not-allowed;\n color: var(--components-form-field-content-text);\n background-color: var(--components-form-field-background-disabled);\n }\n }\n\n .range-separator {\n @include range-separator();\n }\n }\n}\n","import {\n Component,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Listen,\n Host,\n Watch,\n Method,\n} from '@stencil/core';\nimport Inputmask from 'inputmask';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * Extends HTMLInputElement to include the inputmask property.\n */\ninterface HTMLInputElementWithInputmask extends HTMLInputElement {\n /**\n * The inputmask instance that provides masking functionality.\n */\n inputmask?: {\n /**\n * Removes the inputmask instance.\n */\n remove: () => void;\n };\n}\n\n/**\n * @slot default - Child content of the component.\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fielddaterange',\n styleUrl: 'styles/nv-fielddaterange.scss',\n shadow: false,\n})\nexport class NvFielddaterange {\n @Element() el!: HTMLNvFielddaterangeElement;\n private popoverElement!: HTMLNvPopoverElement;\n private calendarElement!: HTMLNvCalendarElement;\n private popoverId: string = uuidv4();\n private contentRef?: HTMLDivElement;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the start input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly startInputId: string = uuidv4();\n\n /**\n * Sets the ID for the end input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly endInputId: string = uuidv4();\n\n /**\n * Text displayed as label. A slot label can override this prop.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Description displayed below the input. A slot description can override this prop.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * Placeholder for the start input field.\n */\n @Prop({ reflect: true })\n readonly startPlaceholder: string;\n\n /**\n * Placeholder for the end input field.\n */\n @Prop({ reflect: true })\n readonly endPlaceholder: string;\n\n /**\n * Name attribute for the start input.\n */\n @Prop({ reflect: true })\n readonly startName: string;\n\n /**\n * Name attribute for the end input.\n */\n @Prop({ reflect: true })\n readonly endName: string;\n\n /**\n * Disables both input fields.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Sets both input fields as read-only.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Marks both input fields as required.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Indicates an error state.\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * Error description. A slot error-description can override this prop.\n */\n @Prop({ reflect: true })\n readonly errorDescription?: string;\n\n /**\n * Indicates a success state.\n */\n @Prop({ reflect: true })\n readonly success: boolean = false;\n\n /**\n * Autofocus the start input when the component is mounted.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n /**\n * The initial value of the date range (in string format).\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n value: string = '';\n\n /**\n * The current value of the start date in string format.\n */\n @State()\n startValue: string = '';\n\n /**\n * The current value of the end date in string format.\n */\n @State()\n endValue: string = '';\n\n /**\n * Controls the opening of the popover.\n */\n @State()\n open: boolean = false;\n\n /**\n * First day of the week 0 = Sunday, 1 = Monday, etc.\n * @default 1\n */\n @Prop({ reflect: true })\n readonly firstDayOfWeek: number = 1;\n\n /**\n * Number of calendars to display\n * @default 2\n */\n @Prop({ reflect: true })\n readonly numberOfCalendars: number = 2;\n\n /**\n * Minimum date for selection ISO string format, ex: 2025-01-01\n */\n @Prop({ reflect: true })\n readonly min?: string = '';\n\n /**\n * Maximum date for selection ISO string format, ex: 2025-12-31\n */\n @Prop({ reflect: true })\n readonly max?: string = '';\n\n /** Locale for date formatting\n * @default 'en-BE'\n */\n @Prop({ reflect: true })\n readonly locale: string = 'en-BE';\n\n /** Date format ex: YYYY-MM-DD, DD-MM-YYYY, etc.\n * @default 'YYYY-MM-DD'\n */\n @Prop({ reflect: true })\n readonly dateFormat: string = 'YYYY-MM-DD';\n\n /**\n * Footer placement\n * @default 'bottom'\n */\n @Prop({ reflect: true })\n readonly shortcutsPlacement: 'bottom' | 'left' | 'right' = 'bottom';\n\n /**\n * Show action buttons\n * @default false\n */\n @Prop({ reflect: true })\n readonly showActions: boolean = false;\n\n /**\n * Custom actions to display in the footer\n */\n @Prop({ reflect: true })\n readonly shortcuts: HTMLNvCalendarElement['shortcuts'];\n\n /**\n * Show week numbers\n */\n @Prop({ reflect: true })\n readonly showWeekNumbers: boolean;\n\n /**\n * Disabled dates ISO string array\n */\n @Prop({ reflect: true })\n readonly disabledDates: Array<string>;\n\n /**\n * Allows the field to stretch and fill the entire width of its container.\n */\n @Prop({ reflect: true })\n readonly fluid: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Parses the unified value prop and synchronizes with internal state\n * @param {string} value - Value to parse\n */\n private parseUnifiedValue = (value: string): void => {\n if (!value) {\n // Reset all selections\n this.startValue = '';\n this.endValue = '';\n return;\n }\n\n const values = value\n .split(',')\n .map(v => v.trim())\n .filter(Boolean);\n\n if (values.length >= 2) {\n this.startValue = values[0];\n this.endValue = values[1];\n }\n };\n\n /**\n * Converts the nv-calendar date format to the format expected by Inputmask.\n * @param {string} format - The date format to convert\n * @returns {string} The converted format for Inputmask\n */\n private convertToInputmaskFormat(format: string): string {\n // If the format is not specified, use the default format YYYY-MM-DD\n if (!format) {\n return 'dd/mm/yyyy';\n }\n\n const formatMap = {\n 'YYYY-MM-DD': 'yyyy-mm-dd',\n 'DD/MM/YYYY': 'dd/mm/yyyy',\n 'MM/DD/YYYY': 'mm/dd/yyyy',\n 'DD.MM.YYYY': 'dd.mm.yyyy',\n 'YYYYMMDD': 'yyyymmdd',\n };\n\n return formatMap[format] || 'dd/mm/yyyy';\n }\n\n /**\n * Closes the popover when a click is detected outside the component.\n * @param {MouseEvent} event - The mouse event\n */\n private handleClickOutside = (event: MouseEvent) => {\n if (this.open && this.el && !this.el.contains(event.target as Node)) {\n this.open = false;\n }\n };\n\n /**\n * Handles the input event on the start input element.\n * @param {Event} event - The input event\n */\n private handleStartInput = (event: Event) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n return;\n }\n const input = event.target as HTMLInputElement;\n this.startValue = input.value;\n\n // Update unified value prop\n this.value = `${input.value},${this.endValue}`;\n\n // Temporarily enable navigation for keyboard input\n if (this.calendarElement) {\n this.calendarElement.removeAttribute('data-prevent-navigation');\n this.updateCalendarValue();\n // Restore navigation prevention after update\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 100);\n }\n };\n\n /**\n * Handles the input event on the end input element.\n * @param {Event} event - The input event\n */\n private handleEndInput = (event: Event) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n return;\n }\n const input = event.target as HTMLInputElement;\n this.endValue = input.value;\n\n // Update unified value prop\n this.value = `${this.startValue},${input.value}`;\n\n // Temporarily enable navigation for keyboard input\n if (this.calendarElement) {\n this.calendarElement.removeAttribute('data-prevent-navigation');\n this.updateCalendarValue();\n // Restore navigation prevention after update\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 100);\n }\n };\n\n /**\n * Update the calendar's rangeValue property without forcing month change\n */\n private updateCalendarValue() {\n if (this.calendarElement && this.startValue && this.endValue) {\n // Store the current calendar state\n }\n }\n\n /**\n * Handles focus events on the input elements.\n * @param {FocusEvent} event - The focus event\n */\n private handleFocus = (event: FocusEvent) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n (event.target as HTMLElement).blur();\n return;\n }\n\n // Enable navigation on focus\n if (this.calendarElement) {\n this.calendarElement.removeAttribute('data-prevent-navigation');\n }\n\n this.open = true;\n\n // Restore navigation prevention after opening\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 300);\n };\n\n /**\n * Toggles the opening/closing of the popover.\n */\n private toggleCalendar = () => {\n if (this.readonly || this.disabled) {\n return;\n }\n this.open = !this.open;\n };\n\n /**\n * Clears the current selection and resets the date range field to its initial state.\n * This method can be called programmatically to reset the field.\n */\n @Method()\n async clear(): Promise<void> {\n // Reset internal state\n this.startValue = '';\n this.endValue = '';\n this.value = '';\n\n // Reset both input elements\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n input.value = '';\n // Remove input mask if exists\n if ((input as HTMLInputElementWithInputmask).inputmask) {\n (input as HTMLInputElementWithInputmask).inputmask.remove();\n }\n });\n\n // Emit events to notify about the change\n this.valueChanged.emit('');\n this.dateRangeChange.emit({ start: '', end: '' });\n\n // Close the popover if open\n this.open = false;\n\n // Clear the calendar if it exists\n if (this.calendarElement) {\n this.calendarElement.clear();\n }\n }\n\n private updateMask() {\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n (input as HTMLInputElementWithInputmask).inputmask?.remove?.();\n\n const inputMask = new Inputmask({\n alias: 'datetime',\n inputFormat: this.convertToInputmaskFormat(this.dateFormat),\n placeholder: this.convertToInputmaskFormat(this.dateFormat),\n clearIncomplete: false,\n showMaskOnHover: false,\n showMaskOnFocus: true,\n clearMaskOnLostFocus: !this.open,\n postValidation: true,\n oncleared: (e: CustomEvent) => {\n const input = e.target as HTMLInputElement;\n if (input.id === this.startInputId) {\n this.startValue = '';\n }\n if (input.id === this.endInputId) {\n this.endValue = '';\n }\n },\n oncomplete: () => {\n if (/[a-zA-Z]/g.test(this.value)) return;\n const values = this.value\n .split(',')\n .map(v => v.trim())\n .filter(Boolean);\n if (values.length < 2) return;\n\n // If valid emit change event\n this.valueChanged.emit(this.value);\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({\n start: this.startValue,\n end: input.value,\n });\n },\n });\n inputMask.mask(input);\n });\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n connectedCallback() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n componentWillLoad() {\n if (this.value) {\n // Use the unified parsing method\n this.parseUnifiedValue(this.value);\n }\n }\n\n componentDidLoad() {\n this.updateMask();\n\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n // Set the value after applying the mask\n if (input.name === this.startName && this.startValue) {\n requestAnimationFrame(() => {\n input.value = this.startValue;\n const event = new CustomEvent('input', { bubbles: true });\n input.dispatchEvent(event);\n });\n } else if (input.name === this.endName && this.endValue) {\n requestAnimationFrame(() => {\n input.value = this.endValue;\n const event = new CustomEvent('input', { bubbles: true });\n input.dispatchEvent(event);\n });\n }\n });\n }\n\n componentDidRender() {\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n const value =\n input.name === this.startName\n ? this.startValue\n : this.endName\n ? this.endValue\n : '';\n if (value) {\n // Make sure the value is defined both as a property and attribute\n requestAnimationFrame(() => {\n input.value = value;\n input.setAttribute('value', value);\n });\n }\n });\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the date range changes.\n */\n @Event()\n dateRangeChange: EventEmitter<\n HTMLNvCalendarElementEventMap['rangeDateChange']\n >;\n\n /**\n * Emitted when the unified value changes\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n /**\n * Handles the range date selection event from nv-calendar.\n * @param {CustomEvent<DateRange>} event - The custom event\n */\n @Listen('rangeDateChange')\n handleRangeDateChange(\n event: CustomEvent<HTMLNvCalendarElementEventMap['rangeDateChange']>,\n ) {\n const { start, end } = event.detail || {};\n\n // Check that both dates are defined\n if (start && end) {\n this.startValue = start;\n this.endValue = end;\n\n // Update unified value prop (like nv-calendar)\n this.value = `${start},${end}`;\n this.valueChanged.emit(this.value);\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({\n start: this.startValue,\n end: this.endValue,\n });\n\n if (!this.showActions) {\n this.open = false;\n }\n }\n }\n\n /**\n * Handles the unified value change event from nv-calendar\n * @param {CustomEvent<string>} event - The custom event\n */\n @Listen('valueChanged')\n handleCalendarValueChanged(event: CustomEvent<string>) {\n const newValue = event.detail || '';\n\n if (newValue !== this.value) {\n this.value = newValue;\n this.valueChanged.emit(newValue);\n\n // Parse and update internal state\n this.parseUnifiedValue(newValue);\n\n // Legacy support - emit dateRangeChange\n this.dateRangeChange.emit({\n start: this.startValue,\n end: this.endValue,\n });\n }\n }\n\n @Listen('closePopover')\n handleClosePopover() {\n this.open = false;\n }\n\n @Listen('applyDateRange')\n handleApplyDateRange() {\n this.open = false;\n }\n\n /**\n * Handles the reset event from the calendar's cancel button\n * @param {CustomEvent} event - The event emitted by the calendar\n */\n @Listen('singleDateChange')\n @Listen('rangeDateChange')\n handleDateReset(event: CustomEvent) {\n const isResetSingle =\n event.type === 'singleDateChange' && event.detail === '';\n const isResetRange =\n event.type === 'rangeDateChange' &&\n event.detail &&\n event.detail.start === '' &&\n event.detail.end === '';\n\n if (isResetSingle || isResetRange) {\n this.startValue = '';\n this.endValue = '';\n\n // Update unified value prop\n this.value = '';\n this.valueChanged.emit('');\n\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n input.value = '';\n });\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({ start: '', end: '' });\n }\n }\n\n /**\n * Handles keyboard events.\n * @param {KeyboardEvent} event - The keyboard event\n */\n @Listen('keydown', { passive: false })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.open) {\n if (event.key === 'ArrowDown') {\n this.open = true;\n event.preventDefault();\n return;\n }\n return;\n }\n\n if (!this.popoverElement) {\n console.warn('nv-fielddaterange -> Popover element is not defined');\n return;\n }\n }\n\n @Watch('value')\n handleValueChange(newValue: string) {\n // Use the unified parsing method instead of JSON.parse\n this.parseUnifiedValue(newValue);\n }\n\n @Watch('open')\n onOpenChanged(newValue: boolean) {\n this.updateMask();\n if (this.contentRef) {\n if (newValue) {\n this.contentRef.style.transition = 'none';\n this.contentRef.style.maxHeight = '0px';\n void this.contentRef.offsetHeight;\n requestAnimationFrame(() => {\n this.contentRef.style.transition =\n 'max-height 0.18s cubic-bezier(0.4,0,0.2,1)';\n this.contentRef.style.maxHeight = this.contentRef.scrollHeight + 'px';\n });\n } else {\n this.contentRef.style.transition = 'none';\n this.contentRef.style.maxHeight = this.contentRef.scrollHeight + 'px';\n void this.contentRef.offsetHeight;\n requestAnimationFrame(() => {\n this.contentRef.style.transition =\n 'max-height 0.18s cubic-bezier(0.4,0,0.2,1)';\n this.contentRef.style.maxHeight = '0px';\n });\n }\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {((this.label && this.label.length > 0) ||\n this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.startInputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el as HTMLNvPopoverElement)}\n id={this.popoverId}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div slot=\"trigger\" class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\">\n <slot name=\"leading-input\"></slot>\n\n <div class=\"range-inputs\">\n <input\n id={this.startInputId}\n type=\"text\"\n placeholder={\n this.startPlaceholder ||\n this.convertToInputmaskFormat(this.dateFormat)\n }\n name={this.startName}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n autofocus={this.autofocus}\n value={this.startValue}\n onInput={this.handleStartInput}\n onFocus={this.handleFocus}\n data-scope=\"date-range\"\n />\n\n <div class=\"range-separator\"></div>\n\n <input\n id={this.endInputId}\n type=\"text\"\n placeholder={\n this.endPlaceholder ||\n this.convertToInputmaskFormat(this.dateFormat)\n }\n name={this.endName}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n value={this.endValue}\n onInput={this.handleEndInput}\n onFocus={this.handleFocus}\n data-scope=\"date-range\"\n />\n </div>\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"md\" />\n )}\n\n <nv-iconbutton\n class=\"toggle-calendar-icon\"\n name=\"calendar\"\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide calendar' : 'Show calendar'}\n aria-pressed={this.open.toString()}\n onClick={this.toggleCalendar}\n tabIndex={this.disabled ? -1 : 0}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div slot=\"content\">\n <nv-calendar\n ref={el => (this.calendarElement = el as HTMLNvCalendarElement)}\n dateFormat={this.dateFormat}\n value={this.value}\n firstDayOfWeek={this.firstDayOfWeek}\n numberOfCalendars={this.numberOfCalendars}\n min={this.min}\n max={this.max}\n locale={this.locale}\n shortcutsPlacement={this.shortcutsPlacement}\n showActions={this.showActions}\n shortcuts={this.shortcuts}\n showWeekNumbers={this.showWeekNumbers}\n disabledDates={this.disabledDates}\n selectionType=\"range\"\n data-prevent-navigation=\"true\"\n ></nv-calendar>\n </div>\n </nv-popover>\n\n {((this.description && this.description.length > 0) ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n {this.el.querySelector('[slot=\"error-description\"]') ? (\n <slot name=\"error-description\"></slot>\n ) : (\n this.errorDescription\n )}\n </div>\n )}\n\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"version":3}
1
+ {"file":"nv-fielddaterange.entry.js","mappings":"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","names":["uuidv4"],"sources":["src/components/nv-fielddaterange/styles/nv-fielddaterange.scss?tag=nv-fielddaterange","src/components/nv-fielddaterange/nv-fielddaterange.tsx"],"sourcesContent":["@import '../../../styles/form-field';\n@import './mixins';\n\nnv-fielddaterange {\n @include form-field-variables();\n @include form-field-root();\n\n &[fluid]:not([fluid='false']) {\n @include form-field-fluid();\n }\n\n &[readonly]:not([readonly='false']) {\n @include form-field-readonly-variables();\n }\n\n &[error]:not([error='false']) {\n @include form-field-error-variables();\n }\n\n &[success]:not([success='false']) {\n @include form-field-success-variables();\n }\n\n &[required]:not([required='false']) label {\n @include form-field-label-required();\n }\n\n label {\n @include form-field-label();\n }\n\n nv-popover {\n width: 100%;\n display: block;\n\n [data-scope='popover'] {\n padding: 0;\n background-color: var(--components-list-dropdown-background);\n border: 1px solid var(--components-list-dropdown-border);\n width: auto;\n z-index: 2;\n }\n\n [slot='content'] {\n display: block;\n width: 100%;\n }\n }\n\n .input-wrapper {\n @include form-field-input-wrapper();\n display: flex;\n align-items: center;\n gap: 8px;\n\n .input-container {\n @include form-field-input-container();\n\n &:focus-within,\n &:focus-within:hover,\n &:focus,\n &:focus:hover {\n box-shadow: none;\n border-color: var(--nv-field-border-default);\n }\n\n input {\n @include form-field-input();\n width: 100%;\n &:focus-within,\n &:focus-within:hover,\n &:focus,\n &:focus:hover {\n outline: var(--focus-outline-stroke) solid var(--nv-field-border-focus);\n outline-offset: 0px;\n & ~ .range-separator {\n background-color: transparent;\n }\n }\n }\n\n > nv-iconbutton {\n @include form-field-action();\n }\n\n nv-icon.validation {\n @include form-field-icon();\n }\n }\n }\n\n .description {\n @include form-field-description();\n }\n\n .error-description {\n @include form-field-error-description();\n }\n\n .range-inputs {\n display: flex;\n align-items: center;\n gap: 0;\n width: 100%;\n z-index: 1;\n\n input {\n flex: 1;\n border: none;\n outline: none;\n padding: 0;\n font-size: var(--form-field-font-size);\n color: var(--components-form-field-content-text);\n background: transparent;\n min-width: 0; // to avoid overflow\n\n &::placeholder {\n color: var(--components-form-field-content-placeholder);\n }\n\n &:disabled {\n cursor: not-allowed;\n color: var(--components-form-field-content-text);\n background-color: var(--components-form-field-background-disabled);\n }\n }\n\n .range-separator {\n @include range-separator();\n }\n }\n}\n","import {\n Component,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Listen,\n Host,\n Watch,\n Method,\n} from '@stencil/core';\nimport Inputmask from 'inputmask';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * Extends HTMLInputElement to include the inputmask property.\n */\ninterface HTMLInputElementWithInputmask extends HTMLInputElement {\n /**\n * The inputmask instance that provides masking functionality.\n */\n inputmask?: {\n /**\n * Removes the inputmask instance.\n */\n remove: () => void;\n };\n}\n\n/**\n * @slot default - Child content of the component.\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fielddaterange',\n styleUrl: 'styles/nv-fielddaterange.scss',\n shadow: false,\n})\nexport class NvFielddaterange {\n @Element() el!: HTMLNvFielddaterangeElement;\n private popoverElement!: HTMLNvPopoverElement;\n private calendarElement!: HTMLNvCalendarElement;\n private popoverId: string = uuidv4();\n private contentRef?: HTMLDivElement;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the start input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly startInputId: string = uuidv4();\n\n /**\n * Sets the ID for the end input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated.\n */\n @Prop({ reflect: true })\n readonly endInputId: string = uuidv4();\n\n /**\n * Text displayed as label. A slot label can override this prop.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Description displayed below the input. A slot description can override this prop.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * Placeholder for the start input field.\n */\n @Prop({ reflect: true })\n readonly startPlaceholder: string;\n\n /**\n * Placeholder for the end input field.\n */\n @Prop({ reflect: true })\n readonly endPlaceholder: string;\n\n /**\n * Name attribute for the start input.\n */\n @Prop({ reflect: true })\n readonly startName: string;\n\n /**\n * Name attribute for the end input.\n */\n @Prop({ reflect: true })\n readonly endName: string;\n\n /**\n * Disables both input fields.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Sets both input fields as read-only.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Marks both input fields as required.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Indicates an error state.\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * Error description. A slot error-description can override this prop.\n */\n @Prop({ reflect: true })\n readonly errorDescription?: string;\n\n /**\n * Indicates a success state.\n */\n @Prop({ reflect: true })\n readonly success: boolean = false;\n\n /**\n * Autofocus the start input when the component is mounted.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n /**\n * The initial value of the date range (in string format).\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n value: string = '';\n\n /**\n * The current value of the start date in string format.\n */\n @State()\n startValue: string = '';\n\n /**\n * The current value of the end date in string format.\n */\n @State()\n endValue: string = '';\n\n /**\n * Controls the opening of the popover.\n */\n @State()\n open: boolean = false;\n\n /**\n * First day of the week 0 = Sunday, 1 = Monday, etc.\n * @default 1\n */\n @Prop({ reflect: true })\n readonly firstDayOfWeek: number = 1;\n\n /**\n * Number of calendars to display\n * @default 2\n */\n @Prop({ reflect: true })\n readonly numberOfCalendars: number = 2;\n\n /**\n * Minimum date for selection ISO string format, ex: 2025-01-01\n */\n @Prop({ reflect: true })\n readonly min?: string = '';\n\n /**\n * Maximum date for selection ISO string format, ex: 2025-12-31\n */\n @Prop({ reflect: true })\n readonly max?: string = '';\n\n /** Locale for date formatting\n * @default 'en-BE'\n */\n @Prop({ reflect: true })\n readonly locale: string = 'en-BE';\n\n /** Date format ex: YYYY-MM-DD, DD-MM-YYYY, etc.\n * @default 'YYYY-MM-DD'\n */\n @Prop({ reflect: true })\n readonly dateFormat: string = 'YYYY-MM-DD';\n\n /**\n * Footer placement\n * @default 'bottom'\n */\n @Prop({ reflect: true })\n readonly shortcutsPlacement: 'bottom' | 'left' | 'right' = 'bottom';\n\n /**\n * Show action buttons\n * @default false\n */\n @Prop({ reflect: true })\n readonly showActions: boolean = false;\n\n /**\n * Custom actions to display in the footer\n */\n @Prop({ reflect: true })\n readonly shortcuts: HTMLNvCalendarElement['shortcuts'];\n\n /**\n * Show week numbers\n */\n @Prop({ reflect: true })\n readonly showWeekNumbers: boolean;\n\n /**\n * Disabled dates ISO string array\n */\n @Prop({ reflect: true })\n readonly disabledDates: Array<string>;\n\n /**\n * Allows the field to stretch and fill the entire width of its container.\n */\n @Prop({ reflect: true })\n readonly fluid: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Parses the unified value prop and synchronizes with internal state\n * @param {string} value - Value to parse\n */\n private parseUnifiedValue = (value: string): void => {\n if (!value) {\n // Reset all selections\n this.startValue = '';\n this.endValue = '';\n return;\n }\n\n const values = value\n .split(',')\n .map(v => v.trim())\n .filter(Boolean);\n\n if (values.length >= 2) {\n this.startValue = values[0];\n this.endValue = values[1];\n }\n };\n\n /**\n * Converts the nv-calendar date format to the format expected by Inputmask.\n * @param {string} format - The date format to convert\n * @returns {string} The converted format for Inputmask\n */\n private convertToInputmaskFormat(format: string): string {\n // If the format is not specified, use the default format YYYY-MM-DD\n if (!format) {\n return 'dd/mm/yyyy';\n }\n\n const formatMap = {\n 'YYYY-MM-DD': 'yyyy-mm-dd',\n 'DD/MM/YYYY': 'dd/mm/yyyy',\n 'MM/DD/YYYY': 'mm/dd/yyyy',\n 'DD.MM.YYYY': 'dd.mm.yyyy',\n 'YYYYMMDD': 'yyyymmdd',\n };\n\n return formatMap[format] || 'dd/mm/yyyy';\n }\n\n /**\n * Closes the popover when a click is detected outside the component.\n * @param {MouseEvent} event - The mouse event\n */\n private handleClickOutside = (event: MouseEvent) => {\n if (this.open && this.el && !this.el.contains(event.target as Node)) {\n this.open = false;\n }\n };\n\n /**\n * Handles the input event on the start input element.\n * Updates internal state and calendar navigation without emitting events.\n * @param {Event} event - The input event\n */\n private handleStartInput = (event: Event) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n return;\n }\n const input = event.target as HTMLInputElement;\n\n // Always update startValue to keep state in sync\n this.startValue = input.value;\n\n // Update calendar value for navigation (without triggering events)\n if (this.calendarElement && input.value) {\n // Temporarily enable navigation for keyboard input\n this.calendarElement.removeAttribute('data-prevent-navigation');\n\n // Update calendar's rangeValue to allow navigation\n const currentValue = `${input.value},${this.endValue}`;\n if (this.calendarElement.value !== currentValue) {\n this.calendarElement.value = currentValue;\n }\n\n // Restore navigation prevention after update\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 100);\n }\n };\n\n /**\n * Handles the input event on the end input element.\n * Updates internal state and calendar navigation without emitting events.\n * @param {Event} event - The input event\n */\n private handleEndInput = (event: Event) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n return;\n }\n const input = event.target as HTMLInputElement;\n\n // Always update endValue to keep state in sync\n this.endValue = input.value;\n\n // Update calendar value for navigation (without triggering events)\n if (this.calendarElement && input.value) {\n // Temporarily enable navigation for keyboard input\n this.calendarElement.removeAttribute('data-prevent-navigation');\n\n // Update calendar's rangeValue to allow navigation\n const currentValue = `${this.startValue},${input.value}`;\n if (this.calendarElement.value !== currentValue) {\n this.calendarElement.value = currentValue;\n }\n\n // Restore navigation prevention after update\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 100);\n }\n };\n\n /**\n * Handles focus events on the input elements.\n * @param {FocusEvent} event - The focus event\n */\n private handleFocus = (event: FocusEvent) => {\n if (this.readonly || this.disabled) {\n event.preventDefault();\n (event.target as HTMLElement).blur();\n return;\n }\n\n // Enable navigation on focus\n if (this.calendarElement) {\n this.calendarElement.removeAttribute('data-prevent-navigation');\n }\n\n this.open = true;\n\n // Restore navigation prevention after opening\n setTimeout(() => {\n if (this.calendarElement) {\n this.calendarElement.setAttribute('data-prevent-navigation', 'true');\n }\n }, 300);\n };\n\n /**\n * Toggles the opening/closing of the popover.\n * @param {MouseEvent} event - The click event.\n */\n private toggleCalendar = (event: MouseEvent) => {\n if (this.readonly || this.disabled) {\n return;\n }\n // Stop propagation to prevent closing parent dialogs\n event.stopPropagation();\n this.open = !this.open;\n };\n\n /**\n * Clears the current selection and resets the date range field to its initial state.\n * This method can be called programmatically to reset the field.\n */\n @Method()\n async clear(): Promise<void> {\n // Reset internal state\n this.startValue = '';\n this.endValue = '';\n this.value = '';\n\n // Reset both input elements\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n input.value = '';\n // Remove input mask if exists\n if ((input as HTMLInputElementWithInputmask).inputmask) {\n (input as HTMLInputElementWithInputmask).inputmask.remove();\n }\n });\n\n // Emit events to notify about the change\n this.valueChanged.emit('');\n this.dateRangeChange.emit({ start: '', end: '' });\n\n // Close the popover if open\n this.open = false;\n\n // Clear the calendar if it exists\n if (this.calendarElement) {\n this.calendarElement.clear();\n }\n }\n\n private updateMask() {\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n (input as HTMLInputElementWithInputmask).inputmask?.remove?.();\n\n const inputMask = new Inputmask({\n alias: 'datetime',\n inputFormat: this.convertToInputmaskFormat(this.dateFormat),\n placeholder: this.convertToInputmaskFormat(this.dateFormat),\n clearIncomplete: false,\n showMaskOnHover: false,\n showMaskOnFocus: true,\n clearMaskOnLostFocus: !this.open,\n postValidation: true,\n oncleared: (e: CustomEvent) => {\n const input = e.target as HTMLInputElement;\n if (input.id === this.startInputId) {\n this.startValue = '';\n }\n if (input.id === this.endInputId) {\n this.endValue = '';\n }\n },\n oncomplete: (e: CustomEvent) => {\n const input = e.target as HTMLInputElement;\n\n // Update the corresponding state based on which input completed\n if (input.id === this.startInputId) {\n this.startValue = input.value;\n } else if (input.id === this.endInputId) {\n this.endValue = input.value;\n }\n\n // Update unified value\n const newValue = `${this.startValue},${this.endValue}`;\n\n // Only emit if both dates are filled and value changed\n if (this.startValue && this.endValue && this.value !== newValue) {\n this.value = newValue;\n this.valueChanged.emit(this.value);\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({\n start: this.startValue,\n end: this.endValue,\n });\n }\n },\n });\n inputMask.mask(input);\n });\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n connectedCallback() {\n document.addEventListener('click', this.handleClickOutside);\n }\n\n componentWillLoad() {\n if (this.value) {\n // Use the unified parsing method\n this.parseUnifiedValue(this.value);\n }\n }\n\n componentDidLoad() {\n this.updateMask();\n\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n // Set the value after applying the mask\n if (input.name === this.startName && this.startValue) {\n requestAnimationFrame(() => {\n input.value = this.startValue;\n const event = new CustomEvent('input', { bubbles: true });\n input.dispatchEvent(event);\n });\n } else if (input.name === this.endName && this.endValue) {\n requestAnimationFrame(() => {\n input.value = this.endValue;\n const event = new CustomEvent('input', { bubbles: true });\n input.dispatchEvent(event);\n });\n }\n });\n }\n\n componentDidRender() {\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n const value =\n input.name === this.startName\n ? this.startValue\n : this.endName\n ? this.endValue\n : '';\n if (value) {\n // Make sure the value is defined both as a property and attribute\n requestAnimationFrame(() => {\n input.value = value;\n input.setAttribute('value', value);\n });\n }\n });\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside);\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the date range changes.\n */\n @Event()\n dateRangeChange: EventEmitter<\n HTMLNvCalendarElementEventMap['rangeDateChange']\n >;\n\n /**\n * Emitted when the unified value changes\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n /**\n * Handles the range date selection event from nv-calendar.\n * Stops propagation to prevent duplicate events with handleCalendarValueChanged.\n * @param {CustomEvent<DateRange>} event - The custom event\n */\n @Listen('rangeDateChange')\n handleRangeDateChange(\n event: CustomEvent<HTMLNvCalendarElementEventMap['rangeDateChange']>,\n ) {\n // Stop propagation to prevent this from being handled by handleCalendarValueChanged\n event.stopPropagation();\n\n const { start, end } = event.detail || {};\n\n // Check that both dates are defined\n if (start && end) {\n this.startValue = start;\n this.endValue = end;\n\n // Update unified value prop (like nv-calendar)\n const newValue = `${start},${end}`;\n if (this.value !== newValue) {\n this.value = newValue;\n this.valueChanged.emit(this.value);\n }\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({\n start: this.startValue,\n end: this.endValue,\n });\n\n if (!this.showActions) {\n this.open = false;\n }\n }\n }\n\n /**\n * Handles the unified value change event from nv-calendar\n * Note: This might not be called if rangeDateChange stops propagation first.\n * @param {CustomEvent<string>} event - The custom event\n */\n @Listen('valueChanged')\n handleCalendarValueChanged(event: CustomEvent<string>) {\n // Only handle events from the calendar, not from self\n if (event.target === this.el) {\n return;\n }\n\n // Stop propagation to prevent parent components from receiving calendar events\n event.stopPropagation();\n\n const newValue = event.detail || '';\n\n if (newValue !== this.value) {\n this.value = newValue;\n this.valueChanged.emit(newValue);\n\n // Parse and update internal state\n this.parseUnifiedValue(newValue);\n\n // Legacy support - emit dateRangeChange\n this.dateRangeChange.emit({\n start: this.startValue,\n end: this.endValue,\n });\n }\n }\n\n @Listen('closePopover')\n handleClosePopover() {\n this.open = false;\n }\n\n @Listen('applyDateRange')\n handleApplyDateRange() {\n this.open = false;\n }\n\n /**\n * Handles the reset event from the calendar's cancel button\n * @param {CustomEvent} event - The event emitted by the calendar\n */\n @Listen('singleDateChange')\n @Listen('rangeDateChange')\n handleDateReset(event: CustomEvent) {\n const isResetSingle =\n event.type === 'singleDateChange' && event.detail === '';\n const isResetRange =\n event.type === 'rangeDateChange' &&\n event.detail &&\n event.detail.start === '' &&\n event.detail.end === '';\n\n if (isResetSingle || isResetRange) {\n this.startValue = '';\n this.endValue = '';\n\n // Update unified value prop\n this.value = '';\n this.valueChanged.emit('');\n\n const inputs = this.el.querySelectorAll('.input-wrapper input');\n inputs.forEach((input: HTMLInputElement) => {\n input.value = '';\n });\n\n // Legacy support (deprecated)\n this.dateRangeChange.emit({ start: '', end: '' });\n }\n }\n\n /**\n * Handles keyboard events.\n * @param {KeyboardEvent} event - The keyboard event\n */\n @Listen('keydown', { passive: false })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.open) {\n if (event.key === 'ArrowDown') {\n this.open = true;\n event.preventDefault();\n return;\n }\n return;\n }\n\n if (!this.popoverElement) {\n console.warn('nv-fielddaterange -> Popover element is not defined');\n return;\n }\n }\n\n @Watch('value')\n handleValueChange(newValue: string) {\n // Use the unified parsing method instead of JSON.parse\n this.parseUnifiedValue(newValue);\n }\n\n @Watch('open')\n onOpenChanged(newValue: boolean) {\n this.updateMask();\n if (this.contentRef) {\n if (newValue) {\n this.contentRef.style.transition = 'none';\n this.contentRef.style.maxHeight = '0px';\n void this.contentRef.offsetHeight;\n requestAnimationFrame(() => {\n this.contentRef.style.transition =\n 'max-height 0.18s cubic-bezier(0.4,0,0.2,1)';\n this.contentRef.style.maxHeight = this.contentRef.scrollHeight + 'px';\n });\n } else {\n this.contentRef.style.transition = 'none';\n this.contentRef.style.maxHeight = this.contentRef.scrollHeight + 'px';\n void this.contentRef.offsetHeight;\n requestAnimationFrame(() => {\n this.contentRef.style.transition =\n 'max-height 0.18s cubic-bezier(0.4,0,0.2,1)';\n this.contentRef.style.maxHeight = '0px';\n });\n }\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {((this.label && this.label.length > 0) ||\n this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.startInputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el as HTMLNvPopoverElement)}\n id={this.popoverId}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n strategy=\"fixed\"\n open={this.open}\n >\n <div slot=\"trigger\" class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\">\n <slot name=\"leading-input\"></slot>\n\n <div class=\"range-inputs\">\n <input\n id={this.startInputId}\n type=\"text\"\n placeholder={\n this.startPlaceholder ||\n this.convertToInputmaskFormat(this.dateFormat)\n }\n name={this.startName}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n autofocus={this.autofocus}\n value={this.startValue}\n onInput={this.handleStartInput}\n onFocus={this.handleFocus}\n data-scope=\"date-range\"\n />\n\n <div class=\"range-separator\"></div>\n\n <input\n id={this.endInputId}\n type=\"text\"\n placeholder={\n this.endPlaceholder ||\n this.convertToInputmaskFormat(this.dateFormat)\n }\n name={this.endName}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n value={this.endValue}\n onInput={this.handleEndInput}\n onFocus={this.handleFocus}\n data-scope=\"date-range\"\n />\n </div>\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"md\" />\n )}\n\n <nv-iconbutton\n class=\"toggle-calendar-icon\"\n name=\"calendar\"\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide calendar' : 'Show calendar'}\n onClick={this.toggleCalendar}\n tabIndex={this.disabled ? -1 : 0}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div slot=\"content\">\n <nv-calendar\n ref={el => (this.calendarElement = el as HTMLNvCalendarElement)}\n dateFormat={this.dateFormat}\n value={this.value}\n firstDayOfWeek={this.firstDayOfWeek}\n numberOfCalendars={this.numberOfCalendars}\n min={this.min}\n max={this.max}\n locale={this.locale}\n shortcutsPlacement={this.shortcutsPlacement}\n showActions={this.showActions}\n shortcuts={this.shortcuts}\n showWeekNumbers={this.showWeekNumbers}\n disabledDates={this.disabledDates}\n selectionType=\"range\"\n data-prevent-navigation=\"true\"\n ></nv-calendar>\n </div>\n </nv-popover>\n\n {((this.description && this.description.length > 0) ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n {this.el.querySelector('[slot=\"error-description\"]') ? (\n <slot name=\"error-description\"></slot>\n ) : (\n this.errorDescription\n )}\n </div>\n )}\n\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a1936cd0.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-dc2723f3.js';
2
2
  import { v as v4 } from './v4-a79185f4.js';
3
3
 
4
- const nvFielddropdownCss = "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-fielddropdown{--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-fielddropdown[fluid]:not([fluid=false]){max-width:unset}nv-fielddropdown[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-fielddropdown[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-fielddropdown[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fielddropdown[hidden]:not([hidden=false]) label{display:none}nv-fielddropdown 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-fielddropdown nv-popover{width:100%;display:block}nv-fielddropdown nv-popover [data-scope=popover]{width:100%;padding:var(--list-dropdown-padding);border-radius:var(--list-dropdown-radius);background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border)}nv-fielddropdown nv-popover [slot=content]{gap:var(--list-dropdown-gap-y);display:flex;flex-direction:column}nv-fielddropdown nv-popover hr{color:var(--components-list-dropdown-separator)}nv-fielddropdown nv-popover div[slot=content]{max-height:calc(90vh - var(--list-dropdown-padding) * 2);overflow-y:auto;position:relative}nv-fielddropdown nv-popover div[slot=content]::-webkit-scrollbar{width:6px;height:6px}nv-fielddropdown nv-popover div[slot=content]::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}nv-fielddropdown nv-popover div[slot=content]::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}nv-fielddropdown .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fielddropdown .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out;position:relative;width:100%;min-height:40px}nv-fielddropdown .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddropdown .input-container:focus-within,nv-fielddropdown .input-container:focus-within:hover,nv-fielddropdown .input-container:focus,nv-fielddropdown .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-fielddropdown .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-fielddropdown .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddropdown .input-container input[type=search]::-webkit-search-decoration,nv-fielddropdown .input-container input[type=search]::-webkit-search-cancel-button,nv-fielddropdown .input-container input[type=search]::-webkit-search-results-button,nv-fielddropdown .input-container input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}nv-fielddropdown .input-container input,nv-fielddropdown .input-container p.non-filterable-text{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-fielddropdown .input-container input:focus,nv-fielddropdown .input-container p.non-filterable-text:focus{outline:none}nv-fielddropdown .input-container input::placeholder,nv-fielddropdown .input-container p.non-filterable-text::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-fielddropdown .input-container input[type=password]::-ms-clear,nv-fielddropdown .input-container input[type=password]::-ms-reveal,nv-fielddropdown .input-container p.non-filterable-text[type=password]::-ms-clear,nv-fielddropdown .input-container p.non-filterable-text[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddropdown .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddropdown .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddropdown .input-container>nv-iconbutton:last-of-type{border-top-right-radius:var(--form-field-radius);border-bottom-right-radius:var(--form-field-radius)}nv-fielddropdown .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddropdown .non-filterable-text{display:block;border-radius:var(--form-field-radius);background-color:var(--nv-field-background);color:var(--components-form-field-content-text);font-size:var(--form-field-font-size);font-weight:500;line-height:var(--form-field-line-height);box-sizing:border-box;cursor:pointer;height:100%;min-height:40px}nv-fielddropdown .non-filterable-text span{display:inline-block;width:100%;overflow:hidden;text-overflow:ellipsis}nv-fielddropdown .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-fielddropdown .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)}";
4
+ const nvFielddropdownCss = "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-fielddropdown{--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-fielddropdown[fluid]:not([fluid=false]){max-width:unset}nv-fielddropdown[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-fielddropdown[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-fielddropdown[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:var(--font-weight-high-emphasis)}nv-fielddropdown[hidden]:not([hidden=false]) label{display:none}nv-fielddropdown label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--form-label-line-height)}nv-fielddropdown nv-popover{width:100%;display:block}nv-fielddropdown nv-popover [data-scope=popover]{width:100%;padding:var(--list-dropdown-padding);border-radius:var(--list-dropdown-radius);background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border)}nv-fielddropdown nv-popover [slot=content]{gap:var(--list-dropdown-gap-y);display:flex;flex-direction:column}nv-fielddropdown nv-popover hr{color:var(--components-list-dropdown-separator)}nv-fielddropdown nv-popover div[slot=content]{max-height:calc(90vh - var(--list-dropdown-padding) * 2);overflow-y:auto;position:relative}nv-fielddropdown nv-popover div[slot=content]::-webkit-scrollbar{width:6px;height:6px}nv-fielddropdown nv-popover div[slot=content]::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}nv-fielddropdown nv-popover div[slot=content]::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}nv-fielddropdown .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fielddropdown .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out;position:relative;width:100%;min-height:40px}nv-fielddropdown .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddropdown .input-container:focus-within,nv-fielddropdown .input-container:focus-within:hover,nv-fielddropdown .input-container:focus,nv-fielddropdown .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-fielddropdown .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-fielddropdown .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddropdown .input-container input[type=search]::-webkit-search-decoration,nv-fielddropdown .input-container input[type=search]::-webkit-search-cancel-button,nv-fielddropdown .input-container input[type=search]::-webkit-search-results-button,nv-fielddropdown .input-container input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}nv-fielddropdown .input-container input,nv-fielddropdown .input-container p.non-filterable-text{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:var(--font-weight-medium-emphasis);line-height:var(--form-field-line-height);width:100%;}nv-fielddropdown .input-container input:focus,nv-fielddropdown .input-container p.non-filterable-text:focus{outline:none}nv-fielddropdown .input-container input::placeholder,nv-fielddropdown .input-container p.non-filterable-text::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:var(--font-weight-low-emphasis);line-height:var(--form-field-line-height)}nv-fielddropdown .input-container input[type=password]::-ms-clear,nv-fielddropdown .input-container input[type=password]::-ms-reveal,nv-fielddropdown .input-container p.non-filterable-text[type=password]::-ms-clear,nv-fielddropdown .input-container p.non-filterable-text[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddropdown .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddropdown .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddropdown .input-container>nv-iconbutton:last-of-type{border-top-right-radius:var(--form-field-radius);border-bottom-right-radius:var(--form-field-radius)}nv-fielddropdown .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddropdown .non-filterable-text{display:block;border-radius:var(--form-field-radius);background-color:var(--nv-field-background);color:var(--components-form-field-content-text);font-size:var(--form-field-font-size);font-weight:var(--font-weight-medium-emphasis);line-height:var(--form-field-line-height);box-sizing:border-box;cursor:pointer;height:100%;min-height:40px}nv-fielddropdown .non-filterable-text span{display:inline-block;width:100%;overflow:hidden;text-overflow:ellipsis}nv-fielddropdown .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:var(--font-family-default), var(--font-family-fallback), sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fielddropdown .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:var(--font-family-default), var(--font-family-fallback), 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)}";
5
5
  const NvFielddropdownStyle0 = nvFielddropdownCss;
6
6
 
7
7
  const NvFielddropdown = class {
@@ -158,6 +158,17 @@ const NvFielddropdown = class {
158
158
  this.inputElement.focus();
159
159
  this.filterItems();
160
160
  };
161
+ this.handleBlurInput = (event) => {
162
+ var _a;
163
+ const relatedTarget = event.relatedTarget;
164
+ if (!this.el.contains(relatedTarget) &&
165
+ !((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget))) {
166
+ this.open = false;
167
+ if (this.filterable) {
168
+ this.clearFilter(); // Resets input to selected label, clears filterText
169
+ }
170
+ }
171
+ };
161
172
  }
162
173
  //#endregion EVENTS
163
174
  /****************************************************************************/
@@ -175,6 +186,15 @@ const NvFielddropdown = class {
175
186
  watchValueHandler(newValue) {
176
187
  this.valueChanged.emit(newValue);
177
188
  }
189
+ handleOpenChange(newOpen) {
190
+ // React to external changes, e.g., clear filter or refilter on open
191
+ if (newOpen && this.filterable) {
192
+ this.filterItems(); // Ensure items are filtered if filterText exists
193
+ }
194
+ else if (!newOpen) {
195
+ this.clearFilter(); // Clear on external close
196
+ }
197
+ }
178
198
  //#endregion WATCHERS
179
199
  /****************************************************************************/
180
200
  //#region LISTENERS
@@ -182,7 +202,12 @@ const NvFielddropdown = class {
182
202
  // Stop propagation to prevent the event from affecting parent components like dialogs
183
203
  event.stopPropagation();
184
204
  // Update `open` based on the popover state
185
- this.open = event.detail;
205
+ if (event.target === this.popoverElement) {
206
+ this.open = event.detail;
207
+ }
208
+ if (!event.detail && this.filterable) {
209
+ this.clearFilter();
210
+ }
186
211
  }
187
212
  handleDropdownItemSelected(event) {
188
213
  if (this.disabled || this.readonly)
@@ -353,15 +378,16 @@ const NvFielddropdown = class {
353
378
  //#region RENDER
354
379
  render() {
355
380
  var _a;
356
- return (h(Host, { key: 'da19368ad4006df880581a7a0d7c1be1d2249008', role: "combobox", "aria-expanded": this.open.toString(), "aria-haspopup": "listbox", "aria-label": this.label }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '38c0a47d3f85ccb50173a5d5322cc4e5ea577b85', htmlFor: this.inputId }, h("slot", { key: '9a97d0960a2f36dd0d9853ed41796708129068ac', name: "label" }, this.label))), h("nv-popover", { key: '69aabf648cf0890133c48250d8a851516e4266f9', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { key: '10cca5b4b91cee8f8149b01df3daa4d36d44a85c', class: "input-wrapper", slot: "trigger" }, h("slot", { key: '583d0903e75dcc3255fc29ccde93e117797ce41e', name: "before-input" }), h("div", { key: '8b2101b0cfecbff145469cab9a86ec381ee01f00', class: "input-container", onClick: this.handleInputContainerClick }, h("slot", { key: '5e2c78f28c2df9c6ab8d4c41fae39faf308d74de', name: "leading-input" }), this.filterable || this.disabled || this.readonly ? (h("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 })) : (h("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 && (h("nv-iconbutton", { key: '8b6f29fc7eba80edfba731ea2b5e3a2e23045aae', name: "x", size: "md", emphasis: "lower", class: "clear-button", onClick: this.clearFilter, "aria-label": "Clear input" })), this.error && (h("nv-icon", { key: '8e808491b0aa3fedf657a9009fb94e6e4f46f4fa', name: "alert-circle", class: "validation", size: "md" })), h("nv-iconbutton", { key: '2e20d15804b70243e2f83d463dbb6d3c617c5263', "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 })), h("slot", { key: '6a9fd16a090be92ef9a003e048db8daec58b7419', name: "after-input" })), h("div", { key: '0efb0e793cd3b8d41f5884ffb34a86e0d298f217', slot: "content", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) > 0 ? (h("ul", null, this.options.map(option => (h("nv-fielddropdownitem", { label: option.label, value: option.value, disabled: option.disabled, selected: option.value === this.value }))))) : (h("slot", { name: "content" })))), (this.description ||
357
- this.el.querySelector('[slot="description"]')) && (h("div", { key: '34e787b02ab0ccb02dafb93e12b600d845c96442', class: "description" }, h("slot", { key: 'ac8b3085ac8507c3ae243a71392167851a1d5755', name: "description" }, this.description))), (this.errorDescription ||
358
- this.el.querySelector('[slot="error-description"]')) && (h("div", { key: 'e1a1bf22b2c5f932a31342493d3b8fbb84f31f1e', hidden: !this.error, class: "error-description" }, h("slot", { key: '843a2ccfbaf3037747069918dd990d329ae98fbc', name: "error-description" }, this.errorDescription)))));
381
+ return (h(Host, { key: '1d5a87b2a5e9d9ca0be659ba5706b1db068d1d2d', role: "combobox", "aria-expanded": this.open.toString(), "aria-haspopup": "listbox", "aria-label": this.label }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: 'b07ca241c89f45292e479de79de618c6444a9c42', htmlFor: this.inputId }, h("slot", { key: '0dd6ac2799e187e7233a5a5651ef18d59e4507e8', name: "label" }, this.label))), h("nv-popover", { key: 'b06d107776724937816dc4b98a035b282ed6c1f3', ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { key: 'ab755801a0f2a732ea895e04d6c3a85261422f17', class: "input-wrapper", slot: "trigger" }, h("slot", { key: 'b78c41d4064cf067d69fa20ae583c1be29d1f620', name: "before-input" }), h("div", { key: 'b46f6440660056ff71b9debf503f15ca7046ca02', class: "input-container", onClick: this.handleInputContainerClick }, h("slot", { key: '36069ce529fba771c9339a3cb6c9c5c838f441c4', name: "leading-input" }), this.filterable || this.disabled || this.readonly ? (h("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, onBlur: this.handleBlurInput })) : (h("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, onBlur: this.handleBlurInput }, this.getSelectedLabel() || this.value || this.placeholder)), this.filterable && this.filterText && this.open && (h("nv-iconbutton", { key: '36f76135c0e3e1e6750c95116aae6ddd397eec1f', name: "x", size: "md", emphasis: "lower", class: "clear-button", onClick: this.clearFilter, "aria-label": "Clear input" })), this.error && (h("nv-icon", { key: 'bd73c43ffae11897359adfae69572ee490f0f5c2', name: "alert-circle", class: "validation", size: "md" })), h("nv-iconbutton", { key: 'a0f237814e9f58aa9e4d72e73a1747248911ade8', "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', onClick: this.togglePopover, tabIndex: this.disabled ? -1 : 0 })), h("slot", { key: '66d2b27cfcf7ef97df493accaa333e0694234344', name: "after-input" })), h("div", { key: 'de6d7e18d676788cf0c7bfebd25f22b5cd2067ce', slot: "content", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) > 0 ? (h("ul", null, this.options.map(option => (h("nv-fielddropdownitem", { label: option.label, value: option.value, disabled: option.disabled, selected: option.value === this.value }))))) : (h("slot", { name: "content" })))), (this.description ||
382
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: 'ea889c8ecdcfad160010374541b73f548322a0ad', class: "description" }, h("slot", { key: 'b69f67d3a03bf1839edd912ea369cfd87395ae51', name: "description" }, this.description))), (this.errorDescription ||
383
+ this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '6ecd397cb41aab81173992c90e42f593f1227730', hidden: !this.error, class: "error-description" }, h("slot", { key: '3dff83b119d3cbbf2d00bc8641882326d08f939d', name: "error-description" }, this.errorDescription)))));
359
384
  }
360
385
  static get formAssociated() { return true; }
361
386
  get el() { return getElement(this); }
362
387
  static get watchers() { return {
363
388
  "options": ["handleOptionsChange"],
364
- "value": ["watchValueHandler"]
389
+ "value": ["watchValueHandler"],
390
+ "open": ["handleOpenChange"]
365
391
  }; }
366
392
  };
367
393
  NvFielddropdown.style = NvFielddropdownStyle0;