@nova-design-system/nova-webcomponents 3.0.0-beta.45 → 3.0.0-beta.47

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 (349) hide show
  1. package/dist/cjs/index-9bda5507.js +0 -4
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/native.cjs.js +1 -1
  4. package/dist/cjs/nv-badge_2.cjs.entry.js +4 -4
  5. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  6. package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
  7. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  8. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  9. package/dist/cjs/nv-calendar.cjs.entry.js +48 -19
  10. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  12. package/dist/cjs/nv-datagrid.cjs.entry.js +378 -85
  13. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  14. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +5 -1
  15. package/dist/cjs/nv-datagridcolumn.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nv-dialog.cjs.entry.js +1 -1
  17. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
  18. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +4 -4
  19. package/dist/cjs/nv-fielddate.cjs.entry.js +5 -5
  20. package/dist/cjs/nv-fielddaterange.cjs.entry.js +4 -4
  21. package/dist/cjs/nv-fielddropdown.cjs.entry.js +15 -35
  22. package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +30 -86
  25. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-fieldnumber.cjs.entry.js +3 -3
  27. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nv-fieldpassword.cjs.entry.js +9 -7
  29. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nv-fieldradio.cjs.entry.js +3 -3
  31. package/dist/cjs/nv-fieldselect.cjs.entry.js +5 -5
  32. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nv-fieldtext.cjs.entry.js +3 -3
  34. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +3 -3
  35. package/dist/cjs/nv-fieldtime.cjs.entry.js +9 -9
  36. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  37. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  38. package/dist/cjs/nv-menu.cjs.entry.js +18 -44
  39. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  41. package/dist/cjs/nv-popover.cjs.entry.js +1 -1
  42. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  43. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  44. package/dist/cjs/nv-stack.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  46. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  47. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  48. package/dist/collection/collection-manifest.json +0 -1
  49. package/dist/collection/components/nv-badge/nv-badge.js +4 -3
  50. package/dist/collection/components/nv-badge/nv-badge.js.map +1 -1
  51. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
  52. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
  53. package/dist/collection/components/nv-button/nv-button.js +1 -1
  54. package/dist/collection/components/nv-calendar/nv-calendar.docs.js +0 -9
  55. package/dist/collection/components/nv-calendar/nv-calendar.docs.js.map +1 -1
  56. package/dist/collection/components/nv-calendar/nv-calendar.js +48 -19
  57. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  58. package/dist/collection/components/nv-col/nv-col.js +1 -1
  59. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +560 -63
  60. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  61. package/dist/collection/components/nv-datagrid/nv-datagrid.js +393 -88
  62. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  63. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +27 -1
  64. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js.map +1 -1
  65. package/dist/collection/components/nv-dialog/nv-dialog.js +1 -1
  66. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  67. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  68. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
  69. package/dist/collection/components/nv-fielddate/nv-fielddate.js +5 -5
  70. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +4 -4
  71. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +8 -8
  72. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
  73. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +24 -50
  74. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  75. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  76. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
  77. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +6 -6
  78. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  79. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +37 -103
  80. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  81. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +3 -3
  82. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  83. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +9 -7
  84. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
  85. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  86. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  87. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
  88. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +3 -3
  89. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  90. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +9 -9
  91. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  92. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  93. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  94. package/dist/collection/components/nv-menu/nv-menu.docs.js +3 -3
  95. package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
  96. package/dist/collection/components/nv-menu/nv-menu.js +37 -65
  97. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  98. package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
  99. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  100. package/dist/collection/components/nv-row/nv-row.js +1 -1
  101. package/dist/collection/components/nv-stack/nv-stack.docs.js +7 -6
  102. package/dist/collection/components/nv-stack/nv-stack.docs.js.map +1 -1
  103. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  104. package/dist/collection/components/nv-stack/nv-stack.js.map +1 -1
  105. package/dist/collection/components/nv-table/nv-table.js +2 -2
  106. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  107. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  108. package/dist/components/nv-alert.js +1 -1
  109. package/dist/components/nv-avatar.js +1 -1
  110. package/dist/components/nv-badge.js +1 -1
  111. package/dist/components/nv-breadcrumb.js +3 -3
  112. package/dist/components/nv-breadcrumbs.js +1 -1
  113. package/dist/components/nv-button.js +1 -1
  114. package/dist/components/nv-calendar.js +1 -1
  115. package/dist/components/nv-col.js +1 -1
  116. package/dist/components/nv-datagrid.js +386 -87
  117. package/dist/components/nv-datagrid.js.map +1 -1
  118. package/dist/components/nv-datagridcolumn.js +7 -2
  119. package/dist/components/nv-datagridcolumn.js.map +1 -1
  120. package/dist/components/nv-dialog.js +6 -6
  121. package/dist/components/nv-dialogfooter.js +1 -1
  122. package/dist/components/nv-dialogheader.js +1 -1
  123. package/dist/components/nv-fieldcheckbox.js +1 -1
  124. package/dist/components/nv-fielddate.js +12 -12
  125. package/dist/components/nv-fielddaterange.js +11 -11
  126. package/dist/components/nv-fielddropdown.js +22 -45
  127. package/dist/components/nv-fielddropdown.js.map +1 -1
  128. package/dist/components/nv-fielddropdownitem.js +1 -1
  129. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  130. package/dist/components/nv-fieldmultiselect.js +40 -100
  131. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  132. package/dist/components/nv-fieldnumber.js +6 -6
  133. package/dist/components/nv-fieldnumber.js.map +1 -1
  134. package/dist/components/nv-fieldpassword.js +12 -10
  135. package/dist/components/nv-fieldpassword.js.map +1 -1
  136. package/dist/components/nv-fieldradio.js +3 -3
  137. package/dist/components/nv-fieldselect.js +8 -8
  138. package/dist/components/nv-fieldselect.js.map +1 -1
  139. package/dist/components/nv-fieldtext.js +4 -4
  140. package/dist/components/nv-fieldtextarea.js +3 -3
  141. package/dist/components/nv-fieldtime.js +13 -13
  142. package/dist/components/nv-icon.js +1 -1
  143. package/dist/components/nv-iconbutton.js +1 -1
  144. package/dist/components/nv-loader.js +1 -1
  145. package/dist/components/nv-menu.js +23 -52
  146. package/dist/components/nv-menu.js.map +1 -1
  147. package/dist/components/nv-menuitem.js +1 -1
  148. package/dist/components/nv-popover.js +1 -1
  149. package/dist/components/nv-row.js +1 -1
  150. package/dist/components/nv-stack.js +1 -1
  151. package/dist/components/nv-stack.js.map +1 -1
  152. package/dist/components/nv-table.js +2 -2
  153. package/dist/components/nv-toggle.js +2 -2
  154. package/dist/components/nv-tooltip.js +1 -1
  155. package/dist/components/{p-4c6d8df7.js → p-02752770.js} +2 -2
  156. package/dist/components/{p-4c6d8df7.js.map → p-02752770.js.map} +1 -1
  157. package/dist/components/{p-3a3ba5b1.js → p-150daf68.js} +2 -2
  158. package/dist/components/{p-3a3ba5b1.js.map → p-150daf68.js.map} +1 -1
  159. package/dist/components/{p-ef255589.js → p-2012b8ba.js} +3 -3
  160. package/dist/components/{p-ef255589.js.map → p-2012b8ba.js.map} +1 -1
  161. package/dist/components/{p-103756d6.js → p-2d9ba7d3.js} +3 -3
  162. package/dist/components/{p-103756d6.js.map → p-2d9ba7d3.js.map} +1 -1
  163. package/dist/components/{p-0f59f38e.js → p-373926aa.js} +5 -5
  164. package/dist/components/p-373926aa.js.map +1 -0
  165. package/dist/components/{p-8ea5e3c0.js → p-4d3ec142.js} +3 -3
  166. package/dist/components/{p-8ea5e3c0.js.map → p-4d3ec142.js.map} +1 -1
  167. package/dist/components/{p-78b00756.js → p-591730e7.js} +2 -2
  168. package/dist/components/{p-78b00756.js.map → p-591730e7.js.map} +1 -1
  169. package/dist/components/{p-b5821dbb.js → p-6c364a23.js} +5 -5
  170. package/dist/components/{p-b5821dbb.js.map → p-6c364a23.js.map} +1 -1
  171. package/dist/components/{p-aeeb5b1c.js → p-a30b55fc.js} +2 -2
  172. package/dist/components/{p-aeeb5b1c.js.map → p-a30b55fc.js.map} +1 -1
  173. package/dist/components/{p-e46c2e31.js → p-b7b78e64.js} +2 -2
  174. package/dist/components/{p-e46c2e31.js.map → p-b7b78e64.js.map} +1 -1
  175. package/dist/components/{p-3561c093.js → p-c14f6b8e.js} +3 -3
  176. package/dist/components/{p-3561c093.js.map → p-c14f6b8e.js.map} +1 -1
  177. package/dist/components/{p-3b096098.js → p-dc3faba3.js} +4 -4
  178. package/dist/components/{p-3b096098.js.map → p-dc3faba3.js.map} +1 -1
  179. package/dist/components/{p-933d4d06.js → p-e00cbb8a.js} +5 -5
  180. package/dist/components/{p-933d4d06.js.map → p-e00cbb8a.js.map} +1 -1
  181. package/dist/components/{p-78e0e7b0.js → p-f331117c.js} +53 -24
  182. package/dist/components/p-f331117c.js.map +1 -0
  183. package/dist/components/{p-863974b2.js → p-f4d86795.js} +3 -3
  184. package/dist/components/{p-863974b2.js.map → p-f4d86795.js.map} +1 -1
  185. package/dist/esm/index-1fb7a9a6.js +0 -4
  186. package/dist/esm/loader.js +1 -1
  187. package/dist/esm/native.js +1 -1
  188. package/dist/esm/nv-badge_2.entry.js +4 -4
  189. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  190. package/dist/esm/nv-breadcrumb.entry.js +1 -1
  191. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  192. package/dist/esm/nv-button.entry.js +1 -1
  193. package/dist/esm/nv-calendar.entry.js +48 -19
  194. package/dist/esm/nv-calendar.entry.js.map +1 -1
  195. package/dist/esm/nv-col.entry.js +1 -1
  196. package/dist/esm/nv-datagrid.entry.js +378 -85
  197. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  198. package/dist/esm/nv-datagridcolumn.entry.js +5 -1
  199. package/dist/esm/nv-datagridcolumn.entry.js.map +1 -1
  200. package/dist/esm/nv-dialog.entry.js +1 -1
  201. package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
  202. package/dist/esm/nv-fieldcheckbox.entry.js +4 -4
  203. package/dist/esm/nv-fielddate.entry.js +5 -5
  204. package/dist/esm/nv-fielddaterange.entry.js +4 -4
  205. package/dist/esm/nv-fielddropdown.entry.js +15 -35
  206. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  207. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  208. package/dist/esm/nv-fieldmultiselect.entry.js +30 -86
  209. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  210. package/dist/esm/nv-fieldnumber.entry.js +3 -3
  211. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  212. package/dist/esm/nv-fieldpassword.entry.js +9 -7
  213. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  214. package/dist/esm/nv-fieldradio.entry.js +3 -3
  215. package/dist/esm/nv-fieldselect.entry.js +5 -5
  216. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  217. package/dist/esm/nv-fieldtext.entry.js +3 -3
  218. package/dist/esm/nv-fieldtextarea.entry.js +3 -3
  219. package/dist/esm/nv-fieldtime.entry.js +9 -9
  220. package/dist/esm/nv-icon.entry.js +1 -1
  221. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  222. package/dist/esm/nv-menu.entry.js +18 -44
  223. package/dist/esm/nv-menu.entry.js.map +1 -1
  224. package/dist/esm/nv-menuitem.entry.js +1 -1
  225. package/dist/esm/nv-popover.entry.js +1 -1
  226. package/dist/esm/nv-row.entry.js +1 -1
  227. package/dist/esm/nv-stack.entry.js +1 -1
  228. package/dist/esm/nv-stack.entry.js.map +1 -1
  229. package/dist/esm/nv-table.entry.js +2 -2
  230. package/dist/esm/nv-toggle.entry.js +2 -2
  231. package/dist/esm/nv-tooltip.entry.js +1 -1
  232. package/dist/native/native.css +1 -1
  233. package/dist/native/native.esm.js +1 -1
  234. package/dist/native/native.esm.js.map +1 -1
  235. package/dist/native/p-0245863d.entry.js +2 -0
  236. package/dist/native/{p-19fd6594.entry.js → p-0ee428d5.entry.js} +2 -2
  237. package/dist/native/p-0ee428d5.entry.js.map +1 -0
  238. package/dist/native/{p-c10e5113.entry.js → p-244f56ac.entry.js} +2 -2
  239. package/dist/native/p-2691e02d.entry.js +2 -0
  240. package/dist/native/{p-31184fdd.entry.js → p-37f0210e.entry.js} +2 -2
  241. package/dist/native/{p-31184fdd.entry.js.map → p-37f0210e.entry.js.map} +1 -1
  242. package/dist/native/{p-162f4840.entry.js → p-39bb95ff.entry.js} +2 -2
  243. package/dist/native/{p-abeda2cf.entry.js → p-4ae26462.entry.js} +2 -2
  244. package/dist/native/p-4d9c4618.entry.js +2 -0
  245. package/dist/native/p-4d9c4618.entry.js.map +1 -0
  246. package/dist/native/{p-314d2b34.entry.js → p-59e0bd2b.entry.js} +2 -2
  247. package/dist/native/{p-314d2b34.entry.js.map → p-59e0bd2b.entry.js.map} +1 -1
  248. package/dist/native/{p-e6904ae4.entry.js → p-5c00f092.entry.js} +2 -2
  249. package/dist/native/p-63e6aed3.entry.js +2 -0
  250. package/dist/native/p-63e6aed3.entry.js.map +1 -0
  251. package/dist/native/{p-40f4a6e7.entry.js → p-6b348684.entry.js} +2 -2
  252. package/dist/native/{p-442f04f9.entry.js → p-6ff228da.entry.js} +2 -2
  253. package/dist/native/{p-442f04f9.entry.js.map → p-6ff228da.entry.js.map} +1 -1
  254. package/dist/native/{p-603a99ed.entry.js → p-701b5557.entry.js} +2 -2
  255. package/dist/native/{p-2281d5ef.entry.js → p-7f5eb2ac.entry.js} +2 -2
  256. package/dist/native/{p-f5e0d5c5.entry.js → p-84a73e2a.entry.js} +2 -2
  257. package/dist/native/p-9135fdf5.entry.js +2 -0
  258. package/dist/native/p-9135fdf5.entry.js.map +1 -0
  259. package/dist/native/p-93dc2f47.entry.js +2 -0
  260. package/dist/native/{p-45577c7f.entry.js.map → p-93dc2f47.entry.js.map} +1 -1
  261. package/dist/native/{p-d9624254.entry.js → p-9a267f16.entry.js} +2 -2
  262. package/dist/native/p-9a267f16.entry.js.map +1 -0
  263. package/dist/native/{p-ecc28398.entry.js → p-9d6431c7.entry.js} +2 -2
  264. package/dist/native/p-9d6431c7.entry.js.map +1 -0
  265. package/dist/native/{p-514101d6.entry.js → p-b094296d.entry.js} +2 -2
  266. package/dist/native/{p-464ef88f.entry.js → p-b2ce83ad.entry.js} +2 -2
  267. package/dist/native/p-bad11367.entry.js +2 -0
  268. package/dist/native/{p-0172095c.entry.js → p-c7b201cd.entry.js} +2 -2
  269. package/dist/native/{p-725e0abd.entry.js → p-d7a76400.entry.js} +2 -2
  270. package/dist/native/p-e1a4f776.entry.js +2 -0
  271. package/dist/native/p-e1a4f776.entry.js.map +1 -0
  272. package/dist/native/p-e49bbd02.entry.js +2 -0
  273. package/dist/native/p-e49bbd02.entry.js.map +1 -0
  274. package/dist/native/{p-17bf1233.entry.js → p-e5de64d5.entry.js} +2 -2
  275. package/dist/native/p-eee01062.entry.js +2 -0
  276. package/dist/native/{p-e197d90b.entry.js.map → p-eee01062.entry.js.map} +1 -1
  277. package/dist/native/{p-332c5d6c.entry.js → p-f6bdc270.entry.js} +2 -2
  278. package/dist/native/{p-3af5bcc1.entry.js → p-f85aca27.entry.js} +2 -2
  279. package/dist/native/{p-7fade532.entry.js → p-fa77a591.entry.js} +2 -2
  280. package/dist/native/{p-f01a34c5.entry.js → p-fb5bddba.entry.js} +2 -2
  281. package/dist/types/components/nv-badge/nv-badge.d.ts +1 -0
  282. package/dist/types/components/nv-calendar/nv-calendar.d.ts +10 -7
  283. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +38 -2
  284. package/dist/types/components/nv-datagridcolumn/nv-datagridcolumn.d.ts +4 -0
  285. package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +17 -23
  286. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +17 -44
  287. package/dist/types/components/nv-fieldpassword/nv-fieldpassword.d.ts +2 -0
  288. package/dist/types/components/nv-menu/nv-menu.d.ts +50 -16
  289. package/dist/types/components.d.ts +192 -45
  290. package/dist/types/nova-docs.d.ts +5 -0
  291. package/dist/vscode-data.json +43 -51
  292. package/hydrate/index.js +587 -438
  293. package/hydrate/index.mjs +587 -438
  294. package/package.json +5 -3
  295. package/dist/cjs/nv-base.cjs.entry.js +0 -74
  296. package/dist/cjs/nv-base.cjs.entry.js.map +0 -1
  297. package/dist/collection/components/nv-base/nv-base.docs.js +0 -5
  298. package/dist/collection/components/nv-base/nv-base.docs.js.map +0 -1
  299. package/dist/collection/components/nv-base/nv-base.js +0 -68
  300. package/dist/collection/components/nv-base/nv-base.js.map +0 -1
  301. package/dist/components/nv-base.d.ts +0 -11
  302. package/dist/components/nv-base.js +0 -88
  303. package/dist/components/nv-base.js.map +0 -1
  304. package/dist/components/p-0f59f38e.js.map +0 -1
  305. package/dist/components/p-78e0e7b0.js.map +0 -1
  306. package/dist/esm/nv-base.entry.js +0 -70
  307. package/dist/esm/nv-base.entry.js.map +0 -1
  308. package/dist/native/p-19fd6594.entry.js.map +0 -1
  309. package/dist/native/p-1a46cb52.entry.js +0 -2
  310. package/dist/native/p-1a46cb52.entry.js.map +0 -1
  311. package/dist/native/p-331da074.entry.js +0 -2
  312. package/dist/native/p-42d020a7.entry.js +0 -2
  313. package/dist/native/p-42d020a7.entry.js.map +0 -1
  314. package/dist/native/p-4403e3af.entry.js +0 -2
  315. package/dist/native/p-4403e3af.entry.js.map +0 -1
  316. package/dist/native/p-45577c7f.entry.js +0 -2
  317. package/dist/native/p-46aa1136.entry.js +0 -2
  318. package/dist/native/p-54b6ce07.entry.js +0 -2
  319. package/dist/native/p-54b6ce07.entry.js.map +0 -1
  320. package/dist/native/p-665db087.entry.js +0 -2
  321. package/dist/native/p-942f8e92.entry.js +0 -2
  322. package/dist/native/p-942f8e92.entry.js.map +0 -1
  323. package/dist/native/p-d9624254.entry.js.map +0 -1
  324. package/dist/native/p-e197d90b.entry.js +0 -2
  325. package/dist/native/p-ecc28398.entry.js.map +0 -1
  326. package/dist/native/p-f89b7d06.entry.js +0 -2
  327. package/dist/native/p-f89b7d06.entry.js.map +0 -1
  328. package/dist/types/components/nv-base/nv-base.d.ts +0 -17
  329. package/dist/types/components/nv-base/nv-base.docs.d.ts +0 -5
  330. /package/dist/native/{p-665db087.entry.js.map → p-0245863d.entry.js.map} +0 -0
  331. /package/dist/native/{p-c10e5113.entry.js.map → p-244f56ac.entry.js.map} +0 -0
  332. /package/dist/native/{p-46aa1136.entry.js.map → p-2691e02d.entry.js.map} +0 -0
  333. /package/dist/native/{p-162f4840.entry.js.map → p-39bb95ff.entry.js.map} +0 -0
  334. /package/dist/native/{p-abeda2cf.entry.js.map → p-4ae26462.entry.js.map} +0 -0
  335. /package/dist/native/{p-e6904ae4.entry.js.map → p-5c00f092.entry.js.map} +0 -0
  336. /package/dist/native/{p-40f4a6e7.entry.js.map → p-6b348684.entry.js.map} +0 -0
  337. /package/dist/native/{p-603a99ed.entry.js.map → p-701b5557.entry.js.map} +0 -0
  338. /package/dist/native/{p-2281d5ef.entry.js.map → p-7f5eb2ac.entry.js.map} +0 -0
  339. /package/dist/native/{p-f5e0d5c5.entry.js.map → p-84a73e2a.entry.js.map} +0 -0
  340. /package/dist/native/{p-514101d6.entry.js.map → p-b094296d.entry.js.map} +0 -0
  341. /package/dist/native/{p-464ef88f.entry.js.map → p-b2ce83ad.entry.js.map} +0 -0
  342. /package/dist/native/{p-331da074.entry.js.map → p-bad11367.entry.js.map} +0 -0
  343. /package/dist/native/{p-0172095c.entry.js.map → p-c7b201cd.entry.js.map} +0 -0
  344. /package/dist/native/{p-725e0abd.entry.js.map → p-d7a76400.entry.js.map} +0 -0
  345. /package/dist/native/{p-17bf1233.entry.js.map → p-e5de64d5.entry.js.map} +0 -0
  346. /package/dist/native/{p-332c5d6c.entry.js.map → p-f6bdc270.entry.js.map} +0 -0
  347. /package/dist/native/{p-3af5bcc1.entry.js.map → p-f85aca27.entry.js.map} +0 -0
  348. /package/dist/native/{p-7fade532.entry.js.map → p-fa77a591.entry.js.map} +0 -0
  349. /package/dist/native/{p-f01a34c5.entry.js.map → p-fb5bddba.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"nv-menu.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,k2DAAk2D,CAAC;AACr3D,qBAAe,SAAS;;MC8DX,MAAM;IALnB;;;QASU,sBAAiB,GAAY,KAAK,CAAC;;;;;;;QAU3C,SAAI,GAAY,KAAK,CAAC;;;;;QAOb,WAAM,GAAY,KAAK,CAAC;;;;;QAOxB,yBAAoB,GAAY,KAAK,CAAC;;;;;;QAQtC,cAAS,GAAc,YAAY,CAAC;;;;QAarC,gBAAW,GAAe,EAAE,CAAC;KAsRtC;;;;;IA/QC,iBAAiB,CAAC,QAAgB;QAChC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,IAAI;gBACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzC;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;gBAClD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aACvB;SACF;KACF;;;;;;;IAUD,MAAM,IAAI;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;;;;IAMD,MAAM,KAAK;QACT,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;IAiBD,oBAAoB,CAClB,KAAqE;QAErE,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO;QACtC,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QACpC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;IAGD,aAAa,CAAC,KAAoB;;;QAGhC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IACE,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO;gBACpB,KAAK,CAAC,GAAG,KAAK,WAAW;gBACzB,KAAK,CAAC,GAAG,KAAK,GAAG;gBACnB,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,cAAc,EAC9C;gBACA,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,EAAE,CAAC;;gBAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBACvE,IAAI,aAAa,EAAE;oBACjB,qBAAqB,CAAC,MAAO,aAA6B,CAAC,KAAK,EAAE,CAAC,CAAC;iBACrE;aACF;YACD,OAAO;SACR;QAED,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,IACE,KAAK,CAAC,GAAG,KAAK,WAAW;YACzB,KAAK,CAAC,GAAG,KAAK,SAAS;YACvB,KAAK,CAAC,GAAG,KAAK,WAAW;YACzB,KAAK,CAAC,GAAG,KAAK,YAAY;YAC1B,KAAK,CAAC,GAAG,KAAK,QAAQ,EACtB;YACA,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,OAAO;SACR;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC9D,MAAM,SAAS,GACb,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAGlC,CAAC,MAAM,CAAC,IAAI,cAAI,OAAA,MAAA,IAAI,CAAC,OAAO,qDAAG,sBAAsB,CAAC,CAAA,EAAA,CAAC,CAAC;QAEzD,IAAI,YAAY,GAAG,SAAS,CAAC,OAAO,CAClC,QAAQ,CAAC,aAAsC,CAChD,CAAC;QACF,IAAI,YAAY,KAAK,CAAC,CAAC;YACrB,YAAY,GAAG,SAAS,CAAC,OAAO,CAC9B,QAAQ,CAAC,aAAa,CAAC,aAAsC,CAC9D,CAAC;QACJ,IACE,YAAY,KAAK,CAAC,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EACrD;YACA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,OAAO;SACR;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YACxD,SAAS,CAAC,OAAO,CAAC,IAAI;gBACpB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBAAG,IAA0B,CAAC,KAAK,EAAE,CAAC;aAClE,CAAC,CAAC;SACJ;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,IAAI,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC;YACtD,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE;gBAC5D,SAAS,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC;aAChD;YACD,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBACxC,aAAa,CAAC,KAAK,EAAE,CAAC;aACvB;iBAAM,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3C,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;aACpD;SACF;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YAC3B,IAAI,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;YACzE,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE;gBAC5D,SAAS,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;aACnE;YACD,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBACxC,aAAa,CAAC,KAAK,EAAE,CAAC;aACvB;iBAAM,IAAI,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3C,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;aACpD;SACF;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE;YAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC/B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,OAAO;aACR;YACA,OAA6B,CAAC,IAAI,EAAE,CAAC;SACvC;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE;YAC5C,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE;gBACzD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/B,OAAO;aACR;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAChC;IAGD,iBAAiB,CAAC,KAA2B;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;YACxD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;SAC1B;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,aAAa,CAAC;QACvE,MAAM,sBAAsB,GAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAChD,IAAI,eAAe,IAAI,sBAAsB;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;KACtE;IAEO,cAAc;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACrE,IAAI,WAAW,EAAE;YACf,qBAAqB,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;SAClD;KACF;;;;IAMD,iBAAiB;QACf,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK;YAC3D,OAAO,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;SACjD,CAAgB,CAAC;;QAGlB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpC;KACF;;;;;;;;;IAWO,eAAe,CAAC,KAAiB;QACvC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI;;YACnB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,IAAG,CAAC,EAAE;gBACpD,QACE,eACE,MAAM,QACN,SAAS,EAAC,aAAa,EACvB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAExC,mBACE,IAAI,EAAC,SAAS,uBAEd,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAgB,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,EAAE,EAAE,IAAI,CAAC,KAAK,EACd,IAAI,EAAE,IAAI,CAAC,KAAK,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,GACJ,CACP,EACV;aACH;YACD,QACE,mBACE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAgB,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,EAAE,EAAE,IAAI,CAAC,KAAK,EACd,IAAI,EAAE,IAAI,CAAC,KAAK,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,GACJ,EACf;SACH,CAAC,CAAC;KACJ;IAED,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,6DAAM,IAAI,EAAC,SAAS,GAAQ,EAC5B,mEACE,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,EACrC,WAAW,EAAC,OAAO,EACnB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,IAEd,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAC1B,UAAI,IAAI,EAAC,SAAS,IAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAM,KAEhE,YAAM,IAAI,EAAC,SAAS,GAAQ,CAC7B,CACU,CACR,EACP;KACH;;;;;;;;;;","names":[],"sources":["src/components/nv-menu/nv-menu.scss?tag=nv-menu","src/components/nv-menu/nv-menu.tsx"],"sourcesContent":["@use \"../nv-menuitem/nv-menuitem\" as nv-menuitem;\n\n@mixin root-styles() {\n display: inline-block;\n position: relative;\n\n &:has([fluid]:not([fluid=\"false\"])) {\n display: block;\n }\n}\n\n@mixin content-styles() {\n padding: var(--menu-contextual-padding-y)\n var(--menu-contextual-padding-x);\n border-radius: var(--menu-contextual-radius);\n gap: var(--menu-contextual-gap-y);\n background-color: var(--components-menu-contextual-background);\n border-color: var(--components-menu-contextual-border);\n display: flex;\n flex-direction: column;\n}\n\n@mixin separator-styles() {\n display: block;\n margin: var(--menu-contextual-divider-padding-top)\n var(--menu-contextual-divider-padding-x)\n var(--menu-contextual-divider-padding-bottom)\n var(--menu-contextual-divider-padding-x) ;\n}\n\nnv-menu {\n @include root-styles();\n\n nv-popover {\n display: unset;\n\n [data-scope=popover]{\n background-color: transparent !important;\n padding: 0 !important;\n }\n }\n\n [slot=\"content\"] {\n @include content-styles();\n }\n\n nv-menu[open]:not([open=\"false\"]) {\n > nv-menuitem {\n @include nv-menuitem.focused-styles();\n }\n }\n\n hr {\n @include separator-styles();\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Listen,\n Event,\n EventEmitter,\n Method,\n State,\n Watch,\n} from '@stencil/core';\nimport type { Placement } from '@floating-ui/dom';\nimport { IconName } from '../nv-icon/nv-icons';\n\n/**\n * Interface to define the structure of a menu item\n */\ninterface MenuItem {\n /**\n * The label of the menu item.\n */\n label: string;\n /**\n * The value of the menu item.\n */\n value?: string;\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Whether the menu item has a submenu.\n */\n hasSubmenu?: boolean;\n /**\n * The icon of the menu item.\n */\n icon?: string;\n /**\n * The shortcut of the menu item.\n */\n shortcut?: string;\n /**\n * Whether the menu item is nested.\n */\n nested?: boolean;\n /**\n * The submenu items of the menu item.\n */\n submenuItems?: MenuItem[];\n}\n\n/**\n * @slot trigger - Button to toggle the menu popover.\n * @slot content - Use an &lt;ul&gt;&lt;/ul&gt; tag for the slot, and place &lt;nv-menuitem&gt; elements inside.\n */\n@Component({\n tag: 'nv-menu',\n styleUrl: 'nv-menu.scss',\n shadow: false,\n})\nexport class NvMenu {\n @Element() el: HTMLNvMenuElement;\n private triggerElement!: HTMLElement;\n private popoverElement!: HTMLNvPopoverElement;\n private isHandlingKeyDown: boolean = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Use this to toggle the initial visibility of the menu, by default the menu\n * is hidden.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Use this if the menu is nested inside another menu. This will prevent the\n * parent menu from closing when the child menu is opened.\n */\n @Prop({ reflect: true })\n readonly nested: boolean = false;\n\n /**\n * Use this to disable the menu from closing automatically when a menu item is\n * selected.\n */\n @Prop({ reflect: true })\n readonly disableCloseOnSelect: boolean = false;\n\n /**\n * Decides where the menu shows up next to the button it’s linked to (above,\n * below, to the sides). If there isn’t enough room, it will adjust its\n * 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-end';\n\n /**\n * (New feature) Items to display in the menu, provided as a JSON string.\n * Format: [{ label: string, value?: string, disabled?: boolean, hasSubmenu?: boolean, ... }]\n */\n @Prop({ reflect: true })\n readonly items?: string;\n\n /**\n * Parsed items stored in state.\n */\n @State()\n private parsedItems: MenuItem[] = [];\n\n /**\n * Watcher to parse the items when the `items` property changes.\n * @param {string} newValue - The new value of the `items` property.\n */\n @Watch('items')\n handleItemsChange(newValue: string) {\n if (typeof newValue === 'string') {\n try {\n this.parsedItems = JSON.parse(newValue);\n } catch (error) {\n console.error('Error parsing menu items:', error);\n this.parsedItems = [];\n }\n }\n }\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Opens the menu.\n */\n @Method()\n async show() {\n this.open = true;\n }\n\n /**\n * Closes the menu.\n */\n @Method()\n async close() {\n this.open = false;\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted from nv-menuitem elements with the corresponding id and name when\n * selected (via click or keyboard). This event listener can be attached to\n * either the nv-menu or the nv-menuitem element.\n */\n @Event()\n menuitemSelected: EventEmitter<\n HTMLNvMenuitemElementEventMap['menuitemSelected']\n >;\n\n @Listen('menuitemSelected')\n handleMenuItemSelect(\n event: CustomEvent<HTMLNvMenuitemElementEventMap['menuitemSelected']>,\n ) {\n if (this.disableCloseOnSelect) return;\n if (event.detail.hasSubmenu) return;\n this.open = false;\n }\n\n @Listen('keydown', { passive: false })\n handleKeydown(event: KeyboardEvent) {\n // If the menu is not open, check if the trigger is focused\n // and the user presses Enter or ArrowDown, open the menu\n if (!this.open) {\n if (\n (event.key === 'Enter' ||\n event.key === 'ArrowDown' ||\n event.key === ' ') &&\n document.activeElement === this.triggerElement\n ) {\n event.preventDefault();\n this.show();\n // Then, put the focus on the first menuitem\n const firstMenuItem = this.popoverElement.querySelector('nv-menuitem');\n if (firstMenuItem) {\n requestAnimationFrame(() => (firstMenuItem as HTMLElement).focus());\n }\n }\n return;\n }\n\n if (this.isHandlingKeyDown) return;\n this.isHandlingKeyDown = true;\n\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight' ||\n event.key === 'Escape'\n ) {\n event.preventDefault();\n }\n\n if (event.key === 'Escape' && !this.nested) {\n this.close();\n this.triggerElement.focus();\n this.isHandlingKeyDown = false;\n return;\n }\n\n const menuContent = this.el.querySelector('[slot=\"content\"]');\n const menuItems = (\n Array.from(menuContent.childNodes) as Array<\n HTMLNvMenuitemElement | HTMLNvMenuElement\n >\n ).filter(item => item.matches?.('nv-menuitem, nv-menu'));\n\n let currentIndex = menuItems.indexOf(\n document.activeElement as HTMLNvMenuitemElement,\n );\n if (currentIndex === -1)\n currentIndex = menuItems.indexOf(\n document.activeElement.parentElement as HTMLNvMenuitemElement,\n );\n if (\n currentIndex === -1 &&\n menuItems.find(item => item.matches('nv-menu[open]'))\n ) {\n this.isHandlingKeyDown = false;\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n menuItems.forEach(item => {\n if (item.matches('nv-menu')) (item as HTMLNvMenuElement).close();\n });\n }\n\n if (event.key === 'ArrowDown') {\n let nextIndex = (currentIndex + 1) % menuItems.length;\n while (menuItems[nextIndex].matches('nv-menuitem[disabled]')) {\n nextIndex = (nextIndex + 1) % menuItems.length;\n }\n const nextFocusable = menuItems[nextIndex];\n if (nextFocusable.matches('nv-menuitem')) {\n nextFocusable.focus();\n } else if (nextFocusable.matches('nv-menu')) {\n nextFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowUp') {\n let prevIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;\n while (menuItems[prevIndex].matches('nv-menuitem[disabled]')) {\n prevIndex = (prevIndex - 1 + menuItems.length) % menuItems.length;\n }\n const prevFocusable = menuItems[prevIndex];\n if (prevFocusable.matches('nv-menuitem')) {\n prevFocusable.focus();\n } else if (prevFocusable.matches('nv-menu')) {\n prevFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowRight') {\n const submenu = menuItems[currentIndex];\n if (!submenu.matches('nv-menu')) {\n this.isHandlingKeyDown = false;\n return;\n }\n (submenu as HTMLNvMenuElement).show();\n }\n\n if (event.key === 'ArrowLeft' && this.nested) {\n if (menuItems.find(item => item.matches('nv-menu[open]'))) {\n this.isHandlingKeyDown = false;\n return;\n }\n this.close();\n this.triggerElement.focus();\n }\n\n this.isHandlingKeyDown = false;\n }\n\n @Listen('openChanged')\n handleOpenChanged(event: CustomEvent<boolean>) {\n if (event.target === this.el.querySelector('nv-popover')) {\n this.open = event.detail;\n }\n const triggerHasFocus = this.triggerElement === document.activeElement;\n const triggerHasFocusVisible =\n this.triggerElement.matches(':focus-visible');\n if (triggerHasFocus && triggerHasFocusVisible) this.focusFirstItem();\n }\n\n private focusFirstItem() {\n const firstButton = this.popoverElement.querySelector('nv-menuitem');\n if (firstButton) {\n requestAnimationFrame(() => firstButton.focus());\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.triggerElement = Array.from(this.el.children).find(child => {\n return child.getAttribute('slot') === 'trigger';\n }) as HTMLElement;\n\n // If the items attribute is provided, parse its value.\n if (this.items) {\n this.handleItemsChange(this.items);\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Generates menu items from the `items` property.\n * @param {MenuItem[]} items - The items to display in the menu.\n * @returns {HTMLElement[]} The rendered items.\n */\n private renderMenuItems(items: MenuItem[]) {\n return items.map(item => {\n if (item.hasSubmenu && item.submenuItems?.length > 0) {\n return (\n <nv-menu\n nested\n placement=\"right-start\"\n items={JSON.stringify(item.submenuItems)}\n >\n <nv-menuitem\n slot=\"trigger\"\n has-submenu\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n </nv-menu>\n );\n }\n return (\n <nv-menuitem\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n );\n });\n }\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\"></slot>\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"click\"\n triggerElement={this.triggerElement}\n placement={this.placement}\n nested={this.nested}\n open={this.open}\n >\n {this.parsedItems.length > 0 ? (\n <ul slot=\"content\">{this.renderMenuItems(this.parsedItems)}</ul>\n ) : (\n <slot name=\"content\"></slot>\n )}\n </nv-popover>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}
1
+ {"file":"nv-menu.entry.js","mappings":"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","names":[],"sources":["src/components/nv-menu/nv-menu.scss?tag=nv-menu","src/components/nv-menu/nv-menu.tsx"],"sourcesContent":["@use \"../nv-menuitem/nv-menuitem\" as nv-menuitem;\n\n@mixin root-styles() {\n display: inline-block;\n position: relative;\n\n &:has([fluid]:not([fluid=\"false\"])) {\n display: block;\n }\n}\n\n@mixin content-styles() {\n padding: var(--menu-contextual-padding-y)\n var(--menu-contextual-padding-x);\n border-radius: var(--menu-contextual-radius);\n gap: var(--menu-contextual-gap-y);\n background-color: var(--components-menu-contextual-background);\n border-color: var(--components-menu-contextual-border);\n display: flex;\n flex-direction: column;\n}\n\n@mixin separator-styles() {\n display: block;\n margin: var(--menu-contextual-divider-padding-top)\n var(--menu-contextual-divider-padding-x)\n var(--menu-contextual-divider-padding-bottom)\n var(--menu-contextual-divider-padding-x) ;\n}\n\nnv-menu {\n @include root-styles();\n\n nv-popover {\n display: unset;\n\n [data-scope=popover]{\n background-color: transparent !important;\n padding: 0 !important;\n }\n }\n\n [slot=\"content\"] {\n @include content-styles();\n }\n\n nv-menu[open]:not([open=\"false\"]) {\n > nv-menuitem {\n @include nv-menuitem.focused-styles();\n }\n }\n\n hr {\n @include separator-styles();\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Listen,\n Event,\n EventEmitter,\n Method,\n} from '@stencil/core';\nimport type { Placement } from '@floating-ui/dom';\nimport { IconName } from '../nv-icon/nv-icons';\n\n/**\n * @slot trigger - The button element that toggles the menu popover\n * @slot content - The content of the menu, should be wrapped in a ul element containing nv-menuitem elements\n */\n@Component({\n tag: 'nv-menu',\n styleUrl: 'nv-menu.scss',\n shadow: false,\n})\nexport class NvMenu {\n @Element() el: HTMLNvMenuElement;\n private triggerElement!: HTMLElement;\n private popoverElement!: HTMLNvPopoverElement;\n private isHandlingKeyDown: boolean = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Use this to toggle the initial visibility of the menu, by default the menu\n * is hidden.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Use this if the menu is nested inside another menu. This will prevent the\n * parent menu from closing when the child menu is opened.\n */\n @Prop({ reflect: true })\n readonly nested: boolean = false;\n\n /**\n * Use this to disable the menu from closing automatically when a menu item is\n * selected.\n */\n @Prop({ reflect: true })\n readonly disableCloseOnSelect: boolean = false;\n\n /**\n * Decides where the menu shows up next to the button it's linked to (above,\n * below, to the sides). If there isn't enough room, it will adjust its\n * 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-end';\n\n /**\n * List of items used to automatically generate dropdown items. This\n * provides an alternative to using the slot manually.\n *\n * @example\n * items = [{\n * \"label\": \"Option 1\",\n * \"value\": \"option1\",\n * },\n * {\n * \"label\": \"Option 2\",\n * \"value\": \"option2\",\n * }]\n */\n @Prop({ reflect: true })\n readonly items?: {\n /**\n * The label of the menu item.\n */\n label: string;\n /**\n * The value of the menu item.\n */\n value?: string;\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Whether the menu item has a submenu.\n */\n hasSubmenu?: boolean;\n /**\n * The icon of the menu item.\n */\n icon?: string;\n /**\n * The shortcut of the menu item.\n */\n shortcut?: string;\n /**\n * Whether the menu item is nested.\n */\n nested?: boolean;\n /**\n * The submenu items of the menu item.\n */\n submenuItems?: InstanceType<typeof NvMenu>['items'];\n }[];\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Opens the menu.\n */\n @Method()\n async show() {\n this.open = true;\n }\n\n /**\n * Closes the menu.\n */\n @Method()\n async close() {\n this.open = false;\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted from nv-menuitem elements with the corresponding id and name when\n * selected (via click or keyboard). This event listener can be attached to\n * either the nv-menu or the nv-menuitem element.\n */\n @Event()\n menuitemSelected: EventEmitter<\n HTMLNvMenuitemElementEventMap['menuitemSelected']\n >;\n\n @Listen('menuitemSelected')\n handleMenuItemSelect(\n event: CustomEvent<HTMLNvMenuitemElementEventMap['menuitemSelected']>,\n ) {\n if (this.disableCloseOnSelect) return;\n if (event.detail.hasSubmenu) return;\n this.open = false;\n }\n\n @Listen('keydown', { passive: false })\n handleKeydown(event: KeyboardEvent) {\n // If the menu is not open, check if the trigger is focused\n // and the user presses Enter or ArrowDown, open the menu\n if (!this.open) {\n if (\n (event.key === 'Enter' ||\n event.key === 'ArrowDown' ||\n event.key === ' ') &&\n document.activeElement === this.triggerElement\n ) {\n event.preventDefault();\n this.show();\n // Then, put the focus on the first menuitem\n const firstMenuItem = this.popoverElement.querySelector('nv-menuitem');\n if (firstMenuItem) {\n requestAnimationFrame(() => (firstMenuItem as HTMLElement).focus());\n }\n }\n return;\n }\n\n if (this.isHandlingKeyDown) return;\n this.isHandlingKeyDown = true;\n\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight' ||\n event.key === 'Escape'\n ) {\n event.preventDefault();\n }\n\n if (event.key === 'Escape' && !this.nested) {\n this.close();\n this.triggerElement.focus();\n this.isHandlingKeyDown = false;\n return;\n }\n\n const menuContent = this.el.querySelector('[slot=\"content\"]');\n const menuItems = (\n Array.from(menuContent.childNodes) as Array<\n HTMLNvMenuitemElement | HTMLNvMenuElement\n >\n ).filter(item => item.matches?.('nv-menuitem, nv-menu'));\n\n let currentIndex = menuItems.indexOf(\n document.activeElement as HTMLNvMenuitemElement,\n );\n if (currentIndex === -1)\n currentIndex = menuItems.indexOf(\n document.activeElement.parentElement as HTMLNvMenuitemElement,\n );\n if (\n currentIndex === -1 &&\n menuItems.find(item => item.matches('nv-menu[open]'))\n ) {\n this.isHandlingKeyDown = false;\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n menuItems.forEach(item => {\n if (item.matches('nv-menu')) (item as HTMLNvMenuElement).close();\n });\n }\n\n if (event.key === 'ArrowDown') {\n let nextIndex = (currentIndex + 1) % menuItems.length;\n while (menuItems[nextIndex].matches('nv-menuitem[disabled]')) {\n nextIndex = (nextIndex + 1) % menuItems.length;\n }\n const nextFocusable = menuItems[nextIndex];\n if (nextFocusable.matches('nv-menuitem')) {\n nextFocusable.focus();\n } else if (nextFocusable.matches('nv-menu')) {\n nextFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowUp') {\n let prevIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;\n while (menuItems[prevIndex].matches('nv-menuitem[disabled]')) {\n prevIndex = (prevIndex - 1 + menuItems.length) % menuItems.length;\n }\n const prevFocusable = menuItems[prevIndex];\n if (prevFocusable.matches('nv-menuitem')) {\n prevFocusable.focus();\n } else if (prevFocusable.matches('nv-menu')) {\n prevFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowRight') {\n const submenu = menuItems[currentIndex];\n if (!submenu.matches('nv-menu')) {\n this.isHandlingKeyDown = false;\n return;\n }\n (submenu as HTMLNvMenuElement).show();\n }\n\n if (event.key === 'ArrowLeft' && this.nested) {\n if (menuItems.find(item => item.matches('nv-menu[open]'))) {\n this.isHandlingKeyDown = false;\n return;\n }\n this.close();\n this.triggerElement.focus();\n }\n\n this.isHandlingKeyDown = false;\n }\n\n @Listen('openChanged')\n handleOpenChanged(event: CustomEvent<boolean>) {\n if (event.target === this.el.querySelector('nv-popover')) {\n this.open = event.detail;\n }\n const triggerHasFocus = this.triggerElement === document.activeElement;\n const triggerHasFocusVisible =\n this.triggerElement.matches(':focus-visible');\n if (triggerHasFocus && triggerHasFocusVisible) this.focusFirstItem();\n }\n\n private focusFirstItem() {\n const firstButton = this.popoverElement.querySelector('nv-menuitem');\n if (firstButton) {\n requestAnimationFrame(() => firstButton.focus());\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.triggerElement = Array.from(this.el.children).find(child => {\n return child.getAttribute('slot') === 'trigger';\n }) as HTMLElement;\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Generates menu items from the `items` property.\n * @param {MenuItem[]} items - The items to display in the menu.\n * @returns {HTMLElement[]} The rendered items.\n */\n private renderMenuItems = () => {\n return this.items.map(item => {\n if (item.hasSubmenu && item.submenuItems?.length > 0) {\n return (\n <nv-menu nested placement=\"right-start\" items={item.submenuItems}>\n <nv-menuitem\n slot=\"trigger\"\n hasSubmenu\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n </nv-menu>\n );\n }\n return (\n <nv-menuitem\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n );\n });\n };\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\"></slot>\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"click\"\n triggerElement={this.triggerElement}\n placement={this.placement}\n nested={this.nested}\n open={this.open}\n >\n {this.items ? (\n <ul slot=\"content\">{this.renderMenuItems()}</ul>\n ) : (\n <slot name=\"content\"></slot>\n )}\n </nv-popover>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}
@@ -46,7 +46,7 @@ const NvMenuitem = class {
46
46
  /****************************************************************************/
47
47
  //#region RENDER
48
48
  render() {
49
- return (h(Host, { key: '2b59ea1b8582c9d5beac1e22c9547bebca9a19c0', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && h("nv-icon", { key: 'bd72a3c8ffb0f2bfcecb11017493ee7476a8b34a', name: this.icon }), h("slot", { key: 'a3f396ca95fcb14fba1861f641e11abac06c7fe8' }), this.label && h("span", { key: 'ffffe933ab348dc617bb2d76f96e6e11e6ea5900', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && h("kbd", { key: 'cc76611b2a113cfa309ba3655d5c335d996380b3' }, this.shortcut), this.hasSubmenu && h("nv-icon", { key: '3e90fdb722f845e24d6588b604f292dd7ee2ea4a', name: "chevron-right" })));
49
+ return (h(Host, { key: 'd736bc00759cb97fe52d2d6dc091667057a5585c', role: "menuitem", tabindex: this.disabled ? '-1' : '0' }, this.icon && h("nv-icon", { key: 'cf29c75feedcb61d16d33433f834751c821a4256', name: this.icon }), h("slot", { key: '0ebe8b2faac9981023c224e3c5cd4f131e088c0e' }), this.label && h("span", { key: 'd2659aceb0ecc1cad794ae16d15432379677012c', "data-scope": "text" }, this.label), this.shortcut && !this.hasSubmenu && h("kbd", { key: '7d7772b6efda6faccafc425772c905d4aabd2ef5' }, this.shortcut), this.hasSubmenu && h("nv-icon", { key: 'c756d3ceffc907fa0c37338595a7fd09f8238a7b', name: "chevron-right" })));
50
50
  }
51
51
  get el() { return getElement(this); }
52
52
  };
@@ -2363,7 +2363,7 @@ const NvPopover = class {
2363
2363
  /****************************************************************************/
2364
2364
  //#region RENDER
2365
2365
  render() {
2366
- return (h(Host, { key: '6c72a8b8adc53dea2bd79b4b68afbeebc0281453' }, h("slot", { key: 'c9b7c7327346a53a5e0183785c2ae7f908a46826', name: "trigger" }), h("div", { key: 'd95998b8efc7e3f1c346d4dc516ccdf08bcceb48', "data-scope": "popover", hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (h("div", { key: '59a84c8daa368251b10a1f64a4e1335b9f5716dd', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), h("slot", { key: '1ab56763bc4ff602d83042a10c67d633b81e5ae9', name: "content" }))));
2366
+ return (h(Host, { key: '830051c35f7e10dfa4e31d401663bd5727ac988f' }, h("slot", { key: 'a49852a712bf6ab9c8557035ca4618d007939f03', name: "trigger" }), h("div", { key: '6d9cd4bd873cb92b1716a8ea88a3877a029cbe9c', "data-scope": "popover", hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (h("div", { key: 'f935c9248b602aa1c39e7d28c5503a24067fb744', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), h("slot", { key: '6b682de05037b2d3b60c9139c448620fab963ea1', name: "content" }))));
2367
2367
  }
2368
2368
  get el() { return getElement(this); }
2369
2369
  static get watchers() { return {
@@ -10,7 +10,7 @@ const NvRow = class {
10
10
  /****************************************************************************/
11
11
  //#region RENDER
12
12
  render() {
13
- return (h(Host, { key: 'd6f9bbc1ed59bfc59a97728896c0443c8e104e59' }, h("slot", { key: '3d9c1c809524d0a4b9d8ad541ead8978d246c998' })));
13
+ return (h(Host, { key: '7daaa109808165553e69707c72550f284e087011' }, h("slot", { key: 'a00fd8c81352b485d8508f9bd68af4dd81d959e1' })));
14
14
  }
15
15
  };
16
16
  NvRow.style = NvRowStyle0;
@@ -19,7 +19,7 @@ const NvStack = class {
19
19
  /****************************************************************************/
20
20
  //#region RENDER
21
21
  render() {
22
- return (h(Host, { key: 'aef0e6f873f68880d20b5ae9f4f56ece40e8a0ee', class: clsx(this.fill && 'nv-stack-fill', this.flex && 'nv-stack-flex', this.full && 'w-full', this.gutter && !this.vertical && `gutter-x-${this.gutter}`, this.gutter && this.vertical && `gutter-y-${this.gutter}`, this.vertical && 'nv-stack-vertical') }, h("slot", { key: 'd003e23ec3c9b4a5c4496bc9f4c170af467b311e' })));
22
+ return (h(Host, { key: '02e184fbc9e9ddd4b02b107baf093047fa3697b0', class: clsx(this.fill && 'nv-stack-fill', this.flex && 'nv-stack-flex', this.full && 'w-full', this.gutter && !this.vertical && `gap-x-${this.gutter}`, this.gutter && this.vertical && `gap-y-${this.gutter}`, this.vertical && 'nv-stack-vertical') }, h("slot", { key: '1a501fcc419f97f2714be822120072b49590e5ea' })));
23
23
  }
24
24
  };
25
25
  NvStack.style = NvStackStyle0;
@@ -1 +1 @@
1
- {"file":"nv-stack.entry.js","mappings":";;;AAAA,MAAM,UAAU,GAAG,s8BAAs8B,CAAC;AAC19B,sBAAe,UAAU;;MCWZ,OAAO;IALpB;;;;;;;;QAcW,WAAM,GAAW,CAAC,CAAC;KAsD7B;;;;IAlBC,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,KAAK,EAAE,IAAI,CACT,IAAI,CAAC,IAAI,IAAI,eAAe,EAC5B,IAAI,CAAC,IAAI,IAAI,eAAe,EAC5B,IAAI,CAAC,IAAI,IAAI,QAAQ,EACrB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,EAC1D,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,EACzD,IAAI,CAAC,QAAQ,IAAI,mBAAmB,CACrC,IAED,8DAAa,CACR,EACP;KACH;;;;;;","names":[],"sources":["src/components/nv-stack/nv-stack.scss?tag=nv-stack","src/components/nv-stack/nv-stack.tsx"],"sourcesContent":["nv-stack {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex-direction: row;\n\n nv-col {\n display: flex;\n }\n\n &:not(nv-row) {\n flex-wrap: nowrap;\n }\n\n > .nv-stack-item-flex {\n flex-shrink: 1;\n flex-grow: 1;\n }\n\n > .nv-stack-item-lead {\n margin-right: auto;\n }\n\n > .nv-stack-item-lead + * {\n margin-left: 0;\n }\n\n > .nv-stack-item-center {\n margin-right: auto;\n margin-left: auto;\n }\n\n > .nv-stack-item-tail {\n margin-left: auto;\n }\n\n > .nv-stack-nowrap {\n white-space: nowrap;\n }\n\n // Vertical\n &.nv-stack-vertical {\n align-items: stretch;\n flex-direction: column;\n\n > .nv-stack-item-lead {\n margin-right: 0;\n margin-bottom: auto;\n }\n\n > .nv-stack-item-lead + * {\n margin-top: 0;\n }\n\n > .nv-stack-item-tail {\n margin-left: 0;\n margin-top: auto;\n }\n\n > .nv-stack-item-center {\n margin: auto 0;\n }\n }\n\n &.nv-stack-flex {\n > * {\n flex-shrink: 1;\n flex-grow: 1;\n }\n }\n\n &.nv-stack-fill {\n > * {\n height: 100%;\n }\n\n &.nv-stack-vertical {\n > * {\n height: auto;\n width: 100%;\n }\n }\n }\n}","import { Component, Host, Prop, h } from '@stencil/core';\nimport clsx from 'clsx';\n\n/**\n * @deprecated Please use tailwind classes instead\n * @slot default - Content of the stack\n */\n@Component({\n tag: 'nv-stack',\n styleUrl: './nv-stack.scss',\n shadow: false,\n})\nexport class NvStack {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Gutter refers to the space that exists between children components inside\n * the stack container.\n */\n @Prop({ reflect: true })\n readonly gutter: number = 2;\n\n /**\n * Fill will force the children to fill the stack depending of the direction\n * of the stack. In horizontal position, the children take the height of the\n * stack. In vertical position, the children take the width of the stack.\n */\n @Prop({ reflect: true })\n readonly fill: boolean;\n\n /**\n * Flex will force the children to share the stack between the children\n * depending of the direction of the stack. In horizontal position, the\n * children width will share the width of the stack. In vertical position,\n * the children height will share the height of the stack.\n */\n @Prop({ reflect: true })\n readonly flex: boolean;\n\n /**\n * Full set the width of the stack to 100%.\n * (same effect as WFull props)\n */\n @Prop({ reflect: true })\n readonly full: boolean;\n\n /**\n * Display the element of the stack vertically.\n */\n @Prop({ reflect: true })\n readonly vertical: boolean;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host\n class={clsx(\n this.fill && 'nv-stack-fill',\n this.flex && 'nv-stack-flex',\n this.full && 'w-full',\n this.gutter && !this.vertical && `gutter-x-${this.gutter}`,\n this.gutter && this.vertical && `gutter-y-${this.gutter}`,\n this.vertical && 'nv-stack-vertical',\n )}\n >\n <slot></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}
1
+ {"file":"nv-stack.entry.js","mappings":";;;AAAA,MAAM,UAAU,GAAG,s8BAAs8B,CAAC;AAC19B,sBAAe,UAAU;;MCWZ,OAAO;IALpB;;;;;;;;QAcW,WAAM,GAAW,CAAC,CAAC;KAsD7B;;;;IAlBC,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,KAAK,EAAE,IAAI,CACT,IAAI,CAAC,IAAI,IAAI,eAAe,EAC5B,IAAI,CAAC,IAAI,IAAI,eAAe,EAC5B,IAAI,CAAC,IAAI,IAAI,QAAQ,EACrB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,EACvD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,EACtD,IAAI,CAAC,QAAQ,IAAI,mBAAmB,CACrC,IAED,8DAAa,CACR,EACP;KACH;;;;;;","names":[],"sources":["src/components/nv-stack/nv-stack.scss?tag=nv-stack","src/components/nv-stack/nv-stack.tsx"],"sourcesContent":["nv-stack {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex-direction: row;\n\n nv-col {\n display: flex;\n }\n\n &:not(nv-row) {\n flex-wrap: nowrap;\n }\n\n > .nv-stack-item-flex {\n flex-shrink: 1;\n flex-grow: 1;\n }\n\n > .nv-stack-item-lead {\n margin-right: auto;\n }\n\n > .nv-stack-item-lead + * {\n margin-left: 0;\n }\n\n > .nv-stack-item-center {\n margin-right: auto;\n margin-left: auto;\n }\n\n > .nv-stack-item-tail {\n margin-left: auto;\n }\n\n > .nv-stack-nowrap {\n white-space: nowrap;\n }\n\n // Vertical\n &.nv-stack-vertical {\n align-items: stretch;\n flex-direction: column;\n\n > .nv-stack-item-lead {\n margin-right: 0;\n margin-bottom: auto;\n }\n\n > .nv-stack-item-lead + * {\n margin-top: 0;\n }\n\n > .nv-stack-item-tail {\n margin-left: 0;\n margin-top: auto;\n }\n\n > .nv-stack-item-center {\n margin: auto 0;\n }\n }\n\n &.nv-stack-flex {\n > * {\n flex-shrink: 1;\n flex-grow: 1;\n }\n }\n\n &.nv-stack-fill {\n > * {\n height: 100%;\n }\n\n &.nv-stack-vertical {\n > * {\n height: auto;\n width: 100%;\n }\n }\n }\n}","import { Component, Host, Prop, h } from '@stencil/core';\nimport clsx from 'clsx';\n\n/**\n * @deprecated Please use tailwind classes instead\n * @slot default - Content of the stack\n */\n@Component({\n tag: 'nv-stack',\n styleUrl: './nv-stack.scss',\n shadow: false,\n})\nexport class NvStack {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Gutter refers to the space that exists between children components inside\n * the stack container.\n */\n @Prop({ reflect: true })\n readonly gutter: number = 2;\n\n /**\n * Fill will force the children to fill the stack depending of the direction\n * of the stack. In horizontal position, the children take the height of the\n * stack. In vertical position, the children take the width of the stack.\n */\n @Prop({ reflect: true })\n readonly fill: boolean;\n\n /**\n * Flex will force the children to share the stack between the children\n * depending of the direction of the stack. In horizontal position, the\n * children width will share the width of the stack. In vertical position,\n * the children height will share the height of the stack.\n */\n @Prop({ reflect: true })\n readonly flex: boolean;\n\n /**\n * Full set the width of the stack to 100%.\n * (same effect as WFull props)\n */\n @Prop({ reflect: true })\n readonly full: boolean;\n\n /**\n * Display the element of the stack vertically.\n */\n @Prop({ reflect: true })\n readonly vertical: boolean;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host\n class={clsx(\n this.fill && 'nv-stack-fill',\n this.flex && 'nv-stack-flex',\n this.full && 'w-full',\n this.gutter && !this.vertical && `gap-x-${this.gutter}`,\n this.gutter && this.vertical && `gap-y-${this.gutter}`,\n this.vertical && 'nv-stack-vertical',\n )}\n >\n <slot></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}
@@ -311,14 +311,14 @@ const NvTable = class {
311
311
  const rows = !this.table || this.table === undefined || this.parsedData.length === 0
312
312
  ? []
313
313
  : this.table.data;
314
- return (h(Host, { key: 'bf96a7c40a0960fc68778c33ec63a1d574993408' }, h("div", { key: '77e4ace0a9925ef6f5f7e1f51a2abc0c381d8ba5', class: "hidden" }, h("slot", { key: 'cdeb4abdd65d0e5de7064af63b1a39e661d4b49b' })), h("slot", { key: '4322aeb2858716be200a8d6851ef1d47ee0c44bb', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (h("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (h("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", { class: "table-header" }, h("tr", null, headerGroups &&
314
+ return (h(Host, { key: 'b2962fba4d5a12aa660d0c0f69298c93947ef592' }, h("div", { key: 'f60e5c09d57c0ccf5cb9996ca85fcc8792270b85', class: "hidden" }, h("slot", { key: '9c4aefff542478535b3f342b1c75f68d717c3bf8' })), h("slot", { key: 'bfd0f5406187bcad69d9ed41e2f294314a3572f1', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (h("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (h("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", { class: "table-header" }, h("tr", null, headerGroups &&
315
315
  headerGroups.map(col => {
316
316
  return (h("th", { key: col.name }, this.renderTemplate(this.headerTemplateCache.get(col.name), {}) || col.header));
317
317
  })))), h("tbody", { class: "table-body" }, !rows || rows.length === 0 ? (h("tr", null, h("td", { colSpan: headerGroups.length || 12, class: "no-data" }, this.noDataMessage))) : (rows.map(row => (h("tr", { key: JSON.stringify(row) }, headerGroups.map(col => {
318
318
  var _a;
319
319
  return (h("td", null, this.renderTemplate(this.templateCache.get(col.name), row) ||
320
320
  ((_a = row[col.name]) !== null && _a !== void 0 ? _a : this.fallbackValue)));
321
- })))))))), h("slot", { key: 'e5e490de2ff568c962368f39dbcd5c119e814b0d', name: "after" })));
321
+ })))))))), h("slot", { key: 'e0039c9af9506bc8f2ded8cc81bbd2667ee1f2c1', name: "after" })));
322
322
  }
323
323
  get el() { return getElement(this); }
324
324
  static get watchers() { return {
@@ -62,8 +62,8 @@ const NvToggle = class {
62
62
  /****************************************************************************/
63
63
  //#region RENDER
64
64
  render() {
65
- return (h(Host, { key: '6728159c0c7f622fbcc5017a116ec0dd1fe28b39', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '2155eacf39771790ca730f264f9c490f6e93794b', class: "input-container" }, h("input", { key: '588a638b678c7d26fd0050a54fbd86ab029c18d0', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: 'ba543a1282f8244449c3682bc43c8481d0c588dd', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: 'beab39ef75d445e43bf4d127ea9f0c7130bae25f', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: 'fd60c679cf1514fc2d01c39a8e13e6dc6fd3287e', name: "label" }, this.label))), (this.description ||
66
- this.el.querySelector('[slot="description"]')) && (h("div", { key: '42582783ac08557d55bf8f80fa68f2f565f7208f', class: "description" }, h("slot", { key: '889f7408fd401816ffb6dff0c264e265911e3b79', name: "description" }, this.description))))));
65
+ return (h(Host, { key: 'e80390a43bab3d55373f6b05db1516210f90c3b5', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '66156f05cc18bb63a8625cdff72d9c177e4cf86b', class: "input-container" }, h("input", { key: 'db0c2c078c23431605befb8dd972a29bfdefb16f', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: '576df464b48fa11bf8a46bede5f1d822db569636', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: 'f529b009876a5de5061747f78372a66ccfdcac61', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: '3ace029242d920b783fe0038f8721b416f54633f', name: "label" }, this.label))), (this.description ||
66
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: '2eeb41266ee52ef40c1600750084fda0fac8dc6f', class: "description" }, h("slot", { key: '605541594fcc7f3192766a5395c5a81f42de7728', name: "description" }, this.description))))));
67
67
  }
68
68
  static get formAssociated() { return true; }
69
69
  get el() { return getElement(this); }
@@ -32,7 +32,7 @@ const NvTooltip = class {
32
32
  /****************************************************************************/
33
33
  //#region RENDER
34
34
  render() {
35
- return (h(Host, { key: '8cd2c98bb131f251183acb9af66c9f6f9756ea95' }, h("slot", { key: 'fe6b19ecbf81c75579d2eda7f420dba67d17f6b1' }), h("nv-popover", { key: '4bb59ab06f861d3892de8122ef12eacacb8b4ad5', triggerMode: "hover", hasArrow: true, placement: this.placement, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, h("p", { key: '1f6eca5114ef857086f1263adb806894d5e8e49e', slot: "content" }, this.message), h("slot", { key: '7a359b89785621df4fb4f1c499d4a295f4112aed', name: "content" }))));
35
+ return (h(Host, { key: '8309e08944469fad76997a6dfcb8b434461aa5a3' }, h("slot", { key: 'f3da94e2f2f581f7b8c93f4b3e70de67e305508a' }), h("nv-popover", { key: 'a28c50f59f9a781afd8a8ab60260d065dcadf96d', triggerMode: "hover", hasArrow: true, placement: this.placement, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay }, h("p", { key: '76f63a5f220de640f4eeada8aeba97e9ead73fc9', slot: "content" }, this.message), h("slot", { key: 'f55f71b357b23c29b40b9c022a5a1718c4c8c8fb', name: "content" }))));
36
36
  }
37
37
  get el() { return getElement(this); }
38
38
  };