@nova-design-system/nova-webcomponents 3.5.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/dist/cjs/{timeline.animation-dbb9c5ea.js → collapse.animation-a129dc3f.js} +5 -26
  2. package/dist/cjs/collapse.animation-a129dc3f.js.map +1 -0
  3. package/dist/cjs/fade.animation-644b5c4d.js +70 -0
  4. package/dist/cjs/fade.animation-644b5c4d.js.map +1 -0
  5. package/dist/cjs/{grow.animation-a1f0bc22.js → grow.animation-6d003803.js} +5 -5
  6. package/dist/cjs/{grow.animation-a1f0bc22.js.map → grow.animation-6d003803.js.map} +1 -1
  7. package/dist/cjs/index-c56424e5.js +8 -0
  8. package/dist/cjs/index.cjs.js +6 -4
  9. package/dist/cjs/index.cjs.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/native.cjs.js +1 -1
  12. package/dist/cjs/nv-accordion-item.cjs.entry.js +181 -0
  13. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -0
  14. package/dist/cjs/nv-accordion.cjs.entry.js +167 -0
  15. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -0
  16. package/dist/cjs/nv-alert.cjs.entry.js +6 -4
  17. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-badge_2.cjs.entry.js +9 -7
  20. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
  22. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-calendar.cjs.entry.js +96 -66
  25. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-datagrid.cjs.entry.js +2 -2
  28. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  29. package/dist/cjs/nv-dialog.cjs.entry.js +19 -6
  30. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
  33. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nv-fielddate.cjs.entry.js +121 -35
  35. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  36. package/dist/cjs/nv-fielddaterange.cjs.entry.js +32 -4
  37. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
  39. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  40. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +95 -102
  41. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  43. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  44. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  45. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  46. package/dist/cjs/nv-fieldslider.cjs.entry.js +53 -9
  47. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  49. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  50. package/dist/cjs/nv-fieldtime.cjs.entry.js +10 -10
  51. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  53. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  54. package/dist/cjs/nv-menu.cjs.entry.js +1 -1
  55. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  56. package/dist/cjs/nv-popover.cjs.entry.js +4 -3
  57. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  59. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  60. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  62. package/dist/cjs/nv-tooltip.cjs.entry.js +3 -2
  63. package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
  64. package/dist/cjs/{fade.animation-0d33d198.js → stylefire.es-717e022a.js} +1 -65
  65. package/dist/cjs/stylefire.es-717e022a.js.map +1 -0
  66. package/dist/cjs/timeline.animation-155e8839.js +25 -0
  67. package/dist/cjs/timeline.animation-155e8839.js.map +1 -0
  68. package/dist/collection/collection-manifest.json +2 -0
  69. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +153 -0
  70. package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -0
  71. package/dist/collection/components/nv-accordion/nv-accordion.js +310 -0
  72. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -0
  73. package/dist/collection/components/nv-accordion/styles/nv-accordion.css +15 -0
  74. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js +6 -0
  75. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js.map +1 -0
  76. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +353 -0
  77. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -0
  78. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +66 -0
  79. package/dist/collection/components/nv-alert/nv-alert.js +1 -1
  80. package/dist/collection/components/nv-avatar/nv-avatar.js +1 -1
  81. package/dist/collection/components/nv-badge/nv-badge.js +2 -2
  82. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
  83. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
  84. package/dist/collection/components/nv-button/nv-button.js +1 -1
  85. package/dist/collection/components/nv-calendar/nv-calendar.css +10 -0
  86. package/dist/collection/components/nv-calendar/nv-calendar.js +110 -43
  87. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  88. package/dist/collection/components/nv-calendar/nv-calendar.utils.js +0 -20
  89. package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -1
  90. package/dist/collection/components/nv-calendar/partials/calendar-grid.js +6 -2
  91. package/dist/collection/components/nv-calendar/partials/calendar-grid.js.map +1 -1
  92. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +5 -31
  93. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
  94. package/dist/collection/components/nv-col/nv-col.js +1 -1
  95. package/dist/collection/components/nv-datagrid/nv-datagrid.js +2 -2
  96. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
  97. package/dist/collection/components/nv-dialog/nv-dialog.css +1 -1
  98. package/dist/collection/components/nv-dialog/nv-dialog.js +38 -5
  99. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  100. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  101. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  102. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +6 -4
  103. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
  104. package/dist/collection/components/nv-fielddate/nv-fielddate.js +148 -34
  105. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  106. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +2 -0
  107. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +61 -4
  108. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  109. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +3 -3
  110. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  111. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +7 -1
  112. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js.map +1 -1
  113. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +44 -34
  114. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  115. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +127 -117
  116. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  117. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
  118. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  119. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  120. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  121. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  122. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -1
  123. package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js +45 -1
  124. package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js.map +1 -1
  125. package/dist/collection/components/nv-fieldslider/partials/range-thumb.js +4 -4
  126. package/dist/collection/components/nv-fieldslider/partials/range-thumb.js.map +1 -1
  127. package/dist/collection/components/nv-fieldslider/partials/single-thumb.js +3 -3
  128. package/dist/collection/components/nv-fieldslider/partials/single-thumb.js.map +1 -1
  129. package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js +42 -1
  130. package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js.map +1 -1
  131. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  132. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  133. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  134. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  135. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +11 -13
  136. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  137. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  138. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  139. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  140. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  141. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  142. package/dist/collection/components/nv-row/nv-row.js +1 -1
  143. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  144. package/dist/collection/components/nv-table/nv-table.js +2 -2
  145. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  146. package/dist/collection/components/nv-tooltip/nv-tooltip.js +21 -3
  147. package/dist/collection/components/nv-tooltip/nv-tooltip.js.map +1 -1
  148. package/dist/components/index.js +4 -3
  149. package/dist/components/index.js.map +1 -1
  150. package/dist/components/nv-accordion-item.d.ts +11 -0
  151. package/dist/components/nv-accordion-item.js +8 -0
  152. package/dist/components/nv-accordion-item.js.map +1 -0
  153. package/dist/components/nv-accordion.d.ts +11 -0
  154. package/dist/components/nv-accordion.js +212 -0
  155. package/dist/components/nv-accordion.js.map +1 -0
  156. package/dist/components/nv-alert.js +6 -4
  157. package/dist/components/nv-alert.js.map +1 -1
  158. package/dist/components/nv-avatar.js +2 -2
  159. package/dist/components/nv-badge.js +1 -1
  160. package/dist/components/nv-breadcrumb.js +3 -3
  161. package/dist/components/nv-breadcrumbs.js +1 -1
  162. package/dist/components/nv-button.js +1 -1
  163. package/dist/components/nv-calendar.js +1 -1
  164. package/dist/components/nv-col.js +1 -1
  165. package/dist/components/nv-datagrid.js +4 -4
  166. package/dist/components/nv-datagridcolumn.js +1 -1
  167. package/dist/components/nv-dialog.js +25 -11
  168. package/dist/components/nv-dialog.js.map +1 -1
  169. package/dist/components/nv-dialogfooter.js +1 -1
  170. package/dist/components/nv-dialogheader.js +1 -1
  171. package/dist/components/nv-fieldcheckbox.js +1 -1
  172. package/dist/components/nv-fielddate.js +130 -42
  173. package/dist/components/nv-fielddate.js.map +1 -1
  174. package/dist/components/nv-fielddaterange.js +40 -11
  175. package/dist/components/nv-fielddaterange.js.map +1 -1
  176. package/dist/components/nv-fielddropdown.js +8 -8
  177. package/dist/components/nv-fielddropdownitem.js +1 -1
  178. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  179. package/dist/components/nv-fieldmultiselect.js +104 -112
  180. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  181. package/dist/components/nv-fieldnumber.js +1 -1
  182. package/dist/components/nv-fieldpassword.js +6 -6
  183. package/dist/components/nv-fieldradio.js +3 -3
  184. package/dist/components/nv-fieldselect.js +8 -8
  185. package/dist/components/nv-fieldslider.js +57 -13
  186. package/dist/components/nv-fieldslider.js.map +1 -1
  187. package/dist/components/nv-fieldtext.js +1 -1
  188. package/dist/components/nv-fieldtextarea.js +3 -3
  189. package/dist/components/nv-fieldtime.js +14 -14
  190. package/dist/components/nv-fieldtime.js.map +1 -1
  191. package/dist/components/nv-icon.js +1 -1
  192. package/dist/components/nv-iconbutton.js +1 -1
  193. package/dist/components/nv-loader.js +1 -1
  194. package/dist/components/nv-menu.js +4 -4
  195. package/dist/components/nv-menuitem.js +1 -1
  196. package/dist/components/nv-popover.js +1 -1
  197. package/dist/components/nv-row.js +1 -1
  198. package/dist/components/nv-stack.js +1 -1
  199. package/dist/components/nv-table.js +2 -2
  200. package/dist/components/nv-toggle.js +2 -2
  201. package/dist/components/nv-tooltip.js +1 -1
  202. package/dist/components/{p-9e6e26cb.js → p-0143cee0.js} +5 -5
  203. package/dist/components/p-0143cee0.js.map +1 -0
  204. package/dist/components/{p-e8c083e3.js → p-07550eac.js} +3 -3
  205. package/dist/components/{p-e8c083e3.js.map → p-07550eac.js.map} +1 -1
  206. package/dist/components/{p-1daca48a.js → p-09cdd71f.js} +2 -65
  207. package/dist/components/p-09cdd71f.js.map +1 -0
  208. package/dist/components/{p-919b5237.js → p-12258eef.js} +5 -5
  209. package/dist/components/{p-919b5237.js.map → p-12258eef.js.map} +1 -1
  210. package/dist/components/{p-05c19c9a.js → p-144e80f0.js} +4 -4
  211. package/dist/components/{p-05c19c9a.js.map → p-144e80f0.js.map} +1 -1
  212. package/dist/components/p-15aeab4d.js +23 -0
  213. package/dist/components/p-15aeab4d.js.map +1 -0
  214. package/dist/components/p-1cbacdba.js +68 -0
  215. package/dist/components/p-1cbacdba.js.map +1 -0
  216. package/dist/components/p-44df0d22.js +223 -0
  217. package/dist/components/p-44df0d22.js.map +1 -0
  218. package/dist/components/{p-cebdbb40.js → p-5d5668f0.js} +3 -3
  219. package/dist/components/{p-cebdbb40.js.map → p-5d5668f0.js.map} +1 -1
  220. package/dist/components/{p-001c888b.js → p-8067d283.js} +5 -4
  221. package/dist/components/p-8067d283.js.map +1 -0
  222. package/dist/components/{p-4badc1d2.js → p-8b82a6f4.js} +7 -7
  223. package/dist/components/{p-4badc1d2.js.map → p-8b82a6f4.js.map} +1 -1
  224. package/dist/components/{p-c1765831.js → p-8d45dbfe.js} +2 -2
  225. package/dist/components/{p-c1765831.js.map → p-8d45dbfe.js.map} +1 -1
  226. package/dist/components/{p-9f1e8ef3.js → p-91a558eb.js} +2 -2
  227. package/dist/components/{p-9f1e8ef3.js.map → p-91a558eb.js.map} +1 -1
  228. package/dist/components/{p-42301d8f.js → p-9a263d0e.js} +3 -23
  229. package/dist/components/p-9a263d0e.js.map +1 -0
  230. package/dist/components/{p-5bee0141.js → p-ba87d9d5.js} +6 -5
  231. package/dist/components/p-ba87d9d5.js.map +1 -0
  232. package/dist/components/{p-6277f746.js → p-ca130ad2.js} +2 -2
  233. package/dist/components/{p-6277f746.js.map → p-ca130ad2.js.map} +1 -1
  234. package/dist/components/{p-a0d7e0cd.js → p-d32b75ac.js} +99 -68
  235. package/dist/components/p-d32b75ac.js.map +1 -0
  236. package/dist/components/{p-970cd9b1.js → p-d576d64f.js} +5 -5
  237. package/dist/components/{p-970cd9b1.js.map → p-d576d64f.js.map} +1 -1
  238. package/dist/components/{p-e072f051.js → p-dd7ff995.js} +2 -2
  239. package/dist/components/{p-e072f051.js.map → p-dd7ff995.js.map} +1 -1
  240. package/dist/components/{p-918bb719.js → p-dfd2d4f0.js} +2 -2
  241. package/dist/components/{p-918bb719.js.map → p-dfd2d4f0.js.map} +1 -1
  242. package/dist/components/{p-44f0039b.js → p-e104c58a.js} +4 -4
  243. package/dist/components/p-e104c58a.js.map +1 -0
  244. package/dist/components/{p-00ac701f.js → p-e8e6f88a.js} +8 -6
  245. package/dist/components/p-e8e6f88a.js.map +1 -0
  246. package/dist/components/{p-d56b30ab.js → p-f97d1cb1.js} +3 -3
  247. package/dist/components/{p-d56b30ab.js.map → p-f97d1cb1.js.map} +1 -1
  248. package/dist/esm/{timeline.animation-1b88f052.js → collapse.animation-16e3af45.js} +3 -23
  249. package/dist/esm/collapse.animation-16e3af45.js.map +1 -0
  250. package/dist/esm/fade.animation-71e8e34c.js +68 -0
  251. package/dist/esm/fade.animation-71e8e34c.js.map +1 -0
  252. package/dist/esm/{grow.animation-cac164da.js → grow.animation-f7b26024.js} +2 -2
  253. package/dist/esm/{grow.animation-cac164da.js.map → grow.animation-f7b26024.js.map} +1 -1
  254. package/dist/esm/index-a1936cd0.js +8 -0
  255. package/dist/esm/index.js +5 -3
  256. package/dist/esm/index.js.map +1 -1
  257. package/dist/esm/loader.js +1 -1
  258. package/dist/esm/native.js +1 -1
  259. package/dist/esm/nv-accordion-item.entry.js +177 -0
  260. package/dist/esm/nv-accordion-item.entry.js.map +1 -0
  261. package/dist/esm/nv-accordion.entry.js +163 -0
  262. package/dist/esm/nv-accordion.entry.js.map +1 -0
  263. package/dist/esm/nv-alert.entry.js +5 -3
  264. package/dist/esm/nv-alert.entry.js.map +1 -1
  265. package/dist/esm/nv-avatar.entry.js +1 -1
  266. package/dist/esm/nv-badge_2.entry.js +7 -5
  267. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  268. package/dist/esm/nv-breadcrumb.entry.js +1 -1
  269. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  270. package/dist/esm/nv-button.entry.js +1 -1
  271. package/dist/esm/nv-calendar.entry.js +96 -66
  272. package/dist/esm/nv-calendar.entry.js.map +1 -1
  273. package/dist/esm/nv-col.entry.js +1 -1
  274. package/dist/esm/nv-datagrid.entry.js +2 -2
  275. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  276. package/dist/esm/nv-dialog.entry.js +19 -6
  277. package/dist/esm/nv-dialog.entry.js.map +1 -1
  278. package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
  279. package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
  280. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  281. package/dist/esm/nv-fielddate.entry.js +121 -35
  282. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  283. package/dist/esm/nv-fielddaterange.entry.js +32 -4
  284. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  285. package/dist/esm/nv-fielddropdown.entry.js +3 -3
  286. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  287. package/dist/esm/nv-fieldmultiselect.entry.js +95 -102
  288. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  289. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  290. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  291. package/dist/esm/nv-fieldradio.entry.js +3 -3
  292. package/dist/esm/nv-fieldselect.entry.js +5 -5
  293. package/dist/esm/nv-fieldslider.entry.js +53 -9
  294. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  295. package/dist/esm/nv-fieldtext.entry.js +3 -3
  296. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  297. package/dist/esm/nv-fieldtime.entry.js +10 -10
  298. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  299. package/dist/esm/nv-icon.entry.js +1 -1
  300. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  301. package/dist/esm/nv-menu.entry.js +1 -1
  302. package/dist/esm/nv-menuitem.entry.js +1 -1
  303. package/dist/esm/nv-popover.entry.js +4 -3
  304. package/dist/esm/nv-popover.entry.js.map +1 -1
  305. package/dist/esm/nv-row.entry.js +1 -1
  306. package/dist/esm/nv-stack.entry.js +1 -1
  307. package/dist/esm/nv-table.entry.js +2 -2
  308. package/dist/esm/nv-toggle.entry.js +2 -2
  309. package/dist/esm/nv-tooltip.entry.js +4 -3
  310. package/dist/esm/nv-tooltip.entry.js.map +1 -1
  311. package/dist/esm/{fade.animation-2a077983.js → stylefire.es-74da334a.js} +2 -65
  312. package/dist/esm/stylefire.es-74da334a.js.map +1 -0
  313. package/dist/esm/timeline.animation-adf35ecb.js +23 -0
  314. package/dist/esm/timeline.animation-adf35ecb.js.map +1 -0
  315. package/dist/native/index.esm.js +1 -1
  316. package/dist/native/index.esm.js.map +1 -1
  317. package/dist/native/native.css +1 -1
  318. package/dist/native/native.esm.js +1 -1
  319. package/dist/native/native.esm.js.map +1 -1
  320. package/dist/native/p-051db87c.entry.js +2 -0
  321. package/dist/native/p-051db87c.entry.js.map +1 -0
  322. package/dist/native/{p-a0505695.entry.js → p-08452012.entry.js} +2 -2
  323. package/dist/native/p-09cdd71f.js +16 -0
  324. package/dist/native/p-09cdd71f.js.map +1 -0
  325. package/dist/native/p-0e005d95.entry.js +2 -0
  326. package/dist/native/{p-d4bf2587.entry.js.map → p-0e005d95.entry.js.map} +1 -1
  327. package/dist/native/p-10ce53ea.entry.js +2 -0
  328. package/dist/native/{p-54198779.entry.js → p-12039da4.entry.js} +2 -2
  329. package/dist/native/p-1235c007.entry.js +2 -0
  330. package/dist/native/p-15aeab4d.js +2 -0
  331. package/dist/native/p-15aeab4d.js.map +1 -0
  332. package/dist/native/{p-003b6377.entry.js → p-16ef7dd4.entry.js} +2 -2
  333. package/dist/native/{p-1d98477d.entry.js → p-1ad1bff9.entry.js} +2 -2
  334. package/dist/native/p-1cbacdba.js +2 -0
  335. package/dist/native/p-1cbacdba.js.map +1 -0
  336. package/dist/native/{p-914da1e1.entry.js → p-1f932a4b.entry.js} +2 -2
  337. package/dist/native/p-2a6783ca.entry.js +2 -0
  338. package/dist/native/p-2a6783ca.entry.js.map +1 -0
  339. package/dist/native/{p-a5c72bd3.entry.js → p-34bf336f.entry.js} +2 -2
  340. package/dist/native/{p-e293b3fe.entry.js → p-3f139780.entry.js} +2 -2
  341. package/dist/native/{p-dd256ea3.entry.js → p-40fa3328.entry.js} +2 -2
  342. package/dist/native/{p-a983e6a0.entry.js → p-4b15cff3.entry.js} +2 -2
  343. package/dist/native/p-516da423.entry.js +2 -0
  344. package/dist/native/p-516da423.entry.js.map +1 -0
  345. package/dist/native/{p-08ca678c.entry.js → p-51a57a3a.entry.js} +2 -2
  346. package/dist/native/{p-5b06f4b5.entry.js → p-64cb38e6.entry.js} +2 -2
  347. package/dist/native/{p-af1e6035.entry.js → p-67c34b8c.entry.js} +2 -2
  348. package/dist/native/{p-e9962dac.entry.js → p-68edb2e8.entry.js} +2 -2
  349. package/dist/native/p-73c08f3b.entry.js +2 -0
  350. package/dist/native/p-73c08f3b.entry.js.map +1 -0
  351. package/dist/native/p-7703c736.entry.js +2 -0
  352. package/dist/native/p-7703c736.entry.js.map +1 -0
  353. package/dist/native/{p-6029e51b.entry.js → p-85a54ef2.entry.js} +2 -2
  354. package/dist/native/p-8d45dbfe.js +2 -0
  355. package/dist/native/p-916acbd3.entry.js +2 -0
  356. package/dist/native/p-916acbd3.entry.js.map +1 -0
  357. package/dist/native/p-9a263d0e.js +2 -0
  358. package/dist/native/p-9a263d0e.js.map +1 -0
  359. package/dist/native/{p-1a5d3b87.entry.js → p-9dc1c3e7.entry.js} +2 -2
  360. package/dist/native/p-a36dc25a.entry.js +2 -0
  361. package/dist/native/{p-ad128108.entry.js.map → p-a36dc25a.entry.js.map} +1 -1
  362. package/dist/native/p-a50f3850.entry.js +2 -0
  363. package/dist/native/{p-19f484a0.entry.js → p-a73fa60a.entry.js} +2 -2
  364. package/dist/native/p-b3f9db23.entry.js +2 -0
  365. package/dist/native/{p-82568ec7.entry.js.map → p-b3f9db23.entry.js.map} +1 -1
  366. package/dist/native/p-baddee4c.entry.js +7 -0
  367. package/dist/native/p-baddee4c.entry.js.map +1 -0
  368. package/dist/native/p-bba5cc9b.entry.js +2 -0
  369. package/dist/native/p-bba5cc9b.entry.js.map +1 -0
  370. package/dist/native/{p-1e0df2d3.entry.js → p-bee62b2b.entry.js} +2 -2
  371. package/dist/native/p-dc34da69.entry.js +2 -0
  372. package/dist/native/p-dc34da69.entry.js.map +1 -0
  373. package/dist/native/p-ec92ee7a.entry.js +2 -0
  374. package/dist/native/{p-6ea1c78b.entry.js → p-f00a4552.entry.js} +2 -2
  375. package/dist/native/{p-dd6b1d79.entry.js → p-f540db71.entry.js} +2 -2
  376. package/dist/native/{p-be9aeed4.entry.js → p-f687e05c.entry.js} +2 -2
  377. package/dist/native/p-f687e05c.entry.js.map +1 -0
  378. package/dist/native/{p-b5b9190a.entry.js → p-fa81b77f.entry.js} +2 -2
  379. package/dist/native/p-fa81b77f.entry.js.map +1 -0
  380. package/dist/native/{p-2d98d4f0.entry.js → p-fcd52432.entry.js} +2 -2
  381. package/dist/types/components/nv-accordion/nv-accordion.d.ts +82 -0
  382. package/dist/types/components/nv-accordion/nv-accordion.docs.d.ts +4 -0
  383. package/dist/types/components/nv-accordion-item/nv-accordion-item.d.ts +79 -0
  384. package/dist/types/components/nv-accordion-item/nv-accordion-item.docs.d.ts +4 -0
  385. package/dist/types/components/nv-calendar/nv-calendar.d.ts +7 -1
  386. package/dist/types/components/nv-calendar/partials/calendar-grid.d.ts +6 -2
  387. package/dist/types/components/nv-dialog/nv-dialog.d.ts +7 -0
  388. package/dist/types/components/nv-fieldcheckbox/nv-fieldcheckbox.d.ts +2 -0
  389. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +27 -2
  390. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -0
  391. package/dist/types/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.d.ts +6 -0
  392. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +17 -16
  393. package/dist/types/components/nv-fieldslider/nv-fieldslider.utils.d.ts +13 -0
  394. package/dist/types/components/nv-fieldslider/partials/range-thumb.d.ts +2 -0
  395. package/dist/types/components/nv-fieldslider/partials/single-thumb.d.ts +2 -0
  396. package/dist/types/components/nv-tooltip/nv-tooltip.d.ts +7 -0
  397. package/dist/types/components.d.ts +287 -10
  398. package/dist/vscode-data.json +71 -5
  399. package/hydrate/index.js +1461 -879
  400. package/hydrate/index.mjs +1461 -879
  401. package/package.json +1 -1
  402. package/readme.md +6 -0
  403. package/dist/cjs/fade.animation-0d33d198.js.map +0 -1
  404. package/dist/cjs/timeline.animation-dbb9c5ea.js.map +0 -1
  405. package/dist/components/p-001c888b.js.map +0 -1
  406. package/dist/components/p-00ac701f.js.map +0 -1
  407. package/dist/components/p-1daca48a.js.map +0 -1
  408. package/dist/components/p-42301d8f.js.map +0 -1
  409. package/dist/components/p-44f0039b.js.map +0 -1
  410. package/dist/components/p-5bee0141.js.map +0 -1
  411. package/dist/components/p-9e6e26cb.js.map +0 -1
  412. package/dist/components/p-a0d7e0cd.js.map +0 -1
  413. package/dist/esm/fade.animation-2a077983.js.map +0 -1
  414. package/dist/esm/timeline.animation-1b88f052.js.map +0 -1
  415. package/dist/native/p-0493c51a.entry.js +0 -2
  416. package/dist/native/p-1daca48a.js +0 -16
  417. package/dist/native/p-1daca48a.js.map +0 -1
  418. package/dist/native/p-42301d8f.js +0 -2
  419. package/dist/native/p-42301d8f.js.map +0 -1
  420. package/dist/native/p-45cbe6e4.entry.js +0 -2
  421. package/dist/native/p-46428304.entry.js +0 -2
  422. package/dist/native/p-46428304.entry.js.map +0 -1
  423. package/dist/native/p-58f4dc0e.entry.js +0 -2
  424. package/dist/native/p-58f4dc0e.entry.js.map +0 -1
  425. package/dist/native/p-59b07b36.entry.js +0 -2
  426. package/dist/native/p-59b07b36.entry.js.map +0 -1
  427. package/dist/native/p-82568ec7.entry.js +0 -2
  428. package/dist/native/p-82c4bf56.entry.js +0 -2
  429. package/dist/native/p-82c4bf56.entry.js.map +0 -1
  430. package/dist/native/p-86ab23ea.entry.js +0 -2
  431. package/dist/native/p-ad128108.entry.js +0 -2
  432. package/dist/native/p-b5b9190a.entry.js.map +0 -1
  433. package/dist/native/p-b9c7b644.entry.js +0 -2
  434. package/dist/native/p-b9c7b644.entry.js.map +0 -1
  435. package/dist/native/p-be9aeed4.entry.js.map +0 -1
  436. package/dist/native/p-bee972c7.entry.js +0 -2
  437. package/dist/native/p-c1765831.js +0 -2
  438. package/dist/native/p-d21b2da2.entry.js +0 -7
  439. package/dist/native/p-d21b2da2.entry.js.map +0 -1
  440. package/dist/native/p-d4bf2587.entry.js +0 -2
  441. package/dist/native/p-eaf51f2c.entry.js +0 -2
  442. package/dist/native/p-eaf51f2c.entry.js.map +0 -1
  443. /package/dist/native/{p-a0505695.entry.js.map → p-08452012.entry.js.map} +0 -0
  444. /package/dist/native/{p-0493c51a.entry.js.map → p-10ce53ea.entry.js.map} +0 -0
  445. /package/dist/native/{p-54198779.entry.js.map → p-12039da4.entry.js.map} +0 -0
  446. /package/dist/native/{p-86ab23ea.entry.js.map → p-1235c007.entry.js.map} +0 -0
  447. /package/dist/native/{p-003b6377.entry.js.map → p-16ef7dd4.entry.js.map} +0 -0
  448. /package/dist/native/{p-1d98477d.entry.js.map → p-1ad1bff9.entry.js.map} +0 -0
  449. /package/dist/native/{p-914da1e1.entry.js.map → p-1f932a4b.entry.js.map} +0 -0
  450. /package/dist/native/{p-a5c72bd3.entry.js.map → p-34bf336f.entry.js.map} +0 -0
  451. /package/dist/native/{p-e293b3fe.entry.js.map → p-3f139780.entry.js.map} +0 -0
  452. /package/dist/native/{p-dd256ea3.entry.js.map → p-40fa3328.entry.js.map} +0 -0
  453. /package/dist/native/{p-a983e6a0.entry.js.map → p-4b15cff3.entry.js.map} +0 -0
  454. /package/dist/native/{p-08ca678c.entry.js.map → p-51a57a3a.entry.js.map} +0 -0
  455. /package/dist/native/{p-5b06f4b5.entry.js.map → p-64cb38e6.entry.js.map} +0 -0
  456. /package/dist/native/{p-af1e6035.entry.js.map → p-67c34b8c.entry.js.map} +0 -0
  457. /package/dist/native/{p-e9962dac.entry.js.map → p-68edb2e8.entry.js.map} +0 -0
  458. /package/dist/native/{p-6029e51b.entry.js.map → p-85a54ef2.entry.js.map} +0 -0
  459. /package/dist/native/{p-c1765831.js.map → p-8d45dbfe.js.map} +0 -0
  460. /package/dist/native/{p-1a5d3b87.entry.js.map → p-9dc1c3e7.entry.js.map} +0 -0
  461. /package/dist/native/{p-bee972c7.entry.js.map → p-a50f3850.entry.js.map} +0 -0
  462. /package/dist/native/{p-19f484a0.entry.js.map → p-a73fa60a.entry.js.map} +0 -0
  463. /package/dist/native/{p-1e0df2d3.entry.js.map → p-bee62b2b.entry.js.map} +0 -0
  464. /package/dist/native/{p-45cbe6e4.entry.js.map → p-ec92ee7a.entry.js.map} +0 -0
  465. /package/dist/native/{p-6ea1c78b.entry.js.map → p-f00a4552.entry.js.map} +0 -0
  466. /package/dist/native/{p-dd6b1d79.entry.js.map → p-f540db71.entry.js.map} +0 -0
  467. /package/dist/native/{p-2d98d4f0.entry.js.map → p-fcd52432.entry.js.map} +0 -0
@@ -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,12 +135,19 @@ 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
  }
142
142
  };
143
+ /**
144
+ * Clear the filter text
145
+ */
146
+ this.clearFilterText = () => {
147
+ this.filterText = '';
148
+ this.filterTextChanged.emit('');
149
+ this.resetFilter();
150
+ };
143
151
  /**
144
152
  * Handle input blur for options mode.
145
153
  */
@@ -148,10 +156,9 @@ const NvFieldmultiselect = class {
148
156
  if (!this.el.contains(document.activeElement)) {
149
157
  // Close the popover without affecting the divider
150
158
  this.open = false;
151
- // Reset filter if needed
159
+ // Clear filter text when focus is lost
152
160
  if (this.filterable) {
153
- this.filterText = '';
154
- this.resetFilter();
161
+ this.clearFilterText();
155
162
  }
156
163
  }
157
164
  }, 150);
@@ -209,15 +216,14 @@ const NvFieldmultiselect = class {
209
216
  return;
210
217
  }
211
218
  const input = event.target;
212
- this.value = input.value;
213
- this.valueChanged.emit(this.value);
219
+ this.filterText = input.value;
220
+ this.filterTextChanged.emit(this.filterText);
214
221
  // Clear any existing timer
215
222
  if (this.debounceTimer) {
216
223
  window.clearTimeout(this.debounceTimer);
217
224
  }
218
225
  // Set a new timer for filtering
219
226
  this.debounceTimer = window.setTimeout(() => {
220
- this.filterText = input.value.toLowerCase();
221
227
  this.filterItemsOption();
222
228
  }, this.debounceDelay);
223
229
  };
@@ -231,15 +237,14 @@ const NvFieldmultiselect = class {
231
237
  if (this.disabled || this.readonly)
232
238
  return;
233
239
  const input = event.target;
234
- this.value = input.value;
235
- this.valueChanged.emit(this.value);
240
+ this.filterText = input.value;
241
+ this.filterTextChanged.emit(this.filterText);
236
242
  // Clear any existing timer
237
243
  if (this.debounceTimer) {
238
244
  window.clearTimeout(this.debounceTimer);
239
245
  }
240
246
  // Set a new timer for filtering
241
247
  this.debounceTimer = window.setTimeout(() => {
242
- this.filterText = input.value.toLowerCase();
243
248
  this.filterSlotsItems();
244
249
  }, this.debounceDelay);
245
250
  };
@@ -269,10 +274,9 @@ const NvFieldmultiselect = class {
269
274
  if (!this.el.contains(document.activeElement)) {
270
275
  // Close the popover without affecting the divider
271
276
  this.open = false;
272
- // Reset filter if needed
277
+ // Clear filter text when focus is lost
273
278
  if (this.filterable) {
274
- this.filterText = '';
275
- this.resetFilter();
279
+ this.clearFilterText();
276
280
  }
277
281
  }
278
282
  }, 150);
@@ -303,14 +307,14 @@ const NvFieldmultiselect = class {
303
307
  * @returns {any} The JSX for options mode
304
308
  */
305
309
  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()));
310
+ 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" })), this.filterable && this.filterText.length > 0 && (h("nv-iconbutton", { "data-scope": "clear-filter", name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), 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
311
  };
308
312
  /**
309
313
  * Renders the component in slots mode
310
314
  * @returns {any} The JSX for slots mode
311
315
  */
312
316
  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()));
317
+ 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" })), this.filterable && this.filterText.length > 0 && (h("nv-iconbutton", { name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), 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
318
  };
315
319
  }
316
320
  //#endregion EVENTS
@@ -319,7 +323,7 @@ const NvFieldmultiselect = class {
319
323
  handleOptionsChange(newValue) {
320
324
  if (!newValue)
321
325
  return;
322
- this.selectedValues = newValue
326
+ this.value = newValue
323
327
  .filter(option => option.checked)
324
328
  .map(option => option.value);
325
329
  this.reorderOptionsContent();
@@ -328,8 +332,10 @@ const NvFieldmultiselect = class {
328
332
  * Emitted when the value changes.
329
333
  */
330
334
  watchValueHandler() {
331
- // Handle value change and update the corresponding multiselect item if it exists
332
- this.setInitialSelection();
335
+ // Synchronize child components when value changes programmatically
336
+ if (this.el && this.el.isConnected) {
337
+ this.syncChildComponents();
338
+ }
333
339
  }
334
340
  //#endregion WATCHERS
335
341
  /****************************************************************************/
@@ -369,22 +375,23 @@ const NvFieldmultiselect = class {
369
375
  }
370
376
  const { value, checked } = event.detail;
371
377
  if (value !== undefined && value !== null) {
372
- const newSelectedValues = [...this.selectedValues];
373
- const valueIndex = newSelectedValues.indexOf(value);
378
+ const newValue = [...this.value];
379
+ const valueIndex = newValue.indexOf(value);
374
380
  if (checked && valueIndex === -1) {
375
- newSelectedValues.push(value);
381
+ newValue.push(value);
376
382
  }
377
383
  else if (!checked && valueIndex > -1) {
378
- newSelectedValues.splice(valueIndex, 1);
384
+ newValue.splice(valueIndex, 1);
379
385
  }
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
- });
386
+ // Always update the state and emit the event when an item is checked/unchecked
387
+ this.value = newValue;
388
+ this.valueChanged.emit(this.value);
389
+ // Update the checked state of all items to ensure consistency
390
+ this.syncChildComponents();
391
+ // Preserve the filter text in the input
392
+ if (this.filterable && this.inputElement) {
393
+ // Keep the current filter text in the input
394
+ this.inputElement.value = this.filterText;
388
395
  }
389
396
  }
390
397
  else {
@@ -423,12 +430,10 @@ const NvFieldmultiselect = class {
423
430
  }
424
431
  // Specific initialization for slots mode
425
432
  if (!this.options) {
433
+ // Use a microtask to ensure DOM is ready
426
434
  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') || '');
435
+ // Synchronize child components
436
+ this.syncChildComponents();
432
437
  // Force a reorder after initialization
433
438
  requestAnimationFrame(() => {
434
439
  this.reorderSlotContent();
@@ -439,13 +444,8 @@ const NvFieldmultiselect = class {
439
444
  if (this.options) {
440
445
  this.sortedOptions = [...((_a = this.options) !== null && _a !== void 0 ? _a : [])];
441
446
  }
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
447
+ // Reset filter if needed
448
+ if (!this.filterText) {
449
449
  this.resetFilter();
450
450
  }
451
451
  }
@@ -456,6 +456,8 @@ const NvFieldmultiselect = class {
456
456
  if (this.options) {
457
457
  this.handleOptionsChange(this.options);
458
458
  }
459
+ // Final synchronization of child components after everything is loaded
460
+ this.syncChildComponents();
459
461
  }
460
462
  /**
461
463
  * Unsubscribe from click outside event.
@@ -473,38 +475,6 @@ const NvFieldmultiselect = class {
473
475
  async getFilterText() {
474
476
  return this.filterText;
475
477
  }
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
478
  /**
509
479
  * Reset the filter and make all items visible.
510
480
  */
@@ -521,8 +491,8 @@ const NvFieldmultiselect = class {
521
491
  if (emptyMessage)
522
492
  emptyMessage.remove();
523
493
  // 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') || ''));
494
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
495
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
526
496
  if (selectedItems.length > 0) {
527
497
  this.manageDivider(ul, selectedItems, unselectedItems);
528
498
  }
@@ -533,7 +503,7 @@ const NvFieldmultiselect = class {
533
503
  * @returns {string[]} The selected values.
534
504
  */
535
505
  async getSelectedValues() {
536
- return this.selectedValues;
506
+ return this.value;
537
507
  }
538
508
  /**
539
509
  * Reorder the content of the slot.
@@ -555,8 +525,8 @@ const NvFieldmultiselect = class {
555
525
  return;
556
526
  }
557
527
  // 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') || ''));
528
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
529
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
560
530
  // Reinsert CHECKED items FIRST
561
531
  // appendChild() moves the element without recreating it
562
532
  // this is not trigger a re-rendering of the component in the platforms
@@ -582,8 +552,8 @@ const NvFieldmultiselect = class {
582
552
  if (!ul)
583
553
  return;
584
554
  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') || ''));
555
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
556
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
587
557
  // Reorder the elements
588
558
  selectedItems.forEach(item => ul.appendChild(item));
589
559
  unselectedItems.forEach(item => ul.appendChild(item));
@@ -619,8 +589,8 @@ const NvFieldmultiselect = class {
619
589
  }
620
590
  // Reorder with divider
621
591
  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') || ''));
592
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
593
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
624
594
  this.manageDivider(ul, selectedItems, unselectedItems);
625
595
  return;
626
596
  }
@@ -641,8 +611,8 @@ const NvFieldmultiselect = class {
641
611
  });
642
612
  // Manage the divider with the visible items
643
613
  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') || ''));
614
+ const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
615
+ const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
646
616
  this.manageDivider(ul, visibleSelected, visibleUnselected);
647
617
  }
648
618
  else {
@@ -700,8 +670,8 @@ const NvFieldmultiselect = class {
700
670
  });
701
671
  // Manage the divider with the visible items
702
672
  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') || ''));
673
+ const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
674
+ const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
705
675
  this.manageDivider(ul, visibleSelected, visibleUnselected);
706
676
  // Add or remove the empty message based on the case
707
677
  if (!hasVisibleItems) {
@@ -749,8 +719,8 @@ const NvFieldmultiselect = class {
749
719
  });
750
720
  // Get visible items after filtering
751
721
  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') || '')));
722
+ const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
723
+ this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
754
724
  // Add empty message if no items match the filter
755
725
  if (!hasVisibleItems) {
756
726
  const emptyMessage = document.createElement('li');
@@ -947,6 +917,29 @@ const NvFieldmultiselect = class {
947
917
  divider.style.display = 'none';
948
918
  }
949
919
  }
920
+ /**
921
+ * Synchronizes the checked state of all child nv-fielddropdownitemcheck components
922
+ * with the current selectedValues state.
923
+ */
924
+ syncChildComponents() {
925
+ // Early return if element is not ready
926
+ if (!this.el || !this.el.isConnected) {
927
+ return;
928
+ }
929
+ const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
930
+ items.forEach(item => {
931
+ // Get the effective value: use explicit value if present, otherwise use label
932
+ const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
933
+ if (this.value.includes(itemValue)) {
934
+ item.setAttribute('checked', '');
935
+ item.checked = true;
936
+ }
937
+ else {
938
+ item.removeAttribute('checked');
939
+ item.checked = false;
940
+ }
941
+ });
942
+ }
950
943
  /**
951
944
  * Renders description and error description sections
952
945
  * @returns {any} The JSX for descriptions