@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
@@ -12,7 +12,7 @@ const NvFieldmultiselect = class {
12
12
  constructor(hostRef) {
13
13
  index.registerInstance(this, hostRef);
14
14
  this.valueChanged = index.createEvent(this, "valueChanged", 7);
15
- this.multiselectChange = index.createEvent(this, "multiselectChange", 7);
15
+ this.filterTextChanged = index.createEvent(this, "filterTextChanged", 7);
16
16
  /****************************************************************************/
17
17
  //#region PROPERTIES
18
18
  /**
@@ -29,6 +29,11 @@ const NvFieldmultiselect = class {
29
29
  * always type in fresh data.
30
30
  */
31
31
  this.autocomplete = 'off';
32
+ /**
33
+ * Specifies the selected values of the multiselect field.
34
+ * This is the canonical value for the component and is used for form submission.
35
+ */
36
+ this.value = [];
32
37
  /**
33
38
  * Marks the input field as required.
34
39
  */
@@ -82,17 +87,13 @@ const NvFieldmultiselect = class {
82
87
  * Text for the badge showing the number of selected items.
83
88
  */
84
89
  this.badgeLabel = '';
85
- //#endregion PROPERTIES
86
- /****************************************************************************/
87
- //#region STATE
88
90
  /**
89
91
  * The text entered by the user for filtering multiselect items.
90
92
  */
91
93
  this.filterText = '';
92
- /**
93
- * List of selected values in the multiselect.
94
- */
95
- this.selectedValues = [];
94
+ //#endregion PROPERTIES
95
+ /****************************************************************************/
96
+ //#region STATE
96
97
  /**
97
98
  * Sorted options for display.
98
99
  */
@@ -102,8 +103,8 @@ const NvFieldmultiselect = class {
102
103
  * Handle badge close for options mode.
103
104
  */
104
105
  this.handleBadgeCloseOptions = () => {
105
- this.selectedValues = [];
106
- this.multiselectChange.emit(this.selectedValues);
106
+ this.value = [];
107
+ this.valueChanged.emit(this.value);
107
108
  // Uncheck all elements
108
109
  const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
109
110
  items.forEach(item => {
@@ -119,8 +120,8 @@ const NvFieldmultiselect = class {
119
120
  * Handle badge close for slots mode.
120
121
  */
121
122
  this.handleBadgeCloseSlots = () => {
122
- this.selectedValues = [];
123
- this.multiselectChange.emit(this.selectedValues);
123
+ this.value = [];
124
+ this.valueChanged.emit(this.value);
124
125
  // Uncheck all elements
125
126
  const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
126
127
  items.forEach(item => {
@@ -138,12 +139,19 @@ const NvFieldmultiselect = class {
138
139
  if (this.isHandlingEscape) {
139
140
  return;
140
141
  }
141
- this.filterText = '';
142
- // Reset filter if needed
142
+ // Reset filter if needed, but preserve the filter text
143
143
  if (this.filterable) {
144
144
  this.resetFilter();
145
145
  }
146
146
  };
147
+ /**
148
+ * Clear the filter text
149
+ */
150
+ this.clearFilterText = () => {
151
+ this.filterText = '';
152
+ this.filterTextChanged.emit('');
153
+ this.resetFilter();
154
+ };
147
155
  /**
148
156
  * Handle input blur for options mode.
149
157
  */
@@ -152,10 +160,9 @@ const NvFieldmultiselect = class {
152
160
  if (!this.el.contains(document.activeElement)) {
153
161
  // Close the popover without affecting the divider
154
162
  this.open = false;
155
- // Reset filter if needed
163
+ // Clear filter text when focus is lost
156
164
  if (this.filterable) {
157
- this.filterText = '';
158
- this.resetFilter();
165
+ this.clearFilterText();
159
166
  }
160
167
  }
161
168
  }, 150);
@@ -213,15 +220,14 @@ const NvFieldmultiselect = class {
213
220
  return;
214
221
  }
215
222
  const input = event.target;
216
- this.value = input.value;
217
- this.valueChanged.emit(this.value);
223
+ this.filterText = input.value;
224
+ this.filterTextChanged.emit(this.filterText);
218
225
  // Clear any existing timer
219
226
  if (this.debounceTimer) {
220
227
  window.clearTimeout(this.debounceTimer);
221
228
  }
222
229
  // Set a new timer for filtering
223
230
  this.debounceTimer = window.setTimeout(() => {
224
- this.filterText = input.value.toLowerCase();
225
231
  this.filterItemsOption();
226
232
  }, this.debounceDelay);
227
233
  };
@@ -235,15 +241,14 @@ const NvFieldmultiselect = class {
235
241
  if (this.disabled || this.readonly)
236
242
  return;
237
243
  const input = event.target;
238
- this.value = input.value;
239
- this.valueChanged.emit(this.value);
244
+ this.filterText = input.value;
245
+ this.filterTextChanged.emit(this.filterText);
240
246
  // Clear any existing timer
241
247
  if (this.debounceTimer) {
242
248
  window.clearTimeout(this.debounceTimer);
243
249
  }
244
250
  // Set a new timer for filtering
245
251
  this.debounceTimer = window.setTimeout(() => {
246
- this.filterText = input.value.toLowerCase();
247
252
  this.filterSlotsItems();
248
253
  }, this.debounceDelay);
249
254
  };
@@ -273,10 +278,9 @@ const NvFieldmultiselect = class {
273
278
  if (!this.el.contains(document.activeElement)) {
274
279
  // Close the popover without affecting the divider
275
280
  this.open = false;
276
- // Reset filter if needed
281
+ // Clear filter text when focus is lost
277
282
  if (this.filterable) {
278
- this.filterText = '';
279
- this.resetFilter();
283
+ this.clearFilterText();
280
284
  }
281
285
  }
282
286
  }, 150);
@@ -307,14 +311,14 @@ const NvFieldmultiselect = class {
307
311
  * @returns {any} The JSX for options mode
308
312
  */
309
313
  this.renderOptionsMode = () => {
310
- return (index.h(index.Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { htmlFor: this.inputId }, index.h("slot", { name: "label" }, this.label))), index.h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, index.h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, index.h("slot", { name: "before-input" }), index.h("div", { class: "input-container-multiselect" }, index.h("slot", { name: "leading-input" }), this.selectedValues.length > 0 && (index.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 ? (index.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" })) : (index.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" }, index.h("span", null, this.value || this.placeholder))), this.error && (index.h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), index.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 })), index.h("slot", { name: "after-input" })), index.h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, index.h("ul", { role: "content" }, this.options.map(option => (index.h("nv-fielddropdownitemcheck", { label: option.label, description: option.description, value: option.value, checked: this.selectedValues.includes(option.value), disabled: option.disabled }))), index.h("hr", { class: "multiselect-divider", style: { display: 'none' } })))), this.renderDescriptions()));
314
+ return (index.h(index.Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { htmlFor: this.inputId }, index.h("slot", { name: "label" }, this.label))), index.h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, index.h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, index.h("slot", { name: "before-input" }), index.h("div", { class: "input-container-multiselect" }, index.h("slot", { name: "leading-input" }), this.value.length > 0 && (index.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 ? (index.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" })) : (index.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" }, index.h("span", null, this.placeholder))), this.error && (index.h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (index.h("nv-iconbutton", { "data-scope": "clear-filter", name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), index.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 })), index.h("slot", { name: "after-input" })), index.h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, index.h("ul", { role: "content" }, this.options.map(option => (index.h("nv-fielddropdownitemcheck", { label: option.label, description: option.description, value: option.value, checked: this.value.includes(option.value), disabled: option.disabled }))), index.h("hr", { class: "multiselect-divider", style: { display: 'none' } })))), this.renderDescriptions()));
311
315
  };
312
316
  /**
313
317
  * Renders the component in slots mode
314
318
  * @returns {any} The JSX for slots mode
315
319
  */
316
320
  this.renderSlotsMode = () => {
317
- return (index.h(index.Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { htmlFor: this.inputId }, index.h("slot", { name: "label" }, this.label))), index.h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, index.h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, index.h("slot", { name: "before-input" }), index.h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, index.h("slot", { name: "leading-input" }), this.selectedValues.length > 0 && (index.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 ? (index.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" })) : (index.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" }, index.h("span", null, this.value || this.placeholder))), this.error && (index.h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), index.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 })), index.h("slot", { name: "after-input" })), index.h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, index.h("slot", { name: "content" }))), this.renderDescriptions()));
321
+ return (index.h(index.Host, { "aria-label": this.label, "aria-expanded": this.open.toString() }, (this.label || this.el.querySelector('[slot="label"]')) && (index.h("label", { htmlFor: this.inputId }, index.h("slot", { name: "label" }, this.label))), index.h("nv-popover", { ref: el => (this.popoverElement = el), triggerMode: "controlled", placement: "bottom-start", open: this.open }, index.h("div", { class: "input-wrapper-multiselect", slot: "trigger" }, index.h("slot", { name: "before-input" }), index.h("div", { class: "input-container-multiselect", onClick: this.handleInputContainerClickSlots }, index.h("slot", { name: "leading-input" }), this.value.length > 0 && (index.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 ? (index.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" })) : (index.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" }, index.h("span", null, this.placeholder))), this.error && (index.h("nv-icon", { name: "alert-circle", class: "validation", size: "md" })), this.filterable && this.filterText.length > 0 && (index.h("nv-iconbutton", { name: "x", size: "md", emphasis: "lower", tabindex: "-1", onClick: this.clearFilterText, "aria-label": "Clear filter text" })), index.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 })), index.h("slot", { name: "after-input" })), index.h("div", { slot: "content", role: "listbox", "aria-multiselectable": "true", style: this.maxHeight ? { maxHeight: this.maxHeight } : {} }, index.h("slot", { name: "content" }))), this.renderDescriptions()));
318
322
  };
319
323
  }
320
324
  //#endregion EVENTS
@@ -323,7 +327,7 @@ const NvFieldmultiselect = class {
323
327
  handleOptionsChange(newValue) {
324
328
  if (!newValue)
325
329
  return;
326
- this.selectedValues = newValue
330
+ this.value = newValue
327
331
  .filter(option => option.checked)
328
332
  .map(option => option.value);
329
333
  this.reorderOptionsContent();
@@ -332,8 +336,10 @@ const NvFieldmultiselect = class {
332
336
  * Emitted when the value changes.
333
337
  */
334
338
  watchValueHandler() {
335
- // Handle value change and update the corresponding multiselect item if it exists
336
- this.setInitialSelection();
339
+ // Synchronize child components when value changes programmatically
340
+ if (this.el && this.el.isConnected) {
341
+ this.syncChildComponents();
342
+ }
337
343
  }
338
344
  //#endregion WATCHERS
339
345
  /****************************************************************************/
@@ -373,22 +379,23 @@ const NvFieldmultiselect = class {
373
379
  }
374
380
  const { value, checked } = event.detail;
375
381
  if (value !== undefined && value !== null) {
376
- const newSelectedValues = [...this.selectedValues];
377
- const valueIndex = newSelectedValues.indexOf(value);
382
+ const newValue = [...this.value];
383
+ const valueIndex = newValue.indexOf(value);
378
384
  if (checked && valueIndex === -1) {
379
- newSelectedValues.push(value);
385
+ newValue.push(value);
380
386
  }
381
387
  else if (!checked && valueIndex > -1) {
382
- newSelectedValues.splice(valueIndex, 1);
388
+ newValue.splice(valueIndex, 1);
383
389
  }
384
- // Update the state and emit the event only if the selection has changed
385
- if (JSON.stringify(this.selectedValues) !==
386
- JSON.stringify(newSelectedValues)) {
387
- this.selectedValues = newSelectedValues;
388
- // Use requestAnimationFrame to ensure the state is updated before emitting the event
389
- requestAnimationFrame(() => {
390
- this.multiselectChange.emit(this.selectedValues);
391
- });
390
+ // Always update the state and emit the event when an item is checked/unchecked
391
+ this.value = newValue;
392
+ this.valueChanged.emit(this.value);
393
+ // Update the checked state of all items to ensure consistency
394
+ this.syncChildComponents();
395
+ // Preserve the filter text in the input
396
+ if (this.filterable && this.inputElement) {
397
+ // Keep the current filter text in the input
398
+ this.inputElement.value = this.filterText;
392
399
  }
393
400
  }
394
401
  else {
@@ -427,12 +434,10 @@ const NvFieldmultiselect = class {
427
434
  }
428
435
  // Specific initialization for slots mode
429
436
  if (!this.options) {
437
+ // Use a microtask to ensure DOM is ready
430
438
  Promise.resolve().then(() => {
431
- const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
432
- // Initialize selectedValues with checked items
433
- this.selectedValues = items
434
- .filter(item => item.hasAttribute('checked'))
435
- .map(item => item.getAttribute('value') || '');
439
+ // Synchronize child components
440
+ this.syncChildComponents();
436
441
  // Force a reorder after initialization
437
442
  requestAnimationFrame(() => {
438
443
  this.reorderSlotContent();
@@ -443,13 +448,8 @@ const NvFieldmultiselect = class {
443
448
  if (this.options) {
444
449
  this.sortedOptions = [...((_a = this.options) !== null && _a !== void 0 ? _a : [])];
445
450
  }
446
- // Apply filtering if the multiselect is filterable and there is a value
447
- if (this.filterable && this.value) {
448
- this.filterText = String(this.value).toLocaleLowerCase();
449
- this.filterItems();
450
- }
451
- else {
452
- // Reset visibility state of all dropdown items
451
+ // Reset filter if needed
452
+ if (!this.filterText) {
453
453
  this.resetFilter();
454
454
  }
455
455
  }
@@ -460,6 +460,8 @@ const NvFieldmultiselect = class {
460
460
  if (this.options) {
461
461
  this.handleOptionsChange(this.options);
462
462
  }
463
+ // Final synchronization of child components after everything is loaded
464
+ this.syncChildComponents();
463
465
  }
464
466
  /**
465
467
  * Unsubscribe from click outside event.
@@ -477,38 +479,6 @@ const NvFieldmultiselect = class {
477
479
  async getFilterText() {
478
480
  return this.filterText;
479
481
  }
480
- /**
481
- * Set the initial selection based on the current value and update the inputElement value.
482
- */
483
- setInitialSelection() {
484
- var _a;
485
- const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitem'));
486
- const selectedItem = items.find(item => {
487
- var _a;
488
- return item.getAttribute('label') === this.value ||
489
- item.getAttribute('value') === this.value ||
490
- ((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === this.value;
491
- });
492
- // Remove 'selected' from all items first to reset the state
493
- items.forEach(item => {
494
- item.removeAttribute('selected');
495
- item.classList.remove('selected');
496
- });
497
- if (selectedItem) {
498
- // Add the `selected` attribute and `selected` class for visual styling
499
- selectedItem.setAttribute('selected', 'true');
500
- selectedItem.classList.add('selected');
501
- // Update the value and inputElement value to reflect the pre-selected item
502
- this.value =
503
- selectedItem.getAttribute('label') ||
504
- selectedItem.getAttribute('value') ||
505
- ((_a = selectedItem.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
506
- '';
507
- if (this.inputElement) {
508
- this.inputElement.value = this.value;
509
- }
510
- }
511
- }
512
482
  /**
513
483
  * Reset the filter and make all items visible.
514
484
  */
@@ -525,8 +495,8 @@ const NvFieldmultiselect = class {
525
495
  if (emptyMessage)
526
496
  emptyMessage.remove();
527
497
  // Reorder with divider if needed
528
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
529
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
498
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
499
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
530
500
  if (selectedItems.length > 0) {
531
501
  this.manageDivider(ul, selectedItems, unselectedItems);
532
502
  }
@@ -537,7 +507,7 @@ const NvFieldmultiselect = class {
537
507
  * @returns {string[]} The selected values.
538
508
  */
539
509
  async getSelectedValues() {
540
- return this.selectedValues;
510
+ return this.value;
541
511
  }
542
512
  /**
543
513
  * Reorder the content of the slot.
@@ -559,8 +529,8 @@ const NvFieldmultiselect = class {
559
529
  return;
560
530
  }
561
531
  // Separate checked vs unchecked
562
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
563
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
532
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
533
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
564
534
  // Reinsert CHECKED items FIRST
565
535
  // appendChild() moves the element without recreating it
566
536
  // this is not trigger a re-rendering of the component in the platforms
@@ -586,8 +556,8 @@ const NvFieldmultiselect = class {
586
556
  if (!ul)
587
557
  return;
588
558
  const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck')).filter(item => item.style.display !== 'none');
589
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
590
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
559
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
560
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
591
561
  // Reorder the elements
592
562
  selectedItems.forEach(item => ul.appendChild(item));
593
563
  unselectedItems.forEach(item => ul.appendChild(item));
@@ -623,8 +593,8 @@ const NvFieldmultiselect = class {
623
593
  }
624
594
  // Reorder with divider
625
595
  const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));
626
- const selectedItems = items.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
627
- const unselectedItems = items.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
596
+ const selectedItems = items.filter(item => this.value.includes(item.getAttribute('value') || ''));
597
+ const unselectedItems = items.filter(item => !this.value.includes(item.getAttribute('value') || ''));
628
598
  this.manageDivider(ul, selectedItems, unselectedItems);
629
599
  return;
630
600
  }
@@ -645,8 +615,8 @@ const NvFieldmultiselect = class {
645
615
  });
646
616
  // Manage the divider with the visible items
647
617
  const visibleItems = items.filter(item => item.style.display !== 'none');
648
- const visibleSelected = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
649
- const visibleUnselected = visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
618
+ const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
619
+ const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
650
620
  this.manageDivider(ul, visibleSelected, visibleUnselected);
651
621
  }
652
622
  else {
@@ -704,8 +674,8 @@ const NvFieldmultiselect = class {
704
674
  });
705
675
  // Manage the divider with the visible items
706
676
  const visibleItems = items.filter(item => item.style.display !== 'none');
707
- const visibleSelected = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
708
- const visibleUnselected = visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || ''));
677
+ const visibleSelected = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
678
+ const visibleUnselected = visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || ''));
709
679
  this.manageDivider(ul, visibleSelected, visibleUnselected);
710
680
  // Add or remove the empty message based on the case
711
681
  if (!hasVisibleItems) {
@@ -753,8 +723,8 @@ const NvFieldmultiselect = class {
753
723
  });
754
724
  // Get visible items after filtering
755
725
  const visibleItems = items.filter(item => item.style.display !== 'none');
756
- const visibleSelectedItems = visibleItems.filter(item => this.selectedValues.includes(item.getAttribute('value') || ''));
757
- this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.selectedValues.includes(item.getAttribute('value') || '')));
726
+ const visibleSelectedItems = visibleItems.filter(item => this.value.includes(item.getAttribute('value') || ''));
727
+ this.manageDivider(ul, visibleSelectedItems, visibleItems.filter(item => !this.value.includes(item.getAttribute('value') || '')));
758
728
  // Add empty message if no items match the filter
759
729
  if (!hasVisibleItems) {
760
730
  const emptyMessage = document.createElement('li');
@@ -951,6 +921,29 @@ const NvFieldmultiselect = class {
951
921
  divider.style.display = 'none';
952
922
  }
953
923
  }
924
+ /**
925
+ * Synchronizes the checked state of all child nv-fielddropdownitemcheck components
926
+ * with the current selectedValues state.
927
+ */
928
+ syncChildComponents() {
929
+ // Early return if element is not ready
930
+ if (!this.el || !this.el.isConnected) {
931
+ return;
932
+ }
933
+ const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
934
+ items.forEach(item => {
935
+ // Get the effective value: use explicit value if present, otherwise use label
936
+ const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
937
+ if (this.value.includes(itemValue)) {
938
+ item.setAttribute('checked', '');
939
+ item.checked = true;
940
+ }
941
+ else {
942
+ item.removeAttribute('checked');
943
+ item.checked = false;
944
+ }
945
+ });
946
+ }
954
947
  /**
955
948
  * Renders description and error description sections
956
949
  * @returns {any} The JSX for descriptions