@nova-design-system/nova-webcomponents 3.5.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/dist/cjs/{timeline.animation-dbb9c5ea.js → collapse.animation-a129dc3f.js} +5 -26
  2. package/dist/cjs/collapse.animation-a129dc3f.js.map +1 -0
  3. package/dist/cjs/fade.animation-644b5c4d.js +70 -0
  4. package/dist/cjs/fade.animation-644b5c4d.js.map +1 -0
  5. package/dist/cjs/{grow.animation-a1f0bc22.js → grow.animation-6d003803.js} +5 -5
  6. package/dist/cjs/{grow.animation-a1f0bc22.js.map → grow.animation-6d003803.js.map} +1 -1
  7. package/dist/cjs/index-c56424e5.js +8 -0
  8. package/dist/cjs/index.cjs.js +6 -4
  9. package/dist/cjs/index.cjs.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/native.cjs.js +1 -1
  12. package/dist/cjs/nv-accordion-item.cjs.entry.js +181 -0
  13. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -0
  14. package/dist/cjs/nv-accordion.cjs.entry.js +167 -0
  15. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -0
  16. package/dist/cjs/nv-alert.cjs.entry.js +6 -4
  17. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-badge_2.cjs.entry.js +9 -7
  20. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
  22. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-calendar.cjs.entry.js +96 -66
  25. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-datagrid.cjs.entry.js +2 -2
  28. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  29. package/dist/cjs/nv-dialog.cjs.entry.js +19 -6
  30. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
  33. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nv-fielddate.cjs.entry.js +121 -35
  35. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  36. package/dist/cjs/nv-fielddaterange.cjs.entry.js +32 -4
  37. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nv-fielddropdown.cjs.entry.js +3 -3
  39. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  40. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +95 -102
  41. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  43. package/dist/cjs/nv-fieldpassword.cjs.entry.js +3 -3
  44. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  45. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  46. package/dist/cjs/nv-fieldslider.cjs.entry.js +53 -9
  47. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  49. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  50. package/dist/cjs/nv-fieldtime.cjs.entry.js +10 -10
  51. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  53. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  54. package/dist/cjs/nv-menu.cjs.entry.js +1 -1
  55. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  56. package/dist/cjs/nv-popover.cjs.entry.js +4 -3
  57. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  59. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  60. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  62. package/dist/cjs/nv-tooltip.cjs.entry.js +3 -2
  63. package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
  64. package/dist/cjs/{fade.animation-0d33d198.js → stylefire.es-717e022a.js} +1 -65
  65. package/dist/cjs/stylefire.es-717e022a.js.map +1 -0
  66. package/dist/cjs/timeline.animation-155e8839.js +25 -0
  67. package/dist/cjs/timeline.animation-155e8839.js.map +1 -0
  68. package/dist/collection/collection-manifest.json +2 -0
  69. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +153 -0
  70. package/dist/collection/components/nv-accordion/nv-accordion.docs.js.map +1 -0
  71. package/dist/collection/components/nv-accordion/nv-accordion.js +310 -0
  72. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -0
  73. package/dist/collection/components/nv-accordion/styles/nv-accordion.css +15 -0
  74. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js +6 -0
  75. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js.map +1 -0
  76. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js +353 -0
  77. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -0
  78. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +66 -0
  79. package/dist/collection/components/nv-alert/nv-alert.js +1 -1
  80. package/dist/collection/components/nv-avatar/nv-avatar.js +1 -1
  81. package/dist/collection/components/nv-badge/nv-badge.js +2 -2
  82. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
  83. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
  84. package/dist/collection/components/nv-button/nv-button.js +1 -1
  85. package/dist/collection/components/nv-calendar/nv-calendar.css +10 -0
  86. package/dist/collection/components/nv-calendar/nv-calendar.js +110 -43
  87. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  88. package/dist/collection/components/nv-calendar/nv-calendar.utils.js +0 -20
  89. package/dist/collection/components/nv-calendar/nv-calendar.utils.js.map +1 -1
  90. package/dist/collection/components/nv-calendar/partials/calendar-grid.js +6 -2
  91. package/dist/collection/components/nv-calendar/partials/calendar-grid.js.map +1 -1
  92. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js +5 -31
  93. package/dist/collection/components/nv-calendar/test/nv-calendar.utils.test.js.map +1 -1
  94. package/dist/collection/components/nv-col/nv-col.js +1 -1
  95. package/dist/collection/components/nv-datagrid/nv-datagrid.js +2 -2
  96. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
  97. package/dist/collection/components/nv-dialog/nv-dialog.css +1 -1
  98. package/dist/collection/components/nv-dialog/nv-dialog.js +38 -5
  99. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  100. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  101. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  102. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +6 -4
  103. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
  104. package/dist/collection/components/nv-fielddate/nv-fielddate.js +148 -34
  105. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  106. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +2 -0
  107. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +61 -4
  108. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  109. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +3 -3
  110. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  111. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +7 -1
  112. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js.map +1 -1
  113. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +44 -34
  114. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  115. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +127 -117
  116. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  117. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
  118. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -3
  119. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  120. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  121. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  122. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js.map +1 -1
  123. package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js +45 -1
  124. package/dist/collection/components/nv-fieldslider/nv-fieldslider.utils.js.map +1 -1
  125. package/dist/collection/components/nv-fieldslider/partials/range-thumb.js +4 -4
  126. package/dist/collection/components/nv-fieldslider/partials/range-thumb.js.map +1 -1
  127. package/dist/collection/components/nv-fieldslider/partials/single-thumb.js +3 -3
  128. package/dist/collection/components/nv-fieldslider/partials/single-thumb.js.map +1 -1
  129. package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js +42 -1
  130. package/dist/collection/components/nv-fieldslider/test/nv-fieldslider.utils.test.js.map +1 -1
  131. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  132. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  133. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  134. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  135. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +11 -13
  136. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  137. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  138. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  139. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  140. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  141. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  142. package/dist/collection/components/nv-row/nv-row.js +1 -1
  143. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  144. package/dist/collection/components/nv-table/nv-table.js +2 -2
  145. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  146. package/dist/collection/components/nv-tooltip/nv-tooltip.js +21 -3
  147. package/dist/collection/components/nv-tooltip/nv-tooltip.js.map +1 -1
  148. package/dist/components/index.js +4 -3
  149. package/dist/components/index.js.map +1 -1
  150. package/dist/components/nv-accordion-item.d.ts +11 -0
  151. package/dist/components/nv-accordion-item.js +8 -0
  152. package/dist/components/nv-accordion-item.js.map +1 -0
  153. package/dist/components/nv-accordion.d.ts +11 -0
  154. package/dist/components/nv-accordion.js +212 -0
  155. package/dist/components/nv-accordion.js.map +1 -0
  156. package/dist/components/nv-alert.js +6 -4
  157. package/dist/components/nv-alert.js.map +1 -1
  158. package/dist/components/nv-avatar.js +2 -2
  159. package/dist/components/nv-badge.js +1 -1
  160. package/dist/components/nv-breadcrumb.js +3 -3
  161. package/dist/components/nv-breadcrumbs.js +1 -1
  162. package/dist/components/nv-button.js +1 -1
  163. package/dist/components/nv-calendar.js +1 -1
  164. package/dist/components/nv-col.js +1 -1
  165. package/dist/components/nv-datagrid.js +4 -4
  166. package/dist/components/nv-datagridcolumn.js +1 -1
  167. package/dist/components/nv-dialog.js +25 -11
  168. package/dist/components/nv-dialog.js.map +1 -1
  169. package/dist/components/nv-dialogfooter.js +1 -1
  170. package/dist/components/nv-dialogheader.js +1 -1
  171. package/dist/components/nv-fieldcheckbox.js +1 -1
  172. package/dist/components/nv-fielddate.js +130 -42
  173. package/dist/components/nv-fielddate.js.map +1 -1
  174. package/dist/components/nv-fielddaterange.js +40 -11
  175. package/dist/components/nv-fielddaterange.js.map +1 -1
  176. package/dist/components/nv-fielddropdown.js +8 -8
  177. package/dist/components/nv-fielddropdownitem.js +1 -1
  178. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  179. package/dist/components/nv-fieldmultiselect.js +104 -112
  180. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  181. package/dist/components/nv-fieldnumber.js +1 -1
  182. package/dist/components/nv-fieldpassword.js +6 -6
  183. package/dist/components/nv-fieldradio.js +3 -3
  184. package/dist/components/nv-fieldselect.js +8 -8
  185. package/dist/components/nv-fieldslider.js +57 -13
  186. package/dist/components/nv-fieldslider.js.map +1 -1
  187. package/dist/components/nv-fieldtext.js +1 -1
  188. package/dist/components/nv-fieldtextarea.js +3 -3
  189. package/dist/components/nv-fieldtime.js +14 -14
  190. package/dist/components/nv-fieldtime.js.map +1 -1
  191. package/dist/components/nv-icon.js +1 -1
  192. package/dist/components/nv-iconbutton.js +1 -1
  193. package/dist/components/nv-loader.js +1 -1
  194. package/dist/components/nv-menu.js +4 -4
  195. package/dist/components/nv-menuitem.js +1 -1
  196. package/dist/components/nv-popover.js +1 -1
  197. package/dist/components/nv-row.js +1 -1
  198. package/dist/components/nv-stack.js +1 -1
  199. package/dist/components/nv-table.js +2 -2
  200. package/dist/components/nv-toggle.js +2 -2
  201. package/dist/components/nv-tooltip.js +1 -1
  202. package/dist/components/{p-9e6e26cb.js → p-0143cee0.js} +5 -5
  203. package/dist/components/p-0143cee0.js.map +1 -0
  204. package/dist/components/{p-e8c083e3.js → p-07550eac.js} +3 -3
  205. package/dist/components/{p-e8c083e3.js.map → p-07550eac.js.map} +1 -1
  206. package/dist/components/{p-1daca48a.js → p-09cdd71f.js} +2 -65
  207. package/dist/components/p-09cdd71f.js.map +1 -0
  208. package/dist/components/{p-919b5237.js → p-12258eef.js} +5 -5
  209. package/dist/components/{p-919b5237.js.map → p-12258eef.js.map} +1 -1
  210. package/dist/components/{p-05c19c9a.js → p-144e80f0.js} +4 -4
  211. package/dist/components/{p-05c19c9a.js.map → p-144e80f0.js.map} +1 -1
  212. package/dist/components/p-15aeab4d.js +23 -0
  213. package/dist/components/p-15aeab4d.js.map +1 -0
  214. package/dist/components/p-1cbacdba.js +68 -0
  215. package/dist/components/p-1cbacdba.js.map +1 -0
  216. package/dist/components/p-44df0d22.js +223 -0
  217. package/dist/components/p-44df0d22.js.map +1 -0
  218. package/dist/components/{p-cebdbb40.js → p-5d5668f0.js} +3 -3
  219. package/dist/components/{p-cebdbb40.js.map → p-5d5668f0.js.map} +1 -1
  220. package/dist/components/{p-001c888b.js → p-8067d283.js} +5 -4
  221. package/dist/components/p-8067d283.js.map +1 -0
  222. package/dist/components/{p-4badc1d2.js → p-8b82a6f4.js} +7 -7
  223. package/dist/components/{p-4badc1d2.js.map → p-8b82a6f4.js.map} +1 -1
  224. package/dist/components/{p-c1765831.js → p-8d45dbfe.js} +2 -2
  225. package/dist/components/{p-c1765831.js.map → p-8d45dbfe.js.map} +1 -1
  226. package/dist/components/{p-9f1e8ef3.js → p-91a558eb.js} +2 -2
  227. package/dist/components/{p-9f1e8ef3.js.map → p-91a558eb.js.map} +1 -1
  228. package/dist/components/{p-42301d8f.js → p-9a263d0e.js} +3 -23
  229. package/dist/components/p-9a263d0e.js.map +1 -0
  230. package/dist/components/{p-5bee0141.js → p-ba87d9d5.js} +6 -5
  231. package/dist/components/p-ba87d9d5.js.map +1 -0
  232. package/dist/components/{p-6277f746.js → p-ca130ad2.js} +2 -2
  233. package/dist/components/{p-6277f746.js.map → p-ca130ad2.js.map} +1 -1
  234. package/dist/components/{p-a0d7e0cd.js → p-d32b75ac.js} +99 -68
  235. package/dist/components/p-d32b75ac.js.map +1 -0
  236. package/dist/components/{p-970cd9b1.js → p-d576d64f.js} +5 -5
  237. package/dist/components/{p-970cd9b1.js.map → p-d576d64f.js.map} +1 -1
  238. package/dist/components/{p-e072f051.js → p-dd7ff995.js} +2 -2
  239. package/dist/components/{p-e072f051.js.map → p-dd7ff995.js.map} +1 -1
  240. package/dist/components/{p-918bb719.js → p-dfd2d4f0.js} +2 -2
  241. package/dist/components/{p-918bb719.js.map → p-dfd2d4f0.js.map} +1 -1
  242. package/dist/components/{p-44f0039b.js → p-e104c58a.js} +4 -4
  243. package/dist/components/p-e104c58a.js.map +1 -0
  244. package/dist/components/{p-00ac701f.js → p-e8e6f88a.js} +8 -6
  245. package/dist/components/p-e8e6f88a.js.map +1 -0
  246. package/dist/components/{p-d56b30ab.js → p-f97d1cb1.js} +3 -3
  247. package/dist/components/{p-d56b30ab.js.map → p-f97d1cb1.js.map} +1 -1
  248. package/dist/esm/{timeline.animation-1b88f052.js → collapse.animation-16e3af45.js} +3 -23
  249. package/dist/esm/collapse.animation-16e3af45.js.map +1 -0
  250. package/dist/esm/fade.animation-71e8e34c.js +68 -0
  251. package/dist/esm/fade.animation-71e8e34c.js.map +1 -0
  252. package/dist/esm/{grow.animation-cac164da.js → grow.animation-f7b26024.js} +2 -2
  253. package/dist/esm/{grow.animation-cac164da.js.map → grow.animation-f7b26024.js.map} +1 -1
  254. package/dist/esm/index-a1936cd0.js +8 -0
  255. package/dist/esm/index.js +5 -3
  256. package/dist/esm/index.js.map +1 -1
  257. package/dist/esm/loader.js +1 -1
  258. package/dist/esm/native.js +1 -1
  259. package/dist/esm/nv-accordion-item.entry.js +177 -0
  260. package/dist/esm/nv-accordion-item.entry.js.map +1 -0
  261. package/dist/esm/nv-accordion.entry.js +163 -0
  262. package/dist/esm/nv-accordion.entry.js.map +1 -0
  263. package/dist/esm/nv-alert.entry.js +5 -3
  264. package/dist/esm/nv-alert.entry.js.map +1 -1
  265. package/dist/esm/nv-avatar.entry.js +1 -1
  266. package/dist/esm/nv-badge_2.entry.js +7 -5
  267. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  268. package/dist/esm/nv-breadcrumb.entry.js +1 -1
  269. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  270. package/dist/esm/nv-button.entry.js +1 -1
  271. package/dist/esm/nv-calendar.entry.js +96 -66
  272. package/dist/esm/nv-calendar.entry.js.map +1 -1
  273. package/dist/esm/nv-col.entry.js +1 -1
  274. package/dist/esm/nv-datagrid.entry.js +2 -2
  275. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  276. package/dist/esm/nv-dialog.entry.js +19 -6
  277. package/dist/esm/nv-dialog.entry.js.map +1 -1
  278. package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
  279. package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
  280. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  281. package/dist/esm/nv-fielddate.entry.js +121 -35
  282. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  283. package/dist/esm/nv-fielddaterange.entry.js +32 -4
  284. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  285. package/dist/esm/nv-fielddropdown.entry.js +3 -3
  286. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  287. package/dist/esm/nv-fieldmultiselect.entry.js +95 -102
  288. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  289. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  290. package/dist/esm/nv-fieldpassword.entry.js +3 -3
  291. package/dist/esm/nv-fieldradio.entry.js +3 -3
  292. package/dist/esm/nv-fieldselect.entry.js +5 -5
  293. package/dist/esm/nv-fieldslider.entry.js +53 -9
  294. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  295. package/dist/esm/nv-fieldtext.entry.js +3 -3
  296. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  297. package/dist/esm/nv-fieldtime.entry.js +10 -10
  298. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  299. package/dist/esm/nv-icon.entry.js +1 -1
  300. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  301. package/dist/esm/nv-menu.entry.js +1 -1
  302. package/dist/esm/nv-menuitem.entry.js +1 -1
  303. package/dist/esm/nv-popover.entry.js +4 -3
  304. package/dist/esm/nv-popover.entry.js.map +1 -1
  305. package/dist/esm/nv-row.entry.js +1 -1
  306. package/dist/esm/nv-stack.entry.js +1 -1
  307. package/dist/esm/nv-table.entry.js +2 -2
  308. package/dist/esm/nv-toggle.entry.js +2 -2
  309. package/dist/esm/nv-tooltip.entry.js +4 -3
  310. package/dist/esm/nv-tooltip.entry.js.map +1 -1
  311. package/dist/esm/{fade.animation-2a077983.js → stylefire.es-74da334a.js} +2 -65
  312. package/dist/esm/stylefire.es-74da334a.js.map +1 -0
  313. package/dist/esm/timeline.animation-adf35ecb.js +23 -0
  314. package/dist/esm/timeline.animation-adf35ecb.js.map +1 -0
  315. package/dist/native/index.esm.js +1 -1
  316. package/dist/native/index.esm.js.map +1 -1
  317. package/dist/native/native.css +1 -1
  318. package/dist/native/native.esm.js +1 -1
  319. package/dist/native/native.esm.js.map +1 -1
  320. package/dist/native/p-051db87c.entry.js +2 -0
  321. package/dist/native/p-051db87c.entry.js.map +1 -0
  322. package/dist/native/{p-a0505695.entry.js → p-08452012.entry.js} +2 -2
  323. package/dist/native/p-09cdd71f.js +16 -0
  324. package/dist/native/p-09cdd71f.js.map +1 -0
  325. package/dist/native/p-0e005d95.entry.js +2 -0
  326. package/dist/native/{p-d4bf2587.entry.js.map → p-0e005d95.entry.js.map} +1 -1
  327. package/dist/native/p-10ce53ea.entry.js +2 -0
  328. package/dist/native/{p-54198779.entry.js → p-12039da4.entry.js} +2 -2
  329. package/dist/native/p-1235c007.entry.js +2 -0
  330. package/dist/native/p-15aeab4d.js +2 -0
  331. package/dist/native/p-15aeab4d.js.map +1 -0
  332. package/dist/native/{p-003b6377.entry.js → p-16ef7dd4.entry.js} +2 -2
  333. package/dist/native/{p-1d98477d.entry.js → p-1ad1bff9.entry.js} +2 -2
  334. package/dist/native/p-1cbacdba.js +2 -0
  335. package/dist/native/p-1cbacdba.js.map +1 -0
  336. package/dist/native/{p-914da1e1.entry.js → p-1f932a4b.entry.js} +2 -2
  337. package/dist/native/p-2a6783ca.entry.js +2 -0
  338. package/dist/native/p-2a6783ca.entry.js.map +1 -0
  339. package/dist/native/{p-a5c72bd3.entry.js → p-34bf336f.entry.js} +2 -2
  340. package/dist/native/{p-e293b3fe.entry.js → p-3f139780.entry.js} +2 -2
  341. package/dist/native/{p-dd256ea3.entry.js → p-40fa3328.entry.js} +2 -2
  342. package/dist/native/{p-a983e6a0.entry.js → p-4b15cff3.entry.js} +2 -2
  343. package/dist/native/p-516da423.entry.js +2 -0
  344. package/dist/native/p-516da423.entry.js.map +1 -0
  345. package/dist/native/{p-08ca678c.entry.js → p-51a57a3a.entry.js} +2 -2
  346. package/dist/native/{p-5b06f4b5.entry.js → p-64cb38e6.entry.js} +2 -2
  347. package/dist/native/{p-af1e6035.entry.js → p-67c34b8c.entry.js} +2 -2
  348. package/dist/native/{p-e9962dac.entry.js → p-68edb2e8.entry.js} +2 -2
  349. package/dist/native/p-73c08f3b.entry.js +2 -0
  350. package/dist/native/p-73c08f3b.entry.js.map +1 -0
  351. package/dist/native/p-7703c736.entry.js +2 -0
  352. package/dist/native/p-7703c736.entry.js.map +1 -0
  353. package/dist/native/{p-6029e51b.entry.js → p-85a54ef2.entry.js} +2 -2
  354. package/dist/native/p-8d45dbfe.js +2 -0
  355. package/dist/native/p-916acbd3.entry.js +2 -0
  356. package/dist/native/p-916acbd3.entry.js.map +1 -0
  357. package/dist/native/p-9a263d0e.js +2 -0
  358. package/dist/native/p-9a263d0e.js.map +1 -0
  359. package/dist/native/{p-1a5d3b87.entry.js → p-9dc1c3e7.entry.js} +2 -2
  360. package/dist/native/p-a36dc25a.entry.js +2 -0
  361. package/dist/native/{p-ad128108.entry.js.map → p-a36dc25a.entry.js.map} +1 -1
  362. package/dist/native/p-a50f3850.entry.js +2 -0
  363. package/dist/native/{p-19f484a0.entry.js → p-a73fa60a.entry.js} +2 -2
  364. package/dist/native/p-b3f9db23.entry.js +2 -0
  365. package/dist/native/{p-82568ec7.entry.js.map → p-b3f9db23.entry.js.map} +1 -1
  366. package/dist/native/p-baddee4c.entry.js +7 -0
  367. package/dist/native/p-baddee4c.entry.js.map +1 -0
  368. package/dist/native/p-bba5cc9b.entry.js +2 -0
  369. package/dist/native/p-bba5cc9b.entry.js.map +1 -0
  370. package/dist/native/{p-1e0df2d3.entry.js → p-bee62b2b.entry.js} +2 -2
  371. package/dist/native/p-dc34da69.entry.js +2 -0
  372. package/dist/native/p-dc34da69.entry.js.map +1 -0
  373. package/dist/native/p-ec92ee7a.entry.js +2 -0
  374. package/dist/native/{p-6ea1c78b.entry.js → p-f00a4552.entry.js} +2 -2
  375. package/dist/native/{p-dd6b1d79.entry.js → p-f540db71.entry.js} +2 -2
  376. package/dist/native/{p-be9aeed4.entry.js → p-f687e05c.entry.js} +2 -2
  377. package/dist/native/p-f687e05c.entry.js.map +1 -0
  378. package/dist/native/{p-b5b9190a.entry.js → p-fa81b77f.entry.js} +2 -2
  379. package/dist/native/p-fa81b77f.entry.js.map +1 -0
  380. package/dist/native/{p-2d98d4f0.entry.js → p-fcd52432.entry.js} +2 -2
  381. package/dist/types/components/nv-accordion/nv-accordion.d.ts +82 -0
  382. package/dist/types/components/nv-accordion/nv-accordion.docs.d.ts +4 -0
  383. package/dist/types/components/nv-accordion-item/nv-accordion-item.d.ts +79 -0
  384. package/dist/types/components/nv-accordion-item/nv-accordion-item.docs.d.ts +4 -0
  385. package/dist/types/components/nv-calendar/nv-calendar.d.ts +7 -1
  386. package/dist/types/components/nv-calendar/partials/calendar-grid.d.ts +6 -2
  387. package/dist/types/components/nv-dialog/nv-dialog.d.ts +7 -0
  388. package/dist/types/components/nv-fieldcheckbox/nv-fieldcheckbox.d.ts +2 -0
  389. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +27 -2
  390. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -0
  391. package/dist/types/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.d.ts +6 -0
  392. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +17 -16
  393. package/dist/types/components/nv-fieldslider/nv-fieldslider.utils.d.ts +13 -0
  394. package/dist/types/components/nv-fieldslider/partials/range-thumb.d.ts +2 -0
  395. package/dist/types/components/nv-fieldslider/partials/single-thumb.d.ts +2 -0
  396. package/dist/types/components/nv-tooltip/nv-tooltip.d.ts +7 -0
  397. package/dist/types/components.d.ts +287 -10
  398. package/dist/vscode-data.json +71 -5
  399. package/hydrate/index.js +1461 -879
  400. package/hydrate/index.mjs +1461 -879
  401. package/package.json +1 -1
  402. package/readme.md +6 -0
  403. package/dist/cjs/fade.animation-0d33d198.js.map +0 -1
  404. package/dist/cjs/timeline.animation-dbb9c5ea.js.map +0 -1
  405. package/dist/components/p-001c888b.js.map +0 -1
  406. package/dist/components/p-00ac701f.js.map +0 -1
  407. package/dist/components/p-1daca48a.js.map +0 -1
  408. package/dist/components/p-42301d8f.js.map +0 -1
  409. package/dist/components/p-44f0039b.js.map +0 -1
  410. package/dist/components/p-5bee0141.js.map +0 -1
  411. package/dist/components/p-9e6e26cb.js.map +0 -1
  412. package/dist/components/p-a0d7e0cd.js.map +0 -1
  413. package/dist/esm/fade.animation-2a077983.js.map +0 -1
  414. package/dist/esm/timeline.animation-1b88f052.js.map +0 -1
  415. package/dist/native/p-0493c51a.entry.js +0 -2
  416. package/dist/native/p-1daca48a.js +0 -16
  417. package/dist/native/p-1daca48a.js.map +0 -1
  418. package/dist/native/p-42301d8f.js +0 -2
  419. package/dist/native/p-42301d8f.js.map +0 -1
  420. package/dist/native/p-45cbe6e4.entry.js +0 -2
  421. package/dist/native/p-46428304.entry.js +0 -2
  422. package/dist/native/p-46428304.entry.js.map +0 -1
  423. package/dist/native/p-58f4dc0e.entry.js +0 -2
  424. package/dist/native/p-58f4dc0e.entry.js.map +0 -1
  425. package/dist/native/p-59b07b36.entry.js +0 -2
  426. package/dist/native/p-59b07b36.entry.js.map +0 -1
  427. package/dist/native/p-82568ec7.entry.js +0 -2
  428. package/dist/native/p-82c4bf56.entry.js +0 -2
  429. package/dist/native/p-82c4bf56.entry.js.map +0 -1
  430. package/dist/native/p-86ab23ea.entry.js +0 -2
  431. package/dist/native/p-ad128108.entry.js +0 -2
  432. package/dist/native/p-b5b9190a.entry.js.map +0 -1
  433. package/dist/native/p-b9c7b644.entry.js +0 -2
  434. package/dist/native/p-b9c7b644.entry.js.map +0 -1
  435. package/dist/native/p-be9aeed4.entry.js.map +0 -1
  436. package/dist/native/p-bee972c7.entry.js +0 -2
  437. package/dist/native/p-c1765831.js +0 -2
  438. package/dist/native/p-d21b2da2.entry.js +0 -7
  439. package/dist/native/p-d21b2da2.entry.js.map +0 -1
  440. package/dist/native/p-d4bf2587.entry.js +0 -2
  441. package/dist/native/p-eaf51f2c.entry.js +0 -2
  442. package/dist/native/p-eaf51f2c.entry.js.map +0 -1
  443. /package/dist/native/{p-a0505695.entry.js.map → p-08452012.entry.js.map} +0 -0
  444. /package/dist/native/{p-0493c51a.entry.js.map → p-10ce53ea.entry.js.map} +0 -0
  445. /package/dist/native/{p-54198779.entry.js.map → p-12039da4.entry.js.map} +0 -0
  446. /package/dist/native/{p-86ab23ea.entry.js.map → p-1235c007.entry.js.map} +0 -0
  447. /package/dist/native/{p-003b6377.entry.js.map → p-16ef7dd4.entry.js.map} +0 -0
  448. /package/dist/native/{p-1d98477d.entry.js.map → p-1ad1bff9.entry.js.map} +0 -0
  449. /package/dist/native/{p-914da1e1.entry.js.map → p-1f932a4b.entry.js.map} +0 -0
  450. /package/dist/native/{p-a5c72bd3.entry.js.map → p-34bf336f.entry.js.map} +0 -0
  451. /package/dist/native/{p-e293b3fe.entry.js.map → p-3f139780.entry.js.map} +0 -0
  452. /package/dist/native/{p-dd256ea3.entry.js.map → p-40fa3328.entry.js.map} +0 -0
  453. /package/dist/native/{p-a983e6a0.entry.js.map → p-4b15cff3.entry.js.map} +0 -0
  454. /package/dist/native/{p-08ca678c.entry.js.map → p-51a57a3a.entry.js.map} +0 -0
  455. /package/dist/native/{p-5b06f4b5.entry.js.map → p-64cb38e6.entry.js.map} +0 -0
  456. /package/dist/native/{p-af1e6035.entry.js.map → p-67c34b8c.entry.js.map} +0 -0
  457. /package/dist/native/{p-e9962dac.entry.js.map → p-68edb2e8.entry.js.map} +0 -0
  458. /package/dist/native/{p-6029e51b.entry.js.map → p-85a54ef2.entry.js.map} +0 -0
  459. /package/dist/native/{p-c1765831.js.map → p-8d45dbfe.js.map} +0 -0
  460. /package/dist/native/{p-1a5d3b87.entry.js.map → p-9dc1c3e7.entry.js.map} +0 -0
  461. /package/dist/native/{p-bee972c7.entry.js.map → p-a50f3850.entry.js.map} +0 -0
  462. /package/dist/native/{p-19f484a0.entry.js.map → p-a73fa60a.entry.js.map} +0 -0
  463. /package/dist/native/{p-1e0df2d3.entry.js.map → p-bee62b2b.entry.js.map} +0 -0
  464. /package/dist/native/{p-45cbe6e4.entry.js.map → p-ec92ee7a.entry.js.map} +0 -0
  465. /package/dist/native/{p-6ea1c78b.entry.js.map → p-f00a4552.entry.js.map} +0 -0
  466. /package/dist/native/{p-dd6b1d79.entry.js.map → p-f540db71.entry.js.map} +0 -0
  467. /package/dist/native/{p-2d98d4f0.entry.js.map → p-fcd52432.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nvFieldmultiselectCss","NvFieldmultiselectStyle0","NvFieldmultiselect","constructor","hostRef","this","inputId","uuidv4","autocomplete","value","required","readonly","disabled","error","maxHeight","open","emptyResult","filterable","debounceDelay","autofocus","fluid","badgeLabel","filterText","sortedOptions","isHandlingEscape","handleBadgeCloseOptions","valueChanged","emit","items","Array","from","el","querySelectorAll","forEach","item","checked","style","display","options","filter","option","isDivider","reorderOptionsContent","handleBadgeCloseSlots","reorderSlotContent","handlePopoverClose","resetFilter","clearFilterText","filterTextChanged","handleInputBlurOptions","setTimeout","contains","document","activeElement","handleInputContainerClickOptions","event","target","tagName","inputContainer","querySelector","classList","add","removeFocusWithin","remove","popoverElement","addEventListener","handleInputContainerClickSlots","handleInputOptions","input","debounceTimer","window","clearTimeout","filterItemsOption","handleInputSlots","filterSlotsItems","handleInputFocusOptions","handleInputFocusSlots","handleInputBlurSlots","togglePopoverOptions","togglePopoverSlots","renderOptionsMode","h","Host","label","toString","htmlFor","name","ref","triggerMode","placement","class","slot","length","color","dismissible","onCloseClicked","type","id","e","inputElement","placeholder","readOnly","onInput","onFocus","onBlur","onKeyDown","handleKeyDown","onClick","tabIndex","role","size","emphasis","tabindex","map","description","includes","renderDescriptions","renderSlotsMode","handleOptionsChange","newValue","watchValueHandler","isConnected","syncChildComponents","handleOpenChanged","stopPropagation","detail","filterItems","handleItemChecked","undefined","valueIndex","indexOf","push","splice","console","warn","handleSlotChange","requestAnimationFrame","connectedCallback","handleClickOutside","bind","componentWillLoad","Promise","resolve","then","_a","componentDidLoad","disconnectedCallback","removeEventListener","getFilterText","ul","emptyMessage","selectedItems","getAttribute","unselectedItems","manageDivider","getSelectedValues","divider","hasEmptyMessage","appendChild","createElement","className","existingEmptyMessage","trim","normalizedFilter","normalizeText","hasVisibleItems","find","opt","matchesFilter","visibleItems","visibleSelected","visibleUnselected","textContent","setAttribute","removeEmptyMessageOption","addEmptyMessageOption","visibleSelectedItems","text","normalize","replace","toLowerCase","key","focusFirstItem","preventDefault","currentIndex","findIndex","updateHighlightedItem","selectedItem","isCurrentlyChecked","hasAttribute","dispatchEvent","MouseEvent","view","bubbles","cancelable","handleEscape","async","blur","index","i","scrollIntoView","block","checkbox","focus","firstItem","existingMessage","shouldShowDivider","lastSelectedItem","after","itemValue","removeAttribute","errorDescription","hidden","render"],"sources":["src/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.scss?tag=nv-fieldmultiselect","src/components/nv-fieldmultiselect/nv-fieldmultiselect.tsx"],"sourcesContent":["@import '../../../styles/form-field';\n@import '../../../styles/scrollbar';\n\nnv-fieldmultiselect {\n @include form-field-variables();\n @include form-field-root();\n\n &[fluid]:not([fluid='false']) {\n @include form-field-fluid();\n }\n\n &[readonly]:not([readonly='false']) {\n @include form-field-readonly-variables();\n }\n\n &[error]:not([error='false']) {\n @include form-field-error-variables();\n }\n\n &[required]:not([required='false']) {\n > label {\n @include form-field-label-required();\n }\n }\n\n label {\n @include form-field-label();\n }\n\n nv-popover {\n @include form-field-popover();\n\n div[slot='content'] {\n @include scrollbar();\n max-height: calc(90vh - var(--list-dropdown-padding) * 2);\n overflow-y: auto;\n position: relative;\n }\n }\n\n .input-wrapper-multiselect {\n @include form-field-input-wrapper();\n width: 100%;\n }\n\n .input-container-multiselect {\n @include form-field-input-container();\n position: relative;\n width: 100%;\n min-height: 40px;\n\n > nv-badge {\n margin-left: var(--form-field-padding-x);\n }\n\n input,\n p.non-filterable-text {\n @include form-field-input();\n width: 100%;\n flex-grow: 1;\n margin: 0;\n min-height: 100%;\n box-sizing: border-box;\n }\n\n > nv-iconbutton {\n @include form-field-action();\n }\n\n nv-icon.validation {\n @include form-field-icon();\n }\n\n /* &:hover{\n border-color: var(--components-form-field-border-hover);\n }\n\n &:focus-visible,\n &:focus-within,\n &:focus,\n &.focus-within {\n border-color: var(--components-form-field-border-focus);\n box-shadow: 0px 0px 0px var(--focus-field-stroke)\n var(--nv-field-focus-box-shadow);\n } */\n }\n\n .non-filterable-text {\n display: block;\n border-radius: var(--form-field-radius);\n background-color: var(--nv-field-background);\n color: var(--components-form-field-content-text);\n font-size: var(--form-field-font-size);\n font-weight: 500;\n line-height: var(--form-field-line-height);\n box-sizing: border-box;\n cursor: pointer;\n height: 100%;\n min-height: 40px;\n\n span {\n display: inline-block;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n .description {\n @include form-field-description();\n }\n\n .error-description {\n @include form-field-error-description();\n }\n}\n\n.no-results-message {\n text-align: center;\n padding: 10px;\n color: var(--components-form-text-description-error);\n}\n\n.multiselect-divider {\n display: block;\n width: 100%;\n height: 1px;\n background-color: var(--components-list-dropdown-separator);\n margin: var(--list-dropdown-item-padding-y) 0;\n border: 0;\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n State,\n Listen,\n Event,\n EventEmitter,\n Watch,\n Method,\n} from '@stencil/core';\n\nimport { v4 as uuidv4 } from 'uuid';\nimport { TextInputAutocomplete } from '../../utils/constants';\n\n/**\n * @slot content - The content of the list.\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n@Component({\n tag: 'nv-fieldmultiselect',\n styleUrl: 'styles/nv-fieldmultiselect.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvFieldmultiselect {\n @Element() el: HTMLNvFieldmultiselectElement;\n private inputElement!: HTMLInputElement;\n private popoverElement!: HTMLNvPopoverElement;\n /**\n * Timer for debouncing input events.\n * Private property preferred over @State as it:\n * - Doesn't need to trigger re-renders\n * - Is purely for internal logic\n * - Improves performance by avoiding Stencil's reactivity system\n */\n private debounceTimer: number;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Sets the ID for the input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated\n * to ensure unique identification, facilitating proper label association and\n * accessibility.\n */\n @Prop({ reflect: true })\n readonly inputId: string = uuidv4();\n\n /**\n * Defines the name attribute of the input field, which is crucial for form\n * submission. This value is used as the key in the key-value pair sent to\n * the server, representing the input's data in form submissions. It should be\n * unique within the form to avoid conflicts.\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Lets you define the text that explains what users should enter in the text\n * input field. It's a crucial element for making forms clear and user-friendly.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Add helpful hints or extra information under the text input field.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * Display temporary text inside the input field.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\n\n /**\n * The autocomplete prop helps users fill out the input field faster by\n * suggesting entries they've used before, like their email or address.\n * You can turn it on to make forms more convenient or off to ensure users\n * always type in fresh data.\n */\n @Prop({ reflect: true })\n readonly autocomplete: `${TextInputAutocomplete}` = 'off';\n\n /**\n * Specifies the selected values of the multiselect field.\n * This is the canonical value for the component and is used for form submission.\n */\n @Prop({ reflect: false, mutable: true })\n value: string[] = [];\n\n /**\n * Marks the input field as required.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Display the input field's content without allowing users to change it.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * Disables the input field.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Alters the input field's appearance to indicate an error, helping users\n * identify fields that need correction.\n * @validator error\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * A description that appears when there is an error related to the multiselect\n * field.\n * @validator message\n */\n @Prop({ reflect: true })\n readonly errorDescription: string;\n\n /**\n * Defines the maximum height of the multiselect list when open.\n */\n @Prop({ reflect: true })\n readonly maxHeight: string = '';\n\n /**\n * State of the multiselect popover.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * The text to display when no items match the filter.\n */\n @Prop({ reflect: true })\n readonly emptyResult: string = 'No results found';\n\n /**\n * Enables or disables the filtering feature for the multiselect items.\n */\n @Prop({ reflect: true })\n readonly filterable: boolean = false;\n\n /**\n * List of options used to automatically generate dropdown items. This\n * provides an alternative to using the slot manually.\n *\n * @example\n * options=[{\n * \"label\": \"Option 1\",\n * \"value\": \"option1\",\n * },\n * {\n * \"label\": \"Option 2\",\n * \"value\": \"option2\",\n * }]\n */\n @Prop({ reflect: false, mutable: true })\n options?: {\n /** Label to display for the option */\n label: string;\n /** Value associated with the option */\n value: string;\n /** Whether this option is a divider */\n isDivider?: boolean;\n /** Whether this option is disabled */\n disabled?: boolean;\n /** Additional description for the option */\n description?: string;\n /** Whether this option is pre-checked */\n checked?: boolean;\n }[];\n\n /**\n * Delay in milliseconds before the search is triggered when typing in the filter input.\n * @default 300\n */\n @Prop({ reflect: true })\n readonly debounceDelay: number = 300;\n\n /**\n * Applies focus to the input field as soon as the component is mounted. This\n * is equivalent to setting the native autofocus attribute on an <input>\n * element.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n /**\n * Allows the field to stretch and fill the entire width of its container.\n */\n @Prop({ reflect: true })\n readonly fluid: boolean = false;\n\n /**\n * Text for the badge showing the number of selected items.\n */\n @Prop({ reflect: true })\n readonly badgeLabel: string = '';\n\n /**\n * The text entered by the user for filtering multiselect items.\n */\n @Prop({ reflect: true, mutable: true })\n filterText: string = '';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n\n /**\n * Sorted options for display.\n */\n @State()\n sortedOptions: Array<{\n /** Label to display for the option */\n label: string;\n /** Value associated with the option */\n value: string;\n /** Whether this option is a divider */\n isDivider?: boolean;\n }> = [];\n\n @State()\n private isHandlingEscape: boolean = false;\n\n //#endregion STATE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the selected values change.\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string[]>;\n\n /**\n * Emitted when the filter text changes.\n */\n @Event()\n filterTextChanged: EventEmitter<string>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('options')\n handleOptionsChange(newValue: typeof this.options) {\n if (!newValue) return;\n\n this.value = newValue\n .filter(option => option.checked)\n .map(option => option.value);\n\n this.reorderOptionsContent();\n }\n\n /**\n * Emitted when the value changes.\n */\n @Watch('value')\n watchValueHandler() {\n // Synchronize child components when value changes programmatically\n if (this.el && this.el.isConnected) {\n this.syncChildComponents();\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LISTENERS\n\n /**\n * Emitted when the input loses focus.\n * @param {CustomEvent<boolean>} event - The event object containing the focus state.\n */\n @Listen('openChanged')\n handleOpenChanged(event: CustomEvent<boolean>) {\n // Stop propagation to prevent the event from affecting parent components like dialogs\n event.stopPropagation();\n\n // Update `open` based on the popover state\n this.open = event.detail;\n\n if (this.open) {\n // Filter items only if there is filter text\n if (this.filterText) {\n this.filterItems();\n }\n } else {\n this.handlePopoverClose();\n }\n\n if (this.options) {\n this.reorderOptionsContent();\n } else {\n this.reorderSlotContent();\n }\n }\n\n /**\n * Listen for the `itemChecked` event emitted by child items.\n * @param {CustomEvent} event - The event object containing the selected value and its checked state.\n */\n @Listen('itemChecked')\n handleItemChecked(\n event: CustomEvent<{\n /** Value associated with the option */\n value: string;\n /** Whether this option is checked */\n checked: boolean;\n }>,\n ) {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const { value, checked } = event.detail;\n\n if (value !== undefined && value !== null) {\n const newValue = [...this.value];\n const valueIndex = newValue.indexOf(value);\n\n if (checked && valueIndex === -1) {\n newValue.push(value);\n } else if (!checked && valueIndex > -1) {\n newValue.splice(valueIndex, 1);\n }\n\n // Always update the state and emit the event when an item is checked/unchecked\n this.value = newValue;\n this.valueChanged.emit(this.value);\n\n // Update the checked state of all items to ensure consistency\n this.syncChildComponents();\n\n // Preserve the filter text in the input\n if (this.filterable && this.inputElement) {\n // Keep the current filter text in the input\n this.inputElement.value = this.filterText;\n }\n } else {\n console.warn('Received itemChecked event with undefined or null value'); // Warning log\n }\n }\n\n // Add a listener for the slot content\n @Listen('slotchange')\n handleSlotChange(event: Event) {\n // Check: we only want to reorder if it's the \"content\" slot\n const slot = event.target as HTMLSlotElement;\n if (slot && slot.name === 'content') {\n // To give other platforms (VueJS, React, etc.) time to insert all their items,\n // we place the reorder in a requestAnimationFrame\n requestAnimationFrame(() => {\n this.reorderSlotContent();\n });\n }\n }\n\n //#endregion LISTENERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n /**\n * Subscribe to click outside event.\n */\n connectedCallback() {\n document.addEventListener('click', this.handleClickOutside.bind(this));\n }\n\n /**\n * Set the mode state and handle options change.\n */\n componentWillLoad() {\n // Don't call handleOptionsChange if we are in slots mode\n if (this.options) {\n this.handleOptionsChange(this.options);\n }\n\n // Specific initialization for slots mode\n if (!this.options) {\n // Use a microtask to ensure DOM is ready\n Promise.resolve().then(() => {\n // Synchronize child components\n this.syncChildComponents();\n\n // Force a reorder after initialization\n requestAnimationFrame(() => {\n this.reorderSlotContent();\n });\n });\n }\n\n // Initialize the sorted options array with the parsed options for initial rendering\n if (this.options) {\n this.sortedOptions = [...(this.options ?? [])];\n }\n\n // Reset filter if needed\n if (!this.filterText) {\n this.resetFilter();\n }\n }\n\n /**\n * Force reorder if options mode in componentDidLoad because of the initial render not trigger @watch\n */\n componentDidLoad() {\n if (this.options) {\n this.handleOptionsChange(this.options);\n }\n\n // Final synchronization of child components after everything is loaded\n this.syncChildComponents();\n }\n\n /**\n * Unsubscribe from click outside event.\n */\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside.bind(this));\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Retrieves the current filter text entered by the user.\n * @returns {string} The filter text.\n */\n @Method()\n async getFilterText(): Promise<string> {\n return this.filterText;\n }\n\n /**\n * Reset the filter and make all items visible.\n */\n @Method()\n async resetFilter(): Promise<void> {\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n // Reset visibility state of all dropdown items\n items.forEach(item => {\n item.style.display = '';\n });\n\n // Clean up filter-related UI elements\n const ul = this.el.querySelector('ul');\n if (ul) {\n const emptyMessage = ul.querySelector('[data-empty]');\n if (emptyMessage) emptyMessage.remove();\n\n // Reorder with divider if needed\n const selectedItems = items.filter(item =>\n this.value.includes(item.getAttribute('value') || ''),\n );\n const unselectedItems = items.filter(\n item => !this.value.includes(item.getAttribute('value') || ''),\n );\n\n if (selectedItems.length > 0) {\n this.manageDivider(ul as HTMLElement, selectedItems, unselectedItems);\n }\n }\n }\n\n /**\n * Returns the list of selected values.\n * @returns {string[]} The selected values.\n */\n @Method()\n async getSelectedValues(): Promise<string[]> {\n return this.value;\n }\n\n /**\n * Reorder the content of the slot.\n */\n private reorderSlotContent() {\n if (this.options) return;\n\n const ul = this.el.querySelector('ul');\n if (!ul) return;\n\n // Remove all existing <hr class=\"multiselect-divider\">\n ul.querySelectorAll('hr.multiselect-divider').forEach(divider =>\n divider.remove(),\n );\n\n // Retrieve all items (not hidden)\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n ).filter(item => item.style.display !== 'none');\n\n // If you possibly have a \"No results\" message:\n const hasEmptyMessage = ul.querySelector('[data-empty]');\n if (hasEmptyMessage) {\n // if there is a \"No results found\" message, do not reorder\n return;\n }\n\n // Separate checked vs unchecked\n const selectedItems = items.filter(item =>\n this.value.includes(item.getAttribute('value') || ''),\n );\n const unselectedItems = items.filter(\n item => !this.value.includes(item.getAttribute('value') || ''),\n );\n\n // Reinsert CHECKED items FIRST\n // appendChild() moves the element without recreating it\n // this is not trigger a re-rendering of the component in the platforms\n selectedItems.forEach(item => {\n ul.appendChild(item); // <-- The <li> (or <nv-fielddropdownitemcheck>) is just \"moved\" to the end of the list\n });\n\n // Add a divider if needed\n if (selectedItems.length > 0 && unselectedItems.length > 0) {\n const divider = document.createElement('hr');\n divider.className = 'multiselect-divider';\n ul.appendChild(divider);\n }\n\n // Reinsert UNCHECKED items at the end\n unselectedItems.forEach(item => {\n ul.appendChild(item);\n });\n }\n\n /**\n * Reorder the content for options mode with async handling\n */\n private reorderOptionsContent() {\n const ul = this.el.querySelector('ul[role=\"content\"]') as HTMLElement;\n if (!ul) return;\n\n const items = Array.from(\n ul.querySelectorAll('nv-fielddropdownitemcheck'),\n ).filter(item => item.style.display !== 'none');\n\n const selectedItems = items.filter(item =>\n this.value.includes(item.getAttribute('value') || ''),\n );\n const unselectedItems = items.filter(\n item => !this.value.includes(item.getAttribute('value') || ''),\n );\n\n // Reorder the elements\n selectedItems.forEach(item => ul.appendChild(item));\n unselectedItems.forEach(item => ul.appendChild(item));\n\n // Manage the divider after the reordering\n this.manageDivider(ul, selectedItems, unselectedItems);\n }\n\n /**\n * Filter multiselect items based on the text entered by the user.\n */\n private filterItems() {\n const ul = this.el.querySelector('ul');\n if (!ul) return;\n\n // Remove existing empty message if any\n const existingEmptyMessage = ul.querySelector('[data-empty]');\n if (existingEmptyMessage) {\n existingEmptyMessage.remove();\n }\n\n if (!this.filterText.trim()) {\n if (this.options && this.options.length > 0) {\n // Reset options display\n const items = Array.from(\n ul.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n items.forEach(item => {\n item.style.display = '';\n });\n } else {\n // Reset slot items display\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n items.forEach(item => {\n item.style.display = '';\n });\n }\n\n // Reorder with divider\n const items = Array.from(\n ul.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n const selectedItems = items.filter(item =>\n this.value.includes(item.getAttribute('value') || ''),\n );\n const unselectedItems = items.filter(\n item => !this.value.includes(item.getAttribute('value') || ''),\n );\n this.manageDivider(ul, selectedItems, unselectedItems);\n return;\n }\n\n const normalizedFilter = this.normalizeText(this.filterText);\n let hasVisibleItems = false;\n\n if (this.options && this.options.length > 0) {\n // Filter options mode\n const items = Array.from(\n ul.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n const option = this.options.find(\n opt => opt.value === item.getAttribute('value'),\n );\n if (option && !option.isDivider) {\n const matchesFilter =\n this.normalizeText(option.label).includes(normalizedFilter) ||\n this.normalizeText(option.value).includes(normalizedFilter);\n\n item.style.display = matchesFilter ? '' : 'none';\n if (matchesFilter) hasVisibleItems = true;\n }\n });\n\n // Manage the divider with the visible items\n const visibleItems = items.filter(item => item.style.display !== 'none');\n const visibleSelected = visibleItems.filter(item =>\n this.value.includes(item.getAttribute('value') || ''),\n );\n const visibleUnselected = visibleItems.filter(\n item => !this.value.includes(item.getAttribute('value') || ''),\n );\n this.manageDivider(ul, visibleSelected, visibleUnselected);\n } else {\n // Filter slot items mode\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n const label = item.getAttribute('label') || '';\n const value = item.getAttribute('value') || '';\n const textContent = item.textContent || '';\n\n const matchesFilter =\n this.normalizeText(label).includes(normalizedFilter) ||\n this.normalizeText(value).includes(normalizedFilter) ||\n this.normalizeText(textContent).includes(normalizedFilter);\n\n item.style.display = matchesFilter ? '' : 'none';\n if (matchesFilter) hasVisibleItems = true;\n });\n }\n\n // Add empty message if no items match the filter\n if (!hasVisibleItems) {\n const emptyMessage = document.createElement('li');\n emptyMessage.setAttribute('data-empty', 'true');\n emptyMessage.textContent = this.emptyResult;\n emptyMessage.classList.add('no-results-message');\n ul.appendChild(emptyMessage);\n }\n\n this.reorderSlotContent();\n }\n\n /**\n * Filter multiselect items in options mode.\n */\n private filterItemsOption() {\n const ul = this.el.querySelector('ul');\n if (!ul) return;\n\n const normalizedFilter = this.normalizeText(this.filterText);\n let hasVisibleItems = false;\n\n const items = Array.from(ul.querySelectorAll('nv-fielddropdownitemcheck'));\n\n // Reset items if the filter text is empty\n if (!this.filterText.trim()) {\n // Remove the empty message if it exists\n this.removeEmptyMessageOption(ul);\n items.forEach(item => (item.style.display = ''));\n this.reorderOptionsContent(); // Reorder after reset\n return;\n }\n\n // Filter the items\n items.forEach(item => {\n const label = item.getAttribute('label') || '';\n const value = item.getAttribute('value') || '';\n\n const matchesFilter =\n this.normalizeText(label).includes(normalizedFilter) ||\n this.normalizeText(value).includes(normalizedFilter);\n\n item.style.display = matchesFilter ? '' : 'none';\n if (matchesFilter) hasVisibleItems = true;\n });\n\n // Manage the divider with the visible items\n const visibleItems = items.filter(item => item.style.display !== 'none');\n const visibleSelected = visibleItems.filter(item =>\n this.value.includes(item.getAttribute('value') || ''),\n );\n const visibleUnselected = visibleItems.filter(\n item => !this.value.includes(item.getAttribute('value') || ''),\n );\n\n this.manageDivider(ul, visibleSelected, visibleUnselected);\n\n // Add or remove the empty message based on the case\n if (!hasVisibleItems) {\n this.addEmptyMessageOption(ul);\n } else {\n this.removeEmptyMessageOption(ul);\n }\n }\n\n /**\n * Filter multiselect items in slots mode\n */\n private filterSlotsItems() {\n if (this.options) return;\n\n const ul = this.el.querySelector('ul');\n if (!ul) return;\n\n // Remove existing empty message if any\n const existingEmptyMessage = ul.querySelector('[data-empty]');\n if (existingEmptyMessage) {\n existingEmptyMessage.remove();\n }\n\n // If filter text is empty, reset all items visibility\n if (!this.filterText.trim()) {\n this.resetFilter();\n return;\n }\n\n const normalizedFilter = this.normalizeText(this.filterText);\n let hasVisibleItems = false;\n\n // Get all items and preserve them in the DOM\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n // Instead of removing/reordering, just hide/show items\n items.forEach(item => {\n const label = item.getAttribute('label') || '';\n const value = item.getAttribute('value') || '';\n const textContent = item.textContent?.trim() || '';\n\n const matchesFilter =\n this.normalizeText(label).includes(normalizedFilter) ||\n this.normalizeText(value).includes(normalizedFilter) ||\n this.normalizeText(textContent).includes(normalizedFilter);\n\n item.style.display = matchesFilter ? '' : 'none';\n if (matchesFilter) hasVisibleItems = true;\n });\n\n // Get visible items after filtering\n const visibleItems = items.filter(item => item.style.display !== 'none');\n const visibleSelectedItems = visibleItems.filter(item =>\n this.value.includes(item.getAttribute('value') || ''),\n );\n\n this.manageDivider(\n ul,\n visibleSelectedItems,\n visibleItems.filter(\n item => !this.value.includes(item.getAttribute('value') || ''),\n ),\n );\n\n // Add empty message if no items match the filter\n if (!hasVisibleItems) {\n const emptyMessage = document.createElement('li');\n emptyMessage.setAttribute('data-empty', 'true');\n emptyMessage.textContent = this.emptyResult;\n emptyMessage.classList.add('no-results-message');\n ul.appendChild(emptyMessage);\n }\n }\n\n /**\n * Handle badge close for options mode.\n */\n private handleBadgeCloseOptions = (): void => {\n this.value = [];\n this.valueChanged.emit(this.value);\n\n // Uncheck all elements\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n item.checked = false;\n item.style.display = '';\n });\n\n // Reorder options without the divider since there are no selected elements\n this.options = this.options.filter(option => !option.isDivider);\n\n // Reorder options without the divider since there are no selected elements\n this.reorderOptionsContent();\n };\n\n /**\n * Handle badge close for slots mode.\n */\n private handleBadgeCloseSlots = (): void => {\n this.value = [];\n this.valueChanged.emit(this.value);\n\n // Uncheck all elements\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n item.checked = false;\n item.style.display = '';\n });\n\n // Reorder slot content\n this.reorderSlotContent();\n };\n\n /**\n * Normalizes text by removing accents and converting to lowercase\n * @param {string} text - The text to normalize\n * @returns {string} The normalized text\n *\n * @example\n * normalizeText(\"Café Latte\") => \"cafe latte\"\n *\n * @description\n * This function performs text normalization in three steps:\n * 1. Decomposes characters into their base form and combining characters (NFD)\n * 2. Removes all diacritical marks (accents, umlauts, etc.)\n * 3. Converts to lowercase and trims whitespace\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize} - MDN documentation on String.normalize()\n * @see {@link https://en.wikipedia.org/wiki/Unicode_equivalence#Normal_forms} - More info about Unicode normalization forms\n */\n private normalizeText(text: string): string {\n return text\n .normalize('NFD') // Decompose characters into base + combining characters (e.g., é => e + ´)\n .replace(/[\\u0300-\\u036f]/g, '') // Remove all diacritical marks (Unicode range for combining characters)\n .toLowerCase() // Convert to lowercase\n .trim(); // Remove leading and trailing whitespace\n }\n\n private handleClickOutside(event: MouseEvent) {\n if (\n this.el.contains(event.target as Node) ||\n (this.inputElement && this.inputElement.contains(event.target as Node))\n ) {\n return;\n }\n this.open = false;\n }\n\n /**\n * Handle popover close\n */\n private handlePopoverClose = () => {\n // If we are handling Escape, ignore this event\n if (this.isHandlingEscape) {\n return;\n }\n\n // Reset filter if needed, but preserve the filter text\n if (this.filterable) {\n this.resetFilter();\n }\n };\n\n /**\n * Clear the filter text\n */\n private clearFilterText = () => {\n this.filterText = '';\n this.filterTextChanged.emit('');\n this.resetFilter();\n };\n\n /**\n * Handle input blur for options mode.\n */\n private handleInputBlurOptions = () => {\n setTimeout(() => {\n if (!this.el.contains(document.activeElement)) {\n // Close the popover without affecting the divider\n this.open = false;\n\n // Clear filter text when focus is lost\n if (this.filterable) {\n this.clearFilterText();\n }\n }\n }, 150);\n };\n\n /**\n * Handle keyboard events & arrow key navigation.\n * If the multiselect is not open, opens it and focuses on the first item if the list is not filterable.\n * If the multiselect is open, handles arrow key navigation and closes it if the focus is outside the component.\n * @param {KeyboardEvent} event - The keyboard event.\n */\n @Listen('keydown', { passive: false })\n async handleKeyDown(event: KeyboardEvent) {\n if (!this.open) {\n if (event.key === 'ArrowDown') {\n this.open = true;\n\n // Focus on the first item if the list is not filterable\n if (!this.filterable) {\n requestAnimationFrame(() => {\n this.focusFirstItem();\n });\n }\n\n event.preventDefault();\n return;\n }\n return;\n }\n\n const items = Array.from(\n this.el.querySelectorAll(\n 'nv-fielddropdownitemcheck:not([style*=\"display: none\"])',\n ),\n ) as HTMLNvFielddropdownitemcheckElement[];\n\n if (items.length === 0) {\n console.warn('No visible items found to navigate');\n return;\n }\n\n let currentIndex = items.findIndex(item =>\n item.classList.contains('highlighted'),\n );\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n currentIndex =\n currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;\n this.updateHighlightedItem(items, currentIndex);\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n currentIndex =\n currentIndex === -1\n ? items.length - 1\n : (currentIndex - 1 + items.length) % items.length;\n this.updateHighlightedItem(items, currentIndex);\n } else if (event.key === 'Enter' && currentIndex >= 0) {\n event.preventDefault();\n const selectedItem = items[currentIndex];\n\n // Toggle the checked state\n const isCurrentlyChecked = selectedItem.hasAttribute('checked');\n selectedItem.checked = !isCurrentlyChecked;\n\n // Trigger a click event to ensure proper event handling\n selectedItem.dispatchEvent(\n new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true,\n }),\n );\n } else if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation(); // Prevent the event from propagating to the popover\n\n // Do the reorder and wait a bit before closing\n const handleEscape = async () => {\n this.isHandlingEscape = true; // Disable the hide listener\n\n if (this.options) {\n this.reorderOptionsContent();\n } else {\n this.reorderSlotContent();\n }\n\n // Wait for the reorder to be applied\n await new Promise(resolve => setTimeout(resolve, 100));\n\n // Reactivate the hide listener after a short delay\n setTimeout(() => {\n this.isHandlingEscape = false;\n this.open = false;\n }, 150);\n\n if (this.inputElement) {\n this.inputElement.blur();\n }\n };\n\n await handleEscape();\n }\n }\n\n /**\n * Updates the highlighted item in the dropdown list.\n *\n * @param {(HTMLNvFielddropdownitemElement | HTMLNvFielddropdownitemcheckElement)[]} items - The items to update.\n * @param {number} index - The index of the item to highlight.\n */\n private updateHighlightedItem(\n items: (\n | HTMLNvFielddropdownitemElement\n | HTMLNvFielddropdownitemcheckElement\n )[],\n index: number,\n ) {\n items.forEach((item, i) => {\n if (i === index) {\n item.classList.add('highlighted');\n item.setAttribute('tabindex', '0');\n item.scrollIntoView({ block: 'nearest' });\n // Focus on the nv-fieldcheckbox inside\n const checkbox = item.querySelector('nv-fieldcheckbox');\n if (checkbox) {\n (checkbox as HTMLElement).focus();\n }\n } else {\n item.classList.remove('highlighted');\n item.setAttribute('tabindex', '-1');\n }\n });\n }\n\n /**\n * Focus on the first item in the dropdown list.\n */\n private focusFirstItem() {\n const firstItem = this.el.querySelector(\n 'nv-fielddropdownitemcheck:not([style*=\"display: none\"])',\n ) as HTMLNvFielddropdownitemcheckElement;\n\n if (firstItem) {\n firstItem.setAttribute('tabindex', '0');\n firstItem.classList.add('highlighted');\n firstItem.scrollIntoView({ block: 'nearest' });\n // Focus on the nv-fieldcheckbox inside\n const checkbox = firstItem.querySelector('nv-fieldcheckbox');\n if (checkbox) {\n (checkbox as HTMLElement).focus();\n }\n } else {\n console.warn('No visible first item found to focus');\n }\n }\n\n /**\n * Handle click on the input container for options mode.\n * @param {MouseEvent} event - The click event.\n */\n private handleInputContainerClickOptions = (event: MouseEvent) => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const target = event.target as HTMLElement;\n\n if (target.tagName === 'P' || target.tagName === 'SPAN') {\n this.open = true;\n\n const inputContainer = this.el.querySelector(\n '.input-container',\n ) as HTMLElement;\n if (inputContainer) {\n inputContainer.classList.add('focus-within');\n\n const removeFocusWithin = () => {\n inputContainer.classList.remove('focus-within');\n };\n\n this.popoverElement.addEventListener('hide', removeFocusWithin);\n }\n }\n };\n\n /**\n * Handle click on the input container for slots mode.\n * @param {MouseEvent} event - The click event.\n */\n private handleInputContainerClickSlots = (event: MouseEvent) => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const target = event.target as HTMLElement;\n\n if (target.tagName === 'P' || target.tagName === 'SPAN') {\n this.open = true;\n\n const inputContainer = this.el.querySelector(\n '.input-container',\n ) as HTMLElement;\n if (inputContainer) {\n inputContainer.classList.add('focus-within');\n\n const removeFocusWithin = () => {\n inputContainer.classList.remove('focus-within');\n };\n\n this.popoverElement.addEventListener('hide', removeFocusWithin);\n }\n }\n };\n\n /**\n * Handle input change for options mode.\n * @param {Event} event - The input event.\n */\n private readonly handleInputOptions = (event: Event) => {\n if (!this.filterable) return;\n if (this.disabled || this.readonly) {\n return;\n }\n\n const input = event.target as HTMLInputElement;\n this.filterText = input.value;\n this.filterTextChanged.emit(this.filterText);\n\n // Clear any existing timer\n if (this.debounceTimer) {\n window.clearTimeout(this.debounceTimer);\n }\n\n // Set a new timer for filtering\n this.debounceTimer = window.setTimeout(() => {\n this.filterItemsOption();\n }, this.debounceDelay);\n };\n\n private addEmptyMessageOption(ul: HTMLElement) {\n const existingMessage = ul.querySelector('[data-empty]');\n if (existingMessage) return;\n\n const emptyMessage = document.createElement('li');\n emptyMessage.setAttribute('data-empty', 'true');\n emptyMessage.textContent = this.emptyResult;\n emptyMessage.classList.add('no-results-message');\n ul.appendChild(emptyMessage);\n }\n\n private removeEmptyMessageOption(ul: HTMLElement) {\n const existingMessage = ul.querySelector('[data-empty]');\n if (existingMessage) existingMessage.remove();\n }\n\n /**\n * Handle input change for slots mode\n * @param {Event} event - The input event.\n */\n private readonly handleInputSlots = (event: Event) => {\n if (!this.filterable) return;\n if (this.disabled || this.readonly) return;\n\n const input = event.target as HTMLInputElement;\n this.filterText = input.value;\n this.filterTextChanged.emit(this.filterText);\n\n // Clear any existing timer\n if (this.debounceTimer) {\n window.clearTimeout(this.debounceTimer);\n }\n\n // Set a new timer for filtering\n this.debounceTimer = window.setTimeout(() => {\n this.filterSlotsItems();\n }, this.debounceDelay);\n };\n\n /**\n * Handle input focus for options mode.\n */\n private handleInputFocusOptions = () => {\n if (this.disabled || this.readonly) {\n return;\n }\n this.open = true;\n };\n\n /**\n * Handle input focus for slots mode.\n */\n private handleInputFocusSlots = () => {\n if (this.disabled || this.readonly) {\n return;\n }\n this.open = true;\n };\n\n /**\n * Handle input blur for slots mode.\n */\n private handleInputBlurSlots = () => {\n setTimeout(() => {\n if (!this.el.contains(document.activeElement)) {\n // Close the popover without affecting the divider\n this.open = false;\n\n // Clear filter text when focus is lost\n if (this.filterable) {\n this.clearFilterText();\n }\n }\n }, 150);\n };\n\n /**\n * Toggle the multiselect popover for options mode.\n */\n private togglePopoverOptions = (): void => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.open = !this.open;\n };\n\n /**\n * Toggle the multiselect popover for slots mode.\n */\n private togglePopoverSlots = (): void => {\n if (this.disabled || this.readonly) {\n return;\n }\n\n this.open = !this.open;\n };\n\n private manageDivider(\n ul: HTMLElement,\n selectedItems: Element[],\n unselectedItems: Element[],\n ) {\n let divider = ul.querySelector('hr.multiselect-divider') as HTMLElement;\n if (!divider) {\n divider = document.createElement('hr');\n divider.className = 'multiselect-divider';\n ul.appendChild(divider);\n }\n\n const shouldShowDivider =\n selectedItems.length > 0 && unselectedItems.length > 0;\n\n if (shouldShowDivider) {\n // Place the divider after the last selected item\n const lastSelectedItem = selectedItems[selectedItems.length - 1];\n lastSelectedItem.after(divider);\n divider.style.display = '';\n } else {\n divider.style.display = 'none';\n }\n }\n\n /**\n * Synchronizes the checked state of all child nv-fielddropdownitemcheck components\n * with the current selectedValues state.\n */\n private syncChildComponents() {\n // Early return if element is not ready\n if (!this.el || !this.el.isConnected) {\n return;\n }\n\n const items = Array.from(\n this.el.querySelectorAll('nv-fielddropdownitemcheck'),\n );\n\n items.forEach(item => {\n // Get the effective value: use explicit value if present, otherwise use label\n const itemValue =\n item.getAttribute('value') || item.getAttribute('label') || '';\n if (this.value.includes(itemValue)) {\n item.setAttribute('checked', '');\n item.checked = true;\n } else {\n item.removeAttribute('checked');\n item.checked = false;\n }\n });\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Renders the component in options mode\n * @returns {any} The JSX for options mode\n */\n private renderOptionsMode = () => {\n return (\n <Host aria-label={this.label} aria-expanded={this.open.toString()}>\n {(this.label || this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div class=\"input-wrapper-multiselect\" slot=\"trigger\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container-multiselect\">\n <slot name=\"leading-input\"></slot>\n\n {this.value.length > 0 && (\n <nv-badge\n slot=\"leading-input\"\n prevent-auto-close\n color=\"10\"\n dismissible={this.value.length > 0}\n label={`${this.value.length} ${this.badgeLabel}`}\n aria-label={`Clear all ${this.value.length} ${this.badgeLabel} items`}\n onCloseClicked={this.handleBadgeCloseOptions}\n ></nv-badge>\n )}\n\n {this.filterable || this.disabled || this.readonly ? (\n <input\n type=\"text\"\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n autofocus={this.autofocus}\n autocomplete={this.autocomplete}\n placeholder={this.placeholder}\n name={this.name}\n value={this.filterText}\n required={this.required}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInputOptions}\n onFocus={this.handleInputFocusOptions}\n onBlur={this.handleInputBlurOptions}\n onKeyDown={this.handleKeyDown}\n data-scope=\"focusable\"\n />\n ) : (\n <p\n id={this.inputId}\n class=\"non-filterable-text\"\n onClick={this.handleInputContainerClickOptions}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleInputFocusOptions}\n role=\"combobox\"\n aria-expanded={this.open}\n data-scope=\"focusable\"\n >\n <span>{this.placeholder}</span>\n </p>\n )}\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n\n {this.filterable && this.filterText.length > 0 && (\n <nv-iconbutton\n data-scope=\"clear-filter\"\n name=\"x\"\n size=\"md\"\n emphasis=\"lower\"\n tabindex=\"-1\"\n onClick={this.clearFilterText}\n aria-label=\"Clear filter text\"\n />\n )}\n\n <nv-iconbutton\n data-scope=\"toggle-dropdown\"\n name={this.open ? 'chevron-top' : 'chevron-down'}\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide dropdown' : 'Show dropdown'}\n aria-pressed={this.open.toString()}\n onClick={this.togglePopoverOptions}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div\n slot=\"content\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n style={this.maxHeight ? { maxHeight: this.maxHeight } : {}}\n >\n <ul role=\"content\">\n {this.options.map(option => (\n <nv-fielddropdownitemcheck\n label={option.label}\n description={option.description}\n value={option.value}\n checked={this.value.includes(option.value)}\n disabled={option.disabled}\n ></nv-fielddropdownitemcheck>\n ))}\n <hr class=\"multiselect-divider\" style={{ display: 'none' }} />\n </ul>\n </div>\n </nv-popover>\n\n {this.renderDescriptions()}\n </Host>\n );\n };\n\n /**\n * Renders the component in slots mode\n * @returns {any} The JSX for slots mode\n */\n private renderSlotsMode = () => {\n return (\n <Host aria-label={this.label} aria-expanded={this.open.toString()}>\n {(this.label || this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div class=\"input-wrapper-multiselect\" slot=\"trigger\">\n <slot name=\"before-input\"></slot>\n\n <div\n class=\"input-container-multiselect\"\n onClick={this.handleInputContainerClickSlots}\n >\n <slot name=\"leading-input\"></slot>\n\n {this.value.length > 0 && (\n <nv-badge\n slot=\"leading-input\"\n prevent-auto-close\n color=\"10\"\n dismissible={this.value.length > 0}\n label={`${this.value.length} ${this.badgeLabel}`}\n aria-label={`Clear all ${this.value.length} ${this.badgeLabel} items`}\n onCloseClicked={this.handleBadgeCloseSlots}\n ></nv-badge>\n )}\n\n {this.filterable || this.disabled || this.readonly ? (\n <input\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n autocomplete={this.autocomplete}\n placeholder={this.placeholder}\n name={this.name}\n value={this.filterText}\n required={this.required}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInputSlots}\n onFocus={this.handleInputFocusSlots}\n onBlur={this.handleInputBlurSlots}\n onKeyDown={this.handleKeyDown}\n data-scope=\"focusable\"\n />\n ) : (\n <p\n id={this.inputId}\n class=\"non-filterable-text\"\n onClick={this.handleInputContainerClickSlots}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleInputFocusSlots}\n role=\"combobox\"\n aria-expanded={this.open}\n data-scope=\"focusable\"\n >\n <span>{this.placeholder}</span>\n </p>\n )}\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n\n {this.filterable && this.filterText.length > 0 && (\n <nv-iconbutton\n name=\"x\"\n size=\"md\"\n emphasis=\"lower\"\n tabindex=\"-1\"\n onClick={this.clearFilterText}\n aria-label=\"Clear filter text\"\n />\n )}\n\n <nv-iconbutton\n data-scope=\"toggle-dropdown\"\n name={this.open ? 'chevron-top' : 'chevron-down'}\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide dropdown' : 'Show dropdown'}\n aria-pressed={this.open.toString()}\n onClick={this.togglePopoverSlots}\n />\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div\n slot=\"content\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n style={this.maxHeight ? { maxHeight: this.maxHeight } : {}}\n >\n <slot name=\"content\"></slot>\n </div>\n </nv-popover>\n\n {this.renderDescriptions()}\n </Host>\n );\n };\n\n /**\n * Renders description and error description sections\n * @returns {any} The JSX for descriptions\n */\n private renderDescriptions() {\n return [\n (this.description || this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n ),\n (this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n <slot name=\"error-description\">{this.errorDescription}</slot>\n </div>\n ),\n ];\n }\n\n /**\n * Main render method that decides which mode to render\n * @returns {any} The JSX for the component\n */\n render() {\n return this.options ? this.renderOptionsMode() : this.renderSlotsMode();\n }\n\n //#endregion RENDER\n /****************************************************************************/\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as i,c as s,h as t,H as o,g as e}from"./p-d0a33e64.js";const n="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}";const r=n;const d=class{constructor(t){i(this,t);this.openChanged=s(this,"openChanged",7);this.data=[];this.mode="accordion";this.internalOpenIndexes=[]}async open(i){this.toggleItem(i,true)}async close(i){this.toggleItem(i,false)}toggleItem(i,s){let t=this.openIndexes!==undefined?[...this.openIndexes]:[...this.internalOpenIndexes||[]];const o=t.includes(i);if(this.mode==="accordion"){t=s===false||o?[]:[i]}else{if(s===false){t=t.filter((s=>s!==i))}else if(!o){t.push(i)}}this.internalOpenIndexes=t;this.openChanged.emit({openIndexes:t});if(this.openIndexes!==undefined){this.openIndexes=this.mode==="accordion"?[t[0]].filter((i=>i!==undefined)):[...t]}this.updateChildrenState()}async updateChildrenState(){this.internalOpenIndexes=[...this.internalOpenIndexes||[]]}onItemToggle(i){const s=Array.from(this.el.querySelectorAll("nv-accordion-item"));const t=i.target;const o=s.indexOf(t);if(o!==-1){if(i.detail===true){if(this.mode==="accordion"){s.forEach(((i,s)=>{if(s!==o&&i.open){i.open=false}}));this.internalOpenIndexes=[o]}else{if(!this.internalOpenIndexes.includes(o)){this.internalOpenIndexes=[...this.internalOpenIndexes,o]}}}else{this.internalOpenIndexes=this.internalOpenIndexes.filter((i=>i!==o))}this.openChanged.emit({openIndexes:this.internalOpenIndexes});if(this.openIndexes!==undefined){this.openIndexes=this.mode==="accordion"?[this.internalOpenIndexes[0]].filter((i=>i!==undefined)):[...this.internalOpenIndexes]}}}componentWillLoad(){if(this.openIndexes!==undefined){this.internalOpenIndexes=[...this.openIndexes]}}componentDidLoad(){if(!this.data||this.data.length===0){this.updateChildrenState()}}componentWillUpdate(){if(this.openIndexes!==undefined){this.internalOpenIndexes=[...this.openIndexes]}}render(){return t(o,{key:"a6cb21b274024a00e60e0d0db780f25fab6e5bc2",role:"list",class:"nv-accordion"},this.data&&this.data.length>0?this.data.map(((i,s)=>{var o;return t("nv-accordion-item",{key:(o=i.id)!==null&&o!==void 0?o:s,itemTitle:i.title,disabled:i.disabled,open:(this.internalOpenIndexes||[]).includes(s)},i.subtitle?t("div",{slot:"header"},t("div",{class:"nv-accordion-item__header-content"},t("span",{class:"nv-accordion-item__title"},i.title),t("span",{class:"nv-accordion-item__subtitle"},i.subtitle))):null,t("div",{slot:"content"},i.content),i.footer&&t("div",{slot:"footer"},i.footer))})):t("slot",null))}get el(){return e(this)}};d.style=r;export{d as nv_accordion};
2
+ //# sourceMappingURL=p-7703c736.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nvAccordionCss","NvAccordionStyle0","NvAccordion","constructor","hostRef","this","data","mode","internalOpenIndexes","open","index","toggleItem","close","forceOpen","openIndexes","undefined","isOpen","includes","filter","i","push","openChanged","emit","x","updateChildrenState","onItemToggle","event","items","Array","from","el","querySelectorAll","targetItem","target","indexOf","detail","forEach","item","componentWillLoad","componentDidLoad","length","componentWillUpdate","render","h","Host","key","role","class","map","_a","id","itemTitle","title","disabled","subtitle","slot","content","footer"],"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"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as c,h as l,H as t}from"./p-d0a33e64.js";import{c as a}from"./p-8a1a6e56.js";const d="nv-col{display:block;flex:1 1 0%;padding-left:calc(var(--spacing-4) / 2);padding-right:calc(var(--spacing-4) / 2)}nv-col[class*=w-]{flex:none}nv-col.w-1\\/12{width:calc(100% * 1 / 12)}nv-col.w-2\\/12{width:calc(100% * 2 / 12)}nv-col.w-3\\/12{width:calc(100% * 3 / 12)}nv-col.w-4\\/12{width:calc(100% * 4 / 12)}nv-col.w-5\\/12{width:calc(100% * 5 / 12)}nv-col.w-6\\/12{width:calc(100% * 6 / 12)}nv-col.w-7\\/12{width:calc(100% * 7 / 12)}nv-col.w-8\\/12{width:calc(100% * 8 / 12)}nv-col.w-9\\/12{width:calc(100% * 9 / 12)}nv-col.w-10\\/12{width:calc(100% * 10 / 12)}nv-col.w-11\\/12{width:calc(100% * 11 / 12)}nv-col.w-12\\/12{width:calc(100% * 12 / 12)}";const i=d;const n=class{constructor(l){c(this,l)}getColSize(){if(this.size){if(this.size<1||this.size>12)return;return`w-${this.size}/12`}}render(){return l(t,{key:"8f7112dc8ce8896d9e7265741f06b7449dd508df",class:a(this.getColSize())},l("slot",{key:"3bedff11752d04db2615a5f26d4d910d95dee76c"}))}};n.style=i;export{n as nv_col};
2
- //# sourceMappingURL=p-6029e51b.entry.js.map
1
+ import{r as c,h as l,H as a}from"./p-d0a33e64.js";import{c as t}from"./p-8a1a6e56.js";const i="nv-col{display:block;flex:1 1 0%;padding-left:calc(var(--spacing-4) / 2);padding-right:calc(var(--spacing-4) / 2)}nv-col[class*=w-]{flex:none}nv-col.w-1\\/12{width:calc(100% * 1 / 12)}nv-col.w-2\\/12{width:calc(100% * 2 / 12)}nv-col.w-3\\/12{width:calc(100% * 3 / 12)}nv-col.w-4\\/12{width:calc(100% * 4 / 12)}nv-col.w-5\\/12{width:calc(100% * 5 / 12)}nv-col.w-6\\/12{width:calc(100% * 6 / 12)}nv-col.w-7\\/12{width:calc(100% * 7 / 12)}nv-col.w-8\\/12{width:calc(100% * 8 / 12)}nv-col.w-9\\/12{width:calc(100% * 9 / 12)}nv-col.w-10\\/12{width:calc(100% * 10 / 12)}nv-col.w-11\\/12{width:calc(100% * 11 / 12)}nv-col.w-12\\/12{width:calc(100% * 12 / 12)}";const n=i;const o=class{constructor(l){c(this,l)}getColSize(){if(this.size){if(this.size<1||this.size>12)return;return`w-${this.size}/12`}}render(){return l(a,{key:"e258bc3e01d3bd35bf64f14241c70ae044fac132",class:t(this.getColSize())},l("slot",{key:"d36caf0fde38eae6cd37b62fb4c02e3de6b7225e"}))}};o.style=n;export{o as nv_col};
2
+ //# sourceMappingURL=p-85a54ef2.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{i as o,a as t}from"./p-09cdd71f.js";const n=(n,{duration:a=200,amount:e=.8,hasFade:r=true}={})=>{const c=o(n);function s(){return new Promise((o=>{t({from:{opacity:r?0:1,scale:e},to:{opacity:1,scale:1},duration:a,onUpdate(o){const t={scale:o.scale};if(r){t["opacity"]=o.opacity}c.set(t)},onComplete(){o();if(r){n.style.removeProperty("opacity")}n.style.removeProperty("transform")}})}))}function i(){n.style.transform=`scale(${e})`;if(r){n.style.opacity="0"}}function u(){n.style.transform=`scale(1)`;if(r){n.style.opacity="1"}}function f(){return new Promise((o=>{t({from:{opacity:1,scale:1},to:{opacity:r?0:1,scale:e},duration:a,onUpdate(o){const t={scale:o.scale};if(r){t["opacity"]=o.opacity}c.set(t)},onComplete(){o()}})}))}return{growIn:s,growOut:f,setGrowOut:i,setGrowIn:u}};export{n as u};
2
+ //# sourceMappingURL=p-8d45dbfe.js.map
@@ -0,0 +1,2 @@
1
+ import{r as o,c as e,h as t,H as a,g as r}from"./p-d0a33e64.js";const s="nv-tooltip{display:inline-block;position:relative;user-select:none}nv-tooltip:has([fluid]:not([fluid=false])){display:block}nv-tooltip [data-scope=popover]{background:var(--components-tooltip-background);color:var(--components-tooltip-text);font-weight:var(--font-weight-medium-emphasis);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);font-size:var(--tooltip-font-size);border-radius:var(--tooltip-radius);border:none;box-shadow:0px var(--shadow-y-axis-lg-1) var(--shadow-blur-lg-1) var(--shadow-spread-lg-1) var(--shadow-color-opacity-1), 0px var(--shadow-y-axis-lg-2) var(--shadow-blur-lg-2) var(--shadow-spread-lg-2) var(--shadow-color-opacity-2)}nv-tooltip [data-scope=popover] [data-scope=arrow]{background:var(--components-tooltip-background);box-shadow:none;border:none}";const i=s;const n=class{constructor(t){o(this,t);this.openChanged=e(this,"openChanged",7);this.placement="bottom";this.enterDelay=0}componentWillLoad(){if(!this.triggerElement)this.triggerElement=Array.from(this.el.children).find((o=>o.getAttribute("slot")===null))}render(){return t(a,{key:"ced39f0ebd3ee8eba520e6d6241728e95031dafc"},t("slot",{key:"2b65cb626604a29e1924e7eb2bbb4e937c1a9e9c"}),t("nv-popover",{key:"d4c91e52da651c1545b6d7af98c740e08eeaffbf",triggerMode:"hover",hasArrow:true,placement:this.placement,triggerElement:this.triggerElement,groupName:"tooltip",enterDelay:this.enterDelay},t("p",{key:"45805ecf6ffee80f4f81acce2d921ad66585bf2b",slot:"content"},this.message),t("slot",{key:"e6a7e80c35c3a87627a50b271c86783fab791338",name:"content"})))}get el(){return r(this)}};n.style=i;export{n as nv_tooltip};
2
+ //# sourceMappingURL=p-916acbd3.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nvTooltipCss","NvTooltipStyle0","NvTooltip","constructor","hostRef","this","placement","enterDelay","componentWillLoad","triggerElement","Array","from","el","children","find","child","getAttribute","render","h","Host","key","triggerMode","hasArrow","groupName","slot","message","name"],"sources":["src/components/nv-tooltip/nv-tooltip.scss?tag=nv-tooltip","src/components/nv-tooltip/nv-tooltip.tsx"],"sourcesContent":["@mixin root-styles() {\n display: inline-block;\n position: relative;\n user-select: none;\n &:has([fluid]:not([fluid='false'])) {\n display: block;\n }\n}\n\n@mixin tooltip-styles() {\n background: var(--components-tooltip-background);\n color: var(--components-tooltip-text);\n font-weight: var(--font-weight-medium-emphasis);\n padding: var(--tooltip-padding-y) var(--tooltip-padding-x);\n font-size: var(--tooltip-font-size);\n border-radius: var(--tooltip-radius);\n border: none;\n box-shadow:\n 0px var(--shadow-y-axis-lg-1) var(--shadow-blur-lg-1)\n var(--shadow-spread-lg-1) var(--shadow-color-opacity-1),\n 0px var(--shadow-y-axis-lg-2) var(--shadow-blur-lg-2)\n var(--shadow-spread-lg-2) var(--shadow-color-opacity-2);\n}\n\n@mixin arrow-styles() {\n background: var(--components-tooltip-background);\n box-shadow: none;\n border: none;\n}\n\nnv-tooltip {\n @include root-styles();\n\n [data-scope='popover'] {\n @include tooltip-styles();\n\n [data-scope='arrow'] {\n @include arrow-styles();\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport type { Placement } from '@floating-ui/dom';\n\n/**\n * @slot default - Content to be placed as the trigger.\n * @slot content - Content to be placed within the popover. Use for custom html, will render under the message.\n */\n@Component({\n tag: 'nv-tooltip',\n styleUrl: 'nv-tooltip.scss',\n shadow: false,\n})\nexport class NvTooltip {\n @Element() el: HTMLNvTooltipElement;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * @internal\n * Accepts a reference to the DOM element acting as the popover trigger. This\n * should be used when the slot for the trigger is not defined.\n */\n @Prop({ reflect: false, mutable: true })\n triggerElement: Element;\n\n /**\n * A string representing the text to be displayed inside the tooltip. This\n * content is shown when the tooltip is activated by the user, such as on\n * hover or focus events.\n */\n @Prop({ reflect: true })\n readonly message: string;\n\n /**\n * Decides where the tooltip shows up next to the element it’s linked to\n * (above, below, to the sides). If there isn’t enough room, it will adjust\n * it's position on the axis to fit on the screen, so users can always see it.\n */\n @Prop({ reflect: true })\n readonly placement: Placement = 'bottom';\n\n /**\n * Controls how long (in milliseconds) the tooltip waits to show after you\n * hover over or focus on an element. If you move away before the delay is up,\n * the tooltip won’t appear.\n */\n @Prop({ reflect: true })\n readonly enterDelay: number = 0;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the tooltip is opened or closed. Bubbles up from the popover\n * element.\n */\n @Event()\n openChanged: EventEmitter<boolean>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (!this.triggerElement)\n this.triggerElement = Array.from(this.el.children).find(child => {\n return child.getAttribute('slot') === null;\n });\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n <slot></slot>\n\n <nv-popover\n triggerMode=\"hover\"\n hasArrow\n placement={this.placement}\n triggerElement={this.triggerElement}\n groupName={'tooltip'}\n enterDelay={this.enterDelay}\n >\n <p slot=\"content\">{this.message}</p>\n <slot name=\"content\"></slot>\n </nv-popover>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"mappings":"gEAAA,MAAMA,EAAe,uxBACrB,MAAAC,EAAeD,E,MCmBFE,EAAS,MALtB,WAAAC,CAAAC,G,mDAiCWC,KAAAC,UAAuB,SAQvBD,KAAAE,WAAqB,C,CAiB9B,iBAAAC,GACE,IAAKH,KAAKI,eACRJ,KAAKI,eAAiBC,MAAMC,KAAKN,KAAKO,GAAGC,UAAUC,MAAKC,GAC/CA,EAAMC,aAAa,UAAY,M,CAQ5C,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,QAAAE,IAAA,6CAEAF,EAAA,cAAAE,IAAA,2CACEC,YAAY,QACZC,SAAQ,KACRhB,UAAWD,KAAKC,UAChBG,eAAgBJ,KAAKI,eACrBc,UAAW,UACXhB,WAAYF,KAAKE,YAEjBW,EAAA,KAAAE,IAAA,2CAAGI,KAAK,WAAWnB,KAAKoB,SACxBP,EAAA,QAAAE,IAAA,2CAAMM,KAAK,a","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{i as o,a as n}from"./p-09cdd71f.js";const e=(e,{duration:t}={duration:200})=>{const r=o(e);function d(){return new Promise((o=>{const d=e.getBoundingClientRect().height;r.set({overflow:"hidden"});n({from:d,to:0,duration:t,onUpdate:o=>{r.set({maxHeight:o})},onComplete:()=>{o()}})}))}function i(){e.style.maxHeight="0";e.style.overflow="hidden"}function a(){e.style.maxHeight="";e.style.overflow=""}function s(){return new Promise((o=>{const d=e.scrollHeight;r.set({overflow:"hidden"});n({from:0,to:d,duration:t,onUpdate:o=>{r.set({maxHeight:o})},onComplete:()=>{e.style.removeProperty("max-height");e.style.removeProperty("overflow");o()}})}))}return{collapse:d,expand:s,setCollapsed:i,setExpanded:a}};export{e as u};
2
+ //# sourceMappingURL=p-9a263d0e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCollapse","node","duration","nodeStyler","styler","collapse","Promise","resolve","height","getBoundingClientRect","set","overflow","animate","from","to","onUpdate","value","maxHeight","onComplete","setCollapsed","style","setExpanded","expand","scrollHeight","removeProperty"],"sources":["src/animations/collapse.animation.ts"],"sourcesContent":["import { animate } from 'popmotion';\nimport styler from 'stylefire';\n\nexport type CollapseOptions = {\n /** How long the animation should take in ms @default 200 */\n duration?: number;\n};\n\nconst useCollapse = (\n node: HTMLElement,\n { duration }: CollapseOptions = { duration: 200 },\n) => {\n const nodeStyler = styler(node);\n\n /**\n * Will set the overflow to hidden, and animate the max height to 0. Make sure\n * the element has no border or y padding set, otherwise the animation will\n * not work as expected.\n */\n function collapse() {\n return new Promise<void>(resolve => {\n const height = node.getBoundingClientRect().height;\n\n nodeStyler.set({ overflow: 'hidden' });\n\n animate({\n from: height,\n to: 0,\n duration,\n onUpdate: value => {\n nodeStyler.set({\n maxHeight: value,\n });\n },\n onComplete: () => {\n resolve();\n },\n });\n });\n }\n\n /**\n * Apply the collapsed styles without animating, useful when initial state\n * is collapsed.\n */\n function setCollapsed() {\n node.style.maxHeight = '0';\n node.style.overflow = 'hidden';\n }\n\n /**\n * Apply the expanded styles without animating, useful when initial state\n * is expanded.\n */\n function setExpanded() {\n node.style.maxHeight = '';\n node.style.overflow = '';\n }\n\n /**\n * Will set the overflow to hidden, and animate the max height to the value\n * of the scrollHeight. Make sure the element has no border or y padding set,\n * otherwise the animation will not work as expected. Once complete, the\n * max-height and overflow style properties will be removed.\n */\n function expand() {\n return new Promise<void>(resolve => {\n const scrollHeight = node.scrollHeight;\n nodeStyler.set({\n overflow: 'hidden',\n });\n\n animate({\n from: 0,\n to: scrollHeight,\n duration,\n onUpdate: value => {\n nodeStyler.set({\n maxHeight: value,\n });\n },\n onComplete: () => {\n node.style.removeProperty('max-height');\n node.style.removeProperty('overflow');\n resolve();\n },\n });\n });\n }\n\n return {\n collapse,\n expand,\n setCollapsed,\n setExpanded,\n };\n};\n\nexport { useCollapse };\n"],"mappings":"iDAQMA,EAAc,CAClBC,GACEC,YAA8B,CAAEA,SAAU,QAE5C,MAAMC,EAAaC,EAAOH,GAO1B,SAASI,IACP,OAAO,IAAIC,SAAcC,IACvB,MAAMC,EAASP,EAAKQ,wBAAwBD,OAE5CL,EAAWO,IAAI,CAAEC,SAAU,WAE3BC,EAAQ,CACNC,KAAML,EACNM,GAAI,EACJZ,WACAa,SAAUC,IACRb,EAAWO,IAAI,CACbO,UAAWD,GACX,EAEJE,WAAY,KACVX,GAAS,GAEX,G,CAQN,SAASY,IACPlB,EAAKmB,MAAMH,UAAY,IACvBhB,EAAKmB,MAAMT,SAAW,Q,CAOxB,SAASU,IACPpB,EAAKmB,MAAMH,UAAY,GACvBhB,EAAKmB,MAAMT,SAAW,E,CASxB,SAASW,IACP,OAAO,IAAIhB,SAAcC,IACvB,MAAMgB,EAAetB,EAAKsB,aAC1BpB,EAAWO,IAAI,CACbC,SAAU,WAGZC,EAAQ,CACNC,KAAM,EACNC,GAAIS,EACJrB,WACAa,SAAUC,IACRb,EAAWO,IAAI,CACbO,UAAWD,GACX,EAEJE,WAAY,KACVjB,EAAKmB,MAAMI,eAAe,cAC1BvB,EAAKmB,MAAMI,eAAe,YAC1BjB,GAAS,GAEX,G,CAIN,MAAO,CACLF,WACAiB,SACAH,eACAE,cACD,S","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as t,c as i,h as s,F as e,H as a,g as o}from"./p-d0a33e64.js";import{B as n}from"./p-e2d0a77d.js";const l="nv-dialogfooter{display:flex;padding:var(--dialog-footer-padding-top) var(--dialog-footer-padding-x) var(--dialog-footer-padding-bottom) var(--dialog-footer-padding-x);justify-content:flex-end;align-items:flex-end;gap:var(--dialog-footer-gap-y);align-self:stretch}";const r=l;const h=class{constructor(s){t(this,s);this.dialogCanceled=i(this,"dialogCanceled",7);this.dialogPrimaryClicked=i(this,"dialogPrimaryClicked",7);if(s.$hostElement$["s-ei"]){this.internals=s.$hostElement$["s-ei"]}else{this.internals=s.$hostElement$.attachInternals();s.$hostElement$["s-ei"]=this.internals}this.hasSlot=false;this.disabled=false;this.undismissable=false;this.leadingIcon="";this.trailingIcon="";this.danger=false;this.cancelLabel="Cancel";this.primaryLabel="Primary";this.primaryButtonType=n.Button;this.handlePrimary=t=>{t.stopPropagation();this.dialogPrimaryClicked.emit()};this.handleCancel=t=>{t.stopPropagation();this.dialogCanceled.emit()}}componentWillLoad(){this.hasSlot=Array.from(this.el.childNodes).some((t=>t.nodeType===Node.ELEMENT_NODE&&!t.hasAttribute("slot")))}render(){return s(a,{key:"5756a0cc697188c3fdee2930b1c6ae7922af71cc"},!this.hasSlot?s(e,null,!this.undismissable&&s("nv-button",{onClick:this.handleCancel,emphasis:"low",size:"sm"},this.cancelLabel),s("nv-button",{onClick:this.handlePrimary,disabled:this.disabled,danger:this.danger,size:"sm",emphasis:"high",form:this.form,type:this.primaryButtonType},this.leadingIcon&&s("nv-icon",{slot:"leading-icon",name:this.leadingIcon,size:"sm"}),this.primaryLabel,this.trailingIcon&&s("nv-icon",{slot:"trailing-icon",name:this.trailingIcon,size:"sm"}))):s("slot",null))}static get formAssociated(){return true}get el(){return o(this)}};h.style=r;const d='nv-dialogheader{padding:var(--dialog-header-padding-top) var(--dialog-header-padding-x) var(--dialog-header-padding-bottom) var(--dialog-header-padding-x);justify-content:space-between;align-items:flex-start;align-self:stretch}nv-dialogheader .heading{color:var(--color-content-high-text);font-family:"TT Norms Pro", sans-serif;font-size:var(--font-size-lg);font-style:normal;font-weight:500;line-height:var(--leading-px-6);letter-spacing:var(--letter-spacing-heading-xs)}nv-dialogheader .subheading{color:var(--color-content-low-text);font-family:"TT Norms Pro", sans-serif;font-size:var(--font-size-sm);font-style:normal;font-weight:400;line-height:var(--line-height-sm);}';const g=d;const c=class{constructor(i){t(this,i);this.hasSlot=false;this.heading="Dialog Title"}componentWillLoad(){this.hasSlot=Array.from(this.el.childNodes).some((t=>t.nodeType===Node.ELEMENT_NODE&&!t.hasAttribute("slot")))}render(){return s(a,{key:"850e2408cb7a35903be3bc51fbee000fc58f4a76"},!this.hasSlot?s(e,null,s("div",{class:"heading"},this.heading),s("div",{class:"subheading"},this.subheading)):s("slot",null))}get el(){return o(this)}};c.style=g;export{h as nv_dialogfooter,c as nv_dialogheader};
2
- //# sourceMappingURL=p-1a5d3b87.entry.js.map
1
+ import{r as t,c as i,h as s,F as e,H as a,g as o}from"./p-d0a33e64.js";import{B as n}from"./p-e2d0a77d.js";const l="nv-dialogfooter{display:flex;padding:var(--dialog-footer-padding-top) var(--dialog-footer-padding-x) var(--dialog-footer-padding-bottom) var(--dialog-footer-padding-x);justify-content:flex-end;align-items:flex-end;gap:var(--dialog-footer-gap-y);align-self:stretch}";const r=l;const d=class{constructor(s){t(this,s);this.dialogCanceled=i(this,"dialogCanceled",7);this.dialogPrimaryClicked=i(this,"dialogPrimaryClicked",7);if(s.$hostElement$["s-ei"]){this.internals=s.$hostElement$["s-ei"]}else{this.internals=s.$hostElement$.attachInternals();s.$hostElement$["s-ei"]=this.internals}this.hasSlot=false;this.disabled=false;this.undismissable=false;this.leadingIcon="";this.trailingIcon="";this.danger=false;this.cancelLabel="Cancel";this.primaryLabel="Primary";this.primaryButtonType=n.Button;this.handlePrimary=t=>{t.stopPropagation();this.dialogPrimaryClicked.emit()};this.handleCancel=t=>{t.stopPropagation();this.dialogCanceled.emit()}}componentWillLoad(){this.hasSlot=Array.from(this.el.childNodes).some((t=>t.nodeType===Node.ELEMENT_NODE&&!t.hasAttribute("slot")))}render(){return s(a,{key:"278895398ddd9fd6aaf6da3d0cbcad12d628f908"},!this.hasSlot?s(e,null,!this.undismissable&&s("nv-button",{onClick:this.handleCancel,emphasis:"low",size:"sm"},this.cancelLabel),s("nv-button",{onClick:this.handlePrimary,disabled:this.disabled,danger:this.danger,size:"sm",emphasis:"high",form:this.form,type:this.primaryButtonType},this.leadingIcon&&s("nv-icon",{slot:"leading-icon",name:this.leadingIcon,size:"sm"}),this.primaryLabel,this.trailingIcon&&s("nv-icon",{slot:"trailing-icon",name:this.trailingIcon,size:"sm"}))):s("slot",null))}static get formAssociated(){return true}get el(){return o(this)}};d.style=r;const h='nv-dialogheader{padding:var(--dialog-header-padding-top) var(--dialog-header-padding-x) var(--dialog-header-padding-bottom) var(--dialog-header-padding-x);justify-content:space-between;align-items:flex-start;align-self:stretch}nv-dialogheader .heading{color:var(--color-content-high-text);font-family:"TT Norms Pro", sans-serif;font-size:var(--font-size-lg);font-style:normal;font-weight:500;line-height:var(--leading-px-6);letter-spacing:var(--letter-spacing-heading-xs)}nv-dialogheader .subheading{color:var(--color-content-low-text);font-family:"TT Norms Pro", sans-serif;font-size:var(--font-size-sm);font-style:normal;font-weight:400;line-height:var(--line-height-sm);}';const g=h;const c=class{constructor(i){t(this,i);this.hasSlot=false;this.heading="Dialog Title"}componentWillLoad(){this.hasSlot=Array.from(this.el.childNodes).some((t=>t.nodeType===Node.ELEMENT_NODE&&!t.hasAttribute("slot")))}render(){return s(a,{key:"2ace10c91041456a36909763b62a2adeede183c7"},!this.hasSlot?s(e,null,s("div",{class:"heading"},this.heading),s("div",{class:"subheading"},this.subheading)):s("slot",null))}get el(){return o(this)}};c.style=g;export{d as nv_dialogfooter,c as nv_dialogheader};
2
+ //# sourceMappingURL=p-9dc1c3e7.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as e,c as o,h as a,H as r,g as t}from"./p-d0a33e64.js";import{c as n}from"./p-8a1a6e56.js";import{F as s}from"./p-e2d0a77d.js";import{u as i}from"./p-9a263d0e.js";import{u as c}from"./p-1cbacdba.js";import"./p-09cdd71f.js";import{t as l}from"./p-15aeab4d.js";const d='nv-alert{display:flex !important;align-items:flex-start;position:relative;gap:var(--alert-gap-x);border-radius:var(--alert-radius);font-family:"TT Norms Pro", "Montserrat", sans-serif}nv-alert>nv-icon{margin-left:var(--alert-icon-position-x);margin-top:var(--alert-icon-position-y)}nv-alert.hidden{display:none !important}nv-alert.feedback-information{background-color:var(--components-alert-information-background);border:1px solid var(--components-alert-information-border) !important}nv-alert.feedback-information>.close:focus,nv-alert.feedback-information>.close:focus-within{outline:none}nv-alert.feedback-information>.close:focus-visible,nv-alert.feedback-information>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-information-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-warning{background-color:var(--components-alert-warning-background);border:1px solid var(--components-alert-warning-border) !important}nv-alert.feedback-warning>.close:focus,nv-alert.feedback-warning>.close:focus-within{outline:none}nv-alert.feedback-warning>.close:focus-visible,nv-alert.feedback-warning>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-warning-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-error{background-color:var(--components-alert-error-background);border:1px solid var(--components-alert-error-border) !important}nv-alert.feedback-error>.close:focus,nv-alert.feedback-error>.close:focus-within{outline:none}nv-alert.feedback-error>.close:focus-visible,nv-alert.feedback-error>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-error-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-success{background-color:var(--components-alert-success-background);border:1px solid var(--components-alert-success-border) !important}nv-alert.feedback-success>.close:focus,nv-alert.feedback-success>.close:focus-within{outline:none}nv-alert.feedback-success>.close:focus-visible,nv-alert.feedback-success>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-success-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-neutral{background-color:var(--components-alert-neutral-background);border:1px solid var(--components-alert-neutral-border) !important}nv-alert.feedback-neutral>.close:focus,nv-alert.feedback-neutral>.close:focus-within{outline:none}nv-alert.feedback-neutral>.close:focus-visible,nv-alert.feedback-neutral>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-neutral-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert>nv-icon.icon-information{color:var(--components-alert-information-icon)}nv-alert>nv-icon.icon-warning{color:var(--components-alert-warning-icon)}nv-alert>nv-icon.icon-error{color:var(--components-alert-error-icon)}nv-alert>nv-icon.icon-success{color:var(--components-alert-success-icon)}nv-alert>nv-icon.icon-neutral{color:var(--components-alert-neutral-icon)}nv-alert>.content{display:flex;padding:var(--alert-padding);padding-left:0;flex-direction:column;gap:var(--alert-gap-y)}nv-alert>.content>.heading{color:var(--components-alert-content-title);font-size:var(--alert-heading-font-size);line-height:var(--alert-heading-line-height);font-weight:var(--alert-heading-font-weight)}nv-alert>.content>.message{color:var(--components-alert-content-description);font-size:var(--alert-message-font-size);line-height:var(--alert-message-line-height)}nv-alert>.close{border-radius:var(--alert-radius);position:absolute;display:flex;top:var(--alert-icon-position-y);right:var(--alert-icon-position-x);padding:0;border:none;background:none;cursor:pointer}';const f=d;const u=class{constructor(a){e(this,a);this.hiddenChanged=o(this,"hiddenChanged",7);this.hiddenChangedComplete=o(this,"hiddenChangedComplete",7);this.closeClicked=o(this,"closeClicked",7);this.feedback="information";this.dismissible=false;this.preventAutoClose=false;this.hidden=false;this.hasNoAnimations=false;this.handleDismiss=()=>{if(!this.preventAutoClose){this.hidden=true}this.closeClicked.emit()};this.getDefaultIcon=()=>{switch(this.feedback){case s.Warning:return"alert-circle";case s.Information:return"info-circle";case s.Success:return"circle-check";case s.Error:return"alert-circle";case s.Neutral:return"help";default:return"info-circle"}}}componentWillRender(){if(this.color){switch(this.color){case"primary":this.feedback="warning";break;case"secondary":this.feedback="information";break;case"neutral":this.feedback="information";break;default:this.feedback=this.color}}}async handleHiddenChange(e){this.hiddenChanged.emit(e);await this.updateVisibility(e);this.hiddenChangedComplete.emit(e)}async updateVisibility(e){if(this.hasNoAnimations){this.toggleHiddenClass(e);return}const{fadeIn:o,fadeOut:a}=c(this.ref,{duration:150});const{collapse:r,expand:t}=i(this.ref,{duration:150});if(e){await l(a,r).start();this.toggleHiddenClass(true)}else{this.toggleHiddenClass(false);await l(t,o).start()}}toggleHiddenClass(e){this.ref.classList.toggle("hidden",e)}componentWillLoad(){if(this.color){switch(this.color){case"primary":this.feedback="warning";break;case"secondary":this.feedback="information";break;case"neutral":this.feedback="information";break;default:this.feedback=this.color}}if(this.hidden){this.ref.classList.add("hidden")}}render(){var e;return a(r,{key:"f0e75ac2c38aced1dcf76cb1d5f03becefbee71d",role:"alert",class:n("root",`feedback-${this.feedback}`)},a("nv-icon",{key:"19f7fcf452d62277ab436acd20c285f44fbaecd4",name:(e=this.icon)!==null&&e!==void 0?e:this.getDefaultIcon(),class:`icon-${this.feedback}`,size:"md"}),a("div",{key:"8e656ffd0bce63bd33d92b97df21389af265e182",class:"content"},this.heading&&a("p",{key:"0aa928e8ee8605d735f890bc67128563ce3ad379",class:"heading"},this.heading),this.message&&a("p",{key:"690d9928646d25a636b2bb04eb65eee40c402f52",class:"message"},this.message),a("slot",{key:"86309f093688dbb81ff805f1c9137b200541e905"})),this.dismissible&&a("button",{key:"387695ff1e23a7e289cf58c51042ccc561d451ad",class:"close",type:"button",onClick:this.handleDismiss},a("nv-icon",{key:"788b99b4c56fc8c936a67ac48d2db37fdcca7631",name:"x",size:"sm"})))}get ref(){return t(this)}static get watchers(){return{hidden:["handleHiddenChange"]}}};u.style=f;export{u as nv_alert};
2
+ //# sourceMappingURL=p-a36dc25a.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["nvAlertCss","NvAlertStyle0","NvAlert","constructor","hostRef","this","feedback","dismissible","preventAutoClose","hidden","hasNoAnimations","handleDismiss","closeClicked","emit","getDefaultIcon","FeedbackColors","Warning","Information","Success","Error","Neutral","componentWillRender","color","handleHiddenChange","hiddenChanged","updateVisibility","hiddenChangedComplete","toggleHiddenClass","fadeIn","fadeOut","useFade","ref","duration","collapse","expand","useCollapse","timeline","start","classList","toggle","componentWillLoad","add","render","h","Host","key","role","class","clsx","name","_a","icon","size","heading","message","type","onClick"],"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-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"],"mappings":"uNAAA,MAAMA,EAAa,gyHACnB,MAAAC,EAAeD,E,MCyBFE,EAAO,MALpB,WAAAC,CAAAC,G,+JA4CEC,KAAAC,SAAgC,cA0BvBD,KAAAE,YAAuB,MAOvBF,KAAAG,iBAA4B,MAMrCH,KAAAI,OAAkB,MAMTJ,KAAAK,gBAA2B,MAoD5BL,KAAAM,cAAgB,KACtB,IAAKN,KAAKG,iBAAkB,CAC1BH,KAAKI,OAAS,I,CAGhBJ,KAAKO,aAAaC,MAAM,EAOlBR,KAAAS,eAAiB,KACvB,OAAQT,KAAKC,UACX,KAAKS,EAAeC,QAClB,MAAO,eACT,KAAKD,EAAeE,YAClB,MAAO,cACT,KAAKF,EAAeG,QAClB,MAAO,eACT,KAAKH,EAAeI,MAClB,MAAO,eACT,KAAKJ,EAAeK,QAClB,MAAO,OACT,QACE,MAAO,c,EApJb,mBAAAC,GACE,GAAIhB,KAAKiB,MAAO,CACd,OAAQjB,KAAKiB,OACX,IAAK,UACHjB,KAAKC,SAAW,UAChB,MACF,IAAK,YACHD,KAAKC,SAAW,cAChB,MACF,IAAK,UACHD,KAAKC,SAAW,cAChB,MACF,QACED,KAAKC,SAAWD,KAAKiB,M,EA8F7B,wBAAMC,CAAmBd,GACvBJ,KAAKmB,cAAcX,KAAKJ,SAElBJ,KAAKoB,iBAAiBhB,GAC5BJ,KAAKqB,sBAAsBb,KAAKJ,E,CA6C1B,sBAAMgB,CAAiBhB,GAC7B,GAAIJ,KAAKK,gBAAiB,CACxBL,KAAKsB,kBAAkBlB,GACvB,M,CAGF,MAAMmB,OAAEA,EAAMC,QAAEA,GAAYC,EAAQzB,KAAK0B,IAAK,CAAEC,SAAU,MAC1D,MAAMC,SAAEA,EAAQC,OAAEA,GAAWC,EAAY9B,KAAK0B,IAAK,CAAEC,SAAU,MAE/D,GAAIvB,EAAQ,OACJ2B,EAASP,EAASI,GAAUI,QAClChC,KAAKsB,kBAAkB,K,KAClB,CACLtB,KAAKsB,kBAAkB,aACjBS,EAASF,EAAQN,GAAQS,O,EAQ3B,iBAAAV,CAAkBlB,GACxBJ,KAAK0B,IAAIO,UAAUC,OAAO,SAAU9B,E,CAOtC,iBAAA+B,GACE,GAAInC,KAAKiB,MAAO,CACd,OAAQjB,KAAKiB,OACX,IAAK,UACHjB,KAAKC,SAAW,UAChB,MACF,IAAK,YACHD,KAAKC,SAAW,cAChB,MACF,IAAK,UACHD,KAAKC,SAAW,cAChB,MACF,QACED,KAAKC,SAAWD,KAAKiB,M,CAI3B,GAAIjB,KAAKI,OAAQ,CACfJ,KAAK0B,IAAIO,UAAUG,IAAI,S,EAQ3B,MAAAC,G,MACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,KAAK,QAAQC,MAAOC,EAAK,OAAQ,YAAY3C,KAAKC,aACtDqC,EAAA,WAAAE,IAAA,2CACEI,MAAMC,EAAA7C,KAAK8C,QAAI,MAAAD,SAAA,EAAAA,EAAI7C,KAAKS,iBACxBiC,MAAO,QAAQ1C,KAAKC,WACpB8C,KAAK,OAGPT,EAAA,OAAAE,IAAA,2CAAKE,MAAM,WACR1C,KAAKgD,SAAWV,EAAA,KAAAE,IAAA,2CAAGE,MAAM,WAAW1C,KAAKgD,SAEzChD,KAAKiD,SAAWX,EAAA,KAAAE,IAAA,2CAAGE,MAAM,WAAW1C,KAAKiD,SAE1CX,EAAA,QAAAE,IAAA,8CAGDxC,KAAKE,aACJoC,EAAA,UAAAE,IAAA,2CAAQE,MAAM,QAAQQ,KAAK,SAASC,QAASnD,KAAKM,eAChDgC,EAAA,WAAAE,IAAA,2CAASI,KAAK,IAAIG,KAAK,Q","ignoreList":[]}
1
+ {"version":3,"names":["nvAlertCss","NvAlertStyle0","NvAlert","constructor","hostRef","this","feedback","dismissible","preventAutoClose","hidden","hasNoAnimations","handleDismiss","closeClicked","emit","getDefaultIcon","FeedbackColors","Warning","Information","Success","Error","Neutral","componentWillRender","color","handleHiddenChange","hiddenChanged","updateVisibility","hiddenChangedComplete","toggleHiddenClass","fadeIn","fadeOut","useFade","ref","duration","collapse","expand","useCollapse","timeline","start","classList","toggle","componentWillLoad","add","render","h","Host","key","role","class","clsx","name","_a","icon","size","heading","message","type","onClick"],"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-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"],"mappings":"4QAAA,MAAMA,EAAa,gyHACnB,MAAAC,EAAeD,E,MCyBFE,EAAO,MALpB,WAAAC,CAAAC,G,+JA4CEC,KAAAC,SAAgC,cA0BvBD,KAAAE,YAAuB,MAOvBF,KAAAG,iBAA4B,MAMrCH,KAAAI,OAAkB,MAMTJ,KAAAK,gBAA2B,MAoD5BL,KAAAM,cAAgB,KACtB,IAAKN,KAAKG,iBAAkB,CAC1BH,KAAKI,OAAS,I,CAGhBJ,KAAKO,aAAaC,MAAM,EAOlBR,KAAAS,eAAiB,KACvB,OAAQT,KAAKC,UACX,KAAKS,EAAeC,QAClB,MAAO,eACT,KAAKD,EAAeE,YAClB,MAAO,cACT,KAAKF,EAAeG,QAClB,MAAO,eACT,KAAKH,EAAeI,MAClB,MAAO,eACT,KAAKJ,EAAeK,QAClB,MAAO,OACT,QACE,MAAO,c,EApJb,mBAAAC,GACE,GAAIhB,KAAKiB,MAAO,CACd,OAAQjB,KAAKiB,OACX,IAAK,UACHjB,KAAKC,SAAW,UAChB,MACF,IAAK,YACHD,KAAKC,SAAW,cAChB,MACF,IAAK,UACHD,KAAKC,SAAW,cAChB,MACF,QACED,KAAKC,SAAWD,KAAKiB,M,EA8F7B,wBAAMC,CAAmBd,GACvBJ,KAAKmB,cAAcX,KAAKJ,SAElBJ,KAAKoB,iBAAiBhB,GAC5BJ,KAAKqB,sBAAsBb,KAAKJ,E,CA6C1B,sBAAMgB,CAAiBhB,GAC7B,GAAIJ,KAAKK,gBAAiB,CACxBL,KAAKsB,kBAAkBlB,GACvB,M,CAGF,MAAMmB,OAAEA,EAAMC,QAAEA,GAAYC,EAAQzB,KAAK0B,IAAK,CAAEC,SAAU,MAC1D,MAAMC,SAAEA,EAAQC,OAAEA,GAAWC,EAAY9B,KAAK0B,IAAK,CAAEC,SAAU,MAE/D,GAAIvB,EAAQ,OACJ2B,EAASP,EAASI,GAAUI,QAClChC,KAAKsB,kBAAkB,K,KAClB,CACLtB,KAAKsB,kBAAkB,aACjBS,EAASF,EAAQN,GAAQS,O,EAQ3B,iBAAAV,CAAkBlB,GACxBJ,KAAK0B,IAAIO,UAAUC,OAAO,SAAU9B,E,CAOtC,iBAAA+B,GACE,GAAInC,KAAKiB,MAAO,CACd,OAAQjB,KAAKiB,OACX,IAAK,UACHjB,KAAKC,SAAW,UAChB,MACF,IAAK,YACHD,KAAKC,SAAW,cAChB,MACF,IAAK,UACHD,KAAKC,SAAW,cAChB,MACF,QACED,KAAKC,SAAWD,KAAKiB,M,CAI3B,GAAIjB,KAAKI,OAAQ,CACfJ,KAAK0B,IAAIO,UAAUG,IAAI,S,EAQ3B,MAAAC,G,MACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,KAAK,QAAQC,MAAOC,EAAK,OAAQ,YAAY3C,KAAKC,aACtDqC,EAAA,WAAAE,IAAA,2CACEI,MAAMC,EAAA7C,KAAK8C,QAAI,MAAAD,SAAA,EAAAA,EAAI7C,KAAKS,iBACxBiC,MAAO,QAAQ1C,KAAKC,WACpB8C,KAAK,OAGPT,EAAA,OAAAE,IAAA,2CAAKE,MAAM,WACR1C,KAAKgD,SAAWV,EAAA,KAAAE,IAAA,2CAAGE,MAAM,WAAW1C,KAAKgD,SAEzChD,KAAKiD,SAAWX,EAAA,KAAAE,IAAA,2CAAGE,MAAM,WAAW1C,KAAKiD,SAE1CX,EAAA,QAAAE,IAAA,8CAGDxC,KAAKE,aACJoC,EAAA,UAAAE,IAAA,2CAAQE,MAAM,QAAQQ,KAAK,SAASC,QAASnD,KAAKM,eAChDgC,EAAA,WAAAE,IAAA,2CAASI,KAAK,IAAIG,KAAK,Q","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as a,h as r,H as s}from"./p-d0a33e64.js";const e="nv-row{display:flex;flex-wrap:wrap;margin-right:calc(var(--spacing-4) * -1);margin-left:calc(var(--spacing-4) * -1);row-gap:var(--spacing-4)}";const c=e;const n=class{constructor(r){a(this,r)}render(){return r(s,{key:"daad5f10b72b95468ac50a3deab7faf87769be42"},r("slot",{key:"16509b69358739997fe97a45ea9476f30682de2b"}))}};n.style=c;export{n as nv_row};
2
+ //# sourceMappingURL=p-a50f3850.entry.js.map
@@ -1,2 +1,2 @@
1
- import{r as o,h as e,H as t,g as n}from"./p-d0a33e64.js";import{c as r}from"./p-8a1a6e56.js";const i='nv-iconbutton.root{display:inline-flex;justify-content:center;align-items:center;font-style:normal;font-weight:500;font-family:"TT Norms Pro", sans-serif;transition:background-color 150ms ease-out;height:fit-content;width:fit-content}nv-iconbutton.size-xs{padding:var(--button-xs-icon-button-padding);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);font-size:var(--button-xs-font-size)}nv-iconbutton.size-sm{padding:var(--button-sm-icon-button-padding);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);font-size:var(--button-sm-font-size)}nv-iconbutton.size-md{padding:var(--button-md-icon-button-padding);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);font-size:var(--button-md-font-size)}nv-iconbutton.size-lg{padding:var(--button-lg-icon-button-padding);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);font-size:var(--button-lg-font-size)}nv-iconbutton.emphasis-high{background:var(--components-button-high-background);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text)}nv-iconbutton.emphasis-high:hover{background:var(--components-button-high-background-hover);color:var(--components-button-high-text-hover)}nv-iconbutton.emphasis-high:focus,nv-iconbutton.emphasis-high:focus-within{outline:none}nv-iconbutton.emphasis-high:focus-visible,nv-iconbutton.emphasis-high:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-high:disabled{background:var(--components-button-high-background);color:var(--components-button-high-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-high nv-icon>svg{color:var(--components-button-high-icon)}nv-iconbutton.emphasis-medium{background:var(--components-button-medium-background);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text)}nv-iconbutton.emphasis-medium:hover{background:var(--components-button-medium-background-hover);color:var(--components-button-medium-text-hover)}nv-iconbutton.emphasis-medium:focus,nv-iconbutton.emphasis-medium:focus-within{outline:none}nv-iconbutton.emphasis-medium:focus-visible,nv-iconbutton.emphasis-medium:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-medium:disabled{background:var(--components-button-medium-background);color:var(--components-button-medium-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-medium nv-icon>svg{color:var(--components-button-medium-icon)}nv-iconbutton.emphasis-low{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-iconbutton.emphasis-low:hover{background:var(--components-button-low-background-hover);color:var(--components-button-low-text-hover)}nv-iconbutton.emphasis-low:focus,nv-iconbutton.emphasis-low:focus-within{outline:none}nv-iconbutton.emphasis-low:focus-visible,nv-iconbutton.emphasis-low:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-low:disabled{background:var(--components-button-low-background);color:var(--components-button-low-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-low nv-icon>svg{color:var(--components-button-low-icon)}nv-iconbutton.emphasis-lower{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-iconbutton.emphasis-lower:hover{background:var(--components-button-lower-background-hover);color:var(--components-button-lower-text-hover)}nv-iconbutton.emphasis-lower:focus,nv-iconbutton.emphasis-lower:focus-within{outline:none}nv-iconbutton.emphasis-lower:focus-visible,nv-iconbutton.emphasis-lower:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-lower:disabled{background:var(--components-button-lower-background);color:var(--components-button-lower-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-lower nv-icon>svg{color:var(--components-button-lower-icon)}nv-iconbutton.loading [slot=leading-icon]{display:none}nv-iconbutton.shape-rounded{border-radius:var(--radius-rounded-full)}';const a=i;const s=class{constructor(e){o(this,e);if(e.$hostElement$["s-ei"]){this.internals=e.$hostElement$["s-ei"]}else{this.internals=e.$hostElement$.attachInternals();e.$hostElement$["s-ei"]=this.internals}this.size="md";this.emphasis="high";this.loading=false;this.disabled=false;this.active=false;this.type="button";this.shape="square";this.handleClick=o=>{var e,t,n,r;if(this.disabled){o.preventDefault();return}if(this.type==="submit"){(t=(e=this.internals)===null||e===void 0?void 0:e.form)===null||t===void 0?void 0:t.requestSubmit()}if(this.type==="reset"){(r=(n=this.internals)===null||n===void 0?void 0:n.form)===null||r===void 0?void 0:r.reset()}}}handleLoadingChange(o){this.loading=o;this.disabled=o}handleDisabledChange(o){if(this.loading){this.disabled=this.loading}else{this.disabled=o}}handleKeyDown(o){if(o.key==="Enter"||o.key===" "){o.preventDefault();this.el.click()}}handleTouchStart(o){if(o.touches.length>1)return;o.preventDefault();this.el.click()}componentWillLoad(){if(this.loading){this.disabled=this.loading}}render(){return e(t,{key:"9e290d8190d198790563c7523ac4708157bb27e4",role:"button",type:this.type,tabindex:"0",disabled:this.disabled?true:undefined,class:r("root",`size-${this.size}`,`emphasis-${this.emphasis}`,this.loading&&"loading",`shape-${this.shape}`),onClick:this.handleClick},this.loading&&e("nv-loader",{key:"a3d3af89e6e000de9e4e6112a22ae901c1bf0409",size:this.size}),!this.loading&&e("nv-icon",{key:"1094bb262963888f1313744f1779809a76a78e44",name:this.name,size:this.size}),e("slot",{key:"7dea704e805ed97fd7933e019b4117d86fb9aca6"}))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{loading:["handleLoadingChange"],disabled:["handleDisabledChange"]}}};s.style=a;const l='@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}nv-loader{display:inline-block;position:relative;aspect-ratio:1/1;border-radius:9999px;color:inherit}nv-loader.size-xs{width:var(--loader-size-xs);height:var(--loader-size-xs)}nv-loader.size-xs::before,nv-loader.size-xs::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xs::before{content:" ";border:calc(var(--loader-size-xs) / 10) solid;opacity:0.3}nv-loader.size-xs::after{content:" ";border-top:calc(var(--loader-size-xs) / 10) solid transparent;border-left:calc(var(--loader-size-xs) / 10) solid transparent;border-right:calc(var(--loader-size-xs) / 10) solid transparent;border-bottom:calc(var(--loader-size-xs) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-sm{width:var(--loader-size-sm);height:var(--loader-size-sm)}nv-loader.size-sm::before,nv-loader.size-sm::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-sm::before{content:" ";border:calc(var(--loader-size-sm) / 10) solid;opacity:0.3}nv-loader.size-sm::after{content:" ";border-top:calc(var(--loader-size-sm) / 10) solid transparent;border-left:calc(var(--loader-size-sm) / 10) solid transparent;border-right:calc(var(--loader-size-sm) / 10) solid transparent;border-bottom:calc(var(--loader-size-sm) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-md{width:var(--loader-size-md);height:var(--loader-size-md)}nv-loader.size-md::before,nv-loader.size-md::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-md::before{content:" ";border:calc(var(--loader-size-md) / 10) solid;opacity:0.3}nv-loader.size-md::after{content:" ";border-top:calc(var(--loader-size-md) / 10) solid transparent;border-left:calc(var(--loader-size-md) / 10) solid transparent;border-right:calc(var(--loader-size-md) / 10) solid transparent;border-bottom:calc(var(--loader-size-md) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-lg{width:var(--loader-size-lg);height:var(--loader-size-lg)}nv-loader.size-lg::before,nv-loader.size-lg::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-lg::before{content:" ";border:calc(var(--loader-size-lg) / 10) solid;opacity:0.3}nv-loader.size-lg::after{content:" ";border-top:calc(var(--loader-size-lg) / 10) solid transparent;border-left:calc(var(--loader-size-lg) / 10) solid transparent;border-right:calc(var(--loader-size-lg) / 10) solid transparent;border-bottom:calc(var(--loader-size-lg) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-xl{width:var(--loader-size-xl);height:var(--loader-size-xl)}nv-loader.size-xl::before,nv-loader.size-xl::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xl::before{content:" ";border:calc(var(--loader-size-xl) / 10) solid;opacity:0.3}nv-loader.size-xl::after{content:" ";border-top:calc(var(--loader-size-xl) / 10) solid transparent;border-left:calc(var(--loader-size-xl) / 10) solid transparent;border-right:calc(var(--loader-size-xl) / 10) solid transparent;border-bottom:calc(var(--loader-size-xl) / 10) solid;animation:rotation 1s linear infinite}nv-loader.color-brand::before{border-color:var(--components-loader-brand-background);opacity:1}nv-loader.color-brand::after{border-bottom-color:var(--components-loader-brand-foreground)}nv-loader.color-white::before{border-color:var(--components-loader-white-background);opacity:1}nv-loader.color-white::after{border-bottom-color:var(--components-loader-white-foreground)}';const d=l;const c=class{constructor(e){o(this,e);this.size="md"}render(){return e(t,{key:"34d77e3d0ceec39d545b8098ebb1c673633d6660",class:r(this.size&&`size-${this.size}`,this.color&&`color-${this.color}`)})}};c.style=d;export{s as nv_iconbutton,c as nv_loader};
2
- //# sourceMappingURL=p-19f484a0.entry.js.map
1
+ import{r as o,h as t,H as e,g as n}from"./p-d0a33e64.js";import{c as r}from"./p-8a1a6e56.js";const i='nv-iconbutton.root{display:inline-flex;justify-content:center;align-items:center;font-style:normal;font-weight:500;font-family:"TT Norms Pro", sans-serif;transition:background-color 150ms ease-out;height:fit-content;width:fit-content}nv-iconbutton.size-xs{padding:var(--button-xs-icon-button-padding);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);font-size:var(--button-xs-font-size)}nv-iconbutton.size-sm{padding:var(--button-sm-icon-button-padding);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);font-size:var(--button-sm-font-size)}nv-iconbutton.size-md{padding:var(--button-md-icon-button-padding);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);font-size:var(--button-md-font-size)}nv-iconbutton.size-lg{padding:var(--button-lg-icon-button-padding);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);font-size:var(--button-lg-font-size)}nv-iconbutton.emphasis-high{background:var(--components-button-high-background);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text)}nv-iconbutton.emphasis-high:hover{background:var(--components-button-high-background-hover);color:var(--components-button-high-text-hover)}nv-iconbutton.emphasis-high:focus,nv-iconbutton.emphasis-high:focus-within{outline:none}nv-iconbutton.emphasis-high:focus-visible,nv-iconbutton.emphasis-high:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-high:disabled{background:var(--components-button-high-background);color:var(--components-button-high-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-high nv-icon>svg{color:var(--components-button-high-icon)}nv-iconbutton.emphasis-medium{background:var(--components-button-medium-background);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text)}nv-iconbutton.emphasis-medium:hover{background:var(--components-button-medium-background-hover);color:var(--components-button-medium-text-hover)}nv-iconbutton.emphasis-medium:focus,nv-iconbutton.emphasis-medium:focus-within{outline:none}nv-iconbutton.emphasis-medium:focus-visible,nv-iconbutton.emphasis-medium:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-medium:disabled{background:var(--components-button-medium-background);color:var(--components-button-medium-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-medium nv-icon>svg{color:var(--components-button-medium-icon)}nv-iconbutton.emphasis-low{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-iconbutton.emphasis-low:hover{background:var(--components-button-low-background-hover);color:var(--components-button-low-text-hover)}nv-iconbutton.emphasis-low:focus,nv-iconbutton.emphasis-low:focus-within{outline:none}nv-iconbutton.emphasis-low:focus-visible,nv-iconbutton.emphasis-low:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-low:disabled{background:var(--components-button-low-background);color:var(--components-button-low-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-low nv-icon>svg{color:var(--components-button-low-icon)}nv-iconbutton.emphasis-lower{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-iconbutton.emphasis-lower:hover{background:var(--components-button-lower-background-hover);color:var(--components-button-lower-text-hover)}nv-iconbutton.emphasis-lower:focus,nv-iconbutton.emphasis-lower:focus-within{outline:none}nv-iconbutton.emphasis-lower:focus-visible,nv-iconbutton.emphasis-lower:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-iconbutton.emphasis-lower:disabled{background:var(--components-button-lower-background);color:var(--components-button-lower-text);opacity:0.5;cursor:not-allowed;box-shadow:none}nv-iconbutton.emphasis-lower nv-icon>svg{color:var(--components-button-lower-icon)}nv-iconbutton.loading [slot=leading-icon]{display:none}nv-iconbutton.shape-rounded{border-radius:var(--radius-rounded-full)}';const a=i;const s=class{constructor(t){o(this,t);if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}this.size="md";this.emphasis="high";this.loading=false;this.disabled=false;this.active=false;this.type="button";this.shape="square";this.handleClick=o=>{var t,e,n,r;if(this.disabled){o.preventDefault();return}if(this.type==="submit"){(e=(t=this.internals)===null||t===void 0?void 0:t.form)===null||e===void 0?void 0:e.requestSubmit()}if(this.type==="reset"){(r=(n=this.internals)===null||n===void 0?void 0:n.form)===null||r===void 0?void 0:r.reset()}}}handleLoadingChange(o){this.loading=o;this.disabled=o}handleDisabledChange(o){if(this.loading){this.disabled=this.loading}else{this.disabled=o}}handleKeyDown(o){if(o.key==="Enter"||o.key===" "){o.preventDefault();this.el.click()}}handleTouchStart(o){if(o.touches.length>1)return;o.preventDefault();this.el.click()}componentWillLoad(){if(this.loading){this.disabled=this.loading}}render(){return t(e,{key:"a59a26804e97dfbacf40fae6678b3b3ba66440a9",role:"button",type:this.type,tabindex:"0",disabled:this.disabled?true:undefined,class:r("root",`size-${this.size}`,`emphasis-${this.emphasis}`,this.loading&&"loading",`shape-${this.shape}`),onClick:this.handleClick},this.loading&&t("nv-loader",{key:"7cbe3502ff1c6fd76f7a9ab68128f5d5a0bbf7fa",size:this.size}),!this.loading&&t("nv-icon",{key:"46cbb9c609991ea27316b8909551d303559652fc",name:this.name,size:this.size}),t("slot",{key:"d2ca8959b7be7600e56fe23437e5da07d58985c2"}))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{loading:["handleLoadingChange"],disabled:["handleDisabledChange"]}}};s.style=a;const l='@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}nv-loader{display:inline-block;position:relative;aspect-ratio:1/1;border-radius:9999px;color:inherit}nv-loader.size-xs{width:var(--loader-size-xs);height:var(--loader-size-xs)}nv-loader.size-xs::before,nv-loader.size-xs::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xs::before{content:" ";border:calc(var(--loader-size-xs) / 10) solid;opacity:0.3}nv-loader.size-xs::after{content:" ";border-top:calc(var(--loader-size-xs) / 10) solid transparent;border-left:calc(var(--loader-size-xs) / 10) solid transparent;border-right:calc(var(--loader-size-xs) / 10) solid transparent;border-bottom:calc(var(--loader-size-xs) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-sm{width:var(--loader-size-sm);height:var(--loader-size-sm)}nv-loader.size-sm::before,nv-loader.size-sm::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-sm::before{content:" ";border:calc(var(--loader-size-sm) / 10) solid;opacity:0.3}nv-loader.size-sm::after{content:" ";border-top:calc(var(--loader-size-sm) / 10) solid transparent;border-left:calc(var(--loader-size-sm) / 10) solid transparent;border-right:calc(var(--loader-size-sm) / 10) solid transparent;border-bottom:calc(var(--loader-size-sm) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-md{width:var(--loader-size-md);height:var(--loader-size-md)}nv-loader.size-md::before,nv-loader.size-md::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-md::before{content:" ";border:calc(var(--loader-size-md) / 10) solid;opacity:0.3}nv-loader.size-md::after{content:" ";border-top:calc(var(--loader-size-md) / 10) solid transparent;border-left:calc(var(--loader-size-md) / 10) solid transparent;border-right:calc(var(--loader-size-md) / 10) solid transparent;border-bottom:calc(var(--loader-size-md) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-lg{width:var(--loader-size-lg);height:var(--loader-size-lg)}nv-loader.size-lg::before,nv-loader.size-lg::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-lg::before{content:" ";border:calc(var(--loader-size-lg) / 10) solid;opacity:0.3}nv-loader.size-lg::after{content:" ";border-top:calc(var(--loader-size-lg) / 10) solid transparent;border-left:calc(var(--loader-size-lg) / 10) solid transparent;border-right:calc(var(--loader-size-lg) / 10) solid transparent;border-bottom:calc(var(--loader-size-lg) / 10) solid;animation:rotation 1s linear infinite}nv-loader.size-xl{width:var(--loader-size-xl);height:var(--loader-size-xl)}nv-loader.size-xl::before,nv-loader.size-xl::after{content:" ";position:absolute;top:0;left:0;border-radius:inherit;width:100%;height:100%}nv-loader.size-xl::before{content:" ";border:calc(var(--loader-size-xl) / 10) solid;opacity:0.3}nv-loader.size-xl::after{content:" ";border-top:calc(var(--loader-size-xl) / 10) solid transparent;border-left:calc(var(--loader-size-xl) / 10) solid transparent;border-right:calc(var(--loader-size-xl) / 10) solid transparent;border-bottom:calc(var(--loader-size-xl) / 10) solid;animation:rotation 1s linear infinite}nv-loader.color-brand::before{border-color:var(--components-loader-brand-background);opacity:1}nv-loader.color-brand::after{border-bottom-color:var(--components-loader-brand-foreground)}nv-loader.color-white::before{border-color:var(--components-loader-white-background);opacity:1}nv-loader.color-white::after{border-bottom-color:var(--components-loader-white-foreground)}';const d=l;const c=class{constructor(t){o(this,t);this.size="md"}render(){return t(e,{key:"049afa243c1ce99643408d86afa99e69c5468b8b",class:r(this.size&&`size-${this.size}`,this.color&&`color-${this.color}`)})}};c.style=d;export{s as nv_iconbutton,c as nv_loader};
2
+ //# sourceMappingURL=p-a73fa60a.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as o,c as e,h as a,H as r,g as n}from"./p-d0a33e64.js";import{c}from"./p-8a1a6e56.js";import{u as i}from"./p-9a263d0e.js";import{u as l}from"./p-1cbacdba.js";import"./p-09cdd71f.js";import{t as s}from"./p-15aeab4d.js";const d="nv-badge{padding:var(--badge-padding-y) var(--badge-padding-x);display:inline-flex !important;gap:var(--badge-gap-x);vertical-align:middle;align-items:center;border-radius:var(--radius-rounded-full);border-style:solid;border-width:0.5px;height:fit-content;width:fit-content}nv-badge.is-icon-only{padding:var(--badge-padding-y) var(--badge-padding-icon-only-x);gap:var(--badge-gap-icon-only-x)}nv-badge.with-gap{padding:var(--badge-padding-y) var(--badge-padding-x);display:inline-flex !important;gap:var(--badge-gap-x);vertical-align:middle;align-items:center;border-radius:var(--radius-rounded-full);border-style:solid;border-width:0.5px;height:fit-content;width:fit-content}nv-badge.with-gap.is-icon-only{padding:var(--badge-padding-y) var(--badge-padding-icon-only-x);gap:var(--badge-gap-icon-only-x)}nv-badge.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-badge:not(.with-gap){padding:var(--badge-padding-y) var(--badge-padding-x);display:inline-flex !important;gap:var(--badge-gap-x);vertical-align:middle;align-items:center;border-radius:var(--radius-rounded-full);border-style:solid;border-width:0.5px;height:fit-content;width:fit-content}nv-badge:not(.with-gap).is-icon-only{padding:var(--badge-padding-y) var(--badge-padding-icon-only-x);gap:var(--badge-gap-icon-only-x)}nv-badge.badge-1{color:var(--color-rainbow-1-text);background-color:var(--color-rainbow-1-background);border-color:var(--color-rainbow-1-border)}nv-badge.badge-1 .close:focus,nv-badge.badge-1 .close:focus-within{outline:none}nv-badge.badge-1 .close:focus-visible,nv-badge.badge-1 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-1-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-1 nv-icon{color:var(--color-rainbow-1-icon)}nv-badge.badge-2{color:var(--color-rainbow-2-text);background-color:var(--color-rainbow-2-background);border-color:var(--color-rainbow-2-border)}nv-badge.badge-2 .close:focus,nv-badge.badge-2 .close:focus-within{outline:none}nv-badge.badge-2 .close:focus-visible,nv-badge.badge-2 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-2-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-2 nv-icon{color:var(--color-rainbow-2-icon)}nv-badge.badge-3{color:var(--color-rainbow-3-text);background-color:var(--color-rainbow-3-background);border-color:var(--color-rainbow-3-border)}nv-badge.badge-3 .close:focus,nv-badge.badge-3 .close:focus-within{outline:none}nv-badge.badge-3 .close:focus-visible,nv-badge.badge-3 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-3-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-3 nv-icon{color:var(--color-rainbow-3-icon)}nv-badge.badge-4{color:var(--color-rainbow-4-text);background-color:var(--color-rainbow-4-background);border-color:var(--color-rainbow-4-border)}nv-badge.badge-4 .close:focus,nv-badge.badge-4 .close:focus-within{outline:none}nv-badge.badge-4 .close:focus-visible,nv-badge.badge-4 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-4-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-4 nv-icon{color:var(--color-rainbow-4-icon)}nv-badge.badge-5{color:var(--color-rainbow-5-text);background-color:var(--color-rainbow-5-background);border-color:var(--color-rainbow-5-border)}nv-badge.badge-5 .close:focus,nv-badge.badge-5 .close:focus-within{outline:none}nv-badge.badge-5 .close:focus-visible,nv-badge.badge-5 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-5-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-5 nv-icon{color:var(--color-rainbow-5-icon)}nv-badge.badge-6{color:var(--color-rainbow-6-text);background-color:var(--color-rainbow-6-background);border-color:var(--color-rainbow-6-border)}nv-badge.badge-6 .close:focus,nv-badge.badge-6 .close:focus-within{outline:none}nv-badge.badge-6 .close:focus-visible,nv-badge.badge-6 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-6-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-6 nv-icon{color:var(--color-rainbow-6-icon)}nv-badge.badge-7{color:var(--color-rainbow-7-text);background-color:var(--color-rainbow-7-background);border-color:var(--color-rainbow-7-border)}nv-badge.badge-7 .close:focus,nv-badge.badge-7 .close:focus-within{outline:none}nv-badge.badge-7 .close:focus-visible,nv-badge.badge-7 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-7-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-7 nv-icon{color:var(--color-rainbow-7-icon)}nv-badge.badge-8{color:var(--color-rainbow-8-text);background-color:var(--color-rainbow-8-background);border-color:var(--color-rainbow-8-border)}nv-badge.badge-8 .close:focus,nv-badge.badge-8 .close:focus-within{outline:none}nv-badge.badge-8 .close:focus-visible,nv-badge.badge-8 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-8-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-8 nv-icon{color:var(--color-rainbow-8-icon)}nv-badge.badge-9{color:var(--color-rainbow-9-text);background-color:var(--color-rainbow-9-background);border-color:var(--color-rainbow-9-border)}nv-badge.badge-9 .close:focus,nv-badge.badge-9 .close:focus-within{outline:none}nv-badge.badge-9 .close:focus-visible,nv-badge.badge-9 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-9-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-9 nv-icon{color:var(--color-rainbow-9-icon)}nv-badge.badge-10{color:var(--color-rainbow-10-text);background-color:var(--color-rainbow-10-background);border-color:var(--color-rainbow-10-border)}nv-badge.badge-10 .close:focus,nv-badge.badge-10 .close:focus-within{outline:none}nv-badge.badge-10 .close:focus-visible,nv-badge.badge-10 .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-rainbow-10-content);outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-10 nv-icon{color:var(--color-rainbow-10-icon)}nv-badge.badge-error{color:var(--color-feedback-error-low-text);background-color:var(--color-feedback-error-low-background);border-color:var(--color-feedback-error-low-border)}nv-badge.badge-error .close:focus,nv-badge.badge-error .close:focus-within{outline:none}nv-badge.badge-error .close:focus-visible,nv-badge.badge-error .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-feedback-error-low-content, var(--color-feedback-error-low-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-error nv-icon{color:var(--color-feedback-error-low-icon)}nv-badge.badge-information{color:var(--color-feedback-information-low-text);background-color:var(--color-feedback-information-low-background);border-color:var(--color-feedback-information-low-border)}nv-badge.badge-information .close:focus,nv-badge.badge-information .close:focus-within{outline:none}nv-badge.badge-information .close:focus-visible,nv-badge.badge-information .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-feedback-information-low-content, var(--color-feedback-information-low-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-information nv-icon{color:var(--color-feedback-information-low-icon)}nv-badge.badge-neutral{color:var(--color-feedback-neutral-low-text);background-color:var(--color-feedback-neutral-low-background);border-color:var(--color-feedback-neutral-low-border)}nv-badge.badge-neutral .close:focus,nv-badge.badge-neutral .close:focus-within{outline:none}nv-badge.badge-neutral .close:focus-visible,nv-badge.badge-neutral .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-feedback-neutral-low-content, var(--color-feedback-neutral-low-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-neutral nv-icon{color:var(--color-feedback-neutral-low-icon)}nv-badge.badge-success{color:var(--color-feedback-success-low-text);background-color:var(--color-feedback-success-low-background);border-color:var(--color-feedback-success-low-border)}nv-badge.badge-success .close:focus,nv-badge.badge-success .close:focus-within{outline:none}nv-badge.badge-success .close:focus-visible,nv-badge.badge-success .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-feedback-success-low-content, var(--color-feedback-success-low-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-success nv-icon{color:var(--color-feedback-success-low-icon)}nv-badge.badge-warning{color:var(--color-feedback-warning-low-text);background-color:var(--color-feedback-warning-low-background);border-color:var(--color-feedback-warning-low-border)}nv-badge.badge-warning .close:focus,nv-badge.badge-warning .close:focus-within{outline:none}nv-badge.badge-warning .close:focus-visible,nv-badge.badge-warning .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-feedback-warning-low-content, var(--color-feedback-warning-low-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-warning nv-icon{color:var(--color-feedback-warning-low-icon)}nv-badge.badge-amber{color:var(--color-rainbow-1-text);background-color:var(--color-rainbow-1-background);border-color:var(--color-rainbow-1-border)}nv-badge.badge-amber .close:focus,nv-badge.badge-amber .close:focus-within{outline:none}nv-badge.badge-amber .close:focus-visible,nv-badge.badge-amber .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-amber-content, var(--color-rainbow-1-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-amber nv-icon{color:var(--color-rainbow-1-icon)}nv-badge.badge-orange{color:var(--color-rainbow-2-text);background-color:var(--color-rainbow-2-background);border-color:var(--color-rainbow-2-border)}nv-badge.badge-orange .close:focus,nv-badge.badge-orange .close:focus-within{outline:none}nv-badge.badge-orange .close:focus-visible,nv-badge.badge-orange .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-orange-content, var(--color-rainbow-2-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-orange nv-icon{color:var(--color-rainbow-2-icon)}nv-badge.badge-turquoise{color:var(--color-rainbow-5-text);background-color:var(--color-rainbow-5-background);border-color:var(--color-rainbow-5-border)}nv-badge.badge-turquoise .close:focus,nv-badge.badge-turquoise .close:focus-within{outline:none}nv-badge.badge-turquoise .close:focus-visible,nv-badge.badge-turquoise .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-turquoise-content, var(--color-rainbow-5-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-turquoise nv-icon{color:var(--color-rainbow-5-icon)}nv-badge.badge-crimson{color:var(--color-rainbow-6-text);background-color:var(--color-rainbow-6-background);border-color:var(--color-rainbow-6-border)}nv-badge.badge-crimson .close:focus,nv-badge.badge-crimson .close:focus-within{outline:none}nv-badge.badge-crimson .close:focus-visible,nv-badge.badge-crimson .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-crimson-content, var(--color-rainbow-6-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-crimson nv-icon{color:var(--color-rainbow-6-icon)}nv-badge.badge-lime{color:var(--color-rainbow-9-text);background-color:var(--color-rainbow-9-background);border-color:var(--color-rainbow-9-border)}nv-badge.badge-lime .close:focus,nv-badge.badge-lime .close:focus-within{outline:none}nv-badge.badge-lime .close:focus-visible,nv-badge.badge-lime .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-lime-content, var(--color-rainbow-9-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-lime nv-icon{color:var(--color-rainbow-9-icon)}nv-badge.badge-petrol{color:var(--color-rainbow-8-text);background-color:var(--color-rainbow-8-background);border-color:var(--color-rainbow-8-border)}nv-badge.badge-petrol .close:focus,nv-badge.badge-petrol .close:focus-within{outline:none}nv-badge.badge-petrol .close:focus-visible,nv-badge.badge-petrol .close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-petrol-content, var(--color-rainbow-8-text));outline-offset:calc(var(--focus-outline-offset) * 0.2)}nv-badge.badge-petrol nv-icon{color:var(--color-rainbow-8-icon)}nv-badge span{font-size:var(--font-size-xs);line-height:var(--line-height-xs) !important;text-align:center}nv-badge nv-icon>svg.icon-xs{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-badge nv-icon>svg.icon-sm{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-badge nv-icon>svg.icon-md{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-badge nv-icon>svg.icon-lg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-badge nv-icon>svg.icon-xl{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-badge .close{padding:0;line-height:0;border:none;background:none;cursor:pointer;color:inherit;display:inline-flex;align-items:center;aspect-ratio:1/1;border-radius:var(--radius-rounded-full)}";const b=d;const t=class{constructor(a){o(this,a);this.closeClicked=e(this,"closeClicked",7);this.hiddenChanged=e(this,"hiddenChanged",7);this.hiddenChangedComplete=e(this,"hiddenChangedComplete",7);this.dismissal=false;this.color="1";this.label=null;this.leadIcon=null;this.dismissible=false;this.hidden=false;this.preventAutoClose=false;this.isIconOnly=false;this.handleClose=()=>{if(!this.preventAutoClose){this.hidden=true}this.closeClicked.emit()}}handleDismissalChange(o){this.dismissible=o}handleIconChange(o){this.leadIcon=o}async handleHiddenChange(o){this.hiddenChanged.emit(o);if(this._isHidden===true)this._isHidden=o;const{fadeIn:e,fadeOut:a}=l(this.ref,{duration:150});const{collapse:r,expand:n}=i(this.ref,{duration:150});if(o===true)await s(a,r).start();if(o===false)await s(n,e).start();this.hiddenChangedComplete.emit(o);if(this._isHidden===false)this._isHidden=o}componentWillLoad(){if(this.dismissal){this.dismissible=this.dismissal}if(this.icon!=null&&this.icon!=""){this.leadIcon=this.icon}if(this.hidden){this._isHidden=true;const{setCollapsed:o}=i(this.ref);const{setFadeOut:e}=l(this.ref);o();e()}}render(){return a(r,{key:"435c5bb1f565c8bd95cca5c6828157c80f60aa39",class:c(`badge-${this.color}`,{"has-close":this.dismissible,"with-gap":this.dismissible||this.label,"visually-hidden":this._isHidden,"is-icon-only":this.isIconOnly})},a("slot",{key:"271dc833471e026af5088f48227639682e661e97",name:"leading-icon"},this.leadIcon&&a("nv-icon",{key:"e578eabf4c5a09e61e28c3839b943804acdf88e8",name:this.leadIcon,size:"sm"})),a("span",{key:"24d16a21b2b4499be712f9b747c9ab63c5e6ca0c",class:c({"visually-hidden":this.isIconOnly})},this.label,a("slot",{key:"3e3827620e6ade8be256ce7dd0b8bb949f36f2d5"})),this.dismissible&&a("button",{key:"90ed9ec1b71815554b963b0eafeb5536578700cf",onClick:this.handleClose,class:"close",type:"button"},a("nv-icon",{key:"df426e5d88c2bf02e7aa83c179c05db4795f03db",name:"x",size:"sm"})))}get ref(){return n(this)}static get watchers(){return{dismissal:["handleDismissalChange"],icon:["handleIconChange"],hidden:["handleHiddenChange"]}}};t.style=b;const g="nv-fielddropdownitemcheck{cursor:pointer;display:flex;padding:var(--list-dropdown-item-padding-y) var(--list-dropdown-item-padding-x);border-radius:var(--list-dropdown-item-radius)}nv-fielddropdownitemcheck slot-fb,nv-fielddropdownitemcheck span{all:unset}nv-fielddropdownitemcheck:hover{background-color:var(--components-list-dropdown-item-background-hover)}";const v=g;const u=class{constructor(a){o(this,a);this.itemChecked=e(this,"itemChecked",7);this.checked=false;this.disabled=false;this.onFieldcheckboxChanged=o=>{if(this.disabled)return;this.checked=o.detail;this.itemChecked.emit({value:this.value,checked:this.checked,group:this.group})};this.handleClick=()=>{if(this.disabled)return;if(this.el.querySelector("input").checked){this.checked=false}else{this.checked=true}}}render(){return a(r,{key:"82abe79dd061f60e380f033027f799121769f89e",onClick:this.handleClick},a("nv-fieldcheckbox",{key:"505181c56faacb09e55c428d91287d96e1c3b72a",checked:this.checked,name:this.label||this.value,label:this.label||this.value,"label-placement":"after",description:this.description,disabled:this.disabled,tabindex:"-1",role:"option",onCheckedChanged:this.onFieldcheckboxChanged},a("slot",{key:"95a53b7d4ec735fd3256505b57e2a497b475f511"}),a("slot",{key:"137d5e2b3046417bbc90c0bd2dd10b846d1dfd53",name:"main"}),a("slot",{key:"47d4a73e401186b7bc7a18aaad82018f0ccc1e2f",name:"label"}),a("slot",{key:"ff5c752d386c282635a97ad2bcb8858571aff7e9",name:"description"})))}get el(){return n(this)}};u.style=v;export{t as nv_badge,u as nv_fielddropdownitemcheck};
2
+ //# sourceMappingURL=p-b3f9db23.entry.js.map