@nova-design-system/nova-webcomponents 3.12.0 → 3.13.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 (395) hide show
  1. package/dist/cjs/collapse.animation-47397763.js +218 -0
  2. package/dist/cjs/collapse.animation-47397763.js.map +1 -0
  3. package/dist/cjs/{constants-aac59496.js → constants-52f6f8e9.js} +6 -1
  4. package/dist/cjs/constants-52f6f8e9.js.map +1 -0
  5. package/dist/cjs/fade.animation-cf6eba0d.js +726 -0
  6. package/dist/cjs/fade.animation-cf6eba0d.js.map +1 -0
  7. package/dist/cjs/{grow.animation-6d003803.js → grow.animation-9258ba63.js} +6 -5
  8. package/dist/cjs/grow.animation-9258ba63.js.map +1 -0
  9. package/dist/cjs/index-c56424e5.js +4 -0
  10. package/dist/cjs/index.cjs.js +16 -7
  11. package/dist/cjs/index.cjs.js.map +1 -1
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/native.cjs.js +1 -1
  14. package/dist/cjs/nv-accordion-item.cjs.entry.js +72 -38
  15. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nv-accordion.cjs.entry.js +79 -65
  17. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-alert.cjs.entry.js +12 -12
  19. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  21. package/dist/cjs/nv-badge_2.cjs.entry.js +4 -4
  22. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-calendar.cjs.entry.js +14 -10
  24. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-datagrid.cjs.entry.js +1 -1
  26. package/dist/cjs/nv-dialog.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +9 -6
  28. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +0 -30
  30. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-fieldnumber.cjs.entry.js +1 -1
  32. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nv-fieldslider.cjs.entry.js +24 -16
  34. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nv-fieldtime.cjs.entry.js +1 -1
  36. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  37. package/dist/cjs/nv-notification.cjs.entry.js +120 -0
  38. package/dist/cjs/nv-notification.cjs.entry.js.map +1 -0
  39. package/dist/cjs/nv-popover.cjs.entry.js +4 -4
  40. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  41. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  42. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  43. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  44. package/dist/cjs/nv-togglebutton.cjs.entry.js +1 -1
  45. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +1 -1
  46. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  47. package/dist/cjs/slide.animation-bedfc827.js +70 -0
  48. package/dist/cjs/slide.animation-bedfc827.js.map +1 -0
  49. package/dist/cjs/{stylefire.es-717e022a.js → style-value-types.es-eea2f16f.js} +51 -696
  50. package/dist/cjs/style-value-types.es-eea2f16f.js.map +1 -0
  51. package/dist/cjs/{timeline.animation-155e8839.js → timeline.animation-2878afb6.js} +20 -1
  52. package/dist/cjs/timeline.animation-2878afb6.js.map +1 -0
  53. package/dist/collection/animations/collapse.animation.js +110 -50
  54. package/dist/collection/animations/collapse.animation.js.map +1 -1
  55. package/dist/collection/animations/index.js +1 -0
  56. package/dist/collection/animations/index.js.map +1 -1
  57. package/dist/collection/animations/slide.animation.js +65 -0
  58. package/dist/collection/animations/slide.animation.js.map +1 -0
  59. package/dist/collection/animations/timeline.animation.js +19 -1
  60. package/dist/collection/animations/timeline.animation.js.map +1 -1
  61. package/dist/collection/collection-manifest.json +1 -0
  62. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +78 -20
  63. package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -1
  64. package/dist/collection/components/nv-accordion/nv-accordion.js +88 -68
  65. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
  66. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +70 -36
  67. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
  68. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +3 -0
  69. package/dist/collection/components/nv-alert/nv-alert.css +1 -1
  70. package/dist/collection/components/nv-alert/nv-alert.js +6 -6
  71. package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
  72. package/dist/collection/components/nv-calendar/nv-calendar.css +4 -0
  73. package/dist/collection/components/nv-calendar/nv-calendar.docs.js +14 -0
  74. package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
  75. package/dist/collection/components/nv-calendar/nv-calendar.js +47 -3
  76. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  77. package/dist/collection/components/nv-calendar/partials/calendar-actions.js +2 -2
  78. package/dist/collection/components/nv-calendar/partials/calendar-actions.js.map +1 -1
  79. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +8 -0
  80. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  81. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +13 -11
  82. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js.map +1 -1
  83. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +0 -30
  84. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  85. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +1 -1
  86. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  87. package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +0 -1
  88. package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js.map +1 -1
  89. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +10 -10
  90. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -1
  91. package/dist/collection/components/nv-fieldslider/partials/field-input.js +13 -5
  92. package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
  93. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +27 -0
  94. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +0 -1
  95. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
  96. package/dist/collection/components/nv-notification/nv-notification.docs.js +72 -0
  97. package/dist/collection/components/nv-notification/nv-notification.docs.js.map +1 -0
  98. package/dist/collection/components/nv-notification/nv-notification.js +333 -0
  99. package/dist/collection/components/nv-notification/nv-notification.js.map +1 -0
  100. package/dist/collection/components/nv-notification/styles/nv-notification.css +155 -0
  101. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  102. package/dist/collection/components/nv-row/nv-row.js +1 -1
  103. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  104. package/dist/collection/components/nv-table/nv-table.js +2 -2
  105. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  106. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  107. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +0 -1
  108. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
  109. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  110. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  111. package/dist/collection/utils/constants.js +5 -0
  112. package/dist/collection/utils/constants.js.map +1 -1
  113. package/dist/components/index.js +9 -6
  114. package/dist/components/index.js.map +1 -1
  115. package/dist/components/nv-accordion-item.js +1 -1
  116. package/dist/components/nv-accordion.js +88 -71
  117. package/dist/components/nv-accordion.js.map +1 -1
  118. package/dist/components/nv-alert.js +13 -13
  119. package/dist/components/nv-alert.js.map +1 -1
  120. package/dist/components/nv-avatar.js +2 -2
  121. package/dist/components/nv-badge.js +1 -1
  122. package/dist/components/nv-breadcrumb.js +2 -2
  123. package/dist/components/nv-button.js +1 -1
  124. package/dist/components/nv-calendar.js +1 -1
  125. package/dist/components/nv-datagrid.js +3 -3
  126. package/dist/components/nv-dialog.js +4 -4
  127. package/dist/components/nv-dialogfooter.js +1 -1
  128. package/dist/components/nv-fielddate.js +5 -5
  129. package/dist/components/nv-fielddaterange.js +5 -5
  130. package/dist/components/nv-fielddropdown.js +4 -4
  131. package/dist/components/nv-fielddropdownitem.js +1 -1
  132. package/dist/components/nv-fieldmultiselect.js +4 -34
  133. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  134. package/dist/components/nv-fieldnumber.js +1 -1
  135. package/dist/components/nv-fieldpassword.js +2 -2
  136. package/dist/components/nv-fieldselect.js +2 -2
  137. package/dist/components/nv-fieldslider.js +27 -19
  138. package/dist/components/nv-fieldslider.js.map +1 -1
  139. package/dist/components/nv-fieldtext.js +1 -1
  140. package/dist/components/nv-fieldtime.js +4 -4
  141. package/dist/components/nv-icon.js +1 -1
  142. package/dist/components/nv-iconbutton.js +1 -1
  143. package/dist/components/nv-menu.js +3 -3
  144. package/dist/components/nv-menuitem.js +1 -1
  145. package/dist/components/nv-notification.d.ts +11 -0
  146. package/dist/components/nv-notification.js +150 -0
  147. package/dist/components/nv-notification.js.map +1 -0
  148. package/dist/components/nv-popover.js +1 -1
  149. package/dist/components/nv-row.js +1 -1
  150. package/dist/components/nv-stack.js +1 -1
  151. package/dist/components/nv-table.js +2 -2
  152. package/dist/components/nv-toggle.js +2 -2
  153. package/dist/components/nv-togglebutton.js +1 -1
  154. package/dist/components/nv-togglebuttongroup.js +1 -1
  155. package/dist/components/nv-tooltip.js +1 -1
  156. package/dist/components/{p-2030d84d.js → p-0b5816f7.js} +2 -2
  157. package/dist/components/{p-2030d84d.js.map → p-0b5816f7.js.map} +1 -1
  158. package/dist/components/{p-5f594b35.js → p-2277cfc8.js} +7 -2
  159. package/dist/components/p-2277cfc8.js.map +1 -0
  160. package/dist/components/{p-57ae32bc.js → p-2854cf01.js} +2 -2
  161. package/dist/components/{p-57ae32bc.js.map → p-2854cf01.js.map} +1 -1
  162. package/dist/components/{p-095c8285.js → p-2de17259.js} +2 -2
  163. package/dist/components/{p-095c8285.js.map → p-2de17259.js.map} +1 -1
  164. package/dist/components/p-31591941.js +216 -0
  165. package/dist/components/p-31591941.js.map +1 -0
  166. package/dist/components/{p-09cdd71f.js → p-42ea6b74.js} +34 -688
  167. package/dist/components/p-42ea6b74.js.map +1 -0
  168. package/dist/components/{p-0b015832.js → p-5073bfd6.js} +2 -2
  169. package/dist/components/{p-0b015832.js.map → p-5073bfd6.js.map} +1 -1
  170. package/dist/components/{p-2ad58e41.js → p-60244646.js} +5 -5
  171. package/dist/components/{p-2ad58e41.js.map → p-60244646.js.map} +1 -1
  172. package/dist/components/{p-b2c31970.js → p-68fa3890.js} +17 -11
  173. package/dist/components/p-68fa3890.js.map +1 -0
  174. package/dist/components/{p-b7629769.js → p-89ac047e.js} +4 -4
  175. package/dist/components/p-89ac047e.js.map +1 -0
  176. package/dist/components/{p-7372258e.js → p-99a55bc4.js} +2 -2
  177. package/dist/components/{p-7372258e.js.map → p-99a55bc4.js.map} +1 -1
  178. package/dist/{esm/timeline.animation-adf35ecb.js → components/p-a52cd849.js} +20 -2
  179. package/dist/components/p-a52cd849.js.map +1 -0
  180. package/dist/components/{p-4c3dc7e4.js → p-a9dc0824.js} +13 -10
  181. package/dist/components/p-a9dc0824.js.map +1 -0
  182. package/dist/components/{p-b3035205.js → p-ca38a8a9.js} +2 -2
  183. package/dist/components/{p-b3035205.js.map → p-ca38a8a9.js.map} +1 -1
  184. package/dist/components/{p-84f4b071.js → p-ddd0a394.js} +75 -41
  185. package/dist/components/p-ddd0a394.js.map +1 -0
  186. package/dist/components/{p-ddb7aa4e.js → p-e4ac8333.js} +6 -6
  187. package/dist/components/{p-ddb7aa4e.js.map → p-e4ac8333.js.map} +1 -1
  188. package/dist/components/{p-dc5dad90.js → p-e6c04562.js} +2 -2
  189. package/dist/components/{p-dc5dad90.js.map → p-e6c04562.js.map} +1 -1
  190. package/dist/components/{p-87079346.js → p-eb443b26.js} +3 -3
  191. package/dist/components/{p-87079346.js.map → p-eb443b26.js.map} +1 -1
  192. package/dist/components/p-eda2f9f3.js +68 -0
  193. package/dist/components/p-eda2f9f3.js.map +1 -0
  194. package/dist/components/p-ee0df37f.js +723 -0
  195. package/dist/components/p-ee0df37f.js.map +1 -0
  196. package/dist/components/{p-8d45dbfe.js → p-fb560fa3.js} +3 -2
  197. package/dist/components/p-fb560fa3.js.map +1 -0
  198. package/dist/esm/collapse.animation-acda1bf5.js +216 -0
  199. package/dist/esm/collapse.animation-acda1bf5.js.map +1 -0
  200. package/dist/esm/{constants-a857c476.js → constants-d0f19e7b.js} +7 -2
  201. package/dist/esm/constants-d0f19e7b.js.map +1 -0
  202. package/dist/esm/fade.animation-eb454088.js +723 -0
  203. package/dist/esm/fade.animation-eb454088.js.map +1 -0
  204. package/dist/esm/{grow.animation-f7b26024.js → grow.animation-5b2abb3a.js} +3 -2
  205. package/dist/esm/grow.animation-5b2abb3a.js.map +1 -0
  206. package/dist/esm/index-a1936cd0.js +4 -0
  207. package/dist/esm/index.js +10 -7
  208. package/dist/esm/index.js.map +1 -1
  209. package/dist/esm/loader.js +1 -1
  210. package/dist/esm/native.js +1 -1
  211. package/dist/esm/nv-accordion-item.entry.js +72 -38
  212. package/dist/esm/nv-accordion-item.entry.js.map +1 -1
  213. package/dist/esm/nv-accordion.entry.js +80 -66
  214. package/dist/esm/nv-accordion.entry.js.map +1 -1
  215. package/dist/esm/nv-alert.entry.js +12 -12
  216. package/dist/esm/nv-alert.entry.js.map +1 -1
  217. package/dist/esm/nv-avatar.entry.js +1 -1
  218. package/dist/esm/nv-badge_2.entry.js +4 -4
  219. package/dist/esm/nv-button.entry.js +1 -1
  220. package/dist/esm/nv-calendar.entry.js +14 -10
  221. package/dist/esm/nv-calendar.entry.js.map +1 -1
  222. package/dist/esm/nv-datagrid.entry.js +1 -1
  223. package/dist/esm/nv-dialog.entry.js +1 -1
  224. package/dist/esm/nv-dialogfooter_2.entry.js +9 -6
  225. package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
  226. package/dist/esm/nv-fieldmultiselect.entry.js +0 -30
  227. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  228. package/dist/esm/nv-fieldnumber.entry.js +1 -1
  229. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  230. package/dist/esm/nv-fieldslider.entry.js +24 -16
  231. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  232. package/dist/esm/nv-fieldtime.entry.js +1 -1
  233. package/dist/esm/nv-icon.entry.js +1 -1
  234. package/dist/esm/nv-notification.entry.js +116 -0
  235. package/dist/esm/nv-notification.entry.js.map +1 -0
  236. package/dist/esm/nv-popover.entry.js +4 -4
  237. package/dist/esm/nv-row.entry.js +1 -1
  238. package/dist/esm/nv-stack.entry.js +1 -1
  239. package/dist/esm/nv-table.entry.js +2 -2
  240. package/dist/esm/nv-toggle.entry.js +2 -2
  241. package/dist/esm/nv-togglebutton.entry.js +1 -1
  242. package/dist/esm/nv-togglebuttongroup.entry.js +1 -1
  243. package/dist/esm/nv-tooltip.entry.js +1 -1
  244. package/dist/esm/slide.animation-f444aa0b.js +68 -0
  245. package/dist/esm/slide.animation-f444aa0b.js.map +1 -0
  246. package/dist/esm/{stylefire.es-74da334a.js → style-value-types.es-f5d10b79.js} +34 -688
  247. package/dist/esm/style-value-types.es-f5d10b79.js.map +1 -0
  248. package/dist/esm/timeline.animation-79215cd4.js +41 -0
  249. package/dist/esm/timeline.animation-79215cd4.js.map +1 -0
  250. package/dist/native/index.esm.js +1 -1
  251. package/dist/native/index.esm.js.map +1 -1
  252. package/dist/native/native.css +1 -1
  253. package/dist/native/native.esm.js +1 -1
  254. package/dist/native/native.esm.js.map +1 -1
  255. package/dist/native/p-08582c21.entry.js +2 -0
  256. package/dist/native/p-08582c21.entry.js.map +1 -0
  257. package/dist/native/p-0a99c6fb.entry.js +2 -0
  258. package/dist/native/p-0a99c6fb.entry.js.map +1 -0
  259. package/dist/native/p-0e488b3d.entry.js +2 -0
  260. package/dist/native/p-0e488b3d.entry.js.map +1 -0
  261. package/dist/native/{p-3a8f65a9.entry.js → p-1f01fb64.entry.js} +2 -2
  262. package/dist/native/{p-c3ad7617.entry.js → p-225a05bf.entry.js} +2 -2
  263. package/dist/native/p-2277cfc8.js +2 -0
  264. package/dist/native/p-2277cfc8.js.map +1 -0
  265. package/dist/native/p-25f2ce81.entry.js +2 -0
  266. package/dist/native/{p-29ee7b1c.entry.js → p-29f68e07.entry.js} +2 -2
  267. package/dist/native/p-29f68e07.entry.js.map +1 -0
  268. package/dist/native/p-31591941.js +2 -0
  269. package/dist/native/p-31591941.js.map +1 -0
  270. package/dist/native/{p-63fea160.entry.js → p-33f503c5.entry.js} +2 -2
  271. package/dist/native/{p-43071c3b.entry.js → p-3784efdc.entry.js} +2 -2
  272. package/dist/native/{p-47901c83.entry.js → p-3f861ddc.entry.js} +2 -2
  273. package/dist/native/{p-ab1e1a96.entry.js → p-40c4a221.entry.js} +2 -2
  274. package/dist/native/p-42ea6b74.js +16 -0
  275. package/dist/native/p-42ea6b74.js.map +1 -0
  276. package/dist/native/{p-62aa0531.entry.js → p-52b8c872.entry.js} +2 -2
  277. package/dist/native/{p-e7a929e7.entry.js → p-5a43fe48.entry.js} +2 -2
  278. package/dist/native/{p-a63929db.entry.js → p-788e9ee5.entry.js} +3 -3
  279. package/dist/native/{p-f033c4ce.entry.js → p-7bbcf477.entry.js} +2 -2
  280. package/dist/native/p-8c823928.entry.js +2 -0
  281. package/dist/native/p-9a46baa9.entry.js +2 -0
  282. package/dist/native/p-9a46baa9.entry.js.map +1 -0
  283. package/dist/native/p-a52cd849.js +2 -0
  284. package/dist/native/p-a52cd849.js.map +1 -0
  285. package/dist/native/{p-48cf2457.entry.js → p-bb71a17f.entry.js} +2 -2
  286. package/dist/native/p-cfd5785e.entry.js +2 -0
  287. package/dist/native/p-cfd5785e.entry.js.map +1 -0
  288. package/dist/native/{p-bcff76ab.entry.js → p-d95ee31e.entry.js} +2 -2
  289. package/dist/native/p-da2c7d3c.entry.js +2 -0
  290. package/dist/native/p-da2c7d3c.entry.js.map +1 -0
  291. package/dist/native/p-eda2f9f3.js +2 -0
  292. package/dist/native/p-eda2f9f3.js.map +1 -0
  293. package/dist/native/p-ee0df37f.js +2 -0
  294. package/dist/native/p-ee0df37f.js.map +1 -0
  295. package/dist/native/p-ee516944.entry.js +2 -0
  296. package/dist/native/p-ee516944.entry.js.map +1 -0
  297. package/dist/native/p-f5120223.entry.js +2 -0
  298. package/dist/native/p-f5120223.entry.js.map +1 -0
  299. package/dist/native/{p-2d647761.entry.js → p-f5eb047e.entry.js} +2 -2
  300. package/dist/native/p-fb560fa3.js +2 -0
  301. package/dist/native/{p-8d45dbfe.js.map → p-fb560fa3.js.map} +1 -1
  302. package/dist/types/animations/collapse.animation.d.ts +10 -2
  303. package/dist/types/animations/index.d.ts +1 -0
  304. package/dist/types/animations/slide.animation.d.ts +11 -0
  305. package/dist/types/animations/timeline.animation.d.ts +17 -1
  306. package/dist/types/components/nv-accordion/nv-accordion.d.ts +5 -7
  307. package/dist/types/components/nv-accordion-item/nv-accordion-item.d.ts +23 -8
  308. package/dist/types/components/nv-alert/nv-alert.d.ts +1 -1
  309. package/dist/types/components/nv-calendar/nv-calendar.d.ts +4 -0
  310. package/dist/types/components/nv-calendar/partials/calendar-actions.d.ts +4 -0
  311. package/dist/types/components/nv-dialogfooter/nv-dialogfooter.d.ts +8 -4
  312. package/dist/types/components/nv-fieldslider/nv-fieldslider.d.ts +3 -2
  313. package/dist/types/components/nv-fieldslider/partials/field-input.d.ts +7 -3
  314. package/dist/types/components/nv-notification/nv-notification.d.ts +75 -0
  315. package/dist/types/components/nv-notification/nv-notification.docs.d.ts +4 -0
  316. package/dist/types/components.d.ts +142 -9
  317. package/dist/types/nova-docs.d.ts +6 -0
  318. package/dist/types/utils/constants.d.ts +4 -0
  319. package/dist/vscode-data.json +77 -3
  320. package/hydrate/index.js +642 -263
  321. package/hydrate/index.mjs +642 -263
  322. package/package.json +5 -1
  323. package/readme.md +169 -42
  324. package/dist/cjs/collapse.animation-a129dc3f.js +0 -86
  325. package/dist/cjs/collapse.animation-a129dc3f.js.map +0 -1
  326. package/dist/cjs/constants-aac59496.js.map +0 -1
  327. package/dist/cjs/fade.animation-644b5c4d.js +0 -70
  328. package/dist/cjs/fade.animation-644b5c4d.js.map +0 -1
  329. package/dist/cjs/grow.animation-6d003803.js.map +0 -1
  330. package/dist/cjs/stylefire.es-717e022a.js.map +0 -1
  331. package/dist/cjs/timeline.animation-155e8839.js.map +0 -1
  332. package/dist/components/p-09cdd71f.js.map +0 -1
  333. package/dist/components/p-15aeab4d.js +0 -23
  334. package/dist/components/p-15aeab4d.js.map +0 -1
  335. package/dist/components/p-1cbacdba.js +0 -68
  336. package/dist/components/p-1cbacdba.js.map +0 -1
  337. package/dist/components/p-4c3dc7e4.js.map +0 -1
  338. package/dist/components/p-5f594b35.js.map +0 -1
  339. package/dist/components/p-84f4b071.js.map +0 -1
  340. package/dist/components/p-8d45dbfe.js.map +0 -1
  341. package/dist/components/p-9a263d0e.js +0 -84
  342. package/dist/components/p-9a263d0e.js.map +0 -1
  343. package/dist/components/p-b2c31970.js.map +0 -1
  344. package/dist/components/p-b7629769.js.map +0 -1
  345. package/dist/esm/collapse.animation-16e3af45.js +0 -84
  346. package/dist/esm/collapse.animation-16e3af45.js.map +0 -1
  347. package/dist/esm/constants-a857c476.js.map +0 -1
  348. package/dist/esm/fade.animation-71e8e34c.js +0 -68
  349. package/dist/esm/fade.animation-71e8e34c.js.map +0 -1
  350. package/dist/esm/grow.animation-f7b26024.js.map +0 -1
  351. package/dist/esm/stylefire.es-74da334a.js.map +0 -1
  352. package/dist/esm/timeline.animation-adf35ecb.js.map +0 -1
  353. package/dist/native/p-09cdd71f.js +0 -16
  354. package/dist/native/p-09cdd71f.js.map +0 -1
  355. package/dist/native/p-0da8f0d1.entry.js +0 -2
  356. package/dist/native/p-0da8f0d1.entry.js.map +0 -1
  357. package/dist/native/p-15aeab4d.js +0 -2
  358. package/dist/native/p-15aeab4d.js.map +0 -1
  359. package/dist/native/p-1cbacdba.js +0 -2
  360. package/dist/native/p-1cbacdba.js.map +0 -1
  361. package/dist/native/p-29ee7b1c.entry.js.map +0 -1
  362. package/dist/native/p-38af3aaf.entry.js +0 -2
  363. package/dist/native/p-38af3aaf.entry.js.map +0 -1
  364. package/dist/native/p-3fcaac6d.entry.js +0 -2
  365. package/dist/native/p-3fcaac6d.entry.js.map +0 -1
  366. package/dist/native/p-5d352456.entry.js +0 -2
  367. package/dist/native/p-5f594b35.js +0 -2
  368. package/dist/native/p-5f594b35.js.map +0 -1
  369. package/dist/native/p-67d861e2.entry.js +0 -2
  370. package/dist/native/p-67d861e2.entry.js.map +0 -1
  371. package/dist/native/p-7703c736.entry.js +0 -2
  372. package/dist/native/p-7703c736.entry.js.map +0 -1
  373. package/dist/native/p-8d45dbfe.js +0 -2
  374. package/dist/native/p-9a263d0e.js +0 -2
  375. package/dist/native/p-9a263d0e.js.map +0 -1
  376. package/dist/native/p-9e0fe7e8.entry.js +0 -2
  377. package/dist/native/p-9e0fe7e8.entry.js.map +0 -1
  378. package/dist/native/p-ac5496e7.entry.js +0 -2
  379. package/dist/native/p-e603c6ed.entry.js +0 -2
  380. package/dist/native/p-e603c6ed.entry.js.map +0 -1
  381. /package/dist/native/{p-3a8f65a9.entry.js.map → p-1f01fb64.entry.js.map} +0 -0
  382. /package/dist/native/{p-c3ad7617.entry.js.map → p-225a05bf.entry.js.map} +0 -0
  383. /package/dist/native/{p-ac5496e7.entry.js.map → p-25f2ce81.entry.js.map} +0 -0
  384. /package/dist/native/{p-63fea160.entry.js.map → p-33f503c5.entry.js.map} +0 -0
  385. /package/dist/native/{p-43071c3b.entry.js.map → p-3784efdc.entry.js.map} +0 -0
  386. /package/dist/native/{p-47901c83.entry.js.map → p-3f861ddc.entry.js.map} +0 -0
  387. /package/dist/native/{p-ab1e1a96.entry.js.map → p-40c4a221.entry.js.map} +0 -0
  388. /package/dist/native/{p-62aa0531.entry.js.map → p-52b8c872.entry.js.map} +0 -0
  389. /package/dist/native/{p-e7a929e7.entry.js.map → p-5a43fe48.entry.js.map} +0 -0
  390. /package/dist/native/{p-a63929db.entry.js.map → p-788e9ee5.entry.js.map} +0 -0
  391. /package/dist/native/{p-f033c4ce.entry.js.map → p-7bbcf477.entry.js.map} +0 -0
  392. /package/dist/native/{p-5d352456.entry.js.map → p-8c823928.entry.js.map} +0 -0
  393. /package/dist/native/{p-48cf2457.entry.js.map → p-bb71a17f.entry.js.map} +0 -0
  394. /package/dist/native/{p-bcff76ab.entry.js.map → p-d95ee31e.entry.js.map} +0 -0
  395. /package/dist/native/{p-2d647761.entry.js.map → p-f5eb047e.entry.js.map} +0 -0
package/hydrate/index.js CHANGED
@@ -2745,13 +2745,14 @@ class NvAccordion {
2745
2745
  * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)
2746
2746
  */
2747
2747
  this.mode = 'accordion';
2748
+ /**
2749
+ * Index of open items (external control possible)
2750
+ */
2751
+ this.openIndexes = [];
2748
2752
  //#endregion PROPERTIES
2749
2753
  /****************************************************************************/
2750
2754
  //#region STATE
2751
- /**
2752
- * Internal index of open items (not exposed)
2753
- */
2754
- this.internalOpenIndexes = [];
2755
+ this.updatingFromInternal = false;
2755
2756
  }
2756
2757
  //#endregion EVENTS
2757
2758
  /****************************************************************************/
@@ -2776,113 +2777,125 @@ class NvAccordion {
2776
2777
  * @param {boolean} [forceOpen] Force open (true) or close (false)
2777
2778
  */
2778
2779
  toggleItem(index, forceOpen) {
2779
- let openIndexes = this.openIndexes !== undefined
2780
- ? [...this.openIndexes]
2781
- : [...(this.internalOpenIndexes || [])];
2780
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2781
+ const item = items[index];
2782
+ if (!item || item.disabled) {
2783
+ console.warn('[toggleItem] Item not found or disabled:', index);
2784
+ this.openChanged.emit({ openIndexes: [...(this.openIndexes || [])] });
2785
+ return;
2786
+ }
2787
+ let openIndexes = [...(this.openIndexes || [])];
2782
2788
  const isOpen = openIndexes.includes(index);
2783
2789
  if (this.mode === 'accordion') {
2784
- openIndexes = forceOpen === false || isOpen ? [] : [index];
2790
+ openIndexes =
2791
+ forceOpen === false || (forceOpen === undefined && isOpen)
2792
+ ? []
2793
+ : [index];
2785
2794
  }
2786
2795
  else {
2787
2796
  if (forceOpen === false) {
2788
2797
  openIndexes = openIndexes.filter(i => i !== index);
2789
2798
  }
2790
- else if (!isOpen) {
2799
+ else if (forceOpen === true && !isOpen) {
2791
2800
  openIndexes.push(index);
2792
2801
  }
2802
+ else if (forceOpen === undefined) {
2803
+ openIndexes = isOpen
2804
+ ? openIndexes.filter(i => i !== index)
2805
+ : [...openIndexes, index];
2806
+ }
2793
2807
  }
2794
- this.internalOpenIndexes = openIndexes;
2795
- this.openChanged.emit({ openIndexes });
2796
- if (this.openIndexes !== undefined) {
2797
- this.openIndexes =
2798
- this.mode === 'accordion'
2799
- ? [openIndexes[0]].filter(x => x !== undefined)
2800
- : [...openIndexes];
2801
- }
2802
- // Update child elements state - for both data and slot usage
2808
+ this.updatingFromInternal = true;
2809
+ this.openIndexes = [...openIndexes];
2803
2810
  this.updateChildrenState();
2811
+ this.updatingFromInternal = false;
2812
+ this.openChanged.emit({ openIndexes: [...openIndexes] });
2804
2813
  }
2805
2814
  /**
2806
- * Updates the open state of child elements based on internalOpenIndexes
2815
+ * Updates the open state of child elements based on openIndexes
2807
2816
  */
2808
2817
  async updateChildrenState() {
2809
- // Force a re-render by updating the state
2810
- this.internalOpenIndexes = [...(this.internalOpenIndexes || [])];
2818
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2819
+ items.forEach((item, i) => {
2820
+ const shouldBeOpen = (this.openIndexes || []).includes(i);
2821
+ item.open = shouldBeOpen;
2822
+ item.mode = this.mode;
2823
+ item.setAttribute('aria-expanded', shouldBeOpen ? 'true' : 'false');
2824
+ });
2811
2825
  }
2812
2826
  /**
2813
2827
  * Listens to itemToggle events from nv-accordion-item elements
2814
2828
  * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item
2815
2829
  */
2816
2830
  onItemToggle(event) {
2817
- // Find the index of the item that emitted the event
2831
+ if (this.updatingFromInternal) {
2832
+ return;
2833
+ }
2818
2834
  const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2819
2835
  const targetItem = event.target;
2820
2836
  const index = items.indexOf(targetItem);
2821
2837
  if (index !== -1) {
2822
- // If the event comes from an item that is opening, handle accordion mode
2823
- if (event.detail === true) {
2824
- if (this.mode === 'accordion') {
2825
- // Close all other items
2826
- items.forEach((item, i) => {
2827
- if (i !== index && item.open) {
2828
- item.open = false;
2829
- }
2830
- });
2831
- this.internalOpenIndexes = [index];
2832
- }
2833
- else {
2834
- // Add index to internalOpenIndexes if not already present
2835
- if (!this.internalOpenIndexes.includes(index)) {
2836
- this.internalOpenIndexes = [...this.internalOpenIndexes, index];
2837
- }
2838
- }
2839
- }
2840
- else {
2841
- // If the item is closing, remove it from internalOpenIndexes
2842
- this.internalOpenIndexes = this.internalOpenIndexes.filter(i => i !== index);
2843
- }
2844
- // Emit openChanged event
2845
- this.openChanged.emit({ openIndexes: this.internalOpenIndexes });
2846
- if (this.openIndexes !== undefined) {
2847
- this.openIndexes =
2848
- this.mode === 'accordion'
2849
- ? [this.internalOpenIndexes[0]].filter(x => x !== undefined)
2850
- : [...this.internalOpenIndexes];
2851
- }
2838
+ this.toggleItem(index, event.detail);
2839
+ }
2840
+ else {
2841
+ console.warn('[onItemToggle] Target item not found in items list');
2852
2842
  }
2853
2843
  }
2854
2844
  //#endregion METHODS
2855
2845
  /****************************************************************************/
2856
2846
  //#region WATCHERS
2847
+ onOpenIndexesChange(newValue, oldValue) {
2848
+ if (!this.updatingFromInternal &&
2849
+ newValue !== undefined &&
2850
+ newValue !== oldValue) {
2851
+ this.updateChildrenState();
2852
+ }
2853
+ }
2854
+ onModeChange() {
2855
+ this.updateChildrenState();
2856
+ }
2857
2857
  //#endregion WATCHERS
2858
2858
  /****************************************************************************/
2859
2859
  //#region LIFECYCLE
2860
2860
  componentWillLoad() {
2861
- if (this.openIndexes !== undefined) {
2862
- this.internalOpenIndexes = [...this.openIndexes];
2863
- }
2864
- }
2865
- componentDidLoad() {
2866
- // If using direct child elements, initialize their state
2867
- if (!this.data || this.data.length === 0) {
2868
- this.updateChildrenState();
2861
+ if (this.openIndexes === undefined) {
2862
+ this.openIndexes = [];
2869
2863
  }
2870
2864
  }
2871
- componentWillUpdate() {
2872
- if (this.openIndexes !== undefined) {
2873
- this.internalOpenIndexes = [...this.openIndexes];
2874
- }
2865
+ async componentDidLoad() {
2866
+ var _a;
2867
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2868
+ // Only initialize openIndexes from child items if no data is provided and openIndexes is not explicitly set
2869
+ if (!((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) &&
2870
+ (!this.openIndexes || this.openIndexes.length === 0)) {
2871
+ const childOpenIndexes = items
2872
+ .map((item, i) => (item.hasAttribute('open') || item.open ? i : -1))
2873
+ .filter(i => i !== -1);
2874
+ if (childOpenIndexes.length > 0) {
2875
+ this.updatingFromInternal = true;
2876
+ this.openIndexes = [...childOpenIndexes];
2877
+ this.updatingFromInternal = false;
2878
+ this.openChanged.emit({ openIndexes: [...this.openIndexes] });
2879
+ }
2880
+ }
2881
+ // Ensure children are in sync with current openIndexes state
2882
+ await this.updateChildrenState();
2875
2883
  }
2876
2884
  //#endregion LIFECYCLE
2877
2885
  /****************************************************************************/
2878
2886
  //#region RENDER
2879
2887
  render() {
2880
- return (hAsync(Host, { key: 'a6cb21b274024a00e60e0d0db780f25fab6e5bc2', role: "list", class: "nv-accordion" }, this.data && this.data.length > 0 ? (this.data.map((item, i) => {
2888
+ var _a;
2889
+ return (hAsync(Host, { key: 'b5c36f19bcbd0d06e9d924ae6f9630b8b6cae05a', role: "list", class: "nv-accordion" }, ((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) ? (this.data.map((item, i) => {
2881
2890
  var _a;
2882
- return (hAsync("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 ? (hAsync("div", { slot: "header" }, hAsync("div", { class: "nv-accordion-item__header-content" }, hAsync("span", { class: "nv-accordion-item__title" }, item.title), hAsync("span", { class: "nv-accordion-item__subtitle" }, item.subtitle)))) : null, hAsync("div", { slot: "content" }, item.content), item.footer && hAsync("div", { slot: "footer" }, item.footer)));
2891
+ return (hAsync("nv-accordion-item", { key: (_a = item.id) !== null && _a !== void 0 ? _a : i, itemTitle: item.title, disabled: item.disabled, open: (this.openIndexes || []).includes(i), mode: this.mode }, item.subtitle ? (hAsync("div", { slot: "header" }, hAsync("div", { class: "nv-accordion-item__header-content" }, hAsync("span", { class: "nv-accordion-item__title" }, item.title), hAsync("span", { class: "nv-accordion-item__subtitle" }, item.subtitle)))) : null, hAsync("div", { slot: "content" }, item.content), item.footer && hAsync("div", { slot: "footer" }, item.footer)));
2883
2892
  })) : (hAsync("slot", null))));
2884
2893
  }
2885
2894
  get el() { return getElement(this); }
2895
+ static get watchers() { return {
2896
+ "openIndexes": ["onOpenIndexesChange"],
2897
+ "mode": ["onModeChange"]
2898
+ }; }
2886
2899
  static get style() { return NvAccordionStyle0; }
2887
2900
  static get cmpMeta() { return {
2888
2901
  "$flags$": 4,
@@ -2891,7 +2904,7 @@ class NvAccordion {
2891
2904
  "data": [16],
2892
2905
  "mode": [513],
2893
2906
  "openIndexes": [1040],
2894
- "internalOpenIndexes": [32],
2907
+ "updatingFromInternal": [32],
2895
2908
  "open": [64],
2896
2909
  "close": [64]
2897
2910
  },
@@ -3551,8 +3564,9 @@ const DEFAULT_OVERSHOOT_STRENGTH = 1.525;
3551
3564
  const BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;
3552
3565
  const BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;
3553
3566
  const BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;
3567
+ const linear = p => p;
3554
3568
  const easeIn = createExpoIn(2);
3555
- reverseEasing(easeIn);
3569
+ const easeOut = reverseEasing(easeIn);
3556
3570
  const easeInOut = mirrorEasing(easeIn);
3557
3571
  const circIn = p => 1 - Math.sin(Math.acos(p));
3558
3572
  const circOut = reverseEasing(circIn);
@@ -3872,6 +3886,217 @@ function animate(_a) {
3872
3886
  };
3873
3887
  }
3874
3888
 
3889
+ const a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;
3890
+ const b = (a1, a2) => 3.0 * a2 - 6.0 * a1;
3891
+ const c = (a1) => 3.0 * a1;
3892
+ const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;
3893
+ const getSlope = (t, a1, a2) => 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);
3894
+ const subdivisionPrecision = 0.0000001;
3895
+ const subdivisionMaxIterations = 10;
3896
+ function binarySubdivide(aX, aA, aB, mX1, mX2) {
3897
+ let currentX;
3898
+ let currentT;
3899
+ let i = 0;
3900
+ do {
3901
+ currentT = aA + (aB - aA) / 2.0;
3902
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
3903
+ if (currentX > 0.0) {
3904
+ aB = currentT;
3905
+ }
3906
+ else {
3907
+ aA = currentT;
3908
+ }
3909
+ } while (Math.abs(currentX) > subdivisionPrecision &&
3910
+ ++i < subdivisionMaxIterations);
3911
+ return currentT;
3912
+ }
3913
+ const newtonIterations = 8;
3914
+ const newtonMinSlope = 0.001;
3915
+ function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
3916
+ for (let i = 0; i < newtonIterations; ++i) {
3917
+ const currentSlope = getSlope(aGuessT, mX1, mX2);
3918
+ if (currentSlope === 0.0) {
3919
+ return aGuessT;
3920
+ }
3921
+ const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
3922
+ aGuessT -= currentX / currentSlope;
3923
+ }
3924
+ return aGuessT;
3925
+ }
3926
+ const kSplineTableSize = 11;
3927
+ const kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
3928
+ function cubicBezier(mX1, mY1, mX2, mY2) {
3929
+ if (mX1 === mY1 && mX2 === mY2)
3930
+ return linear;
3931
+ const sampleValues = new Float32Array(kSplineTableSize);
3932
+ for (let i = 0; i < kSplineTableSize; ++i) {
3933
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
3934
+ }
3935
+ function getTForX(aX) {
3936
+ let intervalStart = 0.0;
3937
+ let currentSample = 1;
3938
+ const lastSample = kSplineTableSize - 1;
3939
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
3940
+ intervalStart += kSampleStepSize;
3941
+ }
3942
+ --currentSample;
3943
+ const dist = (aX - sampleValues[currentSample]) /
3944
+ (sampleValues[currentSample + 1] - sampleValues[currentSample]);
3945
+ const guessForT = intervalStart + dist * kSampleStepSize;
3946
+ const initialSlope = getSlope(guessForT, mX1, mX2);
3947
+ if (initialSlope >= newtonMinSlope) {
3948
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
3949
+ }
3950
+ else if (initialSlope === 0.0) {
3951
+ return guessForT;
3952
+ }
3953
+ else {
3954
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
3955
+ }
3956
+ }
3957
+ return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);
3958
+ }
3959
+
3960
+ /**
3961
+ * Read current box metrics (height + vertical margins).
3962
+ * @param {HTMLElement} node - The element to measure.
3963
+ * @returns {object} The box metrics.
3964
+ */
3965
+ function getBoxMetrics(node) {
3966
+ const rectHeight = node.getBoundingClientRect().height;
3967
+ const style = getComputedStyle(node);
3968
+ const marginTop = parseFloat(style.marginTop) || 0;
3969
+ const marginBottom = parseFloat(style.marginBottom) || 0;
3970
+ const total = rectHeight + marginTop + marginBottom;
3971
+ return { height: rectHeight, marginTop, marginBottom, total };
3972
+ }
3973
+ const useCollapse = (node, { duration = 200, overflow = 'hidden' } = {}) => {
3974
+ let currentAnimation = null;
3975
+ const stop = () => {
3976
+ if (currentAnimation) {
3977
+ currentAnimation.stop();
3978
+ currentAnimation = null;
3979
+ }
3980
+ };
3981
+ const setStyle = (styles) => {
3982
+ for (const [k, v] of Object.entries(styles)) {
3983
+ node.style[k] = v;
3984
+ }
3985
+ };
3986
+ /** Instantly apply collapsed styles (no animation). */
3987
+ function setCollapsed() {
3988
+ stop();
3989
+ setStyle({
3990
+ height: '0px',
3991
+ marginTop: '0px',
3992
+ marginBottom: '0px',
3993
+ overflow,
3994
+ });
3995
+ }
3996
+ /** Instantly apply expanded styles (no animation). */
3997
+ function setExpanded() {
3998
+ stop();
3999
+ setStyle({
4000
+ height: '',
4001
+ marginTop: '',
4002
+ marginBottom: '',
4003
+ overflow: '',
4004
+ });
4005
+ }
4006
+ /**
4007
+ * Collapse: animate from current box (height + margins) down to 0.
4008
+ */
4009
+ function collapse() {
4010
+ stop();
4011
+ return new Promise(resolve => {
4012
+ const { height, marginTop, marginBottom, total } = getBoxMetrics(node);
4013
+ // Lock current box
4014
+ setStyle({
4015
+ height: `${height}px`,
4016
+ marginTop: `${marginTop}px`,
4017
+ marginBottom: `${marginBottom}px`,
4018
+ overflow,
4019
+ willChange: 'height, margin',
4020
+ });
4021
+ const denom = total > 0 ? total : 0.0001; // avoid divide-by-zero
4022
+ currentAnimation = animate({
4023
+ from: total,
4024
+ to: 0,
4025
+ duration,
4026
+ ease: cubicBezier(0.2, 0, 0, 1),
4027
+ onUpdate: v => {
4028
+ const ratio = v / denom;
4029
+ setStyle({
4030
+ height: `${height * ratio}px`,
4031
+ marginTop: `${marginTop * ratio}px`,
4032
+ marginBottom: `${marginBottom * ratio}px`,
4033
+ });
4034
+ },
4035
+ onComplete: () => {
4036
+ setStyle({
4037
+ height: '0px',
4038
+ marginTop: '0px',
4039
+ marginBottom: '0px',
4040
+ willChange: '',
4041
+ });
4042
+ resolve();
4043
+ },
4044
+ });
4045
+ });
4046
+ }
4047
+ /**
4048
+ * Expand: animate from 0 box to the element's natural box (height + margins),
4049
+ * then restore `height: auto` and computed margins.
4050
+ */
4051
+ function expand() {
4052
+ stop();
4053
+ return new Promise(resolve => {
4054
+ // Let the element size naturally to measure the target box
4055
+ setStyle({
4056
+ height: '',
4057
+ marginTop: '',
4058
+ marginBottom: '',
4059
+ overflow,
4060
+ });
4061
+ const { height, marginTop, marginBottom, total } = getBoxMetrics(node);
4062
+ // Start locked at zero box
4063
+ setStyle({
4064
+ height: '0px',
4065
+ marginTop: '0px',
4066
+ marginBottom: '0px',
4067
+ willChange: 'height, margin',
4068
+ });
4069
+ const denom = total > 0 ? total : 0.0001;
4070
+ currentAnimation = animate({
4071
+ from: 0,
4072
+ to: total,
4073
+ duration,
4074
+ ease: cubicBezier(0.2, 0, 0, 1),
4075
+ onUpdate: v => {
4076
+ const ratio = v / denom;
4077
+ setStyle({
4078
+ height: `${height * ratio}px`,
4079
+ marginTop: `${marginTop * ratio}px`,
4080
+ marginBottom: `${marginBottom * ratio}px`,
4081
+ });
4082
+ },
4083
+ onComplete: () => {
4084
+ // Restore natural layout
4085
+ setStyle({
4086
+ height: '',
4087
+ marginTop: '',
4088
+ marginBottom: '',
4089
+ overflow: '',
4090
+ willChange: '',
4091
+ });
4092
+ resolve();
4093
+ },
4094
+ });
4095
+ });
4096
+ }
4097
+ return { collapse, expand, setCollapsed, setExpanded };
4098
+ };
4099
+
3875
4100
  /*! *****************************************************************************
3876
4101
  Copyright (c) Microsoft Corporation.
3877
4102
 
@@ -4706,85 +4931,6 @@ function index(nodeOrSelector, props) {
4706
4931
  return getStyler(node, props);
4707
4932
  }
4708
4933
 
4709
- const useCollapse = (node, { duration } = { duration: 200 }) => {
4710
- const nodeStyler = index(node);
4711
- /**
4712
- * Will set the overflow to hidden, and animate the max height to 0. Make sure
4713
- * the element has no border or y padding set, otherwise the animation will
4714
- * not work as expected.
4715
- */
4716
- function collapse() {
4717
- return new Promise(resolve => {
4718
- const height = node.getBoundingClientRect().height;
4719
- nodeStyler.set({ overflow: 'hidden' });
4720
- animate({
4721
- from: height,
4722
- to: 0,
4723
- duration,
4724
- onUpdate: value => {
4725
- nodeStyler.set({
4726
- maxHeight: value,
4727
- });
4728
- },
4729
- onComplete: () => {
4730
- resolve();
4731
- },
4732
- });
4733
- });
4734
- }
4735
- /**
4736
- * Apply the collapsed styles without animating, useful when initial state
4737
- * is collapsed.
4738
- */
4739
- function setCollapsed() {
4740
- node.style.maxHeight = '0';
4741
- node.style.overflow = 'hidden';
4742
- }
4743
- /**
4744
- * Apply the expanded styles without animating, useful when initial state
4745
- * is expanded.
4746
- */
4747
- function setExpanded() {
4748
- node.style.maxHeight = '';
4749
- node.style.overflow = '';
4750
- }
4751
- /**
4752
- * Will set the overflow to hidden, and animate the max height to the value
4753
- * of the scrollHeight. Make sure the element has no border or y padding set,
4754
- * otherwise the animation will not work as expected. Once complete, the
4755
- * max-height and overflow style properties will be removed.
4756
- */
4757
- function expand() {
4758
- return new Promise(resolve => {
4759
- const scrollHeight = node.scrollHeight;
4760
- nodeStyler.set({
4761
- overflow: 'hidden',
4762
- });
4763
- animate({
4764
- from: 0,
4765
- to: scrollHeight,
4766
- duration,
4767
- onUpdate: value => {
4768
- nodeStyler.set({
4769
- maxHeight: value,
4770
- });
4771
- },
4772
- onComplete: () => {
4773
- node.style.removeProperty('max-height');
4774
- node.style.removeProperty('overflow');
4775
- resolve();
4776
- },
4777
- });
4778
- });
4779
- }
4780
- return {
4781
- collapse,
4782
- expand,
4783
- setCollapsed,
4784
- setExpanded,
4785
- };
4786
- };
4787
-
4788
4934
  const useFade = (node, { duration } = { duration: 200 }) => {
4789
4935
  const nodeStyler = index(node);
4790
4936
  /**
@@ -4932,6 +5078,68 @@ const useGrow = (node, { duration = 200, amount = 0.8, hasFade = true } = {}) =>
4932
5078
  };
4933
5079
  };
4934
5080
 
5081
+ const useSlide = (node, { duration } = { duration: 200 }) => {
5082
+ const nodeStyler = index(node);
5083
+ /**
5084
+ * Will animate the translateX to 100%, sliding the element to the right.
5085
+ */
5086
+ function slideOut() {
5087
+ return new Promise(resolve => {
5088
+ animate({
5089
+ from: { x: 0 },
5090
+ to: { x: 100 },
5091
+ ease: easeOut,
5092
+ duration,
5093
+ onUpdate(latest) {
5094
+ nodeStyler.set({ transform: `translateX(${latest.x}%)` });
5095
+ },
5096
+ onComplete() {
5097
+ resolve();
5098
+ },
5099
+ });
5100
+ });
5101
+ }
5102
+ /**
5103
+ * Applies the slideOut styles without animating, useful when initial state
5104
+ * is slid out.
5105
+ */
5106
+ function setSlideOut() {
5107
+ node.style.transform = 'translateX(100%)';
5108
+ }
5109
+ /**
5110
+ * Applies the slideIn styles without animating, useful when initial state
5111
+ * is slid in.
5112
+ */
5113
+ function setSlideIn() {
5114
+ node.style.transform = '';
5115
+ }
5116
+ /**
5117
+ * Will animate the translateX from 100% to 0%, sliding the element in from the right.
5118
+ */
5119
+ function slideIn() {
5120
+ return new Promise(resolve => {
5121
+ animate({
5122
+ from: { x: 100 },
5123
+ to: { x: 0 },
5124
+ duration,
5125
+ onUpdate(latest) {
5126
+ nodeStyler.set({ transform: `translateX(${latest.x}%)` });
5127
+ },
5128
+ onComplete() {
5129
+ resolve();
5130
+ node.style.removeProperty('transform');
5131
+ },
5132
+ });
5133
+ });
5134
+ }
5135
+ return {
5136
+ slideIn,
5137
+ slideOut,
5138
+ setSlideOut,
5139
+ setSlideIn,
5140
+ };
5141
+ };
5142
+
4935
5143
  /**
4936
5144
  * Will execute a series of animation promises in sequence.
4937
5145
  * This is useful for chaining animations where each step depends on the
@@ -4951,8 +5159,26 @@ const timeline = (...animations) => ({
4951
5159
  return animations.reduce((promise, animation) => promise.then(() => animation()), Promise.resolve());
4952
5160
  },
4953
5161
  });
5162
+ /**
5163
+ * Will execute a series of animation promises in parallel.
5164
+ * This is useful for running multiple animations simultaneously.
5165
+ *
5166
+ * @param {Array<() => Promise<void>>} animations - The array of animation functions.
5167
+ * @returns {Object} - An object with a `start` method to begin the parallel animations.
5168
+ *
5169
+ * @example
5170
+ * const { fadeOut } = useFade(this.ref);
5171
+ * const { slideOut } = useSlide(this.containerRef);
5172
+ *
5173
+ * parallel(fadeOut, slideOut).start();
5174
+ */
5175
+ const parallel = (...animations) => ({
5176
+ start: () => {
5177
+ return Promise.all(animations.map(animation => animation()));
5178
+ },
5179
+ });
4954
5180
 
4955
- const nvAccordionItemCss = "nv-accordion-item{display:block;border-bottom:var(--spacing-px) solid var(--color-content-low-border)}nv-accordion-item:last-child{border-bottom:none}nv-accordion-item .nv-accordion-item__header{cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4)}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__chevron{margin-left:var(--spacing-2);flex-shrink:0}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__header-content{display:flex;flex-direction:column;gap:var(--spacing-0-5);flex:1;min-width:0}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__title{color:var(--color-content-high-text);font-size:var(--font-size-lg);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--line-height-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__subtitle{color:var(--color-content-low-text);font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--line-height-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}nv-accordion-item .nv-accordion-item__content{background:var(--color-level-10-background)}nv-accordion-item .nv-accordion-item__content .nv-accordion-item__content-inner{padding:var(--spacing-4);color:var(--color-content-low-text);font-size:var(--font-size-md);font-style:normal;font-weight:500;line-height:var(--line-height-base);}nv-accordion-item.is-disabled{opacity:var(--opacity-disabled);pointer-events:none}nv-accordion-item.is-open .nv-accordion-item__header{border-bottom:var(--spacing-px) solid var(--color-content-low-border)}";
5181
+ const nvAccordionItemCss = "nv-accordion-item{display:block;border-bottom:var(--spacing-px) solid var(--color-content-low-border)}nv-accordion-item:last-child{border-bottom:none}nv-accordion-item .nv-accordion-item__header{cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4)}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__chevron{margin-left:var(--spacing-2);flex-shrink:0}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__header-content{display:flex;flex-direction:column;gap:var(--spacing-0-5);flex:1;min-width:0}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__title{color:var(--color-content-high-text);font-size:var(--font-size-lg);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--line-height-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}nv-accordion-item .nv-accordion-item__header .nv-accordion-item__subtitle{color:var(--color-content-low-text);font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-medium-emphasis);line-height:var(--line-height-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}nv-accordion-item .nv-accordion-item__content{background:var(--color-level-10-background)}nv-accordion-item .nv-accordion-item__content .nv-accordion-item__content-inner{padding:var(--spacing-4);color:var(--color-content-low-text);font-size:var(--font-size-md);font-style:normal;font-weight:500;line-height:var(--line-height-base);}nv-accordion-item.is-disabled{opacity:var(--opacity-disabled);pointer-events:none}nv-accordion-item.is-open .nv-accordion-item__header{border-bottom:var(--spacing-px) solid var(--color-content-low-border)}nv-accordion-item:last-child .nv-accordion-item__content{border-radius:0 0 calc(var(--radius-rounded-lg) - var(--spacing-px)) calc(var(--radius-rounded-lg) - var(--spacing-px))}";
4956
5182
  var NvAccordionItemStyle0 = nvAccordionItemCss;
4957
5183
 
4958
5184
  /**
@@ -4965,16 +5191,25 @@ class NvAccordionItem {
4965
5191
  constructor(hostRef) {
4966
5192
  registerInstance(this, hostRef);
4967
5193
  this.itemToggle = createEvent(this, "itemToggle", 7);
4968
- /** Open or closed */
5194
+ this.isToggling = false;
5195
+ /**
5196
+ * Open or closed
5197
+ */
4969
5198
  this.open = false;
4970
- /** Disables the item */
5199
+ /**
5200
+ * Disables the item
5201
+ */
4971
5202
  this.disabled = false;
4972
- /** Parent expansion mode (accordion or multi) */
5203
+ /**
5204
+ * Parent expansion mode (accordion or multi)
5205
+ */
4973
5206
  this.mode = 'accordion';
4974
5207
  //#endregion EVENTS
4975
5208
  /****************************************************************************/
4976
5209
  //#region STATE
4977
- /** Internal state for open/close rendering */
5210
+ /**
5211
+ * Internal state for open/close rendering
5212
+ */
4978
5213
  this.currentOpenState = false;
4979
5214
  /**
4980
5215
  * Controls if the panel has been initialized for animations
@@ -4995,7 +5230,7 @@ class NvAccordionItem {
4995
5230
  * @param {Event} e - Click event
4996
5231
  */
4997
5232
  this.handleIconClick = (e) => {
4998
- e.stopPropagation(); // Prevent header click from triggering
5233
+ e.stopPropagation();
4999
5234
  this.toggle();
5000
5235
  };
5001
5236
  /**
@@ -5003,8 +5238,10 @@ class NvAccordionItem {
5003
5238
  * @param {KeyboardEvent} e - Keyboard event
5004
5239
  */
5005
5240
  this.handleHeaderKeyDown = (e) => {
5006
- if (this.disabled)
5241
+ if (this.disabled) {
5242
+ console.warn('[handleHeaderKeyDown] Ignored (disabled)');
5007
5243
  return;
5244
+ }
5008
5245
  switch (e.key) {
5009
5246
  case 'Enter':
5010
5247
  case ' ':
@@ -5014,17 +5251,19 @@ class NvAccordionItem {
5014
5251
  case 'ArrowDown':
5015
5252
  e.preventDefault();
5016
5253
  if (!this.open) {
5254
+ this.isToggling = true;
5017
5255
  this.open = true;
5018
- this.itemToggle.emit(this.open);
5019
- this.updateVisibility(this.open);
5256
+ this.itemToggle.emit(true);
5257
+ this.isToggling = false;
5020
5258
  }
5021
5259
  break;
5022
5260
  case 'ArrowUp':
5023
5261
  e.preventDefault();
5024
5262
  if (this.open) {
5263
+ this.isToggling = true;
5025
5264
  this.open = false;
5026
- this.itemToggle.emit(this.open);
5027
- this.updateVisibility(this.open);
5265
+ this.itemToggle.emit(false);
5266
+ this.isToggling = false;
5028
5267
  }
5029
5268
  break;
5030
5269
  }
@@ -5034,12 +5273,23 @@ class NvAccordionItem {
5034
5273
  /****************************************************************************/
5035
5274
  //#region WATCHERS
5036
5275
  async onOpenChanged(newValue, oldValue) {
5037
- this.currentOpenState = newValue; // Synchronize internal state
5038
- // Skip initial render
5039
- if (oldValue === undefined) {
5276
+ if (this.disabled) {
5277
+ console.warn('[onOpenChanged] Item is disabled, forcing closed state');
5278
+ this.currentOpenState = false;
5279
+ this.open = false;
5040
5280
  return;
5041
5281
  }
5042
- await this.updateVisibility(newValue);
5282
+ this.currentOpenState = newValue;
5283
+ const isInitialRender = oldValue === undefined;
5284
+ if (!isInitialRender) {
5285
+ if (newValue === false && !this.isToggling) {
5286
+ this.itemToggle.emit(newValue);
5287
+ }
5288
+ else if (newValue && !this.isToggling) {
5289
+ this.itemToggle.emit(newValue);
5290
+ }
5291
+ await this.updateVisibility(newValue);
5292
+ }
5043
5293
  }
5044
5294
  //#endregion WATCHERS
5045
5295
  /****************************************************************************/
@@ -5049,18 +5299,18 @@ class NvAccordionItem {
5049
5299
  * @param {boolean} open - Whether the accordion item should be open
5050
5300
  */
5051
5301
  async updateVisibility(open) {
5052
- if (!this.contentRef)
5302
+ if (!this.contentRef) {
5303
+ console.error('[updateVisibility] No contentRef available');
5053
5304
  return;
5305
+ }
5054
5306
  this.isAnimating = true;
5055
5307
  const { collapse, expand } = useCollapse(this.contentRef, {
5056
5308
  duration: 200,
5057
5309
  });
5058
5310
  if (open) {
5059
- // Expand with animation
5060
5311
  await expand();
5061
5312
  }
5062
5313
  else {
5063
- // Collapse with animation
5064
5314
  await collapse();
5065
5315
  }
5066
5316
  this.isAnimating = false;
@@ -5069,19 +5319,24 @@ class NvAccordionItem {
5069
5319
  /****************************************************************************/
5070
5320
  //#region LIFECYCLE
5071
5321
  componentWillLoad() {
5072
- this.currentOpenState = this.open; // Initial synchronization
5322
+ this.currentOpenState = this.open;
5073
5323
  }
5074
5324
  componentDidLoad() {
5075
5325
  if (this.contentRef) {
5076
- const { setExpanded, setCollapsed } = useCollapse(this.contentRef);
5077
- if (this.open) {
5078
- // If open by default on initial load, set expanded state without animation
5079
- setExpanded();
5080
- }
5081
- else {
5082
- // If closed by default, set collapsed state without animation
5083
- setCollapsed();
5084
- }
5326
+ setTimeout(() => {
5327
+ const { setExpanded, setCollapsed } = useCollapse(this.contentRef, {
5328
+ duration: 200,
5329
+ });
5330
+ if (this.open) {
5331
+ setExpanded();
5332
+ this.currentOpenState = true;
5333
+ }
5334
+ else {
5335
+ setCollapsed();
5336
+ this.currentOpenState = false;
5337
+ }
5338
+ this.isInitialized = true;
5339
+ }, 0);
5085
5340
  }
5086
5341
  }
5087
5342
  disconnectedCallback() {
@@ -5097,10 +5352,14 @@ class NvAccordionItem {
5097
5352
  */
5098
5353
  async toggle() {
5099
5354
  if (!this.disabled && !this.isAnimating) {
5100
- this.open = !this.open;
5101
- this.itemToggle.emit(this.open);
5102
- // Force animation update directly instead of relying on watcher
5103
- await this.updateVisibility(this.open);
5355
+ this.isToggling = true;
5356
+ const newOpen = !this.open;
5357
+ this.open = newOpen;
5358
+ this.itemToggle.emit(newOpen);
5359
+ this.isToggling = false;
5360
+ }
5361
+ else {
5362
+ console.warn('[toggle] Ignored toggle (disabled or animating)');
5104
5363
  }
5105
5364
  }
5106
5365
  /**
@@ -5108,18 +5367,19 @@ class NvAccordionItem {
5108
5367
  * @returns {string} The icon name to display in the chevron button
5109
5368
  */
5110
5369
  get chevronIconName() {
5111
- return this.open ? 'chevron-top' : 'chevron-down';
5370
+ const name = this.open ? 'chevron-top' : 'chevron-down';
5371
+ return name;
5112
5372
  }
5113
5373
  //#endregion METHODS
5114
5374
  /****************************************************************************/
5115
5375
  //#region RENDER
5116
5376
  render() {
5117
- return (hAsync(Host, { key: 'dfb8ca76f8ac40c938323be1ccba4353ea33a616', class: {
5377
+ return (hAsync(Host, { key: '4d5ae52ba3e8cac86316d790f95afd39f6c73019', class: {
5118
5378
  'nv-accordion-item': true,
5119
- 'is-open': this.open,
5379
+ 'is-open': this.currentOpenState,
5120
5380
  'is-disabled': this.disabled,
5121
5381
  'is-animating': this.isAnimating,
5122
- }, role: "listitem", "aria-expanded": this.open ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, hAsync("div", { key: '258efe0502a39d963a9e75c16285ee9cbc65cb9f', class: "nv-accordion-item__header", onClick: this.handleHeaderClick, "aria-controls": "content" }, hAsync("slot", { key: 'bb4dae743f06e3d41d1f7b8c17793b668df9347b', name: "header" }, hAsync("div", { key: 'f3142a81c6be776d95ab9292101b889db6e35805', class: "nv-accordion-item__header-content" }, this.itemTitle && (hAsync("span", { key: 'e897d8b4d414ba4e93b2853c152059579063335e', class: "nv-accordion-item__title" }, this.itemTitle)), this.subtitle && (hAsync("span", { key: 'b8e03ceb1ca0e4c0b0fe24398f0e1c592ac077ab', class: "nv-accordion-item__subtitle" }, this.subtitle)))), hAsync("nv-iconbutton", { key: '145718cd664f6b1015cf99ad3c72dbe80df1f54e', emphasis: "low", size: "sm", shape: "square", name: this.chevronIconName, tabindex: this.disabled ? -1 : 0, onClick: this.handleIconClick, onKeyDown: this.handleHeaderKeyDown, "aria-controls": "content", "aria-label": this.open ? 'Fermer la section' : 'Ouvrir la section' })), hAsync("div", { key: '667967ca20edaa1fc738188f42cfa8bf47bb080f', id: "content", class: "nv-accordion-item__content", ref: el => (this.contentRef = el) }, hAsync("div", { key: '1f66bac904a5992d5e6cd63852d5aec9bc602ed7', class: "nv-accordion-item__content-inner" }, hAsync("slot", { key: 'd7b5cf5c69daab242e7696e7432769905b3d4c72', name: "content" })))));
5382
+ }, role: "listitem", "aria-expanded": this.currentOpenState ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, hAsync("div", { key: '866562d2f3033189e6d5df8fa5576d2f1540959e', class: "nv-accordion-item__header", onClick: this.handleHeaderClick, "aria-controls": "content" }, hAsync("slot", { key: '36d2b14528c6bd6665ccfc94707d62dc406262d0', name: "header" }, hAsync("div", { key: 'c78c1e485d0128708db6fc5fb2b64c6c01e4ed0f', class: "nv-accordion-item__header-content" }, this.itemTitle && (hAsync("span", { key: '524cf377a4c89752eeed1933dbb8fd2343cd8830', class: "nv-accordion-item__title" }, this.itemTitle)), this.subtitle && (hAsync("span", { key: 'b8ee5edc3c798218348490fc43c458c45934ee83', class: "nv-accordion-item__subtitle" }, this.subtitle)))), hAsync("nv-iconbutton", { key: 'aa474788bb5551ca7b94261dca1ccb2e5aced3d3', emphasis: "low", size: "sm", shape: "square", name: this.chevronIconName, tabindex: this.disabled ? -1 : 0, onClick: this.handleIconClick, onKeyDown: this.handleHeaderKeyDown, "aria-controls": "content", "aria-label": this.currentOpenState ? 'Close the section' : 'Open the section' })), hAsync("div", { key: '3b49afd97cc797b165a8fa6753f564349735aad1', id: "content", class: "nv-accordion-item__content", ref: el => (this.contentRef = el) }, hAsync("div", { key: '955b5c7cef3259a2531ecc14eafb806a9d28c9a6', class: "nv-accordion-item__content-inner" }, hAsync("slot", { key: '56ff89e2041d425f520fe6e62975bbb7193653f2', name: "content" })))));
5123
5383
  }
5124
5384
  get el() { return getElement(this); }
5125
5385
  static get watchers() { return {
@@ -5193,6 +5453,11 @@ var ButtonType;
5193
5453
  ButtonType["Reset"] = "reset";
5194
5454
  ButtonType["Button"] = "button";
5195
5455
  })(ButtonType || (ButtonType = {}));
5456
+ var NotificationEmphasis;
5457
+ (function (NotificationEmphasis) {
5458
+ NotificationEmphasis["Medium"] = "medium";
5459
+ NotificationEmphasis["High"] = "high";
5460
+ })(NotificationEmphasis || (NotificationEmphasis = {}));
5196
5461
  var ToggleButtonEmphasis;
5197
5462
  (function (ToggleButtonEmphasis) {
5198
5463
  ToggleButtonEmphasis["High"] = "high";
@@ -5417,7 +5682,7 @@ const CUSTOM_MONTH_NAMES = {
5417
5682
  ],
5418
5683
  };
5419
5684
 
5420
- 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-right:calc(var(--alert-padding) + var(--icon-md) + var(--spacing-1));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}";
5685
+ 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-right:calc(var(--alert-padding) + var(--spacing-5) + var(--spacing-1));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}";
5421
5686
  var NvAlertStyle0 = nvAlertCss;
5422
5687
 
5423
5688
  /**
@@ -5528,8 +5793,8 @@ class NvAlert {
5528
5793
  this.toggleHiddenClass(hidden);
5529
5794
  return;
5530
5795
  }
5531
- const { fadeIn, fadeOut } = useFade(this.ref, { duration: 150 });
5532
- const { collapse, expand } = useCollapse(this.ref, { duration: 150 });
5796
+ const { fadeIn, fadeOut } = useFade(this.el, { duration: 150 });
5797
+ const { collapse, expand } = useCollapse(this.el, { duration: 250 });
5533
5798
  if (hidden) {
5534
5799
  await timeline(fadeOut, collapse).start();
5535
5800
  this.toggleHiddenClass(true);
@@ -5544,7 +5809,7 @@ class NvAlert {
5544
5809
  * @param {boolean} hidden - Whether to add or remove the hidden class
5545
5810
  */
5546
5811
  toggleHiddenClass(hidden) {
5547
- this.ref.classList.toggle('hidden', hidden);
5812
+ this.el.classList.toggle('hidden', hidden);
5548
5813
  }
5549
5814
  //#endregion METHODS
5550
5815
  /****************************************************************************/
@@ -5566,7 +5831,7 @@ class NvAlert {
5566
5831
  }
5567
5832
  }
5568
5833
  if (this.hidden) {
5569
- this.ref.classList.add('hidden');
5834
+ this.el.classList.add('hidden');
5570
5835
  }
5571
5836
  }
5572
5837
  //#endregion LIFECYCLE
@@ -5574,9 +5839,9 @@ class NvAlert {
5574
5839
  //#region RENDER
5575
5840
  render() {
5576
5841
  var _a;
5577
- return (hAsync(Host, { key: 'f0e75ac2c38aced1dcf76cb1d5f03becefbee71d', role: "alert", class: clsx('root', `feedback-${this.feedback}`) }, hAsync("nv-icon", { key: '19f7fcf452d62277ab436acd20c285f44fbaecd4', name: (_a = this.icon) !== null && _a !== void 0 ? _a : this.getDefaultIcon(), class: `icon-${this.feedback}`, size: "md" }), hAsync("div", { key: '8e656ffd0bce63bd33d92b97df21389af265e182', class: "content" }, this.heading && hAsync("p", { key: '0aa928e8ee8605d735f890bc67128563ce3ad379', class: "heading" }, this.heading), this.message && hAsync("p", { key: '690d9928646d25a636b2bb04eb65eee40c402f52', class: "message" }, this.message), hAsync("slot", { key: '86309f093688dbb81ff805f1c9137b200541e905' })), this.dismissible && (hAsync("button", { key: '387695ff1e23a7e289cf58c51042ccc561d451ad', class: "close", type: "button", onClick: this.handleDismiss }, hAsync("nv-icon", { key: '788b99b4c56fc8c936a67ac48d2db37fdcca7631', name: "x", size: "sm" })))));
5842
+ return (hAsync(Host, { key: '08bc48f1d9bba66505e46fb26b8400f185dcc716', role: "alert", class: clsx('root', `feedback-${this.feedback}`) }, hAsync("nv-icon", { key: 'b4846e6aee8cf6cfde913372b11675a3c0301fa3', name: (_a = this.icon) !== null && _a !== void 0 ? _a : this.getDefaultIcon(), class: `icon-${this.feedback}`, size: "md" }), hAsync("div", { key: '61edadca039963056bdf27914829286515269a4a', class: "content" }, this.heading && hAsync("p", { key: '25c0396ade2573a9f955302cfe52702fe5e4f531', class: "heading" }, this.heading), this.message && hAsync("p", { key: 'dbef6eac9028f5431bb9665ca5642af5278c20d7', class: "message" }, this.message), hAsync("slot", { key: '5aa607cb7c48783371887fd9126b247647e8b37c' })), this.dismissible && (hAsync("button", { key: 'e6be3501788f12fac97c162c0ed64c922acd4b22', class: "close", type: "button", onClick: this.handleDismiss }, hAsync("nv-icon", { key: 'f39c94a6cf82226eb77143bce7b4d74aff30c05a', name: "x", size: "sm" })))));
5578
5843
  }
5579
- get ref() { return getElement(this); }
5844
+ get el() { return getElement(this); }
5580
5845
  static get watchers() { return {
5581
5846
  "hidden": ["handleHiddenChange"]
5582
5847
  }; }
@@ -6650,12 +6915,12 @@ const DayCell = props => {
6650
6915
  * @returns {JSX.Element} JSX element representing the action buttons
6651
6916
  */
6652
6917
  const CalendarActions = props => {
6653
- const { onReset, onConfirm, useSlot = false } = props;
6918
+ const { onReset, onConfirm, cancelLabel = 'Cancel', primaryLabel = 'OK', useSlot = false, } = props;
6654
6919
  return (hAsync("div", { class: "datepicker-actions" }, useSlot ? (hAsync("slot", { name: "actions" },
6655
- hAsync("nv-button", { emphasis: "low", size: "xs", onClick: onReset }, "Cancel"),
6656
- hAsync("nv-button", { size: "xs", onClick: onConfirm }, "OK"))) : (hAsync("div", null,
6657
- hAsync("nv-button", { emphasis: "low", size: "xs", onClick: onReset }, "Cancel"),
6658
- hAsync("nv-button", { size: "xs", onClick: onConfirm }, "OK")))));
6920
+ hAsync("nv-button", { emphasis: "low", size: "xs", onClick: onReset }, cancelLabel),
6921
+ hAsync("nv-button", { size: "xs", onClick: onConfirm }, primaryLabel))) : (hAsync("div", { class: "actions-container" },
6922
+ hAsync("nv-button", { emphasis: "low", size: "xs", onClick: onReset }, cancelLabel),
6923
+ hAsync("nv-button", { size: "xs", onClick: onConfirm }, primaryLabel)))));
6659
6924
  };
6660
6925
 
6661
6926
  /**
@@ -6789,7 +7054,7 @@ const CalendarGrid = props => {
6789
7054
  }))));
6790
7055
  };
6791
7056
 
6792
- const nvCalendarCss = "nv-calendar{display:block}.datepicker-root{display:flex;justify-content:center;align-items:flex-start;width:auto}.datepicker-container{font-family:system-ui, sans-serif;display:flex;flex-direction:column;align-items:stretch;background:var(--components-calendar-background);border-radius:var(--calendar-radius);padding:var(--calendar-padding);box-shadow:0px var(--shadow-y-axis-md-1) var(--shadow-blur-md-1) var(--shadow-spread-md, 0) var(--shadow-color-opacity-0), 0px var(--shadow-y-axis-md-2) var(--shadow-blur-md-2) var(--shadow-spread-md, 0) var(--shadow-color-opacity-2);border:1px solid var(--components-calendar-border);width:auto;max-width:100%}.datepicker-container-single{max-width:300px}.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-left),.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-container-single:has(.shortcuts-placement-left),.datepicker-container-single:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-wrapper{display:flex;justify-content:center;align-items:flex-start;gap:var(--calendar-gap-x);width:auto;overflow-x:hidden}.datepicker-wrapper::-webkit-scrollbar{width:6px;height:6px}.datepicker-wrapper::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}.datepicker-wrapper::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}.datepicker-wrapper.single{justify-content:center}.calendar-container{display:flex;flex-direction:column;align-items:center;padding:var(--calendar-padding);width:auto;position:relative}.calendar-separator{width:1px;background:var(--components-calendar-border);height:auto;min-height:100%;margin:0 10px}.header{display:flex;justify-content:start;align-items:center;margin-bottom:var(--calendar-header-margin-bottom);width:100%}.header nv-iconbutton{width:var(--calendar-header-button-size);height:var(--calendar-header-button-size)}.nav-buttons{display:flex;gap:var(--spacing-0);margin-left:auto}.nav-left{order:-1}.date-controls{display:flex;gap:var(--spacing-1);align-items:center;min-height:34px;justify-content:center}.datepicker-container-single .date-controls{justify-content:flex-start}.datepicker-container:not(.datepicker-container-single) .date-controls{justify-content:start;flex-grow:1}.date-controls .month-select,.date-controls .year-input{background:transparent !important}.calendar-wrapper:nth-child(n+2) .datepicker-container{margin-left:42px}.calendar-grid{display:grid;grid-template-columns:auto 1fr;column-gap:var(--calendar-weeks-calendar-gap-x);position:relative}.calendar-grid.slide-left{animation:slideLeft 0.3s ease-out}.calendar-grid.slide-right{animation:slideRight 0.3s ease-out}.week-numbers{display:grid;grid-template-rows:var(--calendar-cell-size) repeat(6, var(--calendar-cell-size));background:var(--components-calendar-weeks-background);color:var(--components-calendar-weeks-text);border-radius:var(--calendar-weeks-radius);width:var(--calendar-weeks-size);row-gap:var(--calendar-grid-gap-y)}.week-numbers .clickable{cursor:pointer}.week-numbers .clickable:hover{background-color:var(--components-calendar-weeks-background-hover);color:var(--components-calendar-weeks-text-hover);border-radius:var(--calendar-radius)}.week-header,.week-number{display:grid;place-items:center;font-size:var(--calendar-cell-font-size)}.week-header{font-weight:700;color:var(--components-calendar-weeks-text)}.week-number{color:var(--components-calendar-cell-text)}.days-container{display:grid;grid-template-rows:auto 1fr;row-gap:var(--calendar-grid-gap-y)}.days-header{display:grid;grid-template-columns:repeat(7, var(--calendar-cell-size));height:var(--calendar-cell-size)}.day-header{display:grid;place-items:center;font-size:var(--calendar-cell-font-size);color:var(--components-calendar-cell-text)}.days-grid{display:grid;grid-template-columns:repeat(7, var(--calendar-cell-size));grid-template-rows:repeat(6, var(--calendar-cell-size));animation:fadeIn 0.2s ease-in;row-gap:var(--calendar-grid-gap-y);z-index:0}.day{display:grid;place-items:center;width:var(--calendar-cell-size);height:var(--calendar-cell-size);font-size:var(--calendar-cell-font-size);border-radius:var(--calendar-cell-radius);cursor:pointer;border:none;background:transparent;transition:all 0.2s ease;text-align:center;animation:scaleIn 0.2s ease-out}.day:hover:not(.disabled,.empty,.selected){background:var(--components-calendar-cell-background-hover);color:var(--components-calendar-cell-text-hover)}.day.selected,.day.selected:hover .day.is-today.selected,.day.is-today.selected:hover{background:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected) !important}.day.disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.day.is-empty{pointer-events:none;background-color:transparent;border-color:transparent}.day.day-blank{pointer-events:none;background-color:transparent;border-color:transparent}.day.outside-month{color:var(--components-calendar-cell-text);opacity:var(--opacity-disabled)}.day.outside-month.selected{opacity:1 !important;color:var(--components-calendar-cell-text-selected)}.day.outside-month.in-range{opacity:0.5 !important;background-color:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-in-range)}.day.outside-month.in-range:hover{opacity:0.7 !important;background-color:var(--components-calendar-cell-background-in-range)}.day.in-range{background:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-in-range);border-radius:0;position:relative}.day.range-start,.day.range-start:focus,.day.range-start:hover,.day.range-end,.day.range-end:focus,.day.range-end:hover{background-color:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected) !important}.day.range-start,.day.range-end,.day.range-start.is-today,.day.range-end.is-today{background:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected);position:relative;border-radius:var(--radius-rounded-full)}.day.range-start:hover,.day.range-end:hover,.day.range-start.is-today:hover,.day.range-end.is-today:hover{color:var(--components-calendar-cell-text-today)}.day.range-start:before,.day.range-end:before,.day.range-start.is-today:before,.day.range-end.is-today:before{content:\"\";position:absolute;bottom:0;left:0;right:0;top:0;z-index:-1;background-color:var(--components-calendar-cell-background-in-range);border-radius:var(--radius-rounded-full);width:auto;height:auto}.day.range-start:has(~.range-end):before,.day.range-start:has(+.in-range):before{border-top-right-radius:0;border-bottom-right-radius:0}.day.range-end:before{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.day.outside-month.range-start,.day.outside-month.range-end{opacity:1 !important;background:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected)}.day.is-today{font-weight:700;position:relative;color:var(--components-calendar-cell-text-today)}.day.is-today.range-start,.day.is-today.range-end{color:var(--components-calendar-cell-text-selected)}.day.is-today.range-start:hover,.day.is-today.range-end:hover{color:var(--components-calendar-cell-text-today)}.day.is-today::after{content:\"\";position:absolute;bottom:var(--spacing-1);left:50%;transform:translateX(-50%);width:var(--calendar-cell-dot-size);height:var(--calendar-cell-dot-size);background-color:currentColor;border-radius:50%}.day.is-today.selected::after{color:var(--components-calendar-cell-text-selected)}.day.is-today.selected::after::after{background-color:var(--components-calendar-cell-dot-selected)}.day.hover-range{background-color:var(--components-calendar-cell-background-hover)}.day.hover-blocked{background-color:var(--components-calendar-cell-background-hover)}.day.disabled.hover-blocked{background-color:transparent}.calendar-footer{display:flex;gap:var(--spacing-1);justify-content:flex-start;width:100%;flex-wrap:wrap}.footer-placement-left{justify-content:flex-start}.footer-placement-right{justify-content:flex-end}.footer-placement-center{justify-content:center}.datepicker-controls{display:flex;flex-direction:column;border-top:1px solid var(--components-calendar-border);padding:var(--calendar-controls-padding-top) var(--calendar-padding) var(--calendar-padding);gap:var(--calendar-grid-gap-y);margin-top:var(--calendar-controls-margin-top)}.datepicker-actions{display:flex;justify-content:flex-end;gap:var(--spacing-1);width:100%}.datepicker-actions slot-fb{display:contents !important}.calendar-footer+.datepicker-actions{margin-top:0}.shortcuts-placement-left,.shortcuts-placement-right{display:flex;flex-direction:column;gap:var(--spacing-1);margin-top:var(--spacing-4)}.shortcuts-placement-left{align-items:flex-end}.shortcuts-placement-right{align-items:flex-start}@keyframes slideLeft{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideRight{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}";
7057
+ const nvCalendarCss = "nv-calendar{display:block}.datepicker-root{display:flex;justify-content:center;align-items:flex-start;width:auto}.datepicker-container{font-family:system-ui, sans-serif;display:flex;flex-direction:column;align-items:stretch;background:var(--components-calendar-background);border-radius:var(--calendar-radius);padding:var(--calendar-padding);box-shadow:0px var(--shadow-y-axis-md-1) var(--shadow-blur-md-1) var(--shadow-spread-md, 0) var(--shadow-color-opacity-0), 0px var(--shadow-y-axis-md-2) var(--shadow-blur-md-2) var(--shadow-spread-md, 0) var(--shadow-color-opacity-2);border:1px solid var(--components-calendar-border);width:auto;max-width:100%}.datepicker-container-single{max-width:300px}.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-left),.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-container-single:has(.shortcuts-placement-left),.datepicker-container-single:has(.shortcuts-placement-right){max-width:410px !important}.datepicker-wrapper{display:flex;justify-content:center;align-items:flex-start;gap:var(--calendar-gap-x);width:auto;overflow-x:hidden}.datepicker-wrapper::-webkit-scrollbar{width:6px;height:6px}.datepicker-wrapper::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}.datepicker-wrapper::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}.datepicker-wrapper.single{justify-content:center}.calendar-container{display:flex;flex-direction:column;align-items:center;padding:var(--calendar-padding);width:auto;position:relative}.calendar-separator{width:1px;background:var(--components-calendar-border);height:auto;min-height:100%;margin:0 10px}.header{display:flex;justify-content:start;align-items:center;margin-bottom:var(--calendar-header-margin-bottom);width:100%}.header nv-iconbutton{width:var(--calendar-header-button-size);height:var(--calendar-header-button-size)}.nav-buttons{display:flex;gap:var(--spacing-0);margin-left:auto}.nav-left{order:-1}.date-controls{display:flex;gap:var(--spacing-1);align-items:center;min-height:34px;justify-content:center}.datepicker-container-single .date-controls{justify-content:flex-start}.datepicker-container:not(.datepicker-container-single) .date-controls{justify-content:start;flex-grow:1}.date-controls .month-select,.date-controls .year-input{background:transparent !important}.calendar-wrapper:nth-child(n+2) .datepicker-container{margin-left:42px}.calendar-grid{display:grid;grid-template-columns:auto 1fr;column-gap:var(--calendar-weeks-calendar-gap-x);position:relative}.calendar-grid.slide-left{animation:slideLeft 0.3s ease-out}.calendar-grid.slide-right{animation:slideRight 0.3s ease-out}.week-numbers{display:grid;grid-template-rows:var(--calendar-cell-size) repeat(6, var(--calendar-cell-size));background:var(--components-calendar-weeks-background);color:var(--components-calendar-weeks-text);border-radius:var(--calendar-weeks-radius);width:var(--calendar-weeks-size);row-gap:var(--calendar-grid-gap-y)}.week-numbers .clickable{cursor:pointer}.week-numbers .clickable:hover{background-color:var(--components-calendar-weeks-background-hover);color:var(--components-calendar-weeks-text-hover);border-radius:var(--calendar-radius)}.week-header,.week-number{display:grid;place-items:center;font-size:var(--calendar-cell-font-size)}.week-header{font-weight:700;color:var(--components-calendar-weeks-text)}.week-number{color:var(--components-calendar-cell-text)}.days-container{display:grid;grid-template-rows:auto 1fr;row-gap:var(--calendar-grid-gap-y)}.days-header{display:grid;grid-template-columns:repeat(7, var(--calendar-cell-size));height:var(--calendar-cell-size)}.day-header{display:grid;place-items:center;font-size:var(--calendar-cell-font-size);color:var(--components-calendar-cell-text)}.days-grid{display:grid;grid-template-columns:repeat(7, var(--calendar-cell-size));grid-template-rows:repeat(6, var(--calendar-cell-size));animation:fadeIn 0.2s ease-in;row-gap:var(--calendar-grid-gap-y);z-index:0}.day{display:grid;place-items:center;width:var(--calendar-cell-size);height:var(--calendar-cell-size);font-size:var(--calendar-cell-font-size);border-radius:var(--calendar-cell-radius);cursor:pointer;border:none;background:transparent;transition:all 0.2s ease;text-align:center;animation:scaleIn 0.2s ease-out}.day:hover:not(.disabled,.empty,.selected){background:var(--components-calendar-cell-background-hover);color:var(--components-calendar-cell-text-hover)}.day.selected,.day.selected:hover .day.is-today.selected,.day.is-today.selected:hover{background:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected) !important}.day.disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.day.is-empty{pointer-events:none;background-color:transparent;border-color:transparent}.day.day-blank{pointer-events:none;background-color:transparent;border-color:transparent}.day.outside-month{color:var(--components-calendar-cell-text);opacity:var(--opacity-disabled)}.day.outside-month.selected{opacity:1 !important;color:var(--components-calendar-cell-text-selected)}.day.outside-month.in-range{opacity:0.5 !important;background-color:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-in-range)}.day.outside-month.in-range:hover{opacity:0.7 !important;background-color:var(--components-calendar-cell-background-in-range)}.day.in-range{background:var(--components-calendar-cell-background-in-range);color:var(--components-calendar-cell-text-in-range);border-radius:0;position:relative}.day.range-start,.day.range-start:focus,.day.range-start:hover,.day.range-end,.day.range-end:focus,.day.range-end:hover{background-color:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected) !important}.day.range-start,.day.range-end,.day.range-start.is-today,.day.range-end.is-today{background:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected);position:relative;border-radius:var(--radius-rounded-full)}.day.range-start:hover,.day.range-end:hover,.day.range-start.is-today:hover,.day.range-end.is-today:hover{color:var(--components-calendar-cell-text-today)}.day.range-start:before,.day.range-end:before,.day.range-start.is-today:before,.day.range-end.is-today:before{content:\"\";position:absolute;bottom:0;left:0;right:0;top:0;z-index:-1;background-color:var(--components-calendar-cell-background-in-range);border-radius:var(--radius-rounded-full);width:auto;height:auto}.day.range-start:has(~.range-end):before,.day.range-start:has(+.in-range):before{border-top-right-radius:0;border-bottom-right-radius:0}.day.range-end:before{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.day.outside-month.range-start,.day.outside-month.range-end{opacity:1 !important;background:var(--components-calendar-cell-background-selected) !important;color:var(--components-calendar-cell-text-selected)}.day.is-today{font-weight:700;position:relative;color:var(--components-calendar-cell-text-today)}.day.is-today.range-start,.day.is-today.range-end{color:var(--components-calendar-cell-text-selected)}.day.is-today.range-start:hover,.day.is-today.range-end:hover{color:var(--components-calendar-cell-text-today)}.day.is-today::after{content:\"\";position:absolute;bottom:var(--spacing-1);left:50%;transform:translateX(-50%);width:var(--calendar-cell-dot-size);height:var(--calendar-cell-dot-size);background-color:currentColor;border-radius:50%}.day.is-today.selected::after{color:var(--components-calendar-cell-text-selected)}.day.is-today.selected::after::after{background-color:var(--components-calendar-cell-dot-selected)}.day.hover-range{background-color:var(--components-calendar-cell-background-hover)}.day.hover-blocked{background-color:var(--components-calendar-cell-background-hover)}.day.disabled.hover-blocked{background-color:transparent}.calendar-footer{display:flex;gap:var(--spacing-1);justify-content:flex-start;width:100%;flex-wrap:wrap}.footer-placement-left{justify-content:flex-start}.footer-placement-right{justify-content:flex-end}.footer-placement-center{justify-content:center}.datepicker-controls{display:flex;flex-direction:column;border-top:1px solid var(--components-calendar-border);padding:var(--calendar-controls-padding-top) var(--calendar-padding) var(--calendar-padding);gap:var(--calendar-grid-gap-y);margin-top:var(--calendar-controls-margin-top)}.datepicker-actions{display:flex;justify-content:flex-end;gap:var(--spacing-1);width:100%}.datepicker-actions slot-fb{display:contents !important}.datepicker-actions .actions-container{display:flex;gap:var(--spacing-1)}.calendar-footer+.datepicker-actions{margin-top:0}.shortcuts-placement-left,.shortcuts-placement-right{display:flex;flex-direction:column;gap:var(--spacing-1);margin-top:var(--spacing-4)}.shortcuts-placement-left{align-items:flex-end}.shortcuts-placement-right{align-items:flex-start}@keyframes slideLeft{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideRight{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}";
6793
7058
  var NvCalendarStyle0 = nvCalendarCss;
6794
7059
 
6795
7060
  /**
@@ -6849,6 +7114,10 @@ class NvCalendar {
6849
7114
  * Show action buttons
6850
7115
  */
6851
7116
  this.showActions = false;
7117
+ /** Sets the label for the cancel button in actions. */
7118
+ this.cancelLabel = 'Cancel';
7119
+ /** Sets the label for the primary (OK) button in actions. */
7120
+ this.primaryLabel = 'OK';
6852
7121
  /** Cache for parsed disabled dates */
6853
7122
  this.parsedDisabledDates = [];
6854
7123
  /** Flag to indicate a user click for selection */
@@ -7503,7 +7772,7 @@ class NvCalendar {
7503
7772
  * @slot actions - Child content of the component.
7504
7773
  */
7505
7774
  this.renderActions = () => {
7506
- return (hAsync("div", { class: "datepicker-actions" }, hAsync("slot", { name: "actions" }, hAsync(CalendarActions, { onReset: this.resetSelection, onConfirm: this.confirmSelection, useSlot: false }))));
7775
+ return (hAsync("div", { class: "datepicker-actions" }, hAsync("slot", { name: "actions" }, hAsync(CalendarActions, { onReset: this.resetSelection, onConfirm: this.confirmSelection, cancelLabel: this.cancelLabel, primaryLabel: this.primaryLabel, useSlot: false }))));
7507
7776
  };
7508
7777
  }
7509
7778
  //#endregion EVENTS
@@ -7703,8 +7972,8 @@ class NvCalendar {
7703
7972
  * @slot default - Child content of the component.
7704
7973
  */
7705
7974
  render() {
7706
- return (hAsync(Host, { key: '15aa3c2afb51ea1fbd16de597889d687fb8d1982' }, hAsync("div", { key: '6492b58cb2b5c9bb7fd6c40e8f37e9c2142b5827', class: "datepicker-root" }, hAsync("div", { key: '3cb216c3af4900b48c2dcd09a0a0034c7ebf622d', class: `datepicker-container ${this.numberOfCalendars === 1 ? 'datepicker-container-single' : ''}` }, hAsync("div", { key: '0663841721d5db871e7ede0ec396affa560ea99d', class: `datepicker-wrapper ${this.numberOfCalendars === 1 ? 'single' : ''}` }, this.shortcutsPlacement === 'left' && this.renderShortcuts(), Array.from({ length: this.numberOfCalendars }, (_, index) => this.renderCalendar(index, index)), this.shortcutsPlacement === 'right' && this.renderShortcuts()), ((this.hasShortcuts && this.shortcutsPlacement === 'bottom') ||
7707
- this.hasActions) && (hAsync("div", { key: '0a17a627cb1e4a4cb2b91aa104403b00d055bce5', class: "datepicker-controls" }, this.shortcutsPlacement === 'bottom' && this.renderShortcuts(), this.hasActions && this.renderActions())))), hAsync("slot", { key: '3104795c8cc9c81a6aca7e426a145e3966a4361e' })));
7975
+ return (hAsync(Host, { key: '9856eac375fde00aa98f18766e52673ac00fbf0d' }, hAsync("div", { key: 'c25e3fc04ed553e086116a40aff0c302c1cbb75b', class: "datepicker-root" }, hAsync("div", { key: 'b32891731ba9f84d1e5ce2a00e4c48d243478816', class: `datepicker-container ${this.numberOfCalendars === 1 ? 'datepicker-container-single' : ''}` }, hAsync("div", { key: 'd051841a48835b7d1637aea05071a4e8ae0cc0aa', class: `datepicker-wrapper ${this.numberOfCalendars === 1 ? 'single' : ''}` }, this.shortcutsPlacement === 'left' && this.renderShortcuts(), Array.from({ length: this.numberOfCalendars }, (_, index) => this.renderCalendar(index, index)), this.shortcutsPlacement === 'right' && this.renderShortcuts()), ((this.hasShortcuts && this.shortcutsPlacement === 'bottom') ||
7976
+ this.hasActions) && (hAsync("div", { key: 'e2f7beb10f042d7694f02453a6d181ba37fa607c', class: "datepicker-controls" }, this.shortcutsPlacement === 'bottom' && this.renderShortcuts(), this.hasActions && this.renderActions())))), hAsync("slot", { key: '77d2bd14bc703b825b2b77c67c99e364e2a58c88' })));
7708
7977
  }
7709
7978
  get el() { return getElement(this); }
7710
7979
  static get watchers() { return {
@@ -7734,6 +8003,8 @@ class NvCalendar {
7734
8003
  "showActions": [516, "show-actions"],
7735
8004
  "shortcuts": [16],
7736
8005
  "showWeekNumbers": [516, "show-week-numbers"],
8006
+ "cancelLabel": [513, "cancel-label"],
8007
+ "primaryLabel": [513, "primary-label"],
7737
8008
  "currentDate": [32],
7738
8009
  "selectedDate": [32],
7739
8010
  "startDate": [32],
@@ -7744,7 +8015,7 @@ class NvCalendar {
7744
8015
  },
7745
8016
  "$listeners$": undefined,
7746
8017
  "$lazyBundleId$": "-",
7747
- "$attrsToReflect$": [["firstDayOfWeek", "first-day-of-week"], ["numberOfCalendars", "number-of-calendars"], ["value", "value"], ["singleValue", "single-value"], ["min", "min"], ["max", "max"], ["locale", "locale"], ["dateFormat", "date-format"], ["shortcutsPlacement", "shortcuts-placement"], ["selectionType", "selection-type"], ["showActions", "show-actions"], ["showWeekNumbers", "show-week-numbers"]]
8018
+ "$attrsToReflect$": [["firstDayOfWeek", "first-day-of-week"], ["numberOfCalendars", "number-of-calendars"], ["value", "value"], ["singleValue", "single-value"], ["min", "min"], ["max", "max"], ["locale", "locale"], ["dateFormat", "date-format"], ["shortcutsPlacement", "shortcuts-placement"], ["selectionType", "selection-type"], ["showActions", "show-actions"], ["showWeekNumbers", "show-week-numbers"], ["cancelLabel", "cancel-label"], ["primaryLabel", "primary-label"]]
7748
8019
  }; }
7749
8020
  }
7750
8021
 
@@ -13311,10 +13582,6 @@ class NvDialogfooter {
13311
13582
  * Sets the label for the primary button.
13312
13583
  */
13313
13584
  this.primaryLabel = 'Primary';
13314
- /**
13315
- * Sets the type of the primary button.
13316
- */
13317
- this.primaryButtonType = ButtonType.Button;
13318
13585
  //#endregion EVENTS
13319
13586
  /****************************************************************************/
13320
13587
  //#region METHODS
@@ -13345,11 +13612,18 @@ class NvDialogfooter {
13345
13612
  !node.hasAttribute('slot'));
13346
13613
  });
13347
13614
  }
13615
+ componentDidLoad() {
13616
+ // Set the default button type based on the form property
13617
+ this.primaryButtonType =
13618
+ this.primaryButtonType || this.form
13619
+ ? ButtonType.Submit
13620
+ : ButtonType.Button;
13621
+ }
13348
13622
  //#endregion LIFECYCLE
13349
13623
  /****************************************************************************/
13350
13624
  //#region RENDER
13351
13625
  render() {
13352
- return (hAsync(Host, { key: '313836d5d0bc1704325aa200f0ed115bf3e63e7d' }, !this.hasSlot ? (hAsync(Fragment, null, !this.undismissable && (hAsync("nv-button", { onClick: this.handleCancel, emphasis: "low", size: "sm" }, this.cancelLabel)), hAsync("nv-button", { onClick: this.handlePrimary, disabled: this.disabled, danger: this.danger, size: "sm", emphasis: "high", form: this.form, type: this.primaryButtonType }, this.leadingIcon && (hAsync("nv-icon", { slot: "leading-icon", name: this.leadingIcon, size: "sm" })), this.primaryLabel, this.trailingIcon && (hAsync("nv-icon", { slot: "trailing-icon", name: this.trailingIcon, size: "sm" }))))) : (hAsync("slot", null))));
13626
+ return (hAsync(Host, { key: '0868c3af73f89219eee7c006b4ddca47c6da29b0' }, !this.hasSlot ? (hAsync(Fragment, null, !this.undismissable && (hAsync("nv-button", { onClick: this.handleCancel, emphasis: "low", size: "sm" }, this.cancelLabel)), hAsync("nv-button", { onClick: this.handlePrimary, disabled: this.disabled, danger: this.danger, size: "sm", emphasis: "high", form: this.form, type: this.primaryButtonType }, this.leadingIcon && (hAsync("nv-icon", { slot: "leading-icon", name: this.leadingIcon, size: "sm" })), this.primaryLabel, this.trailingIcon && (hAsync("nv-icon", { slot: "trailing-icon", name: this.trailingIcon, size: "sm" }))))) : (hAsync("slot", null))));
13353
13627
  }
13354
13628
  static get formAssociated() { return true; }
13355
13629
  get el() { return getElement(this); }
@@ -13365,7 +13639,7 @@ class NvDialogfooter {
13365
13639
  "danger": [516],
13366
13640
  "cancelLabel": [513, "cancel-label"],
13367
13641
  "primaryLabel": [513, "primary-label"],
13368
- "primaryButtonType": [513, "primary-button-type"],
13642
+ "primaryButtonType": [1537, "primary-button-type"],
13369
13643
  "form": [513]
13370
13644
  },
13371
13645
  "$listeners$": undefined,
@@ -18984,7 +19258,6 @@ class NvFieldmultiselect {
18984
19258
  * Handle badge close for options mode.
18985
19259
  */
18986
19260
  this.handleBadgeCloseOptions = () => {
18987
- console.info('handleBadgeCloseOptions:', this.value);
18988
19261
  this.value = [];
18989
19262
  this.valueChanged.emit(this.value);
18990
19263
  // Uncheck all elements
@@ -19002,7 +19275,6 @@ class NvFieldmultiselect {
19002
19275
  * Handle badge close for slots mode.
19003
19276
  */
19004
19277
  this.handleBadgeCloseSlots = () => {
19005
- console.info('handleBadgeCloseSlots:', this.value);
19006
19278
  this.value = [];
19007
19279
  this.valueChanged.emit(this.value);
19008
19280
  // Uncheck all elements
@@ -19211,7 +19483,6 @@ class NvFieldmultiselect {
19211
19483
  try {
19212
19484
  // Get visible and enabled option values from DOM
19213
19485
  const visibleOptionValues = this.getVisibleEnabledOptionItems();
19214
- console.info('[SelectAll][Options] toggleSelectAllOptions called. selectAll:', selectAll, 'visibleOptionValues:', visibleOptionValues, 'Current value:', this.value);
19215
19486
  if (selectAll) {
19216
19487
  // Select all visible options - merge with existing selections
19217
19488
  this.value = [...new Set([...this.value, ...visibleOptionValues])];
@@ -19220,7 +19491,6 @@ class NvFieldmultiselect {
19220
19491
  // Deselect only the visible options, keep others that might be filtered out
19221
19492
  this.value = this.value.filter(val => !visibleOptionValues.includes(val));
19222
19493
  }
19223
- console.info('[SelectAll][Options] New value after toggle:', this.value);
19224
19494
  // Emit the change event
19225
19495
  this.valueChanged.emit(this.value);
19226
19496
  // Synchronize child components
@@ -19246,7 +19516,6 @@ class NvFieldmultiselect {
19246
19516
  try {
19247
19517
  // Get visible and enabled items
19248
19518
  const items = this.getVisibleEnabledSlotItems();
19249
- console.info('[SelectAll][Slots] toggleSelectAllSlots called. selectAll:', selectAll, 'visible slot items:', items.map(item => item.getAttribute('value') || item.getAttribute('label')), 'Current value:', this.value);
19250
19519
  if (selectAll) {
19251
19520
  // Select all visible items
19252
19521
  const allActiveValues = items
@@ -19261,7 +19530,6 @@ class NvFieldmultiselect {
19261
19530
  .filter(value => value !== '');
19262
19531
  this.value = this.value.filter(val => !visibleValues.includes(val));
19263
19532
  }
19264
- console.info('[SelectAll][Slots] New value after toggle:', this.value);
19265
19533
  // Emit the change event
19266
19534
  this.valueChanged.emit(this.value);
19267
19535
  // Force synchronization with a small delay to ensure DOM is updated
@@ -19284,15 +19552,12 @@ class NvFieldmultiselect {
19284
19552
  this.handleSelectAllCheckboxOptionsClick = (event) => {
19285
19553
  event.stopPropagation();
19286
19554
  event.preventDefault();
19287
- console.info('[handleSelectAllCheckboxOptionsClick] event:', event);
19288
19555
  const currentState = this.getSelectAllCheckboxStateOptions();
19289
- console.info('[SelectAll][Options] Checkbox clicked. Current state:', currentState, 'Current value:', this.value);
19290
19556
  // Logic to handle the indeterminate state
19291
19557
  // - unchecked → select all
19292
19558
  // - indeterminate → select all (clicking on indeterminate will change to checked)
19293
19559
  // - checked → deselect all
19294
19560
  const shouldSelectAll = currentState === 'unchecked' || currentState === 'indeterminate';
19295
- console.info('[SelectAll][Options] shouldSelectAll:', shouldSelectAll);
19296
19561
  this.toggleSelectAllOptions(shouldSelectAll);
19297
19562
  };
19298
19563
  /**
@@ -19302,15 +19567,12 @@ class NvFieldmultiselect {
19302
19567
  this.handleSelectAllCheckboxSlotsClick = (event) => {
19303
19568
  event.stopPropagation();
19304
19569
  event.preventDefault();
19305
- console.info('[handleSelectAllCheckboxSlotsClick] event:', event);
19306
19570
  const currentState = this.getSelectAllCheckboxStateSlots();
19307
- console.info('[SelectAll][Slots] Checkbox clicked. Current state:', currentState, 'Current value:', this.value);
19308
19571
  // Logic to handle the indeterminate state
19309
19572
  // - unchecked → select all
19310
19573
  // - indeterminate → select all (clicking on indeterminate will change to checked)
19311
19574
  // - checked → deselect all
19312
19575
  const shouldSelectAll = currentState === 'unchecked' || currentState === 'indeterminate';
19313
- console.info('[SelectAll][Slots] shouldSelectAll:', shouldSelectAll);
19314
19576
  this.toggleSelectAllSlots(shouldSelectAll);
19315
19577
  };
19316
19578
  //#endregion METHODS
@@ -19353,8 +19615,6 @@ class NvFieldmultiselect {
19353
19615
  /****************************************************************************/
19354
19616
  //#region WATCHERS
19355
19617
  handleOptionsChange(newValue) {
19356
- console.info('[Watch:options] newValue:', newValue);
19357
- console.info('[Watch:options] current value before update:', this.value);
19358
19618
  if (!newValue)
19359
19619
  return;
19360
19620
  // If the parent has set a value prop, use it. Otherwise, derive from checked options.
@@ -19363,22 +19623,18 @@ class NvFieldmultiselect {
19363
19623
  this.value = newValue
19364
19624
  .filter(option => option.checked)
19365
19625
  .map(option => option.value);
19366
- console.info('[Watch:options] updated value from checked options:', this.value);
19367
19626
  }
19368
19627
  else {
19369
19628
  // If value is set, ensure checked states in options match value
19370
19629
  newValue.forEach(option => {
19371
19630
  option.checked = this.value.includes(option.value);
19372
19631
  });
19373
- console.info('[Watch:options] options checked state synced to value:', newValue);
19374
19632
  }
19375
19633
  this.reorderOptionsContent();
19376
19634
  }
19377
19635
  watchValueHandler() {
19378
- console.info('[Watch:value] Value changed:', this.value, 'isBulkOperation:', this.isBulkOperation);
19379
19636
  // Skip processing during bulk operations
19380
19637
  if (this.isBulkOperation) {
19381
- console.info('[Watch:value] Skipping syncChildComponents and options update due to bulk operation');
19382
19638
  return;
19383
19639
  }
19384
19640
  // Synchronize child components when value changes programmatically
@@ -19427,11 +19683,9 @@ class NvFieldmultiselect {
19427
19683
  handleItemChecked(event) {
19428
19684
  if (this.disabled || this.readonly || this.isBulkOperation) {
19429
19685
  // Skip processing itemChecked events during bulk operations
19430
- console.info('[Event:itemChecked] Skipped due to bulk operation or disabled/readonly', event.detail);
19431
19686
  return;
19432
19687
  }
19433
19688
  const { value, checked } = event.detail;
19434
- console.info('[Event:itemChecked] value:', value, 'checked:', checked, 'current value:', this.value);
19435
19689
  if (value !== undefined && value !== null) {
19436
19690
  const newValue = [...this.value];
19437
19691
  const valueIndex = newValue.indexOf(value);
@@ -19444,7 +19698,6 @@ class NvFieldmultiselect {
19444
19698
  newValue.splice(valueIndex, 1);
19445
19699
  hasChanged = true;
19446
19700
  }
19447
- console.info('[Event:itemChecked] newValue after update:', newValue);
19448
19701
  if (hasChanged) {
19449
19702
  this.value = newValue;
19450
19703
  this.valueChanged.emit(this.value);
@@ -19478,7 +19731,6 @@ class NvFieldmultiselect {
19478
19731
  * Subscribe to click outside event.
19479
19732
  */
19480
19733
  connectedCallback() {
19481
- console.info('[Lifecycle] connectedCallback - value:', this.value);
19482
19734
  // Bind once and reuse the same reference for add/remove to avoid leaks
19483
19735
  if (!this._boundHandleClickOutside) {
19484
19736
  this._boundHandleClickOutside = this.handleClickOutside.bind(this);
@@ -19490,7 +19742,6 @@ class NvFieldmultiselect {
19490
19742
  */
19491
19743
  componentWillLoad() {
19492
19744
  var _a;
19493
- console.info('[Lifecycle] componentWillLoad - value:', this.value, 'options:', this.options);
19494
19745
  // Don't call handleOptionsChange if we are in slots mode
19495
19746
  if (this.options) {
19496
19747
  this.handleOptionsChange(this.options);
@@ -19524,7 +19775,6 @@ class NvFieldmultiselect {
19524
19775
  * Force reorder if options mode in componentDidLoad because of the initial render not trigger @watch
19525
19776
  */
19526
19777
  componentDidLoad() {
19527
- console.info('[Lifecycle] componentDidLoad - value:', this.value, 'options:', this.options);
19528
19778
  if (this.options) {
19529
19779
  this.handleOptionsChange(this.options);
19530
19780
  }
@@ -19540,7 +19790,6 @@ class NvFieldmultiselect {
19540
19790
  * Unsubscribe from click outside event.
19541
19791
  */
19542
19792
  disconnectedCallback() {
19543
- console.info('[Lifecycle] disconnectedCallback - value:', this.value);
19544
19793
  if (this._boundHandleClickOutside) {
19545
19794
  document.removeEventListener('click', this._boundHandleClickOutside);
19546
19795
  }
@@ -19585,7 +19834,6 @@ class NvFieldmultiselect {
19585
19834
  * @returns {string[]} The selected values.
19586
19835
  */
19587
19836
  async getSelectedValues() {
19588
- console.info('getSelectedValues:', this.value);
19589
19837
  return this.value;
19590
19838
  }
19591
19839
  /**
@@ -20066,12 +20314,10 @@ class NvFieldmultiselect {
20066
20314
  return;
20067
20315
  }
20068
20316
  const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
20069
- console.info('[syncChildComponents] value:', this.value);
20070
20317
  items.forEach(item => {
20071
20318
  // Get the effective value: use explicit value if present, otherwise use label
20072
20319
  const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
20073
20320
  const shouldBeChecked = this.value.includes(itemValue);
20074
- console.info('[syncChildComponents] itemValue:', itemValue, 'shouldBeChecked:', shouldBeChecked, 'item.checked(before):', item.checked);
20075
20321
  // Only update if the checked state differs to avoid triggering unnecessary events
20076
20322
  if (item.checked !== shouldBeChecked) {
20077
20323
  // Set attribute and property, but avoid triggering itemChecked during bulk
@@ -20090,7 +20336,6 @@ class NvFieldmultiselect {
20090
20336
  item.checked = shouldBeChecked;
20091
20337
  }
20092
20338
  }
20093
- console.info('[syncChildComponents] itemValue:', itemValue, 'item.checked(after):', item.checked);
20094
20339
  });
20095
20340
  }
20096
20341
  /**
@@ -20188,7 +20433,6 @@ class NvFieldmultiselect {
20188
20433
  .map(item => item.getAttribute('value') || item.getAttribute('label') || '');
20189
20434
  // Combine with current this.value (set by code), ensuring uniqueness
20190
20435
  this.value = Array.from(new Set([...(this.value || []), ...checkedValues]));
20191
- console.info('[initializeValueFromSlots] checkedValues:', checkedValues, 'combined value:', this.value);
20192
20436
  }
20193
20437
  /**
20194
20438
  * Renders description and error description sections
@@ -20335,7 +20579,7 @@ class NvFieldnumber {
20335
20579
  //#region METHODS
20336
20580
  this.handleInput = (event) => {
20337
20581
  const input = event.target;
20338
- this.value = Number(input.value);
20582
+ this.value = input.valueAsNumber;
20339
20583
  };
20340
20584
  this.handleInputContainerClick = () => {
20341
20585
  this.inputElement.focus();
@@ -21305,17 +21549,24 @@ const FieldInput = props => {
21305
21549
  else {
21306
21550
  inputName = name || '';
21307
21551
  }
21308
- // If hasField is false, only the containers are visible, not the input fields
21309
- const containerClass = hasField
21310
- ? 'input-container'
21311
- : 'input-container hidden-input';
21312
- return hasField ? (hAsync("div", { class: containerClass },
21313
- hAsync("nv-fieldnumber", Object.assign({ id: inputId, value: fieldValue, min: min, max: max, step: step, disabled: disabled, readonly: readonly, name: inputName }, dataAttrs, { onInput: onInput }),
21552
+ const handleValueChanged = (event) => {
21553
+ event.stopPropagation();
21554
+ const newValue = event.detail;
21555
+ if (isNaN(newValue)) {
21556
+ return;
21557
+ }
21558
+ onInput({
21559
+ value: newValue,
21560
+ index,
21561
+ });
21562
+ };
21563
+ return hasField ? (hAsync("div", { class: clsx(!hasField && 'hidden-input') },
21564
+ hAsync("nv-fieldnumber", Object.assign({ id: inputId, value: fieldValue, min: min, max: max, step: step, disabled: disabled, readonly: readonly, name: inputName }, dataAttrs, { onInput: e => e.stopPropagation(), onValueChanged: handleValueChanged }),
21314
21565
  labelBeforeValue && (hAsync("span", { class: "label-before", slot: "leading-input" }, labelBeforeValue)),
21315
21566
  labelAfterValue && (hAsync("span", { class: "label-after", slot: "trailing-input" }, labelAfterValue))))) : (hAsync("input", { id: inputId, type: "hidden", value: fieldValue, disabled: disabled, readonly: readonly, name: inputName }));
21316
21567
  };
21317
21568
 
21318
- const nvFieldsliderCss = "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-fieldslider{--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-fieldslider .slider-container{width:100%;display:flex;flex-direction:row;align-items:center;gap:var(--form-gap-x)}nv-fieldslider .slider-container .track-container{position:relative;flex:1;height:calc(var(--slider-handler-size-min) + 0.25rem);padding:calc(var(--slider-handler-size-min) / 2) 0}nv-fieldslider .slider-container .track-container .track{position:relative;height:var(--slider-track-height);background:var(--components-slider-track-background);border-radius:var(--slider-track-radius);cursor:pointer}nv-fieldslider .slider-container .track-container .track .track-range{position:absolute;top:0;height:var(--slider-track-height);background:var(--components-slider-track-filled-default);border-radius:var(--slider-track-radius);pointer-events:none}nv-fieldslider .slider-container .track-container .track .thumb{position:absolute;top:50%;width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);background:#ffffff;border:var(--slider-handler-stroke) solid var(--components-slider-track-filled-default);border-radius:50%;transform:translate(-50%, -50%);z-index:1;cursor:grab;transition:width 0.2s, height 0.2s, box-shadow 0.2s, background-color 0.2s}nv-fieldslider .slider-container .track-container .track .thumb:hover{width:var(--slider-handler-size-max);height:var(--slider-handler-size-max);border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container .track .thumb:focus{width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);border-color:var(--components-slider-track-filled-focus);outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1);transition:outline;background:var(--components-slider-handler-background-focus)}nv-fieldslider .slider-container .track-container .track .thumb:active{cursor:grabbing;background:var(--components-slider-handler-background-hover)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip{position:absolute;top:25px;left:50%;background-color:var(--components-tooltip-background);color:var(--components-tooltip-text);padding:5px;border-radius:var(--tooltip-radius);font-size:var(--tooltip-font-size);z-index:10;pointer-events:none;user-select:none;opacity:0;transition:opacity 0.3s ease-in-out;transform:translateX(-50%)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip:after{content:\"\";background:var(--components-tooltip-background);box-shadow:none;border:none;position:absolute;border-bottom-color:transparent;border-right-color:transparent;width:6px;height:6px;transform:rotate(45deg);border-radius:1px;top:-3px;left:50%;margin-left:-3px}nv-fieldslider .slider-container .track-container .track .thumb:hover .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:active .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:focus .thumb-tooltip{opacity:1}nv-fieldslider .slider-container .track-container .track-ticks{position:relative;height:1rem;margin-top:0.25rem}nv-fieldslider .slider-container .track-container .track-ticks .track-tick{position:absolute;top:0;width:var(--slider-tick-height);height:var(--slider-tick-height);background:var(--components-form-field-border-default);border-radius:50%;transform:translate(-50%, 0);pointer-events:none}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:first-of-type{transform:translate(0, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:last-of-type{transform:translate(-100%, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{position:absolute;top:calc(var(--slider-tick-height) + 0.25rem);left:50%;color:var(--components-form-field-border-default);transform:translateX(-50%);white-space:nowrap}.track-tick-first nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:0;transform:translateX(0)}.track-tick-last nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:100%;transform:translateX(-100%)}nv-fieldslider .slider-container .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;width:90px;flex-grow:unset}nv-fieldslider .slider-container .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldslider .slider-container .input-container:focus-within,nv-fieldslider .slider-container .input-container:focus-within:hover,nv-fieldslider .slider-container .input-container:focus,nv-fieldslider .slider-container .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-fieldslider .slider-container .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-fieldslider .slider-container .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldslider .slider-container .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%;}nv-fieldslider .slider-container .input-container input:focus{outline:none}nv-fieldslider .slider-container .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-fieldslider .slider-container .input-container input[type=password]::-ms-clear,nv-fieldslider .slider-container .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldslider .slider-container .input-container .label-before{margin-left:var(--spacing-2);color:var(--components-form-field-icon-default)}nv-fieldslider .slider-container .input-container .label-after{margin-right:var(--spacing-2);color:var(--components-form-field-icon-default)}nv-fieldslider[fluid]:not([fluid=false]){max-width:unset}nv-fieldslider[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-fieldslider[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-fieldslider[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-fieldslider[readonly]:not([readonly=false]) .track,nv-fieldslider[readonly]:not([readonly=false]) .thumb{cursor:default}nv-fieldslider 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-fieldslider nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldslider[hide-label]:not([hide-label=false]) label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}nv-fieldslider[has-field]:not([has-field=false]) .thumb-tooltip{display:none}nv-fieldslider>.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-fieldslider>.error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldslider>.error-description[hidden]{display:none}";
21569
+ const nvFieldsliderCss = "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-fieldslider{--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-fieldslider .slider-container{width:100%;display:flex;flex-direction:row;align-items:center;gap:var(--form-gap-x)}nv-fieldslider .slider-container .track-container{position:relative;flex:1;height:calc(var(--slider-handler-size-min) + 0.25rem);padding:calc(var(--slider-handler-size-min) / 2) 0}nv-fieldslider .slider-container .track-container .track{position:relative;height:var(--slider-track-height);background:var(--components-slider-track-background);border-radius:var(--slider-track-radius);cursor:pointer;touch-action:none;user-select:none}nv-fieldslider .slider-container .track-container .track::after{content:\"\";position:absolute;top:calc(-13px + var(--slider-track-height) / 2);left:0;width:100%;height:26px;background:rgba(255, 255, 255, 0)}nv-fieldslider .slider-container .track-container .track .track-range{position:absolute;top:0;height:var(--slider-track-height);background:var(--components-slider-track-filled-default);border-radius:var(--slider-track-radius);pointer-events:none}nv-fieldslider .slider-container .track-container .track .thumb{position:absolute;top:50%;width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);background:#ffffff;border:var(--slider-handler-stroke) solid var(--components-slider-track-filled-default);border-radius:50%;transform:translate(-50%, -50%);z-index:1;cursor:grab;touch-action:none;user-select:none;transition:width 0.2s, height 0.2s, box-shadow 0.2s, background-color 0.2s}nv-fieldslider .slider-container .track-container .track .thumb:after{content:\"\";position:absolute;top:-7px;left:-7px;width:calc(100% + 14px);height:calc(100% + 14px);background:rgba(255, 255, 255, 0)}nv-fieldslider .slider-container .track-container .track .thumb:hover{width:var(--slider-handler-size-max);height:var(--slider-handler-size-max);border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container .track .thumb:focus{width:var(--slider-handler-size-min);height:var(--slider-handler-size-min);border-color:var(--components-slider-track-filled-focus);outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1);transition:outline;background:var(--components-slider-handler-background-focus)}nv-fieldslider .slider-container .track-container .track .thumb:active{cursor:grabbing;background:var(--components-slider-handler-background-hover)}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip{position:absolute;top:25px;left:50%;background-color:var(--components-tooltip-background);color:var(--components-tooltip-text);padding:5px;border-radius:var(--tooltip-radius);font-size:var(--tooltip-font-size);z-index:10;pointer-events:none;user-select:none;opacity:0;transition:opacity 0.3s ease-in-out;transform:translateX(-50%);backface-visibility:hidden;-webkit-font-smoothing:antialiased;transform-style:preserve-3d}nv-fieldslider .slider-container .track-container .track .thumb .thumb-tooltip:after{content:\"\";background:var(--components-tooltip-background);box-shadow:none;border:none;position:absolute;border-bottom-color:transparent;border-right-color:transparent;width:6px;height:6px;transform:rotate(45deg);border-radius:1px;top:-3px;left:50%;margin-left:-3px;backface-visibility:hidden;will-change:transform, opacity}nv-fieldslider .slider-container .track-container .track .thumb:hover .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:active .thumb-tooltip,nv-fieldslider .slider-container .track-container .track .thumb:focus .thumb-tooltip{opacity:1}nv-fieldslider .slider-container .track-container .track-ticks{position:relative;height:1rem;margin-top:0.25rem}nv-fieldslider .slider-container .track-container .track-ticks .track-tick{position:absolute;top:0;width:var(--slider-tick-height);height:var(--slider-tick-height);background:var(--components-form-field-border-default);border-radius:50%;transform:translate(-50%, 0);pointer-events:none}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:first-of-type{transform:translate(0, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick:last-of-type{transform:translate(-100%, 0)}nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{position:absolute;top:calc(var(--slider-tick-height) + 0.25rem);left:50%;color:var(--components-form-field-border-default);transform:translateX(-50%);white-space:nowrap}.track-tick-first nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:0;transform:translateX(0)}.track-tick-last nv-fieldslider .slider-container .track-container .track-ticks .track-tick .tick-label{left:100%;transform:translateX(-100%)}nv-fieldslider .slider-container .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;width:90px;flex-grow:unset}nv-fieldslider .slider-container .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldslider .slider-container .input-container:focus-within,nv-fieldslider .slider-container .input-container:focus-within:hover,nv-fieldslider .slider-container .input-container:focus,nv-fieldslider .slider-container .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-fieldslider .slider-container .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-fieldslider .slider-container .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldslider .slider-container .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%;}nv-fieldslider .slider-container .input-container input:focus{outline:none}nv-fieldslider .slider-container .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-fieldslider .slider-container .input-container input[type=password]::-ms-clear,nv-fieldslider .slider-container .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldslider .slider-container .input-container .label-before{margin-left:var(--spacing-2);color:var(--components-form-field-icon-default)}nv-fieldslider .slider-container .input-container .label-after{margin-right:var(--spacing-2);color:var(--components-form-field-icon-default)}nv-fieldslider[fluid]:not([fluid=false]){max-width:unset}nv-fieldslider[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-fieldslider[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-fieldslider[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-fieldslider[readonly]:not([readonly=false]) .track,nv-fieldslider[readonly]:not([readonly=false]) .thumb{cursor:default}nv-fieldslider 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-fieldslider nv-icon.validation{color:var(--nv-field-border-default)}nv-fieldslider[hide-label]:not([hide-label=false]) label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}nv-fieldslider[has-field]:not([has-field=false]) .thumb-tooltip{display:none}nv-fieldslider>.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-fieldslider>.error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldslider>.error-description[hidden]{display:none}";
21319
21570
  var NvFieldsliderStyle0 = nvFieldsliderCss;
21320
21571
 
21321
21572
  /**
@@ -21348,7 +21599,8 @@ class NvFieldslider {
21348
21599
  /**
21349
21600
  * Enables an optional numeric input field alongside the slider, allowing
21350
21601
  * users to type a value directly instead of—or in addition to—using the
21351
- * slider handle.
21602
+ * slider handle. The field accepts numeric values in the format based on
21603
+ * client-side local settings.
21352
21604
  */
21353
21605
  this.hasField = false;
21354
21606
  /**
@@ -21599,16 +21851,15 @@ class NvFieldslider {
21599
21851
  };
21600
21852
  /**
21601
21853
  * Handles field input value changes.
21602
- * @param {Event} event - The input event
21854
+ * @param {FieldInputProps['onInput']} details - The parsed value and index
21603
21855
  */
21604
- this.handleFieldChange = (event) => {
21605
- const input = event.target;
21606
- const newValue = parseFloat(input.value);
21856
+ this.handleFieldChange = (details) => {
21857
+ const newValue = details.value;
21607
21858
  if (isNaN(newValue)) {
21608
21859
  return;
21609
21860
  }
21610
21861
  if (this.range) {
21611
- const fieldIndex = input.getAttribute('data-index') === '0' ? 0 : 1;
21862
+ const fieldIndex = details.index === 0 ? 0 : 1;
21612
21863
  const updatedRange = [...this.rangeValueInternal];
21613
21864
  updatedRange[fieldIndex] = newValue;
21614
21865
  this.handleValueChange(updatedRange);
@@ -21779,11 +22030,11 @@ class NvFieldslider {
21779
22030
  /****************************************************************************/
21780
22031
  //#region RENDER
21781
22032
  render() {
21782
- return (hAsync(Host, { key: '7dafd85aa9bae558c6339bacc1ab0f9ca284f252' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '5a85de0b6d1216a1cdfa27172def79c7e2d17142', htmlFor: this.startInputId }, hAsync("slot", { key: '5f17b24bc70f148a70677f52dfe0be84162a675b', name: "label" }, this.label))), hAsync("div", { key: '5fb5d887c5fe61febfd877876365863f0657af93', class: "slider-container" }, this.range ? (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 0, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : null, hAsync("div", { key: '801e4189130725d5f4b3b0f116761e35a89f1236', class: "track-container" }, hAsync("div", { key: 'fba52a45d3b5ba937b3e87441e17df458c490755', class: "track", onPointerDown: this.onTrackInteraction }, this.range ? (hAsync(RangeThumb, { rangeValue: this.rangeValueInternal, rawRangePosition: this.rawRangePosition, activeDragThumb: this.activeDragThumb, isDragging: this.isDragging, snap: this.snap, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue })) : (hAsync(SingleThumb, { value: this.valueInternal, min: this.min, max: this.max, step: this.step, rawPosition: this.rawPosition, isDragging: this.isDragging, snap: this.snap, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue }))), hAsync(TickMarks, { key: '1530c379bac4d4d0d7ef2eb22ddabe507ace1c0a', ticks: this.internalTicks, min: this.min, max: this.max })), this.range ? (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 1, inputId: this.endInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name }))), (this.success ||
22033
+ return (hAsync(Host, { key: '5256401116f099a480f35552c3a38072c60d74ed' }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: 'ae1c59b2561f0b007d3f6da3ef379a32fe2ff449', htmlFor: this.startInputId }, hAsync("slot", { key: '6d0b7e287276082ea680fc7fdfaabe428648df03', name: "label" }, this.label))), hAsync("div", { key: '3c09727930e4d7bbde1f1ad578fb87e18f04c8dc', class: "slider-container" }, this.range ? (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 0, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : null, hAsync("div", { key: 'db7e57716f9fc13e9ecd2e81c4126ccd8ceade9f', class: "track-container" }, hAsync("div", { key: '8b5cc8d661b8179fa71c6729291e72bc743dcb13', class: "track", onPointerDown: this.onTrackInteraction }, this.range ? (hAsync(RangeThumb, { rangeValue: this.rangeValueInternal, rawRangePosition: this.rawRangePosition, activeDragThumb: this.activeDragThumb, isDragging: this.isDragging, snap: this.snap, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue })) : (hAsync(SingleThumb, { value: this.valueInternal, min: this.min, max: this.max, step: this.step, rawPosition: this.rawPosition, isDragging: this.isDragging, snap: this.snap, disabled: this.disabled, readonly: this.readonly, onKeyDown: this.onKeyDown, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue }))), hAsync(TickMarks, { key: '4f7ee0f6eccff4a2539b9f33c9f1dd68e0e8afa1', ticks: this.internalTicks, min: this.min, max: this.max })), this.range ? (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, index: 1, inputId: this.endInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name, endName: this.endName })) : (hAsync(FieldInput, { range: this.range, hasField: this.hasField, value: this.valueInternal, rangeValue: this.rangeValueInternal, inputId: this.startInputId, min: this.min, max: this.max, step: this.step, disabled: this.disabled, readonly: this.readonly, onInput: this.handleFieldChange, labelBeforeValue: this.labelBeforeValue, labelAfterValue: this.labelAfterValue, name: this.name }))), (this.success ||
21783
22034
  this.description ||
21784
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '032ea2e613073412908abe35fe04545d2369f04a', class: "description" }, this.success && (hAsync("nv-icon", { key: 'ff7a4249402880359bc46dd07ff39acd196a7630', name: "circle-check", class: "validation", size: "md" })), hAsync("slot", { key: '2fc0542506811cfc2d50eac140aae4cf97d279ea', name: "description" }, this.description))), (this.error ||
22035
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '40b921d84578b1d7ae18fa5f1ebcc34cc1678df2', class: "description" }, this.success && (hAsync("nv-icon", { key: 'c0c7e52eb9118154f18280fdcb09ca4a5db63c74', name: "circle-check", class: "validation", size: "md" })), hAsync("slot", { key: '2d764e1dabf08abb3271de1f8c2cf6f8418d9d5d', name: "description" }, this.description))), (this.error ||
21785
22036
  this.errorDescription ||
21786
- this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: 'd7ac4fc356cef87c86f7bd75dd4d5b4151379cfa', class: "error-description", hidden: !this.error }, this.error && (hAsync("nv-icon", { key: '598353c10d3f709fee22b44b8f831f22c2804d08', name: "alert-circle", class: "validation", size: "md" })), hAsync("slot", { key: 'a426ae3e63aafeea9d74cba5baa4bbf0fb65b0d1', name: "error-description" }, this.errorDescription)))));
22037
+ this.el.querySelector('[slot="error-description"]')) && (hAsync("div", { key: '96f9424431a2adcca98f4619350e6d34c2037bc2', class: "error-description", hidden: !this.error }, this.error && (hAsync("nv-icon", { key: 'b77e2b14a5f4e9cdf49c173f5fbf24d6a3f081ff', name: "alert-circle", class: "validation", size: "md" })), hAsync("slot", { key: 'f04a20c146d54c405669109436b28bf9ad99ebd8', name: "error-description" }, this.errorDescription)))));
21787
22038
  }
21788
22039
  static get formAssociated() { return true; }
21789
22040
  get el() { return getElement(this); }
@@ -23829,6 +24080,133 @@ class NvMenuitem {
23829
24080
  }; }
23830
24081
  }
23831
24082
 
24083
+ const nvNotificationCss = "nv-notification{display:block}nv-notification [data-scope=container]{display:flex;position:relative;max-width:512px;width:100%;padding:var(--notification-padding);align-items:flex-start;gap:var(--notification-gap-x);border-radius:var(--notification-radius);border-style:solid;box-shadow:0 var(--shadow-y-axis-lg-1, 4px) var(--shadow-blur-lg-1, 6px) var(--shadow-spread-lg-1, -2px) var(--shadow-color-opacity-1, rgba(14, 14, 14, 0.06)), 0 var(--shadow-y-axis-lg-2, 10px) var(--shadow-blur-lg-2, 15px) var(--shadow-spread-lg-2, -3px) var(--shadow-color-opacity-2, rgba(14, 14, 14, 0.1))}nv-notification [data-scope=container]>nv-icon{flex-shrink:0}nv-notification [data-scope=container] [data-scope=dismiss]{padding:var(--button-sm-icon-button-padding, 8px);justify-content:center;align-items:center;gap:var(--button-sm-gap, 6px);display:flex;position:absolute;right:8px;top:8px;border-radius:var(--button-sm-border-radius, 4px);background:var(--components-button-lower-background, rgba(255, 255, 255, 0));color:var(--components-button-lower-icon)}nv-notification [data-scope=container] [data-scope=content]{display:flex;padding-right:var(--notification-padding-right);flex-direction:column;align-items:flex-start;gap:var(--notification-gap-y);flex:1 0 0}nv-notification [data-scope=container] [data-scope=content] [data-scope=heading]{display:flex;align-items:flex-start;gap:var(--notification-gap-x);align-self:stretch;color:var(--components-notification-content-title);font-size:var(--notification-title-font-size);font-style:normal;font-weight:500;line-height:20px;}nv-notification [data-scope=container] [data-scope=content] [data-scope=message]{display:flex;flex-direction:column;align-items:flex-start;gap:var(--notification-gap-y);align-self:stretch;color:var(--components-notification-content-description);font-variant-numeric:lining-nums tabular-nums slashed-zero;font-size:var(--font-size-sm, 14px);font-style:normal;font-weight:400;line-height:var(--line-height-sm, 20px)}nv-notification [data-scope=container] [data-scope=content] [data-scope=actions]{display:flex;padding:var(--spacing-2, 8px) 0;padding-bottom:0px;align-items:flex-start;gap:var(--notification-gap-x);align-self:stretch;margin-left:calc(-1 * var(--button-sm-padding-x))}nv-notification[feedback=information] [data-scope=container]{background-color:var(--components-notification-information-background);border-color:var(--components-notification-information-border)}nv-notification[feedback=information] [data-scope=container]>nv-icon{color:var(--components-notification-information-icon)}nv-notification[feedback=information]>[data-scope=close]:focus,nv-notification[feedback=information]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=information]>[data-scope=close]:focus-visible,nv-notification[feedback=information]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-information-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[feedback=warning] [data-scope=container]{background-color:var(--components-notification-warning-background);border-color:var(--components-notification-warning-border)}nv-notification[feedback=warning] [data-scope=container]>nv-icon{color:var(--components-notification-warning-icon)}nv-notification[feedback=warning]>[data-scope=close]:focus,nv-notification[feedback=warning]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=warning]>[data-scope=close]:focus-visible,nv-notification[feedback=warning]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-warning-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[feedback=error] [data-scope=container]{background-color:var(--components-notification-error-background);border-color:var(--components-notification-error-border)}nv-notification[feedback=error] [data-scope=container]>nv-icon{color:var(--components-notification-error-icon)}nv-notification[feedback=error]>[data-scope=close]:focus,nv-notification[feedback=error]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=error]>[data-scope=close]:focus-visible,nv-notification[feedback=error]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-error-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[feedback=success] [data-scope=container]{background-color:var(--components-notification-success-background);border-color:var(--components-notification-success-border)}nv-notification[feedback=success] [data-scope=container]>nv-icon{color:var(--components-notification-success-icon)}nv-notification[feedback=success]>[data-scope=close]:focus,nv-notification[feedback=success]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=success]>[data-scope=close]:focus-visible,nv-notification[feedback=success]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-success-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[feedback=neutral] [data-scope=container]{background-color:var(--components-notification-neutral-background);border-color:var(--components-notification-neutral-border)}nv-notification[feedback=neutral] [data-scope=container]>nv-icon{color:var(--components-notification-neutral-icon)}nv-notification[feedback=neutral]>[data-scope=close]:focus,nv-notification[feedback=neutral]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=neutral]>[data-scope=close]:focus-visible,nv-notification[feedback=neutral]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-neutral-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[emphasis=high] [data-scope=container]{border-width:1px;border-left-width:var(--notification-border-width-high-emphasis);padding-left:calc(var(--notification-padding) - var(--notification-border-width-high-emphasis) + 1px)}nv-notification[emphasis=medium] [data-scope=container]{border-width:var(--notification-border-width-low-emphasis);border-color:var(--color-content-low-border, #E3E3E3)}";
24084
+ var NvNotificationStyle0 = nvNotificationCss;
24085
+
24086
+ /**
24087
+ * @slot heading - Use this slot to insert HTML as the notification title.
24088
+ * @slot content - Use this slot to insert HTML as the notification message.
24089
+ * @slot actions - Use this slot for custom actions.
24090
+ */
24091
+ class NvNotification {
24092
+ constructor(hostRef) {
24093
+ registerInstance(this, hostRef);
24094
+ this.hiddenChanged = createEvent(this, "hiddenChanged", 7);
24095
+ /****************************************************************************/
24096
+ //#region PROPERTIES
24097
+ /**
24098
+ * Set a unique ID for the notification. Used for aria attributes and managing
24099
+ * multiple notifications.
24100
+ */
24101
+ this.uid = v4();
24102
+ /**
24103
+ * Specifies the notification type which determines the color and default icon.
24104
+ */
24105
+ this.feedback = 'information';
24106
+ /**
24107
+ * Adjusts the emphasis to make the notification more or less visually
24108
+ * prominent to users. Use this to draw attention to important actions or
24109
+ * reduce focus on less critical ones
24110
+ */
24111
+ this.emphasis = 'medium';
24112
+ /**
24113
+ * Allows the notification to be dismissed via a close button (x). The
24114
+ * notification is not dismissible unless explicitly enabled.
24115
+ */
24116
+ this.dismissible = false;
24117
+ /**
24118
+ * Controls the visibility of the notification.
24119
+ */
24120
+ this.hidden = false; // eslint-disable-line @stencil-community/reserved-member-names
24121
+ //#endregion EVENTS
24122
+ /****************************************************************************/
24123
+ //#region INTERNAL
24124
+ this.iconByFeedback = {
24125
+ [FeedbackColors.Warning]: 'alert-circle',
24126
+ [FeedbackColors.Information]: 'info-circle',
24127
+ [FeedbackColors.Success]: 'circle-check',
24128
+ [FeedbackColors.Error]: 'alert-triangle',
24129
+ [FeedbackColors.Neutral]: 'help',
24130
+ };
24131
+ this.roleByFeedback = {
24132
+ [FeedbackColors.Error]: 'alert',
24133
+ [FeedbackColors.Warning]: 'alert',
24134
+ [FeedbackColors.Information]: 'status',
24135
+ [FeedbackColors.Success]: 'status',
24136
+ [FeedbackColors.Neutral]: 'status',
24137
+ };
24138
+ }
24139
+ //#endregion PROPERTIES
24140
+ /****************************************************************************/
24141
+ //#region METHODS
24142
+ async dismiss() {
24143
+ await this.dismissAnimation();
24144
+ }
24145
+ getDefaultIcon() {
24146
+ var _a;
24147
+ return (_a = this.iconByFeedback[this.feedback]) !== null && _a !== void 0 ? _a : 'info-circle';
24148
+ }
24149
+ getAriaRole() {
24150
+ var _a;
24151
+ return (_a = this.roleByFeedback[this.feedback]) !== null && _a !== void 0 ? _a : 'status';
24152
+ }
24153
+ getAriaLive() {
24154
+ return this.getAriaRole() === 'alert' ? 'assertive' : 'polite';
24155
+ }
24156
+ getHeadingId() {
24157
+ return this.heading ? `nv-notification-${this.uid}-heading` : null;
24158
+ }
24159
+ getMessageId() {
24160
+ return this.message ? `nv-notification-${this.uid}-message` : null;
24161
+ }
24162
+ async dismissAnimation() {
24163
+ const { fadeOut } = useFade(this.container, { duration: 300 });
24164
+ const { slideOut } = useSlide(this.container, { duration: 800 });
24165
+ const { collapse } = useCollapse(this.el, {
24166
+ duration: 800,
24167
+ overflow: 'visible',
24168
+ });
24169
+ await parallel(fadeOut, slideOut, collapse).start();
24170
+ this.hidden = true;
24171
+ this.hiddenChanged.emit(true);
24172
+ }
24173
+ //#endregion INTERNAL
24174
+ /****************************************************************************/
24175
+ //#region LIFECYCLE
24176
+ componentWillLoad() {
24177
+ this.headingSlot = this.el.querySelector('[slot="heading"]');
24178
+ this.messageSlot = this.el.querySelector('[slot="content"]');
24179
+ this.actionsSlot = this.el.querySelector('[slot="actions"]');
24180
+ }
24181
+ //#endregion LIFECYCLE
24182
+ /****************************************************************************/
24183
+ //#region RENDER
24184
+ render() {
24185
+ var _a, _b, _c;
24186
+ return (hAsync(Host, { key: '9146cea4ed72801aadf2fb4b7e44895038c98437', role: this.getAriaRole(), "aria-live": this.getAriaLive(), "aria-atomic": true, "aria-labelledby": (_a = this.getHeadingId()) !== null && _a !== void 0 ? _a : null, "aria-describedby": (_b = this.getMessageId()) !== null && _b !== void 0 ? _b : null, tabindex: "-1" }, hAsync("div", { key: 'beed9ae5f6fac1b0c6d103dd75a41e0aede84041', "data-scope": "container", ref: el => (this.container = el) }, this.dismissible && (hAsync("button", { key: '8e17f33867c2563de719dc1b0f0e2d4ae39ad1a6', "data-scope": "dismiss", type: "button", onClick: this.dismiss.bind(this) }, hAsync("nv-icon", { key: 'cb8850135bb2383e33a16671569547611b55e434', name: "x", size: "sm" }))), hAsync("nv-icon", { key: 'f5f58e1c3a94d854841271eb12af047322b2f0b4', name: (_c = this.icon) !== null && _c !== void 0 ? _c : this.getDefaultIcon(), size: "md" }), hAsync("div", { key: '9c6f6bb0315cd25260d483472a24832031ce45da', "data-scope": "content" }, (this.heading || this.headingSlot) && (hAsync("p", { key: '1013d6b6790f75682a1db0e43293b61e614f1c07', id: this.getHeadingId(), "data-scope": "heading" }, hAsync("slot", { key: '844a7bccf6f365d4e59dfdec9b3c9096cbeda798', name: "heading" }, this.heading))), (this.message || this.messageSlot) && (hAsync("p", { key: '6688e9dc927f6164ce60f27b84fdbeb257296504', id: this.getMessageId(), "data-scope": "message" }, hAsync("slot", { key: 'f0c0790faa40411970575240a081f0f0bf0e9aff', name: "content" }, this.message))), this.actionsSlot && (hAsync("div", { key: '0ba946edf5b3a8410da3b375e589613a2674fd15', "data-scope": "actions" }, hAsync("slot", { key: '0360ab92db66957f0290569c39307ced2be5922d', name: "actions" })))))));
24187
+ }
24188
+ get el() { return getElement(this); }
24189
+ static get style() { return NvNotificationStyle0; }
24190
+ static get cmpMeta() { return {
24191
+ "$flags$": 4,
24192
+ "$tagName$": "nv-notification",
24193
+ "$members$": {
24194
+ "uid": [513],
24195
+ "feedback": [513],
24196
+ "emphasis": [513],
24197
+ "heading": [513],
24198
+ "message": [513],
24199
+ "icon": [513],
24200
+ "dismissible": [516],
24201
+ "hidden": [1540],
24202
+ "dismiss": [64]
24203
+ },
24204
+ "$listeners$": undefined,
24205
+ "$lazyBundleId$": "-",
24206
+ "$attrsToReflect$": [["uid", "uid"], ["feedback", "feedback"], ["emphasis", "emphasis"], ["heading", "heading"], ["message", "message"], ["icon", "icon"], ["dismissible", "dismissible"], ["hidden", "hidden"]]
24207
+ }; }
24208
+ }
24209
+
23832
24210
  /**
23833
24211
  * Custom positioning reference element.
23834
24212
  * @see https://floating-ui.com/docs/virtual-elements
@@ -26209,7 +26587,7 @@ class NvPopover {
26209
26587
  /****************************************************************************/
26210
26588
  //#region RENDER
26211
26589
  render() {
26212
- return (hAsync(Host, { key: '290f9c76a0a4db0648061ce3778bec21b5926ae4' }, hAsync("slot", { key: 'ca90cba5de160880308dfc12b1f82f0047c57b75', name: "trigger" }), hAsync("div", { key: 'f9b5e11a4a6fd63fe1a640acd936cf883fc91563', "data-scope": "popover", "data-strategy": this.strategy, hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (hAsync("div", { key: '39f7287b5614326cc5eb29be9b94c70f1574671b', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), hAsync("slot", { key: '45ac045f3669f3ebe3e8200bff75b26284e609a6', name: "content" }))));
26590
+ return (hAsync(Host, { key: 'dc7ef1862f1a1da4b32e02bee827f81545df73d1' }, hAsync("slot", { key: '7535c2ba2b1f600c237602c68a04c85fd9d6d98b', name: "trigger" }), hAsync("div", { key: '8e7907e2fda20d35b00642eca0507aa20e56f7cb', "data-scope": "popover", "data-strategy": this.strategy, hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (hAsync("div", { key: '4e081e84e9597b69351253d1c1b89c115cdcfd9a', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), hAsync("slot", { key: '5bcd80588e9746db974cee69c5963b698665d105', name: "content" }))));
26213
26591
  }
26214
26592
  get el() { return getElement(this); }
26215
26593
  static get watchers() { return {
@@ -26256,7 +26634,7 @@ class NvRow {
26256
26634
  /****************************************************************************/
26257
26635
  //#region RENDER
26258
26636
  render() {
26259
- return (hAsync(Host, { key: '91a990d393ce32b86f66729fc69068a4a5754fe4' }, hAsync("slot", { key: '867eaa3d6b5760f3a8763a59d36c592d56325e9e' })));
26637
+ return (hAsync(Host, { key: '8415bdad0106bd3d836996c617a749294e0c19e2' }, hAsync("slot", { key: '77c069ced0dc25c4169945877c388f30d27fdc4f' })));
26260
26638
  }
26261
26639
  static get style() { return NvRowStyle0; }
26262
26640
  static get cmpMeta() { return {
@@ -26291,7 +26669,7 @@ class NvStack {
26291
26669
  /****************************************************************************/
26292
26670
  //#region RENDER
26293
26671
  render() {
26294
- return (hAsync(Host, { key: '6a314d1f6679d4cbbd01fc08ce54fc0f7709e3e0', 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') }, hAsync("slot", { key: 'd3c5d0fd8f44b23a3cfae00aa39de8722babca2a' })));
26672
+ return (hAsync(Host, { key: '66123f22ad4a6ebefe8663c795274eb900d2c178', 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') }, hAsync("slot", { key: '7b3d395c3490664f0e2f337a04f69cc717ed6c0e' })));
26295
26673
  }
26296
26674
  static get style() { return NvStackStyle0; }
26297
26675
  static get cmpMeta() { return {
@@ -26628,14 +27006,14 @@ class NvTable {
26628
27006
  const rows = !this.table || this.table === undefined || this.parsedData.length === 0
26629
27007
  ? []
26630
27008
  : this.table.data;
26631
- return (hAsync(Host, { key: '1b6e90df16e6f35fab46bdd7b9366122ace0c93f' }, hAsync("div", { key: '77d54a2d44fad92dd8eae7bba4752adb6da28406', class: "hidden" }, hAsync("slot", { key: 'c5f9508d2ffcd61dd660acd11df74d7d1bf12516' })), hAsync("slot", { key: 'b1dc1a74cafbd302a9b81d1226ee7e7f4061c357', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (hAsync("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (hAsync("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (hAsync("thead", { class: "table-header" }, hAsync("tr", null, headerGroups &&
27009
+ return (hAsync(Host, { key: 'ea0b3237145fbc199d356010f1e001797afc52d6' }, hAsync("div", { key: 'd3bf41bad48e549d1799b2c8e55a308a7d767973', class: "hidden" }, hAsync("slot", { key: '8263220ebd266240b16228b67f8d215d7d56afd7' })), hAsync("slot", { key: '36d43d6870cf9a6021521579c0507afd1fe85081', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (hAsync("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (hAsync("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (hAsync("thead", { class: "table-header" }, hAsync("tr", null, headerGroups &&
26632
27010
  headerGroups.map(col => {
26633
27011
  return (hAsync("th", { key: col.name }, this.renderTemplate(this.headerTemplateCache.get(col.name), {}) || col.header));
26634
27012
  })))), hAsync("tbody", { class: "table-body" }, !rows || rows.length === 0 ? (hAsync("tr", null, hAsync("td", { colSpan: headerGroups.length || 12, class: "no-data" }, this.noDataMessage))) : (rows.map(row => (hAsync("tr", { key: JSON.stringify(row) }, headerGroups.map(col => {
26635
27013
  var _a;
26636
27014
  return (hAsync("td", null, this.renderTemplate(this.templateCache.get(col.name), row) ||
26637
27015
  ((_a = row[col.name]) !== null && _a !== void 0 ? _a : this.fallbackValue)));
26638
- })))))))), hAsync("slot", { key: '2b90fd6d1e626faff3e7eb08e2b319ce02de4ec3', name: "after" })));
27016
+ })))))))), hAsync("slot", { key: '233b61e9099f58ca0eeeb7d0f7fdc7bd71bc9065', name: "after" })));
26639
27017
  }
26640
27018
  get el() { return getElement(this); }
26641
27019
  static get watchers() { return {
@@ -26755,8 +27133,8 @@ class NvToggle {
26755
27133
  /****************************************************************************/
26756
27134
  //#region RENDER
26757
27135
  render() {
26758
- return (hAsync(Host, { key: 'caafe3f48598a1323132e20b0492070e73c95885', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, hAsync("div", { key: '2b95ace9e3713bfeda007d8d9eb693fca688b45f', class: "input-container" }, hAsync("input", { key: '703e41e527f018071ac7d02d8318314014568995', 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 })), hAsync("div", { key: '54b2d88481800d6f988900ca6405a45ecad48352', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '41f04a6166fada0f522e5a6682d50b9e14d26ca1', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, hAsync("slot", { key: '6f24ee6e06ea767e04263a3451e29b24b8d8bf95', name: "label" }, this.label))), (this.description ||
26759
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'ec177dadeadba62b9e69a6f3577a7a8166abb029', class: "description" }, hAsync("slot", { key: 'd52e04c1aa3a607015f01fed95cb9f2300071087', name: "description" }, this.description))))));
27136
+ return (hAsync(Host, { key: 'db161d2edfcf7f83381b6431c8bc70a22c04fbf3', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, hAsync("div", { key: '086d6c429b4b7bcaa23093b13d30cf6ba21912f8', class: "input-container" }, hAsync("input", { key: 'e83f407f2c3643c245198131a7991545b73dde78', 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 })), hAsync("div", { key: 'eb5af410d1c643c70a4364948bf8fad9d54e74df', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (hAsync("label", { key: '54793fd81258bee7676801f23da4f5fb554242bf', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, hAsync("slot", { key: '6af650d9677d1eb0f8cfa77cbcd6318f2d6f8aaf', name: "label" }, this.label))), (this.description ||
27137
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '2c157429288779ad6cc18d4e318e64830a657c54', class: "description" }, hAsync("slot", { key: 'fcfae2a0d7cdcc76d4b23c4b376c8e2496e11bb5', name: "description" }, this.description))))));
26760
27138
  }
26761
27139
  static get formAssociated() { return true; }
26762
27140
  get el() { return getElement(this); }
@@ -26832,7 +27210,7 @@ class NvTogglebutton {
26832
27210
  /****************************************************************************/
26833
27211
  //#region RENDER
26834
27212
  render() {
26835
- return (hAsync(Host, { key: '81e773d6bafc0fd451fb7e71cb14ca709af2d07e', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, hAsync("slot", { key: '4cec2d6ae5388cdfd285ab15af356e9833b0ccb3' })));
27213
+ return (hAsync(Host, { key: 'cb15a84c7e7cc27a80773613f31b98168eee8475', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, hAsync("slot", { key: '32d6b9394088d88c4671fb7809ad6aa85b240fff' })));
26836
27214
  }
26837
27215
  static get style() { return NvTogglebuttonStyle0; }
26838
27216
  static get cmpMeta() { return {
@@ -27008,7 +27386,7 @@ class NvTogglebuttongroup {
27008
27386
  /****************************************************************************/
27009
27387
  //#region RENDER
27010
27388
  render() {
27011
- return (hAsync(Host, { key: '52e2d0e1b8f0740a50a8d4d1e93af494e957b521' }, hAsync("slot", { key: 'a82248437817b4fd7aa1c64e4d544050a71b4311' })));
27389
+ return (hAsync(Host, { key: 'ce185699fabd71bb5c22e5a0d73df88067acb9d6' }, hAsync("slot", { key: 'a1e375fb1e8660f3fdb75d96f18db20735a3a64d' })));
27012
27390
  }
27013
27391
  get el() { return getElement(this); }
27014
27392
  static get watchers() { return {
@@ -27079,7 +27457,7 @@ class NvTooltip {
27079
27457
  /****************************************************************************/
27080
27458
  //#region RENDER
27081
27459
  render() {
27082
- return (hAsync(Host, { key: '02f95c0f1f41fe11785859fc8f1bf585cbe35af5' }, hAsync("slot", { key: '338049b6a5ce354b5ddcba1f183488e2f6b2116e' }), hAsync("nv-popover", { key: 'f2e82343908d4e59a3ecf93f791c2756f29714ae', triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, hAsync("p", { key: 'ee35eff1233d1d03accdff3260b6d71ef0815d47', slot: "content" }, this.message), hAsync("slot", { key: '1a5cdc8a671ea9f3f84cb0414579b9a85a183630', name: "content" }))));
27460
+ return (hAsync(Host, { key: 'e0b68e5ade824e2b0f9c5e5cac140349412c919d' }, hAsync("slot", { key: 'd61a58d034818fdba87b4ab17ce903bbb13a47ff' }), hAsync("nv-popover", { key: '408df675045f95adf270025f83285b2e125873c5', triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, hAsync("p", { key: 'e4f860f09f5e5ef83b5e704c271781f41a643e59', slot: "content" }, this.message), hAsync("slot", { key: '2e2e4dcae68651d734696e718c59389f712562df', name: "content" }))));
27083
27461
  }
27084
27462
  get el() { return getElement(this); }
27085
27463
  static get style() { return NvTooltipStyle0; }
@@ -27136,6 +27514,7 @@ registerComponents([
27136
27514
  NvLoader,
27137
27515
  NvMenu,
27138
27516
  NvMenuitem,
27517
+ NvNotification,
27139
27518
  NvPopover,
27140
27519
  NvRow,
27141
27520
  NvStack,