@nova-design-system/nova-webcomponents 3.15.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 (536) hide show
  1. package/dist/cjs/{index-c56424e5.js → index-93d3b2f8.js} +5 -6
  2. package/dist/cjs/index-93d3b2f8.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +6 -1
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/native.cjs.js +2 -2
  7. package/dist/cjs/nv-accordion-item.cjs.entry.js +2 -2
  8. package/dist/cjs/nv-accordion-item.cjs.entry.js.map +1 -1
  9. package/dist/cjs/nv-accordion.cjs.entry.js +6 -6
  10. package/dist/cjs/nv-accordion.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nv-alert.cjs.entry.js +2 -2
  12. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nv-avatar.cjs.entry.js +2 -2
  14. package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nv-badge_2.cjs.entry.js +1 -1
  16. package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
  17. package/dist/cjs/nv-breadcrumb.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-button.cjs.entry.js +2 -2
  20. package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
  22. package/dist/cjs/nv-calendar.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  24. package/dist/cjs/nv-datagrid.cjs.entry.js +177 -10
  25. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  26. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  27. package/dist/cjs/nv-dialog.cjs.entry.js +32 -29
  28. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +2 -2
  30. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +2 -2
  32. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nv-fielddate.cjs.entry.js +51 -26
  34. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nv-fielddaterange.cjs.entry.js +68 -42
  36. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nv-fielddropdown.cjs.entry.js +33 -7
  38. package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +1 -1
  40. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +187 -156
  41. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nv-fieldnumber.cjs.entry.js +2 -2
  43. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nv-fieldpassword.cjs.entry.js +2 -2
  45. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nv-fieldradio.cjs.entry.js +2 -2
  47. package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
  48. package/dist/cjs/nv-fieldselect.cjs.entry.js +2 -2
  49. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nv-fieldslider.cjs.entry.js +2 -2
  51. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nv-fieldtext.cjs.entry.js +2 -2
  53. package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +2 -2
  55. package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nv-fieldtime.cjs.entry.js +25 -12
  57. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nv-icon.cjs.entry.js +2 -2
  59. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -1
  62. package/dist/cjs/nv-menu.cjs.entry.js +24 -9
  63. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nv-menuitem.cjs.entry.js +1 -1
  65. package/dist/cjs/nv-notification.cjs.entry.js +2 -2
  66. package/dist/cjs/nv-notification.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nv-notificationcontainer.cjs.entry.js +1 -1
  68. package/dist/cjs/nv-popover.cjs.entry.js +67 -61
  69. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  70. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  71. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  72. package/dist/cjs/nv-table.cjs.entry.js +216 -310
  73. package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
  74. package/dist/cjs/nv-toggle.cjs.entry.js +4 -4
  75. package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  77. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
  78. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js.map +1 -1
  79. package/dist/cjs/nv-tooltip.cjs.entry.js +2 -2
  80. package/dist/collection/collection-manifest.json +0 -1
  81. package/dist/collection/components/nv-accordion/nv-accordion.js +12 -9
  82. package/dist/collection/components/nv-accordion/nv-accordion.js.map +1 -1
  83. package/dist/collection/components/nv-accordion-item/nv-accordion-item.js.map +1 -1
  84. package/dist/collection/components/nv-accordion-item/styles/nv-accordion-item.css +1 -1
  85. package/dist/collection/components/nv-alert/nv-alert.css +1 -1
  86. package/dist/collection/components/nv-avatar/nv-avatar.css +1 -1
  87. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.css +1 -1
  88. package/dist/collection/components/nv-button/styles/nv-button.css +1 -1
  89. package/dist/collection/components/nv-datagrid/nv-datagrid.css +2 -2
  90. package/dist/collection/components/nv-dialog/nv-dialog.css +2 -2
  91. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +13 -0
  92. package/dist/collection/components/nv-dialog/nv-dialog.docs.js.map +1 -1
  93. package/dist/collection/components/nv-dialog/nv-dialog.js +30 -27
  94. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  95. package/dist/collection/components/nv-dialogheader/nv-dialogheader.css +4 -4
  96. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +3 -3
  97. package/dist/collection/components/nv-fielddate/nv-fielddate.js +49 -24
  98. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -1
  99. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +8 -8
  100. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +66 -43
  101. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -1
  102. package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +8 -8
  103. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +26 -4
  104. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js.map +1 -1
  105. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +32 -4
  106. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  107. package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +9 -9
  108. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +186 -153
  109. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  110. package/dist/collection/components/nv-fieldmultiselect/styles/nv-fieldmultiselect.css +9 -9
  111. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +8 -8
  112. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +8 -8
  113. package/dist/collection/components/nv-fieldradio/nv-fieldradio.css +3 -3
  114. package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +12 -12
  115. package/dist/collection/components/nv-fieldslider/styles/nv-fieldslider.css +7 -7
  116. package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +8 -8
  117. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +9 -1
  118. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
  119. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.css +8 -8
  120. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +22 -0
  121. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js.map +1 -1
  122. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +24 -9
  123. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  124. package/dist/collection/components/nv-fieldtime/styles/nv-fieldtime.css +8 -8
  125. package/dist/collection/components/nv-icon/nv-icons.js +6 -1
  126. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  127. package/dist/collection/components/nv-iconbutton/nv-iconbutton.css +2 -2
  128. package/dist/collection/components/nv-menu/nv-menu.docs.js +7 -0
  129. package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
  130. package/dist/collection/components/nv-menu/nv-menu.js +26 -8
  131. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  132. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  133. package/dist/collection/components/nv-notification/styles/nv-notification.css +2 -2
  134. package/dist/collection/components/nv-popover/nv-popover.docs.js +11 -0
  135. package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
  136. package/dist/collection/components/nv-popover/nv-popover.js +66 -60
  137. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  138. package/dist/collection/components/nv-table/nv-table.docs.js +16 -155
  139. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
  140. package/dist/collection/components/nv-table/nv-table.js +68 -496
  141. package/dist/collection/components/nv-table/nv-table.js.map +1 -1
  142. package/dist/collection/components/nv-table/nv-table.utils.js +175 -0
  143. package/dist/collection/components/nv-table/nv-table.utils.js.map +1 -0
  144. package/dist/collection/components/nv-table/styles/nv-table.css +84 -0
  145. package/dist/collection/components/nv-table/test/nv-table.utils.test.js +604 -0
  146. package/dist/collection/components/nv-table/test/nv-table.utils.test.js.map +1 -0
  147. package/dist/collection/components/nv-toggle/nv-toggle.css +3 -3
  148. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  149. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  150. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
  151. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js.map +1 -1
  152. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -3
  153. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js.map +1 -1
  154. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  155. package/dist/components/index.js +7 -2
  156. package/dist/components/index.js.map +1 -1
  157. package/dist/components/nv-accordion-item.js +1 -1
  158. package/dist/components/nv-accordion.js +10 -10
  159. package/dist/components/nv-accordion.js.map +1 -1
  160. package/dist/components/nv-alert.js +3 -3
  161. package/dist/components/nv-alert.js.map +1 -1
  162. package/dist/components/nv-avatar.js +3 -3
  163. package/dist/components/nv-avatar.js.map +1 -1
  164. package/dist/components/nv-badge.js +1 -1
  165. package/dist/components/nv-breadcrumb.js +4 -4
  166. package/dist/components/nv-breadcrumb.js.map +1 -1
  167. package/dist/components/nv-breadcrumbs.js +1 -1
  168. package/dist/components/nv-button.js +1 -1
  169. package/dist/components/nv-buttongroup.js +1 -1
  170. package/dist/components/nv-calendar.js +1 -1
  171. package/dist/components/nv-col.js +1 -1
  172. package/dist/components/nv-datagrid.js +174 -7
  173. package/dist/components/nv-datagrid.js.map +1 -1
  174. package/dist/components/nv-datagridcolumn.js +1 -1
  175. package/dist/components/nv-dialog.js +37 -34
  176. package/dist/components/nv-dialog.js.map +1 -1
  177. package/dist/components/nv-dialogfooter.js +1 -1
  178. package/dist/components/nv-dialogheader.js +1 -1
  179. package/dist/components/nv-fieldcheckbox.js +1 -1
  180. package/dist/components/nv-fielddate.js +57 -32
  181. package/dist/components/nv-fielddate.js.map +1 -1
  182. package/dist/components/nv-fielddaterange.js +74 -48
  183. package/dist/components/nv-fielddaterange.js.map +1 -1
  184. package/dist/components/nv-fielddropdown.js +40 -13
  185. package/dist/components/nv-fielddropdown.js.map +1 -1
  186. package/dist/components/nv-fielddropdownitem.js +1 -1
  187. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  188. package/dist/components/nv-fieldmultiselect.js +196 -164
  189. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  190. package/dist/components/nv-fieldnumber.js +1 -1
  191. package/dist/components/nv-fieldpassword.js +5 -5
  192. package/dist/components/nv-fieldpassword.js.map +1 -1
  193. package/dist/components/nv-fieldradio.js +2 -2
  194. package/dist/components/nv-fieldradio.js.map +1 -1
  195. package/dist/components/nv-fieldselect.js +5 -5
  196. package/dist/components/nv-fieldselect.js.map +1 -1
  197. package/dist/components/nv-fieldslider.js +6 -6
  198. package/dist/components/nv-fieldslider.js.map +1 -1
  199. package/dist/components/nv-fieldtext.js +1 -1
  200. package/dist/components/nv-fieldtextarea.js +2 -2
  201. package/dist/components/nv-fieldtextarea.js.map +1 -1
  202. package/dist/components/nv-fieldtime.js +31 -17
  203. package/dist/components/nv-fieldtime.js.map +1 -1
  204. package/dist/components/nv-icon.js +1 -1
  205. package/dist/components/nv-iconbutton.js +1 -1
  206. package/dist/components/nv-loader.js +1 -1
  207. package/dist/components/nv-menu.js +30 -13
  208. package/dist/components/nv-menu.js.map +1 -1
  209. package/dist/components/nv-menuitem.js +1 -1
  210. package/dist/components/nv-notification.js +3 -3
  211. package/dist/components/nv-notification.js.map +1 -1
  212. package/dist/components/nv-notificationcontainer.js +1 -1
  213. package/dist/components/nv-popover.js +1 -1
  214. package/dist/components/nv-row.js +1 -1
  215. package/dist/components/nv-stack.js +1 -1
  216. package/dist/components/nv-table.js +216 -328
  217. package/dist/components/nv-table.js.map +1 -1
  218. package/dist/components/nv-toggle.js +4 -4
  219. package/dist/components/nv-toggle.js.map +1 -1
  220. package/dist/components/nv-togglebutton.js +2 -2
  221. package/dist/components/nv-togglebuttongroup.js +2 -2
  222. package/dist/components/nv-togglebuttongroup.js.map +1 -1
  223. package/dist/components/nv-tooltip.js +1 -1
  224. package/dist/components/{p-00cbf2a1.js → p-0d5ed1d7.js} +3 -3
  225. package/dist/components/p-0d5ed1d7.js.map +1 -0
  226. package/dist/components/{p-54161bad.js → p-0e6f41c7.js} +2 -2
  227. package/dist/components/{p-54161bad.js.map → p-0e6f41c7.js.map} +1 -1
  228. package/dist/components/{p-0c42fafb.js → p-0fd23531.js} +6 -6
  229. package/dist/components/{p-0c42fafb.js.map → p-0fd23531.js.map} +1 -1
  230. package/dist/components/{p-a823b8e9.js → p-1639703f.js} +2 -2
  231. package/dist/components/{p-a823b8e9.js.map → p-1639703f.js.map} +1 -1
  232. package/dist/components/{p-e5c62ea8.js → p-2cc83e0c.js} +3 -3
  233. package/dist/components/{p-e5c62ea8.js.map → p-2cc83e0c.js.map} +1 -1
  234. package/dist/components/p-2d64749f.js +191 -0
  235. package/dist/components/{p-95857e4f.js.map → p-2d64749f.js.map} +1 -1
  236. package/dist/components/{p-3763c9c4.js → p-31478080.js} +3 -3
  237. package/dist/components/{p-3763c9c4.js.map → p-31478080.js.map} +1 -1
  238. package/dist/components/{p-178fa27e.js → p-378e3127.js} +6 -6
  239. package/dist/components/{p-178fa27e.js.map → p-378e3127.js.map} +1 -1
  240. package/dist/components/{p-51876ca1.js → p-429e01f3.js} +3 -3
  241. package/dist/components/p-429e01f3.js.map +1 -0
  242. package/dist/components/p-47d499b4.js +88 -0
  243. package/dist/components/p-47d499b4.js.map +1 -0
  244. package/dist/components/{p-aff3ed68.js → p-5829b9f7.js} +5 -2
  245. package/dist/components/p-5829b9f7.js.map +1 -0
  246. package/dist/components/{p-ee8944f3.js → p-63595ea1.js} +68 -62
  247. package/dist/components/p-63595ea1.js.map +1 -0
  248. package/dist/components/{p-4fc01a78.js → p-7112612c.js} +5 -5
  249. package/dist/components/p-7112612c.js.map +1 -0
  250. package/dist/components/{p-7426b20f.js → p-715e5235.js} +3 -3
  251. package/dist/components/{p-7426b20f.js.map → p-715e5235.js.map} +1 -1
  252. package/dist/components/{p-1af3591a.js → p-9707528d.js} +4 -4
  253. package/dist/components/{p-1af3591a.js.map → p-9707528d.js.map} +1 -1
  254. package/dist/components/{p-fda58a76.js → p-98429fd7.js} +2 -2
  255. package/dist/components/{p-fda58a76.js.map → p-98429fd7.js.map} +1 -1
  256. package/dist/components/{p-31e262bd.js → p-a1ef5e37.js} +5 -5
  257. package/dist/components/{p-31e262bd.js.map → p-a1ef5e37.js.map} +1 -1
  258. package/dist/components/{p-75200cc0.js → p-df5d76a5.js} +3 -3
  259. package/dist/components/{p-75200cc0.js.map → p-df5d76a5.js.map} +1 -1
  260. package/dist/components/{p-51459a44.js → p-f2bac2aa.js} +4 -4
  261. package/dist/components/{p-51459a44.js.map → p-f2bac2aa.js.map} +1 -1
  262. package/dist/esm/{index-a1936cd0.js → index-dc2723f3.js} +5 -6
  263. package/dist/esm/index-dc2723f3.js.map +1 -0
  264. package/dist/esm/index.js +6 -1
  265. package/dist/esm/index.js.map +1 -1
  266. package/dist/esm/loader.js +3 -3
  267. package/dist/esm/native.js +3 -3
  268. package/dist/esm/nv-accordion-item.entry.js +2 -2
  269. package/dist/esm/nv-accordion-item.entry.js.map +1 -1
  270. package/dist/esm/nv-accordion.entry.js +6 -6
  271. package/dist/esm/nv-accordion.entry.js.map +1 -1
  272. package/dist/esm/nv-alert.entry.js +2 -2
  273. package/dist/esm/nv-alert.entry.js.map +1 -1
  274. package/dist/esm/nv-avatar.entry.js +2 -2
  275. package/dist/esm/nv-avatar.entry.js.map +1 -1
  276. package/dist/esm/nv-badge_2.entry.js +1 -1
  277. package/dist/esm/nv-breadcrumb.entry.js +2 -2
  278. package/dist/esm/nv-breadcrumb.entry.js.map +1 -1
  279. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  280. package/dist/esm/nv-button.entry.js +2 -2
  281. package/dist/esm/nv-button.entry.js.map +1 -1
  282. package/dist/esm/nv-buttongroup.entry.js +1 -1
  283. package/dist/esm/nv-calendar.entry.js +1 -1
  284. package/dist/esm/nv-col.entry.js +1 -1
  285. package/dist/esm/nv-datagrid.entry.js +172 -5
  286. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  287. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  288. package/dist/esm/nv-dialog.entry.js +32 -29
  289. package/dist/esm/nv-dialog.entry.js.map +1 -1
  290. package/dist/esm/nv-dialogfooter_2.entry.js +2 -2
  291. package/dist/esm/nv-dialogfooter_2.entry.js.map +1 -1
  292. package/dist/esm/nv-fieldcheckbox.entry.js +2 -2
  293. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  294. package/dist/esm/nv-fielddate.entry.js +51 -26
  295. package/dist/esm/nv-fielddate.entry.js.map +1 -1
  296. package/dist/esm/nv-fielddaterange.entry.js +68 -42
  297. package/dist/esm/nv-fielddaterange.entry.js.map +1 -1
  298. package/dist/esm/nv-fielddropdown.entry.js +33 -7
  299. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  300. package/dist/esm/nv-fielddropdownitem.entry.js +1 -1
  301. package/dist/esm/nv-fieldmultiselect.entry.js +187 -156
  302. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  303. package/dist/esm/nv-fieldnumber.entry.js +2 -2
  304. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  305. package/dist/esm/nv-fieldpassword.entry.js +2 -2
  306. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  307. package/dist/esm/nv-fieldradio.entry.js +2 -2
  308. package/dist/esm/nv-fieldradio.entry.js.map +1 -1
  309. package/dist/esm/nv-fieldselect.entry.js +2 -2
  310. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  311. package/dist/esm/nv-fieldslider.entry.js +2 -2
  312. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  313. package/dist/esm/nv-fieldtext.entry.js +2 -2
  314. package/dist/esm/nv-fieldtext.entry.js.map +1 -1
  315. package/dist/esm/nv-fieldtextarea.entry.js +2 -2
  316. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  317. package/dist/esm/nv-fieldtime.entry.js +25 -12
  318. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  319. package/dist/esm/nv-icon.entry.js +2 -2
  320. package/dist/esm/nv-icon.entry.js.map +1 -1
  321. package/dist/esm/nv-iconbutton_2.entry.js +2 -2
  322. package/dist/esm/nv-iconbutton_2.entry.js.map +1 -1
  323. package/dist/esm/nv-menu.entry.js +24 -9
  324. package/dist/esm/nv-menu.entry.js.map +1 -1
  325. package/dist/esm/nv-menuitem.entry.js +1 -1
  326. package/dist/esm/nv-notification.entry.js +2 -2
  327. package/dist/esm/nv-notification.entry.js.map +1 -1
  328. package/dist/esm/nv-notificationcontainer.entry.js +1 -1
  329. package/dist/esm/nv-popover.entry.js +67 -61
  330. package/dist/esm/nv-popover.entry.js.map +1 -1
  331. package/dist/esm/nv-row.entry.js +1 -1
  332. package/dist/esm/nv-stack.entry.js +1 -1
  333. package/dist/esm/nv-table.entry.js +216 -310
  334. package/dist/esm/nv-table.entry.js.map +1 -1
  335. package/dist/esm/nv-toggle.entry.js +4 -4
  336. package/dist/esm/nv-toggle.entry.js.map +1 -1
  337. package/dist/esm/nv-togglebutton.entry.js +2 -2
  338. package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
  339. package/dist/esm/nv-togglebuttongroup.entry.js.map +1 -1
  340. package/dist/esm/nv-tooltip.entry.js +2 -2
  341. package/dist/native/index.esm.js +1 -1
  342. package/dist/native/index.esm.js.map +1 -1
  343. package/dist/native/native.css +1 -1
  344. package/dist/native/native.esm.js +1 -1
  345. package/dist/native/native.esm.js.map +1 -1
  346. package/dist/native/{p-d882f417.entry.js → p-075d231e.entry.js} +2 -2
  347. package/dist/native/p-075d231e.entry.js.map +1 -0
  348. package/dist/native/p-107e80c6.entry.js +2 -0
  349. package/dist/native/p-107e80c6.entry.js.map +1 -0
  350. package/dist/native/{p-5c697133.entry.js → p-112d096c.entry.js} +2 -2
  351. package/dist/native/p-217de553.entry.js +2 -0
  352. package/dist/native/p-217de553.entry.js.map +1 -0
  353. package/dist/native/{p-85f8f11a.entry.js → p-230af58a.entry.js} +2 -2
  354. package/dist/native/p-23ee0384.entry.js +2 -0
  355. package/dist/native/{p-29f68e07.entry.js.map → p-23ee0384.entry.js.map} +1 -1
  356. package/dist/native/p-26513cbd.entry.js +2 -0
  357. package/dist/native/p-26513cbd.entry.js.map +1 -0
  358. package/dist/native/p-278613a3.entry.js +2 -0
  359. package/dist/native/{p-6cb6679b.entry.js.map → p-278613a3.entry.js.map} +1 -1
  360. package/dist/native/p-2dfd786f.entry.js +2 -0
  361. package/dist/native/{p-29df974e.entry.js.map → p-2dfd786f.entry.js.map} +1 -1
  362. package/dist/native/{p-d0a33e64.js → p-3060df80.js} +3 -3
  363. package/dist/native/p-3060df80.js.map +1 -0
  364. package/dist/native/p-445221dc.entry.js +2 -0
  365. package/dist/native/p-445221dc.entry.js.map +1 -0
  366. package/dist/native/{p-08322093.entry.js → p-44a78545.entry.js} +2 -2
  367. package/dist/native/p-4dc7483d.entry.js +2 -0
  368. package/dist/native/{p-c7b7ffaf.entry.js.map → p-4dc7483d.entry.js.map} +1 -1
  369. package/dist/native/p-4eaf417d.entry.js +13 -0
  370. package/dist/native/p-4eaf417d.entry.js.map +1 -0
  371. package/dist/native/p-5039ceb8.entry.js +2 -0
  372. package/dist/native/p-5039ceb8.entry.js.map +1 -0
  373. package/dist/native/{p-19090193.entry.js → p-647a0765.entry.js} +2 -2
  374. package/dist/native/p-68dc02be.entry.js +2 -0
  375. package/dist/native/p-68dc02be.entry.js.map +1 -0
  376. package/dist/native/p-6d427897.entry.js +2 -0
  377. package/dist/native/{p-92931ab8.entry.js.map → p-6d427897.entry.js.map} +1 -1
  378. package/dist/native/{p-1504e28b.entry.js → p-701b48a4.entry.js} +2 -2
  379. package/dist/native/p-7c9bf981.entry.js +2 -0
  380. package/dist/native/p-835abdb9.entry.js +2 -0
  381. package/dist/native/{p-f5120223.entry.js.map → p-835abdb9.entry.js.map} +1 -1
  382. package/dist/native/{p-464bb197.entry.js → p-83765537.entry.js} +2 -2
  383. package/dist/native/p-88f9fca5.entry.js +2 -0
  384. package/dist/native/p-88f9fca5.entry.js.map +1 -0
  385. package/dist/native/{p-d2c9247b.entry.js → p-8e423742.entry.js} +3 -3
  386. package/dist/native/{p-d2c9247b.entry.js.map → p-8e423742.entry.js.map} +1 -1
  387. package/dist/native/p-95184ea2.entry.js +2 -0
  388. package/dist/native/p-95184ea2.entry.js.map +1 -0
  389. package/dist/native/p-9613087c.entry.js +2 -0
  390. package/dist/native/{p-2781637d.entry.js.map → p-9613087c.entry.js.map} +1 -1
  391. package/dist/native/{p-94dc9c41.entry.js → p-9d7e099f.entry.js} +2 -2
  392. package/dist/native/p-a2f58133.entry.js +2 -0
  393. package/dist/native/p-a2f58133.entry.js.map +1 -0
  394. package/dist/native/{p-1235c007.entry.js → p-acabac31.entry.js} +2 -2
  395. package/dist/native/p-acada158.entry.js +2 -0
  396. package/dist/native/p-acada158.entry.js.map +1 -0
  397. package/dist/native/{p-e2c99ce2.entry.js → p-b02c896a.entry.js} +2 -2
  398. package/dist/native/p-b06f0e61.entry.js +2 -0
  399. package/dist/native/p-b06f0e61.entry.js.map +1 -0
  400. package/dist/native/p-b4c15f25.entry.js +2 -0
  401. package/dist/native/p-b4c15f25.entry.js.map +1 -0
  402. package/dist/native/{p-74b129e9.entry.js → p-bcf41cd0.entry.js} +2 -2
  403. package/dist/native/p-ce97ce24.entry.js +2 -0
  404. package/dist/native/p-ce97ce24.entry.js.map +1 -0
  405. package/dist/native/p-d0db5e72.entry.js +2 -0
  406. package/dist/native/p-d0db5e72.entry.js.map +1 -0
  407. package/dist/native/p-d45ee8e5.entry.js +2 -0
  408. package/dist/native/{p-6d13a851.entry.js.map → p-d45ee8e5.entry.js.map} +1 -1
  409. package/dist/native/p-d7f444fb.entry.js +2 -0
  410. package/dist/native/p-d7f444fb.entry.js.map +1 -0
  411. package/dist/native/p-d878e90a.entry.js +2 -0
  412. package/dist/native/p-d878e90a.entry.js.map +1 -0
  413. package/dist/native/p-ddc41f1f.entry.js +2 -0
  414. package/dist/native/p-ddc41f1f.entry.js.map +1 -0
  415. package/dist/native/{p-c66565f8.entry.js → p-dfb6b65e.entry.js} +2 -2
  416. package/dist/native/p-f30e0be6.entry.js +2 -0
  417. package/dist/native/p-f30e0be6.entry.js.map +1 -0
  418. package/dist/native/p-f3c73492.entry.js +2 -0
  419. package/dist/native/{p-b32d0a5a.entry.js.map → p-f3c73492.entry.js.map} +1 -1
  420. package/dist/native/{p-9c5d6827.entry.js → p-fa78d8eb.entry.js} +2 -2
  421. package/dist/types/components/nv-accordion/nv-accordion.d.ts +2 -4
  422. package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -8
  423. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +6 -3
  424. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +5 -4
  425. package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +3 -1
  426. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +12 -11
  427. package/dist/types/components/nv-fieldtime/nv-fieldtime.d.ts +1 -0
  428. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  429. package/dist/types/components/nv-menu/nv-menu.d.ts +4 -1
  430. package/dist/types/components/nv-popover/nv-popover.d.ts +10 -8
  431. package/dist/types/components/nv-table/nv-table.d.ts +6 -87
  432. package/dist/types/components/nv-table/nv-table.utils.d.ts +129 -0
  433. package/dist/types/components/nv-table/test/nv-table.utils.test.d.ts +1 -0
  434. package/dist/types/components/nv-togglebuttongroup/nv-togglebuttongroup.d.ts +0 -2
  435. package/dist/types/components.d.ts +3 -208
  436. package/dist/vscode-data.json +18 -41
  437. package/hydrate/index.js +800 -783
  438. package/hydrate/index.mjs +800 -783
  439. package/package.json +6 -10
  440. package/dist/cjs/dom.utils-4d43f69a.js +0 -170
  441. package/dist/cjs/dom.utils-4d43f69a.js.map +0 -1
  442. package/dist/cjs/index-c56424e5.js.map +0 -1
  443. package/dist/cjs/nv-tablecolumn.cjs.entry.js +0 -21
  444. package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +0 -1
  445. package/dist/collection/components/nv-table/nv-table.css +0 -35
  446. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js +0 -6
  447. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.docs.js.map +0 -1
  448. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +0 -52
  449. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +0 -1
  450. package/dist/components/nv-tablecolumn.d.ts +0 -11
  451. package/dist/components/nv-tablecolumn.js +0 -38
  452. package/dist/components/nv-tablecolumn.js.map +0 -1
  453. package/dist/components/p-00cbf2a1.js.map +0 -1
  454. package/dist/components/p-4fc01a78.js.map +0 -1
  455. package/dist/components/p-51876ca1.js.map +0 -1
  456. package/dist/components/p-5d14ba3f.js +0 -88
  457. package/dist/components/p-5d14ba3f.js.map +0 -1
  458. package/dist/components/p-95857e4f.js +0 -191
  459. package/dist/components/p-aff3ed68.js.map +0 -1
  460. package/dist/components/p-cb34aa4f.js +0 -167
  461. package/dist/components/p-cb34aa4f.js.map +0 -1
  462. package/dist/components/p-ee8944f3.js.map +0 -1
  463. package/dist/esm/dom.utils-ac71e0ef.js +0 -167
  464. package/dist/esm/dom.utils-ac71e0ef.js.map +0 -1
  465. package/dist/esm/index-a1936cd0.js.map +0 -1
  466. package/dist/esm/nv-tablecolumn.entry.js +0 -17
  467. package/dist/esm/nv-tablecolumn.entry.js.map +0 -1
  468. package/dist/native/p-0a99c6fb.entry.js +0 -2
  469. package/dist/native/p-0a99c6fb.entry.js.map +0 -1
  470. package/dist/native/p-1ad1bff9.entry.js +0 -2
  471. package/dist/native/p-1ad1bff9.entry.js.map +0 -1
  472. package/dist/native/p-1c83f540.entry.js +0 -2
  473. package/dist/native/p-1c83f540.entry.js.map +0 -1
  474. package/dist/native/p-224b1a01.entry.js +0 -2
  475. package/dist/native/p-224b1a01.entry.js.map +0 -1
  476. package/dist/native/p-234cfa2e.entry.js +0 -2
  477. package/dist/native/p-2781637d.entry.js +0 -2
  478. package/dist/native/p-29df974e.entry.js +0 -2
  479. package/dist/native/p-29f68e07.entry.js +0 -2
  480. package/dist/native/p-45506c37.entry.js +0 -2
  481. package/dist/native/p-45506c37.entry.js.map +0 -1
  482. package/dist/native/p-48774d0c.entry.js +0 -13
  483. package/dist/native/p-48774d0c.entry.js.map +0 -1
  484. package/dist/native/p-4ec61dec.entry.js +0 -2
  485. package/dist/native/p-4ec61dec.entry.js.map +0 -1
  486. package/dist/native/p-5f0776cb.entry.js +0 -2
  487. package/dist/native/p-5f0776cb.entry.js.map +0 -1
  488. package/dist/native/p-6c7a9a21.entry.js +0 -2
  489. package/dist/native/p-6c7a9a21.entry.js.map +0 -1
  490. package/dist/native/p-6cb6679b.entry.js +0 -2
  491. package/dist/native/p-6d13a851.entry.js +0 -2
  492. package/dist/native/p-87784622.entry.js +0 -2
  493. package/dist/native/p-87784622.entry.js.map +0 -1
  494. package/dist/native/p-92931ab8.entry.js +0 -2
  495. package/dist/native/p-9a46baa9.entry.js +0 -2
  496. package/dist/native/p-9a46baa9.entry.js.map +0 -1
  497. package/dist/native/p-a34beedf.entry.js +0 -2
  498. package/dist/native/p-a34beedf.entry.js.map +0 -1
  499. package/dist/native/p-a69dbcef.entry.js +0 -2
  500. package/dist/native/p-a69dbcef.entry.js.map +0 -1
  501. package/dist/native/p-b32d0a5a.entry.js +0 -2
  502. package/dist/native/p-bc01787b.entry.js +0 -2
  503. package/dist/native/p-bc01787b.entry.js.map +0 -1
  504. package/dist/native/p-c7b7ffaf.entry.js +0 -2
  505. package/dist/native/p-cb34aa4f.js +0 -2
  506. package/dist/native/p-cb34aa4f.js.map +0 -1
  507. package/dist/native/p-cea942b9.entry.js +0 -2
  508. package/dist/native/p-cea942b9.entry.js.map +0 -1
  509. package/dist/native/p-d0a33e64.js.map +0 -1
  510. package/dist/native/p-d0ef1bbb.entry.js +0 -2
  511. package/dist/native/p-d0ef1bbb.entry.js.map +0 -1
  512. package/dist/native/p-d882f417.entry.js.map +0 -1
  513. package/dist/native/p-dd023fd6.entry.js +0 -2
  514. package/dist/native/p-dd023fd6.entry.js.map +0 -1
  515. package/dist/native/p-e765a624.entry.js +0 -2
  516. package/dist/native/p-e765a624.entry.js.map +0 -1
  517. package/dist/native/p-f0cbfb3d.entry.js +0 -2
  518. package/dist/native/p-f0cbfb3d.entry.js.map +0 -1
  519. package/dist/native/p-f5120223.entry.js +0 -2
  520. package/dist/native/p-fa177c39.entry.js +0 -2
  521. package/dist/native/p-fa177c39.entry.js.map +0 -1
  522. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.d.ts +0 -13
  523. package/dist/types/components/nv-tablecolumn/nv-tablecolumn.docs.d.ts +0 -4
  524. /package/dist/native/{p-5c697133.entry.js.map → p-112d096c.entry.js.map} +0 -0
  525. /package/dist/native/{p-85f8f11a.entry.js.map → p-230af58a.entry.js.map} +0 -0
  526. /package/dist/native/{p-08322093.entry.js.map → p-44a78545.entry.js.map} +0 -0
  527. /package/dist/native/{p-19090193.entry.js.map → p-647a0765.entry.js.map} +0 -0
  528. /package/dist/native/{p-1504e28b.entry.js.map → p-701b48a4.entry.js.map} +0 -0
  529. /package/dist/native/{p-234cfa2e.entry.js.map → p-7c9bf981.entry.js.map} +0 -0
  530. /package/dist/native/{p-464bb197.entry.js.map → p-83765537.entry.js.map} +0 -0
  531. /package/dist/native/{p-94dc9c41.entry.js.map → p-9d7e099f.entry.js.map} +0 -0
  532. /package/dist/native/{p-1235c007.entry.js.map → p-acabac31.entry.js.map} +0 -0
  533. /package/dist/native/{p-e2c99ce2.entry.js.map → p-b02c896a.entry.js.map} +0 -0
  534. /package/dist/native/{p-74b129e9.entry.js.map → p-bcf41cd0.entry.js.map} +0 -0
  535. /package/dist/native/{p-c66565f8.entry.js.map → p-dfb6b65e.entry.js.map} +0 -0
  536. /package/dist/native/{p-9c5d6827.entry.js.map → p-fa78d8eb.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-a1936cd0.js';
1
+ import { r as registerInstance, h, H as Host } from './index-dc2723f3.js';
2
2
 
3
3
  const nvRowCss = "nv-row{display:flex;flex-wrap:wrap;margin-right:calc(var(--spacing-4) * -1);margin-left:calc(var(--spacing-4) * -1);row-gap:var(--spacing-4)}";
4
4
  const NvRowStyle0 = nvRowCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, H as Host } from './index-a1936cd0.js';
1
+ import { r as registerInstance, h, H as Host } from './index-dc2723f3.js';
2
2
  import { c as clsx } from './clsx-297c1ffe.js';
3
3
 
4
4
  const nvStackCss = "nv-stack{display:flex;align-items:center;justify-content:flex-start;flex-direction:row}nv-stack nv-col{display:flex}nv-stack:not(nv-row){flex-wrap:nowrap}nv-stack>.nv-stack-item-flex{flex-shrink:1;flex-grow:1}nv-stack>.nv-stack-item-lead{margin-right:auto}nv-stack>.nv-stack-item-lead+*{margin-left:0}nv-stack>.nv-stack-item-center{margin-right:auto;margin-left:auto}nv-stack>.nv-stack-item-tail{margin-left:auto}nv-stack>.nv-stack-nowrap{white-space:nowrap}nv-stack.nv-stack-vertical{align-items:stretch;flex-direction:column}nv-stack.nv-stack-vertical>.nv-stack-item-lead{margin-right:0;margin-bottom:auto}nv-stack.nv-stack-vertical>.nv-stack-item-lead+*{margin-top:0}nv-stack.nv-stack-vertical>.nv-stack-item-tail{margin-left:0;margin-top:auto}nv-stack.nv-stack-vertical>.nv-stack-item-center{margin:auto 0}nv-stack.nv-stack-flex>*{flex-shrink:1;flex-grow:1}nv-stack.nv-stack-fill>*{height:100%}nv-stack.nv-stack-fill.nv-stack-vertical>*{height:auto;width:100%}";
@@ -1,334 +1,240 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a1936cd0.js';
2
- import { d as deepCopyElement, e as excludedProps } from './dom.utils-ac71e0ef.js';
1
+ import { r as registerInstance, h, H as Host, g as getElement } from './index-dc2723f3.js';
3
2
 
4
- const nvTableCss = "nv-table{display:block}nv-table .hidden{display:none}nv-table table{border-collapse:collapse;border-color:inherit;text-indent:0;width:100%}nv-table th{text-align:left;border-bottom:1px solid var(--components-datagrid-header-border);height:var(--spacing-12);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-md);font-weight:700;color:var(--components-datagrid-header-text)}nv-table td{border-bottom:1px solid var(--components-datagrid-body-border);height:var(--spacing-12);max-height:var(--spacing-14);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-md);font-weight:400;color:var(--components-datagrid-body-text);white-space:nowrap;text-overflow:ellipsis}nv-table tbody>tr:hover{background:var(--color-interaction-container-neutral-background-hover)}";
3
+ /**
4
+ * Table utility functions and constants for nv-table component
5
+ *
6
+ * This module contains pure utility functions for table column resizing logic,
7
+ * pointer event handling calculations, and related helper functions.
8
+ */
9
+ /**
10
+ * Constants for table column resizing behavior
11
+ */
12
+ const TABLE_CONSTANTS = Object.freeze({
13
+ /** Handle width for fine pointers (mouse) in pixels */
14
+ HANDLE_W: 12,
15
+ /** Handle width for coarse pointers (touch) in pixels */
16
+ HANDLE_W_TOUCH: 24,
17
+ /** Minimum column width in pixels */
18
+ MIN_W: 40,
19
+ });
20
+ /**
21
+ * Determines the appropriate handle width based on the current pointer type
22
+ * @returns {number} Handle width in pixels (10px for fine pointers, 24px for coarse/touch)
23
+ */
24
+ function getHandleWidthForCurrentPointer() {
25
+ // Match the CSS media query: wider handle on coarse pointers (touch)
26
+ return matchMedia('(pointer: coarse)').matches
27
+ ? TABLE_CONSTANTS.HANDLE_W_TOUCH
28
+ : TABLE_CONSTANTS.HANDLE_W;
29
+ }
30
+ /**
31
+ * Calculates the pointer's horizontal offset within a table cell
32
+ * @param {PointerEvent} event - The pointer event
33
+ * @param {HTMLTableCellElement} cell - The table cell element
34
+ * @returns {number} The horizontal offset from the left edge of the cell
35
+ */
36
+ function getPointerOffsetInCell(event, cell) {
37
+ const rect = cell.getBoundingClientRect();
38
+ return event.clientX - rect.left;
39
+ }
40
+ /**
41
+ * Determines if the pointer is within the resize handle area of a table cell
42
+ * @param {number} offsetX - Horizontal offset within the cell
43
+ * @param {number} cellWidth - Total width of the cell
44
+ * @param {number} handleWidth - Width of the resize handle area
45
+ * @returns {boolean} True if the pointer is in the resize handle area
46
+ */
47
+ function isInResizeHandle(offsetX, cellWidth, handleWidth) {
48
+ return offsetX >= cellWidth - handleWidth;
49
+ }
50
+ /**
51
+ * Calculates the new column width based on resize delta and constraints
52
+ * @param {number} startWidth - Original width of the column
53
+ * @param {number} delta - Change in pixels from the start position
54
+ * @param {number} minWidth - Minimum allowed width for the column
55
+ * @returns {number} The calculated new width, constrained by minimum
56
+ */
57
+ function calculateNewWidth(startWidth, delta, minWidth = TABLE_CONSTANTS.MIN_W) {
58
+ return Math.max(minWidth, startWidth + delta);
59
+ }
60
+ /**
61
+ * Validates that a table cell element is suitable for resizing
62
+ * @param {HTMLElement | null} element - The element to check
63
+ * @returns {element is HTMLTableCellElement} Type guard for table cell elements
64
+ */
65
+ function isValidTableCell(element) {
66
+ return (element === null || element === void 0 ? void 0 : element.tagName) === 'TH' || (element === null || element === void 0 ? void 0 : element.tagName) === 'TD';
67
+ }
68
+ /**
69
+ * Finds the closest table cell element from an event target
70
+ * @param {EventTarget | null} target - The event target
71
+ * @returns {HTMLTableCellElement | null} The closest table cell or null
72
+ */
73
+ function getClosestTableCell(target) {
74
+ if (!(target instanceof HTMLElement))
75
+ return null;
76
+ const cell = target.closest('th, td');
77
+ return isValidTableCell(cell) ? cell : null;
78
+ }
79
+ /**
80
+ * Sets up pointer capture for consistent drag behavior across browsers
81
+ * @param {HTMLTableCellElement} cell - The table cell element
82
+ * @param {number} pointerId - The pointer ID from the pointer event
83
+ * @returns {boolean} True if capture was successfully set
84
+ */
85
+ function setPointerCapture(cell, pointerId) {
86
+ var _a;
87
+ try {
88
+ (_a = cell.setPointerCapture) === null || _a === void 0 ? void 0 : _a.call(cell, pointerId);
89
+ return true;
90
+ }
91
+ catch (_b) {
92
+ return false;
93
+ }
94
+ }
95
+ /**
96
+ * Releases pointer capture
97
+ * @param {HTMLTableCellElement} cell - The table cell element
98
+ * @param {number} pointerId - The pointer ID from the pointer event
99
+ * @returns {boolean} True if release was successful
100
+ */
101
+ function releasePointerCapture(cell, pointerId) {
102
+ var _a;
103
+ try {
104
+ (_a = cell.releasePointerCapture) === null || _a === void 0 ? void 0 : _a.call(cell, pointerId);
105
+ return true;
106
+ }
107
+ catch (_b) {
108
+ return false;
109
+ }
110
+ }
111
+ /**
112
+ * Prevents text selection during drag operations
113
+ * @param {boolean} prevent - Whether to prevent selection
114
+ */
115
+ function setUserSelectPrevention(prevent) {
116
+ document.body.style.userSelect = prevent ? 'none' : '';
117
+ }
118
+ /**
119
+ * Gets the current width of a table cell element
120
+ * @param {HTMLTableCellElement} cell - The table cell element
121
+ * @returns {number} The current width in pixels
122
+ */
123
+ function getCellWidth(cell) {
124
+ return cell.offsetWidth;
125
+ }
126
+ /**
127
+ * Applies a width to a table cell element
128
+ * @param {HTMLTableCellElement} cell - The table cell element
129
+ * @param {number} width - The width to apply in pixels
130
+ */
131
+ function setCellWidth(cell, width) {
132
+ cell.style.width = `${width}px`;
133
+ }
134
+ /**
135
+ * Calculates the delta (change) in horizontal position between two pointer events
136
+ * @param {number} currentX - Current clientX position
137
+ * @param {number} startX - Starting clientX position
138
+ * @returns {number} The horizontal delta
139
+ */
140
+ function calculatePointerDelta(currentX, startX) {
141
+ return currentX - startX;
142
+ }
143
+ /**
144
+ * Creates a new resize state object
145
+ * @param {HTMLTableCellElement} cell - The cell being resized
146
+ * @param {PointerEvent} event - The initiating pointer event
147
+ * @returns {ResizeState} A new resize state object
148
+ */
149
+ function createResizeState(cell, event) {
150
+ return {
151
+ resizingCell: cell,
152
+ pointerId: event.pointerId,
153
+ startX: event.clientX,
154
+ startWidth: getCellWidth(cell),
155
+ };
156
+ }
157
+ /**
158
+ * Validates that a resize state is active and matches the given pointer event
159
+ * @param {ResizeState | null} state - The current resize state
160
+ * @param {PointerEvent} event - The pointer event to validate against
161
+ * @returns {boolean} True if the state is valid for this event
162
+ */
163
+ function isValidResizeState(state, event) {
164
+ return state !== null && state.pointerId === event.pointerId;
165
+ }
166
+ /**
167
+ * Updates the width of a cell during a resize operation
168
+ * @param {ResizeState} state - The current resize state
169
+ * @param {PointerEvent} event - The current pointer event
170
+ * @param {number} minWidth - Minimum width constraint
171
+ */
172
+ function updateCellWidthFromResize(state, event, minWidth = TABLE_CONSTANTS.MIN_W) {
173
+ const delta = calculatePointerDelta(event.clientX, state.startX);
174
+ const newWidth = calculateNewWidth(state.startWidth, delta, minWidth);
175
+ setCellWidth(state.resizingCell, newWidth);
176
+ }
177
+
178
+ const nvTableCss = "nv-table table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;background:var(--color-level-00-background)}nv-table table thead{background:var(--components-datagrid-header-background)}nv-table table tbody tr:hover td{background:var(--components-datagrid-body-background-hover)}nv-table table tbody tr[data-selected]{background:var(--components-datagrid-body-background-active)}nv-table table td{height:var(--spacing-16);padding:var(--datagrid-cell-body-padding-y) var(--datagrid-cell-body-padding-x) var(--spacing-2) var(--datagrid-cell-body-padding-x);font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-low-emphasis);line-height:var(--line-height-base);background:var(--components-datagrid-body-background-default);border-bottom:1px solid var(--components-datagrid-body-border)}nv-table table th{position:relative;text-align:left;padding:var(--datagrid-cell-header-padding-y) var(--datagrid-cell-header-padding-right) var(--datagrid-cell-header-padding-y) var(--datagrid-cell-header-padding-x);padding-right:calc(var(--datagrid-cell-header-padding-right) + 12px);color:var(--color-content-low-text);font-variant-numeric:lining-nums tabular-nums slashed-zero;font-size:var(--font-size-md);font-style:normal;font-weight:var(--font-weight-high-emphasis);line-height:var(--line-height-base);min-width:40px;border-bottom:1px solid var(--components-datagrid-header-border);background:var(--components-datagrid-header-background)}nv-table table th::after{content:\"\";position:absolute;top:0;right:0;width:12px;height:50%;transform:translateY(50%);cursor:col-resize;background:linear-gradient(90deg, transparent 0%, transparent calc(50% - 1px), var(--components-datagrid-header-border), calc(50% - 1px), var(--components-datagrid-header-border) calc(50% + 1px), transparent calc(50% + 1px), transparent 100%);opacity:0;transition:opacity 0.05s ease-in-out}nv-table table th[data-grow]{width:unset}nv-table table th:hover::after{opacity:1}nv-table table th[data-no-resize]::after{display:none}nv-table [data-sticky-left]{position:sticky;z-index:1;background:var(--color-level-00-background);left:0;top:0}nv-table [data-sticky-right]{position:sticky;z-index:1;background:var(--color-level-00-background);right:0;top:0}nv-table [data-sticky-top] th{position:sticky;z-index:1;background:var(--color-level-00-background);top:0}";
5
179
  const NvTableStyle0 = nvTableCss;
6
180
 
7
181
  const NvTable = class {
8
182
  constructor(hostRef) {
9
183
  registerInstance(this, hostRef);
10
- this.action = createEvent(this, "action", 7);
11
- this.templateCache = new Map();
12
- this.headerTemplateCache = new Map();
13
- /****************************************************************************/
14
- //#region STATES
15
- this.parsedColumns = [];
16
- this.parsedData = [];
17
- this.table = null;
18
- //#endregion STATES
19
- /****************************************************************************/
20
- //#region PROPERTIES
21
- /**
22
- * Data to be displayed in the table
23
- */
24
- this.data = [];
25
- /**
26
- * Configuration of the columns of the table
27
- */
28
- this.columnsConfig = [];
29
- /**
30
- * Fallback value to be displayed when data is not available
31
- */
32
- this.fallbackValue = 'N/A';
33
- /**
34
- * Message to be displayed when no data is available
35
- */
36
- this.noDataMessage = 'No data available';
37
- /**
38
- * The message to display when there are no columns or data available.
39
- * @default 'No data or columns available to display.'
40
- */
41
- this.noColumnsNoDataMessage = 'No data or columns available to display.';
184
+ this.resizeState = null;
42
185
  }
186
+ /****************************************************************************/
187
+ //#region PROPERTIES
43
188
  //#endregion PROPERTIES
44
189
  /****************************************************************************/
45
190
  //#region METHODS
46
- /**
47
- * Caches templates for cells and headers upfront to improve performance.
48
- */
49
- cacheTemplates() {
50
- const columns = Array.from(this.el.querySelectorAll('nv-tablecolumn'));
51
- columns.forEach((col) => {
52
- const key = col.name;
53
- const cellSlot = col.querySelector('[slot="cell"]');
54
- if (cellSlot) {
55
- const element = deepCopyElement(cellSlot);
56
- this.templateCache.set(key, element);
57
- }
58
- const headerSlot = col.querySelector('[slot="header"]');
59
- if (headerSlot) {
60
- const element = deepCopyElement(headerSlot);
61
- this.headerTemplateCache.set(key, element);
62
- }
63
- else {
64
- const header = col.header;
65
- if (header) {
66
- const headerDiv = document.createElement('div');
67
- headerDiv.textContent = header;
68
- this.headerTemplateCache.set(key, headerDiv);
69
- }
70
- }
71
- });
72
- }
73
- parseDataAndColumns() {
74
- if (this.dataJson) {
75
- this.parseJsonData(this.dataJson);
76
- }
77
- else if (this.data && this.data.length > 0) {
78
- this.parseDataArray(this.data, this.parsedData);
79
- }
80
- if (this.columnsConfigJson) {
81
- this.parseJsonColumns(this.columnsConfigJson, this.parsedColumns);
82
- }
83
- else if (this.columnsConfig && this.columnsConfig.length > 0) {
84
- this.parseColumnsArray(this.columnsConfig, this.parsedColumns);
85
- }
86
- else if (this.headerTemplateCache.size > 0) {
87
- const headerKeys = Array.from(this.headerTemplateCache.keys());
88
- const arrayColumnsConfig = headerKeys.map(key => (Object.assign({}, { name: key, header: key ? key.charAt(0).toUpperCase() + key.slice(1) : '' })));
89
- this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);
90
- }
91
- else if (this.parsedData.length > 0) {
92
- const firstRow = this.parsedData[0];
93
- const arrayColumnsConfig = Object.keys(firstRow).map(key => ({
94
- name: key,
95
- header: key.charAt(0).toUpperCase() + key.slice(1),
96
- }));
97
- this.parseColumnsArray(arrayColumnsConfig, this.parsedColumns);
98
- }
99
- }
100
- deepEqual(a, b) {
101
- return JSON.stringify(a) === JSON.stringify(b);
102
- }
103
- /**
104
- * Parses the data array and sets the state accordingly
105
- * @param {any[]} newValue - New value of the data array
106
- * @param {any[]} oldValue - Old value of the data array
107
- * @returns {void}
108
- */
109
- parseDataArray(newValue, oldValue) {
110
- // Ensure both are arrays for proper comparison
111
- const safeNewValue = Array.isArray(newValue) ? newValue : [];
112
- const safeOldValue = Array.isArray(oldValue) ? oldValue : [];
113
- if (this.deepEqual(safeNewValue, safeOldValue)) {
114
- return; // Deep comparison
115
- }
116
- this.parsedData = Array.isArray(newValue) ? newValue : [];
117
- }
118
- /**
119
- * Parses the columns array and sets the state accordingly
120
- * @param {ColumnConfig[]} newValue - New value of the columns array
121
- * @param {ColumnConfig[]} oldValue - Old value of the columns array
122
- * @returns {void}
123
- */
124
- parseColumnsArray(newValue, oldValue) {
125
- // Ensure both are arrays for proper comparison
126
- const safeNewValue = Array.isArray(newValue) ? newValue : [];
127
- const safeOldValue = Array.isArray(oldValue) ? oldValue : [];
128
- // Use a proper deep comparison function (e.g., Lodash's isEqual)
129
- if (this.deepEqual(safeNewValue, safeOldValue)) {
130
- return;
131
- }
132
- // Assign only after confirming changes
133
- this.parsedColumns = safeNewValue;
134
- }
135
- initializeTable() {
136
- // Clear the previous table instance (if any)
137
- this.table = null;
138
- if (this.parsedColumns.length > 0) {
139
- this.table = {
140
- columns: this.parsedColumns,
141
- data: this.getTableData(),
142
- };
143
- }
144
- else {
145
- this.table = null;
146
- }
147
- }
148
- getTableData() {
149
- if (this.parsedData &&
150
- Array.isArray(this.parsedData) &&
151
- this.parsedData.length > 0) {
152
- return [...this.parsedData];
153
- }
154
- else {
155
- return [];
156
- }
157
- }
158
- // Helper function to get nested property value
159
- replaceKeyWithValue(obj, path) {
160
- var _a;
161
- return ((_a = path
162
- .split('.')
163
- .reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined), obj)) !== null && _a !== void 0 ? _a : this.fallbackValue);
164
- }
165
- renderTemplate(template, row) {
166
- if (!template) {
167
- return null;
168
- }
169
- // Handle <template> elements correctly
170
- const templateContent = template instanceof HTMLTemplateElement ? template.content : template;
171
- const element = deepCopyElement(templateContent);
172
- // Replace placeholders in text content, attributes, and properties
173
- element.querySelectorAll('*').forEach(el => {
174
- // Replace placeholders in text content
175
- this.replacePlaceholdersTextContent(el, row);
176
- // Replace placeholders in attributes
177
- this.replacePlaceholdersAttributes(el, row);
178
- // Replace placeholders in properties
179
- this.replacePlaceholdersProperties(el, row);
180
- });
181
- // Handle `data-bind-event`
182
- element.querySelectorAll('[data-bind-event]').forEach(el => {
183
- const bindEvent = el.getAttribute('data-bind-event') || '';
184
- const splitted = bindEvent.split(':');
185
- if (!bindEvent.includes(':') || splitted.length < 2) {
186
- console.warn('Invalid data-bind-event format:', bindEvent);
187
- return;
188
- }
189
- const eventType = splitted[0];
190
- const keyAction = splitted[1];
191
- const details = splitted.length > 2 ? splitted[2] : null;
192
- el.addEventListener(eventType, () => {
193
- var _a;
194
- const keys = (_a = details === null || details === void 0 ? void 0 : details.split(',')) !== null && _a !== void 0 ? _a : [];
195
- // Convert keys into a single object instead of an array of objects
196
- const keyValue = keys.reduce((acc, key) => {
197
- acc[key] = row === null || row === void 0 ? void 0 : row[key];
198
- return acc;
199
- }, {});
200
- const action = { keyAction, details: keyValue };
201
- this.action.emit(action);
202
- });
203
- });
204
- // Ensure Web Components are properly connected
205
- setTimeout(() => {
206
- element.querySelectorAll('*').forEach(child => {
207
- if (typeof child.connectedCallback === 'function') {
208
- child.connectedCallback();
209
- }
210
- });
211
- }, 0);
212
- return (h("div", { ref: el => {
213
- if (el) {
214
- el.innerHTML = ''; // Remove existing content
215
- el.appendChild(element); // Append new element
216
- }
217
- } }));
218
- }
219
- replacePlaceholdersTextContent(element, row) {
220
- // ✅ Replace placeholders in text content
221
- element.childNodes.forEach(node => {
222
- if (node.nodeType === Node.TEXT_NODE) {
223
- node.textContent = node.textContent.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(row, key));
224
- }
225
- });
226
- }
227
- replacePlaceholdersAttributes(element, row) {
228
- // ✅ Replace placeholders in attributes
229
- Array.from(element.attributes).forEach(attr => {
230
- if (attr.value.includes('__')) {
231
- attr.value = attr.value.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(row, key));
232
- }
233
- });
234
- }
235
- replacePlaceholdersProperties(element, row) {
236
- // ✅ Dynamically extract relevant properties
237
- const properties = new Set();
238
- // Collect only own enumerable properties
239
- Object.keys(element).forEach(key => properties.add(key));
240
- // Collect inherited properties from prototypes (HTMLElement -> Element -> Node)
241
- let proto = Object.getPrototypeOf(element);
242
- while (proto && proto !== HTMLElement.prototype) {
243
- Object.keys(proto).forEach(key => properties.add(key));
244
- proto = Object.getPrototypeOf(proto);
245
- }
246
- // ✅ Filter and copy only non-function properties and exclude irrelevant ones
247
- properties.forEach(prop => {
248
- if (typeof element[prop] !== 'function' && // Ignore methods
249
- !prop.startsWith('on') && // Ignore event listeners (onclick, oninput, etc.)
250
- !excludedProps.has(prop) // 🚨 Prevent text duplication and irrelevant props
251
- ) {
252
- try {
253
- const value = element[prop];
254
- // ✅ Replace placeholders only if the value is a string
255
- if (typeof value === 'string' && value.includes('__')) {
256
- element[prop] = value.replace(/__([\w.]+)__/g, (_, key) => this.replaceKeyWithValue(row, key)); // ✅ TypeScript safe
257
- }
258
- }
259
- catch (error) {
260
- console.warn(`Could not assign property ${prop}:`, error.message);
261
- }
262
- }
263
- });
264
- }
265
191
  //#endregion METHODS
266
192
  /****************************************************************************/
267
- //#region WATCHERS
268
- parseColumns(newValue, oldValue) {
269
- this.parseColumnsArray(newValue, oldValue);
270
- }
271
- parseJsonColumns(newValue, oldValue) {
272
- try {
273
- const newItems = newValue ? JSON.parse(newValue) : [];
274
- this.parseColumnsArray(newItems, oldValue);
275
- }
276
- catch (e) {
277
- console.error('Invalid JSON format for columnsConfigJson:', e.message);
278
- this.parsedColumns = [];
279
- }
280
- }
281
- parseData(newValue, oldValue) {
282
- this.parseDataArray(newValue, oldValue);
283
- }
284
- parseJsonData(newValue) {
285
- try {
286
- const newItems = newValue ? JSON.parse(newValue) : [];
287
- this.parseDataArray(newItems, this.parsedData);
288
- }
289
- catch (e) {
290
- console.error('Invalid JSON format for dataJson:', e.message);
291
- this.parsedData = [];
292
- }
193
+ //#region LISTENERS
194
+ onPointerDown(ev) {
195
+ const th = getClosestTableCell(ev.target);
196
+ if (!th)
197
+ return;
198
+ // Skip resize if the cell has data-no-resize attribute
199
+ if (th.hasAttribute('data-no-resize'))
200
+ return;
201
+ const offsetX = getPointerOffsetInCell(ev, th);
202
+ const handleWidth = getHandleWidthForCurrentPointer();
203
+ const cellWidth = getCellWidth(th);
204
+ // Start only if we're in the resize handle area
205
+ if (!isInResizeHandle(offsetX, cellWidth, handleWidth))
206
+ return;
207
+ this.resizeState = createResizeState(th, ev);
208
+ // Capture so move/up still fire even if the finger leaves the th
209
+ setPointerCapture(th, ev.pointerId);
210
+ // Prevent scrolling/selection during drag
211
+ setUserSelectPrevention(true);
212
+ }
213
+ onPointerMove(ev) {
214
+ if (!isValidResizeState(this.resizeState, ev))
215
+ return;
216
+ updateCellWidthFromResize(this.resizeState, ev, TABLE_CONSTANTS.MIN_W);
293
217
  }
294
- handleParsedChange() {
295
- this.initializeTable();
218
+ onPointerUp(ev) {
219
+ if (!isValidResizeState(this.resizeState, ev))
220
+ return;
221
+ releasePointerCapture(this.resizeState.resizingCell, this.resizeState.pointerId);
222
+ this.resizeState = null;
223
+ setUserSelectPrevention(false);
296
224
  }
297
- //#endregion WATCHERS
225
+ //#endregion LISTENERS
298
226
  /****************************************************************************/
299
227
  //#region LIFECYCLE
300
- componentWillLoad() {
301
- this.cacheTemplates();
302
- this.parseDataAndColumns();
303
- }
228
+ //#endregion LIFECYCLE
229
+ /****************************************************************************/
230
+ //#region EVENTS
304
231
  //#endregion EVENTS
305
232
  /****************************************************************************/
306
233
  //#region RENDER
307
234
  render() {
308
- const headerGroups = !this.table || this.table === undefined || this.parsedColumns.length === 0
309
- ? []
310
- : this.table.columns;
311
- const rows = !this.table || this.table === undefined || this.parsedData.length === 0
312
- ? []
313
- : this.table.data;
314
- return (h(Host, { key: '08082f0800c32a59606968aa2a80cfa3c2f07960' }, h("div", { key: 'f55f5409f45d90ef072abb09006ef6366e7e8c95', class: "hidden" }, h("slot", { key: '0b5326e8c7c6f97f419819744a132335d4435bb4' })), h("slot", { key: '07d4538957b466ed332cd598e2c132d85a801979', name: "before" }), this.parsedColumns.length === 0 && this.parsedData.length === 0 ? (h("div", { class: "no-data" }, this.noColumnsNoDataMessage)) : (h("table", { class: "table" }, this.parsedColumns.length > 0 && headerGroups.length > 0 && (h("thead", { class: "table-header" }, h("tr", null, headerGroups &&
315
- headerGroups.map(col => {
316
- return (h("th", { key: col.name }, this.renderTemplate(this.headerTemplateCache.get(col.name), {}) || col.header));
317
- })))), h("tbody", { class: "table-body" }, !rows || rows.length === 0 ? (h("tr", null, h("td", { colSpan: headerGroups.length || 12, class: "no-data" }, this.noDataMessage))) : (rows.map(row => (h("tr", { key: JSON.stringify(row) }, headerGroups.map(col => {
318
- var _a;
319
- return (h("td", null, this.renderTemplate(this.templateCache.get(col.name), row) ||
320
- ((_a = row[col.name]) !== null && _a !== void 0 ? _a : this.fallbackValue)));
321
- })))))))), h("slot", { key: '1f505261da2c2e05511940ec90f7375981cb0823', name: "after" })));
235
+ return (h(Host, { key: 'b63510e2da93a1b98eb3813ba7ac9bed97b81c1f' }, h("slot", { key: '14fb76c397db4da5dfba94bce599d1e4d8992a6b' })));
322
236
  }
323
- get el() { return getElement(this); }
324
- static get watchers() { return {
325
- "columnsConfig": ["parseColumns"],
326
- "columnsConfigJson": ["parseJsonColumns"],
327
- "data": ["parseData"],
328
- "dataJson": ["parseJsonData"],
329
- "parsedColumns": ["handleParsedChange"],
330
- "parsedData": ["handleParsedChange"]
331
- }; }
237
+ get host() { return getElement(this); }
332
238
  };
333
239
  NvTable.style = NvTableStyle0;
334
240