@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.mjs CHANGED
@@ -2741,13 +2741,14 @@ class NvAccordion {
2741
2741
  * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)
2742
2742
  */
2743
2743
  this.mode = 'accordion';
2744
+ /**
2745
+ * Index of open items (external control possible)
2746
+ */
2747
+ this.openIndexes = [];
2744
2748
  //#endregion PROPERTIES
2745
2749
  /****************************************************************************/
2746
2750
  //#region STATE
2747
- /**
2748
- * Internal index of open items (not exposed)
2749
- */
2750
- this.internalOpenIndexes = [];
2751
+ this.updatingFromInternal = false;
2751
2752
  }
2752
2753
  //#endregion EVENTS
2753
2754
  /****************************************************************************/
@@ -2772,113 +2773,125 @@ class NvAccordion {
2772
2773
  * @param {boolean} [forceOpen] Force open (true) or close (false)
2773
2774
  */
2774
2775
  toggleItem(index, forceOpen) {
2775
- let openIndexes = this.openIndexes !== undefined
2776
- ? [...this.openIndexes]
2777
- : [...(this.internalOpenIndexes || [])];
2776
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2777
+ const item = items[index];
2778
+ if (!item || item.disabled) {
2779
+ console.warn('[toggleItem] Item not found or disabled:', index);
2780
+ this.openChanged.emit({ openIndexes: [...(this.openIndexes || [])] });
2781
+ return;
2782
+ }
2783
+ let openIndexes = [...(this.openIndexes || [])];
2778
2784
  const isOpen = openIndexes.includes(index);
2779
2785
  if (this.mode === 'accordion') {
2780
- openIndexes = forceOpen === false || isOpen ? [] : [index];
2786
+ openIndexes =
2787
+ forceOpen === false || (forceOpen === undefined && isOpen)
2788
+ ? []
2789
+ : [index];
2781
2790
  }
2782
2791
  else {
2783
2792
  if (forceOpen === false) {
2784
2793
  openIndexes = openIndexes.filter(i => i !== index);
2785
2794
  }
2786
- else if (!isOpen) {
2795
+ else if (forceOpen === true && !isOpen) {
2787
2796
  openIndexes.push(index);
2788
2797
  }
2798
+ else if (forceOpen === undefined) {
2799
+ openIndexes = isOpen
2800
+ ? openIndexes.filter(i => i !== index)
2801
+ : [...openIndexes, index];
2802
+ }
2789
2803
  }
2790
- this.internalOpenIndexes = openIndexes;
2791
- this.openChanged.emit({ openIndexes });
2792
- if (this.openIndexes !== undefined) {
2793
- this.openIndexes =
2794
- this.mode === 'accordion'
2795
- ? [openIndexes[0]].filter(x => x !== undefined)
2796
- : [...openIndexes];
2797
- }
2798
- // Update child elements state - for both data and slot usage
2804
+ this.updatingFromInternal = true;
2805
+ this.openIndexes = [...openIndexes];
2799
2806
  this.updateChildrenState();
2807
+ this.updatingFromInternal = false;
2808
+ this.openChanged.emit({ openIndexes: [...openIndexes] });
2800
2809
  }
2801
2810
  /**
2802
- * Updates the open state of child elements based on internalOpenIndexes
2811
+ * Updates the open state of child elements based on openIndexes
2803
2812
  */
2804
2813
  async updateChildrenState() {
2805
- // Force a re-render by updating the state
2806
- this.internalOpenIndexes = [...(this.internalOpenIndexes || [])];
2814
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2815
+ items.forEach((item, i) => {
2816
+ const shouldBeOpen = (this.openIndexes || []).includes(i);
2817
+ item.open = shouldBeOpen;
2818
+ item.mode = this.mode;
2819
+ item.setAttribute('aria-expanded', shouldBeOpen ? 'true' : 'false');
2820
+ });
2807
2821
  }
2808
2822
  /**
2809
2823
  * Listens to itemToggle events from nv-accordion-item elements
2810
2824
  * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item
2811
2825
  */
2812
2826
  onItemToggle(event) {
2813
- // Find the index of the item that emitted the event
2827
+ if (this.updatingFromInternal) {
2828
+ return;
2829
+ }
2814
2830
  const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2815
2831
  const targetItem = event.target;
2816
2832
  const index = items.indexOf(targetItem);
2817
2833
  if (index !== -1) {
2818
- // If the event comes from an item that is opening, handle accordion mode
2819
- if (event.detail === true) {
2820
- if (this.mode === 'accordion') {
2821
- // Close all other items
2822
- items.forEach((item, i) => {
2823
- if (i !== index && item.open) {
2824
- item.open = false;
2825
- }
2826
- });
2827
- this.internalOpenIndexes = [index];
2828
- }
2829
- else {
2830
- // Add index to internalOpenIndexes if not already present
2831
- if (!this.internalOpenIndexes.includes(index)) {
2832
- this.internalOpenIndexes = [...this.internalOpenIndexes, index];
2833
- }
2834
- }
2835
- }
2836
- else {
2837
- // If the item is closing, remove it from internalOpenIndexes
2838
- this.internalOpenIndexes = this.internalOpenIndexes.filter(i => i !== index);
2839
- }
2840
- // Emit openChanged event
2841
- this.openChanged.emit({ openIndexes: this.internalOpenIndexes });
2842
- if (this.openIndexes !== undefined) {
2843
- this.openIndexes =
2844
- this.mode === 'accordion'
2845
- ? [this.internalOpenIndexes[0]].filter(x => x !== undefined)
2846
- : [...this.internalOpenIndexes];
2847
- }
2834
+ this.toggleItem(index, event.detail);
2835
+ }
2836
+ else {
2837
+ console.warn('[onItemToggle] Target item not found in items list');
2848
2838
  }
2849
2839
  }
2850
2840
  //#endregion METHODS
2851
2841
  /****************************************************************************/
2852
2842
  //#region WATCHERS
2843
+ onOpenIndexesChange(newValue, oldValue) {
2844
+ if (!this.updatingFromInternal &&
2845
+ newValue !== undefined &&
2846
+ newValue !== oldValue) {
2847
+ this.updateChildrenState();
2848
+ }
2849
+ }
2850
+ onModeChange() {
2851
+ this.updateChildrenState();
2852
+ }
2853
2853
  //#endregion WATCHERS
2854
2854
  /****************************************************************************/
2855
2855
  //#region LIFECYCLE
2856
2856
  componentWillLoad() {
2857
- if (this.openIndexes !== undefined) {
2858
- this.internalOpenIndexes = [...this.openIndexes];
2859
- }
2860
- }
2861
- componentDidLoad() {
2862
- // If using direct child elements, initialize their state
2863
- if (!this.data || this.data.length === 0) {
2864
- this.updateChildrenState();
2857
+ if (this.openIndexes === undefined) {
2858
+ this.openIndexes = [];
2865
2859
  }
2866
2860
  }
2867
- componentWillUpdate() {
2868
- if (this.openIndexes !== undefined) {
2869
- this.internalOpenIndexes = [...this.openIndexes];
2870
- }
2861
+ async componentDidLoad() {
2862
+ var _a;
2863
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
2864
+ // Only initialize openIndexes from child items if no data is provided and openIndexes is not explicitly set
2865
+ if (!((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) &&
2866
+ (!this.openIndexes || this.openIndexes.length === 0)) {
2867
+ const childOpenIndexes = items
2868
+ .map((item, i) => (item.hasAttribute('open') || item.open ? i : -1))
2869
+ .filter(i => i !== -1);
2870
+ if (childOpenIndexes.length > 0) {
2871
+ this.updatingFromInternal = true;
2872
+ this.openIndexes = [...childOpenIndexes];
2873
+ this.updatingFromInternal = false;
2874
+ this.openChanged.emit({ openIndexes: [...this.openIndexes] });
2875
+ }
2876
+ }
2877
+ // Ensure children are in sync with current openIndexes state
2878
+ await this.updateChildrenState();
2871
2879
  }
2872
2880
  //#endregion LIFECYCLE
2873
2881
  /****************************************************************************/
2874
2882
  //#region RENDER
2875
2883
  render() {
2876
- return (hAsync(Host, { key: 'a6cb21b274024a00e60e0d0db780f25fab6e5bc2', role: "list", class: "nv-accordion" }, this.data && this.data.length > 0 ? (this.data.map((item, i) => {
2884
+ var _a;
2885
+ 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) => {
2877
2886
  var _a;
2878
- 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)));
2887
+ 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)));
2879
2888
  })) : (hAsync("slot", null))));
2880
2889
  }
2881
2890
  get el() { return getElement(this); }
2891
+ static get watchers() { return {
2892
+ "openIndexes": ["onOpenIndexesChange"],
2893
+ "mode": ["onModeChange"]
2894
+ }; }
2882
2895
  static get style() { return NvAccordionStyle0; }
2883
2896
  static get cmpMeta() { return {
2884
2897
  "$flags$": 4,
@@ -2887,7 +2900,7 @@ class NvAccordion {
2887
2900
  "data": [16],
2888
2901
  "mode": [513],
2889
2902
  "openIndexes": [1040],
2890
- "internalOpenIndexes": [32],
2903
+ "updatingFromInternal": [32],
2891
2904
  "open": [64],
2892
2905
  "close": [64]
2893
2906
  },
@@ -3547,8 +3560,9 @@ const DEFAULT_OVERSHOOT_STRENGTH = 1.525;
3547
3560
  const BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;
3548
3561
  const BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;
3549
3562
  const BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;
3563
+ const linear = p => p;
3550
3564
  const easeIn = createExpoIn(2);
3551
- reverseEasing(easeIn);
3565
+ const easeOut = reverseEasing(easeIn);
3552
3566
  const easeInOut = mirrorEasing(easeIn);
3553
3567
  const circIn = p => 1 - Math.sin(Math.acos(p));
3554
3568
  const circOut = reverseEasing(circIn);
@@ -3868,6 +3882,217 @@ function animate(_a) {
3868
3882
  };
3869
3883
  }
3870
3884
 
3885
+ const a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;
3886
+ const b = (a1, a2) => 3.0 * a2 - 6.0 * a1;
3887
+ const c = (a1) => 3.0 * a1;
3888
+ const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;
3889
+ const getSlope = (t, a1, a2) => 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);
3890
+ const subdivisionPrecision = 0.0000001;
3891
+ const subdivisionMaxIterations = 10;
3892
+ function binarySubdivide(aX, aA, aB, mX1, mX2) {
3893
+ let currentX;
3894
+ let currentT;
3895
+ let i = 0;
3896
+ do {
3897
+ currentT = aA + (aB - aA) / 2.0;
3898
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
3899
+ if (currentX > 0.0) {
3900
+ aB = currentT;
3901
+ }
3902
+ else {
3903
+ aA = currentT;
3904
+ }
3905
+ } while (Math.abs(currentX) > subdivisionPrecision &&
3906
+ ++i < subdivisionMaxIterations);
3907
+ return currentT;
3908
+ }
3909
+ const newtonIterations = 8;
3910
+ const newtonMinSlope = 0.001;
3911
+ function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {
3912
+ for (let i = 0; i < newtonIterations; ++i) {
3913
+ const currentSlope = getSlope(aGuessT, mX1, mX2);
3914
+ if (currentSlope === 0.0) {
3915
+ return aGuessT;
3916
+ }
3917
+ const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
3918
+ aGuessT -= currentX / currentSlope;
3919
+ }
3920
+ return aGuessT;
3921
+ }
3922
+ const kSplineTableSize = 11;
3923
+ const kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
3924
+ function cubicBezier(mX1, mY1, mX2, mY2) {
3925
+ if (mX1 === mY1 && mX2 === mY2)
3926
+ return linear;
3927
+ const sampleValues = new Float32Array(kSplineTableSize);
3928
+ for (let i = 0; i < kSplineTableSize; ++i) {
3929
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
3930
+ }
3931
+ function getTForX(aX) {
3932
+ let intervalStart = 0.0;
3933
+ let currentSample = 1;
3934
+ const lastSample = kSplineTableSize - 1;
3935
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
3936
+ intervalStart += kSampleStepSize;
3937
+ }
3938
+ --currentSample;
3939
+ const dist = (aX - sampleValues[currentSample]) /
3940
+ (sampleValues[currentSample + 1] - sampleValues[currentSample]);
3941
+ const guessForT = intervalStart + dist * kSampleStepSize;
3942
+ const initialSlope = getSlope(guessForT, mX1, mX2);
3943
+ if (initialSlope >= newtonMinSlope) {
3944
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
3945
+ }
3946
+ else if (initialSlope === 0.0) {
3947
+ return guessForT;
3948
+ }
3949
+ else {
3950
+ return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
3951
+ }
3952
+ }
3953
+ return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);
3954
+ }
3955
+
3956
+ /**
3957
+ * Read current box metrics (height + vertical margins).
3958
+ * @param {HTMLElement} node - The element to measure.
3959
+ * @returns {object} The box metrics.
3960
+ */
3961
+ function getBoxMetrics(node) {
3962
+ const rectHeight = node.getBoundingClientRect().height;
3963
+ const style = getComputedStyle(node);
3964
+ const marginTop = parseFloat(style.marginTop) || 0;
3965
+ const marginBottom = parseFloat(style.marginBottom) || 0;
3966
+ const total = rectHeight + marginTop + marginBottom;
3967
+ return { height: rectHeight, marginTop, marginBottom, total };
3968
+ }
3969
+ const useCollapse = (node, { duration = 200, overflow = 'hidden' } = {}) => {
3970
+ let currentAnimation = null;
3971
+ const stop = () => {
3972
+ if (currentAnimation) {
3973
+ currentAnimation.stop();
3974
+ currentAnimation = null;
3975
+ }
3976
+ };
3977
+ const setStyle = (styles) => {
3978
+ for (const [k, v] of Object.entries(styles)) {
3979
+ node.style[k] = v;
3980
+ }
3981
+ };
3982
+ /** Instantly apply collapsed styles (no animation). */
3983
+ function setCollapsed() {
3984
+ stop();
3985
+ setStyle({
3986
+ height: '0px',
3987
+ marginTop: '0px',
3988
+ marginBottom: '0px',
3989
+ overflow,
3990
+ });
3991
+ }
3992
+ /** Instantly apply expanded styles (no animation). */
3993
+ function setExpanded() {
3994
+ stop();
3995
+ setStyle({
3996
+ height: '',
3997
+ marginTop: '',
3998
+ marginBottom: '',
3999
+ overflow: '',
4000
+ });
4001
+ }
4002
+ /**
4003
+ * Collapse: animate from current box (height + margins) down to 0.
4004
+ */
4005
+ function collapse() {
4006
+ stop();
4007
+ return new Promise(resolve => {
4008
+ const { height, marginTop, marginBottom, total } = getBoxMetrics(node);
4009
+ // Lock current box
4010
+ setStyle({
4011
+ height: `${height}px`,
4012
+ marginTop: `${marginTop}px`,
4013
+ marginBottom: `${marginBottom}px`,
4014
+ overflow,
4015
+ willChange: 'height, margin',
4016
+ });
4017
+ const denom = total > 0 ? total : 0.0001; // avoid divide-by-zero
4018
+ currentAnimation = animate({
4019
+ from: total,
4020
+ to: 0,
4021
+ duration,
4022
+ ease: cubicBezier(0.2, 0, 0, 1),
4023
+ onUpdate: v => {
4024
+ const ratio = v / denom;
4025
+ setStyle({
4026
+ height: `${height * ratio}px`,
4027
+ marginTop: `${marginTop * ratio}px`,
4028
+ marginBottom: `${marginBottom * ratio}px`,
4029
+ });
4030
+ },
4031
+ onComplete: () => {
4032
+ setStyle({
4033
+ height: '0px',
4034
+ marginTop: '0px',
4035
+ marginBottom: '0px',
4036
+ willChange: '',
4037
+ });
4038
+ resolve();
4039
+ },
4040
+ });
4041
+ });
4042
+ }
4043
+ /**
4044
+ * Expand: animate from 0 box to the element's natural box (height + margins),
4045
+ * then restore `height: auto` and computed margins.
4046
+ */
4047
+ function expand() {
4048
+ stop();
4049
+ return new Promise(resolve => {
4050
+ // Let the element size naturally to measure the target box
4051
+ setStyle({
4052
+ height: '',
4053
+ marginTop: '',
4054
+ marginBottom: '',
4055
+ overflow,
4056
+ });
4057
+ const { height, marginTop, marginBottom, total } = getBoxMetrics(node);
4058
+ // Start locked at zero box
4059
+ setStyle({
4060
+ height: '0px',
4061
+ marginTop: '0px',
4062
+ marginBottom: '0px',
4063
+ willChange: 'height, margin',
4064
+ });
4065
+ const denom = total > 0 ? total : 0.0001;
4066
+ currentAnimation = animate({
4067
+ from: 0,
4068
+ to: total,
4069
+ duration,
4070
+ ease: cubicBezier(0.2, 0, 0, 1),
4071
+ onUpdate: v => {
4072
+ const ratio = v / denom;
4073
+ setStyle({
4074
+ height: `${height * ratio}px`,
4075
+ marginTop: `${marginTop * ratio}px`,
4076
+ marginBottom: `${marginBottom * ratio}px`,
4077
+ });
4078
+ },
4079
+ onComplete: () => {
4080
+ // Restore natural layout
4081
+ setStyle({
4082
+ height: '',
4083
+ marginTop: '',
4084
+ marginBottom: '',
4085
+ overflow: '',
4086
+ willChange: '',
4087
+ });
4088
+ resolve();
4089
+ },
4090
+ });
4091
+ });
4092
+ }
4093
+ return { collapse, expand, setCollapsed, setExpanded };
4094
+ };
4095
+
3871
4096
  /*! *****************************************************************************
3872
4097
  Copyright (c) Microsoft Corporation.
3873
4098
 
@@ -4702,85 +4927,6 @@ function index(nodeOrSelector, props) {
4702
4927
  return getStyler(node, props);
4703
4928
  }
4704
4929
 
4705
- const useCollapse = (node, { duration } = { duration: 200 }) => {
4706
- const nodeStyler = index(node);
4707
- /**
4708
- * Will set the overflow to hidden, and animate the max height to 0. Make sure
4709
- * the element has no border or y padding set, otherwise the animation will
4710
- * not work as expected.
4711
- */
4712
- function collapse() {
4713
- return new Promise(resolve => {
4714
- const height = node.getBoundingClientRect().height;
4715
- nodeStyler.set({ overflow: 'hidden' });
4716
- animate({
4717
- from: height,
4718
- to: 0,
4719
- duration,
4720
- onUpdate: value => {
4721
- nodeStyler.set({
4722
- maxHeight: value,
4723
- });
4724
- },
4725
- onComplete: () => {
4726
- resolve();
4727
- },
4728
- });
4729
- });
4730
- }
4731
- /**
4732
- * Apply the collapsed styles without animating, useful when initial state
4733
- * is collapsed.
4734
- */
4735
- function setCollapsed() {
4736
- node.style.maxHeight = '0';
4737
- node.style.overflow = 'hidden';
4738
- }
4739
- /**
4740
- * Apply the expanded styles without animating, useful when initial state
4741
- * is expanded.
4742
- */
4743
- function setExpanded() {
4744
- node.style.maxHeight = '';
4745
- node.style.overflow = '';
4746
- }
4747
- /**
4748
- * Will set the overflow to hidden, and animate the max height to the value
4749
- * of the scrollHeight. Make sure the element has no border or y padding set,
4750
- * otherwise the animation will not work as expected. Once complete, the
4751
- * max-height and overflow style properties will be removed.
4752
- */
4753
- function expand() {
4754
- return new Promise(resolve => {
4755
- const scrollHeight = node.scrollHeight;
4756
- nodeStyler.set({
4757
- overflow: 'hidden',
4758
- });
4759
- animate({
4760
- from: 0,
4761
- to: scrollHeight,
4762
- duration,
4763
- onUpdate: value => {
4764
- nodeStyler.set({
4765
- maxHeight: value,
4766
- });
4767
- },
4768
- onComplete: () => {
4769
- node.style.removeProperty('max-height');
4770
- node.style.removeProperty('overflow');
4771
- resolve();
4772
- },
4773
- });
4774
- });
4775
- }
4776
- return {
4777
- collapse,
4778
- expand,
4779
- setCollapsed,
4780
- setExpanded,
4781
- };
4782
- };
4783
-
4784
4930
  const useFade = (node, { duration } = { duration: 200 }) => {
4785
4931
  const nodeStyler = index(node);
4786
4932
  /**
@@ -4928,6 +5074,68 @@ const useGrow = (node, { duration = 200, amount = 0.8, hasFade = true } = {}) =>
4928
5074
  };
4929
5075
  };
4930
5076
 
5077
+ const useSlide = (node, { duration } = { duration: 200 }) => {
5078
+ const nodeStyler = index(node);
5079
+ /**
5080
+ * Will animate the translateX to 100%, sliding the element to the right.
5081
+ */
5082
+ function slideOut() {
5083
+ return new Promise(resolve => {
5084
+ animate({
5085
+ from: { x: 0 },
5086
+ to: { x: 100 },
5087
+ ease: easeOut,
5088
+ duration,
5089
+ onUpdate(latest) {
5090
+ nodeStyler.set({ transform: `translateX(${latest.x}%)` });
5091
+ },
5092
+ onComplete() {
5093
+ resolve();
5094
+ },
5095
+ });
5096
+ });
5097
+ }
5098
+ /**
5099
+ * Applies the slideOut styles without animating, useful when initial state
5100
+ * is slid out.
5101
+ */
5102
+ function setSlideOut() {
5103
+ node.style.transform = 'translateX(100%)';
5104
+ }
5105
+ /**
5106
+ * Applies the slideIn styles without animating, useful when initial state
5107
+ * is slid in.
5108
+ */
5109
+ function setSlideIn() {
5110
+ node.style.transform = '';
5111
+ }
5112
+ /**
5113
+ * Will animate the translateX from 100% to 0%, sliding the element in from the right.
5114
+ */
5115
+ function slideIn() {
5116
+ return new Promise(resolve => {
5117
+ animate({
5118
+ from: { x: 100 },
5119
+ to: { x: 0 },
5120
+ duration,
5121
+ onUpdate(latest) {
5122
+ nodeStyler.set({ transform: `translateX(${latest.x}%)` });
5123
+ },
5124
+ onComplete() {
5125
+ resolve();
5126
+ node.style.removeProperty('transform');
5127
+ },
5128
+ });
5129
+ });
5130
+ }
5131
+ return {
5132
+ slideIn,
5133
+ slideOut,
5134
+ setSlideOut,
5135
+ setSlideIn,
5136
+ };
5137
+ };
5138
+
4931
5139
  /**
4932
5140
  * Will execute a series of animation promises in sequence.
4933
5141
  * This is useful for chaining animations where each step depends on the
@@ -4947,8 +5155,26 @@ const timeline = (...animations) => ({
4947
5155
  return animations.reduce((promise, animation) => promise.then(() => animation()), Promise.resolve());
4948
5156
  },
4949
5157
  });
5158
+ /**
5159
+ * Will execute a series of animation promises in parallel.
5160
+ * This is useful for running multiple animations simultaneously.
5161
+ *
5162
+ * @param {Array<() => Promise<void>>} animations - The array of animation functions.
5163
+ * @returns {Object} - An object with a `start` method to begin the parallel animations.
5164
+ *
5165
+ * @example
5166
+ * const { fadeOut } = useFade(this.ref);
5167
+ * const { slideOut } = useSlide(this.containerRef);
5168
+ *
5169
+ * parallel(fadeOut, slideOut).start();
5170
+ */
5171
+ const parallel = (...animations) => ({
5172
+ start: () => {
5173
+ return Promise.all(animations.map(animation => animation()));
5174
+ },
5175
+ });
4950
5176
 
4951
- 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)}";
5177
+ 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))}";
4952
5178
  var NvAccordionItemStyle0 = nvAccordionItemCss;
4953
5179
 
4954
5180
  /**
@@ -4961,16 +5187,25 @@ class NvAccordionItem {
4961
5187
  constructor(hostRef) {
4962
5188
  registerInstance(this, hostRef);
4963
5189
  this.itemToggle = createEvent(this, "itemToggle", 7);
4964
- /** Open or closed */
5190
+ this.isToggling = false;
5191
+ /**
5192
+ * Open or closed
5193
+ */
4965
5194
  this.open = false;
4966
- /** Disables the item */
5195
+ /**
5196
+ * Disables the item
5197
+ */
4967
5198
  this.disabled = false;
4968
- /** Parent expansion mode (accordion or multi) */
5199
+ /**
5200
+ * Parent expansion mode (accordion or multi)
5201
+ */
4969
5202
  this.mode = 'accordion';
4970
5203
  //#endregion EVENTS
4971
5204
  /****************************************************************************/
4972
5205
  //#region STATE
4973
- /** Internal state for open/close rendering */
5206
+ /**
5207
+ * Internal state for open/close rendering
5208
+ */
4974
5209
  this.currentOpenState = false;
4975
5210
  /**
4976
5211
  * Controls if the panel has been initialized for animations
@@ -4991,7 +5226,7 @@ class NvAccordionItem {
4991
5226
  * @param {Event} e - Click event
4992
5227
  */
4993
5228
  this.handleIconClick = (e) => {
4994
- e.stopPropagation(); // Prevent header click from triggering
5229
+ e.stopPropagation();
4995
5230
  this.toggle();
4996
5231
  };
4997
5232
  /**
@@ -4999,8 +5234,10 @@ class NvAccordionItem {
4999
5234
  * @param {KeyboardEvent} e - Keyboard event
5000
5235
  */
5001
5236
  this.handleHeaderKeyDown = (e) => {
5002
- if (this.disabled)
5237
+ if (this.disabled) {
5238
+ console.warn('[handleHeaderKeyDown] Ignored (disabled)');
5003
5239
  return;
5240
+ }
5004
5241
  switch (e.key) {
5005
5242
  case 'Enter':
5006
5243
  case ' ':
@@ -5010,17 +5247,19 @@ class NvAccordionItem {
5010
5247
  case 'ArrowDown':
5011
5248
  e.preventDefault();
5012
5249
  if (!this.open) {
5250
+ this.isToggling = true;
5013
5251
  this.open = true;
5014
- this.itemToggle.emit(this.open);
5015
- this.updateVisibility(this.open);
5252
+ this.itemToggle.emit(true);
5253
+ this.isToggling = false;
5016
5254
  }
5017
5255
  break;
5018
5256
  case 'ArrowUp':
5019
5257
  e.preventDefault();
5020
5258
  if (this.open) {
5259
+ this.isToggling = true;
5021
5260
  this.open = false;
5022
- this.itemToggle.emit(this.open);
5023
- this.updateVisibility(this.open);
5261
+ this.itemToggle.emit(false);
5262
+ this.isToggling = false;
5024
5263
  }
5025
5264
  break;
5026
5265
  }
@@ -5030,12 +5269,23 @@ class NvAccordionItem {
5030
5269
  /****************************************************************************/
5031
5270
  //#region WATCHERS
5032
5271
  async onOpenChanged(newValue, oldValue) {
5033
- this.currentOpenState = newValue; // Synchronize internal state
5034
- // Skip initial render
5035
- if (oldValue === undefined) {
5272
+ if (this.disabled) {
5273
+ console.warn('[onOpenChanged] Item is disabled, forcing closed state');
5274
+ this.currentOpenState = false;
5275
+ this.open = false;
5036
5276
  return;
5037
5277
  }
5038
- await this.updateVisibility(newValue);
5278
+ this.currentOpenState = newValue;
5279
+ const isInitialRender = oldValue === undefined;
5280
+ if (!isInitialRender) {
5281
+ if (newValue === false && !this.isToggling) {
5282
+ this.itemToggle.emit(newValue);
5283
+ }
5284
+ else if (newValue && !this.isToggling) {
5285
+ this.itemToggle.emit(newValue);
5286
+ }
5287
+ await this.updateVisibility(newValue);
5288
+ }
5039
5289
  }
5040
5290
  //#endregion WATCHERS
5041
5291
  /****************************************************************************/
@@ -5045,18 +5295,18 @@ class NvAccordionItem {
5045
5295
  * @param {boolean} open - Whether the accordion item should be open
5046
5296
  */
5047
5297
  async updateVisibility(open) {
5048
- if (!this.contentRef)
5298
+ if (!this.contentRef) {
5299
+ console.error('[updateVisibility] No contentRef available');
5049
5300
  return;
5301
+ }
5050
5302
  this.isAnimating = true;
5051
5303
  const { collapse, expand } = useCollapse(this.contentRef, {
5052
5304
  duration: 200,
5053
5305
  });
5054
5306
  if (open) {
5055
- // Expand with animation
5056
5307
  await expand();
5057
5308
  }
5058
5309
  else {
5059
- // Collapse with animation
5060
5310
  await collapse();
5061
5311
  }
5062
5312
  this.isAnimating = false;
@@ -5065,19 +5315,24 @@ class NvAccordionItem {
5065
5315
  /****************************************************************************/
5066
5316
  //#region LIFECYCLE
5067
5317
  componentWillLoad() {
5068
- this.currentOpenState = this.open; // Initial synchronization
5318
+ this.currentOpenState = this.open;
5069
5319
  }
5070
5320
  componentDidLoad() {
5071
5321
  if (this.contentRef) {
5072
- const { setExpanded, setCollapsed } = useCollapse(this.contentRef);
5073
- if (this.open) {
5074
- // If open by default on initial load, set expanded state without animation
5075
- setExpanded();
5076
- }
5077
- else {
5078
- // If closed by default, set collapsed state without animation
5079
- setCollapsed();
5080
- }
5322
+ setTimeout(() => {
5323
+ const { setExpanded, setCollapsed } = useCollapse(this.contentRef, {
5324
+ duration: 200,
5325
+ });
5326
+ if (this.open) {
5327
+ setExpanded();
5328
+ this.currentOpenState = true;
5329
+ }
5330
+ else {
5331
+ setCollapsed();
5332
+ this.currentOpenState = false;
5333
+ }
5334
+ this.isInitialized = true;
5335
+ }, 0);
5081
5336
  }
5082
5337
  }
5083
5338
  disconnectedCallback() {
@@ -5093,10 +5348,14 @@ class NvAccordionItem {
5093
5348
  */
5094
5349
  async toggle() {
5095
5350
  if (!this.disabled && !this.isAnimating) {
5096
- this.open = !this.open;
5097
- this.itemToggle.emit(this.open);
5098
- // Force animation update directly instead of relying on watcher
5099
- await this.updateVisibility(this.open);
5351
+ this.isToggling = true;
5352
+ const newOpen = !this.open;
5353
+ this.open = newOpen;
5354
+ this.itemToggle.emit(newOpen);
5355
+ this.isToggling = false;
5356
+ }
5357
+ else {
5358
+ console.warn('[toggle] Ignored toggle (disabled or animating)');
5100
5359
  }
5101
5360
  }
5102
5361
  /**
@@ -5104,18 +5363,19 @@ class NvAccordionItem {
5104
5363
  * @returns {string} The icon name to display in the chevron button
5105
5364
  */
5106
5365
  get chevronIconName() {
5107
- return this.open ? 'chevron-top' : 'chevron-down';
5366
+ const name = this.open ? 'chevron-top' : 'chevron-down';
5367
+ return name;
5108
5368
  }
5109
5369
  //#endregion METHODS
5110
5370
  /****************************************************************************/
5111
5371
  //#region RENDER
5112
5372
  render() {
5113
- return (hAsync(Host, { key: 'dfb8ca76f8ac40c938323be1ccba4353ea33a616', class: {
5373
+ return (hAsync(Host, { key: '4d5ae52ba3e8cac86316d790f95afd39f6c73019', class: {
5114
5374
  'nv-accordion-item': true,
5115
- 'is-open': this.open,
5375
+ 'is-open': this.currentOpenState,
5116
5376
  'is-disabled': this.disabled,
5117
5377
  'is-animating': this.isAnimating,
5118
- }, 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" })))));
5378
+ }, 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" })))));
5119
5379
  }
5120
5380
  get el() { return getElement(this); }
5121
5381
  static get watchers() { return {
@@ -5189,6 +5449,11 @@ var ButtonType;
5189
5449
  ButtonType["Reset"] = "reset";
5190
5450
  ButtonType["Button"] = "button";
5191
5451
  })(ButtonType || (ButtonType = {}));
5452
+ var NotificationEmphasis;
5453
+ (function (NotificationEmphasis) {
5454
+ NotificationEmphasis["Medium"] = "medium";
5455
+ NotificationEmphasis["High"] = "high";
5456
+ })(NotificationEmphasis || (NotificationEmphasis = {}));
5192
5457
  var ToggleButtonEmphasis;
5193
5458
  (function (ToggleButtonEmphasis) {
5194
5459
  ToggleButtonEmphasis["High"] = "high";
@@ -5413,7 +5678,7 @@ const CUSTOM_MONTH_NAMES = {
5413
5678
  ],
5414
5679
  };
5415
5680
 
5416
- 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}";
5681
+ 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}";
5417
5682
  var NvAlertStyle0 = nvAlertCss;
5418
5683
 
5419
5684
  /**
@@ -5524,8 +5789,8 @@ class NvAlert {
5524
5789
  this.toggleHiddenClass(hidden);
5525
5790
  return;
5526
5791
  }
5527
- const { fadeIn, fadeOut } = useFade(this.ref, { duration: 150 });
5528
- const { collapse, expand } = useCollapse(this.ref, { duration: 150 });
5792
+ const { fadeIn, fadeOut } = useFade(this.el, { duration: 150 });
5793
+ const { collapse, expand } = useCollapse(this.el, { duration: 250 });
5529
5794
  if (hidden) {
5530
5795
  await timeline(fadeOut, collapse).start();
5531
5796
  this.toggleHiddenClass(true);
@@ -5540,7 +5805,7 @@ class NvAlert {
5540
5805
  * @param {boolean} hidden - Whether to add or remove the hidden class
5541
5806
  */
5542
5807
  toggleHiddenClass(hidden) {
5543
- this.ref.classList.toggle('hidden', hidden);
5808
+ this.el.classList.toggle('hidden', hidden);
5544
5809
  }
5545
5810
  //#endregion METHODS
5546
5811
  /****************************************************************************/
@@ -5562,7 +5827,7 @@ class NvAlert {
5562
5827
  }
5563
5828
  }
5564
5829
  if (this.hidden) {
5565
- this.ref.classList.add('hidden');
5830
+ this.el.classList.add('hidden');
5566
5831
  }
5567
5832
  }
5568
5833
  //#endregion LIFECYCLE
@@ -5570,9 +5835,9 @@ class NvAlert {
5570
5835
  //#region RENDER
5571
5836
  render() {
5572
5837
  var _a;
5573
- 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" })))));
5838
+ 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" })))));
5574
5839
  }
5575
- get ref() { return getElement(this); }
5840
+ get el() { return getElement(this); }
5576
5841
  static get watchers() { return {
5577
5842
  "hidden": ["handleHiddenChange"]
5578
5843
  }; }
@@ -6646,12 +6911,12 @@ const DayCell = props => {
6646
6911
  * @returns {JSX.Element} JSX element representing the action buttons
6647
6912
  */
6648
6913
  const CalendarActions = props => {
6649
- const { onReset, onConfirm, useSlot = false } = props;
6914
+ const { onReset, onConfirm, cancelLabel = 'Cancel', primaryLabel = 'OK', useSlot = false, } = props;
6650
6915
  return (hAsync("div", { class: "datepicker-actions" }, useSlot ? (hAsync("slot", { name: "actions" },
6651
- hAsync("nv-button", { emphasis: "low", size: "xs", onClick: onReset }, "Cancel"),
6652
- hAsync("nv-button", { size: "xs", onClick: onConfirm }, "OK"))) : (hAsync("div", null,
6653
- hAsync("nv-button", { emphasis: "low", size: "xs", onClick: onReset }, "Cancel"),
6654
- hAsync("nv-button", { size: "xs", onClick: onConfirm }, "OK")))));
6916
+ hAsync("nv-button", { emphasis: "low", size: "xs", onClick: onReset }, cancelLabel),
6917
+ hAsync("nv-button", { size: "xs", onClick: onConfirm }, primaryLabel))) : (hAsync("div", { class: "actions-container" },
6918
+ hAsync("nv-button", { emphasis: "low", size: "xs", onClick: onReset }, cancelLabel),
6919
+ hAsync("nv-button", { size: "xs", onClick: onConfirm }, primaryLabel)))));
6655
6920
  };
6656
6921
 
6657
6922
  /**
@@ -6785,7 +7050,7 @@ const CalendarGrid = props => {
6785
7050
  }))));
6786
7051
  };
6787
7052
 
6788
- 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)}}";
7053
+ 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)}}";
6789
7054
  var NvCalendarStyle0 = nvCalendarCss;
6790
7055
 
6791
7056
  /**
@@ -6845,6 +7110,10 @@ class NvCalendar {
6845
7110
  * Show action buttons
6846
7111
  */
6847
7112
  this.showActions = false;
7113
+ /** Sets the label for the cancel button in actions. */
7114
+ this.cancelLabel = 'Cancel';
7115
+ /** Sets the label for the primary (OK) button in actions. */
7116
+ this.primaryLabel = 'OK';
6848
7117
  /** Cache for parsed disabled dates */
6849
7118
  this.parsedDisabledDates = [];
6850
7119
  /** Flag to indicate a user click for selection */
@@ -7499,7 +7768,7 @@ class NvCalendar {
7499
7768
  * @slot actions - Child content of the component.
7500
7769
  */
7501
7770
  this.renderActions = () => {
7502
- return (hAsync("div", { class: "datepicker-actions" }, hAsync("slot", { name: "actions" }, hAsync(CalendarActions, { onReset: this.resetSelection, onConfirm: this.confirmSelection, useSlot: false }))));
7771
+ 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 }))));
7503
7772
  };
7504
7773
  }
7505
7774
  //#endregion EVENTS
@@ -7699,8 +7968,8 @@ class NvCalendar {
7699
7968
  * @slot default - Child content of the component.
7700
7969
  */
7701
7970
  render() {
7702
- 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') ||
7703
- this.hasActions) && (hAsync("div", { key: '0a17a627cb1e4a4cb2b91aa104403b00d055bce5', class: "datepicker-controls" }, this.shortcutsPlacement === 'bottom' && this.renderShortcuts(), this.hasActions && this.renderActions())))), hAsync("slot", { key: '3104795c8cc9c81a6aca7e426a145e3966a4361e' })));
7971
+ 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') ||
7972
+ this.hasActions) && (hAsync("div", { key: 'e2f7beb10f042d7694f02453a6d181ba37fa607c', class: "datepicker-controls" }, this.shortcutsPlacement === 'bottom' && this.renderShortcuts(), this.hasActions && this.renderActions())))), hAsync("slot", { key: '77d2bd14bc703b825b2b77c67c99e364e2a58c88' })));
7704
7973
  }
7705
7974
  get el() { return getElement(this); }
7706
7975
  static get watchers() { return {
@@ -7730,6 +7999,8 @@ class NvCalendar {
7730
7999
  "showActions": [516, "show-actions"],
7731
8000
  "shortcuts": [16],
7732
8001
  "showWeekNumbers": [516, "show-week-numbers"],
8002
+ "cancelLabel": [513, "cancel-label"],
8003
+ "primaryLabel": [513, "primary-label"],
7733
8004
  "currentDate": [32],
7734
8005
  "selectedDate": [32],
7735
8006
  "startDate": [32],
@@ -7740,7 +8011,7 @@ class NvCalendar {
7740
8011
  },
7741
8012
  "$listeners$": undefined,
7742
8013
  "$lazyBundleId$": "-",
7743
- "$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"]]
8014
+ "$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"]]
7744
8015
  }; }
7745
8016
  }
7746
8017
 
@@ -13307,10 +13578,6 @@ class NvDialogfooter {
13307
13578
  * Sets the label for the primary button.
13308
13579
  */
13309
13580
  this.primaryLabel = 'Primary';
13310
- /**
13311
- * Sets the type of the primary button.
13312
- */
13313
- this.primaryButtonType = ButtonType.Button;
13314
13581
  //#endregion EVENTS
13315
13582
  /****************************************************************************/
13316
13583
  //#region METHODS
@@ -13341,11 +13608,18 @@ class NvDialogfooter {
13341
13608
  !node.hasAttribute('slot'));
13342
13609
  });
13343
13610
  }
13611
+ componentDidLoad() {
13612
+ // Set the default button type based on the form property
13613
+ this.primaryButtonType =
13614
+ this.primaryButtonType || this.form
13615
+ ? ButtonType.Submit
13616
+ : ButtonType.Button;
13617
+ }
13344
13618
  //#endregion LIFECYCLE
13345
13619
  /****************************************************************************/
13346
13620
  //#region RENDER
13347
13621
  render() {
13348
- 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))));
13622
+ 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))));
13349
13623
  }
13350
13624
  static get formAssociated() { return true; }
13351
13625
  get el() { return getElement(this); }
@@ -13361,7 +13635,7 @@ class NvDialogfooter {
13361
13635
  "danger": [516],
13362
13636
  "cancelLabel": [513, "cancel-label"],
13363
13637
  "primaryLabel": [513, "primary-label"],
13364
- "primaryButtonType": [513, "primary-button-type"],
13638
+ "primaryButtonType": [1537, "primary-button-type"],
13365
13639
  "form": [513]
13366
13640
  },
13367
13641
  "$listeners$": undefined,
@@ -18980,7 +19254,6 @@ class NvFieldmultiselect {
18980
19254
  * Handle badge close for options mode.
18981
19255
  */
18982
19256
  this.handleBadgeCloseOptions = () => {
18983
- console.info('handleBadgeCloseOptions:', this.value);
18984
19257
  this.value = [];
18985
19258
  this.valueChanged.emit(this.value);
18986
19259
  // Uncheck all elements
@@ -18998,7 +19271,6 @@ class NvFieldmultiselect {
18998
19271
  * Handle badge close for slots mode.
18999
19272
  */
19000
19273
  this.handleBadgeCloseSlots = () => {
19001
- console.info('handleBadgeCloseSlots:', this.value);
19002
19274
  this.value = [];
19003
19275
  this.valueChanged.emit(this.value);
19004
19276
  // Uncheck all elements
@@ -19207,7 +19479,6 @@ class NvFieldmultiselect {
19207
19479
  try {
19208
19480
  // Get visible and enabled option values from DOM
19209
19481
  const visibleOptionValues = this.getVisibleEnabledOptionItems();
19210
- console.info('[SelectAll][Options] toggleSelectAllOptions called. selectAll:', selectAll, 'visibleOptionValues:', visibleOptionValues, 'Current value:', this.value);
19211
19482
  if (selectAll) {
19212
19483
  // Select all visible options - merge with existing selections
19213
19484
  this.value = [...new Set([...this.value, ...visibleOptionValues])];
@@ -19216,7 +19487,6 @@ class NvFieldmultiselect {
19216
19487
  // Deselect only the visible options, keep others that might be filtered out
19217
19488
  this.value = this.value.filter(val => !visibleOptionValues.includes(val));
19218
19489
  }
19219
- console.info('[SelectAll][Options] New value after toggle:', this.value);
19220
19490
  // Emit the change event
19221
19491
  this.valueChanged.emit(this.value);
19222
19492
  // Synchronize child components
@@ -19242,7 +19512,6 @@ class NvFieldmultiselect {
19242
19512
  try {
19243
19513
  // Get visible and enabled items
19244
19514
  const items = this.getVisibleEnabledSlotItems();
19245
- console.info('[SelectAll][Slots] toggleSelectAllSlots called. selectAll:', selectAll, 'visible slot items:', items.map(item => item.getAttribute('value') || item.getAttribute('label')), 'Current value:', this.value);
19246
19515
  if (selectAll) {
19247
19516
  // Select all visible items
19248
19517
  const allActiveValues = items
@@ -19257,7 +19526,6 @@ class NvFieldmultiselect {
19257
19526
  .filter(value => value !== '');
19258
19527
  this.value = this.value.filter(val => !visibleValues.includes(val));
19259
19528
  }
19260
- console.info('[SelectAll][Slots] New value after toggle:', this.value);
19261
19529
  // Emit the change event
19262
19530
  this.valueChanged.emit(this.value);
19263
19531
  // Force synchronization with a small delay to ensure DOM is updated
@@ -19280,15 +19548,12 @@ class NvFieldmultiselect {
19280
19548
  this.handleSelectAllCheckboxOptionsClick = (event) => {
19281
19549
  event.stopPropagation();
19282
19550
  event.preventDefault();
19283
- console.info('[handleSelectAllCheckboxOptionsClick] event:', event);
19284
19551
  const currentState = this.getSelectAllCheckboxStateOptions();
19285
- console.info('[SelectAll][Options] Checkbox clicked. Current state:', currentState, 'Current value:', this.value);
19286
19552
  // Logic to handle the indeterminate state
19287
19553
  // - unchecked → select all
19288
19554
  // - indeterminate → select all (clicking on indeterminate will change to checked)
19289
19555
  // - checked → deselect all
19290
19556
  const shouldSelectAll = currentState === 'unchecked' || currentState === 'indeterminate';
19291
- console.info('[SelectAll][Options] shouldSelectAll:', shouldSelectAll);
19292
19557
  this.toggleSelectAllOptions(shouldSelectAll);
19293
19558
  };
19294
19559
  /**
@@ -19298,15 +19563,12 @@ class NvFieldmultiselect {
19298
19563
  this.handleSelectAllCheckboxSlotsClick = (event) => {
19299
19564
  event.stopPropagation();
19300
19565
  event.preventDefault();
19301
- console.info('[handleSelectAllCheckboxSlotsClick] event:', event);
19302
19566
  const currentState = this.getSelectAllCheckboxStateSlots();
19303
- console.info('[SelectAll][Slots] Checkbox clicked. Current state:', currentState, 'Current value:', this.value);
19304
19567
  // Logic to handle the indeterminate state
19305
19568
  // - unchecked → select all
19306
19569
  // - indeterminate → select all (clicking on indeterminate will change to checked)
19307
19570
  // - checked → deselect all
19308
19571
  const shouldSelectAll = currentState === 'unchecked' || currentState === 'indeterminate';
19309
- console.info('[SelectAll][Slots] shouldSelectAll:', shouldSelectAll);
19310
19572
  this.toggleSelectAllSlots(shouldSelectAll);
19311
19573
  };
19312
19574
  //#endregion METHODS
@@ -19349,8 +19611,6 @@ class NvFieldmultiselect {
19349
19611
  /****************************************************************************/
19350
19612
  //#region WATCHERS
19351
19613
  handleOptionsChange(newValue) {
19352
- console.info('[Watch:options] newValue:', newValue);
19353
- console.info('[Watch:options] current value before update:', this.value);
19354
19614
  if (!newValue)
19355
19615
  return;
19356
19616
  // If the parent has set a value prop, use it. Otherwise, derive from checked options.
@@ -19359,22 +19619,18 @@ class NvFieldmultiselect {
19359
19619
  this.value = newValue
19360
19620
  .filter(option => option.checked)
19361
19621
  .map(option => option.value);
19362
- console.info('[Watch:options] updated value from checked options:', this.value);
19363
19622
  }
19364
19623
  else {
19365
19624
  // If value is set, ensure checked states in options match value
19366
19625
  newValue.forEach(option => {
19367
19626
  option.checked = this.value.includes(option.value);
19368
19627
  });
19369
- console.info('[Watch:options] options checked state synced to value:', newValue);
19370
19628
  }
19371
19629
  this.reorderOptionsContent();
19372
19630
  }
19373
19631
  watchValueHandler() {
19374
- console.info('[Watch:value] Value changed:', this.value, 'isBulkOperation:', this.isBulkOperation);
19375
19632
  // Skip processing during bulk operations
19376
19633
  if (this.isBulkOperation) {
19377
- console.info('[Watch:value] Skipping syncChildComponents and options update due to bulk operation');
19378
19634
  return;
19379
19635
  }
19380
19636
  // Synchronize child components when value changes programmatically
@@ -19423,11 +19679,9 @@ class NvFieldmultiselect {
19423
19679
  handleItemChecked(event) {
19424
19680
  if (this.disabled || this.readonly || this.isBulkOperation) {
19425
19681
  // Skip processing itemChecked events during bulk operations
19426
- console.info('[Event:itemChecked] Skipped due to bulk operation or disabled/readonly', event.detail);
19427
19682
  return;
19428
19683
  }
19429
19684
  const { value, checked } = event.detail;
19430
- console.info('[Event:itemChecked] value:', value, 'checked:', checked, 'current value:', this.value);
19431
19685
  if (value !== undefined && value !== null) {
19432
19686
  const newValue = [...this.value];
19433
19687
  const valueIndex = newValue.indexOf(value);
@@ -19440,7 +19694,6 @@ class NvFieldmultiselect {
19440
19694
  newValue.splice(valueIndex, 1);
19441
19695
  hasChanged = true;
19442
19696
  }
19443
- console.info('[Event:itemChecked] newValue after update:', newValue);
19444
19697
  if (hasChanged) {
19445
19698
  this.value = newValue;
19446
19699
  this.valueChanged.emit(this.value);
@@ -19474,7 +19727,6 @@ class NvFieldmultiselect {
19474
19727
  * Subscribe to click outside event.
19475
19728
  */
19476
19729
  connectedCallback() {
19477
- console.info('[Lifecycle] connectedCallback - value:', this.value);
19478
19730
  // Bind once and reuse the same reference for add/remove to avoid leaks
19479
19731
  if (!this._boundHandleClickOutside) {
19480
19732
  this._boundHandleClickOutside = this.handleClickOutside.bind(this);
@@ -19486,7 +19738,6 @@ class NvFieldmultiselect {
19486
19738
  */
19487
19739
  componentWillLoad() {
19488
19740
  var _a;
19489
- console.info('[Lifecycle] componentWillLoad - value:', this.value, 'options:', this.options);
19490
19741
  // Don't call handleOptionsChange if we are in slots mode
19491
19742
  if (this.options) {
19492
19743
  this.handleOptionsChange(this.options);
@@ -19520,7 +19771,6 @@ class NvFieldmultiselect {
19520
19771
  * Force reorder if options mode in componentDidLoad because of the initial render not trigger @watch
19521
19772
  */
19522
19773
  componentDidLoad() {
19523
- console.info('[Lifecycle] componentDidLoad - value:', this.value, 'options:', this.options);
19524
19774
  if (this.options) {
19525
19775
  this.handleOptionsChange(this.options);
19526
19776
  }
@@ -19536,7 +19786,6 @@ class NvFieldmultiselect {
19536
19786
  * Unsubscribe from click outside event.
19537
19787
  */
19538
19788
  disconnectedCallback() {
19539
- console.info('[Lifecycle] disconnectedCallback - value:', this.value);
19540
19789
  if (this._boundHandleClickOutside) {
19541
19790
  document.removeEventListener('click', this._boundHandleClickOutside);
19542
19791
  }
@@ -19581,7 +19830,6 @@ class NvFieldmultiselect {
19581
19830
  * @returns {string[]} The selected values.
19582
19831
  */
19583
19832
  async getSelectedValues() {
19584
- console.info('getSelectedValues:', this.value);
19585
19833
  return this.value;
19586
19834
  }
19587
19835
  /**
@@ -20062,12 +20310,10 @@ class NvFieldmultiselect {
20062
20310
  return;
20063
20311
  }
20064
20312
  const items = Array.from(this.el.querySelectorAll('nv-fielddropdownitemcheck'));
20065
- console.info('[syncChildComponents] value:', this.value);
20066
20313
  items.forEach(item => {
20067
20314
  // Get the effective value: use explicit value if present, otherwise use label
20068
20315
  const itemValue = item.getAttribute('value') || item.getAttribute('label') || '';
20069
20316
  const shouldBeChecked = this.value.includes(itemValue);
20070
- console.info('[syncChildComponents] itemValue:', itemValue, 'shouldBeChecked:', shouldBeChecked, 'item.checked(before):', item.checked);
20071
20317
  // Only update if the checked state differs to avoid triggering unnecessary events
20072
20318
  if (item.checked !== shouldBeChecked) {
20073
20319
  // Set attribute and property, but avoid triggering itemChecked during bulk
@@ -20086,7 +20332,6 @@ class NvFieldmultiselect {
20086
20332
  item.checked = shouldBeChecked;
20087
20333
  }
20088
20334
  }
20089
- console.info('[syncChildComponents] itemValue:', itemValue, 'item.checked(after):', item.checked);
20090
20335
  });
20091
20336
  }
20092
20337
  /**
@@ -20184,7 +20429,6 @@ class NvFieldmultiselect {
20184
20429
  .map(item => item.getAttribute('value') || item.getAttribute('label') || '');
20185
20430
  // Combine with current this.value (set by code), ensuring uniqueness
20186
20431
  this.value = Array.from(new Set([...(this.value || []), ...checkedValues]));
20187
- console.info('[initializeValueFromSlots] checkedValues:', checkedValues, 'combined value:', this.value);
20188
20432
  }
20189
20433
  /**
20190
20434
  * Renders description and error description sections
@@ -20331,7 +20575,7 @@ class NvFieldnumber {
20331
20575
  //#region METHODS
20332
20576
  this.handleInput = (event) => {
20333
20577
  const input = event.target;
20334
- this.value = Number(input.value);
20578
+ this.value = input.valueAsNumber;
20335
20579
  };
20336
20580
  this.handleInputContainerClick = () => {
20337
20581
  this.inputElement.focus();
@@ -21301,17 +21545,24 @@ const FieldInput = props => {
21301
21545
  else {
21302
21546
  inputName = name || '';
21303
21547
  }
21304
- // If hasField is false, only the containers are visible, not the input fields
21305
- const containerClass = hasField
21306
- ? 'input-container'
21307
- : 'input-container hidden-input';
21308
- return hasField ? (hAsync("div", { class: containerClass },
21309
- hAsync("nv-fieldnumber", Object.assign({ id: inputId, value: fieldValue, min: min, max: max, step: step, disabled: disabled, readonly: readonly, name: inputName }, dataAttrs, { onInput: onInput }),
21548
+ const handleValueChanged = (event) => {
21549
+ event.stopPropagation();
21550
+ const newValue = event.detail;
21551
+ if (isNaN(newValue)) {
21552
+ return;
21553
+ }
21554
+ onInput({
21555
+ value: newValue,
21556
+ index,
21557
+ });
21558
+ };
21559
+ return hasField ? (hAsync("div", { class: clsx(!hasField && 'hidden-input') },
21560
+ 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 }),
21310
21561
  labelBeforeValue && (hAsync("span", { class: "label-before", slot: "leading-input" }, labelBeforeValue)),
21311
21562
  labelAfterValue && (hAsync("span", { class: "label-after", slot: "trailing-input" }, labelAfterValue))))) : (hAsync("input", { id: inputId, type: "hidden", value: fieldValue, disabled: disabled, readonly: readonly, name: inputName }));
21312
21563
  };
21313
21564
 
21314
- 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}";
21565
+ 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}";
21315
21566
  var NvFieldsliderStyle0 = nvFieldsliderCss;
21316
21567
 
21317
21568
  /**
@@ -21344,7 +21595,8 @@ class NvFieldslider {
21344
21595
  /**
21345
21596
  * Enables an optional numeric input field alongside the slider, allowing
21346
21597
  * users to type a value directly instead of—or in addition to—using the
21347
- * slider handle.
21598
+ * slider handle. The field accepts numeric values in the format based on
21599
+ * client-side local settings.
21348
21600
  */
21349
21601
  this.hasField = false;
21350
21602
  /**
@@ -21595,16 +21847,15 @@ class NvFieldslider {
21595
21847
  };
21596
21848
  /**
21597
21849
  * Handles field input value changes.
21598
- * @param {Event} event - The input event
21850
+ * @param {FieldInputProps['onInput']} details - The parsed value and index
21599
21851
  */
21600
- this.handleFieldChange = (event) => {
21601
- const input = event.target;
21602
- const newValue = parseFloat(input.value);
21852
+ this.handleFieldChange = (details) => {
21853
+ const newValue = details.value;
21603
21854
  if (isNaN(newValue)) {
21604
21855
  return;
21605
21856
  }
21606
21857
  if (this.range) {
21607
- const fieldIndex = input.getAttribute('data-index') === '0' ? 0 : 1;
21858
+ const fieldIndex = details.index === 0 ? 0 : 1;
21608
21859
  const updatedRange = [...this.rangeValueInternal];
21609
21860
  updatedRange[fieldIndex] = newValue;
21610
21861
  this.handleValueChange(updatedRange);
@@ -21775,11 +22026,11 @@ class NvFieldslider {
21775
22026
  /****************************************************************************/
21776
22027
  //#region RENDER
21777
22028
  render() {
21778
- 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 ||
22029
+ 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 ||
21779
22030
  this.description ||
21780
- 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 ||
22031
+ 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 ||
21781
22032
  this.errorDescription ||
21782
- 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)))));
22033
+ 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)))));
21783
22034
  }
21784
22035
  static get formAssociated() { return true; }
21785
22036
  get el() { return getElement(this); }
@@ -23825,6 +24076,133 @@ class NvMenuitem {
23825
24076
  }; }
23826
24077
  }
23827
24078
 
24079
+ 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)}";
24080
+ var NvNotificationStyle0 = nvNotificationCss;
24081
+
24082
+ /**
24083
+ * @slot heading - Use this slot to insert HTML as the notification title.
24084
+ * @slot content - Use this slot to insert HTML as the notification message.
24085
+ * @slot actions - Use this slot for custom actions.
24086
+ */
24087
+ class NvNotification {
24088
+ constructor(hostRef) {
24089
+ registerInstance(this, hostRef);
24090
+ this.hiddenChanged = createEvent(this, "hiddenChanged", 7);
24091
+ /****************************************************************************/
24092
+ //#region PROPERTIES
24093
+ /**
24094
+ * Set a unique ID for the notification. Used for aria attributes and managing
24095
+ * multiple notifications.
24096
+ */
24097
+ this.uid = v4();
24098
+ /**
24099
+ * Specifies the notification type which determines the color and default icon.
24100
+ */
24101
+ this.feedback = 'information';
24102
+ /**
24103
+ * Adjusts the emphasis to make the notification more or less visually
24104
+ * prominent to users. Use this to draw attention to important actions or
24105
+ * reduce focus on less critical ones
24106
+ */
24107
+ this.emphasis = 'medium';
24108
+ /**
24109
+ * Allows the notification to be dismissed via a close button (x). The
24110
+ * notification is not dismissible unless explicitly enabled.
24111
+ */
24112
+ this.dismissible = false;
24113
+ /**
24114
+ * Controls the visibility of the notification.
24115
+ */
24116
+ this.hidden = false; // eslint-disable-line @stencil-community/reserved-member-names
24117
+ //#endregion EVENTS
24118
+ /****************************************************************************/
24119
+ //#region INTERNAL
24120
+ this.iconByFeedback = {
24121
+ [FeedbackColors.Warning]: 'alert-circle',
24122
+ [FeedbackColors.Information]: 'info-circle',
24123
+ [FeedbackColors.Success]: 'circle-check',
24124
+ [FeedbackColors.Error]: 'alert-triangle',
24125
+ [FeedbackColors.Neutral]: 'help',
24126
+ };
24127
+ this.roleByFeedback = {
24128
+ [FeedbackColors.Error]: 'alert',
24129
+ [FeedbackColors.Warning]: 'alert',
24130
+ [FeedbackColors.Information]: 'status',
24131
+ [FeedbackColors.Success]: 'status',
24132
+ [FeedbackColors.Neutral]: 'status',
24133
+ };
24134
+ }
24135
+ //#endregion PROPERTIES
24136
+ /****************************************************************************/
24137
+ //#region METHODS
24138
+ async dismiss() {
24139
+ await this.dismissAnimation();
24140
+ }
24141
+ getDefaultIcon() {
24142
+ var _a;
24143
+ return (_a = this.iconByFeedback[this.feedback]) !== null && _a !== void 0 ? _a : 'info-circle';
24144
+ }
24145
+ getAriaRole() {
24146
+ var _a;
24147
+ return (_a = this.roleByFeedback[this.feedback]) !== null && _a !== void 0 ? _a : 'status';
24148
+ }
24149
+ getAriaLive() {
24150
+ return this.getAriaRole() === 'alert' ? 'assertive' : 'polite';
24151
+ }
24152
+ getHeadingId() {
24153
+ return this.heading ? `nv-notification-${this.uid}-heading` : null;
24154
+ }
24155
+ getMessageId() {
24156
+ return this.message ? `nv-notification-${this.uid}-message` : null;
24157
+ }
24158
+ async dismissAnimation() {
24159
+ const { fadeOut } = useFade(this.container, { duration: 300 });
24160
+ const { slideOut } = useSlide(this.container, { duration: 800 });
24161
+ const { collapse } = useCollapse(this.el, {
24162
+ duration: 800,
24163
+ overflow: 'visible',
24164
+ });
24165
+ await parallel(fadeOut, slideOut, collapse).start();
24166
+ this.hidden = true;
24167
+ this.hiddenChanged.emit(true);
24168
+ }
24169
+ //#endregion INTERNAL
24170
+ /****************************************************************************/
24171
+ //#region LIFECYCLE
24172
+ componentWillLoad() {
24173
+ this.headingSlot = this.el.querySelector('[slot="heading"]');
24174
+ this.messageSlot = this.el.querySelector('[slot="content"]');
24175
+ this.actionsSlot = this.el.querySelector('[slot="actions"]');
24176
+ }
24177
+ //#endregion LIFECYCLE
24178
+ /****************************************************************************/
24179
+ //#region RENDER
24180
+ render() {
24181
+ var _a, _b, _c;
24182
+ 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" })))))));
24183
+ }
24184
+ get el() { return getElement(this); }
24185
+ static get style() { return NvNotificationStyle0; }
24186
+ static get cmpMeta() { return {
24187
+ "$flags$": 4,
24188
+ "$tagName$": "nv-notification",
24189
+ "$members$": {
24190
+ "uid": [513],
24191
+ "feedback": [513],
24192
+ "emphasis": [513],
24193
+ "heading": [513],
24194
+ "message": [513],
24195
+ "icon": [513],
24196
+ "dismissible": [516],
24197
+ "hidden": [1540],
24198
+ "dismiss": [64]
24199
+ },
24200
+ "$listeners$": undefined,
24201
+ "$lazyBundleId$": "-",
24202
+ "$attrsToReflect$": [["uid", "uid"], ["feedback", "feedback"], ["emphasis", "emphasis"], ["heading", "heading"], ["message", "message"], ["icon", "icon"], ["dismissible", "dismissible"], ["hidden", "hidden"]]
24203
+ }; }
24204
+ }
24205
+
23828
24206
  /**
23829
24207
  * Custom positioning reference element.
23830
24208
  * @see https://floating-ui.com/docs/virtual-elements
@@ -26205,7 +26583,7 @@ class NvPopover {
26205
26583
  /****************************************************************************/
26206
26584
  //#region RENDER
26207
26585
  render() {
26208
- 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" }))));
26586
+ 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" }))));
26209
26587
  }
26210
26588
  get el() { return getElement(this); }
26211
26589
  static get watchers() { return {
@@ -26252,7 +26630,7 @@ class NvRow {
26252
26630
  /****************************************************************************/
26253
26631
  //#region RENDER
26254
26632
  render() {
26255
- return (hAsync(Host, { key: '91a990d393ce32b86f66729fc69068a4a5754fe4' }, hAsync("slot", { key: '867eaa3d6b5760f3a8763a59d36c592d56325e9e' })));
26633
+ return (hAsync(Host, { key: '8415bdad0106bd3d836996c617a749294e0c19e2' }, hAsync("slot", { key: '77c069ced0dc25c4169945877c388f30d27fdc4f' })));
26256
26634
  }
26257
26635
  static get style() { return NvRowStyle0; }
26258
26636
  static get cmpMeta() { return {
@@ -26287,7 +26665,7 @@ class NvStack {
26287
26665
  /****************************************************************************/
26288
26666
  //#region RENDER
26289
26667
  render() {
26290
- 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' })));
26668
+ 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' })));
26291
26669
  }
26292
26670
  static get style() { return NvStackStyle0; }
26293
26671
  static get cmpMeta() { return {
@@ -26624,14 +27002,14 @@ class NvTable {
26624
27002
  const rows = !this.table || this.table === undefined || this.parsedData.length === 0
26625
27003
  ? []
26626
27004
  : this.table.data;
26627
- 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 &&
27005
+ 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 &&
26628
27006
  headerGroups.map(col => {
26629
27007
  return (hAsync("th", { key: col.name }, this.renderTemplate(this.headerTemplateCache.get(col.name), {}) || col.header));
26630
27008
  })))), 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 => {
26631
27009
  var _a;
26632
27010
  return (hAsync("td", null, this.renderTemplate(this.templateCache.get(col.name), row) ||
26633
27011
  ((_a = row[col.name]) !== null && _a !== void 0 ? _a : this.fallbackValue)));
26634
- })))))))), hAsync("slot", { key: '2b90fd6d1e626faff3e7eb08e2b319ce02de4ec3', name: "after" })));
27012
+ })))))))), hAsync("slot", { key: '233b61e9099f58ca0eeeb7d0f7fdc7bd71bc9065', name: "after" })));
26635
27013
  }
26636
27014
  get el() { return getElement(this); }
26637
27015
  static get watchers() { return {
@@ -26751,8 +27129,8 @@ class NvToggle {
26751
27129
  /****************************************************************************/
26752
27130
  //#region RENDER
26753
27131
  render() {
26754
- 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 ||
26755
- this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: 'ec177dadeadba62b9e69a6f3577a7a8166abb029', class: "description" }, hAsync("slot", { key: 'd52e04c1aa3a607015f01fed95cb9f2300071087', name: "description" }, this.description))))));
27132
+ 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 ||
27133
+ this.el.querySelector('[slot="description"]')) && (hAsync("div", { key: '2c157429288779ad6cc18d4e318e64830a657c54', class: "description" }, hAsync("slot", { key: 'fcfae2a0d7cdcc76d4b23c4b376c8e2496e11bb5', name: "description" }, this.description))))));
26756
27134
  }
26757
27135
  static get formAssociated() { return true; }
26758
27136
  get el() { return getElement(this); }
@@ -26828,7 +27206,7 @@ class NvTogglebutton {
26828
27206
  /****************************************************************************/
26829
27207
  //#region RENDER
26830
27208
  render() {
26831
- return (hAsync(Host, { key: '81e773d6bafc0fd451fb7e71cb14ca709af2d07e', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, hAsync("slot", { key: '4cec2d6ae5388cdfd285ab15af356e9833b0ccb3' })));
27209
+ return (hAsync(Host, { key: 'cb15a84c7e7cc27a80773613f31b98168eee8475', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, hAsync("slot", { key: '32d6b9394088d88c4671fb7809ad6aa85b240fff' })));
26832
27210
  }
26833
27211
  static get style() { return NvTogglebuttonStyle0; }
26834
27212
  static get cmpMeta() { return {
@@ -27004,7 +27382,7 @@ class NvTogglebuttongroup {
27004
27382
  /****************************************************************************/
27005
27383
  //#region RENDER
27006
27384
  render() {
27007
- return (hAsync(Host, { key: '52e2d0e1b8f0740a50a8d4d1e93af494e957b521' }, hAsync("slot", { key: 'a82248437817b4fd7aa1c64e4d544050a71b4311' })));
27385
+ return (hAsync(Host, { key: 'ce185699fabd71bb5c22e5a0d73df88067acb9d6' }, hAsync("slot", { key: 'a1e375fb1e8660f3fdb75d96f18db20735a3a64d' })));
27008
27386
  }
27009
27387
  get el() { return getElement(this); }
27010
27388
  static get watchers() { return {
@@ -27075,7 +27453,7 @@ class NvTooltip {
27075
27453
  /****************************************************************************/
27076
27454
  //#region RENDER
27077
27455
  render() {
27078
- 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" }))));
27456
+ 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" }))));
27079
27457
  }
27080
27458
  get el() { return getElement(this); }
27081
27459
  static get style() { return NvTooltipStyle0; }
@@ -27132,6 +27510,7 @@ registerComponents([
27132
27510
  NvLoader,
27133
27511
  NvMenu,
27134
27512
  NvMenuitem,
27513
+ NvNotification,
27135
27514
  NvPopover,
27136
27515
  NvRow,
27137
27516
  NvStack,