@nova-design-system/nova-webcomponents 3.14.0 → 3.16.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 (631) hide show
  1. package/dist/cjs/{collapse.animation-47397763.js → collapse.animation-23b7d61b.js} +5 -2
  2. package/dist/cjs/collapse.animation-23b7d61b.js.map +1 -0
  3. package/dist/cjs/{constants-52f6f8e9.js → constants-f5633903.js} +10 -1
  4. package/dist/cjs/constants-f5633903.js.map +1 -0
  5. package/dist/cjs/{fade.animation-cf6eba0d.js → fade.animation-9294e9ee.js} +3 -3
  6. package/dist/cjs/fade.animation-9294e9ee.js.map +1 -0
  7. package/dist/cjs/{grow.animation-9258ba63.js → grow.animation-f1cef0ad.js} +2 -2
  8. package/dist/cjs/{grow.animation-9258ba63.js.map → grow.animation-f1cef0ad.js.map} +1 -1
  9. package/dist/cjs/{index-c56424e5.js → index-93d3b2f8.js} +9 -6
  10. package/dist/cjs/index-93d3b2f8.js.map +1 -0
  11. package/dist/cjs/index.cjs.js +27 -6
  12. package/dist/cjs/index.cjs.js.map +1 -1
  13. package/dist/cjs/loader.cjs.js +2 -2
  14. package/dist/cjs/native.cjs.js +2 -2
  15. package/dist/cjs/nv-accordion-item.cjs.entry.js +3 -3
  16. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nv-accordion.cjs.entry.js +6 -6
  18. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
  19. package/dist/cjs/nv-alert.cjs.entry.js +5 -5
  20. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-avatar.cjs.entry.js +3 -3
  22. package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nv-badge_2.cjs.entry.js +10 -10
  24. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
  26. package/dist/cjs/nv-breadcrumb.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  28. package/dist/cjs/nv-button.cjs.entry.js +3 -3
  29. package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
  31. package/dist/cjs/nv-calendar.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  33. package/dist/cjs/nv-datagrid.cjs.entry.js +178 -11
  34. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  36. package/dist/cjs/nv-dialog.cjs.entry.js +33 -30
  37. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +3 -3
  39. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +2 -2
  41. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nv-fielddate.cjs.entry.js +51 -26
  43. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nv-fielddaterange.cjs.entry.js +68 -42
  45. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nv-fielddropdown.cjs.entry.js +33 -7
  47. package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  49. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +187 -156
  50. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  51. package/dist/cjs/nv-fieldnumber.cjs.entry.js +2 -2
  52. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  53. package/dist/cjs/nv-fieldpassword.cjs.entry.js +2 -2
  54. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  55. package/dist/cjs/nv-fieldradio.cjs.entry.js +2 -2
  56. package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
  57. package/dist/cjs/nv-fieldselect.cjs.entry.js +2 -2
  58. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  59. package/dist/cjs/nv-fieldslider.cjs.entry.js +2 -2
  60. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  61. package/dist/cjs/nv-fieldtext.cjs.entry.js +2 -2
  62. package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
  63. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +2 -2
  64. package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
  65. package/dist/cjs/nv-fieldtime.cjs.entry.js +26 -13
  66. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nv-icon.cjs.entry.js +3 -3
  68. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  70. package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -1
  71. package/dist/cjs/nv-menu.cjs.entry.js +24 -9
  72. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  74. package/dist/cjs/nv-notification.cjs.entry.js +71 -10
  75. package/dist/cjs/nv-notification.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nv-notificationcontainer.cjs.entry.js +43 -0
  77. package/dist/cjs/nv-notificationcontainer.cjs.entry.js.map +1 -0
  78. package/dist/cjs/nv-popover.cjs.entry.js +69 -63
  79. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  80. package/dist/cjs/nv-row.cjs.entry.js +2 -2
  81. package/dist/cjs/nv-stack.cjs.entry.js +2 -2
  82. package/dist/cjs/nv-table.cjs.entry.js +216 -310
  83. package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
  84. package/dist/cjs/nv-toggle.cjs.entry.js +4 -4
  85. package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
  86. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  87. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
  88. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js.map +1 -1
  89. package/dist/cjs/nv-tooltip.cjs.entry.js +2 -2
  90. package/dist/cjs/slide.animation-8bc27ed6.js +92 -0
  91. package/dist/cjs/slide.animation-8bc27ed6.js.map +1 -0
  92. package/dist/collection/animations/collapse.animation.js +4 -1
  93. package/dist/collection/animations/collapse.animation.js.map +1 -1
  94. package/dist/collection/animations/fade.animation.js +2 -2
  95. package/dist/collection/animations/fade.animation.js.map +1 -1
  96. package/dist/collection/animations/slide.animation.js +51 -29
  97. package/dist/collection/animations/slide.animation.js.map +1 -1
  98. package/dist/collection/collection-manifest.json +1 -1
  99. package/dist/collection/components/nv-accordion/nv-accordion.js +12 -9
  100. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
  101. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
  102. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +1 -1
  103. package/dist/collection/components/nv-alert/nv-alert.css +1 -1
  104. package/dist/collection/components/nv-avatar/nv-avatar.css +1 -1
  105. package/dist/collection/components/nv-badge/nv-badge.js +7 -7
  106. package/dist/collection/components/nv-badge/nv-badge.js.map +1 -1
  107. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.css +1 -1
  108. package/dist/collection/components/nv-button/styles/nv-button.css +1 -1
  109. package/dist/collection/components/nv-datagrid/nv-datagrid.css +2 -2
  110. package/dist/collection/components/nv-dialog/nv-dialog.css +2 -2
  111. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +13 -0
  112. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  113. package/dist/collection/components/nv-dialog/nv-dialog.js +30 -27
  114. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  115. package/dist/collection/components/nv-dialogheader/nv-dialogheader.css +4 -4
  116. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +4 -3
  117. package/dist/collection/components/nv-fielddate/nv-fielddate.js +49 -24
  118. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  119. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +8 -8
  120. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +66 -43
  121. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  122. package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +8 -8
  123. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +26 -4
  124. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
  125. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +32 -4
  126. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  127. package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +9 -9
  128. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +186 -153
  129. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  130. package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +9 -9
  131. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +8 -8
  132. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +8 -8
  133. package/dist/collection/components/nv-fieldradio/nv-fieldradio.css +3 -3
  134. package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +12 -12
  135. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +7 -7
  136. package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +8 -8
  137. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +9 -1
  138. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
  139. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +8 -8
  140. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +22 -0
  141. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
  142. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +24 -9
  143. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  144. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +8 -8
  145. package/dist/collection/components/nv-icon/nv-icons.js +16 -1
  146. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  147. package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +2 -2
  148. package/dist/collection/components/nv-menu/nv-menu.docs.js +7 -0
  149. package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
  150. package/dist/collection/components/nv-menu/nv-menu.js +26 -8
  151. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  152. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  153. package/dist/collection/components/nv-notification/nv-notification.js +104 -6
  154. package/dist/collection/components/nv-notification/nv-notification.js.map +1 -1
  155. package/dist/collection/components/nv-notification/styles/nv-notification.css +8 -8
  156. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.css +61 -0
  157. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js +7 -0
  158. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js.map +1 -0
  159. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +76 -0
  160. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js.map +1 -0
  161. package/dist/collection/components/nv-popover/nv-popover.docs.js +11 -0
  162. package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
  163. package/dist/collection/components/nv-popover/nv-popover.js +66 -60
  164. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  165. package/dist/collection/components/nv-row/nv-row.js +1 -1
  166. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  167. package/dist/collection/components/nv-table/nv-table.docs.js +16 -155
  168. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
  169. package/dist/collection/components/nv-table/nv-table.js +68 -496
  170. package/dist/collection/components/nv-table/nv-table.js.map +1 -1
  171. package/dist/collection/components/nv-table/nv-table.utils.js +175 -0
  172. package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -0
  173. package/dist/collection/components/nv-table/styles/nv-table.css +84 -0
  174. package/dist/collection/components/nv-table/test/nv-table.utils.test.js +604 -0
  175. package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -0
  176. package/dist/collection/components/nv-toggle/nv-toggle.css +3 -3
  177. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  178. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  179. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
  180. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
  181. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -3
  182. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
  183. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  184. package/dist/collection/utils/constants.js +9 -0
  185. package/dist/collection/utils/constants.js.map +1 -1
  186. package/dist/components/index.js +22 -7
  187. package/dist/components/index.js.map +1 -1
  188. package/dist/components/nv-accordion-item.js +1 -1
  189. package/dist/components/nv-accordion.js +10 -10
  190. package/dist/components/nv-accordion.js.map +1 -1
  191. package/dist/components/nv-alert.js +6 -6
  192. package/dist/components/nv-alert.js.map +1 -1
  193. package/dist/components/nv-avatar.js +4 -4
  194. package/dist/components/nv-avatar.js.map +1 -1
  195. package/dist/components/nv-badge.js +1 -1
  196. package/dist/components/nv-breadcrumb.js +4 -4
  197. package/dist/components/nv-breadcrumb.js.map +1 -1
  198. package/dist/components/nv-breadcrumbs.js +1 -1
  199. package/dist/components/nv-button.js +1 -1
  200. package/dist/components/nv-buttongroup.js +1 -1
  201. package/dist/components/nv-calendar.js +1 -1
  202. package/dist/components/nv-col.js +1 -1
  203. package/dist/components/nv-datagrid.js +175 -8
  204. package/dist/components/nv-datagrid.js.map +1 -1
  205. package/dist/components/nv-datagridcolumn.js +1 -1
  206. package/dist/components/nv-dialog.js +38 -35
  207. package/dist/components/nv-dialog.js.map +1 -1
  208. package/dist/components/nv-dialogfooter.js +1 -1
  209. package/dist/components/nv-dialogheader.js +1 -1
  210. package/dist/components/nv-fieldcheckbox.js +1 -1
  211. package/dist/components/nv-fielddate.js +57 -32
  212. package/dist/components/nv-fielddate.js.map +1 -1
  213. package/dist/components/nv-fielddaterange.js +74 -48
  214. package/dist/components/nv-fielddaterange.js.map +1 -1
  215. package/dist/components/nv-fielddropdown.js +40 -13
  216. package/dist/components/nv-fielddropdown.js.map +1 -1
  217. package/dist/components/nv-fielddropdownitem.js +1 -1
  218. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  219. package/dist/components/nv-fieldmultiselect.js +196 -164
  220. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  221. package/dist/components/nv-fieldnumber.js +1 -1
  222. package/dist/components/nv-fieldpassword.js +5 -5
  223. package/dist/components/nv-fieldpassword.js.map +1 -1
  224. package/dist/components/nv-fieldradio.js +2 -2
  225. package/dist/components/nv-fieldradio.js.map +1 -1
  226. package/dist/components/nv-fieldselect.js +5 -5
  227. package/dist/components/nv-fieldselect.js.map +1 -1
  228. package/dist/components/nv-fieldslider.js +6 -6
  229. package/dist/components/nv-fieldslider.js.map +1 -1
  230. package/dist/components/nv-fieldtext.js +1 -1
  231. package/dist/components/nv-fieldtextarea.js +2 -2
  232. package/dist/components/nv-fieldtextarea.js.map +1 -1
  233. package/dist/components/nv-fieldtime.js +32 -18
  234. package/dist/components/nv-fieldtime.js.map +1 -1
  235. package/dist/components/nv-icon.js +1 -1
  236. package/dist/components/nv-iconbutton.js +1 -1
  237. package/dist/components/nv-loader.js +1 -1
  238. package/dist/components/nv-menu.js +30 -13
  239. package/dist/components/nv-menu.js.map +1 -1
  240. package/dist/components/nv-menuitem.js +1 -1
  241. package/dist/components/nv-notification.js +75 -12
  242. package/dist/components/nv-notification.js.map +1 -1
  243. package/dist/components/nv-notificationcontainer.d.ts +11 -0
  244. package/dist/components/nv-notificationcontainer.js +59 -0
  245. package/dist/components/nv-notificationcontainer.js.map +1 -0
  246. package/dist/components/nv-popover.js +1 -1
  247. package/dist/components/nv-row.js +2 -2
  248. package/dist/components/nv-stack.js +2 -2
  249. package/dist/components/nv-table.js +216 -328
  250. package/dist/components/nv-table.js.map +1 -1
  251. package/dist/components/nv-toggle.js +4 -4
  252. package/dist/components/nv-toggle.js.map +1 -1
  253. package/dist/components/nv-togglebutton.js +2 -2
  254. package/dist/components/nv-togglebuttongroup.js +2 -2
  255. package/dist/components/nv-togglebuttongroup.js.map +1 -1
  256. package/dist/components/nv-tooltip.js +1 -1
  257. package/dist/components/{p-1172e9bb.js → p-0d5ed1d7.js} +3 -3
  258. package/dist/components/p-0d5ed1d7.js.map +1 -0
  259. package/dist/components/{p-68fa3890.js → p-0e6f41c7.js} +3 -3
  260. package/dist/components/{p-68fa3890.js.map → p-0e6f41c7.js.map} +1 -1
  261. package/dist/components/{p-c59eccf1.js → p-0fd23531.js} +6 -6
  262. package/dist/components/{p-c59eccf1.js.map → p-0fd23531.js.map} +1 -1
  263. package/dist/components/{p-e6c04562.js → p-1639703f.js} +2 -2
  264. package/dist/components/{p-e6c04562.js.map → p-1639703f.js.map} +1 -1
  265. package/dist/components/{p-d4d310dd.js → p-2cc83e0c.js} +3 -3
  266. package/dist/components/{p-d4d310dd.js.map → p-2cc83e0c.js.map} +1 -1
  267. package/dist/components/p-2d64749f.js +191 -0
  268. package/dist/components/{p-2de17259.js.map → p-2d64749f.js.map} +1 -1
  269. package/dist/components/{p-e5dff125.js → p-31478080.js} +12 -12
  270. package/dist/components/{p-e5dff125.js.map → p-31478080.js.map} +1 -1
  271. package/dist/components/{p-85825688.js → p-378e3127.js} +7 -7
  272. package/dist/components/{p-85825688.js.map → p-378e3127.js.map} +1 -1
  273. package/dist/components/{p-31591941.js → p-3cd7a66f.js} +5 -2
  274. package/dist/components/p-3cd7a66f.js.map +1 -0
  275. package/dist/components/{p-51876ca1.js → p-429e01f3.js} +3 -3
  276. package/dist/components/p-429e01f3.js.map +1 -0
  277. package/dist/components/{p-fb560fa3.js → p-4697bd56.js} +2 -2
  278. package/dist/components/{p-fb560fa3.js.map → p-4697bd56.js.map} +1 -1
  279. package/dist/components/p-47d499b4.js +88 -0
  280. package/dist/components/p-47d499b4.js.map +1 -0
  281. package/dist/{esm/constants-d0f19e7b.js → components/p-51602221.js} +11 -2
  282. package/dist/components/p-51602221.js.map +1 -0
  283. package/dist/components/{p-aff3ed68.js → p-5829b9f7.js} +5 -2
  284. package/dist/components/p-5829b9f7.js.map +1 -0
  285. package/dist/components/{p-60244646.js → p-63595ea1.js} +70 -64
  286. package/dist/components/p-63595ea1.js.map +1 -0
  287. package/dist/components/{p-8439219d.js → p-7112612c.js} +5 -5
  288. package/dist/components/p-7112612c.js.map +1 -0
  289. package/dist/components/{p-ac91582e.js → p-715e5235.js} +3 -3
  290. package/dist/components/{p-ac91582e.js.map → p-715e5235.js.map} +1 -1
  291. package/dist/components/{p-eb443b26.js → p-9707528d.js} +4 -4
  292. package/dist/components/{p-eb443b26.js.map → p-9707528d.js.map} +1 -1
  293. package/dist/components/{p-fda58a76.js → p-98429fd7.js} +2 -2
  294. package/dist/components/{p-fda58a76.js.map → p-98429fd7.js.map} +1 -1
  295. package/dist/components/{p-930caa42.js → p-a1ef5e37.js} +6 -6
  296. package/dist/components/{p-930caa42.js.map → p-a1ef5e37.js.map} +1 -1
  297. package/dist/components/{p-ee0df37f.js → p-a271e3be.js} +3 -3
  298. package/dist/components/p-a271e3be.js.map +1 -0
  299. package/dist/components/p-c7401a7d.js +90 -0
  300. package/dist/components/p-c7401a7d.js.map +1 -0
  301. package/dist/components/{p-942f6619.js → p-df5d76a5.js} +3 -3
  302. package/dist/components/{p-942f6619.js.map → p-df5d76a5.js.map} +1 -1
  303. package/dist/components/{p-6ffba98c.js → p-f2bac2aa.js} +4 -4
  304. package/dist/components/{p-6ffba98c.js.map → p-f2bac2aa.js.map} +1 -1
  305. package/dist/esm/{collapse.animation-acda1bf5.js → collapse.animation-6e0b08df.js} +5 -2
  306. package/dist/esm/collapse.animation-6e0b08df.js.map +1 -0
  307. package/dist/{components/p-2277cfc8.js → esm/constants-69bafca2.js} +11 -2
  308. package/dist/esm/constants-69bafca2.js.map +1 -0
  309. package/dist/esm/{fade.animation-eb454088.js → fade.animation-9b939939.js} +3 -3
  310. package/dist/esm/{fade.animation-eb454088.js.map → fade.animation-9b939939.js.map} +1 -1
  311. package/dist/esm/{grow.animation-5b2abb3a.js → grow.animation-03fa5c19.js} +2 -2
  312. package/dist/esm/{grow.animation-5b2abb3a.js.map → grow.animation-03fa5c19.js.map} +1 -1
  313. package/dist/esm/{index-a1936cd0.js → index-dc2723f3.js} +9 -6
  314. package/dist/esm/index-dc2723f3.js.map +1 -0
  315. package/dist/esm/index.js +21 -6
  316. package/dist/esm/index.js.map +1 -1
  317. package/dist/esm/loader.js +3 -3
  318. package/dist/esm/native.js +3 -3
  319. package/dist/esm/nv-accordion-item.entry.js +3 -3
  320. package/dist/esm/nv-accordion-item.entry.js.map +1 -1
  321. package/dist/esm/nv-accordion.entry.js +6 -6
  322. package/dist/esm/nv-accordion.entry.js.map +1 -1
  323. package/dist/esm/nv-alert.entry.js +5 -5
  324. package/dist/esm/nv-alert.entry.js.map +1 -1
  325. package/dist/esm/nv-avatar.entry.js +3 -3
  326. package/dist/esm/nv-avatar.entry.js.map +1 -1
  327. package/dist/esm/nv-badge_2.entry.js +10 -10
  328. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  329. package/dist/esm/nv-breadcrumb.entry.js +2 -2
  330. package/dist/esm/nv-breadcrumb.entry.js.map +1 -1
  331. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  332. package/dist/esm/nv-button.entry.js +3 -3
  333. package/dist/esm/nv-button.entry.js.map +1 -1
  334. package/dist/esm/nv-buttongroup.entry.js +1 -1
  335. package/dist/esm/nv-calendar.entry.js +2 -2
  336. package/dist/esm/nv-col.entry.js +1 -1
  337. package/dist/esm/nv-datagrid.entry.js +173 -6
  338. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  339. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  340. package/dist/esm/nv-dialog.entry.js +33 -30
  341. package/dist/esm/nv-dialog.entry.js.map +1 -1
  342. package/dist/esm/nv-dialogfooter_2.entry.js +3 -3
  343. package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
  344. package/dist/esm/nv-fieldcheckbox.entry.js +2 -2
  345. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  346. package/dist/esm/nv-fielddate.entry.js +51 -26
  347. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  348. package/dist/esm/nv-fielddaterange.entry.js +68 -42
  349. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  350. package/dist/esm/nv-fielddropdown.entry.js +33 -7
  351. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  352. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  353. package/dist/esm/nv-fieldmultiselect.entry.js +187 -156
  354. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  355. package/dist/esm/nv-fieldnumber.entry.js +2 -2
  356. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  357. package/dist/esm/nv-fieldpassword.entry.js +2 -2
  358. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  359. package/dist/esm/nv-fieldradio.entry.js +2 -2
  360. package/dist/esm/nv-fieldradio.entry.js.map +1 -1
  361. package/dist/esm/nv-fieldselect.entry.js +2 -2
  362. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  363. package/dist/esm/nv-fieldslider.entry.js +2 -2
  364. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  365. package/dist/esm/nv-fieldtext.entry.js +2 -2
  366. package/dist/esm/nv-fieldtext.entry.js.map +1 -1
  367. package/dist/esm/nv-fieldtextarea.entry.js +2 -2
  368. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  369. package/dist/esm/nv-fieldtime.entry.js +26 -13
  370. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  371. package/dist/esm/nv-icon.entry.js +3 -3
  372. package/dist/esm/nv-icon.entry.js.map +1 -1
  373. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  374. package/dist/esm/nv-iconbutton_2.entry.js.map +1 -1
  375. package/dist/esm/nv-menu.entry.js +24 -9
  376. package/dist/esm/nv-menu.entry.js.map +1 -1
  377. package/dist/esm/nv-menuitem.entry.js +1 -1
  378. package/dist/esm/nv-notification.entry.js +71 -10
  379. package/dist/esm/nv-notification.entry.js.map +1 -1
  380. package/dist/esm/nv-notificationcontainer.entry.js +39 -0
  381. package/dist/esm/nv-notificationcontainer.entry.js.map +1 -0
  382. package/dist/esm/nv-popover.entry.js +69 -63
  383. package/dist/esm/nv-popover.entry.js.map +1 -1
  384. package/dist/esm/nv-row.entry.js +2 -2
  385. package/dist/esm/nv-stack.entry.js +2 -2
  386. package/dist/esm/nv-table.entry.js +216 -310
  387. package/dist/esm/nv-table.entry.js.map +1 -1
  388. package/dist/esm/nv-toggle.entry.js +4 -4
  389. package/dist/esm/nv-toggle.entry.js.map +1 -1
  390. package/dist/esm/nv-togglebutton.entry.js +2 -2
  391. package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
  392. package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
  393. package/dist/esm/nv-tooltip.entry.js +2 -2
  394. package/dist/esm/slide.animation-f761030b.js +90 -0
  395. package/dist/esm/slide.animation-f761030b.js.map +1 -0
  396. package/dist/native/index.esm.js +1 -1
  397. package/dist/native/index.esm.js.map +1 -1
  398. package/dist/native/native.css +1 -1
  399. package/dist/native/native.esm.js +1 -1
  400. package/dist/native/native.esm.js.map +1 -1
  401. package/dist/native/{p-7bbcf477.entry.js → p-075d231e.entry.js} +2 -2
  402. package/dist/native/p-075d231e.entry.js.map +1 -0
  403. package/dist/native/p-107e80c6.entry.js +2 -0
  404. package/dist/native/p-107e80c6.entry.js.map +1 -0
  405. package/dist/native/{p-40c4a221.entry.js → p-112d096c.entry.js} +2 -2
  406. package/dist/native/p-112d096c.entry.js.map +1 -0
  407. package/dist/native/p-217de553.entry.js +2 -0
  408. package/dist/native/p-217de553.entry.js.map +1 -0
  409. package/dist/native/{p-85f8f11a.entry.js → p-230af58a.entry.js} +2 -2
  410. package/dist/native/p-23ee0384.entry.js +2 -0
  411. package/dist/native/{p-29f68e07.entry.js.map → p-23ee0384.entry.js.map} +1 -1
  412. package/dist/native/p-26513cbd.entry.js +2 -0
  413. package/dist/native/p-26513cbd.entry.js.map +1 -0
  414. package/dist/native/p-278613a3.entry.js +2 -0
  415. package/dist/native/{p-8c823928.entry.js.map → p-278613a3.entry.js.map} +1 -1
  416. package/dist/native/p-2dfd786f.entry.js +2 -0
  417. package/dist/native/p-2dfd786f.entry.js.map +1 -0
  418. package/dist/native/{p-d0a33e64.js → p-3060df80.js} +3 -3
  419. package/dist/native/p-3060df80.js.map +1 -0
  420. package/dist/native/p-3cd7a66f.js +2 -0
  421. package/dist/native/p-3cd7a66f.js.map +1 -0
  422. package/dist/native/p-445221dc.entry.js +2 -0
  423. package/dist/native/p-445221dc.entry.js.map +1 -0
  424. package/dist/native/{p-3f861ddc.entry.js → p-44a78545.entry.js} +2 -2
  425. package/dist/native/p-4697bd56.js +2 -0
  426. package/dist/native/p-4dc7483d.entry.js +2 -0
  427. package/dist/native/{p-cfd5785e.entry.js.map → p-4dc7483d.entry.js.map} +1 -1
  428. package/dist/native/p-4eaf417d.entry.js +13 -0
  429. package/dist/native/p-4eaf417d.entry.js.map +1 -0
  430. package/dist/native/p-5039ceb8.entry.js +2 -0
  431. package/dist/native/p-5039ceb8.entry.js.map +1 -0
  432. package/dist/native/p-51602221.js +2 -0
  433. package/dist/{cjs/constants-52f6f8e9.js.map → native/p-51602221.js.map} +1 -1
  434. package/dist/native/p-647a0765.entry.js +2 -0
  435. package/dist/native/p-647a0765.entry.js.map +1 -0
  436. package/dist/native/p-68dc02be.entry.js +2 -0
  437. package/dist/native/p-68dc02be.entry.js.map +1 -0
  438. package/dist/native/p-6d427897.entry.js +2 -0
  439. package/dist/native/{p-92931ab8.entry.js.map → p-6d427897.entry.js.map} +1 -1
  440. package/dist/native/p-701b48a4.entry.js +2 -0
  441. package/dist/native/{p-da2c7d3c.entry.js.map → p-701b48a4.entry.js.map} +1 -1
  442. package/dist/native/p-7c9bf981.entry.js +2 -0
  443. package/dist/native/p-835abdb9.entry.js +2 -0
  444. package/dist/native/{p-f5120223.entry.js.map → p-835abdb9.entry.js.map} +1 -1
  445. package/dist/native/{p-464bb197.entry.js → p-83765537.entry.js} +2 -2
  446. package/dist/native/p-88f9fca5.entry.js +2 -0
  447. package/dist/native/p-88f9fca5.entry.js.map +1 -0
  448. package/dist/native/{p-788e9ee5.entry.js → p-8e423742.entry.js} +3 -3
  449. package/dist/native/{p-788e9ee5.entry.js.map → p-8e423742.entry.js.map} +1 -1
  450. package/dist/native/p-95184ea2.entry.js +2 -0
  451. package/dist/native/p-95184ea2.entry.js.map +1 -0
  452. package/dist/native/p-9613087c.entry.js +2 -0
  453. package/dist/native/{p-2781637d.entry.js.map → p-9613087c.entry.js.map} +1 -1
  454. package/dist/native/{p-94dc9c41.entry.js → p-9d7e099f.entry.js} +2 -2
  455. package/dist/native/{p-ee0df37f.js → p-a271e3be.js} +2 -2
  456. package/dist/native/{p-ee0df37f.js.map → p-a271e3be.js.map} +1 -1
  457. package/dist/native/p-a2f58133.entry.js +2 -0
  458. package/dist/native/p-a2f58133.entry.js.map +1 -0
  459. package/dist/native/{p-1235c007.entry.js → p-acabac31.entry.js} +2 -2
  460. package/dist/native/p-acada158.entry.js +2 -0
  461. package/dist/native/p-acada158.entry.js.map +1 -0
  462. package/dist/native/{p-f5eb047e.entry.js → p-b02c896a.entry.js} +2 -2
  463. package/dist/native/p-b06f0e61.entry.js +2 -0
  464. package/dist/native/p-b06f0e61.entry.js.map +1 -0
  465. package/dist/native/p-b4c15f25.entry.js +2 -0
  466. package/dist/native/p-b4c15f25.entry.js.map +1 -0
  467. package/dist/native/p-bcf41cd0.entry.js +2 -0
  468. package/dist/native/p-c7401a7d.js +2 -0
  469. package/dist/native/p-c7401a7d.js.map +1 -0
  470. package/dist/native/p-ce97ce24.entry.js +2 -0
  471. package/dist/native/p-ce97ce24.entry.js.map +1 -0
  472. package/dist/native/p-d0db5e72.entry.js +2 -0
  473. package/dist/native/p-d0db5e72.entry.js.map +1 -0
  474. package/dist/native/p-d45ee8e5.entry.js +2 -0
  475. package/dist/native/{p-52b8c872.entry.js.map → p-d45ee8e5.entry.js.map} +1 -1
  476. package/dist/native/p-d7f444fb.entry.js +2 -0
  477. package/dist/native/p-d7f444fb.entry.js.map +1 -0
  478. package/dist/native/p-d878e90a.entry.js +2 -0
  479. package/dist/native/p-d878e90a.entry.js.map +1 -0
  480. package/dist/native/p-ddc41f1f.entry.js +2 -0
  481. package/dist/native/p-ddc41f1f.entry.js.map +1 -0
  482. package/dist/native/{p-d95ee31e.entry.js → p-dfb6b65e.entry.js} +2 -2
  483. package/dist/native/p-f30e0be6.entry.js +2 -0
  484. package/dist/native/p-f30e0be6.entry.js.map +1 -0
  485. package/dist/native/p-f3c73492.entry.js +2 -0
  486. package/dist/native/{p-ee516944.entry.js.map → p-f3c73492.entry.js.map} +1 -1
  487. package/dist/native/{p-9c5d6827.entry.js → p-fa78d8eb.entry.js} +2 -2
  488. package/dist/types/animations/slide.animation.d.ts +15 -4
  489. package/dist/types/components/nv-accordion/nv-accordion.d.ts +2 -4
  490. package/dist/types/components/nv-badge/nv-badge.d.ts +1 -1
  491. package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -8
  492. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +6 -3
  493. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -4
  494. package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +3 -1
  495. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +12 -11
  496. package/dist/types/components/nv-fieldtime/nv-fieldtime.d.ts +1 -0
  497. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  498. package/dist/types/components/nv-menu/nv-menu.d.ts +4 -1
  499. package/dist/types/components/nv-notification/nv-notification.d.ts +18 -0
  500. package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.d.ts +19 -0
  501. package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.docs.d.ts +4 -0
  502. package/dist/types/components/nv-popover/nv-popover.d.ts +10 -8
  503. package/dist/types/components/nv-table/nv-table.d.ts +6 -87
  504. package/dist/types/components/nv-table/nv-table.utils.d.ts +129 -0
  505. package/dist/types/components/nv-table/test/nv-table.utils.test.d.ts +1 -0
  506. package/dist/types/components/nv-togglebuttongroup/nv-togglebuttongroup.d.ts +0 -2
  507. package/dist/types/components.d.ts +63 -211
  508. package/dist/types/utils/constants.d.ts +8 -0
  509. package/dist/vscode-data.json +87 -43
  510. package/hydrate/index.js +973 -809
  511. package/hydrate/index.mjs +973 -809
  512. package/package.json +10 -10
  513. package/dist/cjs/collapse.animation-47397763.js.map +0 -1
  514. package/dist/cjs/dom.utils-4d43f69a.js +0 -170
  515. package/dist/cjs/dom.utils-4d43f69a.js.map +0 -1
  516. package/dist/cjs/fade.animation-cf6eba0d.js.map +0 -1
  517. package/dist/cjs/index-c56424e5.js.map +0 -1
  518. package/dist/cjs/nv-tablecolumn.cjs.entry.js +0 -21
  519. package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +0 -1
  520. package/dist/cjs/slide.animation-bedfc827.js +0 -70
  521. package/dist/cjs/slide.animation-bedfc827.js.map +0 -1
  522. package/dist/collection/components/nv-table/nv-table.css +0 -35
  523. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js +0 -6
  524. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js.map +0 -1
  525. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +0 -52
  526. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +0 -1
  527. package/dist/components/nv-tablecolumn.d.ts +0 -11
  528. package/dist/components/nv-tablecolumn.js +0 -38
  529. package/dist/components/nv-tablecolumn.js.map +0 -1
  530. package/dist/components/p-1172e9bb.js.map +0 -1
  531. package/dist/components/p-2277cfc8.js.map +0 -1
  532. package/dist/components/p-2de17259.js +0 -191
  533. package/dist/components/p-31591941.js.map +0 -1
  534. package/dist/components/p-51876ca1.js.map +0 -1
  535. package/dist/components/p-60244646.js.map +0 -1
  536. package/dist/components/p-8439219d.js.map +0 -1
  537. package/dist/components/p-aff3ed68.js.map +0 -1
  538. package/dist/components/p-cb34aa4f.js +0 -167
  539. package/dist/components/p-cb34aa4f.js.map +0 -1
  540. package/dist/components/p-e0cd7e3a.js +0 -88
  541. package/dist/components/p-e0cd7e3a.js.map +0 -1
  542. package/dist/components/p-eda2f9f3.js +0 -68
  543. package/dist/components/p-eda2f9f3.js.map +0 -1
  544. package/dist/components/p-ee0df37f.js.map +0 -1
  545. package/dist/esm/collapse.animation-acda1bf5.js.map +0 -1
  546. package/dist/esm/constants-d0f19e7b.js.map +0 -1
  547. package/dist/esm/dom.utils-ac71e0ef.js +0 -167
  548. package/dist/esm/dom.utils-ac71e0ef.js.map +0 -1
  549. package/dist/esm/index-a1936cd0.js.map +0 -1
  550. package/dist/esm/nv-tablecolumn.entry.js +0 -17
  551. package/dist/esm/nv-tablecolumn.entry.js.map +0 -1
  552. package/dist/esm/slide.animation-f444aa0b.js +0 -68
  553. package/dist/esm/slide.animation-f444aa0b.js.map +0 -1
  554. package/dist/native/p-08582c21.entry.js +0 -2
  555. package/dist/native/p-08582c21.entry.js.map +0 -1
  556. package/dist/native/p-0a99c6fb.entry.js +0 -2
  557. package/dist/native/p-0a99c6fb.entry.js.map +0 -1
  558. package/dist/native/p-0e488b3d.entry.js +0 -2
  559. package/dist/native/p-0e488b3d.entry.js.map +0 -1
  560. package/dist/native/p-1ad1bff9.entry.js +0 -2
  561. package/dist/native/p-1ad1bff9.entry.js.map +0 -1
  562. package/dist/native/p-1f01fb64.entry.js +0 -2
  563. package/dist/native/p-1f01fb64.entry.js.map +0 -1
  564. package/dist/native/p-225a05bf.entry.js +0 -2
  565. package/dist/native/p-225a05bf.entry.js.map +0 -1
  566. package/dist/native/p-2277cfc8.js +0 -2
  567. package/dist/native/p-2277cfc8.js.map +0 -1
  568. package/dist/native/p-234cfa2e.entry.js +0 -2
  569. package/dist/native/p-25f2ce81.entry.js +0 -2
  570. package/dist/native/p-2781637d.entry.js +0 -2
  571. package/dist/native/p-29f68e07.entry.js +0 -2
  572. package/dist/native/p-31591941.js +0 -2
  573. package/dist/native/p-31591941.js.map +0 -1
  574. package/dist/native/p-3784efdc.entry.js +0 -2
  575. package/dist/native/p-3784efdc.entry.js.map +0 -1
  576. package/dist/native/p-40c4a221.entry.js.map +0 -1
  577. package/dist/native/p-52b8c872.entry.js +0 -2
  578. package/dist/native/p-5a43fe48.entry.js +0 -13
  579. package/dist/native/p-5a43fe48.entry.js.map +0 -1
  580. package/dist/native/p-5f0776cb.entry.js +0 -2
  581. package/dist/native/p-5f0776cb.entry.js.map +0 -1
  582. package/dist/native/p-6290951d.entry.js +0 -2
  583. package/dist/native/p-6290951d.entry.js.map +0 -1
  584. package/dist/native/p-7bbcf477.entry.js.map +0 -1
  585. package/dist/native/p-81952a3c.entry.js +0 -2
  586. package/dist/native/p-81952a3c.entry.js.map +0 -1
  587. package/dist/native/p-87784622.entry.js +0 -2
  588. package/dist/native/p-87784622.entry.js.map +0 -1
  589. package/dist/native/p-8c823928.entry.js +0 -2
  590. package/dist/native/p-92931ab8.entry.js +0 -2
  591. package/dist/native/p-9a46baa9.entry.js +0 -2
  592. package/dist/native/p-9a46baa9.entry.js.map +0 -1
  593. package/dist/native/p-a34beedf.entry.js +0 -2
  594. package/dist/native/p-a34beedf.entry.js.map +0 -1
  595. package/dist/native/p-bc01787b.entry.js +0 -2
  596. package/dist/native/p-bc01787b.entry.js.map +0 -1
  597. package/dist/native/p-cb34aa4f.js +0 -2
  598. package/dist/native/p-cb34aa4f.js.map +0 -1
  599. package/dist/native/p-cea942b9.entry.js +0 -2
  600. package/dist/native/p-cea942b9.entry.js.map +0 -1
  601. package/dist/native/p-cfd5785e.entry.js +0 -2
  602. package/dist/native/p-d0a33e64.js.map +0 -1
  603. package/dist/native/p-d0ef1bbb.entry.js +0 -2
  604. package/dist/native/p-d0ef1bbb.entry.js.map +0 -1
  605. package/dist/native/p-d88c416f.entry.js +0 -2
  606. package/dist/native/p-d88c416f.entry.js.map +0 -1
  607. package/dist/native/p-da2c7d3c.entry.js +0 -2
  608. package/dist/native/p-dd023fd6.entry.js +0 -2
  609. package/dist/native/p-dd023fd6.entry.js.map +0 -1
  610. package/dist/native/p-e765a624.entry.js +0 -2
  611. package/dist/native/p-e765a624.entry.js.map +0 -1
  612. package/dist/native/p-eda2f9f3.js +0 -2
  613. package/dist/native/p-eda2f9f3.js.map +0 -1
  614. package/dist/native/p-ee516944.entry.js +0 -2
  615. package/dist/native/p-f0cbfb3d.entry.js +0 -2
  616. package/dist/native/p-f0cbfb3d.entry.js.map +0 -1
  617. package/dist/native/p-f5120223.entry.js +0 -2
  618. package/dist/native/p-fb560fa3.js +0 -2
  619. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +0 -13
  620. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.docs.d.ts +0 -4
  621. /package/dist/native/{p-85f8f11a.entry.js.map → p-230af58a.entry.js.map} +0 -0
  622. /package/dist/native/{p-3f861ddc.entry.js.map → p-44a78545.entry.js.map} +0 -0
  623. /package/dist/native/{p-fb560fa3.js.map → p-4697bd56.js.map} +0 -0
  624. /package/dist/native/{p-234cfa2e.entry.js.map → p-7c9bf981.entry.js.map} +0 -0
  625. /package/dist/native/{p-464bb197.entry.js.map → p-83765537.entry.js.map} +0 -0
  626. /package/dist/native/{p-94dc9c41.entry.js.map → p-9d7e099f.entry.js.map} +0 -0
  627. /package/dist/native/{p-1235c007.entry.js.map → p-acabac31.entry.js.map} +0 -0
  628. /package/dist/native/{p-f5eb047e.entry.js.map → p-b02c896a.entry.js.map} +0 -0
  629. /package/dist/native/{p-25f2ce81.entry.js.map → p-bcf41cd0.entry.js.map} +0 -0
  630. /package/dist/native/{p-d95ee31e.entry.js.map → p-dfb6b65e.entry.js.map} +0 -0
  631. /package/dist/native/{p-9c5d6827.entry.js.map → p-fa78d8eb.entry.js.map} +0 -0
@@ -13,6 +13,50 @@ const { state } = createStore({
13
13
  export class NvPopover {
14
14
  constructor() {
15
15
  this.eventsAttached = false;
16
+ this.isAnimating = false;
17
+ this.clickEvents = [
18
+ ['click', () => (this.open = !this.open)],
19
+ ];
20
+ this.hoverEvents = [
21
+ [
22
+ 'focus',
23
+ () => {
24
+ clearTimeout(this.hideTimeout);
25
+ this.showTimeout = setTimeout(() => (this.open = true), this.enterDelay);
26
+ },
27
+ ],
28
+ [
29
+ 'blur',
30
+ () => {
31
+ clearTimeout(this.showTimeout);
32
+ this.hideTimeout = setTimeout(() => (this.open = false), 50);
33
+ },
34
+ ],
35
+ [
36
+ 'mouseenter',
37
+ () => {
38
+ clearTimeout(this.hideTimeout);
39
+ this.showTimeout = setTimeout(() => (this.open = true), this.enterDelay);
40
+ },
41
+ ],
42
+ [
43
+ 'mouseleave',
44
+ () => {
45
+ clearTimeout(this.showTimeout);
46
+ this.hideTimeout = setTimeout(() => (this.open = false), 100);
47
+ },
48
+ ],
49
+ ];
50
+ this.closeEvents = [
51
+ [
52
+ 'keydown',
53
+ (e) => {
54
+ if (e.key === 'Escape') {
55
+ this.open = false;
56
+ }
57
+ },
58
+ ],
59
+ ];
16
60
  /**
17
61
  * Use this prop to toggle the visibility of the popover. Set to true to show
18
62
  * the popover and false to hide it.
@@ -82,57 +126,13 @@ export class NvPopover {
82
126
  return;
83
127
  this.open = false;
84
128
  };
85
- this.clickEvents = [
86
- ['click', () => (this.open = !this.open)],
87
- ];
129
+ //#endregion METHODS
130
+ /****************************************************************************/
131
+ //#region HELPERS
88
132
  this.outsideClickEvents = [
89
133
  ['click', this.handleClickOutside],
90
134
  ['touchstart', this.handleClickOutside],
91
135
  ];
92
- this.hoverEvents = [
93
- [
94
- 'focus',
95
- () => {
96
- clearTimeout(this.hideTimeout);
97
- this.showTimeout = setTimeout(() => (this.open = true), this.enterDelay);
98
- },
99
- ],
100
- [
101
- 'blur',
102
- () => {
103
- clearTimeout(this.showTimeout);
104
- this.hideTimeout = setTimeout(() => (this.open = false), 50);
105
- },
106
- ],
107
- [
108
- 'mouseenter',
109
- () => {
110
- clearTimeout(this.hideTimeout);
111
- this.showTimeout = setTimeout(() => (this.open = true), this.enterDelay);
112
- },
113
- ],
114
- [
115
- 'mouseleave',
116
- () => {
117
- clearTimeout(this.showTimeout);
118
- this.hideTimeout = setTimeout(() => (this.open = false), 100);
119
- },
120
- ],
121
- ];
122
- this.closeEvents = [
123
- [
124
- 'keydown',
125
- (e) => {
126
- if (e.key === 'Escape') {
127
- this.open = false;
128
- }
129
- },
130
- ],
131
- ];
132
- //#endregion EVENTS
133
- /****************************************************************************/
134
- //#region WATCHERS
135
- this.isAnimating = false;
136
136
  }
137
137
  //#endregion PROPERTIES
138
138
  /****************************************************************************/
@@ -226,18 +226,9 @@ export class NvPopover {
226
226
  }
227
227
  });
228
228
  }
229
- handleOpenChanged(event) {
230
- var _a;
231
- if (this.triggerMode === 'controlled')
232
- return;
233
- if (this.nested)
234
- return;
235
- if ((_a = event.target) === null || _a === void 0 ? void 0 : _a.hasAttribute('nested'))
236
- return;
237
- // This popover should close when another one is opened.
238
- if (event.target !== this.el && event.detail === true)
239
- this.open = false;
240
- }
229
+ //#endregion EVENTS
230
+ /****************************************************************************/
231
+ //#region WATCHERS
241
232
  async handleOpenChange(open) {
242
233
  // Prevent multiple animations from running at the same time.
243
234
  while (this.isAnimating) {
@@ -279,6 +270,21 @@ export class NvPopover {
279
270
  }
280
271
  //#endregion WATCHERS
281
272
  /****************************************************************************/
273
+ //#region LISTENERS
274
+ handleOpenChanged(event) {
275
+ var _a;
276
+ if (this.triggerMode === 'controlled')
277
+ return;
278
+ if (this.nested)
279
+ return;
280
+ if ((_a = event.target) === null || _a === void 0 ? void 0 : _a.hasAttribute('nested'))
281
+ return;
282
+ // This popover should close when another one is opened.
283
+ if (event.target !== this.el && event.detail === true)
284
+ this.open = false;
285
+ }
286
+ //#endregion LISTENERS
287
+ /****************************************************************************/
282
288
  //#region LIFECYCLE
283
289
  componentWillLoad() {
284
290
  if (!this.triggerElement)
@@ -322,7 +328,7 @@ export class NvPopover {
322
328
  /****************************************************************************/
323
329
  //#region RENDER
324
330
  render() {
325
- return (h(Host, { key: 'dc7ef1862f1a1da4b32e02bee827f81545df73d1' }, h("slot", { key: '7535c2ba2b1f600c237602c68a04c85fd9d6d98b', name: "trigger" }), h("div", { key: '8e7907e2fda20d35b00642eca0507aa20e56f7cb', "data-scope": "popover", "data-strategy": this.strategy, hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (h("div", { key: '4e081e84e9597b69351253d1c1b89c115cdcfd9a', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), h("slot", { key: '5bcd80588e9746db974cee69c5963b698665d105', name: "content" }))));
331
+ return (h(Host, { key: '0644e319053ca1f216aac89f5737805008b097be' }, h("slot", { key: '7f03080c300378be09e6fce9a44fa2a4a8730f40', name: "trigger" }), h("div", { key: '801b7f1dd8c87db5eb06bcabddda8936c89a6ab2', "data-scope": "popover", "data-strategy": this.strategy, hidden: true, ref: el => (this.popoverElement = el) }, this.hasArrow && (h("div", { key: 'd8e40589a4c53d4ac0c313f3d97cf61ef928f56d', "data-scope": "arrow", ref: el => (this.arrowElement = el) })), h("slot", { key: 'af0743b1a94c44dd161712e080dbf54a69c9d4a4', name: "content" }))));
326
332
  }
327
333
  static get is() { return "nv-popover"; }
328
334
  static get originalStyleUrls() {
@@ -1 +1 @@
1
- {"version":3,"file":"nv-popover.js","sourceRoot":"","sources":["../../../src/components/nv-popover/nv-popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Host,\n h,\n EventEmitter,\n Event,\n Watch,\n Listen,\n Element,\n Method,\n} from '@stencil/core';\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n type Placement,\n type Strategy,\n} from '@floating-ui/dom';\nimport { createStore } from '@stencil/store';\n\nimport { useGrow, useFade } from '../../animations';\nimport {\n addEventListeners,\n removeEventListeners,\n type EventsAndListeners,\n} from '../../utils/events.utils';\n\nconst { state } = createStore<{\n /**\n * A map of popover groups, used to manage the opening and closing of multiple\n */\n groups: Map<\n string,\n {\n /**\n * The popover element that opened the group.\n */\n openedBy: HTMLNvPopoverElement;\n }\n >;\n}>({\n groups: new Map(),\n});\n\n/**\n * @slot trigger - Content to be placed as the trigger.\n * @slot content - Content to be placed within the popover.\n */\n@Component({\n tag: 'nv-popover',\n styleUrl: 'nv-popover.scss',\n shadow: false,\n})\nexport class NvPopover {\n @Element() el: HTMLNvPopoverElement;\n private popoverElement!: HTMLDivElement;\n private arrowElement!: HTMLDivElement;\n private eventsAttached = false;\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 * Use this prop to toggle the visibility of the popover. Set to true to show\n * the popover and false to hide it.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Sets the interaction mode for triggering the popover. Options include:\n * - `hover`: The popover is shown on trigger hover.\n * - `click`: The popover toggles on trigger click.\n * - `controlled`: The visibility is managed manually through methods or the\n * open prop.\n */\n @Prop({ reflect: true })\n readonly triggerMode: 'hover' | 'click' | 'controlled' = 'click';\n\n /**\n * Defines where the popover appears relative to the trigger.\n */\n @Prop({ reflect: true })\n readonly placement: Placement = 'bottom';\n\n /**\n * Sets the positioning strategy for the popover. Options include:\n * - `absolute`: Positions the popover relative to the trigger element\n * (default).\n * - `fixed`: Positions the popover relative to the viewport, useful when you\n * need the popover to break out of overflow hidden containers, it will not\n * scroll inside a scroll container due to the fixed positioning.\n */\n @Prop({ reflect: true })\n readonly strategy: Strategy = 'absolute';\n\n /**\n * Use this to group popovers together so that opening one will not animate\n * the closing of another. This is helpful when popovers are placed close\n * together, preventing animation overlap.\n */\n @Prop({ reflect: true })\n readonly groupName: string;\n\n /**\n * Adjust the gap between the popover and its trigger element by setting how\n * many pixels they should be apart.\n */\n @Prop({ reflect: true })\n readonly offset: number = 6;\n\n /**\n * Use this to decide if the popover should include a small arrow pointing to\n * the trigger element, making the connection between them more clear.\n */\n @Prop({ reflect: true })\n readonly hasArrow: boolean = false;\n\n /**\n * Disables the automatic flipping of the popover when the trigger element is\n * out of the viewport. The popover will flip automatically by default.\n */\n @Prop({ reflect: true })\n readonly disableFlip: boolean = false;\n\n /**\n * Sets how many pixels the popover should stay from the edge of the viewport.\n */\n @Prop({ reflect: true })\n readonly shiftPadding: number = 0;\n\n /**\n * Use this to set a delay before the popover appears on hover. If the mouse\n * leaves before this time, the popover won't show. This only works when the\n * trigger mode is set to `hover`.\n */\n @Prop({ reflect: true })\n readonly enterDelay: number = 0;\n\n /**\n * Use this to set the popover to be nested inside another popover. This will\n * prevent the parent popover from closing when the child popover is opened.\n */\n @Prop({ reflect: true })\n readonly nested: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Call this method to show the popover, making it visible on the screen.\n */\n @Method()\n async show() {\n this.open = true;\n }\n\n /**\n * Use this method to hide the popover, making it disappear from view.\n */\n @Method()\n async hide() {\n this.open = false;\n }\n\n /**\n * Call this method to toggle between showing and hiding the popover, based on\n * its current state.\n */\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n /**\n * Attaches event listeners to the trigger element, and makes sure this only\n * happens once.\n */\n private attachEventListeners() {\n if (this.triggerElement && !this.eventsAttached) {\n addEventListeners(this.closeEvents, document, this);\n\n if (this.triggerMode === 'click') {\n addEventListeners(this.clickEvents, this.triggerElement, this);\n\n // Add document click and touch listeners\n addEventListeners(this.outsideClickEvents, document, this);\n }\n\n if (this.triggerMode === 'hover') {\n addEventListeners(this.hoverEvents, this.triggerElement, this);\n }\n this.eventsAttached = true;\n }\n }\n\n /**\n * Handles the click outside event.\n * @param {MouseEvent | TouchEvent} event - The event object.\n */\n private handleClickOutside = (event: MouseEvent | TouchEvent) => {\n // This popover should close when the user clicks outside of it.\n if (this.el.contains(event.target as Node)) return;\n if (this.triggerElement?.contains(event.target as Node)) return;\n this.open = false;\n };\n\n /**\n * Calculates the position of the popover relative to the trigger.\n * @docs https://floating-ui.com/docs/computePosition\n */\n private positionPopover() {\n if (!this.triggerElement) return;\n\n computePosition(this.triggerElement, this.popoverElement, {\n placement: this.placement,\n strategy: this.strategy,\n middleware: [\n offset(this.offset),\n !this.disableFlip &&\n flip({\n fallbackStrategy: 'bestFit',\n crossAxis: true,\n fallbackPlacements: ['bottom'],\n }),\n shift({ padding: this.shiftPadding }),\n this.hasArrow && arrow({ element: this.arrowElement }),\n ],\n }).then(({ x, y, placement, middlewareData, strategy }) => {\n Object.assign(this.popoverElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n position: strategy,\n });\n\n if (this.hasArrow) {\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n const transform = {\n top: 'rotate(225deg)',\n right: 'rotate(315deg)',\n bottom: 'rotate(45deg)',\n left: 'rotate(135deg)',\n }[placement.split('-')[0]];\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n Object.assign(this.arrowElement.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n transform,\n [staticSide]: '-4px',\n });\n }\n });\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the popover is toggled.\n * @bind open\n */\n @Event()\n openChanged: EventEmitter<boolean>;\n\n @Listen('openChanged', { target: 'document' })\n handleOpenChanged(event: CustomEvent<boolean>) {\n if (this.triggerMode === 'controlled') return;\n if (this.nested) return;\n if ((event.target as Element)?.hasAttribute('nested')) return;\n // This popover should close when another one is opened.\n if (event.target !== this.el && event.detail === true) this.open = false;\n }\n\n private clickEvents: EventsAndListeners = [\n ['click', () => (this.open = !this.open)],\n ];\n\n private outsideClickEvents: EventsAndListeners = [\n ['click', this.handleClickOutside],\n ['touchstart', this.handleClickOutside],\n ];\n\n private hideTimeout: ReturnType<typeof setTimeout>;\n private showTimeout: ReturnType<typeof setTimeout>;\n private hoverEvents: EventsAndListeners = [\n [\n 'focus',\n () => {\n clearTimeout(this.hideTimeout);\n this.showTimeout = setTimeout(\n () => (this.open = true),\n this.enterDelay,\n );\n },\n ],\n [\n 'blur',\n () => {\n clearTimeout(this.showTimeout);\n this.hideTimeout = setTimeout(() => (this.open = false), 50);\n },\n ],\n [\n 'mouseenter',\n () => {\n clearTimeout(this.hideTimeout);\n this.showTimeout = setTimeout(\n () => (this.open = true),\n this.enterDelay,\n );\n },\n ],\n [\n 'mouseleave',\n () => {\n clearTimeout(this.showTimeout);\n this.hideTimeout = setTimeout(() => (this.open = false), 100);\n },\n ],\n ];\n\n private closeEvents: EventsAndListeners = [\n [\n 'keydown',\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this.open = false;\n }\n },\n ],\n ];\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n private isAnimating = false;\n\n @Watch('open')\n async handleOpenChange(open: boolean) {\n // Prevent multiple animations from running at the same time.\n while (this.isAnimating) {\n await new Promise(resolve => setTimeout(resolve, 50));\n }\n\n this.isAnimating = true;\n\n const group = state.groups.get(this.groupName);\n const isOtherMemberOpen = group && group.openedBy !== this.el;\n const isThisMemberOpen = group && group.openedBy === this.el;\n\n if (open) this.popoverElement.style.removeProperty('display');\n if (isThisMemberOpen && !open) state.groups.delete(this.groupName);\n if (this.groupName && open)\n state.groups.set(this.groupName, { openedBy: this.el });\n\n const { growIn } = useGrow(this.popoverElement, {\n duration: isOtherMemberOpen ? 0 : 100,\n amount: 0.85,\n });\n\n const { fadeOut } = useFade(this.popoverElement, {\n duration: isOtherMemberOpen ? 0 : 100,\n });\n\n if (open === true) {\n this.popoverElement.removeAttribute('hidden');\n this.positionPopover();\n await growIn();\n }\n if (open === false) {\n await fadeOut();\n this.popoverElement.setAttribute('hidden', '');\n }\n\n this.isAnimating = false;\n this.openChanged.emit(open);\n }\n\n @Watch('strategy')\n handleStrategyChange() {\n if (this.open) {\n this.positionPopover();\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (!this.triggerElement)\n this.triggerElement = Array.from(this.el.children).find(\n child => child.getAttribute('slot') === 'trigger',\n );\n }\n\n componentWillUpdate() {\n this.attachEventListeners();\n }\n\n componentDidLoad() {\n // Initial inline style setup\n if (!this.open) {\n const { setGrowOut } = useGrow(this.popoverElement);\n setGrowOut();\n } else {\n const { setFadeIn } = useFade(this.popoverElement);\n setFadeIn();\n this.popoverElement.removeAttribute('hidden');\n }\n\n this.positionPopover();\n this.attachEventListeners();\n }\n\n disconnectedCallback() {\n removeEventListeners(this.closeEvents, document, this);\n\n if (this.triggerMode === 'click') {\n removeEventListeners(this.clickEvents, this.triggerElement, this);\n // Remove document listeners\n removeEventListeners(this.outsideClickEvents, document, this);\n }\n\n if (this.triggerMode === 'hover')\n removeEventListeners(this.hoverEvents, this.triggerElement, this);\n\n // Reset flag so events can be reattached if component is reconnected\n this.eventsAttached = false;\n\n // Clean up any pending timeouts\n if (this.hideTimeout) clearTimeout(this.hideTimeout);\n if (this.showTimeout) clearTimeout(this.showTimeout);\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\"></slot>\n\n <div\n data-scope=\"popover\"\n data-strategy={this.strategy}\n hidden\n ref={el => (this.popoverElement = el)}\n >\n {this.hasArrow && (\n <div data-scope=\"arrow\" ref={el => (this.arrowElement = el)}></div>\n )}\n\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"]}
1
+ {"version":3,"file":"nv-popover.js","sourceRoot":"","sources":["../../../src/components/nv-popover/nv-popover.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Host,\n h,\n EventEmitter,\n Event,\n Watch,\n Listen,\n Element,\n Method,\n} from '@stencil/core';\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n type Placement,\n type Strategy,\n} from '@floating-ui/dom';\nimport { createStore } from '@stencil/store';\n\nimport { useGrow, useFade } from '../../animations';\nimport {\n addEventListeners,\n removeEventListeners,\n type EventsAndListeners,\n} from '../../utils/events.utils';\n\nconst { state } = createStore<{\n /**\n * A map of popover groups, used to manage the opening and closing of multiple\n */\n groups: Map<\n string,\n {\n /**\n * The popover element that opened the group.\n */\n openedBy: HTMLNvPopoverElement;\n }\n >;\n}>({\n groups: new Map(),\n});\n\n/**\n * @slot trigger - Content to be placed as the trigger.\n * @slot content - Content to be placed within the popover.\n */\n@Component({\n tag: 'nv-popover',\n styleUrl: 'nv-popover.scss',\n shadow: false,\n})\nexport class NvPopover {\n @Element() el: HTMLNvPopoverElement;\n private popoverElement!: HTMLDivElement;\n private arrowElement!: HTMLDivElement;\n private eventsAttached = false;\n private isAnimating = false;\n private clickEvents: EventsAndListeners = [\n ['click', () => (this.open = !this.open)],\n ];\n\n private hideTimeout: ReturnType<typeof setTimeout>;\n private showTimeout: ReturnType<typeof setTimeout>;\n private hoverEvents: EventsAndListeners = [\n [\n 'focus',\n () => {\n clearTimeout(this.hideTimeout);\n this.showTimeout = setTimeout(\n () => (this.open = true),\n this.enterDelay,\n );\n },\n ],\n [\n 'blur',\n () => {\n clearTimeout(this.showTimeout);\n this.hideTimeout = setTimeout(() => (this.open = false), 50);\n },\n ],\n [\n 'mouseenter',\n () => {\n clearTimeout(this.hideTimeout);\n this.showTimeout = setTimeout(\n () => (this.open = true),\n this.enterDelay,\n );\n },\n ],\n [\n 'mouseleave',\n () => {\n clearTimeout(this.showTimeout);\n this.hideTimeout = setTimeout(() => (this.open = false), 100);\n },\n ],\n ];\n\n private closeEvents: EventsAndListeners = [\n [\n 'keydown',\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this.open = false;\n }\n },\n ],\n ];\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 * Use this prop to toggle the visibility of the popover. Set to true to show\n * the popover and false to hide it.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Sets the interaction mode for triggering the popover. Options include:\n * - `hover`: The popover is shown on trigger hover.\n * - `click`: The popover toggles on trigger click.\n * - `controlled`: The visibility is managed manually through methods or the\n * open prop.\n */\n @Prop({ reflect: true })\n readonly triggerMode: 'hover' | 'click' | 'controlled' = 'click';\n\n /**\n * Defines where the popover appears relative to the trigger.\n */\n @Prop({ reflect: true })\n readonly placement: Placement = 'bottom';\n\n /**\n * Sets the positioning strategy for the popover. Options include:\n * - `absolute`: Positions the popover relative to the trigger element\n * (default).\n * - `fixed`: Positions the popover relative to the viewport, useful when you\n * need the popover to break out of overflow hidden containers, it will not\n * scroll inside a scroll container due to the fixed positioning.\n */\n @Prop({ reflect: true })\n readonly strategy: Strategy = 'absolute';\n\n /**\n * Use this to group popovers together so that opening one will not animate\n * the closing of another. This is helpful when popovers are placed close\n * together, preventing animation overlap.\n */\n @Prop({ reflect: true })\n readonly groupName: string;\n\n /**\n * Adjust the gap between the popover and its trigger element by setting how\n * many pixels they should be apart.\n */\n @Prop({ reflect: true })\n readonly offset: number = 6;\n\n /**\n * Use this to decide if the popover should include a small arrow pointing to\n * the trigger element, making the connection between them more clear.\n */\n @Prop({ reflect: true })\n readonly hasArrow: boolean = false;\n\n /**\n * Disables the automatic flipping of the popover when the trigger element is\n * out of the viewport. The popover will flip automatically by default.\n */\n @Prop({ reflect: true })\n readonly disableFlip: boolean = false;\n\n /**\n * Sets how many pixels the popover should stay from the edge of the viewport.\n */\n @Prop({ reflect: true })\n readonly shiftPadding: number = 0;\n\n /**\n * Use this to set a delay before the popover appears on hover. If the mouse\n * leaves before this time, the popover won't show. This only works when the\n * trigger mode is set to `hover`.\n */\n @Prop({ reflect: true })\n readonly enterDelay: number = 0;\n\n /**\n * Use this to set the popover to be nested inside another popover. This will\n * prevent the parent popover from closing when the child popover is opened.\n */\n @Prop({ reflect: true })\n readonly nested: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Call this method to show the popover, making it visible on the screen.\n */\n @Method()\n async show() {\n this.open = true;\n }\n\n /**\n * Use this method to hide the popover, making it disappear from view.\n */\n @Method()\n async hide() {\n this.open = false;\n }\n\n /**\n * Call this method to toggle between showing and hiding the popover, based on\n * its current state.\n */\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n /**\n * Attaches event listeners to the trigger element, and makes sure this only\n * happens once.\n */\n private attachEventListeners() {\n if (this.triggerElement && !this.eventsAttached) {\n addEventListeners(this.closeEvents, document, this);\n\n if (this.triggerMode === 'click') {\n addEventListeners(this.clickEvents, this.triggerElement, this);\n\n // Add document click and touch listeners\n addEventListeners(this.outsideClickEvents, document, this);\n }\n\n if (this.triggerMode === 'hover') {\n addEventListeners(this.hoverEvents, this.triggerElement, this);\n }\n this.eventsAttached = true;\n }\n }\n\n /**\n * Handles the click outside event.\n * @param {MouseEvent | TouchEvent} event - The event object.\n */\n private handleClickOutside = (event: MouseEvent | TouchEvent) => {\n // This popover should close when the user clicks outside of it.\n if (this.el.contains(event.target as Node)) return;\n if (this.triggerElement?.contains(event.target as Node)) return;\n this.open = false;\n };\n\n /**\n * Calculates the position of the popover relative to the trigger.\n * @docs https://floating-ui.com/docs/computePosition\n */\n private positionPopover() {\n if (!this.triggerElement) return;\n\n computePosition(this.triggerElement, this.popoverElement, {\n placement: this.placement,\n strategy: this.strategy,\n middleware: [\n offset(this.offset),\n !this.disableFlip &&\n flip({\n fallbackStrategy: 'bestFit',\n crossAxis: true,\n fallbackPlacements: ['bottom'],\n }),\n shift({ padding: this.shiftPadding }),\n this.hasArrow && arrow({ element: this.arrowElement }),\n ],\n }).then(({ x, y, placement, middlewareData, strategy }) => {\n Object.assign(this.popoverElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n position: strategy,\n });\n\n if (this.hasArrow) {\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n const transform = {\n top: 'rotate(225deg)',\n right: 'rotate(315deg)',\n bottom: 'rotate(45deg)',\n left: 'rotate(135deg)',\n }[placement.split('-')[0]];\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n Object.assign(this.arrowElement.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n transform,\n [staticSide]: '-4px',\n });\n }\n });\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region HELPERS\n\n private outsideClickEvents: EventsAndListeners = [\n ['click', this.handleClickOutside],\n ['touchstart', this.handleClickOutside],\n ];\n\n //#endregion HELPERS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the popover is toggled.\n * @bind open\n */\n @Event()\n openChanged: EventEmitter<boolean>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('open')\n async handleOpenChange(open: boolean) {\n // Prevent multiple animations from running at the same time.\n while (this.isAnimating) {\n await new Promise(resolve => setTimeout(resolve, 50));\n }\n\n this.isAnimating = true;\n\n const group = state.groups.get(this.groupName);\n const isOtherMemberOpen = group && group.openedBy !== this.el;\n const isThisMemberOpen = group && group.openedBy === this.el;\n\n if (open) this.popoverElement.style.removeProperty('display');\n if (isThisMemberOpen && !open) state.groups.delete(this.groupName);\n if (this.groupName && open)\n state.groups.set(this.groupName, { openedBy: this.el });\n\n const { growIn } = useGrow(this.popoverElement, {\n duration: isOtherMemberOpen ? 0 : 100,\n amount: 0.85,\n });\n\n const { fadeOut } = useFade(this.popoverElement, {\n duration: isOtherMemberOpen ? 0 : 100,\n });\n\n if (open === true) {\n this.popoverElement.removeAttribute('hidden');\n this.positionPopover();\n await growIn();\n }\n if (open === false) {\n await fadeOut();\n this.popoverElement.setAttribute('hidden', '');\n }\n\n this.isAnimating = false;\n this.openChanged.emit(open);\n }\n\n @Watch('strategy')\n handleStrategyChange() {\n if (this.open) {\n this.positionPopover();\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LISTENERS\n\n @Listen('openChanged', { target: 'document' })\n handleOpenChanged(event: CustomEvent<boolean>) {\n if (this.triggerMode === 'controlled') return;\n if (this.nested) return;\n if ((event.target as Element)?.hasAttribute('nested')) return;\n // This popover should close when another one is opened.\n if (event.target !== this.el && event.detail === true) this.open = false;\n }\n\n //#endregion LISTENERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (!this.triggerElement)\n this.triggerElement = Array.from(this.el.children).find(\n child => child.getAttribute('slot') === 'trigger',\n );\n }\n\n componentWillUpdate() {\n this.attachEventListeners();\n }\n\n componentDidLoad() {\n // Initial inline style setup\n if (!this.open) {\n const { setGrowOut } = useGrow(this.popoverElement);\n setGrowOut();\n } else {\n const { setFadeIn } = useFade(this.popoverElement);\n setFadeIn();\n this.popoverElement.removeAttribute('hidden');\n }\n\n this.positionPopover();\n this.attachEventListeners();\n }\n\n disconnectedCallback() {\n removeEventListeners(this.closeEvents, document, this);\n\n if (this.triggerMode === 'click') {\n removeEventListeners(this.clickEvents, this.triggerElement, this);\n // Remove document listeners\n removeEventListeners(this.outsideClickEvents, document, this);\n }\n\n if (this.triggerMode === 'hover')\n removeEventListeners(this.hoverEvents, this.triggerElement, this);\n\n // Reset flag so events can be reattached if component is reconnected\n this.eventsAttached = false;\n\n // Clean up any pending timeouts\n if (this.hideTimeout) clearTimeout(this.hideTimeout);\n if (this.showTimeout) clearTimeout(this.showTimeout);\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\"></slot>\n\n <div\n data-scope=\"popover\"\n data-strategy={this.strategy}\n hidden\n ref={el => (this.popoverElement = el)}\n >\n {this.hasArrow && (\n <div data-scope=\"arrow\" ref={el => (this.arrowElement = el)}></div>\n )}\n\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"]}
@@ -6,7 +6,7 @@ export class NvRow {
6
6
  /****************************************************************************/
7
7
  //#region RENDER
8
8
  render() {
9
- return (h(Host, { key: '8415bdad0106bd3d836996c617a749294e0c19e2' }, h("slot", { key: '77c069ced0dc25c4169945877c388f30d27fdc4f' })));
9
+ return (h(Host, { key: '9623a4c73a5a2557b2ba7eb346ae0740ca7291c5' }, h("slot", { key: '502ea804deec9e91057bfaf6f2fa4fdb4a5822c3' })));
10
10
  }
11
11
  static get is() { return "nv-row"; }
12
12
  static get originalStyleUrls() {
@@ -18,7 +18,7 @@ export class NvStack {
18
18
  /****************************************************************************/
19
19
  //#region RENDER
20
20
  render() {
21
- return (h(Host, { key: '66123f22ad4a6ebefe8663c795274eb900d2c178', class: clsx(this.fill && 'nv-stack-fill', this.flex && 'nv-stack-flex', this.full && 'w-full', this.gutter && !this.vertical && `gap-x-${this.gutter}`, this.gutter && this.vertical && `gap-y-${this.gutter}`, this.vertical && 'nv-stack-vertical') }, h("slot", { key: '7b3d395c3490664f0e2f337a04f69cc717ed6c0e' })));
21
+ return (h(Host, { key: '8f771805224c769b5a87f5c550ddbcb8f888d002', 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: '6fcd46cfd74415d2f07c762b065e3aa0f0194764' })));
22
22
  }
23
23
  static get is() { return "nv-stack"; }
24
24
  static get originalStyleUrls() {
@@ -1,172 +1,33 @@
1
1
  import { h } from "@stencil/core";
2
- import { nameof } from "../../utils/class.utils";
3
2
  const NvTableDocs = {
4
3
  component: 'nv-table',
5
- subcomponents: ['nv-tablecolumn', 'nv-iconbutton', 'nv-badge'],
6
- composedComponents: ['nv-tablecolumn'],
7
- badge: 'beta',
8
4
  stories: [
9
5
  {
10
6
  name: 'Default',
11
- template: h("nv-table", { "data-storybook-args": true }),
7
+ description: 'The NvTable behaves just like a native HTML table element, but is enhanced with Nova styles and additional functionality. Use standard table elements (thead, tbody, tfoot, tr, th, td) as children.',
8
+ template: (h("nv-table", { "data-storybook-args": true }, h("table", null, h("thead", null, h("tr", null, h("th", null, "Name"), h("th", null, "Age"), h("th", null, "Email"))), h("tbody", null, h("tr", null, h("td", null, "Alice Johnson"), h("td", null, "25"), h("td", null, "alice.johnson@example.com")), h("tr", null, h("td", null, "Bob Smith"), h("td", null, "30"), h("td", null, "bob.smith@example.com")), h("tr", null, h("td", null, "Charlie Brown"), h("td", null, "35"), h("td", null, "charlie.brown@example.com")))))),
12
9
  },
13
10
  {
14
- name: nameof(x => x.noColumnsNoDataMessage),
15
- args: {
16
- noColumnsNoDataMessage: 'Nothing to display.',
17
- },
18
- template: h("nv-table", { "data-storybook-args": true }),
11
+ name: 'ColumnResizingWidthClasses',
12
+ description: 'Columns can be resized by default. Use width classes (like w-10) to set initial column widths. Use data-no-resize attribute to prevent specific columns from being resized. Columns without fixed widths will grow to fill available space.',
13
+ template: (h("nv-table", { "data-storybook-args": true }, h("table", null, h("thead", null, h("tr", null, h("th", { "data-class": "w-10" }, "Name"), h("th", { "data-class": "w-10" }, "Age"), h("th", { "data-no-resize": true }, "Email (grows to fill space)"), h("th", { "data-class": "w-10", "data-no-resize": true }, "Actions"))), h("tbody", null, h("tr", null, h("td", null, "Alice Johnson"), h("td", null, "25"), h("td", null, "alice.johnson@company.example.com"), h("td", null, "Edit")), h("tr", null, h("td", null, "Bob Smith"), h("td", null, "30"), h("td", null, "bob.smith@company.example.com"), h("td", null, "Edit")), h("tr", null, h("td", null, "Charlie Brown"), h("td", null, "35"), h("td", null, "charlie.brown@company.example.com"), h("td", null, "Edit")))))),
19
14
  },
20
15
  {
21
- name: nameof(x => x.noDataMessage),
22
- args: {
23
- noDataMessage: 'No element available to display.',
24
- columnsConfigJson: `[
25
- {"header":"Name","name":"name"},
26
- {"header":"Age","name":"age"},
27
- {"header":"Email","name":"email"}
28
- ]`,
29
- },
30
- template: h("nv-table", { "data-storybook-args": true }),
16
+ name: 'RowSelection',
17
+ description: 'Use the data-selected attribute on table rows to apply selection styling and indicate the currently selected row.',
18
+ template: (h("nv-table", { "data-storybook-args": true }, h("table", null, h("thead", null, h("tr", null, h("th", null, "Name"), h("th", null, "Department"), h("th", null, "Status"))), h("tbody", null, h("tr", null, h("td", null, "Alice Johnson"), h("td", null, "Engineering"), h("td", null, "Active")), h("tr", { "data-selected": true }, h("td", null, "Bob Smith"), h("td", null, "Design"), h("td", null, "Active")), h("tr", null, h("td", null, "Charlie Brown"), h("td", null, "Product"), h("td", null, "Inactive")))))),
31
19
  },
32
20
  {
33
- name: nameof(x => x.columnsConfig),
34
- args: {
35
- columnsConfig: [
36
- { header: 'Name', name: 'name' },
37
- { header: 'Age', name: 'age' },
38
- { header: 'Email', name: 'email' },
39
- ],
40
- },
41
- template: h("nv-table", { "data-storybook-args": true }),
21
+ name: 'StickyHeader',
22
+ description: 'Use data-sticky-top on thead elements to make the header stick to the top during vertical scrolling. This is useful for long tables where you want to keep column headers visible.',
23
+ template: (h("div", { "data-class": "h-40 overflow-y-auto" }, h("nv-table", { "data-storybook-args": true }, h("table", null, h("thead", { "data-sticky-top": true }, h("tr", null, h("th", null, "Name"), h("th", null, "Position"), h("th", null, "Department"))), h("tbody", null, Array(10)
24
+ .fill(0)
25
+ .map((_, index) => (h("tr", { key: index }, h("td", null, "Employee ", index + 1), h("td", null, "Developer"), h("td", null, "Engineering"))))))))),
42
26
  },
43
27
  {
44
- name: nameof(x => x.columnsConfigJson),
45
- args: {
46
- columnsConfigJson: `[
47
- {"header":"Name","name":"name"},
48
- {"header":"Age","name":"age"},
49
- {"header":"Email","name":"email"}
50
- ]`,
51
- },
52
- template: h("nv-table", { "data-storybook-args": true }),
53
- },
54
- {
55
- name: nameof(x => x.data),
56
- args: {
57
- data: [
58
- { name: 'Alice', age: '25', email: 'alice@mail.com' },
59
- { name: 'Bob', age: '30', email: 'bob@mail.com' },
60
- ],
61
- },
62
- template: h("nv-table", { "data-storybook-args": true }),
63
- },
64
- {
65
- name: nameof(x => x.dataJson),
66
- args: {
67
- dataJson: `[
68
- { "name": "Alice", "age": "25", "email": "alice@mail.com" },
69
- { "name": "Bob", "age": "30", "email": "bob@mail.com" }
70
- ]`,
71
- },
72
- template: h("nv-table", { "data-storybook-args": true }),
73
- },
74
- {
75
- name: 'ColumnsArrayAndDataArray',
76
- args: {
77
- columnsConfig: [
78
- { header: 'Name', name: 'name' },
79
- { header: 'Age', name: 'age' },
80
- { header: 'Email', name: 'email' },
81
- ],
82
- data: [
83
- { name: 'Alice', age: '25', email: 'alice@mail.com' },
84
- { name: 'Bob', age: '30', email: 'bob@mail.com' },
85
- ],
86
- },
87
- template: h("nv-table", { "data-storybook-args": true }),
88
- },
89
- {
90
- name: 'ColumnsJSONAndDataJSON',
91
- args: {
92
- columnsConfigJson: `[
93
- {"header":"Name","name":"name"},
94
- {"header":"Age","name":"age"},
95
- {"header":"Email","name":"email"}
96
- ]`,
97
- dataJson: `[
98
- { "name": "Alice", "age": "25", "email": "alice@mail.com" },
99
- { "name": "Bob", "age": "30", "email": "bob@mail.com" }
100
- ]`,
101
- },
102
- template: h("nv-table", { "data-storybook-args": true }),
103
- },
104
- {
105
- name: 'WithDataAndTemplate',
106
- args: {
107
- dataJson: `[
108
- {"id":1,"name":"John Doe","age":25,"email":"john.doe@mail.com"},
109
- {"id":2,"name":"Jane Doe","age":30,"email":"jane.doe@mail.com"}
110
- ]`,
111
- },
112
- template: (h("nv-table", { "data-storybook-args": true }, h("nv-tablecolumn", { name: "name", header: "Name" }, h("div", { slot: "header" }, h("strong", null, "Name")), h("div", { slot: "cell" }, h("strong", null, "__name__"))), h("nv-tablecolumn", { name: "age", header: "Age" }, h("div", { slot: "header" }, h("em", null, "Age")), h("div", { slot: "cell" }, h("span", null, "__age__ years old"))), h("nv-tablecolumn", { name: "email", header: "Mail Address" }, h("div", { slot: "cell" }, h("a", { href: "mailto:__email__" }, "__email__"))), h("nv-tablecolumn", { name: "actions" }, h("div", { slot: "header" }), h("div", { slot: "cell" }, h("nv-iconbutton", { size: "xs", name: "pencil", "data-bind-event": "click:edit:id" }), h("nv-iconbutton", { size: "xs", name: "trash", "data-bind-event": "click:delete:id" }), h("nv-iconbutton", { size: "xs", name: "mail", "data-bind-event": "click:sendEmail:id,email" }))))),
113
- },
114
- {
115
- name: 'WithDataAndTemplateComplexData',
116
- args: {
117
- dataJson: `[
118
- {"id":1,"name":"John Doe","age":25,"email":"john.doe@mail.com", "address": {"city": "New York", "country": "USA"}, "status": {"label": "success", "color": "1", "icon": "check"}},
119
- {"id":2,"name":"Jane Doe","age":30,"email":"jane.doe@mail.com", "address": {"city": "Los Angeles", "country": "USA"}, "status": {"label": "warning", "color": "2", "icon": "alert-circle"}},
120
- {"id":3,"name":"John Smith","age":35,"email":"john.smith@mail.com", "address": {"city": "London", "country": "UK"}, "status": {"label": "error", "color": "3", "icon": "loader"}},
121
- {"id":4,"name":"Jane Smith","age":40,"email":"jane.smith@mail.com", "address": {"city": "Paris", "country": "France"}, "status": {"label": "info", "color": "5", "icon": "info-circle"}}
122
- ]`,
123
- },
124
- template: (h("nv-table", { "data-storybook-args": true }, h("nv-tablecolumn", { name: "name", header: "Name" }, h("div", { slot: "header" }, h("strong", null, "Name")), h("div", { slot: "cell" }, h("strong", null, "__name__"))), h("nv-tablecolumn", { name: "age", header: "Age" }, h("div", { slot: "header" }, h("em", null, "Age")), h("div", { slot: "cell" }, h("span", null, "__age__ years old"))), h("nv-tablecolumn", { name: "email", header: "Mail Address" }, h("div", { slot: "cell" }, h("a", { href: "mailto:__email__" }, "__email__"))), h("nv-tablecolumn", { name: "address", header: "Address" }, h("div", { slot: "cell" }, h("span", null, "__address.city__, __address.country__"))), h("nv-tablecolumn", { name: "status", header: "Status" }, h("div", { slot: "header" }, h("span", { class: "text-md font-bold text-low" }, "Status")), h("div", { slot: "cell" }, h("nv-badge", { color: "__status.color__", "lead-icon": "__status.icon__" }, "__status.label__"))), h("nv-tablecolumn", { name: "actions" }, h("div", { slot: "header" }), h("div", { slot: "cell" }, h("nv-iconbutton", { size: "xs", name: "pencil", "data-bind-event": "click:edit:id" }), h("nv-iconbutton", { size: "xs", name: "trash", "data-bind-event": "click:delete:id" }), h("nv-iconbutton", { size: "xs", name: "mail", "data-bind-event": "click:sendEmail:id,email" }))))),
125
- },
126
- {
127
- name: 'SlotBefore',
128
- args: {
129
- columnsConfigJson: `[
130
- {"header":"Name","name":"name"},
131
- {"header":"Age","name":"age"},
132
- {"header":"Email","name":"email"}
133
- ]`,
134
- dataJson: `[
135
- { "name": "Alice", "age": "25", "email": "alice@mail.com" },
136
- { "name": "Bob", "age": "30", "email": "bob@mail.com" }
137
- ]`,
138
- },
139
- template: (h("nv-table", { "data-storybook-args": true }, h("div", { slot: "before" }, "Before"))),
140
- },
141
- {
142
- name: 'SlotAfter',
143
- args: {
144
- columnsConfigJson: `[
145
- {"header":"Name","name":"name"},
146
- {"header":"Age","name":"age"},
147
- {"header":"Email","name":"email"}
148
- ]`,
149
- dataJson: `[
150
- { "name": "Alice", "age": "25", "email": "alice@mail.com" },
151
- { "name": "Bob", "age": "30", "email": "bob@mail.com" }
152
- ]`,
153
- },
154
- template: (h("nv-table", { "data-storybook-args": true }, h("div", { slot: "after" }, "After"))),
155
- },
156
- {
157
- name: 'SlotBeforeAndAfter',
158
- args: {
159
- columnsConfigJson: `[
160
- {"header":"Name","name":"name"},
161
- {"header":"Age","name":"age"},
162
- {"header":"Email","name":"email"}
163
- ]`,
164
- dataJson: `[
165
- { "name": "Alice", "age": "25", "email": "alice@mail.com" },
166
- { "name": "Bob", "age": "30", "email": "bob@mail.com" }
167
- ]`,
168
- },
169
- template: (h("nv-table", { "data-storybook-args": true }, h("div", { slot: "before" }, "Before"), h("div", { slot: "after" }, "After"))),
28
+ name: 'StickyColumnsHorizontalScroll',
29
+ description: 'Use data-sticky-left and data-sticky-right on th/td elements to make columns stick during horizontal scrolling. Apply the same attribute to both header and data cells. Requires an overflow-x-auto container.',
30
+ template: (h("div", { "data-class": "overflow-x-auto" }, h("nv-table", { "data-storybook-args": true }, h("table", null, h("thead", null, h("tr", null, h("th", { "data-sticky-left": true }, "Name"), h("th", null, "Position"), h("th", null, "Department"), h("th", null, "Email"), h("th", null, "Phone"), h("th", null, "Address"), h("th", null, "Start Date"), h("th", null, "Salary"), h("th", null, "Manager"), h("th", null, "Skills"), h("th", null, "Notes"), h("th", null, "Website"), h("th", { "data-sticky-right": true }, "Actions"))), h("tbody", null, h("tr", null, h("td", { "data-sticky-left": true }, "John Doe"), h("td", null, "Senior Developer"), h("td", null, "Engineering"), h("td", null, "john.doe@company.com"), h("td", null, "+1-555-0123"), h("td", null, "123 Main St, NY 10001"), h("td", null, "2022-03-10"), h("td", null, "$95,000"), h("td", null, "Sarah Wilson"), h("td", null, "React, TypeScript, Node.js"), h("td", null, "Team lead with React expertise"), h("td", null, "johndoe.dev"), h("td", { "data-sticky-right": true }, "Edit | Delete")), h("tr", null, h("td", { "data-sticky-left": true }, "Jane Smith"), h("td", null, "UX Designer"), h("td", null, "Design"), h("td", null, "jane.smith@company.com"), h("td", null, "+1-555-0456"), h("td", null, "456 Oak Ave, LA 90210"), h("td", null, "2021-09-15"), h("td", null, "$87,000"), h("td", null, "Tom Anderson"), h("td", null, "Figma, Adobe CC, User Research"), h("td", null, "Creative designer with 8 years experience"), h("td", null, "janesmith.design"), h("td", { "data-sticky-right": true }, "Edit | Delete")), h("tr", null, h("td", { "data-sticky-left": true }, "Mike Johnson"), h("td", null, "Product Manager"), h("td", null, "Product"), h("td", null, "mike.johnson@company.com"), h("td", null, "+1-555-0789"), h("td", null, "789 Pine St, Chicago 60601"), h("td", null, "2020-01-08"), h("td", null, "$110,000"), h("td", null, "Lisa Chen"), h("td", null, "Agile, Scrum, Product Strategy"), h("td", null, "Experienced project manager and strategist"), h("td", null, "mikejohnson.biz"), h("td", { "data-sticky-right": true }, "Edit | Delete"))))))),
170
31
  },
171
32
  ],
172
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"nv-table.docs.js","sourceRoot":"","sources":["../../../src/components/nv-table/nv-table.docs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\nimport { nameof } from '../../utils/class.utils';\n\nconst NvTableDocs: NovaDocs<Components.NvTable> = {\n component: 'nv-table',\n subcomponents: ['nv-tablecolumn', 'nv-iconbutton', 'nv-badge'],\n composedComponents: ['nv-tablecolumn'],\n badge: 'beta',\n stories: [\n {\n name: 'Default',\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: nameof<Components.NvTable>(x => x.noColumnsNoDataMessage),\n args: {\n noColumnsNoDataMessage: 'Nothing to display.',\n },\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: nameof<Components.NvTable>(x => x.noDataMessage),\n args: {\n noDataMessage: 'No element available to display.',\n columnsConfigJson: `[\n {\"header\":\"Name\",\"name\":\"name\"},\n {\"header\":\"Age\",\"name\":\"age\"},\n {\"header\":\"Email\",\"name\":\"email\"}\n ]`,\n },\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: nameof<Components.NvTable>(x => x.columnsConfig),\n args: {\n columnsConfig: [\n { header: 'Name', name: 'name' },\n { header: 'Age', name: 'age' },\n { header: 'Email', name: 'email' },\n ],\n },\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: nameof<Components.NvTable>(x => x.columnsConfigJson),\n args: {\n columnsConfigJson: `[\n {\"header\":\"Name\",\"name\":\"name\"},\n {\"header\":\"Age\",\"name\":\"age\"},\n {\"header\":\"Email\",\"name\":\"email\"}\n ]`,\n },\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: nameof<Components.NvTable>(x => x.data),\n args: {\n data: [\n { name: 'Alice', age: '25', email: 'alice@mail.com' },\n { name: 'Bob', age: '30', email: 'bob@mail.com' },\n ],\n },\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: nameof<Components.NvTable>(x => x.dataJson),\n args: {\n dataJson: `[\n { \"name\": \"Alice\", \"age\": \"25\", \"email\": \"alice@mail.com\" },\n { \"name\": \"Bob\", \"age\": \"30\", \"email\": \"bob@mail.com\" }\n ]`,\n },\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: 'ColumnsArrayAndDataArray',\n args: {\n columnsConfig: [\n { header: 'Name', name: 'name' },\n { header: 'Age', name: 'age' },\n { header: 'Email', name: 'email' },\n ],\n data: [\n { name: 'Alice', age: '25', email: 'alice@mail.com' },\n { name: 'Bob', age: '30', email: 'bob@mail.com' },\n ],\n },\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: 'ColumnsJSONAndDataJSON',\n args: {\n columnsConfigJson: `[\n {\"header\":\"Name\",\"name\":\"name\"},\n {\"header\":\"Age\",\"name\":\"age\"},\n {\"header\":\"Email\",\"name\":\"email\"}\n ]`,\n dataJson: `[\n { \"name\": \"Alice\", \"age\": \"25\", \"email\": \"alice@mail.com\" },\n { \"name\": \"Bob\", \"age\": \"30\", \"email\": \"bob@mail.com\" }\n ]`,\n },\n template: <nv-table data-storybook-args></nv-table>,\n },\n {\n name: 'WithDataAndTemplate',\n args: {\n dataJson: `[\n {\"id\":1,\"name\":\"John Doe\",\"age\":25,\"email\":\"john.doe@mail.com\"},\n {\"id\":2,\"name\":\"Jane Doe\",\"age\":30,\"email\":\"jane.doe@mail.com\"}\n ]`,\n },\n template: (\n <nv-table data-storybook-args>\n <nv-tablecolumn name=\"name\" header=\"Name\">\n <div slot=\"header\">\n <strong>Name</strong>\n </div>\n <div slot=\"cell\">\n <strong>__name__</strong>\n </div>\n </nv-tablecolumn>\n\n <nv-tablecolumn name=\"age\" header=\"Age\">\n <div slot=\"header\">\n <em>Age</em>\n </div>\n <div slot=\"cell\">\n <span>__age__ years old</span>\n </div>\n </nv-tablecolumn>\n\n <nv-tablecolumn name=\"email\" header=\"Mail Address\">\n <div slot=\"cell\">\n <a href=\"mailto:__email__\">__email__</a>\n </div>\n </nv-tablecolumn>\n\n <nv-tablecolumn name=\"actions\">\n <div slot=\"header\"></div>\n <div slot=\"cell\">\n <nv-iconbutton\n size=\"xs\"\n name=\"pencil\"\n data-bind-event=\"click:edit:id\"\n ></nv-iconbutton>\n <nv-iconbutton\n size=\"xs\"\n name=\"trash\"\n data-bind-event=\"click:delete:id\"\n ></nv-iconbutton>\n <nv-iconbutton\n size=\"xs\"\n name=\"mail\"\n data-bind-event=\"click:sendEmail:id,email\"\n ></nv-iconbutton>\n </div>\n </nv-tablecolumn>\n </nv-table>\n ),\n },\n {\n name: 'WithDataAndTemplateComplexData',\n args: {\n dataJson: `[\n {\"id\":1,\"name\":\"John Doe\",\"age\":25,\"email\":\"john.doe@mail.com\", \"address\": {\"city\": \"New York\", \"country\": \"USA\"}, \"status\": {\"label\": \"success\", \"color\": \"1\", \"icon\": \"check\"}},\n {\"id\":2,\"name\":\"Jane Doe\",\"age\":30,\"email\":\"jane.doe@mail.com\", \"address\": {\"city\": \"Los Angeles\", \"country\": \"USA\"}, \"status\": {\"label\": \"warning\", \"color\": \"2\", \"icon\": \"alert-circle\"}},\n {\"id\":3,\"name\":\"John Smith\",\"age\":35,\"email\":\"john.smith@mail.com\", \"address\": {\"city\": \"London\", \"country\": \"UK\"}, \"status\": {\"label\": \"error\", \"color\": \"3\", \"icon\": \"loader\"}},\n {\"id\":4,\"name\":\"Jane Smith\",\"age\":40,\"email\":\"jane.smith@mail.com\", \"address\": {\"city\": \"Paris\", \"country\": \"France\"}, \"status\": {\"label\": \"info\", \"color\": \"5\", \"icon\": \"info-circle\"}}\n ]`,\n },\n template: (\n <nv-table data-storybook-args>\n <nv-tablecolumn name=\"name\" header=\"Name\">\n <div slot=\"header\">\n <strong>Name</strong>\n </div>\n <div slot=\"cell\">\n <strong>__name__</strong>\n </div>\n </nv-tablecolumn>\n\n <nv-tablecolumn name=\"age\" header=\"Age\">\n <div slot=\"header\">\n <em>Age</em>\n </div>\n <div slot=\"cell\">\n <span>__age__ years old</span>\n </div>\n </nv-tablecolumn>\n\n <nv-tablecolumn name=\"email\" header=\"Mail Address\">\n <div slot=\"cell\">\n <a href=\"mailto:__email__\">__email__</a>\n </div>\n </nv-tablecolumn>\n\n <nv-tablecolumn name=\"address\" header=\"Address\">\n <div slot=\"cell\">\n <span>__address.city__, __address.country__</span>\n </div>\n </nv-tablecolumn>\n\n <nv-tablecolumn name=\"status\" header=\"Status\">\n <div slot=\"header\">\n <span class=\"text-md font-bold text-low\">Status</span>\n </div>\n <div slot=\"cell\">\n <nv-badge color=\"__status.color__\" lead-icon=\"__status.icon__\">\n __status.label__\n </nv-badge>\n </div>\n </nv-tablecolumn>\n\n <nv-tablecolumn name=\"actions\">\n <div slot=\"header\"></div>\n <div slot=\"cell\">\n <nv-iconbutton\n size=\"xs\"\n name=\"pencil\"\n data-bind-event=\"click:edit:id\"\n ></nv-iconbutton>\n <nv-iconbutton\n size=\"xs\"\n name=\"trash\"\n data-bind-event=\"click:delete:id\"\n ></nv-iconbutton>\n <nv-iconbutton\n size=\"xs\"\n name=\"mail\"\n data-bind-event=\"click:sendEmail:id,email\"\n ></nv-iconbutton>\n </div>\n </nv-tablecolumn>\n </nv-table>\n ),\n },\n {\n name: 'SlotBefore',\n args: {\n columnsConfigJson: `[\n {\"header\":\"Name\",\"name\":\"name\"},\n {\"header\":\"Age\",\"name\":\"age\"},\n {\"header\":\"Email\",\"name\":\"email\"}\n ]`,\n dataJson: `[\n { \"name\": \"Alice\", \"age\": \"25\", \"email\": \"alice@mail.com\" },\n { \"name\": \"Bob\", \"age\": \"30\", \"email\": \"bob@mail.com\" }\n ]`,\n },\n template: (\n <nv-table data-storybook-args>\n <div slot=\"before\">Before</div>\n </nv-table>\n ),\n },\n {\n name: 'SlotAfter',\n args: {\n columnsConfigJson: `[\n {\"header\":\"Name\",\"name\":\"name\"},\n {\"header\":\"Age\",\"name\":\"age\"},\n {\"header\":\"Email\",\"name\":\"email\"}\n ]`,\n dataJson: `[\n { \"name\": \"Alice\", \"age\": \"25\", \"email\": \"alice@mail.com\" },\n { \"name\": \"Bob\", \"age\": \"30\", \"email\": \"bob@mail.com\" }\n ]`,\n },\n template: (\n <nv-table data-storybook-args>\n <div slot=\"after\">After</div>\n </nv-table>\n ),\n },\n {\n name: 'SlotBeforeAndAfter',\n args: {\n columnsConfigJson: `[\n {\"header\":\"Name\",\"name\":\"name\"},\n {\"header\":\"Age\",\"name\":\"age\"},\n {\"header\":\"Email\",\"name\":\"email\"}\n ]`,\n dataJson: `[\n { \"name\": \"Alice\", \"age\": \"25\", \"email\": \"alice@mail.com\" },\n { \"name\": \"Bob\", \"age\": \"30\", \"email\": \"bob@mail.com\" }\n ]`,\n },\n template: (\n <nv-table data-storybook-args>\n <div slot=\"before\">Before</div>\n <div slot=\"after\">After</div>\n </nv-table>\n ),\n },\n ],\n};\n\nexport default NvTableDocs;\n"]}
1
+ {"version":3,"file":"nv-table.docs.js","sourceRoot":"","sources":["../../../src/components/nv-table/nv-table.docs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport type { NovaDocs } from '../../nova-docs';\nimport { Components } from '../../components';\n\nconst NvTableDocs: NovaDocs<Components.NvTable> = {\n component: 'nv-table',\n stories: [\n {\n name: 'Default',\n description:\n 'The NvTable behaves just like a native HTML table element, but is enhanced with Nova styles and additional functionality. Use standard table elements (thead, tbody, tfoot, tr, th, td) as children.',\n template: (\n <nv-table data-storybook-args>\n <table>\n <thead>\n <tr>\n <th>Name</th>\n <th>Age</th>\n <th>Email</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>Alice Johnson</td>\n <td>25</td>\n <td>alice.johnson@example.com</td>\n </tr>\n <tr>\n <td>Bob Smith</td>\n <td>30</td>\n <td>bob.smith@example.com</td>\n </tr>\n <tr>\n <td>Charlie Brown</td>\n <td>35</td>\n <td>charlie.brown@example.com</td>\n </tr>\n </tbody>\n </table>\n </nv-table>\n ),\n },\n {\n name: 'ColumnResizingWidthClasses',\n description:\n 'Columns can be resized by default. Use width classes (like w-10) to set initial column widths. Use data-no-resize attribute to prevent specific columns from being resized. Columns without fixed widths will grow to fill available space.',\n template: (\n <nv-table data-storybook-args>\n <table>\n <thead>\n <tr>\n <th data-class=\"w-10\">Name</th>\n <th data-class=\"w-10\">Age</th>\n <th data-no-resize>Email (grows to fill space)</th>\n <th data-class=\"w-10\" data-no-resize>\n Actions\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>Alice Johnson</td>\n <td>25</td>\n <td>alice.johnson@company.example.com</td>\n <td>Edit</td>\n </tr>\n <tr>\n <td>Bob Smith</td>\n <td>30</td>\n <td>bob.smith@company.example.com</td>\n <td>Edit</td>\n </tr>\n <tr>\n <td>Charlie Brown</td>\n <td>35</td>\n <td>charlie.brown@company.example.com</td>\n <td>Edit</td>\n </tr>\n </tbody>\n </table>\n </nv-table>\n ),\n },\n {\n name: 'RowSelection',\n description:\n 'Use the data-selected attribute on table rows to apply selection styling and indicate the currently selected row.',\n template: (\n <nv-table data-storybook-args>\n <table>\n <thead>\n <tr>\n <th>Name</th>\n <th>Department</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>Alice Johnson</td>\n <td>Engineering</td>\n <td>Active</td>\n </tr>\n <tr data-selected>\n <td>Bob Smith</td>\n <td>Design</td>\n <td>Active</td>\n </tr>\n <tr>\n <td>Charlie Brown</td>\n <td>Product</td>\n <td>Inactive</td>\n </tr>\n </tbody>\n </table>\n </nv-table>\n ),\n },\n {\n name: 'StickyHeader',\n description:\n 'Use data-sticky-top on thead elements to make the header stick to the top during vertical scrolling. This is useful for long tables where you want to keep column headers visible.',\n template: (\n <div data-class=\"h-40 overflow-y-auto\">\n <nv-table data-storybook-args>\n <table>\n <thead data-sticky-top>\n <tr>\n <th>Name</th>\n <th>Position</th>\n <th>Department</th>\n </tr>\n </thead>\n <tbody>\n {Array(10)\n .fill(0)\n .map((_, index) => (\n <tr key={index}>\n <td>Employee {index + 1}</td>\n <td>Developer</td>\n <td>Engineering</td>\n </tr>\n ))}\n </tbody>\n </table>\n </nv-table>\n </div>\n ),\n },\n {\n name: 'StickyColumnsHorizontalScroll',\n description:\n 'Use data-sticky-left and data-sticky-right on th/td elements to make columns stick during horizontal scrolling. Apply the same attribute to both header and data cells. Requires an overflow-x-auto container.',\n template: (\n <div data-class=\"overflow-x-auto\">\n <nv-table data-storybook-args>\n <table>\n <thead>\n <tr>\n <th data-sticky-left>Name</th>\n <th>Position</th>\n <th>Department</th>\n <th>Email</th>\n <th>Phone</th>\n <th>Address</th>\n <th>Start Date</th>\n <th>Salary</th>\n <th>Manager</th>\n <th>Skills</th>\n <th>Notes</th>\n <th>Website</th>\n <th data-sticky-right>Actions</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td data-sticky-left>John Doe</td>\n <td>Senior Developer</td>\n <td>Engineering</td>\n <td>john.doe@company.com</td>\n <td>+1-555-0123</td>\n <td>123 Main St, NY 10001</td>\n <td>2022-03-10</td>\n <td>$95,000</td>\n <td>Sarah Wilson</td>\n <td>React, TypeScript, Node.js</td>\n <td>Team lead with React expertise</td>\n <td>johndoe.dev</td>\n <td data-sticky-right>Edit | Delete</td>\n </tr>\n <tr>\n <td data-sticky-left>Jane Smith</td>\n <td>UX Designer</td>\n <td>Design</td>\n <td>jane.smith@company.com</td>\n <td>+1-555-0456</td>\n <td>456 Oak Ave, LA 90210</td>\n <td>2021-09-15</td>\n <td>$87,000</td>\n <td>Tom Anderson</td>\n <td>Figma, Adobe CC, User Research</td>\n <td>Creative designer with 8 years experience</td>\n <td>janesmith.design</td>\n <td data-sticky-right>Edit | Delete</td>\n </tr>\n <tr>\n <td data-sticky-left>Mike Johnson</td>\n <td>Product Manager</td>\n <td>Product</td>\n <td>mike.johnson@company.com</td>\n <td>+1-555-0789</td>\n <td>789 Pine St, Chicago 60601</td>\n <td>2020-01-08</td>\n <td>$110,000</td>\n <td>Lisa Chen</td>\n <td>Agile, Scrum, Product Strategy</td>\n <td>Experienced project manager and strategist</td>\n <td>mikejohnson.biz</td>\n <td data-sticky-right>Edit | Delete</td>\n </tr>\n </tbody>\n </table>\n </nv-table>\n </div>\n ),\n },\n ],\n};\n\nexport default NvTableDocs;\n"]}