@nova-design-system/nova-webcomponents 3.4.0 → 3.6.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 (459) hide show
  1. package/dist/cjs/{timeline.animation-dbb9c5ea.js → collapse.animation-a129dc3f.js} +5 -26
  2. package/dist/cjs/collapse.animation-a129dc3f.js.map +1 -0
  3. package/dist/cjs/fade.animation-644b5c4d.js +70 -0
  4. package/dist/cjs/fade.animation-644b5c4d.js.map +1 -0
  5. package/dist/cjs/{grow.animation-a1f0bc22.js → grow.animation-6d003803.js} +5 -5
  6. package/dist/cjs/{grow.animation-a1f0bc22.js.map → grow.animation-6d003803.js.map} +1 -1
  7. package/dist/cjs/index-c56424e5.js +8 -0
  8. package/dist/cjs/index.cjs.js +9 -4
  9. package/dist/cjs/index.cjs.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/native.cjs.js +1 -1
  12. package/dist/cjs/nv-accordion-item.cjs.entry.js +181 -0
  13. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -0
  14. package/dist/cjs/nv-accordion.cjs.entry.js +194 -0
  15. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -0
  16. package/dist/cjs/nv-alert.cjs.entry.js +6 -4
  17. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-badge_2.cjs.entry.js +9 -7
  20. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
  22. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-calendar.cjs.entry.js +59 -50
  25. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-datagrid.cjs.entry.js +2 -2
  28. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  29. package/dist/cjs/nv-dialog.cjs.entry.js +19 -6
  30. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
  33. package/dist/cjs/nv-fielddate.cjs.entry.js +100 -35
  34. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nv-fielddaterange.cjs.entry.js +6 -6
  36. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
  38. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  39. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +85 -100
  40. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  41. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  42. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  43. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  44. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  45. package/dist/cjs/nv-fieldslider.cjs.entry.js +53 -9
  46. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  48. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  49. package/dist/cjs/nv-fieldtime.cjs.entry.js +9 -9
  50. package/dist/cjs/nv-icon.cjs.entry.js +2 -2
  51. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  53. package/dist/cjs/nv-menu.cjs.entry.js +1 -1
  54. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  55. package/dist/cjs/nv-popover.cjs.entry.js +4 -3
  56. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  57. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  58. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  59. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  60. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-tooltip.cjs.entry.js +3 -2
  62. package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
  63. package/dist/cjs/{fade.animation-0d33d198.js → stylefire.es-717e022a.js} +1 -65
  64. package/dist/cjs/stylefire.es-717e022a.js.map +1 -0
  65. package/dist/cjs/timeline.animation-155e8839.js +25 -0
  66. package/dist/cjs/timeline.animation-155e8839.js.map +1 -0
  67. package/dist/collection/collection-manifest.json +2 -0
  68. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +146 -0
  69. package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -0
  70. package/dist/collection/components/nv-accordion/nv-accordion.js +342 -0
  71. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -0
  72. package/dist/collection/components/nv-accordion/styles/nv-accordion.css +15 -0
  73. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js +6 -0
  74. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js.map +1 -0
  75. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +353 -0
  76. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -0
  77. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +66 -0
  78. package/dist/collection/components/nv-alert/nv-alert.js +1 -1
  79. package/dist/collection/components/nv-avatar/nv-avatar.js +1 -1
  80. package/dist/collection/components/nv-badge/nv-badge.js +2 -2
  81. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
  82. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
  83. package/dist/collection/components/nv-button/nv-button.js +1 -1
  84. package/dist/collection/components/nv-calendar/nv-calendar.css +5 -0
  85. package/dist/collection/components/nv-calendar/nv-calendar.js +55 -27
  86. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  87. package/dist/collection/components/nv-calendar/nv-calendar.utils.js +0 -20
  88. package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -1
  89. package/dist/collection/components/nv-calendar/partials/calendar-grid.js +3 -2
  90. package/dist/collection/components/nv-calendar/partials/calendar-grid.js.map +1 -1
  91. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +5 -31
  92. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
  93. package/dist/collection/components/nv-col/nv-col.js +1 -1
  94. package/dist/collection/components/nv-datagrid/nv-datagrid.js +2 -2
  95. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
  96. package/dist/collection/components/nv-dialog/nv-dialog.css +1 -1
  97. package/dist/collection/components/nv-dialog/nv-dialog.js +38 -5
  98. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  99. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  100. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  101. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
  102. package/dist/collection/components/nv-fielddate/nv-fielddate.js +102 -34
  103. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  104. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +2 -0
  105. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +5 -5
  106. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  107. package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +18 -2
  108. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +3 -3
  109. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  110. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
  111. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +36 -26
  112. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  113. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +117 -115
  114. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  115. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
  116. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  117. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  118. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  119. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  120. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -1
  121. package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js +45 -1
  122. package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js.map +1 -1
  123. package/dist/collection/components/nv-fieldslider/partials/range-thumb.js +4 -4
  124. package/dist/collection/components/nv-fieldslider/partials/range-thumb.js.map +1 -1
  125. package/dist/collection/components/nv-fieldslider/partials/single-thumb.js +3 -3
  126. package/dist/collection/components/nv-fieldslider/partials/single-thumb.js.map +1 -1
  127. package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js +42 -1
  128. package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js.map +1 -1
  129. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  130. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  131. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  132. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  133. package/dist/collection/components/nv-icon/nv-icons.js +3 -0
  134. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  135. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  136. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  137. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  138. package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
  139. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  140. package/dist/collection/components/nv-row/nv-row.js +1 -1
  141. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  142. package/dist/collection/components/nv-table/nv-table.js +2 -2
  143. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  144. package/dist/collection/components/nv-tooltip/nv-tooltip.js +21 -3
  145. package/dist/collection/components/nv-tooltip/nv-tooltip.js.map +1 -1
  146. package/dist/components/index.js +7 -3
  147. package/dist/components/index.js.map +1 -1
  148. package/dist/components/nv-accordion-item.d.ts +11 -0
  149. package/dist/components/nv-accordion-item.js +8 -0
  150. package/dist/components/nv-accordion-item.js.map +1 -0
  151. package/dist/components/nv-accordion.d.ts +11 -0
  152. package/dist/components/nv-accordion.js +242 -0
  153. package/dist/components/nv-accordion.js.map +1 -0
  154. package/dist/components/nv-alert.js +6 -4
  155. package/dist/components/nv-alert.js.map +1 -1
  156. package/dist/components/nv-avatar.js +2 -2
  157. package/dist/components/nv-badge.js +1 -1
  158. package/dist/components/nv-breadcrumb.js +3 -3
  159. package/dist/components/nv-breadcrumbs.js +1 -1
  160. package/dist/components/nv-button.js +1 -1
  161. package/dist/components/nv-calendar.js +1 -1
  162. package/dist/components/nv-col.js +1 -1
  163. package/dist/components/nv-datagrid.js +4 -4
  164. package/dist/components/nv-datagridcolumn.js +1 -1
  165. package/dist/components/nv-dialog.js +25 -11
  166. package/dist/components/nv-dialog.js.map +1 -1
  167. package/dist/components/nv-dialogfooter.js +1 -1
  168. package/dist/components/nv-dialogheader.js +1 -1
  169. package/dist/components/nv-fieldcheckbox.js +1 -1
  170. package/dist/components/nv-fielddate.js +107 -41
  171. package/dist/components/nv-fielddate.js.map +1 -1
  172. package/dist/components/nv-fielddaterange.js +12 -12
  173. package/dist/components/nv-fielddaterange.js.map +1 -1
  174. package/dist/components/nv-fielddropdown.js +8 -8
  175. package/dist/components/nv-fielddropdownitem.js +1 -1
  176. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  177. package/dist/components/nv-fieldmultiselect.js +94 -110
  178. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  179. package/dist/components/nv-fieldnumber.js +1 -1
  180. package/dist/components/nv-fieldpassword.js +6 -6
  181. package/dist/components/nv-fieldradio.js +3 -3
  182. package/dist/components/nv-fieldselect.js +8 -8
  183. package/dist/components/nv-fieldslider.js +57 -13
  184. package/dist/components/nv-fieldslider.js.map +1 -1
  185. package/dist/components/nv-fieldtext.js +1 -1
  186. package/dist/components/nv-fieldtextarea.js +3 -3
  187. package/dist/components/nv-fieldtime.js +13 -13
  188. package/dist/components/nv-icon.js +1 -1
  189. package/dist/components/nv-iconbutton.js +1 -1
  190. package/dist/components/nv-loader.js +1 -1
  191. package/dist/components/nv-menu.js +4 -4
  192. package/dist/components/nv-menuitem.js +1 -1
  193. package/dist/components/nv-popover.js +1 -1
  194. package/dist/components/nv-row.js +1 -1
  195. package/dist/components/nv-stack.js +1 -1
  196. package/dist/components/nv-table.js +2 -2
  197. package/dist/components/nv-toggle.js +2 -2
  198. package/dist/components/nv-tooltip.js +1 -1
  199. package/dist/components/{p-1daca48a.js → p-09cdd71f.js} +2 -65
  200. package/dist/components/p-09cdd71f.js.map +1 -0
  201. package/dist/components/p-15aeab4d.js +23 -0
  202. package/dist/components/p-15aeab4d.js.map +1 -0
  203. package/dist/components/{p-c07c32d2.js → p-190c8f60.js} +3 -3
  204. package/dist/components/{p-c07c32d2.js.map → p-190c8f60.js.map} +1 -1
  205. package/dist/components/p-1cbacdba.js +68 -0
  206. package/dist/components/p-1cbacdba.js.map +1 -0
  207. package/dist/components/p-230ad6c5.js +223 -0
  208. package/dist/components/p-230ad6c5.js.map +1 -0
  209. package/dist/components/{p-a189d074.js → p-316ae8e3.js} +4 -4
  210. package/dist/components/{p-a189d074.js.map → p-316ae8e3.js.map} +1 -1
  211. package/dist/components/{p-953d8b4d.js → p-4069966e.js} +8 -6
  212. package/dist/components/p-4069966e.js.map +1 -0
  213. package/dist/components/{p-f7c7a406.js → p-436a0f99.js} +6 -5
  214. package/dist/components/p-436a0f99.js.map +1 -0
  215. package/dist/components/{p-dec6fc68.js → p-4864a690.js} +2 -2
  216. package/dist/components/{p-dec6fc68.js.map → p-4864a690.js.map} +1 -1
  217. package/dist/components/{p-a29a9396.js → p-5e89eb9d.js} +7 -7
  218. package/dist/components/{p-a29a9396.js.map → p-5e89eb9d.js.map} +1 -1
  219. package/dist/components/{p-131e5140.js → p-618ae85a.js} +5 -4
  220. package/dist/components/p-618ae85a.js.map +1 -0
  221. package/dist/components/{p-df465ef2.js → p-79b38dfb.js} +3 -3
  222. package/dist/components/{p-df465ef2.js.map → p-79b38dfb.js.map} +1 -1
  223. package/dist/components/{p-a0d7e0cd.js → p-840858ed.js} +60 -51
  224. package/dist/components/p-840858ed.js.map +1 -0
  225. package/dist/components/{p-dcaf9010.js → p-8a5b0f74.js} +3 -3
  226. package/dist/components/{p-dcaf9010.js.map → p-8a5b0f74.js.map} +1 -1
  227. package/dist/components/{p-c1765831.js → p-8d45dbfe.js} +2 -2
  228. package/dist/components/{p-c1765831.js.map → p-8d45dbfe.js.map} +1 -1
  229. package/dist/components/{p-42301d8f.js → p-9a263d0e.js} +3 -23
  230. package/dist/components/p-9a263d0e.js.map +1 -0
  231. package/dist/components/{p-9f1e8ef3.js → p-9cff2fd1.js} +2 -2
  232. package/dist/components/{p-9f1e8ef3.js.map → p-9cff2fd1.js.map} +1 -1
  233. package/dist/components/{p-9e6e26cb.js → p-9ed7a440.js} +5 -5
  234. package/dist/components/{p-9e6e26cb.js.map → p-9ed7a440.js.map} +1 -1
  235. package/dist/components/{p-3f567fde.js → p-ac76a11c.js} +5 -5
  236. package/dist/components/{p-3f567fde.js.map → p-ac76a11c.js.map} +1 -1
  237. package/dist/components/{p-6277f746.js → p-ca130ad2.js} +2 -2
  238. package/dist/components/{p-6277f746.js.map → p-ca130ad2.js.map} +1 -1
  239. package/dist/components/{p-a1438b39.js → p-d2b4441a.js} +3 -3
  240. package/dist/components/{p-a1438b39.js.map → p-d2b4441a.js.map} +1 -1
  241. package/dist/components/p-f1bbb9e8.js +88 -0
  242. package/dist/components/p-f1bbb9e8.js.map +1 -0
  243. package/dist/components/{p-3f58525b.js → p-f266b533.js} +5 -5
  244. package/dist/components/{p-3f58525b.js.map → p-f266b533.js.map} +1 -1
  245. package/dist/esm/{timeline.animation-1b88f052.js → collapse.animation-16e3af45.js} +3 -23
  246. package/dist/esm/collapse.animation-16e3af45.js.map +1 -0
  247. package/dist/esm/fade.animation-71e8e34c.js +68 -0
  248. package/dist/esm/fade.animation-71e8e34c.js.map +1 -0
  249. package/dist/esm/{grow.animation-cac164da.js → grow.animation-f7b26024.js} +2 -2
  250. package/dist/esm/{grow.animation-cac164da.js.map → grow.animation-f7b26024.js.map} +1 -1
  251. package/dist/esm/index-a1936cd0.js +8 -0
  252. package/dist/esm/index.js +8 -3
  253. package/dist/esm/index.js.map +1 -1
  254. package/dist/esm/loader.js +1 -1
  255. package/dist/esm/native.js +1 -1
  256. package/dist/esm/nv-accordion-item.entry.js +177 -0
  257. package/dist/esm/nv-accordion-item.entry.js.map +1 -0
  258. package/dist/esm/nv-accordion.entry.js +190 -0
  259. package/dist/esm/nv-accordion.entry.js.map +1 -0
  260. package/dist/esm/nv-alert.entry.js +5 -3
  261. package/dist/esm/nv-alert.entry.js.map +1 -1
  262. package/dist/esm/nv-avatar.entry.js +1 -1
  263. package/dist/esm/nv-badge_2.entry.js +7 -5
  264. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  265. package/dist/esm/nv-breadcrumb.entry.js +1 -1
  266. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  267. package/dist/esm/nv-button.entry.js +1 -1
  268. package/dist/esm/nv-calendar.entry.js +59 -50
  269. package/dist/esm/nv-calendar.entry.js.map +1 -1
  270. package/dist/esm/nv-col.entry.js +1 -1
  271. package/dist/esm/nv-datagrid.entry.js +2 -2
  272. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  273. package/dist/esm/nv-dialog.entry.js +19 -6
  274. package/dist/esm/nv-dialog.entry.js.map +1 -1
  275. package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
  276. package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
  277. package/dist/esm/nv-fielddate.entry.js +100 -35
  278. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  279. package/dist/esm/nv-fielddaterange.entry.js +6 -6
  280. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  281. package/dist/esm/nv-fielddropdown.entry.js +3 -3
  282. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  283. package/dist/esm/nv-fieldmultiselect.entry.js +85 -100
  284. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  285. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  286. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  287. package/dist/esm/nv-fieldradio.entry.js +3 -3
  288. package/dist/esm/nv-fieldselect.entry.js +5 -5
  289. package/dist/esm/nv-fieldslider.entry.js +53 -9
  290. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  291. package/dist/esm/nv-fieldtext.entry.js +3 -3
  292. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  293. package/dist/esm/nv-fieldtime.entry.js +9 -9
  294. package/dist/esm/nv-icon.entry.js +2 -2
  295. package/dist/esm/nv-icon.entry.js.map +1 -1
  296. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  297. package/dist/esm/nv-menu.entry.js +1 -1
  298. package/dist/esm/nv-menuitem.entry.js +1 -1
  299. package/dist/esm/nv-popover.entry.js +4 -3
  300. package/dist/esm/nv-popover.entry.js.map +1 -1
  301. package/dist/esm/nv-row.entry.js +1 -1
  302. package/dist/esm/nv-stack.entry.js +1 -1
  303. package/dist/esm/nv-table.entry.js +2 -2
  304. package/dist/esm/nv-toggle.entry.js +2 -2
  305. package/dist/esm/nv-tooltip.entry.js +4 -3
  306. package/dist/esm/nv-tooltip.entry.js.map +1 -1
  307. package/dist/esm/{fade.animation-2a077983.js → stylefire.es-74da334a.js} +2 -65
  308. package/dist/esm/stylefire.es-74da334a.js.map +1 -0
  309. package/dist/esm/timeline.animation-adf35ecb.js +23 -0
  310. package/dist/esm/timeline.animation-adf35ecb.js.map +1 -0
  311. package/dist/native/index.esm.js +1 -1
  312. package/dist/native/index.esm.js.map +1 -1
  313. package/dist/native/native.css +1 -1
  314. package/dist/native/native.esm.js +1 -1
  315. package/dist/native/native.esm.js.map +1 -1
  316. package/dist/native/{p-a0505695.entry.js → p-08452012.entry.js} +2 -2
  317. package/dist/native/p-09cdd71f.js +16 -0
  318. package/dist/native/p-09cdd71f.js.map +1 -0
  319. package/dist/native/p-0ac03708.entry.js +2 -0
  320. package/dist/native/p-0ac03708.entry.js.map +1 -0
  321. package/dist/native/p-0ada0382.entry.js +2 -0
  322. package/dist/native/p-0ada0382.entry.js.map +1 -0
  323. package/dist/native/p-1235c007.entry.js +2 -0
  324. package/dist/native/p-12963ae4.entry.js +2 -0
  325. package/dist/native/p-12963ae4.entry.js.map +1 -0
  326. package/dist/native/p-15aeab4d.js +2 -0
  327. package/dist/native/p-15aeab4d.js.map +1 -0
  328. package/dist/native/{p-b5b9190a.entry.js → p-18831490.entry.js} +2 -2
  329. package/dist/native/{p-1d98477d.entry.js → p-1ad1bff9.entry.js} +2 -2
  330. package/dist/native/p-1cbacdba.js +2 -0
  331. package/dist/native/p-1cbacdba.js.map +1 -0
  332. package/dist/native/p-1cce9b24.entry.js +2 -0
  333. package/dist/native/p-1cce9b24.entry.js.map +1 -0
  334. package/dist/native/{p-914da1e1.entry.js → p-1f932a4b.entry.js} +2 -2
  335. package/dist/native/{p-01164e86.entry.js → p-2576c1a0.entry.js} +2 -2
  336. package/dist/native/{p-2bc7d66a.entry.js → p-2d23fcea.entry.js} +2 -2
  337. package/dist/native/{p-1c1ecd38.entry.js → p-31e72603.entry.js} +2 -2
  338. package/dist/native/p-33e5037d.entry.js +2 -0
  339. package/dist/native/{p-ff0f3794.entry.js → p-4cf00884.entry.js} +2 -2
  340. package/dist/native/p-5172f17a.entry.js +2 -0
  341. package/dist/native/{p-08ca678c.entry.js → p-51a57a3a.entry.js} +2 -2
  342. package/dist/native/p-5eca22c7.entry.js +2 -0
  343. package/dist/native/{p-2006f5d4.entry.js.map → p-5eca22c7.entry.js.map} +1 -1
  344. package/dist/native/{p-c7b8b7ba.entry.js → p-609b3822.entry.js} +2 -2
  345. package/dist/native/{p-55df8bf9.entry.js → p-625be06b.entry.js} +2 -2
  346. package/dist/native/{p-9850c1d7.entry.js → p-8030c16b.entry.js} +2 -2
  347. package/dist/native/{p-6029e51b.entry.js → p-85a54ef2.entry.js} +2 -2
  348. package/dist/native/p-8d45dbfe.js +2 -0
  349. package/dist/native/p-9a263d0e.js +2 -0
  350. package/dist/native/p-9a263d0e.js.map +1 -0
  351. package/dist/native/{p-1a5d3b87.entry.js → p-9dc1c3e7.entry.js} +2 -2
  352. package/dist/native/p-a36dc25a.entry.js +2 -0
  353. package/dist/native/{p-ad128108.entry.js.map → p-a36dc25a.entry.js.map} +1 -1
  354. package/dist/native/p-a6dc9b59.entry.js +2 -0
  355. package/dist/native/p-a6dc9b59.entry.js.map +1 -0
  356. package/dist/native/{p-0410facd.entry.js → p-b829383a.entry.js} +2 -2
  357. package/dist/native/{p-abbe5d69.entry.js → p-bab6d0a5.entry.js} +2 -2
  358. package/dist/native/p-baddee4c.entry.js +7 -0
  359. package/dist/native/p-baddee4c.entry.js.map +1 -0
  360. package/dist/native/p-be67545e.entry.js +2 -0
  361. package/dist/native/p-be67545e.entry.js.map +1 -0
  362. package/dist/native/p-c2826f22.entry.js +2 -0
  363. package/dist/native/p-c2826f22.entry.js.map +1 -0
  364. package/dist/native/p-c9cde996.entry.js +2 -0
  365. package/dist/native/{p-0ec2d430.entry.js.map → p-c9cde996.entry.js.map} +1 -1
  366. package/dist/native/{p-a30206c1.entry.js → p-cf468c67.entry.js} +2 -2
  367. package/dist/native/{p-24659a85.entry.js → p-ddb0b9f6.entry.js} +2 -2
  368. package/dist/native/{p-ec87200a.entry.js → p-e19a8885.entry.js} +2 -2
  369. package/dist/native/{p-7ba03c5d.entry.js → p-e802fbb8.entry.js} +2 -2
  370. package/dist/native/p-ec92ee7a.entry.js +2 -0
  371. package/dist/native/{p-f377b285.entry.js → p-f9aa4900.entry.js} +2 -2
  372. package/dist/native/p-fca3e27d.entry.js +2 -0
  373. package/dist/native/p-fca3e27d.entry.js.map +1 -0
  374. package/dist/native/p-fe4e516b.entry.js +2 -0
  375. package/dist/native/p-fe4e516b.entry.js.map +1 -0
  376. package/dist/types/components/nv-accordion/nv-accordion.d.ts +115 -0
  377. package/dist/types/components/nv-accordion/nv-accordion.docs.d.ts +4 -0
  378. package/dist/types/components/nv-accordion-item/nv-accordion-item.d.ts +79 -0
  379. package/dist/types/components/nv-accordion-item/nv-accordion-item.docs.d.ts +4 -0
  380. package/dist/types/components/nv-calendar/partials/calendar-grid.d.ts +4 -2
  381. package/dist/types/components/nv-dialog/nv-dialog.d.ts +7 -0
  382. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +22 -2
  383. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +13 -16
  384. package/dist/types/components/nv-fieldslider/nv-fieldslider.utils.d.ts +13 -0
  385. package/dist/types/components/nv-fieldslider/partials/range-thumb.d.ts +2 -0
  386. package/dist/types/components/nv-fieldslider/partials/single-thumb.d.ts +2 -0
  387. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  388. package/dist/types/components/nv-tooltip/nv-tooltip.d.ts +7 -0
  389. package/dist/types/components.d.ts +241 -10
  390. package/dist/vscode-data.json +84 -5
  391. package/hydrate/index.js +1116 -595
  392. package/hydrate/index.mjs +1116 -595
  393. package/package.json +7 -3
  394. package/dist/cjs/fade.animation-0d33d198.js.map +0 -1
  395. package/dist/cjs/timeline.animation-dbb9c5ea.js.map +0 -1
  396. package/dist/components/p-131e5140.js.map +0 -1
  397. package/dist/components/p-1daca48a.js.map +0 -1
  398. package/dist/components/p-42301d8f.js.map +0 -1
  399. package/dist/components/p-953d8b4d.js.map +0 -1
  400. package/dist/components/p-a0d7e0cd.js.map +0 -1
  401. package/dist/components/p-b207be02.js +0 -88
  402. package/dist/components/p-b207be02.js.map +0 -1
  403. package/dist/components/p-f7c7a406.js.map +0 -1
  404. package/dist/esm/fade.animation-2a077983.js.map +0 -1
  405. package/dist/esm/timeline.animation-1b88f052.js.map +0 -1
  406. package/dist/native/p-0ec2d430.entry.js +0 -2
  407. package/dist/native/p-14895e84.entry.js +0 -2
  408. package/dist/native/p-14895e84.entry.js.map +0 -1
  409. package/dist/native/p-1daca48a.js +0 -16
  410. package/dist/native/p-1daca48a.js.map +0 -1
  411. package/dist/native/p-2006f5d4.entry.js +0 -2
  412. package/dist/native/p-2b1e7675.entry.js +0 -2
  413. package/dist/native/p-2b1e7675.entry.js.map +0 -1
  414. package/dist/native/p-2c3fb8cc.entry.js +0 -2
  415. package/dist/native/p-2c3fb8cc.entry.js.map +0 -1
  416. package/dist/native/p-42301d8f.js +0 -2
  417. package/dist/native/p-42301d8f.js.map +0 -1
  418. package/dist/native/p-45cbe6e4.entry.js +0 -2
  419. package/dist/native/p-46428304.entry.js +0 -2
  420. package/dist/native/p-46428304.entry.js.map +0 -1
  421. package/dist/native/p-59b07b36.entry.js +0 -2
  422. package/dist/native/p-59b07b36.entry.js.map +0 -1
  423. package/dist/native/p-82c4bf56.entry.js +0 -2
  424. package/dist/native/p-82c4bf56.entry.js.map +0 -1
  425. package/dist/native/p-86ab23ea.entry.js +0 -2
  426. package/dist/native/p-ad128108.entry.js +0 -2
  427. package/dist/native/p-c1765831.js +0 -2
  428. package/dist/native/p-c92d55f9.entry.js +0 -2
  429. package/dist/native/p-c9d3de9c.entry.js +0 -2
  430. package/dist/native/p-c9d3de9c.entry.js.map +0 -1
  431. package/dist/native/p-cbca9326.entry.js +0 -2
  432. package/dist/native/p-d21b2da2.entry.js +0 -7
  433. package/dist/native/p-d21b2da2.entry.js.map +0 -1
  434. /package/dist/native/{p-a0505695.entry.js.map → p-08452012.entry.js.map} +0 -0
  435. /package/dist/native/{p-86ab23ea.entry.js.map → p-1235c007.entry.js.map} +0 -0
  436. /package/dist/native/{p-b5b9190a.entry.js.map → p-18831490.entry.js.map} +0 -0
  437. /package/dist/native/{p-1d98477d.entry.js.map → p-1ad1bff9.entry.js.map} +0 -0
  438. /package/dist/native/{p-914da1e1.entry.js.map → p-1f932a4b.entry.js.map} +0 -0
  439. /package/dist/native/{p-01164e86.entry.js.map → p-2576c1a0.entry.js.map} +0 -0
  440. /package/dist/native/{p-2bc7d66a.entry.js.map → p-2d23fcea.entry.js.map} +0 -0
  441. /package/dist/native/{p-1c1ecd38.entry.js.map → p-31e72603.entry.js.map} +0 -0
  442. /package/dist/native/{p-cbca9326.entry.js.map → p-33e5037d.entry.js.map} +0 -0
  443. /package/dist/native/{p-ff0f3794.entry.js.map → p-4cf00884.entry.js.map} +0 -0
  444. /package/dist/native/{p-c92d55f9.entry.js.map → p-5172f17a.entry.js.map} +0 -0
  445. /package/dist/native/{p-08ca678c.entry.js.map → p-51a57a3a.entry.js.map} +0 -0
  446. /package/dist/native/{p-c7b8b7ba.entry.js.map → p-609b3822.entry.js.map} +0 -0
  447. /package/dist/native/{p-55df8bf9.entry.js.map → p-625be06b.entry.js.map} +0 -0
  448. /package/dist/native/{p-9850c1d7.entry.js.map → p-8030c16b.entry.js.map} +0 -0
  449. /package/dist/native/{p-6029e51b.entry.js.map → p-85a54ef2.entry.js.map} +0 -0
  450. /package/dist/native/{p-c1765831.js.map → p-8d45dbfe.js.map} +0 -0
  451. /package/dist/native/{p-1a5d3b87.entry.js.map → p-9dc1c3e7.entry.js.map} +0 -0
  452. /package/dist/native/{p-0410facd.entry.js.map → p-b829383a.entry.js.map} +0 -0
  453. /package/dist/native/{p-abbe5d69.entry.js.map → p-bab6d0a5.entry.js.map} +0 -0
  454. /package/dist/native/{p-a30206c1.entry.js.map → p-cf468c67.entry.js.map} +0 -0
  455. /package/dist/native/{p-24659a85.entry.js.map → p-ddb0b9f6.entry.js.map} +0 -0
  456. /package/dist/native/{p-ec87200a.entry.js.map → p-e19a8885.entry.js.map} +0 -0
  457. /package/dist/native/{p-7ba03c5d.entry.js.map → p-e802fbb8.entry.js.map} +0 -0
  458. /package/dist/native/{p-45cbe6e4.entry.js.map → p-ec92ee7a.entry.js.map} +0 -0
  459. /package/dist/native/{p-f377b285.entry.js.map → p-f9aa4900.entry.js.map} +0 -0
@@ -8,7 +8,7 @@ const NvFieldmultiselect = class {
8
8
  constructor(hostRef) {
9
9
  registerInstance(this, hostRef);
10
10
  this.valueChanged = createEvent(this, "valueChanged", 7);
11
- this.multiselectChange = createEvent(this, "multiselectChange", 7);
11
+ this.filterTextChanged = createEvent(this, "filterTextChanged", 7);
12
12
  /****************************************************************************/
13
13
  //#region PROPERTIES
14
14
  /**
@@ -25,6 +25,11 @@ const NvFieldmultiselect = class {
25
25
  * always type in fresh data.
26
26
  */
27
27
  this.autocomplete = 'off';
28
+ /**
29
+ * Specifies the selected values of the multiselect field.
30
+ * This is the canonical value for the component and is used for form submission.
31
+ */
32
+ this.value = [];
28
33
  /**
29
34
  * Marks the input field as required.
30
35
  */
@@ -78,17 +83,13 @@ const NvFieldmultiselect = class {
78
83
  * Text for the badge showing the number of selected items.
79
84
  */
80
85
  this.badgeLabel = '';
81
- //#endregion PROPERTIES
82
- /****************************************************************************/
83
- //#region STATE
84
86
  /**
85
87
  * The text entered by the user for filtering multiselect items.
86
88
  */
87
89
  this.filterText = '';
88
- /**
89
- * List of selected values in the multiselect.
90
- */
91
- this.selectedValues = [];
90
+ //#endregion PROPERTIES
91
+ /****************************************************************************/
92
+ //#region STATE
92
93
  /**
93
94
  * Sorted options for display.
94
95
  */
@@ -98,8 +99,8 @@ const NvFieldmultiselect = class {
98
99
  * Handle badge close for options mode.
99
100
  */
100
101
  this.handleBadgeCloseOptions = () => {
101
- this.selectedValues = [];
102
- this.multiselectChange.emit(this.selectedValues);
102
+ this.value = [];
103
+ this.valueChanged.emit(this.value);
103
104
  // Uncheck all elements
104
105
  const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
105
106
  items.forEach(item => {
@@ -115,8 +116,8 @@ const NvFieldmultiselect = class {
115
116
  * Handle badge close for slots mode.
116
117
  */
117
118
  this.handleBadgeCloseSlots = () => {
118
- this.selectedValues = [];
119
- this.multiselectChange.emit(this.selectedValues);
119
+ this.value = [];
120
+ this.valueChanged.emit(this.value);
120
121
  // Uncheck all elements
121
122
  const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
122
123
  items.forEach(item => {
@@ -134,8 +135,7 @@ const NvFieldmultiselect = class {
134
135
  if (this.isHandlingEscape) {
135
136
  return;
136
137
  }
137
- this.filterText = '';
138
- // Reset filter if needed
138
+ // Reset filter if needed, but preserve the filter text
139
139
  if (this.filterable) {
140
140
  this.resetFilter();
141
141
  }
@@ -148,9 +148,8 @@ const NvFieldmultiselect = class {
148
148
  if (!this.el.contains(document.activeElement)) {
149
149
  // Close the popover without affecting the divider
150
150
  this.open = false;
151
- // Reset filter if needed
151
+ // Reset filter if needed, but preserve the filter text
152
152
  if (this.filterable) {
153
- this.filterText = '';
154
153
  this.resetFilter();
155
154
  }
156
155
  }
@@ -209,15 +208,14 @@ const NvFieldmultiselect = class {
209
208
  return;
210
209
  }
211
210
  const input = event.target;
212
- this.value = input.value;
213
- this.valueChanged.emit(this.value);
211
+ this.filterText = input.value;
212
+ this.filterTextChanged.emit(this.filterText);
214
213
  // Clear any existing timer
215
214
  if (this.debounceTimer) {
216
215
  window.clearTimeout(this.debounceTimer);
217
216
  }
218
217
  // Set a new timer for filtering
219
218
  this.debounceTimer = window.setTimeout(() => {
220
- this.filterText = input.value.toLowerCase();
221
219
  this.filterItemsOption();
222
220
  }, this.debounceDelay);
223
221
  };
@@ -231,15 +229,14 @@ const NvFieldmultiselect = class {
231
229
  if (this.disabled || this.readonly)
232
230
  return;
233
231
  const input = event.target;
234
- this.value = input.value;
235
- this.valueChanged.emit(this.value);
232
+ this.filterText = input.value;
233
+ this.filterTextChanged.emit(this.filterText);
236
234
  // Clear any existing timer
237
235
  if (this.debounceTimer) {
238
236
  window.clearTimeout(this.debounceTimer);
239
237
  }
240
238
  // Set a new timer for filtering
241
239
  this.debounceTimer = window.setTimeout(() => {
242
- this.filterText = input.value.toLowerCase();
243
240
  this.filterSlotsItems();
244
241
  }, this.debounceDelay);
245
242
  };
@@ -269,9 +266,8 @@ const NvFieldmultiselect = class {
269
266
  if (!this.el.contains(document.activeElement)) {
270
267
  // Close the popover without affecting the divider
271
268
  this.open = false;
272
- // Reset filter if needed
269
+ // Reset filter if needed, but preserve the filter text
273
270
  if (this.filterable) {
274
- this.filterText = '';
275
271
  this.resetFilter();
276
272
  }
277
273
  }
@@ -303,14 +299,14 @@ const NvFieldmultiselect = class {
303
299
  * @returns {any} The JSX for options mode
304
300
  */
305
301
  this.renderOptionsMode = () => {
306
- return (h(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect" }, h("slot", { name: "leading-input" }), this.selectedValues.length > 0 && (h("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.selectedValues.length > 0, label: `${this.selectedValues.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.selectedValues.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseOptions })), this.filterable || this.disabled || this.readonly ? (h("input", { type: "text", id: this.inputId, ref: e => (this.inputElement = e), autofocus: this.autofocus, autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.value, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputOptions, onFocus: this.handleInputFocusOptions, onBlur: this.handleInputBlurOptions, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (h("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickOptions, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusOptions, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, h("span", null, this.value || this.placeholder))), this.error && (h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), h("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverOptions })), h("slot", { name: "after-input" })), h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, h("ul", { role: "content" }, this.options.map(option => (h("nv-fielddropdownitemcheck", { label: option.label, description: option.description, value: option.value, checked: this.selectedValues.includes(option.value), disabled: option.disabled }))), h("hr", { class: "multiselect-divider", style: { display: 'none' } })))), this.renderDescriptions()));
302
+ return (h(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect" }, h("slot", { name: "leading-input" }), this.value.length > 0 && (h("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.value.length > 0, label: `${this.value.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.value.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseOptions })), this.filterable || this.disabled || this.readonly ? (h("input", { type: "text", id: this.inputId, ref: e => (this.inputElement = e), autofocus: this.autofocus, autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.filterText, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputOptions, onFocus: this.handleInputFocusOptions, onBlur: this.handleInputBlurOptions, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (h("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickOptions, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusOptions, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, h("span", null, this.placeholder))), this.error && (h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), h("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverOptions })), h("slot", { name: "after-input" })), h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, h("ul", { role: "content" }, this.options.map(option => (h("nv-fielddropdownitemcheck", { label: option.label, description: option.description, value: option.value, checked: this.value.includes(option.value), disabled: option.disabled }))), h("hr", { class: "multiselect-divider", style: { display: 'none' } })))), this.renderDescriptions()));
307
303
  };
308
304
  /**
309
305
  * Renders the component in slots mode
310
306
  * @returns {any} The JSX for slots mode
311
307
  */
312
308
  this.renderSlotsMode = () => {
313
- return (h(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, h("slot", { name: "leading-input" }), this.selectedValues.length > 0 && (h("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.selectedValues.length > 0, label: `${this.selectedValues.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.selectedValues.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseSlots })), this.filterable || this.disabled || this.readonly ? (h("input", { id: this.inputId, ref: e => (this.inputElement = e), autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.value, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputSlots, onFocus: this.handleInputFocusSlots, onBlur: this.handleInputBlurSlots, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (h("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickSlots, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusSlots, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, h("span", null, this.value || this.placeholder))), this.error && (h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), h("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverSlots })), h("slot", { name: "after-input" })), h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, h("slot", { name: "content" }))), this.renderDescriptions()));
309
+ return (h(Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { htmlFor: this.inputId }, h("slot", { name: "label" }, this.label))), h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, h("slot", { name: "before-input" }), h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, h("slot", { name: "leading-input" }), this.value.length > 0 && (h("nv-badge", { slot: "leading-input", "prevent-auto-close": true, color: "10", dismissible: this.value.length > 0, label: `${this.value.length} ${this.badgeLabel}`, "aria-label": `Clear all ${this.value.length} ${this.badgeLabel} items`, onCloseClicked: this.handleBadgeCloseSlots })), this.filterable || this.disabled || this.readonly ? (h("input", { id: this.inputId, ref: e => (this.inputElement = e), autocomplete: this.autocomplete, placeholder: this.placeholder, name: this.name, value: this.filterText, required: this.required, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInputSlots, onFocus: this.handleInputFocusSlots, onBlur: this.handleInputBlurSlots, onKeyDown: this.handleKeyDown, "data-scope": "focusable" })) : (h("p", { id: this.inputId, class: "non-filterable-text", onClick: this.handleInputContainerClickSlots, tabIndex: 0, onKeyDown: this.handleKeyDown, onFocus: this.handleInputFocusSlots, role: "combobox", "aria-expanded": this.open, "data-scope": "focusable" }, h("span", null, this.placeholder))), this.error && (h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), h("nv-iconbutton", { "data-scope": "toggle-dropdown", name: this.open ? 'chevron-top' : 'chevron-down', size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide dropdown' : 'Show dropdown', "aria-pressed": this.open.toString(), onClick: this.togglePopoverSlots })), h("slot", { name: "after-input" })), h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, h("slot", { name: "content" }))), this.renderDescriptions()));
314
310
  };
315
311
  }
316
312
  //#endregion EVENTS
@@ -319,7 +315,7 @@ const NvFieldmultiselect = class {
319
315
  handleOptionsChange(newValue) {
320
316
  if (!newValue)
321
317
  return;
322
- this.selectedValues = newValue
318
+ this.value = newValue
323
319
  .filter(option => option.checked)
324
320
  .map(option => option.value);
325
321
  this.reorderOptionsContent();
@@ -328,8 +324,10 @@ const NvFieldmultiselect = class {
328
324
  * Emitted when the value changes.
329
325
  */
330
326
  watchValueHandler() {
331
- // Handle value change and update the corresponding multiselect item if it exists
332
- this.setInitialSelection();
327
+ // Synchronize child components when value changes programmatically
328
+ if (this.el && this.el.isConnected) {
329
+ this.syncChildComponents();
330
+ }
333
331
  }
334
332
  //#endregion WATCHERS
335
333
  /****************************************************************************/
@@ -369,22 +367,23 @@ const NvFieldmultiselect = class {
369
367
  }
370
368
  const { value, checked } = event.detail;
371
369
  if (value !== undefined && value !== null) {
372
- const newSelectedValues = [...this.selectedValues];
373
- const valueIndex = newSelectedValues.indexOf(value);
370
+ const newValue = [...this.value];
371
+ const valueIndex = newValue.indexOf(value);
374
372
  if (checked && valueIndex === -1) {
375
- newSelectedValues.push(value);
373
+ newValue.push(value);
376
374
  }
377
375
  else if (!checked && valueIndex > -1) {
378
- newSelectedValues.splice(valueIndex, 1);
376
+ newValue.splice(valueIndex, 1);
379
377
  }
380
- // Update the state and emit the event only if the selection has changed
381
- if (JSON.stringify(this.selectedValues) !==
382
- JSON.stringify(newSelectedValues)) {
383
- this.selectedValues = newSelectedValues;
384
- // Use requestAnimationFrame to ensure the state is updated before emitting the event
385
- requestAnimationFrame(() => {
386
- this.multiselectChange.emit(this.selectedValues);
387
- });
378
+ // Always update the state and emit the event when an item is checked/unchecked
379
+ this.value = newValue;
380
+ this.valueChanged.emit(this.value);
381
+ // Update the checked state of all items to ensure consistency
382
+ this.syncChildComponents();
383
+ // Preserve the filter text in the input
384
+ if (this.filterable && this.inputElement) {
385
+ // Keep the current filter text in the input
386
+ this.inputElement.value = this.filterText;
388
387
  }
389
388
  }
390
389
  else {
@@ -423,12 +422,10 @@ const NvFieldmultiselect = class {
423
422
  }
424
423
  // Specific initialization for slots mode
425
424
  if (!this.options) {
425
+ // Use a microtask to ensure DOM is ready
426
426
  Promise.resolve().then(() => {
427
- const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
428
- // Initialize selectedValues with checked items
429
- this.selectedValues = items
430
- .filter(item => item.hasAttribute('checked'))
431
- .map(item => item.getAttribute('value') || '');
427
+ // Synchronize child components
428
+ this.syncChildComponents();
432
429
  // Force a reorder after initialization
433
430
  requestAnimationFrame(() => {
434
431
  this.reorderSlotContent();
@@ -439,13 +436,8 @@ const NvFieldmultiselect = class {
439
436
  if (this.options) {
440
437
  this.sortedOptions = [...((_a = this.options) !== null && _a !== void 0 ? _a : [])];
441
438
  }
442
- // Apply filtering if the multiselect is filterable and there is a value
443
- if (this.filterable && this.value) {
444
- this.filterText = String(this.value).toLocaleLowerCase();
445
- this.filterItems();
446
- }
447
- else {
448
- // Reset visibility state of all dropdown items
439
+ // Reset filter if needed
440
+ if (!this.filterText) {
449
441
  this.resetFilter();
450
442
  }
451
443
  }
@@ -456,6 +448,8 @@ const NvFieldmultiselect = class {
456
448
  if (this.options) {
457
449
  this.handleOptionsChange(this.options);
458
450
  }
451
+ // Final synchronization of child components after everything is loaded
452
+ this.syncChildComponents();
459
453
  }
460
454
  /**
461
455
  * Unsubscribe from click outside event.
@@ -473,38 +467,6 @@ const NvFieldmultiselect = class {
473
467
  async getFilterText() {
474
468
  return this.filterText;
475
469
  }
476
- /**
477
- * Set the initial selection based on the current value and update the inputElement value.
478
- */
479
- setInitialSelection() {
480
- var _a;
481
- const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitem'));
482
- const selectedItem = items.find(item => {
483
- var _a;
484
- return item.getAttribute('label') === this.value ||
485
- item.getAttribute('value') === this.value ||
486
- ((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === this.value;
487
- });
488
- // Remove 'selected' from all items first to reset the state
489
- items.forEach(item => {
490
- item.removeAttribute('selected');
491
- item.classList.remove('selected');
492
- });
493
- if (selectedItem) {
494
- // Add the `selected` attribute and `selected` class for visual styling
495
- selectedItem.setAttribute('selected', 'true');
496
- selectedItem.classList.add('selected');
497
- // Update the value and inputElement value to reflect the pre-selected item
498
- this.value =
499
- selectedItem.getAttribute('label') ||
500
- selectedItem.getAttribute('value') ||
501
- ((_a = selectedItem.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
502
- '';
503
- if (this.inputElement) {
504
- this.inputElement.value = this.value;
505
- }
506
- }
507
- }
508
470
  /**
509
471
  * Reset the filter and make all items visible.
510
472
  */
@@ -521,8 +483,8 @@ const NvFieldmultiselect = class {
521
483
  if (emptyMessage)
522
484
  emptyMessage.remove();
523
485
  // Reorder with divider if needed
524
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
525
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
486
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
487
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
526
488
  if (selectedItems.length > 0) {
527
489
  this.manageDivider(ul, selectedItems, unselectedItems);
528
490
  }
@@ -533,7 +495,7 @@ const NvFieldmultiselect = class {
533
495
  * @returns {string[]} The selected values.
534
496
  */
535
497
  async getSelectedValues() {
536
- return this.selectedValues;
498
+ return this.value;
537
499
  }
538
500
  /**
539
501
  * Reorder the content of the slot.
@@ -555,8 +517,8 @@ const NvFieldmultiselect = class {
555
517
  return;
556
518
  }
557
519
  // Separate checked vs unchecked
558
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
559
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
520
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
521
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
560
522
  // Reinsert CHECKED items FIRST
561
523
  // appendChild() moves the element without recreating it
562
524
  // this is not trigger a re-rendering of the component in the platforms
@@ -582,8 +544,8 @@ const NvFieldmultiselect = class {
582
544
  if (!ul)
583
545
  return;
584
546
  const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
585
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
586
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
547
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
548
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
587
549
  // Reorder the elements
588
550
  selectedItems.forEach(item => ul.appendChild(item));
589
551
  unselectedItems.forEach(item => ul.appendChild(item));
@@ -619,8 +581,8 @@ const NvFieldmultiselect = class {
619
581
  }
620
582
  // Reorder with divider
621
583
  const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
622
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
623
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
584
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
585
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
624
586
  this.manageDivider(ul, selectedItems, unselectedItems);
625
587
  return;
626
588
  }
@@ -641,8 +603,8 @@ const NvFieldmultiselect = class {
641
603
  });
642
604
  // Manage the divider with the visible items
643
605
  const visibleItems = items.filter(item => item.style.display !== 'none');
644
- const visibleSelected = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
645
- const visibleUnselected = visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
606
+ const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
607
+ const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
646
608
  this.manageDivider(ul, visibleSelected, visibleUnselected);
647
609
  }
648
610
  else {
@@ -700,8 +662,8 @@ const NvFieldmultiselect = class {
700
662
  });
701
663
  // Manage the divider with the visible items
702
664
  const visibleItems = items.filter(item => item.style.display !== 'none');
703
- const visibleSelected = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
704
- const visibleUnselected = visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
665
+ const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
666
+ const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
705
667
  this.manageDivider(ul, visibleSelected, visibleUnselected);
706
668
  // Add or remove the empty message based on the case
707
669
  if (!hasVisibleItems) {
@@ -749,8 +711,8 @@ const NvFieldmultiselect = class {
749
711
  });
750
712
  // Get visible items after filtering
751
713
  const visibleItems = items.filter(item => item.style.display !== 'none');
752
- const visibleSelectedItems = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
753
- this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || '')));
714
+ const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
715
+ this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
754
716
  // Add empty message if no items match the filter
755
717
  if (!hasVisibleItems) {
756
718
  const emptyMessage = document.createElement('li');
@@ -947,6 +909,29 @@ const NvFieldmultiselect = class {
947
909
  divider.style.display = 'none';
948
910
  }
949
911
  }
912
+ /**
913
+ * Synchronizes the checked state of all child nv-fielddropdownitemcheck components
914
+ * with the current selectedValues state.
915
+ */
916
+ syncChildComponents() {
917
+ // Early return if element is not ready
918
+ if (!this.el || !this.el.isConnected) {
919
+ return;
920
+ }
921
+ const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
922
+ items.forEach(item => {
923
+ // Get the effective value: use explicit value if present, otherwise use label
924
+ const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
925
+ if (this.value.includes(itemValue)) {
926
+ item.setAttribute('checked', '');
927
+ item.checked = true;
928
+ }
929
+ else {
930
+ item.removeAttribute('checked');
931
+ item.checked = false;
932
+ }
933
+ });
934
+ }
950
935
  /**
951
936
  * Renders description and error description sections
952
937
  * @returns {any} The JSX for descriptions