@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
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-aff3ed68.js';
2
- import { d as defineCustomElement$5 } from './p-84f4b071.js';
3
- import { d as defineCustomElement$4 } from './p-b3035205.js';
4
- import { d as defineCustomElement$3 } from './p-0b015832.js';
1
+ import { p as proxyCustomElement, H, c as createEvent, f as forceUpdate, h, d as Host } from './p-aff3ed68.js';
2
+ import { d as defineCustomElement$5 } from './p-ddd0a394.js';
3
+ import { d as defineCustomElement$4 } from './p-ca38a8a9.js';
4
+ import { d as defineCustomElement$3 } from './p-5073bfd6.js';
5
5
  import { d as defineCustomElement$2 } from './p-fda58a76.js';
6
6
 
7
7
  const nvAccordionCss = "nv-accordion{display:block;border:var(--spacing-px) solid var(--color-content-low-border);border-radius:var(--radius-rounded-lg)}nv-accordion .nv-accordion__footer{padding:var(--spacing-3);background:var(--color-level-05-background);border-radius:0 0 var(--radius-rounded-lg) var(--radius-rounded-lg);margin-top:calc(var(--spacing-px) * -1);border-top:var(--spacing-px) solid var(--color-content-low-border)}nv-accordion .nv-accordion__footer:empty{display:none}";
@@ -22,13 +22,14 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
22
22
  * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)
23
23
  */
24
24
  this.mode = 'accordion';
25
+ /**
26
+ * Index of open items (external control possible)
27
+ */
28
+ this.openIndexes = [];
25
29
  //#endregion PROPERTIES
26
30
  /****************************************************************************/
27
31
  //#region STATE
28
- /**
29
- * Internal index of open items (not exposed)
30
- */
31
- this.internalOpenIndexes = [];
32
+ this.updatingFromInternal = false;
32
33
  }
33
34
  //#endregion EVENTS
34
35
  /****************************************************************************/
@@ -53,122 +54,138 @@ const NvAccordion$1 = /*@__PURE__*/ proxyCustomElement(class NvAccordion extends
53
54
  * @param {boolean} [forceOpen] Force open (true) or close (false)
54
55
  */
55
56
  toggleItem(index, forceOpen) {
56
- let openIndexes = this.openIndexes !== undefined
57
- ? [...this.openIndexes]
58
- : [...(this.internalOpenIndexes || [])];
57
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
58
+ const item = items[index];
59
+ if (!item || item.disabled) {
60
+ console.warn('[toggleItem] Item not found or disabled:', index);
61
+ this.openChanged.emit({ openIndexes: [...(this.openIndexes || [])] });
62
+ return;
63
+ }
64
+ let openIndexes = [...(this.openIndexes || [])];
59
65
  const isOpen = openIndexes.includes(index);
60
66
  if (this.mode === 'accordion') {
61
- openIndexes = forceOpen === false || isOpen ? [] : [index];
67
+ openIndexes =
68
+ forceOpen === false || (forceOpen === undefined && isOpen)
69
+ ? []
70
+ : [index];
62
71
  }
63
72
  else {
64
73
  if (forceOpen === false) {
65
74
  openIndexes = openIndexes.filter(i => i !== index);
66
75
  }
67
- else if (!isOpen) {
76
+ else if (forceOpen === true && !isOpen) {
68
77
  openIndexes.push(index);
69
78
  }
79
+ else if (forceOpen === undefined) {
80
+ openIndexes = isOpen
81
+ ? openIndexes.filter(i => i !== index)
82
+ : [...openIndexes, index];
83
+ }
70
84
  }
71
- this.internalOpenIndexes = openIndexes;
72
- this.openChanged.emit({ openIndexes });
73
- if (this.openIndexes !== undefined) {
74
- this.openIndexes =
75
- this.mode === 'accordion'
76
- ? [openIndexes[0]].filter(x => x !== undefined)
77
- : [...openIndexes];
78
- }
79
- // Update child elements state - for both data and slot usage
85
+ this.updatingFromInternal = true;
86
+ this.openIndexes = [...openIndexes];
80
87
  this.updateChildrenState();
88
+ this.updatingFromInternal = false;
89
+ this.openChanged.emit({ openIndexes: [...openIndexes] });
81
90
  }
82
91
  /**
83
- * Updates the open state of child elements based on internalOpenIndexes
92
+ * Updates the open state of child elements based on openIndexes
84
93
  */
85
94
  async updateChildrenState() {
86
- // Force a re-render by updating the state
87
- this.internalOpenIndexes = [...(this.internalOpenIndexes || [])];
95
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
96
+ items.forEach((item, i) => {
97
+ const shouldBeOpen = (this.openIndexes || []).includes(i);
98
+ item.open = shouldBeOpen;
99
+ item.mode = this.mode;
100
+ item.setAttribute('aria-expanded', shouldBeOpen ? 'true' : 'false');
101
+ forceUpdate(item);
102
+ });
88
103
  }
89
104
  /**
90
105
  * Listens to itemToggle events from nv-accordion-item elements
91
106
  * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item
92
107
  */
93
108
  onItemToggle(event) {
94
- // Find the index of the item that emitted the event
109
+ if (this.updatingFromInternal) {
110
+ return;
111
+ }
95
112
  const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
96
113
  const targetItem = event.target;
97
114
  const index = items.indexOf(targetItem);
98
115
  if (index !== -1) {
99
- // If the event comes from an item that is opening, handle accordion mode
100
- if (event.detail === true) {
101
- if (this.mode === 'accordion') {
102
- // Close all other items
103
- items.forEach((item, i) => {
104
- if (i !== index && item.open) {
105
- item.open = false;
106
- }
107
- });
108
- this.internalOpenIndexes = [index];
109
- }
110
- else {
111
- // Add index to internalOpenIndexes if not already present
112
- if (!this.internalOpenIndexes.includes(index)) {
113
- this.internalOpenIndexes = [...this.internalOpenIndexes, index];
114
- }
115
- }
116
- }
117
- else {
118
- // If the item is closing, remove it from internalOpenIndexes
119
- this.internalOpenIndexes = this.internalOpenIndexes.filter(i => i !== index);
120
- }
121
- // Emit openChanged event
122
- this.openChanged.emit({ openIndexes: this.internalOpenIndexes });
123
- if (this.openIndexes !== undefined) {
124
- this.openIndexes =
125
- this.mode === 'accordion'
126
- ? [this.internalOpenIndexes[0]].filter(x => x !== undefined)
127
- : [...this.internalOpenIndexes];
128
- }
116
+ this.toggleItem(index, event.detail);
117
+ }
118
+ else {
119
+ console.warn('[onItemToggle] Target item not found in items list');
129
120
  }
130
121
  }
131
122
  //#endregion METHODS
132
123
  /****************************************************************************/
133
124
  //#region WATCHERS
125
+ onOpenIndexesChange(newValue, oldValue) {
126
+ if (!this.updatingFromInternal &&
127
+ newValue !== undefined &&
128
+ newValue !== oldValue) {
129
+ this.updateChildrenState();
130
+ }
131
+ }
132
+ onModeChange() {
133
+ this.updateChildrenState();
134
+ }
134
135
  //#endregion WATCHERS
135
136
  /****************************************************************************/
136
137
  //#region LIFECYCLE
137
138
  componentWillLoad() {
138
- if (this.openIndexes !== undefined) {
139
- this.internalOpenIndexes = [...this.openIndexes];
140
- }
141
- }
142
- componentDidLoad() {
143
- // If using direct child elements, initialize their state
144
- if (!this.data || this.data.length === 0) {
145
- this.updateChildrenState();
139
+ if (this.openIndexes === undefined) {
140
+ this.openIndexes = [];
146
141
  }
147
142
  }
148
- componentWillUpdate() {
149
- if (this.openIndexes !== undefined) {
150
- this.internalOpenIndexes = [...this.openIndexes];
143
+ async componentDidLoad() {
144
+ var _a;
145
+ const items = Array.from(this.el.querySelectorAll('nv-accordion-item'));
146
+ // Only initialize openIndexes from child items if no data is provided and openIndexes is not explicitly set
147
+ if (!((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) &&
148
+ (!this.openIndexes || this.openIndexes.length === 0)) {
149
+ const childOpenIndexes = items
150
+ .map((item, i) => (item.hasAttribute('open') || item.open ? i : -1))
151
+ .filter(i => i !== -1);
152
+ if (childOpenIndexes.length > 0) {
153
+ this.updatingFromInternal = true;
154
+ this.openIndexes = [...childOpenIndexes];
155
+ this.updatingFromInternal = false;
156
+ this.openChanged.emit({ openIndexes: [...this.openIndexes] });
157
+ }
151
158
  }
159
+ // Ensure children are in sync with current openIndexes state
160
+ await this.updateChildrenState();
152
161
  }
153
162
  //#endregion LIFECYCLE
154
163
  /****************************************************************************/
155
164
  //#region RENDER
156
165
  render() {
157
- return (h(Host, { key: 'a6cb21b274024a00e60e0d0db780f25fab6e5bc2', role: "list", class: "nv-accordion" }, this.data && this.data.length > 0 ? (this.data.map((item, i) => {
166
+ var _a;
167
+ return (h(Host, { key: 'b5c36f19bcbd0d06e9d924ae6f9630b8b6cae05a', role: "list", class: "nv-accordion" }, ((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) ? (this.data.map((item, i) => {
158
168
  var _a;
159
- return (h("nv-accordion-item", { key: (_a = item.id) !== null && _a !== void 0 ? _a : i, itemTitle: item.title, disabled: item.disabled, open: (this.internalOpenIndexes || []).includes(i) }, item.subtitle ? (h("div", { slot: "header" }, h("div", { class: "nv-accordion-item__header-content" }, h("span", { class: "nv-accordion-item__title" }, item.title), h("span", { class: "nv-accordion-item__subtitle" }, item.subtitle)))) : null, h("div", { slot: "content" }, item.content), item.footer && h("div", { slot: "footer" }, item.footer)));
169
+ return (h("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 ? (h("div", { slot: "header" }, h("div", { class: "nv-accordion-item__header-content" }, h("span", { class: "nv-accordion-item__title" }, item.title), h("span", { class: "nv-accordion-item__subtitle" }, item.subtitle)))) : null, h("div", { slot: "content" }, item.content), item.footer && h("div", { slot: "footer" }, item.footer)));
160
170
  })) : (h("slot", null))));
161
171
  }
162
172
  get el() { return this; }
173
+ static get watchers() { return {
174
+ "openIndexes": ["onOpenIndexesChange"],
175
+ "mode": ["onModeChange"]
176
+ }; }
163
177
  static get style() { return NvAccordionStyle0; }
164
178
  }, [4, "nv-accordion", {
165
179
  "data": [16],
166
180
  "mode": [513],
167
181
  "openIndexes": [1040],
168
- "internalOpenIndexes": [32],
182
+ "updatingFromInternal": [32],
169
183
  "open": [64],
170
184
  "close": [64]
171
- }, [[0, "itemToggle", "onItemToggle"]]]);
185
+ }, [[0, "itemToggle", "onItemToggle"]], {
186
+ "openIndexes": ["onOpenIndexesChange"],
187
+ "mode": ["onModeChange"]
188
+ }]);
172
189
  function defineCustomElement$1() {
173
190
  if (typeof customElements === "undefined") {
174
191
  return;
@@ -1 +1 @@
1
- {"file":"nv-accordion.js","mappings":"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","names":["NvAccordion"],"sources":["src/components/nv-accordion/styles/nv-accordion.scss?tag=nv-accordion","src/components/nv-accordion/nv-accordion.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-accordion {\n @include accordion-root();\n\n .nv-accordion__footer {\n @include accordion-footer();\n\n &:empty {\n @include accordion-footer-empty();\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Method,\n Listen,\n Element,\n} from '@stencil/core';\n\n/**\n * @slot default - Slot for custom content (optional, ignored if data is provided)\n */\n@Component({\n tag: 'nv-accordion',\n styleUrl: 'styles/nv-accordion.scss',\n shadow: false,\n})\nexport class NvAccordion {\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * Data to display as a list of items (title, subtitle, content).\n */\n @Prop({ reflect: false })\n readonly data: {\n /** Unique identifier of the item */\n id: string;\n /** Item title */\n title: string;\n /** Optional subtitle */\n subtitle?: string;\n /** Main content */\n content: string;\n /** Optional footer */\n footer?: string;\n /** Disabled state */\n disabled?: boolean;\n }[] = [];\n\n /**\n * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)\n */\n @Prop({ reflect: true })\n readonly mode: 'accordion' | 'multi' = 'accordion';\n\n /**\n * Index of open items (external control possible)\n */\n @Prop({ reflect: false, mutable: true })\n openIndexes?: number[];\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n /**\n * Internal index of open items (not exposed)\n */\n @State()\n internalOpenIndexes: number[] = [];\n\n /**\n * Reference to host element to access children\n */\n @Element() el!: HTMLNvAccordionElement;\n //#endregion STATE\n /****************************************************************************/\n //#region EVENTS\n /**\n * Event emitted when an item's open state changes\n */\n @Event()\n openChanged: EventEmitter<{\n /** Index of open items */\n openIndexes: number[];\n }>;\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n /**\n * Opens an item by its index (Public API)\n * @param {number} index Index of the item to open\n */\n @Method()\n async open(index: number) {\n this.toggleItem(index, true);\n }\n /**\n * Closes an item by its index (Public API)\n * @param {number} index Index of the item to close\n */\n @Method()\n async close(index: number) {\n this.toggleItem(index, false);\n }\n /**\n * Toggles an item's state (internal)\n * @param {number} index Item index\n * @param {boolean} [forceOpen] Force open (true) or close (false)\n */\n private toggleItem(index: number, forceOpen?: boolean) {\n let openIndexes =\n this.openIndexes !== undefined\n ? [...this.openIndexes]\n : [...(this.internalOpenIndexes || [])];\n const isOpen = openIndexes.includes(index);\n if (this.mode === 'accordion') {\n openIndexes = forceOpen === false || isOpen ? [] : [index];\n } else {\n if (forceOpen === false) {\n openIndexes = openIndexes.filter(i => i !== index);\n } else if (!isOpen) {\n openIndexes.push(index);\n }\n }\n this.internalOpenIndexes = openIndexes;\n this.openChanged.emit({ openIndexes });\n if (this.openIndexes !== undefined) {\n this.openIndexes =\n this.mode === 'accordion'\n ? [openIndexes[0]].filter(x => x !== undefined)\n : [...openIndexes];\n }\n\n // Update child elements state - for both data and slot usage\n this.updateChildrenState();\n }\n\n /**\n * Updates the open state of child elements based on internalOpenIndexes\n */\n private async updateChildrenState() {\n // Force a re-render by updating the state\n this.internalOpenIndexes = [...(this.internalOpenIndexes || [])];\n }\n\n /**\n * Listens to itemToggle events from nv-accordion-item elements\n * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item\n */\n @Listen('itemToggle')\n onItemToggle(event: CustomEvent<boolean>) {\n // Find the index of the item that emitted the event\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n const targetItem = event.target as HTMLNvAccordionItemElement;\n const index = items.indexOf(targetItem);\n\n if (index !== -1) {\n // If the event comes from an item that is opening, handle accordion mode\n if (event.detail === true) {\n if (this.mode === 'accordion') {\n // Close all other items\n items.forEach((item, i) => {\n if (i !== index && item.open) {\n item.open = false;\n }\n });\n this.internalOpenIndexes = [index];\n } else {\n // Add index to internalOpenIndexes if not already present\n if (!this.internalOpenIndexes.includes(index)) {\n this.internalOpenIndexes = [...this.internalOpenIndexes, index];\n }\n }\n } else {\n // If the item is closing, remove it from internalOpenIndexes\n this.internalOpenIndexes = this.internalOpenIndexes.filter(\n i => i !== index,\n );\n }\n\n // Emit openChanged event\n this.openChanged.emit({ openIndexes: this.internalOpenIndexes });\n if (this.openIndexes !== undefined) {\n this.openIndexes =\n this.mode === 'accordion'\n ? [this.internalOpenIndexes[0]].filter(x => x !== undefined)\n : [...this.internalOpenIndexes];\n }\n }\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n componentWillLoad() {\n if (this.openIndexes !== undefined) {\n this.internalOpenIndexes = [...this.openIndexes];\n }\n }\n\n componentDidLoad() {\n // If using direct child elements, initialize their state\n if (!this.data || this.data.length === 0) {\n this.updateChildrenState();\n }\n }\n\n componentWillUpdate() {\n if (this.openIndexes !== undefined) {\n this.internalOpenIndexes = [...this.openIndexes];\n }\n }\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host role=\"list\" class=\"nv-accordion\">\n {this.data && this.data.length > 0 ? (\n this.data.map((item, i) => (\n <nv-accordion-item\n key={item.id ?? i}\n itemTitle={item.title}\n disabled={item.disabled}\n open={(this.internalOpenIndexes || []).includes(i)}\n >\n {item.subtitle ? (\n <div slot=\"header\">\n <div class=\"nv-accordion-item__header-content\">\n <span class=\"nv-accordion-item__title\">{item.title}</span>\n <span class=\"nv-accordion-item__subtitle\">\n {item.subtitle}\n </span>\n </div>\n </div>\n ) : null}\n <div slot=\"content\">{item.content}</div>\n {item.footer && <div slot=\"footer\">{item.footer}</div>}\n </nv-accordion-item>\n ))\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n // #endregion RENDER\n}\n"],"version":3}
1
+ {"file":"nv-accordion.js","mappings":";;;;;;AAAA,MAAM,cAAc,GAAG,gdAAgd,CAAC;AACxe,0BAAe,cAAc;;MCsBhBA,aAAW;IALxB;;;;;;;;;QAaW,SAAI,GAaP,EAAE,CAAC;;;;QAMA,SAAI,GAA0B,WAAW,CAAC;;;;QAMnD,gBAAW,GAAc,EAAE,CAAC;;;;QAOpB,yBAAoB,GAAY,KAAK,CAAC;KAiO/C;;;;;;;;IApMC,MAAM,IAAI,CAAC,KAAa;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC9B;;;;;IAOD,MAAM,KAAK,CAAC,KAAa;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAC/B;;;;;;IAOO,UAAU,CAAC,KAAa,EAAE,SAAmB;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CACd,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtE,OAAO;SACR;QAED,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YAC7B,WAAW;gBACT,SAAS,KAAK,KAAK,KAAK,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC;sBACtD,EAAE;sBACF,CAAC,KAAK,CAAC,CAAC;SACf;aAAM;YACL,IAAI,SAAS,KAAK,KAAK,EAAE;gBACvB,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;aACpD;iBAAM,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBACxC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE;gBAClC,WAAW,GAAG,MAAM;sBAChB,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;sBACpC,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;aAC7B;SACF;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;KAC1D;;;;IAKO,MAAM,mBAAmB;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CACd,CAAC;QAElC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;YACpE,WAAW,CAAC,IAAI,CAAC,CAAC;SACnB,CAAC,CAAC;KACJ;;;;;IAOD,YAAY,CAAC,KAA2B;QACtC,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO;SACR;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CACd,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAoC,CAAC;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;SACtC;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;SACpE;KACF;;;;IAOD,mBAAmB,CACjB,QAA8B,EAC9B,QAA8B;QAE9B,IACE,CAAC,IAAI,CAAC,oBAAoB;YAC1B,QAAQ,KAAK,SAAS;YACtB,QAAQ,KAAK,QAAQ,EACrB;YACA,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;KACF;IAGD,YAAY;QACV,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;;;;IAMD,iBAAiB;QACf,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAClC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACvB;KACF;IAED,MAAM,gBAAgB;;QACpB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CACd,CAAC;;QAGlC,IACE,EAAC,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA;aACjB,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,EACpD;YACA,MAAM,gBAAgB,GAAG,KAAK;iBAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBACnE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEzB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;gBACzC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;gBAElC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;aAC/D;SACF;;QAGD,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAClC;;;;IAMD,MAAM;;QACJ,QACE,EAAC,IAAI,qDAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc,IACnC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;;YAAK,QACzB,yBACE,GAAG,EAAE,MAAA,IAAI,CAAC,EAAE,mCAAI,CAAC,EACjB,SAAS,EAAE,IAAI,CAAC,KAAK,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,IAEd,IAAI,CAAC,QAAQ,IACZ,WAAK,IAAI,EAAC,QAAQ,IAChB,WAAK,KAAK,EAAC,mCAAmC,IAC5C,YAAM,KAAK,EAAC,0BAA0B,IAAE,IAAI,CAAC,KAAK,CAAQ,EAC1D,YAAM,KAAK,EAAC,6BAA6B,IACtC,IAAI,CAAC,QAAQ,CACT,CACH,CACF,IACJ,IAAI,EACR,WAAK,IAAI,EAAC,SAAS,IAAE,IAAI,CAAC,OAAO,CAAO,EACvC,IAAI,CAAC,MAAM,IAAI,WAAK,IAAI,EAAC,QAAQ,IAAE,IAAI,CAAC,MAAM,CAAO,CACpC,EACrB;SAAA,CAAC,KAEF,eAAa,CACd,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["NvAccordion"],"sources":["src/components/nv-accordion/styles/nv-accordion.scss?tag=nv-accordion","src/components/nv-accordion/nv-accordion.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-accordion {\n @include accordion-root();\n\n .nv-accordion__footer {\n @include accordion-footer();\n\n &:empty {\n @include accordion-footer-empty();\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Method,\n Listen,\n Element,\n forceUpdate,\n Watch,\n} from '@stencil/core';\n\n/**\n * @slot default - Slot for custom content (optional, ignored if data is provided)\n */\n@Component({\n tag: 'nv-accordion',\n styleUrl: 'styles/nv-accordion.scss',\n shadow: false,\n})\nexport class NvAccordion {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Data to display as a list of items (title, subtitle, content).\n */\n @Prop({ reflect: false })\n readonly data: {\n /** Unique identifier of the item */\n id: string;\n /** Item title */\n title: string;\n /** Optional subtitle */\n subtitle?: string;\n /** Main content */\n content: string;\n /** Optional footer */\n footer?: string;\n /** Disabled state */\n disabled?: boolean;\n }[] = [];\n\n /**\n * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)\n */\n @Prop({ reflect: true })\n readonly mode: 'accordion' | 'multi' = 'accordion';\n\n /**\n * Index of open items (external control possible)\n */\n @Prop({ reflect: false, mutable: true })\n openIndexes?: number[] = [];\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n\n @State()\n private updatingFromInternal: boolean = false;\n\n /**\n * Reference to host element to access children\n */\n @Element() el!: HTMLNvAccordionElement;\n\n //#endregion STATE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Event emitted when an item's open state changes\n */\n @Event()\n openChanged: EventEmitter<{\n /** Index of open items */\n openIndexes: number[];\n }>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Opens an item by its index (Public API)\n * @param {number} index Index of the item to open\n */\n @Method()\n async open(index: number) {\n this.toggleItem(index, true);\n }\n\n /**\n * Closes an item by its index (Public API)\n * @param {number} index Index of the item to close\n */\n @Method()\n async close(index: number) {\n this.toggleItem(index, false);\n }\n\n /**\n * Toggles an item's state (internal)\n * @param {number} index Item index\n * @param {boolean} [forceOpen] Force open (true) or close (false)\n */\n private toggleItem(index: number, forceOpen?: boolean) {\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n const item = items[index];\n\n if (!item || item.disabled) {\n console.warn('[toggleItem] Item not found or disabled:', index);\n this.openChanged.emit({ openIndexes: [...(this.openIndexes || [])] });\n return;\n }\n\n let openIndexes = [...(this.openIndexes || [])];\n const isOpen = openIndexes.includes(index);\n\n if (this.mode === 'accordion') {\n openIndexes =\n forceOpen === false || (forceOpen === undefined && isOpen)\n ? []\n : [index];\n } else {\n if (forceOpen === false) {\n openIndexes = openIndexes.filter(i => i !== index);\n } else if (forceOpen === true && !isOpen) {\n openIndexes.push(index);\n } else if (forceOpen === undefined) {\n openIndexes = isOpen\n ? openIndexes.filter(i => i !== index)\n : [...openIndexes, index];\n }\n }\n\n this.updatingFromInternal = true;\n this.openIndexes = [...openIndexes];\n this.updateChildrenState();\n this.updatingFromInternal = false;\n\n this.openChanged.emit({ openIndexes: [...openIndexes] });\n }\n\n /**\n * Updates the open state of child elements based on openIndexes\n */\n private async updateChildrenState() {\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n\n items.forEach((item, i) => {\n const shouldBeOpen = (this.openIndexes || []).includes(i);\n item.open = shouldBeOpen;\n item.mode = this.mode;\n item.setAttribute('aria-expanded', shouldBeOpen ? 'true' : 'false');\n forceUpdate(item);\n });\n }\n\n /**\n * Listens to itemToggle events from nv-accordion-item elements\n * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item\n */\n @Listen('itemToggle')\n onItemToggle(event: CustomEvent<boolean>) {\n if (this.updatingFromInternal) {\n return;\n }\n\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n const targetItem = event.target as HTMLNvAccordionItemElement;\n const index = items.indexOf(targetItem);\n\n if (index !== -1) {\n this.toggleItem(index, event.detail);\n } else {\n console.warn('[onItemToggle] Target item not found in items list');\n }\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('openIndexes')\n onOpenIndexesChange(\n newValue: number[] | undefined,\n oldValue: number[] | undefined,\n ) {\n if (\n !this.updatingFromInternal &&\n newValue !== undefined &&\n newValue !== oldValue\n ) {\n this.updateChildrenState();\n }\n }\n\n @Watch('mode')\n onModeChange() {\n this.updateChildrenState();\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (this.openIndexes === undefined) {\n this.openIndexes = [];\n }\n }\n\n async componentDidLoad() {\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n\n // Only initialize openIndexes from child items if no data is provided and openIndexes is not explicitly set\n if (\n !this.data?.length &&\n (!this.openIndexes || this.openIndexes.length === 0)\n ) {\n const childOpenIndexes = items\n .map((item, i) => (item.hasAttribute('open') || item.open ? i : -1))\n .filter(i => i !== -1);\n\n if (childOpenIndexes.length > 0) {\n this.updatingFromInternal = true;\n this.openIndexes = [...childOpenIndexes];\n this.updatingFromInternal = false;\n\n this.openChanged.emit({ openIndexes: [...this.openIndexes] });\n }\n }\n\n // Ensure children are in sync with current openIndexes state\n await this.updateChildrenState();\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host role=\"list\" class=\"nv-accordion\">\n {this.data?.length ? (\n this.data.map((item, i) => (\n <nv-accordion-item\n key={item.id ?? i}\n itemTitle={item.title}\n disabled={item.disabled}\n open={(this.openIndexes || []).includes(i)}\n mode={this.mode}\n >\n {item.subtitle ? (\n <div slot=\"header\">\n <div class=\"nv-accordion-item__header-content\">\n <span class=\"nv-accordion-item__title\">{item.title}</span>\n <span class=\"nv-accordion-item__subtitle\">\n {item.subtitle}\n </span>\n </div>\n </div>\n ) : null}\n <div slot=\"content\">{item.content}</div>\n {item.footer && <div slot=\"footer\">{item.footer}</div>}\n </nv-accordion-item>\n ))\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n\n // #endregion RENDER\n}\n"],"version":3}
@@ -1,13 +1,13 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-aff3ed68.js';
2
2
  import { c as clsx } from './p-8a1a6e56.js';
3
- import { F as FeedbackColors } from './p-5f594b35.js';
4
- import { u as useCollapse } from './p-9a263d0e.js';
5
- import { u as useFade } from './p-1cbacdba.js';
6
- import './p-09cdd71f.js';
7
- import { t as timeline } from './p-15aeab4d.js';
8
- import { d as defineCustomElement$2 } from './p-b3035205.js';
3
+ import { F as FeedbackColors } from './p-2277cfc8.js';
4
+ import { u as useCollapse } from './p-31591941.js';
5
+ import { u as useFade } from './p-ee0df37f.js';
6
+ import './p-42ea6b74.js';
7
+ import { t as timeline } from './p-a52cd849.js';
8
+ import { d as defineCustomElement$2 } from './p-ca38a8a9.js';
9
9
 
10
- const nvAlertCss = "nv-alert{display:flex !important;align-items:flex-start;position:relative;gap:var(--alert-gap-x);border-radius:var(--alert-radius);font-family:\"TT Norms Pro\", \"Montserrat\", sans-serif}nv-alert>nv-icon{margin-left:var(--alert-icon-position-x);margin-top:var(--alert-icon-position-y)}nv-alert.hidden{display:none !important}nv-alert.feedback-information{background-color:var(--components-alert-information-background);border:1px solid var(--components-alert-information-border) !important}nv-alert.feedback-information>.close:focus,nv-alert.feedback-information>.close:focus-within{outline:none}nv-alert.feedback-information>.close:focus-visible,nv-alert.feedback-information>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-information-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-warning{background-color:var(--components-alert-warning-background);border:1px solid var(--components-alert-warning-border) !important}nv-alert.feedback-warning>.close:focus,nv-alert.feedback-warning>.close:focus-within{outline:none}nv-alert.feedback-warning>.close:focus-visible,nv-alert.feedback-warning>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-warning-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-error{background-color:var(--components-alert-error-background);border:1px solid var(--components-alert-error-border) !important}nv-alert.feedback-error>.close:focus,nv-alert.feedback-error>.close:focus-within{outline:none}nv-alert.feedback-error>.close:focus-visible,nv-alert.feedback-error>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-error-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-success{background-color:var(--components-alert-success-background);border:1px solid var(--components-alert-success-border) !important}nv-alert.feedback-success>.close:focus,nv-alert.feedback-success>.close:focus-within{outline:none}nv-alert.feedback-success>.close:focus-visible,nv-alert.feedback-success>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-success-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-neutral{background-color:var(--components-alert-neutral-background);border:1px solid var(--components-alert-neutral-border) !important}nv-alert.feedback-neutral>.close:focus,nv-alert.feedback-neutral>.close:focus-within{outline:none}nv-alert.feedback-neutral>.close:focus-visible,nv-alert.feedback-neutral>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-neutral-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert>nv-icon.icon-information{color:var(--components-alert-information-icon)}nv-alert>nv-icon.icon-warning{color:var(--components-alert-warning-icon)}nv-alert>nv-icon.icon-error{color:var(--components-alert-error-icon)}nv-alert>nv-icon.icon-success{color:var(--components-alert-success-icon)}nv-alert>nv-icon.icon-neutral{color:var(--components-alert-neutral-icon)}nv-alert>.content{display:flex;padding:var(--alert-padding);padding-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}";
10
+ const nvAlertCss = "nv-alert{display:flex !important;align-items:flex-start;position:relative;gap:var(--alert-gap-x);border-radius:var(--alert-radius);font-family:\"TT Norms Pro\", \"Montserrat\", sans-serif}nv-alert>nv-icon{margin-left:var(--alert-icon-position-x);margin-top:var(--alert-icon-position-y)}nv-alert.hidden{display:none !important}nv-alert.feedback-information{background-color:var(--components-alert-information-background);border:1px solid var(--components-alert-information-border) !important}nv-alert.feedback-information>.close:focus,nv-alert.feedback-information>.close:focus-within{outline:none}nv-alert.feedback-information>.close:focus-visible,nv-alert.feedback-information>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-information-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-warning{background-color:var(--components-alert-warning-background);border:1px solid var(--components-alert-warning-border) !important}nv-alert.feedback-warning>.close:focus,nv-alert.feedback-warning>.close:focus-within{outline:none}nv-alert.feedback-warning>.close:focus-visible,nv-alert.feedback-warning>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-warning-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-error{background-color:var(--components-alert-error-background);border:1px solid var(--components-alert-error-border) !important}nv-alert.feedback-error>.close:focus,nv-alert.feedback-error>.close:focus-within{outline:none}nv-alert.feedback-error>.close:focus-visible,nv-alert.feedback-error>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-error-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-success{background-color:var(--components-alert-success-background);border:1px solid var(--components-alert-success-border) !important}nv-alert.feedback-success>.close:focus,nv-alert.feedback-success>.close:focus-within{outline:none}nv-alert.feedback-success>.close:focus-visible,nv-alert.feedback-success>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-success-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-neutral{background-color:var(--components-alert-neutral-background);border:1px solid var(--components-alert-neutral-border) !important}nv-alert.feedback-neutral>.close:focus,nv-alert.feedback-neutral>.close:focus-within{outline:none}nv-alert.feedback-neutral>.close:focus-visible,nv-alert.feedback-neutral>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-neutral-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert>nv-icon.icon-information{color:var(--components-alert-information-icon)}nv-alert>nv-icon.icon-warning{color:var(--components-alert-warning-icon)}nv-alert>nv-icon.icon-error{color:var(--components-alert-error-icon)}nv-alert>nv-icon.icon-success{color:var(--components-alert-success-icon)}nv-alert>nv-icon.icon-neutral{color:var(--components-alert-neutral-icon)}nv-alert>.content{display:flex;padding:var(--alert-padding);padding-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}";
11
11
  const NvAlertStyle0 = nvAlertCss;
12
12
 
13
13
  const NvAlert$1 = /*@__PURE__*/ proxyCustomElement(class NvAlert extends H {
@@ -116,8 +116,8 @@ const NvAlert$1 = /*@__PURE__*/ proxyCustomElement(class NvAlert extends H {
116
116
  this.toggleHiddenClass(hidden);
117
117
  return;
118
118
  }
119
- const { fadeIn, fadeOut } = useFade(this.ref, { duration: 150 });
120
- const { collapse, expand } = useCollapse(this.ref, { duration: 150 });
119
+ const { fadeIn, fadeOut } = useFade(this.el, { duration: 150 });
120
+ const { collapse, expand } = useCollapse(this.el, { duration: 250 });
121
121
  if (hidden) {
122
122
  await timeline(fadeOut, collapse).start();
123
123
  this.toggleHiddenClass(true);
@@ -132,7 +132,7 @@ const NvAlert$1 = /*@__PURE__*/ proxyCustomElement(class NvAlert extends H {
132
132
  * @param {boolean} hidden - Whether to add or remove the hidden class
133
133
  */
134
134
  toggleHiddenClass(hidden) {
135
- this.ref.classList.toggle('hidden', hidden);
135
+ this.el.classList.toggle('hidden', hidden);
136
136
  }
137
137
  //#endregion METHODS
138
138
  /****************************************************************************/
@@ -154,7 +154,7 @@ const NvAlert$1 = /*@__PURE__*/ proxyCustomElement(class NvAlert extends H {
154
154
  }
155
155
  }
156
156
  if (this.hidden) {
157
- this.ref.classList.add('hidden');
157
+ this.el.classList.add('hidden');
158
158
  }
159
159
  }
160
160
  //#endregion LIFECYCLE
@@ -162,9 +162,9 @@ const NvAlert$1 = /*@__PURE__*/ proxyCustomElement(class NvAlert extends H {
162
162
  //#region RENDER
163
163
  render() {
164
164
  var _a;
165
- return (h(Host, { key: 'f0e75ac2c38aced1dcf76cb1d5f03becefbee71d', role: "alert", class: clsx('root', `feedback-${this.feedback}`) }, h("nv-icon", { key: '19f7fcf452d62277ab436acd20c285f44fbaecd4', name: (_a = this.icon) !== null && _a !== void 0 ? _a : this.getDefaultIcon(), class: `icon-${this.feedback}`, size: "md" }), h("div", { key: '8e656ffd0bce63bd33d92b97df21389af265e182', class: "content" }, this.heading && h("p", { key: '0aa928e8ee8605d735f890bc67128563ce3ad379', class: "heading" }, this.heading), this.message && h("p", { key: '690d9928646d25a636b2bb04eb65eee40c402f52', class: "message" }, this.message), h("slot", { key: '86309f093688dbb81ff805f1c9137b200541e905' })), this.dismissible && (h("button", { key: '387695ff1e23a7e289cf58c51042ccc561d451ad', class: "close", type: "button", onClick: this.handleDismiss }, h("nv-icon", { key: '788b99b4c56fc8c936a67ac48d2db37fdcca7631', name: "x", size: "sm" })))));
165
+ return (h(Host, { key: '08bc48f1d9bba66505e46fb26b8400f185dcc716', role: "alert", class: clsx('root', `feedback-${this.feedback}`) }, h("nv-icon", { key: 'b4846e6aee8cf6cfde913372b11675a3c0301fa3', name: (_a = this.icon) !== null && _a !== void 0 ? _a : this.getDefaultIcon(), class: `icon-${this.feedback}`, size: "md" }), h("div", { key: '61edadca039963056bdf27914829286515269a4a', class: "content" }, this.heading && h("p", { key: '25c0396ade2573a9f955302cfe52702fe5e4f531', class: "heading" }, this.heading), this.message && h("p", { key: 'dbef6eac9028f5431bb9665ca5642af5278c20d7', class: "message" }, this.message), h("slot", { key: '5aa607cb7c48783371887fd9126b247647e8b37c' })), this.dismissible && (h("button", { key: 'e6be3501788f12fac97c162c0ed64c922acd4b22', class: "close", type: "button", onClick: this.handleDismiss }, h("nv-icon", { key: 'f39c94a6cf82226eb77143bce7b4d74aff30c05a', name: "x", size: "sm" })))));
166
166
  }
167
- get ref() { return this; }
167
+ get el() { return this; }
168
168
  static get watchers() { return {
169
169
  "hidden": ["handleHiddenChange"]
170
170
  }; }
@@ -1 +1 @@
1
- {"file":"nv-alert.js","mappings":"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","names":["NvAlert"],"sources":["src/components/nv-alert/nv-alert.scss?tag=nv-alert","src/components/nv-alert/nv-alert.tsx"],"sourcesContent":["@use \"sass:map\";\n@import \"../../styles/focus-ring\";\n\n/* Variants */\n$alert-feedback: (\"information\", \"warning\", \"error\", \"success\", \"neutral\");\n\n/* Define maps for feedback-related variables */\n$components-alert-background: (\n \"information\": var(--components-alert-information-background),\n \"warning\": var(--components-alert-warning-background),\n \"error\": var(--components-alert-error-background),\n \"success\": var(--components-alert-success-background),\n \"neutral\": var(--components-alert-neutral-background)\n);\n\n$components-alert-border: (\n \"information\": var(--components-alert-information-border),\n \"warning\": var(--components-alert-warning-border),\n \"error\": var(--components-alert-error-border),\n \"success\": var(--components-alert-success-border),\n \"neutral\": var(--components-alert-neutral-border)\n);\n\n$components-alert-icon: (\n \"information\": var(--components-alert-information-icon),\n \"warning\": var(--components-alert-warning-icon),\n \"error\": var(--components-alert-error-icon),\n \"success\": var(--components-alert-success-icon),\n \"neutral\": var(--components-alert-neutral-icon)\n);\n\n@mixin root-styles() {\n display: flex !important; // override the display: none in [hidden] css\n align-items: flex-start;\n position: relative;\n gap: var(--alert-gap-x);\n border-radius: var(--alert-radius);\n font-family: \"TT Norms Pro\", \"Montserrat\", sans-serif;\n}\n\n@mixin content-styles() {\n display: flex;\n padding: var(--alert-padding);\n padding-right: calc(var(--alert-padding) + var(--icon-md) + var(--spacing-1));\n padding-left: 0;\n flex-direction: column;\n gap: var(--alert-gap-y);\n}\n\n@mixin feedback-color($feedback-type) {\n background-color: map.get($components-alert-background, $feedback-type);\n border: 1px solid map.get($components-alert-border, $feedback-type) !important;\n}\n\n@mixin icon-color($feedback-type) {\n color: map.get($components-alert-icon, $feedback-type);\n}\n\n@mixin icon-position {\n margin-left: var(--alert-icon-position-x);\n margin-top: var(--alert-icon-position-y);\n}\n\nnv-alert {\n @include root-styles();\n\n & > nv-icon {\n @include icon-position();\n }\n\n &.hidden {\n display: none!important;\n }\n\n @each $feedback in $alert-feedback {\n &.feedback-#{$feedback} {\n @include feedback-color($feedback);\n & > .close {\n @include focus-ring(map.get($components-alert-border, $feedback));\n }\n }\n }\n\n @each $feedback in $alert-feedback {\n & > nv-icon.icon-#{$feedback} {\n @include icon-color($feedback);\n }\n }\n\n & > .content {\n @include content-styles();\n\n & > .heading {\n color: var(--components-alert-content-title);\n font-size: var(--alert-heading-font-size);\n line-height: var(--alert-heading-line-height);\n font-weight: var(--alert-heading-font-weight);\n }\n & > .message {\n color: var(--components-alert-content-description);\n font-size: var(--alert-message-font-size);\n line-height: var(--alert-message-line-height);\n }\n }\n & > .close {\n border-radius: var(--alert-radius);\n position: absolute;\n display: flex;\n top: var(--alert-icon-position-y);\n right: var(--alert-icon-position-x);\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Watch,\n Element,\n} from '@stencil/core';\nimport clsx from 'clsx';\n\nimport {\n DeprecatedSemanticColors,\n FeedbackColors,\n} from '../../utils/constants';\nimport { useCollapse, useFade, timeline } from '../../animations';\n\n/**\n * @slot default - Use this slot to insert HTML into the alert content.\n */\n@Component({\n tag: 'nv-alert',\n styleUrl: 'nv-alert.scss',\n shadow: false,\n})\nexport class NvAlert {\n @Element() ref: HTMLNvAlertElement;\n\n /****************************************************************************/\n //#region DEPRECATED\n\n /**\n * Defines color of the alert.\n * @deprecated use feedback instead.\n */\n @Prop({ reflect: true })\n readonly color: `${DeprecatedSemanticColors}`;\n\n componentWillRender() {\n if (this.color) {\n switch (this.color) {\n case 'primary' as DeprecatedSemanticColors:\n this.feedback = 'warning' as FeedbackColors;\n break;\n case 'secondary' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n case 'neutral' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n default:\n this.feedback = this.color as FeedbackColors;\n }\n }\n }\n\n //#endregion DEPRECATED\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Specifies the alert type which determines the color and default icon.\n */\n @Prop({ reflect: true, mutable: true })\n feedback: `${FeedbackColors}` = 'information';\n\n /**\n * Main content of the alert. For more complex content, use the default slot\n * instead.\n */\n @Prop({ reflect: true })\n readonly message: string;\n\n /**\n * Short and concise text for the alert title.\n */\n @Prop({ reflect: true })\n readonly heading: string;\n\n /**\n * Icon associated with the alert, defaults vary based on the feedback type.\n */\n @Prop({ reflect: true })\n readonly icon: string;\n\n /**\n * Allows the alert to be dismissed via a close button (x). The alert is not\n * dismissible unless explicitly enabled.\n */\n @Prop({ reflect: true })\n readonly dismissible: boolean = false;\n\n /**\n * When true, the alert does not automatically close upon dismissing.\n * Useful for externally controlled component behavior.\n */\n @Prop({ reflect: true })\n readonly preventAutoClose: boolean = false;\n\n /**\n * Controls the visibility of the alert. Will animate with fade and collapse.\n */\n @Prop({ reflect: true, mutable: true })\n hidden: boolean = false; // eslint-disable-line @stencil-community/reserved-member-names\n\n /**\n * When true, the alert will not animate when it is hidden or shown.\n */\n @Prop({ reflect: true })\n readonly hasNoAnimations: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emits when the 'hidden' prop changes, reflecting a change in visibility.\n * Passes hidden value to the detail.\n * @bind hidden\n */\n @Event()\n hiddenChanged: EventEmitter<boolean>;\n\n /**\n * Emitted when the animations complete, detail includes the hidden value.\n */\n @Event()\n hiddenChangedComplete: EventEmitter<boolean>;\n\n /**\n * Emitted when the close button is clicked.\n */\n @Event()\n closeClicked: EventEmitter<void>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n /**\n * Used for 2 way binding with the hidden property.\n * Triggers open and close animations.\n * @param {boolean} hidden - The visibility state of the alert.\n */\n @Watch('hidden')\n async handleHiddenChange(hidden: boolean) {\n this.hiddenChanged.emit(hidden);\n\n await this.updateVisibility(hidden);\n this.hiddenChangedComplete.emit(hidden);\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Handles the dismissal of the alert, considering the preventAutoClose prop.\n * Passes the original event from the close button to the close event detail.\n * @param {MouseEvent} originalEvent - The original event from the close button.\n */\n private handleDismiss = () => {\n if (!this.preventAutoClose) {\n this.hidden = true;\n }\n\n this.closeClicked.emit();\n };\n\n /**\n * By default an icon is linked to the feedback type\n * @returns {string} - The default icon name.\n */\n private getDefaultIcon = () => {\n switch (this.feedback) {\n case FeedbackColors.Warning:\n return 'alert-circle';\n case FeedbackColors.Information:\n return 'info-circle';\n case FeedbackColors.Success:\n return 'circle-check';\n case FeedbackColors.Error:\n return 'alert-circle';\n case FeedbackColors.Neutral:\n return 'help';\n default:\n return 'info-circle';\n }\n };\n\n /**\n * Updates the visibility state of the alert with optional animations\n * @param {boolean} hidden - Whether the alert should be hidden\n */\n private async updateVisibility(hidden: boolean) {\n if (this.hasNoAnimations) {\n this.toggleHiddenClass(hidden);\n return;\n }\n\n const { fadeIn, fadeOut } = useFade(this.ref, { duration: 150 });\n const { collapse, expand } = useCollapse(this.ref, { duration: 150 });\n\n if (hidden) {\n await timeline(fadeOut, collapse).start();\n this.toggleHiddenClass(true);\n } else {\n this.toggleHiddenClass(false);\n await timeline(expand, fadeIn).start();\n }\n }\n\n /**\n * Toggles the 'hidden' class on the element\n * @param {boolean} hidden - Whether to add or remove the hidden class\n */\n private toggleHiddenClass(hidden: boolean) {\n this.ref.classList.toggle('hidden', hidden);\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (this.color) {\n switch (this.color) {\n case 'primary' as DeprecatedSemanticColors:\n this.feedback = 'warning' as FeedbackColors;\n break;\n case 'secondary' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n case 'neutral' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n default:\n this.feedback = this.color as FeedbackColors;\n }\n }\n\n if (this.hidden) {\n this.ref.classList.add('hidden');\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host role=\"alert\" class={clsx('root', `feedback-${this.feedback}`)}>\n <nv-icon\n name={this.icon ?? this.getDefaultIcon()}\n class={`icon-${this.feedback}`}\n size=\"md\"\n ></nv-icon>\n\n <div class=\"content\">\n {this.heading && <p class=\"heading\">{this.heading}</p>}\n\n {this.message && <p class=\"message\">{this.message}</p>}\n\n <slot></slot>\n </div>\n\n {this.dismissible && (\n <button class=\"close\" type=\"button\" onClick={this.handleDismiss}>\n <nv-icon name=\"x\" size=\"sm\" />\n </button>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}
1
+ {"file":"nv-alert.js","mappings":"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","names":["NvAlert"],"sources":["src/components/nv-alert/nv-alert.scss?tag=nv-alert","src/components/nv-alert/nv-alert.tsx"],"sourcesContent":["@use \"sass:map\";\n@import \"../../styles/focus-ring\";\n\n/* Variants */\n$alert-feedback: (\"information\", \"warning\", \"error\", \"success\", \"neutral\");\n\n/* Define maps for feedback-related variables */\n$components-alert-background: (\n \"information\": var(--components-alert-information-background),\n \"warning\": var(--components-alert-warning-background),\n \"error\": var(--components-alert-error-background),\n \"success\": var(--components-alert-success-background),\n \"neutral\": var(--components-alert-neutral-background)\n);\n\n$components-alert-border: (\n \"information\": var(--components-alert-information-border),\n \"warning\": var(--components-alert-warning-border),\n \"error\": var(--components-alert-error-border),\n \"success\": var(--components-alert-success-border),\n \"neutral\": var(--components-alert-neutral-border)\n);\n\n$components-alert-icon: (\n \"information\": var(--components-alert-information-icon),\n \"warning\": var(--components-alert-warning-icon),\n \"error\": var(--components-alert-error-icon),\n \"success\": var(--components-alert-success-icon),\n \"neutral\": var(--components-alert-neutral-icon)\n);\n\n@mixin root-styles() {\n display: flex !important; // override the display: none in [hidden] css\n align-items: flex-start;\n position: relative;\n gap: var(--alert-gap-x);\n border-radius: var(--alert-radius);\n font-family: \"TT Norms Pro\", \"Montserrat\", sans-serif;\n}\n\n@mixin content-styles() {\n display: flex;\n padding: var(--alert-padding);\n padding-right: calc(var(--alert-padding) + var(--spacing-5) + var(--spacing-1));\n padding-left: 0;\n flex-direction: column;\n gap: var(--alert-gap-y);\n}\n\n@mixin feedback-color($feedback-type) {\n background-color: map.get($components-alert-background, $feedback-type);\n border: 1px solid map.get($components-alert-border, $feedback-type) !important;\n}\n\n@mixin icon-color($feedback-type) {\n color: map.get($components-alert-icon, $feedback-type);\n}\n\n@mixin icon-position {\n margin-left: var(--alert-icon-position-x);\n margin-top: var(--alert-icon-position-y);\n}\n\nnv-alert {\n @include root-styles();\n\n & > nv-icon {\n @include icon-position();\n }\n\n &.hidden {\n display: none!important;\n }\n\n @each $feedback in $alert-feedback {\n &.feedback-#{$feedback} {\n @include feedback-color($feedback);\n & > .close {\n @include focus-ring(map.get($components-alert-border, $feedback));\n }\n }\n }\n\n @each $feedback in $alert-feedback {\n & > nv-icon.icon-#{$feedback} {\n @include icon-color($feedback);\n }\n }\n\n & > .content {\n @include content-styles();\n\n & > .heading {\n color: var(--components-alert-content-title);\n font-size: var(--alert-heading-font-size);\n line-height: var(--alert-heading-line-height);\n font-weight: var(--alert-heading-font-weight);\n }\n & > .message {\n color: var(--components-alert-content-description);\n font-size: var(--alert-message-font-size);\n line-height: var(--alert-message-line-height);\n }\n }\n & > .close {\n border-radius: var(--alert-radius);\n position: absolute;\n display: flex;\n top: var(--alert-icon-position-y);\n right: var(--alert-icon-position-x);\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Watch,\n Element,\n} from '@stencil/core';\nimport clsx from 'clsx';\n\nimport {\n DeprecatedSemanticColors,\n FeedbackColors,\n} from '../../utils/constants';\nimport { useCollapse, useFade, timeline } from '../../animations';\nimport { type IconName } from '../nv-icon/nv-icons';\n\n/**\n * @slot default - Use this slot to insert HTML into the alert content.\n */\n@Component({\n tag: 'nv-alert',\n styleUrl: 'nv-alert.scss',\n shadow: false,\n})\nexport class NvAlert {\n @Element() el: HTMLNvAlertElement;\n\n /****************************************************************************/\n //#region DEPRECATED\n\n /**\n * Defines color of the alert.\n * @deprecated use feedback instead.\n */\n @Prop({ reflect: true })\n readonly color: `${DeprecatedSemanticColors}`;\n\n componentWillRender() {\n if (this.color) {\n switch (this.color) {\n case 'primary' as DeprecatedSemanticColors:\n this.feedback = 'warning' as FeedbackColors;\n break;\n case 'secondary' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n case 'neutral' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n default:\n this.feedback = this.color as FeedbackColors;\n }\n }\n }\n\n //#endregion DEPRECATED\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Specifies the alert type which determines the color and default icon.\n */\n @Prop({ reflect: true, mutable: true })\n feedback: `${FeedbackColors}` = 'information';\n\n /**\n * Main content of the alert. For more complex content, use the default slot\n * instead.\n */\n @Prop({ reflect: true })\n readonly message: string;\n\n /**\n * Short and concise text for the alert title.\n */\n @Prop({ reflect: true })\n readonly heading: string;\n\n /**\n * Icon associated with the alert, defaults vary based on the feedback type.\n */\n @Prop({ reflect: true })\n readonly icon: string;\n\n /**\n * Allows the alert to be dismissed via a close button (x). The alert is not\n * dismissible unless explicitly enabled.\n */\n @Prop({ reflect: true })\n readonly dismissible: boolean = false;\n\n /**\n * When true, the alert does not automatically close upon dismissing.\n * Useful for externally controlled component behavior.\n */\n @Prop({ reflect: true })\n readonly preventAutoClose: boolean = false;\n\n /**\n * Controls the visibility of the alert. Will animate with fade and collapse.\n */\n @Prop({ reflect: true, mutable: true })\n hidden: boolean = false; // eslint-disable-line @stencil-community/reserved-member-names\n\n /**\n * When true, the alert will not animate when it is hidden or shown.\n */\n @Prop({ reflect: true })\n readonly hasNoAnimations: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emits when the 'hidden' prop changes, reflecting a change in visibility.\n * Passes hidden value to the detail.\n * @bind hidden\n */\n @Event()\n hiddenChanged: EventEmitter<boolean>;\n\n /**\n * Emitted when the animations complete, detail includes the hidden value.\n */\n @Event()\n hiddenChangedComplete: EventEmitter<boolean>;\n\n /**\n * Emitted when the close button is clicked.\n */\n @Event()\n closeClicked: EventEmitter<void>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n /**\n * Used for 2 way binding with the hidden property.\n * Triggers open and close animations.\n * @param {boolean} hidden - The visibility state of the alert.\n */\n @Watch('hidden')\n async handleHiddenChange(hidden: boolean) {\n this.hiddenChanged.emit(hidden);\n\n await this.updateVisibility(hidden);\n this.hiddenChangedComplete.emit(hidden);\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Handles the dismissal of the alert, considering the preventAutoClose prop.\n * Passes the original event from the close button to the close event detail.\n * @param {MouseEvent} originalEvent - The original event from the close button.\n */\n private handleDismiss = () => {\n if (!this.preventAutoClose) {\n this.hidden = true;\n }\n\n this.closeClicked.emit();\n };\n\n /**\n * By default an icon is linked to the feedback type\n * @returns {string} - The default icon name.\n */\n private getDefaultIcon = (): IconName => {\n switch (this.feedback) {\n case FeedbackColors.Warning:\n return 'alert-circle';\n case FeedbackColors.Information:\n return 'info-circle';\n case FeedbackColors.Success:\n return 'circle-check';\n case FeedbackColors.Error:\n return 'alert-circle';\n case FeedbackColors.Neutral:\n return 'help';\n default:\n return 'info-circle';\n }\n };\n\n /**\n * Updates the visibility state of the alert with optional animations\n * @param {boolean} hidden - Whether the alert should be hidden\n */\n private async updateVisibility(hidden: boolean) {\n if (this.hasNoAnimations) {\n this.toggleHiddenClass(hidden);\n return;\n }\n\n const { fadeIn, fadeOut } = useFade(this.el, { duration: 150 });\n const { collapse, expand } = useCollapse(this.el, { duration: 250 });\n\n if (hidden) {\n await timeline(fadeOut, collapse).start();\n this.toggleHiddenClass(true);\n } else {\n this.toggleHiddenClass(false);\n await timeline(expand, fadeIn).start();\n }\n }\n\n /**\n * Toggles the 'hidden' class on the element\n * @param {boolean} hidden - Whether to add or remove the hidden class\n */\n private toggleHiddenClass(hidden: boolean) {\n this.el.classList.toggle('hidden', hidden);\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (this.color) {\n switch (this.color) {\n case 'primary' as DeprecatedSemanticColors:\n this.feedback = 'warning' as FeedbackColors;\n break;\n case 'secondary' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n case 'neutral' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n default:\n this.feedback = this.color as FeedbackColors;\n }\n }\n\n if (this.hidden) {\n this.el.classList.add('hidden');\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host role=\"alert\" class={clsx('root', `feedback-${this.feedback}`)}>\n <nv-icon\n name={this.icon ?? this.getDefaultIcon()}\n class={`icon-${this.feedback}`}\n size=\"md\"\n ></nv-icon>\n\n <div class=\"content\">\n {this.heading && <p class=\"heading\">{this.heading}</p>}\n\n {this.message && <p class=\"message\">{this.message}</p>}\n\n <slot></slot>\n </div>\n\n {this.dismissible && (\n <button class=\"close\" type=\"button\" onClick={this.handleDismiss}>\n <nv-icon name=\"x\" size=\"sm\" />\n </button>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, h, d as Host } from './p-aff3ed68.js';
2
2
  import { c as clsx } from './p-8a1a6e56.js';
3
- import { S as SemanticSizes } from './p-5f594b35.js';
4
- import { d as defineCustomElement$2 } from './p-b3035205.js';
3
+ import { S as SemanticSizes } from './p-2277cfc8.js';
4
+ import { d as defineCustomElement$2 } from './p-ca38a8a9.js';
5
5
 
6
6
  const nvAvatarCss = "nv-avatar{align-items:center !important;background-color:var(--components-avatar-background-1);border-radius:var(--radius-rounded-full) !important;display:flex !important;flex-shrink:0 !important;font-family:\"TT Norms Pro\", sans-serif;font-style:normal;font-weight:var(--font-weight-medium-emphasis);justify-content:center !important;leading-trim:both;line-height:1 !important;text-align:center;text-edge:cap;text-transform:uppercase}nv-avatar.avatar-color-1{background-color:var(--components-avatar-background-1);color:var(--components-avatar-content-1)}nv-avatar.avatar-color-2{background-color:var(--components-avatar-background-2);color:var(--components-avatar-content-2)}nv-avatar.avatar-color-3{background-color:var(--components-avatar-background-3);color:var(--components-avatar-content-3)}nv-avatar.avatar-color-4{background-color:var(--components-avatar-background-4);color:var(--components-avatar-content-4)}nv-avatar.avatar-color-5{background-color:var(--components-avatar-background-5);color:var(--components-avatar-content-5)}nv-avatar.avatar-color-6{background-color:var(--components-avatar-background-6);color:var(--components-avatar-content-6)}nv-avatar.avatar-color-7{background-color:var(--components-avatar-background-7);color:var(--components-avatar-content-7)}nv-avatar.avatar-color-8{background-color:var(--components-avatar-background-8);color:var(--components-avatar-content-8)}nv-avatar.avatar-color-9{background-color:var(--components-avatar-background-9);color:var(--components-avatar-content-9)}nv-avatar.avatar-color-10{background-color:var(--components-avatar-background-10);color:var(--components-avatar-content-10)}nv-avatar img{height:100%;width:100%;object-fit:cover;object-position:center;border-radius:50%}nv-avatar.avatar-xs{width:var(--avatar-xs-size);height:var(--avatar-xs-size);font-size:var(--avatar-xs-font-size);line-height:var(--avatar-xs-font-size)}nv-avatar.avatar-xs nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-avatar.avatar-sm{width:var(--avatar-sm-size);height:var(--avatar-sm-size);font-size:var(--avatar-sm-font-size);line-height:var(--avatar-sm-font-size)}nv-avatar.avatar-sm nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-avatar.avatar-md{width:var(--avatar-md-size);height:var(--avatar-md-size);font-size:var(--avatar-md-font-size);line-height:var(--avatar-md-font-size)}nv-avatar.avatar-md nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-avatar.avatar-lg{width:var(--avatar-lg-size);height:var(--avatar-lg-size);font-size:var(--avatar-lg-font-size);line-height:var(--avatar-lg-font-size)}nv-avatar.avatar-lg nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-avatar.avatar-xl{width:var(--avatar-xl-size);height:var(--avatar-xl-size);font-size:var(--avatar-xl-font-size);line-height:var(--avatar-xl-font-size)}nv-avatar.avatar-xl nv-icon>svg{width:var(--spacing-7);height:var(--spacing-7);stroke-width:1.9px}";
7
7
  const NvAvatarStyle0 = nvAvatarCss;
@@ -1,4 +1,4 @@
1
- import { N as NvBadge$1, d as defineCustomElement$1 } from './p-ddb7aa4e.js';
1
+ import { N as NvBadge$1, d as defineCustomElement$1 } from './p-e4ac8333.js';
2
2
 
3
3
  const NvBadge = NvBadge$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, f as forceUpdate, h, d as Host } from './p-aff3ed68.js';
2
2
  import { c as clsx } from './p-8a1a6e56.js';
3
- import { d as defineCustomElement$3 } from './p-2ad58e41.js';
4
- import { d as defineCustomElement$2 } from './p-87079346.js';
3
+ import { d as defineCustomElement$3 } from './p-60244646.js';
4
+ import { d as defineCustomElement$2 } from './p-eb443b26.js';
5
5
 
6
6
  const nvBreadcrumbCss = "nv-breadcrumb{display:flex;align-items:center;color:var(--components-breadcrumb-text);font-size:var(--font-size-sm);font-style:normal;font-weight:500;line-height:var(--line-height-sm)}nv-breadcrumb.visually-hidden{position:absolute;padding:0;border:0;overflow:hidden;white-space:nowrap;width:1px;height:1px;margin:-1px;clip:rect(0, 0, 0, 0)}nv-breadcrumb ul{display:flex;flex-direction:column;gap:var(--spacing-1-5);padding:var(--spacing-1)}nv-breadcrumb ul a,nv-breadcrumb ul button{display:inline-flex;align-self:center;color:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-decoration:none}nv-breadcrumb ul a:focus,nv-breadcrumb ul a:focus-within,nv-breadcrumb ul button:focus,nv-breadcrumb ul button:focus-within{outline:none}nv-breadcrumb ul a:focus-visible,nv-breadcrumb ul a:has(:focus-visible),nv-breadcrumb ul button:focus-visible,nv-breadcrumb ul button:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 0.5) solid var(--components-breadcrumb-text-hover);outline-offset:calc(var(--focus-outline-offset) * 0.3)}nv-breadcrumb ul a:hover,nv-breadcrumb ul button:hover{text-decoration:underline;color:var(--components-breadcrumb-text-hover)}nv-breadcrumb>a,nv-breadcrumb>button{display:inline-flex;align-self:center;color:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;text-decoration:none}nv-breadcrumb>a:focus,nv-breadcrumb>a:focus-within,nv-breadcrumb>button:focus,nv-breadcrumb>button:focus-within{outline:none}nv-breadcrumb>a:focus-visible,nv-breadcrumb>a:has(:focus-visible),nv-breadcrumb>button:focus-visible,nv-breadcrumb>button:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 0.5) solid var(--components-breadcrumb-text-hover);outline-offset:calc(var(--focus-outline-offset) * 0.3)}nv-breadcrumb>a:hover,nv-breadcrumb>button:hover{text-decoration:underline;color:var(--components-breadcrumb-text-hover)}nv-breadcrumb span[data-scope=separator]{display:inline-flex;padding-left:var(--breadcrumb-padding-y)}";
7
7
  const NvBreadcrumbStyle0 = nvBreadcrumbCss;
@@ -1,4 +1,4 @@
1
- import { N as NvButton$1, d as defineCustomElement$1 } from './p-095c8285.js';
1
+ import { N as NvButton$1, d as defineCustomElement$1 } from './p-2de17259.js';
2
2
 
3
3
  const NvButton = NvButton$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { N as NvCalendar$1, d as defineCustomElement$1 } from './p-b2c31970.js';
1
+ import { N as NvCalendar$1, d as defineCustomElement$1 } from './p-68fa3890.js';
2
2
 
3
3
  const NvCalendar = NvCalendar$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,8 +1,8 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-aff3ed68.js';
2
2
  import { d as deepCopyElement, e as excludedProps } from './p-cb34aa4f.js';
3
- import { g as SortingPossibility } from './p-5f594b35.js';
4
- import { d as defineCustomElement$3 } from './p-2030d84d.js';
5
- import { d as defineCustomElement$2 } from './p-b3035205.js';
3
+ import { g as SortingPossibility } from './p-2277cfc8.js';
4
+ import { d as defineCustomElement$3 } from './p-0b5816f7.js';
5
+ import { d as defineCustomElement$2 } from './p-ca38a8a9.js';
6
6
 
7
7
  /**
8
8
  * table-core
@@ -1,11 +1,11 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-aff3ed68.js';
2
2
  import { a as addEventListeners, r as removeEventListeners } from './p-d429a343.js';
3
3
  import { c as clsx } from './p-8a1a6e56.js';
4
- import { b as ButtonType } from './p-5f594b35.js';
5
- import { d as defineCustomElement$6 } from './p-095c8285.js';
6
- import { d as defineCustomElement$5 } from './p-4c3dc7e4.js';
4
+ import { b as ButtonType } from './p-2277cfc8.js';
5
+ import { d as defineCustomElement$6 } from './p-2de17259.js';
6
+ import { d as defineCustomElement$5 } from './p-a9dc0824.js';
7
7
  import { d as defineCustomElement$4 } from './p-51876ca1.js';
8
- import { d as defineCustomElement$3 } from './p-b3035205.js';
8
+ import { d as defineCustomElement$3 } from './p-ca38a8a9.js';
9
9
  import { d as defineCustomElement$2 } from './p-fda58a76.js';
10
10
  import { v as v4 } from './p-f5ff676c.js';
11
11
 
@@ -1,4 +1,4 @@
1
- import { N as NvDialogfooter$1, d as defineCustomElement$1 } from './p-4c3dc7e4.js';
1
+ import { N as NvDialogfooter$1, d as defineCustomElement$1 } from './p-a9dc0824.js';
2
2
 
3
3
  const NvDialogfooter = NvDialogfooter$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,10 +1,10 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-aff3ed68.js';
2
- import { I as Inputmask } from './p-dc5dad90.js';
3
- import { d as defineCustomElement$6 } from './p-b2c31970.js';
4
- import { d as defineCustomElement$5 } from './p-b3035205.js';
5
- import { d as defineCustomElement$4 } from './p-0b015832.js';
2
+ import { I as Inputmask } from './p-e6c04562.js';
3
+ import { d as defineCustomElement$6 } from './p-68fa3890.js';
4
+ import { d as defineCustomElement$5 } from './p-ca38a8a9.js';
5
+ import { d as defineCustomElement$4 } from './p-5073bfd6.js';
6
6
  import { d as defineCustomElement$3 } from './p-fda58a76.js';
7
- import { d as defineCustomElement$2 } from './p-2ad58e41.js';
7
+ import { d as defineCustomElement$2 } from './p-60244646.js';
8
8
  import { v as v4 } from './p-f5ff676c.js';
9
9
 
10
10
  const nvFielddateCss = "nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fielddate{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fielddate[fluid]:not([fluid=false]){max-width:unset}nv-fielddate[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fielddate[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fielddate[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fielddate[required]:not([required=false]) label::after{content:\"*\";color:var(--components-form-text-required);font-weight:700}nv-fielddate label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fielddate nv-popover{width:100%;display:block}nv-fielddate nv-popover [data-scope=popover]{padding:0;background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:auto}nv-fielddate nv-popover [slot=content]{display:block;width:100%}nv-fielddate nv-popover .datepicker-container{border:none}nv-fielddate .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;display:flex;align-items:center;gap:8px}nv-fielddate .input-wrapper .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out}nv-fielddate .input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fielddate .input-wrapper .input-container:focus-within,nv-fielddate .input-wrapper .input-container:focus-within:hover,nv-fielddate .input-wrapper .input-container:focus,nv-fielddate .input-wrapper .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fielddate .input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fielddate .input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fielddate .input-wrapper .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;font-feature-settings:\"tnum\";font-family:\"TTNorms Pro Mono\", monospace}nv-fielddate .input-wrapper .input-container input:focus{outline:none}nv-fielddate .input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fielddate .input-wrapper .input-container input[type=password]::-ms-clear,nv-fielddate .input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fielddate .input-wrapper .input-container>nv-iconbutton{border:0px;border-radius:0px}nv-fielddate .input-wrapper .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fielddate .input-wrapper .input-container>nv-iconbutton:last-of-type{border-top-right-radius:var(--form-field-radius);border-bottom-right-radius:var(--form-field-radius)}nv-fielddate .input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default)}nv-fielddate .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fielddate .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:\"TT Norms Pro\", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}";