@nova-design-system/nova-webcomponents 3.6.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 (291) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/native.cjs.js +1 -1
  3. package/dist/cjs/nv-accordion-item.cjs.entry.js +2 -2
  4. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
  5. package/dist/cjs/nv-accordion.cjs.entry.js +16 -43
  6. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
  7. package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
  8. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  9. package/dist/cjs/nv-calendar.cjs.entry.js +96 -75
  10. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
  12. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nv-fielddate.cjs.entry.js +26 -5
  14. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nv-fielddaterange.cjs.entry.js +32 -4
  16. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
  18. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +14 -6
  20. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  22. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  23. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  24. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  25. package/dist/cjs/nv-fieldslider.cjs.entry.js +3 -3
  26. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  27. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  28. package/dist/cjs/nv-fieldtime.cjs.entry.js +10 -10
  29. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  31. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-menu.cjs.entry.js +1 -1
  33. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  34. package/dist/cjs/nv-popover.cjs.entry.js +1 -1
  35. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  36. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  37. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  38. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  39. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  40. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +17 -10
  41. package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -1
  42. package/dist/collection/components/nv-accordion/nv-accordion.js +23 -55
  43. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
  44. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +5 -5
  45. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
  46. package/dist/collection/components/nv-calendar/nv-calendar.css +5 -0
  47. package/dist/collection/components/nv-calendar/nv-calendar.js +113 -74
  48. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  49. package/dist/collection/components/nv-calendar/partials/calendar-grid.js +3 -0
  50. package/dist/collection/components/nv-calendar/partials/calendar-grid.js.map +1 -1
  51. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +6 -4
  52. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
  53. package/dist/collection/components/nv-fielddate/nv-fielddate.js +51 -5
  54. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  55. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +61 -4
  56. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  57. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +3 -3
  58. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  59. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +7 -1
  60. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js.map +1 -1
  61. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +8 -8
  62. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  63. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +14 -6
  64. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  65. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
  66. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  67. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  68. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  69. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  70. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  71. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  72. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  73. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  74. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +11 -13
  75. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  76. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  77. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  78. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  79. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  80. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  81. package/dist/collection/components/nv-row/nv-row.js +1 -1
  82. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  83. package/dist/collection/components/nv-table/nv-table.js +2 -2
  84. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  85. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  86. package/dist/components/nv-accordion-item.js +1 -1
  87. package/dist/components/nv-accordion.js +22 -52
  88. package/dist/components/nv-accordion.js.map +1 -1
  89. package/dist/components/nv-alert.js +1 -1
  90. package/dist/components/nv-avatar.js +1 -1
  91. package/dist/components/nv-badge.js +1 -1
  92. package/dist/components/nv-breadcrumb.js +2 -2
  93. package/dist/components/nv-button.js +1 -1
  94. package/dist/components/nv-calendar.js +1 -1
  95. package/dist/components/nv-datagrid.js +2 -2
  96. package/dist/components/nv-dialog.js +4 -4
  97. package/dist/components/nv-dialogfooter.js +1 -1
  98. package/dist/components/nv-fieldcheckbox.js +1 -1
  99. package/dist/components/nv-fielddate.js +34 -12
  100. package/dist/components/nv-fielddate.js.map +1 -1
  101. package/dist/components/nv-fielddaterange.js +40 -11
  102. package/dist/components/nv-fielddaterange.js.map +1 -1
  103. package/dist/components/nv-fielddropdown.js +8 -8
  104. package/dist/components/nv-fielddropdownitem.js +1 -1
  105. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  106. package/dist/components/nv-fieldmultiselect.js +21 -13
  107. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  108. package/dist/components/nv-fieldnumber.js +1 -1
  109. package/dist/components/nv-fieldpassword.js +6 -6
  110. package/dist/components/nv-fieldradio.js +3 -3
  111. package/dist/components/nv-fieldselect.js +8 -8
  112. package/dist/components/nv-fieldslider.js +7 -7
  113. package/dist/components/nv-fieldtext.js +1 -1
  114. package/dist/components/nv-fieldtextarea.js +3 -3
  115. package/dist/components/nv-fieldtime.js +14 -14
  116. package/dist/components/nv-fieldtime.js.map +1 -1
  117. package/dist/components/nv-icon.js +1 -1
  118. package/dist/components/nv-iconbutton.js +1 -1
  119. package/dist/components/nv-loader.js +1 -1
  120. package/dist/components/nv-menu.js +4 -4
  121. package/dist/components/nv-menuitem.js +1 -1
  122. package/dist/components/nv-popover.js +1 -1
  123. package/dist/components/nv-row.js +1 -1
  124. package/dist/components/nv-stack.js +1 -1
  125. package/dist/components/nv-table.js +2 -2
  126. package/dist/components/nv-toggle.js +2 -2
  127. package/dist/components/nv-tooltip.js +1 -1
  128. package/dist/components/{p-9ed7a440.js → p-0143cee0.js} +5 -5
  129. package/dist/components/p-0143cee0.js.map +1 -0
  130. package/dist/components/{p-d2b4441a.js → p-07550eac.js} +3 -3
  131. package/dist/components/{p-d2b4441a.js.map → p-07550eac.js.map} +1 -1
  132. package/dist/components/{p-f266b533.js → p-12258eef.js} +5 -5
  133. package/dist/components/{p-f266b533.js.map → p-12258eef.js.map} +1 -1
  134. package/dist/components/{p-316ae8e3.js → p-144e80f0.js} +4 -4
  135. package/dist/components/{p-316ae8e3.js.map → p-144e80f0.js.map} +1 -1
  136. package/dist/components/{p-230ad6c5.js → p-44df0d22.js} +7 -7
  137. package/dist/components/p-44df0d22.js.map +1 -0
  138. package/dist/components/{p-8a5b0f74.js → p-5d5668f0.js} +2 -2
  139. package/dist/components/{p-8a5b0f74.js.map → p-5d5668f0.js.map} +1 -1
  140. package/dist/components/{p-618ae85a.js → p-8067d283.js} +2 -2
  141. package/dist/components/{p-618ae85a.js.map → p-8067d283.js.map} +1 -1
  142. package/dist/components/{p-5e89eb9d.js → p-8b82a6f4.js} +7 -7
  143. package/dist/components/{p-5e89eb9d.js.map → p-8b82a6f4.js.map} +1 -1
  144. package/dist/components/{p-9cff2fd1.js → p-91a558eb.js} +2 -2
  145. package/dist/components/{p-9cff2fd1.js.map → p-91a558eb.js.map} +1 -1
  146. package/dist/components/{p-436a0f99.js → p-ba87d9d5.js} +3 -3
  147. package/dist/components/{p-436a0f99.js.map → p-ba87d9d5.js.map} +1 -1
  148. package/dist/components/{p-840858ed.js → p-d32b75ac.js} +99 -77
  149. package/dist/components/p-d32b75ac.js.map +1 -0
  150. package/dist/components/{p-ac76a11c.js → p-d576d64f.js} +4 -4
  151. package/dist/components/{p-ac76a11c.js.map → p-d576d64f.js.map} +1 -1
  152. package/dist/components/{p-f1bbb9e8.js → p-dd7ff995.js} +2 -2
  153. package/dist/components/{p-f1bbb9e8.js.map → p-dd7ff995.js.map} +1 -1
  154. package/dist/components/{p-4864a690.js → p-dfd2d4f0.js} +2 -2
  155. package/dist/components/{p-4864a690.js.map → p-dfd2d4f0.js.map} +1 -1
  156. package/dist/components/{p-190c8f60.js → p-e104c58a.js} +4 -4
  157. package/dist/components/p-e104c58a.js.map +1 -0
  158. package/dist/components/{p-4069966e.js → p-e8e6f88a.js} +2 -2
  159. package/dist/components/{p-4069966e.js.map → p-e8e6f88a.js.map} +1 -1
  160. package/dist/components/{p-79b38dfb.js → p-f97d1cb1.js} +3 -3
  161. package/dist/components/{p-79b38dfb.js.map → p-f97d1cb1.js.map} +1 -1
  162. package/dist/esm/loader.js +1 -1
  163. package/dist/esm/native.js +1 -1
  164. package/dist/esm/nv-accordion-item.entry.js +2 -2
  165. package/dist/esm/nv-accordion-item.entry.js.map +1 -1
  166. package/dist/esm/nv-accordion.entry.js +16 -43
  167. package/dist/esm/nv-accordion.entry.js.map +1 -1
  168. package/dist/esm/nv-badge_2.entry.js +1 -1
  169. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  170. package/dist/esm/nv-calendar.entry.js +96 -75
  171. package/dist/esm/nv-calendar.entry.js.map +1 -1
  172. package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
  173. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  174. package/dist/esm/nv-fielddate.entry.js +26 -5
  175. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  176. package/dist/esm/nv-fielddaterange.entry.js +32 -4
  177. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  178. package/dist/esm/nv-fielddropdown.entry.js +3 -3
  179. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  180. package/dist/esm/nv-fieldmultiselect.entry.js +14 -6
  181. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  182. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  183. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  184. package/dist/esm/nv-fieldradio.entry.js +3 -3
  185. package/dist/esm/nv-fieldselect.entry.js +5 -5
  186. package/dist/esm/nv-fieldslider.entry.js +3 -3
  187. package/dist/esm/nv-fieldtext.entry.js +3 -3
  188. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  189. package/dist/esm/nv-fieldtime.entry.js +10 -10
  190. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  191. package/dist/esm/nv-icon.entry.js +1 -1
  192. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  193. package/dist/esm/nv-menu.entry.js +1 -1
  194. package/dist/esm/nv-menuitem.entry.js +1 -1
  195. package/dist/esm/nv-popover.entry.js +1 -1
  196. package/dist/esm/nv-row.entry.js +1 -1
  197. package/dist/esm/nv-stack.entry.js +1 -1
  198. package/dist/esm/nv-table.entry.js +2 -2
  199. package/dist/esm/nv-toggle.entry.js +2 -2
  200. package/dist/esm/nv-tooltip.entry.js +1 -1
  201. package/dist/native/native.css +1 -1
  202. package/dist/native/native.esm.js +1 -1
  203. package/dist/native/native.esm.js.map +1 -1
  204. package/dist/native/p-051db87c.entry.js +2 -0
  205. package/dist/native/p-051db87c.entry.js.map +1 -0
  206. package/dist/native/{p-c9cde996.entry.js → p-0e005d95.entry.js} +2 -2
  207. package/dist/native/{p-33e5037d.entry.js → p-10ce53ea.entry.js} +2 -2
  208. package/dist/native/{p-cf468c67.entry.js → p-12039da4.entry.js} +2 -2
  209. package/dist/native/{p-b829383a.entry.js → p-16ef7dd4.entry.js} +2 -2
  210. package/dist/native/{p-0ada0382.entry.js → p-2a6783ca.entry.js} +2 -2
  211. package/dist/native/p-2a6783ca.entry.js.map +1 -0
  212. package/dist/native/{p-ddb0b9f6.entry.js → p-34bf336f.entry.js} +2 -2
  213. package/dist/native/{p-625be06b.entry.js → p-3f139780.entry.js} +2 -2
  214. package/dist/native/{p-c2826f22.entry.js → p-40fa3328.entry.js} +2 -2
  215. package/dist/native/{p-8030c16b.entry.js → p-4b15cff3.entry.js} +2 -2
  216. package/dist/native/{p-0ac03708.entry.js → p-516da423.entry.js} +2 -2
  217. package/dist/native/p-516da423.entry.js.map +1 -0
  218. package/dist/native/{p-f9aa4900.entry.js → p-64cb38e6.entry.js} +2 -2
  219. package/dist/native/{p-bab6d0a5.entry.js → p-67c34b8c.entry.js} +2 -2
  220. package/dist/native/{p-31e72603.entry.js → p-68edb2e8.entry.js} +2 -2
  221. package/dist/native/p-73c08f3b.entry.js +2 -0
  222. package/dist/native/p-73c08f3b.entry.js.map +1 -0
  223. package/dist/native/p-7703c736.entry.js +2 -0
  224. package/dist/native/p-7703c736.entry.js.map +1 -0
  225. package/dist/native/{p-1cce9b24.entry.js → p-916acbd3.entry.js} +2 -2
  226. package/dist/native/p-a50f3850.entry.js +2 -0
  227. package/dist/native/{p-2d23fcea.entry.js → p-a73fa60a.entry.js} +2 -2
  228. package/dist/native/{p-5eca22c7.entry.js → p-b3f9db23.entry.js} +2 -2
  229. package/dist/native/{p-5eca22c7.entry.js.map → p-b3f9db23.entry.js.map} +1 -1
  230. package/dist/native/{p-be67545e.entry.js → p-bba5cc9b.entry.js} +2 -2
  231. package/dist/native/{p-e802fbb8.entry.js → p-bee62b2b.entry.js} +2 -2
  232. package/dist/native/p-dc34da69.entry.js +2 -0
  233. package/dist/native/p-dc34da69.entry.js.map +1 -0
  234. package/dist/native/{p-2576c1a0.entry.js → p-f00a4552.entry.js} +2 -2
  235. package/dist/native/{p-609b3822.entry.js → p-f540db71.entry.js} +2 -2
  236. package/dist/native/{p-fca3e27d.entry.js → p-f687e05c.entry.js} +2 -2
  237. package/dist/native/p-f687e05c.entry.js.map +1 -0
  238. package/dist/native/{p-18831490.entry.js → p-fa81b77f.entry.js} +2 -2
  239. package/dist/native/p-fa81b77f.entry.js.map +1 -0
  240. package/dist/native/{p-e19a8885.entry.js → p-fcd52432.entry.js} +2 -2
  241. package/dist/types/components/nv-accordion/nv-accordion.d.ts +16 -49
  242. package/dist/types/components/nv-accordion-item/nv-accordion-item.d.ts +2 -2
  243. package/dist/types/components/nv-calendar/nv-calendar.d.ts +7 -1
  244. package/dist/types/components/nv-calendar/partials/calendar-grid.d.ts +2 -0
  245. package/dist/types/components/nv-fieldcheckbox/nv-fieldcheckbox.d.ts +2 -0
  246. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +5 -0
  247. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -0
  248. package/dist/types/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.d.ts +6 -0
  249. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +4 -0
  250. package/dist/types/components.d.ts +56 -10
  251. package/dist/vscode-data.json +1 -5
  252. package/hydrate/index.js +261 -200
  253. package/hydrate/index.mjs +261 -200
  254. package/package.json +1 -1
  255. package/readme.md +6 -0
  256. package/dist/components/p-190c8f60.js.map +0 -1
  257. package/dist/components/p-230ad6c5.js.map +0 -1
  258. package/dist/components/p-840858ed.js.map +0 -1
  259. package/dist/components/p-9ed7a440.js.map +0 -1
  260. package/dist/native/p-0ac03708.entry.js.map +0 -1
  261. package/dist/native/p-0ada0382.entry.js.map +0 -1
  262. package/dist/native/p-12963ae4.entry.js +0 -2
  263. package/dist/native/p-12963ae4.entry.js.map +0 -1
  264. package/dist/native/p-18831490.entry.js.map +0 -1
  265. package/dist/native/p-4cf00884.entry.js +0 -2
  266. package/dist/native/p-4cf00884.entry.js.map +0 -1
  267. package/dist/native/p-5172f17a.entry.js +0 -2
  268. package/dist/native/p-a6dc9b59.entry.js +0 -2
  269. package/dist/native/p-a6dc9b59.entry.js.map +0 -1
  270. package/dist/native/p-fca3e27d.entry.js.map +0 -1
  271. package/dist/native/p-fe4e516b.entry.js +0 -2
  272. package/dist/native/p-fe4e516b.entry.js.map +0 -1
  273. /package/dist/native/{p-c9cde996.entry.js.map → p-0e005d95.entry.js.map} +0 -0
  274. /package/dist/native/{p-33e5037d.entry.js.map → p-10ce53ea.entry.js.map} +0 -0
  275. /package/dist/native/{p-cf468c67.entry.js.map → p-12039da4.entry.js.map} +0 -0
  276. /package/dist/native/{p-b829383a.entry.js.map → p-16ef7dd4.entry.js.map} +0 -0
  277. /package/dist/native/{p-ddb0b9f6.entry.js.map → p-34bf336f.entry.js.map} +0 -0
  278. /package/dist/native/{p-625be06b.entry.js.map → p-3f139780.entry.js.map} +0 -0
  279. /package/dist/native/{p-c2826f22.entry.js.map → p-40fa3328.entry.js.map} +0 -0
  280. /package/dist/native/{p-8030c16b.entry.js.map → p-4b15cff3.entry.js.map} +0 -0
  281. /package/dist/native/{p-f9aa4900.entry.js.map → p-64cb38e6.entry.js.map} +0 -0
  282. /package/dist/native/{p-bab6d0a5.entry.js.map → p-67c34b8c.entry.js.map} +0 -0
  283. /package/dist/native/{p-31e72603.entry.js.map → p-68edb2e8.entry.js.map} +0 -0
  284. /package/dist/native/{p-1cce9b24.entry.js.map → p-916acbd3.entry.js.map} +0 -0
  285. /package/dist/native/{p-5172f17a.entry.js.map → p-a50f3850.entry.js.map} +0 -0
  286. /package/dist/native/{p-2d23fcea.entry.js.map → p-a73fa60a.entry.js.map} +0 -0
  287. /package/dist/native/{p-be67545e.entry.js.map → p-bba5cc9b.entry.js.map} +0 -0
  288. /package/dist/native/{p-e802fbb8.entry.js.map → p-bee62b2b.entry.js.map} +0 -0
  289. /package/dist/native/{p-2576c1a0.entry.js.map → p-f00a4552.entry.js.map} +0 -0
  290. /package/dist/native/{p-609b3822.entry.js.map → p-f540db71.entry.js.map} +0 -0
  291. /package/dist/native/{p-e19a8885.entry.js.map → p-fcd52432.entry.js.map} +0 -0
@@ -43,7 +43,7 @@ export class NvMenuitem {
43
43
  /****************************************************************************/
44
44
  //#region RENDER
45
45
  render() {
46
- return (h(Host, { key: 'c008da503776b85bec237b25e321e4bba02d153f', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && h("nv-icon", { key: '66341d40e68409b4c0ab6595a67eed1e4354d6ba', name: this.icon }), h("slot", { key: 'e3960af26ffbc703a5702981e948013179b1a83b' }), this.label && h("span", { key: '9633388dcbad3080b54b83845ced54f9b9d05061', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && h("kbd", { key: 'da358858336a86a7a49bbd4a52b5f628aadc1c29' }, this.shortcut), this.hasSubmenu && h("nv-icon", { key: '36a85c271a5dbe2c41eefac33209e5d9a909ae04', name: "chevron-right" })));
46
+ return (h(Host, { key: '327165c89f4e5decf8dc4b7b28e18562e528056d', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && h("nv-icon", { key: '4247d922bca3797dc3f2917218749a8d3c038df1', name: this.icon }), h("slot", { key: '1f81464ccf47a5bd918873ef70d3d3385e870638' }), this.label && h("span", { key: '113358a0cacfa53710ec0049a8e1c5e981de5b15', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && h("kbd", { key: 'ee7c773b89bf1f55876cf297600247883cd54937' }, this.shortcut), this.hasSubmenu && h("nv-icon", { key: '70cbe2df51d9fbffe3b474b54e87aa06801acef7', name: "chevron-right" })));
47
47
  }
48
48
  static get is() { return "nv-menuitem"; }
49
49
  static get originalStyleUrls() {
@@ -306,7 +306,7 @@ export class NvPopover {
306
306
  /****************************************************************************/
307
307
  //#region RENDER
308
308
  render() {
309
- return (h(Host, { key: '843ac572358b402d6338945d671446fec1c51a6d' }, h("slot", { key: '090f01aea3932cb95357985766a20112c63c4992', name: "trigger" }), h("div", { key: '737822dd1539381bb485a389670f09a071441365', "data-scope": "popover", hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (h("div", { key: '9d268df3f0e1df7b2a2264154143c3db14619661', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), h("slot", { key: '432aae053b25d2e7d6594203ad0ff3ecee26c059', name: "content" }))));
309
+ return (h(Host, { key: '27f6f8acc148b3dc2b16a391c54a4a1de0637a57' }, h("slot", { key: 'd25614b3bfc5565d3729da11f6f83b4d92e83e19', name: "trigger" }), h("div", { key: '3b777862573405b2bb2a377750d9bb859a4bb20b', "data-scope": "popover", hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (h("div", { key: 'dda88155630bca69ec06a766e2999ed369d5d6c6', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), h("slot", { key: '51eaf873fe239d3c4106e997f6cdd37b1bb29074', name: "content" }))));
310
310
  }
311
311
  static get is() { return "nv-popover"; }
312
312
  static get originalStyleUrls() {
@@ -6,7 +6,7 @@ export class NvRow {
6
6
  /****************************************************************************/
7
7
  //#region RENDER
8
8
  render() {
9
- return (h(Host, { key: '20e40e37c82b00712ed3d60d46d460f5f877e10a' }, h("slot", { key: '80ba27becb4d56ff0785054597d88c728fb3eca5' })));
9
+ return (h(Host, { key: 'daad5f10b72b95468ac50a3deab7faf87769be42' }, h("slot", { key: '16509b69358739997fe97a45ea9476f30682de2b' })));
10
10
  }
11
11
  static get is() { return "nv-row"; }
12
12
  static get originalStyleUrls() {
@@ -18,7 +18,7 @@ export class NvStack {
18
18
  /****************************************************************************/
19
19
  //#region RENDER
20
20
  render() {
21
- return (h(Host, { key: '24cca0f7101de5f37d30884983da28a839df9bee', class: clsx(this.fill && 'nv-stack-fill', this.flex && 'nv-stack-flex', this.full && 'w-full', this.gutter && !this.vertical && `gap-x-${this.gutter}`, this.gutter && this.vertical && `gap-y-${this.gutter}`, this.vertical && 'nv-stack-vertical') }, h("slot", { key: '3521e5dd684d2c6185fd434711ae85a6ea0b68ab' })));
21
+ return (h(Host, { key: '0a93c321e46c7e17ac0efe09556ee4447fec5f74', class: clsx(this.fill && 'nv-stack-fill', this.flex && 'nv-stack-flex', this.full && 'w-full', this.gutter && !this.vertical && `gap-x-${this.gutter}`, this.gutter && this.vertical && `gap-y-${this.gutter}`, this.vertical && 'nv-stack-vertical') }, h("slot", { key: 'faf55f3f579311c333e1ea66f1a19ace98594377' })));
22
22
  }
23
23
  static get is() { return "nv-stack"; }
24
24
  static get originalStyleUrls() {
@@ -314,14 +314,14 @@ export class NvTable {
314
314
  const rows = !this.table || this.table === undefined || this.parsedData.length === 0
315
315
  ? []
316
316
  : this.table.data;
317
- return (h(Host, { key: '0e7b7e03592f9f68b9158e8374986986e0f155d4' }, h("div", { key: 'eeebf671dde65fcd725fbbe78099816d1c07c65f', class: "hidden" }, h("slot", { key: '2ac114cec120874bb0f7bf6ddde9ec9c88d978cf' })), h("slot", { key: 'b8dea8ff4c987b679ab78e73c4b7698a608c1ee3', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (h("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (h("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", { class: "table-header" }, h("tr", null, headerGroups &&
317
+ return (h(Host, { key: 'a389cee4e6b29cdb852b8b6c0f8fd39926474525' }, h("div", { key: 'ea7629bc0cba0ec1cbe59f6f03ac2527095d9abb', class: "hidden" }, h("slot", { key: 'b070a8e7f54fd3846744bb659447b97547d1c7cf' })), h("slot", { key: 'b0eb0a2d7c98073e88282b1e2e513b9e6a335345', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (h("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (h("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", { class: "table-header" }, h("tr", null, headerGroups &&
318
318
  headerGroups.map(col => {
319
319
  return (h("th", { key: col.name }, this.renderTemplate(this.headerTemplateCache.get(col.name), {}) || col.header));
320
320
  })))), h("tbody", { class: "table-body" }, !rows || rows.length === 0 ? (h("tr", null, h("td", { colSpan: headerGroups.length || 12, class: "no-data" }, this.noDataMessage))) : (rows.map(row => (h("tr", { key: JSON.stringify(row) }, headerGroups.map(col => {
321
321
  var _a;
322
322
  return (h("td", null, this.renderTemplate(this.templateCache.get(col.name), row) ||
323
323
  ((_a = row[col.name]) !== null && _a !== void 0 ? _a : this.fallbackValue)));
324
- })))))))), h("slot", { key: '4dc0404a05946bc942f65af599fea186166cde9c', name: "after" })));
324
+ })))))))), h("slot", { key: '599e4c1663c3a80375e3c511358be381b06eec2f', name: "after" })));
325
325
  }
326
326
  static get is() { return "nv-table"; }
327
327
  static get originalStyleUrls() {
@@ -60,8 +60,8 @@ export class NvToggle {
60
60
  /****************************************************************************/
61
61
  //#region RENDER
62
62
  render() {
63
- return (h(Host, { key: '9b3a2c50180d17241f514ebfecb2d959d6aaf263', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '70420566c51bb19c3ef9b8718ba0069bd739fd26', class: "input-container" }, h("input", { key: '5c1cfd0858a14cf1854de5a09b2daa55c4e781ba', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: 'f4678a7ed5a7e58397aadfe5155b95a395f39fba', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '4d25373b9c782d3016da002d1fa22dd551a1597a', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: 'f297abef15befddc6b180edffe3ab7b0bb39d223', name: "label" }, this.label))), (this.description ||
64
- this.el.querySelector('[slot="description"]')) && (h("div", { key: '97f2b1045c5152fb66da582c7fcf2975cbe10e68', class: "description" }, h("slot", { key: 'fae238400ac3a106079a7e361d179598a99363a4', name: "description" }, this.description))))));
63
+ return (h(Host, { key: '7aac2ef8519d5c033a0e74461755e2286420032a', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: 'fb0f560aff50b9d3c2b75ba2b59dd68012f5af10', class: "input-container" }, h("input", { key: '61ff98c20dec0822979f04ad3b3316fc3caac31f', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: '543ad351428f6ae60e94bd31e3a7a6922c02e5d4', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '42f764c9c4454cf5b8b1fa88c2c43654170a5222', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: '125247eeea72b68de829f36ad817a4381541ad07', name: "label" }, this.label))), (this.description ||
64
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: 'a2fcd0d39a8f555e7d6b64879e84ff7f011e4901', class: "description" }, h("slot", { key: '4e7af6b6a0a25fcb4d9529dcb1a32cb7c928c7de', name: "description" }, this.description))))));
65
65
  }
66
66
  static get is() { return "nv-toggle"; }
67
67
  static get formAssociated() { return true; }
@@ -31,7 +31,7 @@ export class NvTooltip {
31
31
  /****************************************************************************/
32
32
  //#region RENDER
33
33
  render() {
34
- return (h(Host, { key: 'eb3e25818bb1e57340ac169d1c40a0e4e9c56668' }, h("slot", { key: '7937859bff530ff10a0de9076a77c92afa9ec9e7' }), h("nv-popover", { key: 'e825c93c7d90f5598416f1f081c95517c7a27883', triggerMode: "hover", hasArrow: true, placement: this.placement, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, h("p", { key: '5a5987e3a04f02be104e5f8fcca2f40b75938a97', slot: "content" }, this.message), h("slot", { key: 'd7efc512e29969e7c8c1a693f2fb15f9319e1fa8', name: "content" }))));
34
+ return (h(Host, { key: 'ced39f0ebd3ee8eba520e6d6241728e95031dafc' }, h("slot", { key: '2b65cb626604a29e1924e7eb2bbb4e937c1a9e9c' }), h("nv-popover", { key: 'd4c91e52da651c1545b6d7af98c740e08eeaffbf', triggerMode: "hover", hasArrow: true, placement: this.placement, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, h("p", { key: '45805ecf6ffee80f4f81acce2d921ad66585bf2b', slot: "content" }, this.message), h("slot", { key: 'e6a7e80c35c3a87627a50b271c86783fab791338', name: "content" }))));
35
35
  }
36
36
  static get is() { return "nv-tooltip"; }
37
37
  static get originalStyleUrls() {
@@ -1,4 +1,4 @@
1
- import { N as NvAccordionItem$1, d as defineCustomElement$1 } from './p-230ad6c5.js';
1
+ import { N as NvAccordionItem$1, d as defineCustomElement$1 } from './p-44df0d22.js';
2
2
 
3
3
  const NvAccordionItem = NvAccordionItem$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,8 +1,8 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-aff3ed68.js';
2
- import { d as defineCustomElement$5 } from './p-230ad6c5.js';
3
- import { d as defineCustomElement$4 } from './p-f1bbb9e8.js';
4
- import { d as defineCustomElement$3 } from './p-316ae8e3.js';
5
- import { d as defineCustomElement$2 } from './p-4864a690.js';
2
+ import { d as defineCustomElement$5 } from './p-44df0d22.js';
3
+ import { d as defineCustomElement$4 } from './p-dd7ff995.js';
4
+ import { d as defineCustomElement$3 } from './p-144e80f0.js';
5
+ import { d as defineCustomElement$2 } from './p-dfd2d4f0.js';
6
6
 
7
7
  const nvAccordionCss = "nv-accordion{display:block;border:var(--spacing-px) solid var(--color-content-low-border);border-radius:var(--radius-rounded-lg)}nv-accordion .nv-accordion__footer{padding:var(--spacing-3);background:var(--color-level-05-background);border-radius:0 0 var(--radius-rounded-lg) var(--radius-rounded-lg);margin-top:calc(var(--spacing-px) * -1);border-top:var(--spacing-px) solid var(--color-content-low-border)}nv-accordion .nv-accordion__footer:empty{display:none}";
8
8
  const NvAccordionStyle0 = nvAccordionCss;
@@ -11,7 +11,13 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
11
11
  constructor() {
12
12
  super();
13
13
  this.__registerHost();
14
- this.nvChange = createEvent(this, "nvChange", 7);
14
+ this.openChanged = createEvent(this, "openChanged", 7);
15
+ /****************************************************************************/
16
+ //#region PROPERTIES
17
+ /**
18
+ * Data to display as a list of items (title, subtitle, content).
19
+ */
20
+ this.data = [];
15
21
  /**
16
22
  * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)
17
23
  */
@@ -23,12 +29,6 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
23
29
  * Internal index of open items (not exposed)
24
30
  */
25
31
  this.internalOpenIndexes = [];
26
- /**
27
- * Parsed data from data prop
28
- */
29
- this.parsedData = [];
30
- // Synchronization openIndexes <-> internalOpenIndexes
31
- this.itemToggleHandlers = [];
32
32
  }
33
33
  //#endregion EVENTS
34
34
  /****************************************************************************/
@@ -69,7 +69,7 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
69
69
  }
70
70
  }
71
71
  this.internalOpenIndexes = openIndexes;
72
- this.nvChange.emit({ openIndexes });
72
+ this.openChanged.emit({ openIndexes });
73
73
  if (this.openIndexes !== undefined) {
74
74
  this.openIndexes =
75
75
  this.mode === 'accordion'
@@ -91,9 +91,6 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
91
91
  * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item
92
92
  */
93
93
  onItemToggle(event) {
94
- // Ignore if using data (handled by itemToggleHandlers)
95
- if (this.parsedData && this.parsedData.length > 0)
96
- return;
97
94
  // Find the index of the item that emitted the event
98
95
  const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
99
96
  const targetItem = event.target;
@@ -121,8 +118,8 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
121
118
  // If the item is closing, remove it from internalOpenIndexes
122
119
  this.internalOpenIndexes = this.internalOpenIndexes.filter(i => i !== index);
123
120
  }
124
- // Emit nvChange event
125
- this.nvChange.emit({ openIndexes: this.internalOpenIndexes });
121
+ // Emit openChanged event
122
+ this.openChanged.emit({ openIndexes: this.internalOpenIndexes });
126
123
  if (this.openIndexes !== undefined) {
127
124
  this.openIndexes =
128
125
  this.mode === 'accordion'
@@ -134,35 +131,17 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
134
131
  //#endregion METHODS
135
132
  /****************************************************************************/
136
133
  //#region WATCHERS
137
- dataChanged() {
138
- this.parseData();
139
- }
140
- parseData() {
141
- if (typeof this.data === 'string') {
142
- try {
143
- this.parsedData = JSON.parse(this.data);
144
- }
145
- catch (e) {
146
- console.error('nv-accordion: Failed to parse data prop.', e);
147
- this.parsedData = [];
148
- }
149
- }
150
- else {
151
- this.parsedData = this.data || [];
152
- }
153
- if (this.parsedData) {
154
- this.itemToggleHandlers = this.parsedData.map((_, i) => () => this.toggleItem(i));
155
- }
156
- }
134
+ //#endregion WATCHERS
135
+ /****************************************************************************/
136
+ //#region LIFECYCLE
157
137
  componentWillLoad() {
158
- this.parseData();
159
138
  if (this.openIndexes !== undefined) {
160
139
  this.internalOpenIndexes = [...this.openIndexes];
161
140
  }
162
141
  }
163
142
  componentDidLoad() {
164
143
  // If using direct child elements, initialize their state
165
- if (!this.parsedData || this.parsedData.length === 0) {
144
+ if (!this.data || this.data.length === 0) {
166
145
  this.updateChildrenState();
167
146
  }
168
147
  }
@@ -171,34 +150,25 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
171
150
  this.internalOpenIndexes = [...this.openIndexes];
172
151
  }
173
152
  }
174
- //#endregion WATCHERS
175
- /****************************************************************************/
176
- //#region LIFECYCLE
177
153
  //#endregion LIFECYCLE
178
154
  /****************************************************************************/
179
155
  //#region RENDER
180
156
  render() {
181
- return (h(Host, { key: '5dcc9ea52a404dff7c4bb176b8a9781019e64bd3', role: "list", class: "nv-accordion" }, this.parsedData && this.parsedData.length > 0 ? (this.parsedData.map((item, i) => {
157
+ return (h(Host, { key: 'a6cb21b274024a00e60e0d0db780f25fab6e5bc2', role: "list", class: "nv-accordion" }, this.data && this.data.length > 0 ? (this.data.map((item, i) => {
182
158
  var _a;
183
- return (h("nv-accordion-item", { key: (_a = item.id) !== null && _a !== void 0 ? _a : i, itemtitle: item.title, disabled: item.disabled, open: (this.internalOpenIndexes || []).includes(i), onItemToggle: this.itemToggleHandlers[i] }, item.subtitle ? (h("div", { slot: "header" }, h("div", { class: "nv-accordion-item__header-content" }, h("span", { class: "nv-accordion-item__title" }, item.title), h("span", { class: "nv-accordion-item__subtitle" }, item.subtitle)))) : null, h("div", { slot: "content" }, item.content), item.footer && h("div", { slot: "footer" }, item.footer)));
159
+ return (h("nv-accordion-item", { key: (_a = item.id) !== null && _a !== void 0 ? _a : i, itemTitle: item.title, disabled: item.disabled, open: (this.internalOpenIndexes || []).includes(i) }, item.subtitle ? (h("div", { slot: "header" }, h("div", { class: "nv-accordion-item__header-content" }, h("span", { class: "nv-accordion-item__title" }, item.title), h("span", { class: "nv-accordion-item__subtitle" }, item.subtitle)))) : null, h("div", { slot: "content" }, item.content), item.footer && h("div", { slot: "footer" }, item.footer)));
184
160
  })) : (h("slot", null))));
185
161
  }
186
162
  get el() { return this; }
187
- static get watchers() { return {
188
- "data": ["dataChanged"]
189
- }; }
190
163
  static get style() { return NvAccordionStyle0; }
191
164
  }, [4, "nv-accordion", {
192
- "data": [513],
165
+ "data": [16],
193
166
  "mode": [513],
194
167
  "openIndexes": [1040],
195
168
  "internalOpenIndexes": [32],
196
- "parsedData": [32],
197
169
  "open": [64],
198
170
  "close": [64]
199
- }, [[0, "itemToggle", "onItemToggle"]], {
200
- "data": ["dataChanged"]
201
- }]);
171
+ }, [[0, "itemToggle", "onItemToggle"]]]);
202
172
  function defineCustomElement$1() {
203
173
  if (typeof customElements === "undefined") {
204
174
  return;
@@ -1 +1 @@
1
- {"file":"nv-accordion.js","mappings":"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","names":["NvAccordion"],"sources":["src/components/nv-accordion/styles/nv-accordion.scss?tag=nv-accordion","src/components/nv-accordion/nv-accordion.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-accordion {\n @include accordion-root();\n\n .nv-accordion__footer {\n @include accordion-footer();\n\n &:empty {\n @include accordion-footer-empty();\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Method,\n Listen,\n Element,\n Watch,\n} from '@stencil/core';\n/**\n * Interface defining the structure of an accordion item\n */\nexport interface AccordionItem {\n /** Unique identifier of the item */\n id: string;\n /** Item title */\n title: string;\n /** Optional subtitle */\n subtitle?: string;\n /** Main content */\n content: string;\n /** Optional footer */\n footer?: string;\n /** Disabled state */\n disabled?: boolean;\n}\n\n/**\n * Interface for nv-accordion-item component props\n */\nexport interface AccordionItemProps {\n /** Item title (displayed if header slot is absent) */\n itemtitle?: string;\n /** Item subtitle (displayed if header slot is absent) */\n subtitle?: string;\n /** Open or closed */\n open?: boolean;\n /** Disables the item */\n disabled?: boolean;\n /** Parent expansion mode (accordion or multi) */\n mode?: 'accordion' | 'multi';\n}\n\n/**\n * @slot default - Slot for custom content (optional, ignored if data is provided)\n */\n@Component({\n tag: 'nv-accordion',\n styleUrl: 'styles/nv-accordion.scss',\n shadow: false,\n})\nexport class NvAccordion {\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * Data to display as a list of items (title, subtitle, content).\n * Must be provided as a JSON string containing an array of items with:\n * - title: main title (required)\n * - subtitle: subtitle (optional)\n * - content: main content (required)\n * - footer: footer (optional)\n * - disabled: disables the item (optional)\n * - id: unique identifier (optional)\n */\n @Prop({ reflect: true })\n readonly data: string;\n\n /**\n * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)\n */\n @Prop({ reflect: true })\n readonly mode: 'accordion' | 'multi' = 'accordion';\n\n /**\n * Index of open items (external control possible)\n */\n @Prop({ reflect: true, mutable: true })\n openIndexes?: number[];\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n /**\n * Internal index of open items (not exposed)\n */\n @State()\n internalOpenIndexes: number[] = [];\n\n /**\n * Parsed data from data prop\n */\n @State()\n private parsedData: AccordionItem[] = [];\n\n /**\n * Reference to host element to access children\n */\n @Element() el!: HTMLNvAccordionElement;\n //#endregion STATE\n /****************************************************************************/\n //#region EVENTS\n /**\n * Event emitted when an item's open state changes\n */\n @Event()\n nvChange: EventEmitter<{\n /** Index of open items */\n openIndexes: number[];\n }>;\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n /**\n * Opens an item by its index (Public API)\n * @param {number} index Index of the item to open\n */\n @Method()\n async open(index: number) {\n this.toggleItem(index, true);\n }\n /**\n * Closes an item by its index (Public API)\n * @param {number} index Index of the item to close\n */\n @Method()\n async close(index: number) {\n this.toggleItem(index, false);\n }\n /**\n * Toggles an item's state (internal)\n * @param {number} index Item index\n * @param {boolean} [forceOpen] Force open (true) or close (false)\n */\n private toggleItem(index: number, forceOpen?: boolean) {\n let openIndexes =\n this.openIndexes !== undefined\n ? [...this.openIndexes]\n : [...(this.internalOpenIndexes || [])];\n const isOpen = openIndexes.includes(index);\n if (this.mode === 'accordion') {\n openIndexes = forceOpen === false || isOpen ? [] : [index];\n } else {\n if (forceOpen === false) {\n openIndexes = openIndexes.filter(i => i !== index);\n } else if (!isOpen) {\n openIndexes.push(index);\n }\n }\n this.internalOpenIndexes = openIndexes;\n this.nvChange.emit({ openIndexes });\n if (this.openIndexes !== undefined) {\n this.openIndexes =\n this.mode === 'accordion'\n ? [openIndexes[0]].filter(x => x !== undefined)\n : [...openIndexes];\n }\n\n // Update child elements state - for both data and slot usage\n this.updateChildrenState();\n }\n\n /**\n * Updates the open state of child elements based on internalOpenIndexes\n */\n private async updateChildrenState() {\n // Force a re-render by updating the state\n this.internalOpenIndexes = [...(this.internalOpenIndexes || [])];\n }\n\n /**\n * Listens to itemToggle events from nv-accordion-item elements\n * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item\n */\n @Listen('itemToggle')\n onItemToggle(event: CustomEvent<boolean>) {\n // Ignore if using data (handled by itemToggleHandlers)\n if (this.parsedData && this.parsedData.length > 0) return;\n\n // Find the index of the item that emitted the event\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n const targetItem = event.target as HTMLNvAccordionItemElement;\n const index = items.indexOf(targetItem);\n\n if (index !== -1) {\n // If the event comes from an item that is opening, handle accordion mode\n if (event.detail === true) {\n if (this.mode === 'accordion') {\n // Close all other items\n items.forEach((item, i) => {\n if (i !== index && item.open) {\n item.open = false;\n }\n });\n this.internalOpenIndexes = [index];\n } else {\n // Add index to internalOpenIndexes if not already present\n if (!this.internalOpenIndexes.includes(index)) {\n this.internalOpenIndexes = [...this.internalOpenIndexes, index];\n }\n }\n } else {\n // If the item is closing, remove it from internalOpenIndexes\n this.internalOpenIndexes = this.internalOpenIndexes.filter(\n i => i !== index,\n );\n }\n\n // Emit nvChange event\n this.nvChange.emit({ openIndexes: this.internalOpenIndexes });\n if (this.openIndexes !== undefined) {\n this.openIndexes =\n this.mode === 'accordion'\n ? [this.internalOpenIndexes[0]].filter(x => x !== undefined)\n : [...this.internalOpenIndexes];\n }\n }\n }\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n @Watch('data')\n dataChanged() {\n this.parseData();\n }\n\n // Synchronization openIndexes <-> internalOpenIndexes\n private itemToggleHandlers: Array<() => void> = [];\n\n private parseData() {\n if (typeof this.data === 'string') {\n try {\n this.parsedData = JSON.parse(this.data);\n } catch (e) {\n console.error('nv-accordion: Failed to parse data prop.', e);\n this.parsedData = [];\n }\n } else {\n this.parsedData = this.data || [];\n }\n\n if (this.parsedData) {\n this.itemToggleHandlers = this.parsedData.map(\n (_, i) => () => this.toggleItem(i),\n );\n }\n }\n\n componentWillLoad() {\n this.parseData();\n if (this.openIndexes !== undefined) {\n this.internalOpenIndexes = [...this.openIndexes];\n }\n }\n\n componentDidLoad() {\n // If using direct child elements, initialize their state\n if (!this.parsedData || this.parsedData.length === 0) {\n this.updateChildrenState();\n }\n }\n\n componentWillUpdate() {\n if (this.openIndexes !== undefined) {\n this.internalOpenIndexes = [...this.openIndexes];\n }\n }\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host role=\"list\" class=\"nv-accordion\">\n {this.parsedData && this.parsedData.length > 0 ? (\n this.parsedData.map((item, i) => (\n <nv-accordion-item\n key={item.id ?? i}\n itemtitle={item.title}\n disabled={item.disabled}\n open={(this.internalOpenIndexes || []).includes(i)}\n onItemToggle={this.itemToggleHandlers[i]}\n >\n {item.subtitle ? (\n <div slot=\"header\">\n <div class=\"nv-accordion-item__header-content\">\n <span class=\"nv-accordion-item__title\">{item.title}</span>\n <span class=\"nv-accordion-item__subtitle\">\n {item.subtitle}\n </span>\n </div>\n </div>\n ) : null}\n <div slot=\"content\">{item.content}</div>\n {item.footer && <div slot=\"footer\">{item.footer}</div>}\n </nv-accordion-item>\n ))\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n // #endregion RENDER\n}\n"],"version":3}
1
+ {"file":"nv-accordion.js","mappings":"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","names":["NvAccordion"],"sources":["src/components/nv-accordion/styles/nv-accordion.scss?tag=nv-accordion","src/components/nv-accordion/nv-accordion.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-accordion {\n @include accordion-root();\n\n .nv-accordion__footer {\n @include accordion-footer();\n\n &:empty {\n @include accordion-footer-empty();\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Method,\n Listen,\n Element,\n} from '@stencil/core';\n\n/**\n * @slot default - Slot for custom content (optional, ignored if data is provided)\n */\n@Component({\n tag: 'nv-accordion',\n styleUrl: 'styles/nv-accordion.scss',\n shadow: false,\n})\nexport class NvAccordion {\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * Data to display as a list of items (title, subtitle, content).\n */\n @Prop({ reflect: false })\n readonly data: {\n /** Unique identifier of the item */\n id: string;\n /** Item title */\n title: string;\n /** Optional subtitle */\n subtitle?: string;\n /** Main content */\n content: string;\n /** Optional footer */\n footer?: string;\n /** Disabled state */\n disabled?: boolean;\n }[] = [];\n\n /**\n * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)\n */\n @Prop({ reflect: true })\n readonly mode: 'accordion' | 'multi' = 'accordion';\n\n /**\n * Index of open items (external control possible)\n */\n @Prop({ reflect: false, mutable: true })\n openIndexes?: number[];\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n /**\n * Internal index of open items (not exposed)\n */\n @State()\n internalOpenIndexes: number[] = [];\n\n /**\n * Reference to host element to access children\n */\n @Element() el!: HTMLNvAccordionElement;\n //#endregion STATE\n /****************************************************************************/\n //#region EVENTS\n /**\n * Event emitted when an item's open state changes\n */\n @Event()\n openChanged: EventEmitter<{\n /** Index of open items */\n openIndexes: number[];\n }>;\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n /**\n * Opens an item by its index (Public API)\n * @param {number} index Index of the item to open\n */\n @Method()\n async open(index: number) {\n this.toggleItem(index, true);\n }\n /**\n * Closes an item by its index (Public API)\n * @param {number} index Index of the item to close\n */\n @Method()\n async close(index: number) {\n this.toggleItem(index, false);\n }\n /**\n * Toggles an item's state (internal)\n * @param {number} index Item index\n * @param {boolean} [forceOpen] Force open (true) or close (false)\n */\n private toggleItem(index: number, forceOpen?: boolean) {\n let openIndexes =\n this.openIndexes !== undefined\n ? [...this.openIndexes]\n : [...(this.internalOpenIndexes || [])];\n const isOpen = openIndexes.includes(index);\n if (this.mode === 'accordion') {\n openIndexes = forceOpen === false || isOpen ? [] : [index];\n } else {\n if (forceOpen === false) {\n openIndexes = openIndexes.filter(i => i !== index);\n } else if (!isOpen) {\n openIndexes.push(index);\n }\n }\n this.internalOpenIndexes = openIndexes;\n this.openChanged.emit({ openIndexes });\n if (this.openIndexes !== undefined) {\n this.openIndexes =\n this.mode === 'accordion'\n ? [openIndexes[0]].filter(x => x !== undefined)\n : [...openIndexes];\n }\n\n // Update child elements state - for both data and slot usage\n this.updateChildrenState();\n }\n\n /**\n * Updates the open state of child elements based on internalOpenIndexes\n */\n private async updateChildrenState() {\n // Force a re-render by updating the state\n this.internalOpenIndexes = [...(this.internalOpenIndexes || [])];\n }\n\n /**\n * Listens to itemToggle events from nv-accordion-item elements\n * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item\n */\n @Listen('itemToggle')\n onItemToggle(event: CustomEvent<boolean>) {\n // Find the index of the item that emitted the event\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n const targetItem = event.target as HTMLNvAccordionItemElement;\n const index = items.indexOf(targetItem);\n\n if (index !== -1) {\n // If the event comes from an item that is opening, handle accordion mode\n if (event.detail === true) {\n if (this.mode === 'accordion') {\n // Close all other items\n items.forEach((item, i) => {\n if (i !== index && item.open) {\n item.open = false;\n }\n });\n this.internalOpenIndexes = [index];\n } else {\n // Add index to internalOpenIndexes if not already present\n if (!this.internalOpenIndexes.includes(index)) {\n this.internalOpenIndexes = [...this.internalOpenIndexes, index];\n }\n }\n } else {\n // If the item is closing, remove it from internalOpenIndexes\n this.internalOpenIndexes = this.internalOpenIndexes.filter(\n i => i !== index,\n );\n }\n\n // Emit openChanged event\n this.openChanged.emit({ openIndexes: this.internalOpenIndexes });\n if (this.openIndexes !== undefined) {\n this.openIndexes =\n this.mode === 'accordion'\n ? [this.internalOpenIndexes[0]].filter(x => x !== undefined)\n : [...this.internalOpenIndexes];\n }\n }\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n componentWillLoad() {\n if (this.openIndexes !== undefined) {\n this.internalOpenIndexes = [...this.openIndexes];\n }\n }\n\n componentDidLoad() {\n // If using direct child elements, initialize their state\n if (!this.data || this.data.length === 0) {\n this.updateChildrenState();\n }\n }\n\n componentWillUpdate() {\n if (this.openIndexes !== undefined) {\n this.internalOpenIndexes = [...this.openIndexes];\n }\n }\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host role=\"list\" class=\"nv-accordion\">\n {this.data && this.data.length > 0 ? (\n this.data.map((item, i) => (\n <nv-accordion-item\n key={item.id ?? i}\n itemTitle={item.title}\n disabled={item.disabled}\n open={(this.internalOpenIndexes || []).includes(i)}\n >\n {item.subtitle ? (\n <div slot=\"header\">\n <div class=\"nv-accordion-item__header-content\">\n <span class=\"nv-accordion-item__title\">{item.title}</span>\n <span class=\"nv-accordion-item__subtitle\">\n {item.subtitle}\n </span>\n </div>\n </div>\n ) : null}\n <div slot=\"content\">{item.content}</div>\n {item.footer && <div slot=\"footer\">{item.footer}</div>}\n </nv-accordion-item>\n ))\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n // #endregion RENDER\n}\n"],"version":3}
@@ -5,7 +5,7 @@ import { u as useCollapse } from './p-9a263d0e.js';
5
5
  import { u as useFade } from './p-1cbacdba.js';
6
6
  import './p-09cdd71f.js';
7
7
  import { t as timeline } from './p-15aeab4d.js';
8
- import { d as defineCustomElement$2 } from './p-f1bbb9e8.js';
8
+ import { d as defineCustomElement$2 } from './p-dd7ff995.js';
9
9
 
10
10
  const nvAlertCss = "nv-alert{display:flex !important;align-items:flex-start;position:relative;gap:var(--alert-gap-x);border-radius:var(--alert-radius);font-family:\"TT Norms Pro\", \"Montserrat\", sans-serif}nv-alert>nv-icon{margin-left:var(--alert-icon-position-x);margin-top:var(--alert-icon-position-y)}nv-alert.hidden{display:none !important}nv-alert.feedback-information{background-color:var(--components-alert-information-background);border:1px solid var(--components-alert-information-border) !important}nv-alert.feedback-information>.close:focus,nv-alert.feedback-information>.close:focus-within{outline:none}nv-alert.feedback-information>.close:focus-visible,nv-alert.feedback-information>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-information-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-warning{background-color:var(--components-alert-warning-background);border:1px solid var(--components-alert-warning-border) !important}nv-alert.feedback-warning>.close:focus,nv-alert.feedback-warning>.close:focus-within{outline:none}nv-alert.feedback-warning>.close:focus-visible,nv-alert.feedback-warning>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-warning-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-error{background-color:var(--components-alert-error-background);border:1px solid var(--components-alert-error-border) !important}nv-alert.feedback-error>.close:focus,nv-alert.feedback-error>.close:focus-within{outline:none}nv-alert.feedback-error>.close:focus-visible,nv-alert.feedback-error>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-error-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-success{background-color:var(--components-alert-success-background);border:1px solid var(--components-alert-success-border) !important}nv-alert.feedback-success>.close:focus,nv-alert.feedback-success>.close:focus-within{outline:none}nv-alert.feedback-success>.close:focus-visible,nv-alert.feedback-success>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-success-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-neutral{background-color:var(--components-alert-neutral-background);border:1px solid var(--components-alert-neutral-border) !important}nv-alert.feedback-neutral>.close:focus,nv-alert.feedback-neutral>.close:focus-within{outline:none}nv-alert.feedback-neutral>.close:focus-visible,nv-alert.feedback-neutral>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-neutral-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert>nv-icon.icon-information{color:var(--components-alert-information-icon)}nv-alert>nv-icon.icon-warning{color:var(--components-alert-warning-icon)}nv-alert>nv-icon.icon-error{color:var(--components-alert-error-icon)}nv-alert>nv-icon.icon-success{color:var(--components-alert-success-icon)}nv-alert>nv-icon.icon-neutral{color:var(--components-alert-neutral-icon)}nv-alert>.content{display:flex;padding:var(--alert-padding);padding-left:0;flex-direction:column;gap:var(--alert-gap-y)}nv-alert>.content>.heading{color:var(--components-alert-content-title);font-size:var(--alert-heading-font-size);line-height:var(--alert-heading-line-height);font-weight:var(--alert-heading-font-weight)}nv-alert>.content>.message{color:var(--components-alert-content-description);font-size:var(--alert-message-font-size);line-height:var(--alert-message-line-height)}nv-alert>.close{border-radius:var(--alert-radius);position:absolute;display:flex;top:var(--alert-icon-position-y);right:var(--alert-icon-position-x);padding:0;border:none;background:none;cursor:pointer}";
11
11
  const NvAlertStyle0 = nvAlertCss;
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, h, d as Host } from './p-aff3ed68.js';
2
2
  import { c as clsx } from './p-8a1a6e56.js';
3
3
  import { S as SemanticSizes } from './p-1f505531.js';
4
- import { d as defineCustomElement$2 } from './p-f1bbb9e8.js';
4
+ import { d as defineCustomElement$2 } from './p-dd7ff995.js';
5
5
 
6
6
  const nvAvatarCss = "nv-avatar{align-items:center !important;background-color:var(--components-avatar-background-1);border-radius:var(--radius-rounded-full) !important;display:flex !important;flex-shrink:0 !important;font-family:\"TT Norms Pro\", sans-serif;font-style:normal;font-weight:var(--font-weight-medium-emphasis);justify-content:center !important;leading-trim:both;line-height:1 !important;text-align:center;text-edge:cap;text-transform:uppercase}nv-avatar.avatar-color-1{background-color:var(--components-avatar-background-1);color:var(--components-avatar-content-1)}nv-avatar.avatar-color-2{background-color:var(--components-avatar-background-2);color:var(--components-avatar-content-2)}nv-avatar.avatar-color-3{background-color:var(--components-avatar-background-3);color:var(--components-avatar-content-3)}nv-avatar.avatar-color-4{background-color:var(--components-avatar-background-4);color:var(--components-avatar-content-4)}nv-avatar.avatar-color-5{background-color:var(--components-avatar-background-5);color:var(--components-avatar-content-5)}nv-avatar.avatar-color-6{background-color:var(--components-avatar-background-6);color:var(--components-avatar-content-6)}nv-avatar.avatar-color-7{background-color:var(--components-avatar-background-7);color:var(--components-avatar-content-7)}nv-avatar.avatar-color-8{background-color:var(--components-avatar-background-8);color:var(--components-avatar-content-8)}nv-avatar.avatar-color-9{background-color:var(--components-avatar-background-9);color:var(--components-avatar-content-9)}nv-avatar.avatar-color-10{background-color:var(--components-avatar-background-10);color:var(--components-avatar-content-10)}nv-avatar img{height:100%;width:100%;object-fit:cover;object-position:center;border-radius:50%}nv-avatar.avatar-xs{width:var(--avatar-xs-size);height:var(--avatar-xs-size);font-size:var(--avatar-xs-font-size);line-height:var(--avatar-xs-font-size)}nv-avatar.avatar-xs nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-avatar.avatar-sm{width:var(--avatar-sm-size);height:var(--avatar-sm-size);font-size:var(--avatar-sm-font-size);line-height:var(--avatar-sm-font-size)}nv-avatar.avatar-sm nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-avatar.avatar-md{width:var(--avatar-md-size);height:var(--avatar-md-size);font-size:var(--avatar-md-font-size);line-height:var(--avatar-md-font-size)}nv-avatar.avatar-md nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-avatar.avatar-lg{width:var(--avatar-lg-size);height:var(--avatar-lg-size);font-size:var(--avatar-lg-font-size);line-height:var(--avatar-lg-font-size)}nv-avatar.avatar-lg nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-avatar.avatar-xl{width:var(--avatar-xl-size);height:var(--avatar-xl-size);font-size:var(--avatar-xl-font-size);line-height:var(--avatar-xl-font-size)}nv-avatar.avatar-xl nv-icon>svg{width:var(--spacing-7);height:var(--spacing-7);stroke-width:1.9px}";
7
7
  const NvAvatarStyle0 = nvAvatarCss;
@@ -1,4 +1,4 @@
1
- import { N as NvBadge$1, d as defineCustomElement$1 } from './p-4069966e.js';
1
+ import { N as NvBadge$1, d as defineCustomElement$1 } from './p-e8e6f88a.js';
2
2
 
3
3
  const NvBadge = NvBadge$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, f as forceUpdate, h, d as Host } from './p-aff3ed68.js';
2
2
  import { c as clsx } from './p-8a1a6e56.js';
3
- import { d as defineCustomElement$3 } from './p-618ae85a.js';
4
- import { d as defineCustomElement$2 } from './p-436a0f99.js';
3
+ import { d as defineCustomElement$3 } from './p-8067d283.js';
4
+ import { d as defineCustomElement$2 } from './p-ba87d9d5.js';
5
5
 
6
6
  const nvBreadcrumbCss = "nv-breadcrumb{display:flex;align-items:center;color:var(--components-breadcrumb-text);font-size:var(--font-size-sm);font-style:normal;font-weight:500;line-height:var(--line-height-sm)}nv-breadcrumb.visually-hidden{position:absolute;padding:0;border:0;overflow:hidden;white-space:nowrap;width:1px;height:1px;margin:-1px;clip:rect(0, 0, 0, 0)}nv-breadcrumb ul{display:flex;flex-direction:column;gap:var(--spacing-1-5);padding:var(--spacing-1)}nv-breadcrumb ul a,nv-breadcrumb ul button{display:inline-flex;align-self:center;color:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-decoration:none}nv-breadcrumb ul a:focus,nv-breadcrumb ul a:focus-within,nv-breadcrumb ul button:focus,nv-breadcrumb ul button:focus-within{outline:none}nv-breadcrumb ul a:focus-visible,nv-breadcrumb ul a:has(:focus-visible),nv-breadcrumb ul button:focus-visible,nv-breadcrumb ul button:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 0.5) solid var(--components-breadcrumb-text-hover);outline-offset:calc(var(--focus-outline-offset) * 0.3)}nv-breadcrumb ul a:hover,nv-breadcrumb ul button:hover{text-decoration:underline;color:var(--components-breadcrumb-text-hover)}nv-breadcrumb>a,nv-breadcrumb>button{display:inline-flex;align-self:center;color:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-decoration:none}nv-breadcrumb>a:focus,nv-breadcrumb>a:focus-within,nv-breadcrumb>button:focus,nv-breadcrumb>button:focus-within{outline:none}nv-breadcrumb>a:focus-visible,nv-breadcrumb>a:has(:focus-visible),nv-breadcrumb>button:focus-visible,nv-breadcrumb>button:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 0.5) solid var(--components-breadcrumb-text-hover);outline-offset:calc(var(--focus-outline-offset) * 0.3)}nv-breadcrumb>a:hover,nv-breadcrumb>button:hover{text-decoration:underline;color:var(--components-breadcrumb-text-hover)}nv-breadcrumb span[data-scope=separator]{display:inline-flex;padding-left:var(--breadcrumb-padding-y)}";
7
7
  const NvBreadcrumbStyle0 = nvBreadcrumbCss;
@@ -1,4 +1,4 @@
1
- import { N as NvButton$1, d as defineCustomElement$1 } from './p-8a5b0f74.js';
1
+ import { N as NvButton$1, d as defineCustomElement$1 } from './p-5d5668f0.js';
2
2
 
3
3
  const NvButton = NvButton$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { N as NvCalendar$1, d as defineCustomElement$1 } from './p-840858ed.js';
1
+ import { N as NvCalendar$1, d as defineCustomElement$1 } from './p-d32b75ac.js';
2
2
 
3
3
  const NvCalendar = NvCalendar$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,8 +1,8 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-aff3ed68.js';
2
2
  import { d as deepCopyElement, e as excludedProps } from './p-cb34aa4f.js';
3
3
  import { d as SortingPossibility } from './p-1f505531.js';
4
- import { d as defineCustomElement$3 } from './p-f266b533.js';
5
- import { d as defineCustomElement$2 } from './p-f1bbb9e8.js';
4
+ import { d as defineCustomElement$3 } from './p-12258eef.js';
5
+ import { d as defineCustomElement$2 } from './p-dd7ff995.js';
6
6
 
7
7
  /**
8
8
  * table-core
@@ -2,11 +2,11 @@ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-
2
2
  import { a as addEventListeners, r as removeEventListeners } from './p-d429a343.js';
3
3
  import { c as clsx } from './p-8a1a6e56.js';
4
4
  import { B as ButtonType } from './p-1f505531.js';
5
- import { d as defineCustomElement$6 } from './p-8a5b0f74.js';
6
- import { d as defineCustomElement$5 } from './p-ac76a11c.js';
5
+ import { d as defineCustomElement$6 } from './p-5d5668f0.js';
6
+ import { d as defineCustomElement$5 } from './p-d576d64f.js';
7
7
  import { d as defineCustomElement$4 } from './p-ca130ad2.js';
8
- import { d as defineCustomElement$3 } from './p-f1bbb9e8.js';
9
- import { d as defineCustomElement$2 } from './p-4864a690.js';
8
+ import { d as defineCustomElement$3 } from './p-dd7ff995.js';
9
+ import { d as defineCustomElement$2 } from './p-dfd2d4f0.js';
10
10
  import { v as v4 } from './p-f5ff676c.js';
11
11
 
12
12
  /*!
@@ -1,4 +1,4 @@
1
- import { N as NvDialogfooter$1, d as defineCustomElement$1 } from './p-ac76a11c.js';
1
+ import { N as NvDialogfooter$1, d as defineCustomElement$1 } from './p-d576d64f.js';
2
2
 
3
3
  const NvDialogfooter = NvDialogfooter$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { N as NvFieldcheckbox$1, d as defineCustomElement$1 } from './p-9ed7a440.js';
1
+ import { N as NvFieldcheckbox$1, d as defineCustomElement$1 } from './p-0143cee0.js';
2
2
 
3
3
  const NvFieldcheckbox = NvFieldcheckbox$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,10 +1,10 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-aff3ed68.js';
2
- import { I as Inputmask } from './p-9cff2fd1.js';
3
- import { d as defineCustomElement$6 } from './p-840858ed.js';
4
- import { d as defineCustomElement$5 } from './p-f1bbb9e8.js';
5
- import { d as defineCustomElement$4 } from './p-316ae8e3.js';
6
- import { d as defineCustomElement$3 } from './p-4864a690.js';
7
- import { d as defineCustomElement$2 } from './p-618ae85a.js';
2
+ import { I as Inputmask } from './p-91a558eb.js';
3
+ import { d as defineCustomElement$6 } from './p-d32b75ac.js';
4
+ import { d as defineCustomElement$5 } from './p-dd7ff995.js';
5
+ import { d as defineCustomElement$4 } from './p-144e80f0.js';
6
+ import { d as defineCustomElement$3 } from './p-dfd2d4f0.js';
7
+ import { d as defineCustomElement$2 } from './p-8067d283.js';
8
8
  import { v as v4 } from './p-f5ff676c.js';
9
9
 
10
10
  const nvFielddateCss = "nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fielddate{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fielddate[fluid]:not([fluid=false]){max-width:unset}nv-fielddate[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fielddate[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fielddate[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fielddate[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fielddate label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fielddate nv-popover{width:100%;display:block}nv-fielddate nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto}nv-fielddate nv-popover [slot=content]{display:block;width:100%}nv-fielddate nv-popover .datepicker-container{border:none}nv-fielddate .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;display:flex;align-items:center;gap:8px}nv-fielddate .input-wrapper .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out}nv-fielddate .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddate .input-wrapper .input-container:focus-within,nv-fielddate .input-wrapper .input-container:focus-within:hover,nv-fielddate .input-wrapper .input-container:focus,nv-fielddate .input-wrapper .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fielddate .input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fielddate .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddate .input-wrapper .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;font-feature-settings:\"tnum\";font-family:\"TTNorms Pro Mono\", monospace}nv-fielddate .input-wrapper .input-container input:focus{outline:none}nv-fielddate .input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fielddate .input-wrapper .input-container input[type=password]::-ms-clear,nv-fielddate .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddate .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddate .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddate .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddate .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fielddate .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}";
@@ -288,6 +288,27 @@ const NvFielddate$1 = /*@__PURE__*/ proxyCustomElement(class NvFielddate extends
288
288
  };
289
289
  return formatMap[format] || 'dd/mm/yyyy';
290
290
  }
291
+ /**
292
+ * Clears the current selection and resets the field to its initial state.
293
+ * This method can be called programmatically to reset the field.
294
+ */
295
+ async clear() {
296
+ // Reset internal state
297
+ this.singleValue = '';
298
+ this.value = '';
299
+ // Reset the input element value
300
+ if (this.inputElement) {
301
+ this.inputElement.value = '';
302
+ // Remove the input mask and reinitialize if needed
303
+ if (this.inputElement.inputmask) {
304
+ this.inputElement.inputmask.remove();
305
+ }
306
+ }
307
+ // Emit events to notify about the change
308
+ this.valueChanged.emit('');
309
+ // Close the popover if open
310
+ this.open = false;
311
+ }
291
312
  //#endregion METHODS
292
313
  /****************************************************************************/
293
314
  //#region LIFECYCLE
@@ -353,12 +374,12 @@ const NvFielddate$1 = /*@__PURE__*/ proxyCustomElement(class NvFielddate extends
353
374
  /****************************************************************************/
354
375
  //#region RENDER
355
376
  render() {
356
- return (h(Host, { key: 'c9f29e6997cf07a03f43e3cc2d8263201829c9c4' }, ((this.label && this.label.length > 0) ||
357
- this.el.querySelector('[slot="label"]')) && (h("label", { key: '0c12a1773e75621cb7f2c6fbd944405cb444a9e6', htmlFor: this.inputId }, h("slot", { key: '0fdd5a226a5db7ac15be968f42e375f89031235f', name: "label" }, this.label))), h("nv-popover", { key: 'dd0dcf5576026e0b565db34d2a2eafd9e6188127', ref: this.setPopoverRef, id: this.popoverId, triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { key: 'a4c7623e8d72ecc847567be060e8c3db04879062', slot: "trigger", class: "input-wrapper" }, h("slot", { key: 'e270dac5a26904db3d0966871bc10d7c68064e87', name: "before-input" }), h("div", { key: '8d277b89e591249910c9eeae754837ce079de47f', class: "input-container", onClick: this.handleInputContainerClick }, h("slot", { key: '964769b29c4d9119365bf59255180e84ae32b195', name: "leading-input" }), h("input", { key: '41f0f565b4854e7907a5a8972d5ce265e587b7f0', id: this.inputId, ref: this.setInputRef, placeholder: this.currentPlaceholder, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: this.required, autofocus: this.autofocus, value: this.singleValue, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, "data-scope": "date" }), this.error && (h("nv-icon", { key: '32d5ffac3789d9b3598811605eccfb1207c4e850', name: "alert-circle", class: "validation", size: "md" })), this.success && (h("nv-icon", { key: '4e88c90987c12199512d77c24205bc2f67c3b8d1', name: "circle-check", class: "validation", size: "md" })), h("nv-iconbutton", { key: 'e169bdd9742569cdcdc087d29ee13f9c097907a9', class: "toggle-calendar-icon", name: "calendar" //{this.open ? 'chevron-top' : 'chevron-down'}
377
+ return (h(Host, { key: '45af13d8290479c8ec171c0702d9d695c5047610' }, ((this.label && this.label.length > 0) ||
378
+ this.el.querySelector('[slot="label"]')) && (h("label", { key: 'd30403c879f8ca0449d8d25d22bb401ece876758', htmlFor: this.inputId }, h("slot", { key: 'aec155a914cff6b7ea8170dbd1f0d9ee4f35172e', name: "label" }, this.label))), h("nv-popover", { key: '522969535f2b8340f1a9b425c4ea6291fc65cb7e', ref: this.setPopoverRef, id: this.popoverId, triggerMode: "controlled", placement: "bottom-start", open: this.open }, h("div", { key: 'eb1d5ab314fe654b3642afb22d9e3fbc340de969', slot: "trigger", class: "input-wrapper" }, h("slot", { key: '6c28354e914075c36db9bee659d140669a745cab', name: "before-input" }), h("div", { key: '68d3aa4a8afcec4042a8930678cea7046f3e31d7', class: "input-container", onClick: this.handleInputContainerClick }, h("slot", { key: 'ed7ada6913a6735af622369236b5f521f2e96aad', name: "leading-input" }), h("input", { key: '49607b25253233665544e8e85db3814734280fe0', id: this.inputId, ref: this.setInputRef, placeholder: this.currentPlaceholder, name: this.name, disabled: this.disabled, readOnly: this.readonly, required: this.required, autofocus: this.autofocus, value: this.singleValue, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, "data-scope": "date" }), this.error && (h("nv-icon", { key: '35d06926d78f7c653fbf0424b59802fb4489004a', name: "alert-circle", class: "validation", size: "md" })), this.success && (h("nv-icon", { key: '17ca631dca201fb412c921619223c1abc8777d2b', name: "circle-check", class: "validation", size: "md" })), h("nv-iconbutton", { key: 'e08d735115cde3d22a657b986f4a7a5a0347d1af', class: "toggle-calendar-icon", name: "calendar" //{this.open ? 'chevron-top' : 'chevron-down'}
358
379
  ,
359
- size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide calendar' : 'Show calendar', "aria-pressed": this.open.toString(), onClick: this.toggleCalendar, tabIndex: this.disabled ? -1 : 0 })), h("slot", { key: '897e5ba6a908c96fdc55bdd522be3f04e9dd14f8', name: "after-input" })), h("div", { key: '6fcb101108ea4536654c2e6204416f899c9f0a04', slot: "content" }, h("nv-calendar", { key: 'd4d7c823ad832ed1c8430b041eacaa1db5633a9f', dateFormat: this.dateFormat, singleValue: this.singleValue, firstDayOfWeek: this.firstDayOfWeek, numberOfCalendars: this.numberOfCalendars, min: this.min, max: this.max, locale: this.locale, shortcutsPlacement: this.shortcutsPlacement, showActions: this.showActions, shortcuts: this.shortcuts, showWeekNumbers: this.showWeekNumbers, disabledDates: this.disabledDates, onValueChanged: this.handleCalendarValueChanged }))), ((this.description && this.description.length > 0) ||
360
- this.el.querySelector('[slot="description"]')) && (h("div", { key: 'f76d5dde2222f39883b59a86fe4237818040e03c', class: "description" }, h("slot", { key: 'de07e1ee885a5804b352dba6a37898bba500b731', name: "description" }, this.description))), (this.errorDescription ||
361
- this.el.querySelector('[slot="error-description"]')) && (h("div", { key: 'b7dbb4406ee38548f8751f9425a800577f3a3cb2', hidden: !this.error, class: "error-description" }, this.el.querySelector('[slot="error-description"]') ? (h("slot", { name: "error-description" })) : (this.errorDescription))), h("slot", { key: 'a0170ef43d415238e57f29f985329e40f8ed0c2a' })));
380
+ size: "md", emphasis: "lower", "aria-label": this.open ? 'Hide calendar' : 'Show calendar', "aria-pressed": this.open.toString(), onClick: this.toggleCalendar, tabIndex: this.disabled ? -1 : 0 })), h("slot", { key: '75cf593c7b9f2078f055522d6e43440dbe0cc522', name: "after-input" })), h("div", { key: '0df8cd2360a17f5cc786e6b29c67ded308c18104', slot: "content" }, h("nv-calendar", { key: '045a02370ef9dfe31ae3d0b2f702fafb25c7da8f', dateFormat: this.dateFormat, singleValue: this.singleValue, firstDayOfWeek: this.firstDayOfWeek, numberOfCalendars: this.numberOfCalendars, min: this.min, max: this.max, locale: this.locale, shortcutsPlacement: this.shortcutsPlacement, showActions: this.showActions, shortcuts: this.shortcuts, showWeekNumbers: this.showWeekNumbers, disabledDates: this.disabledDates, onValueChanged: this.handleCalendarValueChanged }))), ((this.description && this.description.length > 0) ||
381
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: 'ecedbfe16857d9976349f3f3875be13f9ffc4b53', class: "description" }, h("slot", { key: 'e848d9e03e169c9ac57ce2fb7cdb00466f658c61', name: "description" }, this.description))), (this.errorDescription ||
382
+ this.el.querySelector('[slot="error-description"]')) && (h("div", { key: '028b4d496ba3ee5eefa0107da8a62c771709a3ed', hidden: !this.error, class: "error-description" }, this.el.querySelector('[slot="error-description"]') ? (h("slot", { name: "error-description" })) : (this.errorDescription))), h("slot", { key: 'd3b79a0ae56ec7eb444c28985b1ffcfd8a4e36a1' })));
362
383
  }
363
384
  get el() { return this; }
364
385
  static get watchers() { return {
@@ -393,7 +414,8 @@ const NvFielddate$1 = /*@__PURE__*/ proxyCustomElement(class NvFielddate extends
393
414
  "fluid": [516],
394
415
  "singleValue": [32],
395
416
  "currentPlaceholder": [32],
396
- "open": [32]
417
+ "open": [32],
418
+ "clear": [64]
397
419
  }, [[0, "singleDateChange", "handleSingleDateChange"], [0, "closePopover", "handleClosePopover"], [0, "keydown", "handleKeyDown"]], {
398
420
  "value": ["handleValueChange"]
399
421
  }]);