@nova-design-system/nova-webcomponents 3.26.0 → 3.28.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 (468) hide show
  1. package/dist/cjs/{index-BQjqJTJB.js → index-Cfkoz1kc.js} +17 -1
  2. package/dist/cjs/index.cjs.js +6 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/native.cjs.js +2 -2
  5. package/dist/cjs/nova-datetime-DOtVgYBB.js +10643 -0
  6. package/dist/cjs/nv-accordion-item.cjs.entry.js +1 -1
  7. package/dist/cjs/nv-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/nv-alert.cjs.entry.js +1 -1
  9. package/dist/cjs/nv-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/nv-badge_2.cjs.entry.js +2 -2
  11. package/dist/cjs/nv-breadcrumb.cjs.entry.js +1 -1
  12. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +1 -1
  13. package/dist/cjs/nv-button.cjs.entry.js +1 -1
  14. package/dist/cjs/nv-buttongroup.cjs.entry.js +1 -1
  15. package/dist/cjs/nv-calendar.cjs.entry.js +1 -1
  16. package/dist/cjs/nv-col.cjs.entry.js +1 -1
  17. package/dist/cjs/nv-datagrid.cjs.entry.js +1 -1
  18. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -1
  19. package/dist/cjs/nv-datetest.cjs.entry.js +66 -0
  20. package/dist/cjs/nv-datetimetest.cjs.entry.js +54 -0
  21. package/dist/cjs/nv-dialog.cjs.entry.js +16 -3
  22. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +3 -3
  23. package/dist/cjs/nv-drawer.cjs.entry.js +2 -2
  24. package/dist/cjs/nv-drawerfooter_2.cjs.entry.js +3 -3
  25. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +5 -5
  26. package/dist/cjs/nv-fielddate.cjs.entry.js +7 -7
  27. package/dist/cjs/nv-fielddaterange.cjs.entry.js +7 -7
  28. package/dist/cjs/nv-fielddropdown.cjs.entry.js +5 -5
  29. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -2
  30. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +1 -1
  31. package/dist/cjs/nv-fieldnumber.cjs.entry.js +5 -5
  32. package/dist/cjs/nv-fieldpassword.cjs.entry.js +5 -5
  33. package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
  34. package/dist/cjs/nv-fieldselect.cjs.entry.js +6 -6
  35. package/dist/cjs/nv-fieldslider.cjs.entry.js +4 -4
  36. package/dist/cjs/nv-fieldtext.cjs.entry.js +5 -5
  37. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +4 -4
  38. package/dist/cjs/nv-fieldtime.cjs.entry.js +4 -4
  39. package/dist/cjs/nv-icon.cjs.entry.js +3 -3
  40. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +3 -3
  41. package/dist/cjs/nv-menu.cjs.entry.js +2 -2
  42. package/dist/cjs/nv-menuitem.cjs.entry.js +2 -2
  43. package/dist/cjs/nv-notification-bullet.cjs.entry.js +1 -1
  44. package/dist/cjs/nv-notification.cjs.entry.js +2 -2
  45. package/dist/cjs/nv-notificationcontainer.cjs.entry.js +2 -14
  46. package/dist/cjs/nv-pagination-nav.cjs.entry.js +198 -0
  47. package/dist/cjs/nv-paginationtable.cjs.entry.js +2 -2
  48. package/dist/cjs/nv-popover.cjs.entry.js +2 -2
  49. package/dist/cjs/nv-row.cjs.entry.js +2 -2
  50. package/dist/cjs/nv-sidebar.cjs.entry.js +2 -2
  51. package/dist/cjs/nv-sidebarcontent.cjs.entry.js +2 -2
  52. package/dist/cjs/nv-sidebardivider.cjs.entry.js +2 -2
  53. package/dist/cjs/nv-sidebarfooter.cjs.entry.js +2 -2
  54. package/dist/cjs/nv-sidebargroup.cjs.entry.js +2 -2
  55. package/dist/cjs/nv-sidebarheader.cjs.entry.js +2 -2
  56. package/dist/cjs/nv-sidebarlogo.cjs.entry.js +2 -2
  57. package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +12 -5
  58. package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +2 -2
  59. package/dist/cjs/nv-split.cjs.entry.js +2 -2
  60. package/dist/cjs/nv-stack.cjs.entry.js +2 -2
  61. package/dist/cjs/nv-table.cjs.entry.js +2 -2
  62. package/dist/cjs/nv-tableheader.cjs.entry.js +2 -2
  63. package/dist/cjs/nv-timetest.cjs.entry.js +72 -0
  64. package/dist/cjs/nv-toggle.cjs.entry.js +3 -3
  65. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  66. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +2 -2
  67. package/dist/cjs/nv-tooltip.cjs.entry.js +9 -4
  68. package/dist/collection/collection-manifest.json +4 -0
  69. package/dist/collection/components/nv-accordion/nv-accordion.docs.js +1 -0
  70. package/dist/collection/components/nv-accordion-item/nv-accordion-item.docs.js +69 -1
  71. package/dist/collection/components/nv-alert/nv-alert.docs.js +1 -0
  72. package/dist/collection/components/nv-avatar/nv-avatar.docs.js +1 -0
  73. package/dist/collection/components/nv-badge/nv-badge.docs.js +1 -0
  74. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.docs.js +36 -1
  75. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.docs.js +1 -0
  76. package/dist/collection/components/nv-button/nv-button.docs.js +1 -0
  77. package/dist/collection/components/nv-buttongroup/nv-buttongroup.docs.js +1 -0
  78. package/dist/collection/components/nv-calendar/nv-calendar.docs.js +1 -0
  79. package/dist/collection/components/nv-col/nv-col.docs.js +1 -0
  80. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +1 -0
  81. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.docs.js +25 -1
  82. package/dist/collection/components/nv-datetest/nv-datetest.css +15 -0
  83. package/dist/collection/components/nv-datetest/nv-datetest.docs.js +12 -0
  84. package/dist/collection/components/nv-datetest/nv-datetest.js +242 -0
  85. package/dist/collection/components/nv-datetimetest/nv-datetimetest.css +15 -0
  86. package/dist/collection/components/nv-datetimetest/nv-datetimetest.docs.js +5 -0
  87. package/dist/collection/components/nv-datetimetest/nv-datetimetest.js +197 -0
  88. package/dist/collection/components/nv-dialog/nv-dialog.docs.js +1 -0
  89. package/dist/collection/components/nv-dialog/nv-dialog.js +15 -2
  90. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.docs.js +9 -1
  91. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  92. package/dist/collection/components/nv-dialogheader/nv-dialogheader.docs.js +9 -1
  93. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  94. package/dist/collection/components/nv-drawer/nv-drawer.docs.js +1 -0
  95. package/dist/collection/components/nv-drawer/nv-drawer.js +1 -1
  96. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.docs.js +9 -1
  97. package/dist/collection/components/nv-drawerfooter/nv-drawerfooter.js +1 -1
  98. package/dist/collection/components/nv-drawerheader/nv-drawerheader.docs.js +9 -1
  99. package/dist/collection/components/nv-drawerheader/nv-drawerheader.js +1 -1
  100. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.docs.js +1 -0
  101. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +4 -4
  102. package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +1 -0
  103. package/dist/collection/components/nv-fielddate/nv-fielddate.js +6 -6
  104. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +1 -0
  105. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +6 -6
  106. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.docs.js +1 -0
  107. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +4 -4
  108. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.docs.js +54 -1
  109. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  110. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.docs.js +42 -1
  111. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +1 -1
  112. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +1 -0
  113. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +1 -0
  114. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +4 -4
  115. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +1 -0
  116. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +4 -4
  117. package/dist/collection/components/nv-fieldradio/nv-fieldradio.docs.js +1 -0
  118. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +3 -3
  119. package/dist/collection/components/nv-fieldselect/nv-fieldselect.docs.js +1 -0
  120. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +5 -5
  121. package/dist/collection/components/nv-fieldslider/nv-fieldslider.docs.js +1 -0
  122. package/dist/collection/components/nv-fieldslider/nv-fieldslider.js +3 -3
  123. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +1 -0
  124. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +4 -4
  125. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.docs.js +1 -0
  126. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +3 -3
  127. package/dist/collection/components/nv-fieldtime/nv-fieldtime.docs.js +1 -0
  128. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +3 -3
  129. package/dist/collection/components/nv-icon/nv-icon.docs.js +1 -0
  130. package/dist/collection/components/nv-icon/nv-icon.js +1 -1
  131. package/dist/collection/components/nv-icon/nv-icons.js +4 -0
  132. package/dist/collection/components/nv-iconbutton/nv-iconbutton.docs.js +1 -0
  133. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +1 -1
  134. package/dist/collection/components/nv-loader/nv-loader.docs.js +1 -0
  135. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  136. package/dist/collection/components/nv-menu/nv-menu.docs.js +1 -0
  137. package/dist/collection/components/nv-menu/nv-menu.js +1 -1
  138. package/dist/collection/components/nv-menuitem/nv-menuitem.docs.js +20 -1
  139. package/dist/collection/components/nv-menuitem/nv-menuitem.js +2 -2
  140. package/dist/collection/components/nv-notification/nv-notification.docs.js +1 -0
  141. package/dist/collection/components/nv-notification/nv-notification.js +1 -1
  142. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js +1 -0
  143. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.docs.js +24 -1
  144. package/dist/collection/components/nv-notificationcontainer/nv-notificationcontainer.js +1 -15
  145. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.css +37 -0
  146. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.docs.js +278 -0
  147. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.js +359 -0
  148. package/dist/collection/components/nv-pagination-nav/nv-pagination-nav.utils.js +70 -0
  149. package/dist/collection/components/nv-pagination-nav/test/nv-pagination-nav.utils.test.js +66 -0
  150. package/dist/collection/components/nv-paginationtable/nv-paginationtable.docs.js +1 -0
  151. package/dist/collection/components/nv-paginationtable/nv-paginationtable.js +1 -1
  152. package/dist/collection/components/nv-popover/nv-popover.docs.js +1 -0
  153. package/dist/collection/components/nv-popover/nv-popover.js +1 -1
  154. package/dist/collection/components/nv-row/nv-row.docs.js +1 -0
  155. package/dist/collection/components/nv-row/nv-row.js +1 -1
  156. package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js +1 -0
  157. package/dist/collection/components/nv-sidebar/nv-sidebar.js +1 -1
  158. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.docs.js +14 -1
  159. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js +1 -1
  160. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.docs.js +15 -1
  161. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js +1 -1
  162. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.docs.js +9 -1
  163. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js +1 -1
  164. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.docs.js +15 -1
  165. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js +1 -1
  166. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.docs.js +9 -1
  167. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js +1 -1
  168. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.docs.js +10 -1
  169. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js +3 -1
  170. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.docs.js +16 -1
  171. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js +12 -5
  172. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.docs.js +15 -1
  173. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +1 -1
  174. package/dist/collection/components/nv-split/nv-split.docs.js +1 -0
  175. package/dist/collection/components/nv-split/nv-split.js +1 -1
  176. package/dist/collection/components/nv-stack/nv-stack.docs.js +1 -0
  177. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  178. package/dist/collection/components/nv-table/nv-table.docs.js +1 -0
  179. package/dist/collection/components/nv-table/nv-table.js +1 -1
  180. package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js +1 -0
  181. package/dist/collection/components/nv-tableheader/nv-tableheader.js +1 -1
  182. package/dist/collection/components/nv-timetest/nv-timetest.css +15 -0
  183. package/dist/collection/components/nv-timetest/nv-timetest.docs.js +5 -0
  184. package/dist/collection/components/nv-timetest/nv-timetest.js +248 -0
  185. package/dist/collection/components/nv-toggle/nv-toggle.docs.js +1 -0
  186. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  187. package/dist/collection/components/nv-togglebutton/nv-togglebutton.docs.js +48 -1
  188. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  189. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.docs.js +1 -0
  190. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  191. package/dist/collection/components/nv-tooltip/nv-tooltip.docs.js +1 -0
  192. package/dist/collection/components/nv-tooltip/nv-tooltip.js +8 -3
  193. package/dist/collection/index.js +3 -0
  194. package/dist/collection/interfaces/dates.js +1 -0
  195. package/dist/collection/utils/nova-datetime.js +144 -0
  196. package/dist/collection/utils/test/nova-datetime.test.js +230 -0
  197. package/dist/components/index.js +1 -1
  198. package/dist/components/nv-accordion-item.js +1 -1
  199. package/dist/components/nv-accordion.js +1 -1
  200. package/dist/components/nv-alert.js +1 -1
  201. package/dist/components/nv-avatar.js +1 -1
  202. package/dist/components/nv-badge.js +1 -1
  203. package/dist/components/nv-breadcrumb.js +1 -1
  204. package/dist/components/nv-breadcrumbs.js +1 -1
  205. package/dist/components/nv-button.js +1 -1
  206. package/dist/components/nv-buttongroup.js +1 -1
  207. package/dist/components/nv-calendar.js +1 -1
  208. package/dist/components/nv-col.js +1 -1
  209. package/dist/components/nv-datagrid.js +1 -1
  210. package/dist/components/nv-datagridcolumn.js +1 -1
  211. package/dist/components/nv-datetest.d.ts +11 -0
  212. package/dist/components/nv-datetest.js +1 -0
  213. package/dist/components/nv-datetimetest.d.ts +11 -0
  214. package/dist/components/nv-datetimetest.js +1 -0
  215. package/dist/components/nv-dialog.js +1 -1
  216. package/dist/components/nv-dialogfooter.js +1 -1
  217. package/dist/components/nv-dialogheader.js +1 -1
  218. package/dist/components/nv-drawer.js +1 -1
  219. package/dist/components/nv-drawerfooter.js +1 -1
  220. package/dist/components/nv-drawerheader.js +1 -1
  221. package/dist/components/nv-fieldcheckbox.js +1 -1
  222. package/dist/components/nv-fielddate.js +1 -1
  223. package/dist/components/nv-fielddaterange.js +1 -1
  224. package/dist/components/nv-fielddropdown.js +1 -1
  225. package/dist/components/nv-fielddropdownitem.js +1 -1
  226. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  227. package/dist/components/nv-fieldmultiselect.js +1 -1
  228. package/dist/components/nv-fieldnumber.js +1 -1
  229. package/dist/components/nv-fieldpassword.js +1 -1
  230. package/dist/components/nv-fieldradio.js +1 -1
  231. package/dist/components/nv-fieldselect.js +1 -1
  232. package/dist/components/nv-fieldslider.js +1 -1
  233. package/dist/components/nv-fieldtext.js +1 -1
  234. package/dist/components/nv-fieldtextarea.js +1 -1
  235. package/dist/components/nv-fieldtime.js +1 -1
  236. package/dist/components/nv-icon.js +1 -1
  237. package/dist/components/nv-iconbutton.js +1 -1
  238. package/dist/components/nv-loader.js +1 -1
  239. package/dist/components/nv-menu.js +1 -1
  240. package/dist/components/nv-menuitem.js +1 -1
  241. package/dist/components/nv-notification-bullet.js +1 -1
  242. package/dist/components/nv-notification.js +1 -1
  243. package/dist/components/nv-notificationcontainer.js +1 -1
  244. package/dist/components/nv-pagination-nav.d.ts +11 -0
  245. package/dist/components/nv-pagination-nav.js +1 -0
  246. package/dist/components/nv-paginationtable.js +1 -1
  247. package/dist/components/nv-popover.js +1 -1
  248. package/dist/components/nv-row.js +1 -1
  249. package/dist/components/nv-sidebar.js +1 -1
  250. package/dist/components/nv-sidebarcontent.js +1 -1
  251. package/dist/components/nv-sidebardivider.js +1 -1
  252. package/dist/components/nv-sidebarfooter.js +1 -1
  253. package/dist/components/nv-sidebargroup.js +1 -1
  254. package/dist/components/nv-sidebarheader.js +1 -1
  255. package/dist/components/nv-sidebarlogo.js +1 -1
  256. package/dist/components/nv-sidebarnavitem.js +1 -1
  257. package/dist/components/nv-sidebarnavsubitem.js +1 -1
  258. package/dist/components/nv-split.js +1 -1
  259. package/dist/components/nv-stack.js +1 -1
  260. package/dist/components/nv-table.js +1 -1
  261. package/dist/components/nv-tableheader.js +1 -1
  262. package/dist/components/nv-timetest.d.ts +11 -0
  263. package/dist/components/nv-timetest.js +1 -0
  264. package/dist/components/nv-toggle.js +1 -1
  265. package/dist/components/nv-togglebutton.js +1 -1
  266. package/dist/components/nv-togglebuttongroup.js +1 -1
  267. package/dist/components/nv-tooltip.js +1 -1
  268. package/dist/components/{p-iXsbKJzR.js → p-6nAIGZFL.js} +1 -1
  269. package/dist/components/{p-yHGZRC6Q.js → p-BwYt1BAb.js} +1 -1
  270. package/dist/components/{p-C9p4yTS2.js → p-C5J7jtrC.js} +1 -1
  271. package/dist/components/{p-CEI7jWvn.js → p-CAGzfU3O.js} +1 -1
  272. package/dist/components/{p-B5KLppep.js → p-CKFXHAaU.js} +1 -1
  273. package/dist/components/{p-DHNSuxz-.js → p-CLzCfsnq.js} +1 -1
  274. package/dist/components/{p-Bh6WGsHA.js → p-CnkB4kvn.js} +1 -1
  275. package/dist/components/{p-DDqZBSGn.js → p-Co8IghI-.js} +1 -1
  276. package/dist/components/p-CrRawrjU.js +1 -0
  277. package/dist/components/p-CyL2J6O4.js +74 -0
  278. package/dist/components/{p-Ce1IBFTa.js → p-D2C_Qr5O.js} +1 -1
  279. package/dist/components/{p-CAKTe96z.js → p-DE792Sds.js} +1 -1
  280. package/dist/components/{p-RUeDcouW.js → p-DGj-fiRX.js} +1 -1
  281. package/dist/components/{p-C2J7j_fw.js → p-DUaenjr8.js} +1 -1
  282. package/dist/components/{p-laRga5dw.js → p-DVFofrTe.js} +1 -1
  283. package/dist/components/{p-BfaMgLx7.js → p-DlOgBZa8.js} +2 -2
  284. package/dist/components/{p-BAlaMmS4.js → p-Du3Fh0jQ.js} +1 -1
  285. package/dist/components/p-DwtLxfU5.js +1 -0
  286. package/dist/components/{p-DhDxhFz-.js → p-VXpV-BUK.js} +1 -1
  287. package/dist/components/{p-CZcMM7Lh.js → p-f8OUzde-.js} +1 -1
  288. package/dist/components/{p-DqU-wS_x.js → p-h3cPA0Cx.js} +1 -1
  289. package/dist/components/p-nzxGC8BS.js +1 -0
  290. package/dist/components/p-qkNH2RHl.js +1 -0
  291. package/dist/components/{p-nmQOuX7R.js → p-xrXEz2WP.js} +1 -1
  292. package/dist/esm/{index-S-IZ4AN_.js → index-BCjiE1MF.js} +17 -1
  293. package/dist/esm/index.js +5 -0
  294. package/dist/esm/loader.js +3 -3
  295. package/dist/esm/native.js +3 -3
  296. package/dist/esm/nova-datetime-CyL2J6O4.js +10636 -0
  297. package/dist/esm/nv-accordion-item.entry.js +1 -1
  298. package/dist/esm/nv-accordion.entry.js +1 -1
  299. package/dist/esm/nv-alert.entry.js +1 -1
  300. package/dist/esm/nv-avatar.entry.js +1 -1
  301. package/dist/esm/nv-badge_2.entry.js +2 -2
  302. package/dist/esm/nv-breadcrumb.entry.js +1 -1
  303. package/dist/esm/nv-breadcrumbs.entry.js +1 -1
  304. package/dist/esm/nv-button.entry.js +1 -1
  305. package/dist/esm/nv-buttongroup.entry.js +1 -1
  306. package/dist/esm/nv-calendar.entry.js +1 -1
  307. package/dist/esm/nv-col.entry.js +1 -1
  308. package/dist/esm/nv-datagrid.entry.js +1 -1
  309. package/dist/esm/nv-datagridcolumn.entry.js +1 -1
  310. package/dist/esm/nv-datetest.entry.js +64 -0
  311. package/dist/esm/nv-datetimetest.entry.js +52 -0
  312. package/dist/esm/nv-dialog.entry.js +16 -3
  313. package/dist/esm/nv-dialogfooter_2.entry.js +3 -3
  314. package/dist/esm/nv-drawer.entry.js +2 -2
  315. package/dist/esm/nv-drawerfooter_2.entry.js +3 -3
  316. package/dist/esm/nv-fieldcheckbox.entry.js +5 -5
  317. package/dist/esm/nv-fielddate.entry.js +7 -7
  318. package/dist/esm/nv-fielddaterange.entry.js +7 -7
  319. package/dist/esm/nv-fielddropdown.entry.js +5 -5
  320. package/dist/esm/nv-fielddropdownitem.entry.js +2 -2
  321. package/dist/esm/nv-fieldmultiselect.entry.js +1 -1
  322. package/dist/esm/nv-fieldnumber.entry.js +5 -5
  323. package/dist/esm/nv-fieldpassword.entry.js +5 -5
  324. package/dist/esm/nv-fieldradio.entry.js +4 -4
  325. package/dist/esm/nv-fieldselect.entry.js +6 -6
  326. package/dist/esm/nv-fieldslider.entry.js +4 -4
  327. package/dist/esm/nv-fieldtext.entry.js +5 -5
  328. package/dist/esm/nv-fieldtextarea.entry.js +4 -4
  329. package/dist/esm/nv-fieldtime.entry.js +4 -4
  330. package/dist/esm/nv-icon.entry.js +3 -3
  331. package/dist/esm/nv-iconbutton_2.entry.js +3 -3
  332. package/dist/esm/nv-menu.entry.js +2 -2
  333. package/dist/esm/nv-menuitem.entry.js +2 -2
  334. package/dist/esm/nv-notification-bullet.entry.js +1 -1
  335. package/dist/esm/nv-notification.entry.js +2 -2
  336. package/dist/esm/nv-notificationcontainer.entry.js +2 -14
  337. package/dist/esm/nv-pagination-nav.entry.js +196 -0
  338. package/dist/esm/nv-paginationtable.entry.js +2 -2
  339. package/dist/esm/nv-popover.entry.js +2 -2
  340. package/dist/esm/nv-row.entry.js +2 -2
  341. package/dist/esm/nv-sidebar.entry.js +2 -2
  342. package/dist/esm/nv-sidebarcontent.entry.js +2 -2
  343. package/dist/esm/nv-sidebardivider.entry.js +2 -2
  344. package/dist/esm/nv-sidebarfooter.entry.js +2 -2
  345. package/dist/esm/nv-sidebargroup.entry.js +2 -2
  346. package/dist/esm/nv-sidebarheader.entry.js +2 -2
  347. package/dist/esm/nv-sidebarlogo.entry.js +2 -2
  348. package/dist/esm/nv-sidebarnavitem.entry.js +12 -5
  349. package/dist/esm/nv-sidebarnavsubitem.entry.js +2 -2
  350. package/dist/esm/nv-split.entry.js +2 -2
  351. package/dist/esm/nv-stack.entry.js +2 -2
  352. package/dist/esm/nv-table.entry.js +2 -2
  353. package/dist/esm/nv-tableheader.entry.js +2 -2
  354. package/dist/esm/nv-timetest.entry.js +70 -0
  355. package/dist/esm/nv-toggle.entry.js +3 -3
  356. package/dist/esm/nv-togglebutton.entry.js +2 -2
  357. package/dist/esm/nv-togglebuttongroup.entry.js +2 -2
  358. package/dist/esm/nv-tooltip.entry.js +9 -4
  359. package/dist/lib/generators/docs-blazor.js +4 -1
  360. package/dist/lib/utils/parseToCSharpTypes.js +114 -18
  361. package/dist/lib/utils/test/parseToCSharpTypes.test.js +95 -1
  362. package/dist/native/index.esm.js +1 -1
  363. package/dist/native/native.css +1 -1
  364. package/dist/native/native.esm.js +1 -1
  365. package/dist/native/{p-a8bc3b92.entry.js → p-05f7bad5.entry.js} +1 -1
  366. package/dist/native/{p-043d500e.entry.js → p-083b39c5.entry.js} +1 -1
  367. package/dist/native/{p-3fb1a188.entry.js → p-0bb64497.entry.js} +1 -1
  368. package/dist/native/{p-1bf1a213.entry.js → p-0fe84123.entry.js} +1 -1
  369. package/dist/native/p-1029a266.entry.js +1 -0
  370. package/dist/native/p-12a8443b.entry.js +1 -0
  371. package/dist/native/{p-bdaab534.entry.js → p-148c1d3e.entry.js} +1 -1
  372. package/dist/native/{p-79d8c26b.entry.js → p-1d7a27bb.entry.js} +1 -1
  373. package/dist/native/{p-11eb959b.entry.js → p-1e03fc3c.entry.js} +1 -1
  374. package/dist/native/{p-f22d2ad9.entry.js → p-213c5836.entry.js} +1 -1
  375. package/dist/native/{p-d46ea49a.entry.js → p-25ef7329.entry.js} +1 -1
  376. package/dist/native/p-291b297d.entry.js +1 -0
  377. package/dist/native/{p-e937d495.entry.js → p-2af6d988.entry.js} +1 -1
  378. package/dist/native/{p-89f7d483.entry.js → p-343c04db.entry.js} +1 -1
  379. package/dist/native/{p-7a8e2ef3.entry.js → p-37c41059.entry.js} +1 -1
  380. package/dist/native/{p-a92e2ad8.entry.js → p-3c4114b8.entry.js} +1 -1
  381. package/dist/native/{p-31301f1e.entry.js → p-46267895.entry.js} +1 -1
  382. package/dist/native/p-493c1bb5.entry.js +1 -0
  383. package/dist/native/{p-70abbe4f.entry.js → p-4ac8181c.entry.js} +1 -1
  384. package/dist/native/{p-04956305.entry.js → p-4bf96114.entry.js} +1 -1
  385. package/dist/native/p-544b34d4.entry.js +1 -0
  386. package/dist/native/{p-0ec34d19.entry.js → p-58966e0f.entry.js} +1 -1
  387. package/dist/native/{p-e1021e2c.entry.js → p-5c003e50.entry.js} +1 -1
  388. package/dist/native/{p-1dd3da3b.entry.js → p-5ce3d30b.entry.js} +1 -1
  389. package/dist/native/p-5ea697a7.entry.js +1 -0
  390. package/dist/native/{p-3a04a563.entry.js → p-5ef0ed10.entry.js} +1 -1
  391. package/dist/native/{p-0e8b544b.entry.js → p-63f2f87f.entry.js} +1 -1
  392. package/dist/native/{p-6a9363a6.entry.js → p-644ecff8.entry.js} +1 -1
  393. package/dist/native/{p-5cbf5973.entry.js → p-67e0680e.entry.js} +1 -1
  394. package/dist/native/{p-bd143e7b.entry.js → p-6d8d2088.entry.js} +1 -1
  395. package/dist/native/{p-a9a20f37.entry.js → p-72d8cb56.entry.js} +1 -1
  396. package/dist/native/p-75a2a2ac.entry.js +1 -0
  397. package/dist/native/{p-bdbc92d9.entry.js → p-767ee0fc.entry.js} +1 -1
  398. package/dist/native/{p-8ce17efd.entry.js → p-7aa4605d.entry.js} +1 -1
  399. package/dist/native/{p-0819a7b1.entry.js → p-7c00f6da.entry.js} +1 -1
  400. package/dist/native/p-7d164a7a.entry.js +1 -0
  401. package/dist/native/{p-06a17aba.entry.js → p-7ec28d5d.entry.js} +1 -1
  402. package/dist/native/{p-dc0d1690.entry.js → p-89348af5.entry.js} +1 -1
  403. package/dist/native/p-8e1bcadc.entry.js +1 -0
  404. package/dist/native/{p-b0d97496.entry.js → p-90b8b889.entry.js} +1 -1
  405. package/dist/native/{p-945ca1db.entry.js → p-95a9d385.entry.js} +1 -1
  406. package/dist/native/{p-a9a07a8d.entry.js → p-9709c7d5.entry.js} +1 -1
  407. package/dist/native/p-9fc95cf3.entry.js +1 -0
  408. package/dist/native/{p-S-IZ4AN_.js → p-BCjiE1MF.js} +1 -1
  409. package/dist/native/p-CyL2J6O4.js +74 -0
  410. package/dist/native/{p-aa232a20.entry.js → p-a16f8a14.entry.js} +1 -1
  411. package/dist/native/p-ac765e6a.entry.js +1 -0
  412. package/dist/native/p-b3477504.entry.js +1 -0
  413. package/dist/native/{p-c3ea1eca.entry.js → p-c2c826a4.entry.js} +1 -1
  414. package/dist/native/p-c56ffa82.entry.js +1 -0
  415. package/dist/native/{p-6b655545.entry.js → p-c5d97054.entry.js} +1 -1
  416. package/dist/native/{p-48e7b457.entry.js → p-cfa0eb58.entry.js} +1 -1
  417. package/dist/native/p-d3e66306.entry.js +1 -0
  418. package/dist/native/p-d5f5a6e1.entry.js +1 -0
  419. package/dist/native/{p-702a6646.entry.js → p-d8120afd.entry.js} +1 -1
  420. package/dist/native/p-dc2ce8ee.entry.js +1 -0
  421. package/dist/native/{p-85c8be32.entry.js → p-e3fb16af.entry.js} +1 -1
  422. package/dist/native/{p-7c413f8b.entry.js → p-e46c35a0.entry.js} +1 -1
  423. package/dist/native/{p-e05b6008.entry.js → p-ec23ce93.entry.js} +1 -1
  424. package/dist/native/{p-bef3d325.entry.js → p-f7522dac.entry.js} +1 -1
  425. package/dist/native/{p-64104dbd.entry.js → p-f9612edf.entry.js} +1 -1
  426. package/dist/native/{p-fba55e2f.entry.js → p-fab2f2b3.entry.js} +1 -1
  427. package/dist/native/{p-2106dfbd.entry.js → p-fb34fc7d.entry.js} +1 -1
  428. package/dist/native/{p-98ea927d.entry.js → p-fd5e27ae.entry.js} +1 -1
  429. package/dist/types/components/nv-datetest/nv-datetest.d.ts +48 -0
  430. package/dist/types/components/nv-datetest/nv-datetest.docs.d.ts +4 -0
  431. package/dist/types/components/nv-datetimetest/nv-datetimetest.d.ts +44 -0
  432. package/dist/types/components/nv-datetimetest/nv-datetimetest.docs.d.ts +4 -0
  433. package/dist/types/components/nv-dialog/nv-dialog.d.ts +9 -0
  434. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  435. package/dist/types/components/nv-notificationcontainer/nv-notificationcontainer.d.ts +0 -6
  436. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.d.ts +82 -0
  437. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.docs.d.ts +4 -0
  438. package/dist/types/components/nv-pagination-nav/nv-pagination-nav.utils.d.ts +26 -0
  439. package/dist/types/components/nv-pagination-nav/test/nv-pagination-nav.utils.test.d.ts +1 -0
  440. package/dist/types/components/nv-sidebarlogo/nv-sidebarlogo.d.ts +2 -0
  441. package/dist/types/components/nv-timetest/nv-timetest.d.ts +48 -0
  442. package/dist/types/components/nv-timetest/nv-timetest.docs.d.ts +4 -0
  443. package/dist/types/components.d.ts +421 -15
  444. package/dist/types/index.d.ts +2 -0
  445. package/dist/types/interfaces/dates.d.ts +8 -0
  446. package/dist/types/nova-docs.d.ts +8 -0
  447. package/dist/types/utils/nova-datetime.d.ts +79 -0
  448. package/dist/types/utils/test/nova-datetime.test.d.ts +1 -0
  449. package/dist/vscode-data.json +107 -0
  450. package/hydrate/index.js +11096 -107
  451. package/hydrate/index.mjs +11096 -107
  452. package/package.json +18 -1
  453. package/dist/components/p-BPufjY85.js +0 -1
  454. package/dist/components/p-D15RdWEG.js +0 -1
  455. package/dist/components/p-FSPz8FER.js +0 -1
  456. package/dist/components/p-jZF_Ggmx.js +0 -1
  457. package/dist/native/p-0bfd188c.entry.js +0 -1
  458. package/dist/native/p-17f2525a.entry.js +0 -1
  459. package/dist/native/p-1a5db5e9.entry.js +0 -1
  460. package/dist/native/p-87a1b06c.entry.js +0 -1
  461. package/dist/native/p-8dadc0c9.entry.js +0 -1
  462. package/dist/native/p-97a5f8d5.entry.js +0 -1
  463. package/dist/native/p-ae4fc02a.entry.js +0 -1
  464. package/dist/native/p-c825c542.entry.js +0 -1
  465. package/dist/native/p-ce2c17dc.entry.js +0 -1
  466. package/dist/native/p-f2a32774.entry.js +0 -1
  467. package/dist/native/p-f5eff2b2.entry.js +0 -1
  468. package/dist/native/p-f64f1bea.entry.js +0 -1
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-S-IZ4AN_.js';
1
+ import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
2
2
 
3
3
  const nvSplitCss = () => `nv-split{display:flex;width:100%;height:100%;position:relative}nv-split[direction=horizontal]{flex-direction:row}nv-split[direction=vertical]{flex-direction:column}nv-split .nv-split-gutter{position:absolute;z-index:10;background:transparent;display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:background-color 0.2s ease}nv-split .nv-split-gutter::after{content:"";position:absolute;background:var(--components-splitter-line-background);transition:background-color 0.2s ease}nv-split .nv-split-gutter:hover::after{background:var(--components-splitter-line-background-hover)}nv-split .nv-split-gutter::before{content:"";background:var(--components-splitter-handle-background);position:absolute;background-repeat:no-repeat;background-position:center;transition:all 0.2s ease;pointer-events:none}nv-split[direction=horizontal]>.nv-split-gutter{width:var(--splitter-gutter);top:0;bottom:0;transform:translateX(-50%);cursor:col-resize}nv-split[direction=horizontal]>.nv-split-gutter::after{width:var(--splitter-line-width);background-color:var(--components-splitter-line-background);height:100%;left:50%;top:0%;transform:translateX(-50%)}nv-split[direction=horizontal]>.nv-split-gutter:hover::after{background-color:var(--components-splitter-line-background-hover)}nv-split[direction=horizontal]>.nv-split-gutter:active::after{background-color:var(--components-splitter-line-background-active)}nv-split[direction=horizontal]>.nv-split-gutter::before{background-color:var(--components-splitter-handle-background);width:var(--splitter-handle-wide);height:var(--splitter-handle-long);border-radius:var(--splitter-handle-radius);z-index:11;transition:all 0.2s ease}nv-split[direction=horizontal]>.nv-split-gutter:hover::before{background-color:var(--components-splitter-handle-background-hover)}nv-split[direction=horizontal]>.nv-split-gutter:active::before{background-color:var(--components-splitter-handle-background-active)}nv-split[direction=vertical]>.nv-split-gutter{height:var(--splitter-gutter);left:0;right:0;transform:translateY(-50%);cursor:row-resize}nv-split[direction=vertical]>.nv-split-gutter::after{height:var(--splitter-line-width);background-color:var(--components-splitter-line-background);width:100%;top:50%;left:0%;transform:translateY(-50%)}nv-split[direction=vertical]>.nv-split-gutter:hover::after{background-color:var(--components-splitter-line-background-hover)}nv-split[direction=vertical]>.nv-split-gutter:active::after{background-color:var(--components-splitter-line-background-active)}nv-split[direction=vertical]>.nv-split-gutter::before{background-color:var(--components-splitter-handle-background);width:var(--splitter-handle-long);height:var(--splitter-handle-wide);border-radius:var(--splitter-handle-radius);z-index:11;transition:all 0.2s ease}nv-split[direction=vertical]>.nv-split-gutter:hover::before{background-color:var(--components-splitter-handle-background-hover)}nv-split[direction=vertical]>.nv-split-gutter:active::before{background-color:var(--components-splitter-handle-background-active)}nv-split[data-dragging=true]>.nv-split-gutter::after{background:var(--components-splitter-line-background-active)}nv-split>[slot=pane]{box-sizing:border-box;flex:1 1 auto;overflow:hidden;min-width:0;min-height:0;display:flex;flex-direction:column;margin:0 !important}nv-split>[slot=pane]>nv-split{flex:1 1 auto;width:100%;height:100%}`;
4
4
 
@@ -321,7 +321,7 @@ const NvSplit = class {
321
321
  /****************************************************************************/
322
322
  //#region RENDER
323
323
  render() {
324
- return (h(Host, { key: 'ab2b75b963d3cee109e90fe22e0dfe356a384706', "data-dragging": this.isDragging.toString() }, h("slot", { key: 'a7a8258a976029f91ffbce3fa1f90f7ed35409ef', name: "pane" }), h("slot", { key: '9af34cb299ff061bec6ba7dfe6e969e093aeb3bc', name: "gutter" })));
324
+ return (h(Host, { key: '8ad8bebda77f9868b9715280c0157f247057026d', "data-dragging": this.isDragging.toString() }, h("slot", { key: '8ca002feab0c3cd7755a5f1f53864e4e20585420', name: "pane" }), h("slot", { key: 'f7f7352ed8c326ec263f6d617bcd84fea02689ea', name: "gutter" })));
325
325
  }
326
326
  get el() { return getElement(this); }
327
327
  static get watchers() { return {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, d as Host } from './index-S-IZ4AN_.js';
1
+ import { r as registerInstance, h, d as Host } from './index-BCjiE1MF.js';
2
2
  import { c as clsx } from './clsx-ChV9xqsO.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%}`;
@@ -18,7 +18,7 @@ const NvStack = class {
18
18
  /****************************************************************************/
19
19
  //#region RENDER
20
20
  render() {
21
- return (h(Host, { key: '1fe102ad734149231a7058af441e5ee77ef97ca3', 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: 'f7ed597dabd90182887096441ff1258812dfe9fc' })));
21
+ return (h(Host, { key: '861c5eed0b6dc7cdd5bf3a2d07af92127e2025bf', 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: '4cf3d3fb15fa6c4ed2d7d6bb70334965b0cca457' })));
22
22
  }
23
23
  };
24
24
  NvStack.style = nvStackCss();
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, d as Host, e as getElement } from './index-S-IZ4AN_.js';
1
+ import { r as registerInstance, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
2
2
 
3
3
  /**
4
4
  * Table utility functions and constants for nv-table component
@@ -231,7 +231,7 @@ const NvTable = class {
231
231
  /****************************************************************************/
232
232
  //#region RENDER
233
233
  render() {
234
- return (h(Host, { key: '0d5518a54b41c67bdd7c73d5147fd954fb53d388' }, h("slot", { key: '8ab65d5dd1ce751fd357b275b84db042b1d9ce2e' })));
234
+ return (h(Host, { key: 'a6882cbcf9b0b12776f6d4be6d9cbfb42aff6833' }, h("slot", { key: 'd4d47a2eb77c50ff30109e217ceecd2677b9d28d' })));
235
235
  }
236
236
  get host() { return getElement(this); }
237
237
  };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, a as createEvent, h, d as Host } from './index-S-IZ4AN_.js';
1
+ import { r as registerInstance, a as createEvent, h, d as Host } from './index-BCjiE1MF.js';
2
2
 
3
3
  const nvTableheaderCss = () => `nv-tableheader{display:inline-flex;width:100%;align-items:center;gap:var(--spacing-2)}nv-tableheader:focus-visible:focus,nv-tableheader:focus-visible:focus-within{outline:none}nv-tableheader:focus-visible:focus-visible,nv-tableheader:focus-visible:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-tableheader:focus-visible{border-radius:var(--radius-rounded-sm)}nv-tableheader nv-iconbutton{transition:transform 120ms ease, opacity 120ms ease}nv-tableheader nv-iconbutton svg{transition:transform 240ms ease}nv-tableheader nv-iconbutton.is-none{opacity:0.5}nv-tableheader nv-iconbutton.is-desc svg{transform:rotate(180deg)}`;
4
4
 
@@ -57,7 +57,7 @@ const NvTableheader = class {
57
57
  /****************************************************************************/
58
58
  //#region RENDER
59
59
  render() {
60
- return (h(Host, { key: '95447cd8ccde74d09226bcdbf645eed309be0fa8', role: "columnheader", "aria-sort": this.ariaSort, tabindex: this.sortable ? 0 : undefined, onKeyDown: this.handleKeyDown.bind(this), onClick: this.cycleSortDirection.bind(this) }, h("slot", { key: '4e26aa21f080cf23ce42fb72d6777463bd079991' }), this.sortable && (h("span", { key: '666254c197e97226d2f1c6830d1216b9457c4acc', class: "sort-icon-wrap", "aria-hidden": "true" }, h("nv-iconbutton", { key: '11b2de5c4c270740857094ec8a39f1d392d7246a', disableTabindex: true, name: "arrow-up", size: "xs", emphasis: this.sortDirection === 'none' ? 'lower' : 'low',
60
+ return (h(Host, { key: '962f555a02b3035148c5915ae7493c68c0202cc7', role: "columnheader", "aria-sort": this.ariaSort, tabindex: this.sortable ? 0 : undefined, onKeyDown: this.handleKeyDown.bind(this), onClick: this.cycleSortDirection.bind(this) }, h("slot", { key: '0e69da3d4e2eb8ad01060f51d5043ffc14380415' }), this.sortable && (h("span", { key: 'a9b5ff97552d142cc3e1becc14a34ebab1f3092d', class: "sort-icon-wrap", "aria-hidden": "true" }, h("nv-iconbutton", { key: '76f832eba2b57f244dbce597668f493a918cf599', disableTabindex: true, name: "arrow-up", size: "xs", emphasis: this.sortDirection === 'none' ? 'lower' : 'low',
61
61
  // prevent mousedown from selecting text
62
62
  onMouseDown: (e) => e.preventDefault(), class: {
63
63
  'is-none': this.sortDirection === 'none',
@@ -0,0 +1,70 @@
1
+ import { r as registerInstance, a as createEvent, h, d as Host } from './index-BCjiE1MF.js';
2
+ import { a as parseTimeOnly, b as formatTimeOnly, L as LocalDate } from './nova-datetime-CyL2J6O4.js';
3
+
4
+ const nvTimetestCss = () => `nv-timetest{display:flex}nv-timetest label{display:flex;flex-direction:column;margin-right:10px;font-weight:bold}nv-timetest input{font-weight:normal;padding:var(--spacing-2);border-radius:var(--spacing-1);border:1px solid #ccc}`;
5
+
6
+ const NvTimetest = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.valueChanged = createEvent(this, "valueChanged", 3);
10
+ this.lastChanged = createEvent(this, "lastChanged", 3);
11
+ this.historyChanged = createEvent(this, "historyChanged", 3);
12
+ this.valueDateChanged = createEvent(this, "valueDateChanged", 3);
13
+ //#endregion PROPERTIES
14
+ /****************************************************************************/
15
+ //#region METHODS
16
+ this.handleStartChange = (event) => {
17
+ const input = event.target;
18
+ const parsed = parseTimeOnly(input.value);
19
+ if (!parsed)
20
+ return;
21
+ const newStart = formatTimeOnly(parsed);
22
+ this.value = { start: newStart, end: this.value?.end };
23
+ this.lastChange = newStart;
24
+ this.history = [...(this.history ?? []), newStart];
25
+ this.valueChanged.emit(this.value);
26
+ this.lastChanged.emit({ time: this.lastChange });
27
+ this.historyChanged.emit({ times: this.history });
28
+ const todayDate = LocalDate.now().toString();
29
+ this.valueDateChanged.emit({
30
+ start: this.value?.start
31
+ ? new Date(todayDate + 'T' + this.value.start)
32
+ : undefined,
33
+ end: this.value?.end
34
+ ? new Date(todayDate + 'T' + this.value.end)
35
+ : undefined,
36
+ });
37
+ };
38
+ this.handleEndChange = (event) => {
39
+ const input = event.target;
40
+ const parsed = parseTimeOnly(input.value);
41
+ if (!parsed)
42
+ return;
43
+ const newEnd = formatTimeOnly(parsed);
44
+ this.value = { start: this.value?.start, end: newEnd };
45
+ this.lastChange = newEnd;
46
+ this.history = [...(this.history ?? []), newEnd];
47
+ this.valueChanged.emit(this.value);
48
+ this.lastChanged.emit({ time: this.lastChange });
49
+ this.historyChanged.emit({ times: this.history });
50
+ const todayDate = LocalDate.now().toString();
51
+ this.valueDateChanged.emit({
52
+ start: this.value?.start
53
+ ? new Date(todayDate + 'T' + this.value.start)
54
+ : undefined,
55
+ end: this.value?.end
56
+ ? new Date(todayDate + 'T' + this.value.end)
57
+ : undefined,
58
+ });
59
+ };
60
+ }
61
+ //#endregion EVENTS
62
+ /****************************************************************************/
63
+ //#region RENDER
64
+ render() {
65
+ return (h(Host, { key: '85d3773d49a180e5bc9b5bc0962cc3b709a474b0' }, h("label", { key: 'c0d5c262578e6aa1555ded8c542e2eef7e42d491' }, "Start:", h("input", { key: '31fe9447be14efd87aab1161dbc01593a30328dc', type: "time", step: "1", value: this.value?.start ?? '', onInput: this.handleStartChange })), h("label", { key: '0959b432f53169c425765b94c098ca5ecc8d6ede' }, "End:", h("input", { key: 'ccc50a80dfea2ab7eb627d11840dd5626ca25f88', type: "time", step: "1", value: this.value?.end ?? '', onInput: this.handleEndChange })), h("slot", { key: 'd4c6a017d41102a245e1f8472d676bc866382c00' })));
66
+ }
67
+ };
68
+ NvTimetest.style = nvTimetestCss();
69
+
70
+ export { NvTimetest as nv_timetest };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-S-IZ4AN_.js';
1
+ import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
2
2
  import { c as clsx } from './clsx-ChV9xqsO.js';
3
3
  import { v as v4 } from './v4-BdYh22OP.js';
4
4
 
@@ -61,8 +61,8 @@ const NvToggle = class {
61
61
  /****************************************************************************/
62
62
  //#region RENDER
63
63
  render() {
64
- return (h(Host, { key: '38dd2a460c82599e2c2bfd6b039eafff0dc6fc67', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '4d6bf742f548cc5f92ae84497f12569d9680dcef', class: "input-container" }, h("input", { key: '97f54363c17cde48ec226680ee58da012e590b69', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: 'e4576a0884f02731a3e6d2d20537cfabf411a8fe', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '4744036b0d1e73f350bbc4b6f6e7664bb9361d1e', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: '44a2aeb86c840246473bc47e0ba01269af77ef06', name: "label" }, this.label))), (this.description ||
65
- this.el.querySelector('[slot="description"]')) && (h("div", { key: '6e5c3d1721c9db3cffd019c9274294c40793daf0', class: "description" }, h("slot", { key: '87c3d35c78ded085cd1ddb5b2874dfae7bd99842', name: "description" }, this.description))))));
64
+ return (h(Host, { key: '39ad1374bbf8cd5393a99dc4c18fa28091dc5e90', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '3a8be2405404975398f1a0dae05c0855b913245f', class: "input-container" }, h("input", { key: 'b589b9faa5801f99e698d0e664e0a35779a1271f', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: 'a3308782b02b1c0eca3d6a1b87509674b9bc5c13', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '854b2ffe7bf61423512154ffe8b3b0351a2950a4', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: '933bf88b7841f3b2ed24c3bb86fb24159eaac900', name: "label" }, this.label))), (this.description ||
65
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: '5a04358d1be3b935239bb23e1466cc22ed2f3b48', class: "description" }, h("slot", { key: 'f5c1513eff6ee42bc171b0088baec634f8458197', name: "description" }, this.description))))));
66
66
  }
67
67
  static get formAssociated() { return true; }
68
68
  get el() { return getElement(this); }
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-S-IZ4AN_.js';
1
+ import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
2
2
 
3
3
  const nvTogglebuttonCss = () => `nv-togglebutton{display:inline-flex;justify-content:center;align-items:center}nv-togglebutton:focus-visible,nv-togglebutton:has(:focus-visible){z-index:1}nv-togglebutton[size=xs]{padding:var(--button-xs-padding-y) var(--button-xs-padding-x);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);height:var(--button-xs-height);font-size:var(--button-xs-font-size)}nv-togglebutton[size=xs] nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-togglebutton[size=xs]{padding-top:calc(var(--togglegroup-xs-button-padding-y) - var(--togglegroup-stroke));padding-bottom:calc(var(--togglegroup-xs-button-padding-y) - var(--togglegroup-stroke));border-radius:var(--togglegroup-xs-button-radius);height:calc((var(--togglegroup-xs-height)) - var(--togglegroup-inner-space));border-width:0}nv-togglebutton[size=sm]{padding:var(--button-sm-padding-y) var(--button-sm-padding-x);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);height:var(--button-sm-height);font-size:var(--button-sm-font-size)}nv-togglebutton[size=sm] nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-togglebutton[size=sm]{padding-top:calc(var(--togglegroup-sm-button-padding-y) - var(--togglegroup-stroke));padding-bottom:calc(var(--togglegroup-sm-button-padding-y) - var(--togglegroup-stroke));border-radius:calc(var(--togglegroup-sm-button-radius) + 1px);height:calc((var(--togglegroup-sm-height)) - var(--togglegroup-inner-space));border-width:0}nv-togglebutton[size=md]{padding:var(--button-md-padding-y) var(--button-md-padding-x);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);height:var(--button-md-height);font-size:var(--button-md-font-size)}nv-togglebutton[size=md] nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-togglebutton[size=md]{padding-top:calc(var(--togglegroup-md-button-padding-y) - var(--togglegroup-stroke));padding-bottom:calc(var(--togglegroup-md-button-padding-y) - var(--togglegroup-stroke));border-radius:calc(var(--togglegroup-md-button-radius) + 1px);height:calc((var(--togglegroup-md-height)) - var(--togglegroup-inner-space));border-width:0}nv-togglebutton[size=lg]{padding:var(--button-lg-padding-y) var(--button-lg-padding-x);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);height:var(--button-lg-height);font-size:var(--button-lg-font-size)}nv-togglebutton[size=lg] nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-togglebutton[size=lg]{padding-top:calc(var(--togglegroup-lg-button-padding-y) - var(--togglegroup-stroke));padding-bottom:calc(var(--togglegroup-lg-button-padding-y) - var(--togglegroup-stroke));border-radius:calc(var(--togglegroup-lg-button-radius) + 1px);height:calc((var(--togglegroup-lg-height)) - var(--togglegroup-inner-space));border-width:0}nv-togglebutton[emphasis=high]{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-togglebutton[emphasis=high]:hover{background:var(--components-button-low-background-hover);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text-hover)}nv-togglebutton[emphasis=high]:active{background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-togglebutton[emphasis=high]:focus,nv-togglebutton[emphasis=high]:focus-within{outline:none}nv-togglebutton[emphasis=high]:focus-visible,nv-togglebutton[emphasis=high]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-togglebutton[emphasis=high]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=high][active]:not([active=false]){background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-togglebutton[emphasis=low]{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-togglebutton[emphasis=low]:hover{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-active);border:1px solid var(--components-button-lower-border-active);color:var(--components-button-lower-text-active)}nv-togglebutton[emphasis=low]:focus,nv-togglebutton[emphasis=low]:focus-within{outline:none}nv-togglebutton[emphasis=low]:focus-visible,nv-togglebutton[emphasis=low]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-togglebutton[emphasis=low]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=low][active]:not([active=false]),nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}`;
4
4
 
@@ -52,7 +52,7 @@ const NvTogglebutton = class {
52
52
  /****************************************************************************/
53
53
  //#region RENDER
54
54
  render() {
55
- return (h(Host, { key: '4af1293d9eb69a3a20d8f30c6b2876c6c29ddc03', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, h("slot", { key: '783fad27c525553cd404c1ffed0ae1305d330de8' })));
55
+ return (h(Host, { key: '8e700d38ba155b977d4efa0d9e01b41e73fc4413', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, h("slot", { key: '92427015839f98b0d9238b8df6af8e08ee511153' })));
56
56
  }
57
57
  get el() { return getElement(this); }
58
58
  };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-S-IZ4AN_.js';
1
+ import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
2
2
 
3
3
  const nvTogglebuttongroupCss = () => `nv-togglebuttongroup{display:flex;gap:var(--togglegroup-lg-gap);border-radius:var(--togglegroup-lg-radius);width:fit-content;padding:var(--togglegroup-lg-gap)}nv-togglebuttongroup[emphasis=high]{border:1px solid var(--components-togglegroup-high-border)}nv-togglebuttongroup[emphasis=low]{border:1px solid var(--components-togglegroup-low-border)}nv-togglebuttongroup[size=xs]{padding:calc(var(--togglegroup-xs-padding) - 1px);gap:var(--togglegroup-xs-gap);border-radius:var(--togglegroup-xs-radius);height:var(--togglegroup-xs-height)}nv-togglebuttongroup[size=sm]{padding:calc(var(--togglegroup-sm-padding) - 1px);gap:var(--togglegroup-sm-gap);border-radius:var(--togglegroup-sm-radius);height:var(--togglegroup-sm-height)}nv-togglebuttongroup[size=md]{padding:calc(var(--togglegroup-md-padding) - 1px);gap:var(--togglegroup-md-gap);border-radius:var(--togglegroup-md-radius);height:var(--togglegroup-md-height)}nv-togglebuttongroup[size=lg]{padding:calc(var(--togglegroup-lg-padding) - 1px);gap:var(--togglegroup-lg-gap);border-radius:var(--togglegroup-lg-radius);height:var(--togglegroup-lg-height)}`;
4
4
 
@@ -151,7 +151,7 @@ const NvTogglebuttongroup = class {
151
151
  /****************************************************************************/
152
152
  //#region RENDER
153
153
  render() {
154
- return (h(Host, { key: '1116872815229d09e1e286dd1f12a9787218e207' }, h("slot", { key: 'fa5363ec707f38830065718b2423dd8493acdd4e' })));
154
+ return (h(Host, { key: '2026cb95db8b57f2a1cd4ea53608f336843b63fe' }, h("slot", { key: '5c06ab59d6c99e789c3a1c3a8a4842a0772ca3a2' })));
155
155
  }
156
156
  get el() { return getElement(this); }
157
157
  static get watchers() { return {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-S-IZ4AN_.js';
1
+ import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-BCjiE1MF.js';
2
2
 
3
3
  const nvTooltipCss = () => `nv-tooltip{display:inline-block;vertical-align:top;position:relative;user-select:none}nv-tooltip:has([fluid]:not([fluid=false])){display:block}nv-tooltip nv-popover{display:block;height:0;min-height:0;overflow:visible}nv-tooltip nv-popover>[data-scope=popover]{background:var(--components-tooltip-background);color:var(--components-tooltip-text);font-weight:var(--font-weight-medium-emphasis);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);font-size:var(--tooltip-font-size);border-radius:var(--tooltip-radius);border:none;box-shadow:0px var(--shadow-y-axis-lg-1) var(--shadow-blur-lg-1) var(--shadow-spread-lg-1) var(--shadow-color-opacity-1), 0px var(--shadow-y-axis-lg-2) var(--shadow-blur-lg-2) var(--shadow-spread-lg-2) var(--shadow-color-opacity-2)}nv-tooltip nv-popover>[data-scope=popover] [data-scope=arrow]{background:var(--components-tooltip-background);box-shadow:none;border:none}`;
4
4
 
@@ -34,15 +34,20 @@ const NvTooltip = class {
34
34
  /****************************************************************************/
35
35
  //#region LIFECYCLE
36
36
  componentDidRender() {
37
- if (this.triggerElement || !this.defaultSlot)
37
+ if (!this.popoverElement)
38
38
  return;
39
- this.popoverElement.triggerElement = this.defaultSlot?.nextSibling;
39
+ const trigger = this.triggerElement ??
40
+ this.defaultSlot?.nextElementSibling ??
41
+ this.el.querySelector(':scope > :not(nv-popover):not(slot):not([slot])');
42
+ if (trigger && this.popoverElement.triggerElement !== trigger) {
43
+ this.popoverElement.triggerElement = trigger;
44
+ }
40
45
  }
41
46
  //#endregion LIFECYCLE
42
47
  /****************************************************************************/
43
48
  //#region RENDER
44
49
  render() {
45
- return (h(Host, { key: 'bda9ba58186add585457f8fdf4a8e1d6389da01a' }, h("nv-popover", { key: 'ac67ea44cebbc8abb9ff4e190668093bb7179222', ref: el => (this.popoverElement = el), triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, triggerElement: this.triggerElement, groupName: 'tooltip', enterDelay: this.enterDelay, onOpenChanged: e => this.openChanged.emit(e.detail) }, h("p", { key: 'b677689d4a73462b7d16ff7d9f31bfd61e7f47eb', slot: "content" }, this.message), h("slot", { key: 'bd1540db065fdeceb89d09d69e1dbf7ad4de728d', name: "content" })), h("slot", { key: '648d3c3125b0528cd8e88675122d775ad7cc40d9', ref: el => (this.defaultSlot = el) })));
50
+ return (h(Host, { key: '8285fbb412cb45cc7baf2936f0405c0438395c8d' }, h("nv-popover", { key: '29d70e9baa826de35d2cdca88f48610d70ec55e4', ref: el => (this.popoverElement = el), triggerMode: "hover", hasArrow: true, placement: this.placement, strategy: this.strategy, groupName: 'tooltip', enterDelay: this.enterDelay, onOpenChanged: e => this.openChanged.emit(e.detail) }, h("p", { key: 'a9c907fa96f9c4108a8d84cec53981218c060811', slot: "content" }, this.message), h("slot", { key: 'af1b7ac8069071fe2d41e925f1c0090f8b6aaab5', name: "content" })), h("slot", { key: 'e5d3c6d16fb7e4a682b66e0016d9e4e30e5647e0', ref: el => (this.defaultSlot = el) })));
46
51
  }
47
52
  get el() { return getElement(this); }
48
53
  };
@@ -158,7 +158,10 @@ const augmentProps = (component) => {
158
158
  if (!prop.values)
159
159
  return prop; // Skip props without values
160
160
  const transformedValues = prop.values.map(value => {
161
- return { ...value, type: convertToCSharpType(value.type) };
161
+ return {
162
+ ...value,
163
+ type: convertToCSharpType(value.type, prop.complexType?.original),
164
+ };
162
165
  });
163
166
  let propType = transformedValues[0]?.type; // Default to the first value's type
164
167
  if (transformedValues.length > 1) {
@@ -2,11 +2,12 @@
2
2
  import extract from "extract-comments";
3
3
  /**
4
4
  * Convert a TypeScript type to its C# equivalent
5
- * @param { string } tsType The TypeScript type
5
+ * @param { string } resolvedType The type as it is resolved by TypeScript
6
+ * @param { string } originalType The original reference name
6
7
  * @returns { string } The corresponding C# type
7
8
  */
8
- export const convertToCSharpType = (tsType) => {
9
- const normalizedType = tsType.replace(/\s+/g, '');
9
+ export const convertToCSharpType = (resolvedType, originalType) => {
10
+ const normalizedType = resolvedType.replace(/\s+/g, '');
10
11
  const unionParts = normalizedType.split('|');
11
12
  if (unionParts.includes('number') &&
12
13
  unionParts.length > 1 &&
@@ -15,19 +16,34 @@ export const convertToCSharpType = (tsType) => {
15
16
  .every(part => part === '""' || part === 'null' || part === 'undefined')) {
16
17
  return 'double';
17
18
  }
18
- switch (tsType) {
19
+ switch (originalType) {
20
+ case 'TimeOnly':
21
+ return 'TimeOnly';
22
+ case 'DateOnly':
23
+ return 'DateOnly';
24
+ }
25
+ switch (resolvedType) {
19
26
  case 'string':
20
27
  return 'string';
21
28
  case 'number':
22
29
  return 'double';
23
30
  case 'boolean':
24
31
  return 'bool';
32
+ case 'Date':
33
+ return 'DateTimeOffset';
25
34
  }
26
- const isArray = tsType.endsWith('[]');
27
- let baseType = isArray ? tsType.slice(0, -2).trim() : tsType;
28
- if (baseType.startsWith('{') && baseType.endsWith('}'))
29
- baseType = 'object';
30
- return isArray ? `${convertToCSharpType(baseType)}[]` : baseType;
35
+ const isArray = resolvedType.endsWith('[]');
36
+ const baseOriginalType = isArray
37
+ ? originalType?.slice(0, -2).trim()
38
+ : originalType;
39
+ let baseResolvedType = isArray
40
+ ? resolvedType.slice(0, -2).trim()
41
+ : resolvedType;
42
+ if (baseResolvedType.startsWith('{') && baseResolvedType.endsWith('}'))
43
+ baseResolvedType = 'object';
44
+ return isArray
45
+ ? `${convertToCSharpType(baseResolvedType, baseOriginalType)}[]`
46
+ : baseResolvedType;
31
47
  };
32
48
  /**
33
49
  * Checks for any recursive types (for example with the nv-menu component)
@@ -99,23 +115,24 @@ export const extractCommentsFromInterface = (interfaceString) => {
99
115
  export const parseCSharpObjectStructure = (objectTypeString, originalTypeString) => {
100
116
  const interfaceComments = extractCommentsFromInterface(originalTypeString);
101
117
  // Remove leading/trailing whitespace
102
- const trimmed = objectTypeString.trim();
118
+ objectTypeString = objectTypeString.trim();
119
+ originalTypeString = originalTypeString?.trim();
103
120
  // If this isn't an object, handle it directly
104
- if (!trimmed.startsWith('{')) {
105
- return { type: convertToCSharpType(trimmed) };
121
+ if (!objectTypeString.startsWith('{')) {
122
+ return { type: convertToCSharpType(objectTypeString, originalTypeString) };
106
123
  }
107
124
  // Find the content between the outermost curly braces
108
125
  // We need to properly handle nested objects
109
126
  let depth = 0;
110
127
  let start = -1;
111
128
  let end = -1;
112
- for (let i = 0; i < trimmed.length; i++) {
113
- if (trimmed[i] === '{') {
129
+ for (let i = 0; i < objectTypeString.length; i++) {
130
+ if (objectTypeString[i] === '{') {
114
131
  if (depth === 0)
115
132
  start = i;
116
133
  depth++;
117
134
  }
118
- else if (trimmed[i] === '}') {
135
+ else if (objectTypeString[i] === '}') {
119
136
  depth--;
120
137
  if (depth === 0) {
121
138
  end = i;
@@ -126,7 +143,7 @@ export const parseCSharpObjectStructure = (objectTypeString, originalTypeString)
126
143
  if (start === -1 || end === -1) {
127
144
  throw new Error(`Invalid object structure: ${objectTypeString}`);
128
145
  }
129
- const innerContent = trimmed.substring(start + 1, end).trim();
146
+ const innerContent = objectTypeString.substring(start + 1, end).trim();
130
147
  // Parse the properties, respecting nested objects and structures
131
148
  const properties = {};
132
149
  // Split the content on semicolons, but only when not inside nested objects/arrays
@@ -157,6 +174,81 @@ export const parseCSharpObjectStructure = (objectTypeString, originalTypeString)
157
174
  // Add the last property if it exists
158
175
  if (current.trim())
159
176
  propStrings.push(current.trim());
177
+ // Parse originalTypeString into a property-name → original-type map
178
+ const originalTypes = {};
179
+ if (originalTypeString?.startsWith('{')) {
180
+ let oDepth = 0;
181
+ let oStart = -1;
182
+ let oEnd = -1;
183
+ for (let i = 0; i < originalTypeString.length; i++) {
184
+ if (originalTypeString[i] === '{') {
185
+ if (oDepth === 0)
186
+ oStart = i;
187
+ oDepth++;
188
+ }
189
+ else if (originalTypeString[i] === '}') {
190
+ oDepth--;
191
+ if (oDepth === 0) {
192
+ oEnd = i;
193
+ break;
194
+ }
195
+ }
196
+ }
197
+ if (oStart !== -1 && oEnd !== -1) {
198
+ const originalInner = originalTypeString
199
+ .substring(oStart + 1, oEnd)
200
+ .trim();
201
+ const originalPropStrings = [];
202
+ let oCurrent = '';
203
+ let oCurrentDepth = 0;
204
+ let oInArray = false;
205
+ for (let i = 0; i < originalInner.length; i++) {
206
+ const char = originalInner[i];
207
+ if (char === '{')
208
+ oCurrentDepth++;
209
+ else if (char === '}')
210
+ oCurrentDepth--;
211
+ else if (char === '[')
212
+ oInArray = true;
213
+ else if (char === ']')
214
+ oInArray = false;
215
+ if (char === ';' && oCurrentDepth === 0 && !oInArray) {
216
+ if (oCurrent.trim())
217
+ originalPropStrings.push(oCurrent.trim());
218
+ oCurrent = '';
219
+ }
220
+ else {
221
+ oCurrent += char;
222
+ }
223
+ }
224
+ if (oCurrent.trim())
225
+ originalPropStrings.push(oCurrent.trim());
226
+ originalPropStrings.forEach(prop => {
227
+ let colonIdx = -1;
228
+ let od = 0;
229
+ let ad = 0;
230
+ for (let i = 0; i < prop.length; i++) {
231
+ if (prop[i] === '{')
232
+ od++;
233
+ else if (prop[i] === '}')
234
+ od--;
235
+ else if (prop[i] === '[')
236
+ ad++;
237
+ else if (prop[i] === ']')
238
+ ad--;
239
+ else if (prop[i] === ':' && od === 0 && ad === 0) {
240
+ colonIdx = i;
241
+ break;
242
+ }
243
+ }
244
+ if (colonIdx === -1)
245
+ return;
246
+ const key = prop.substring(0, colonIdx).trim().replace(/\?$/, '');
247
+ const typeVal = prop.substring(colonIdx + 1).trim();
248
+ originalTypes[key] = typeVal;
249
+ });
250
+ }
251
+ }
160
252
  // Process each property
161
253
  propStrings.forEach(prop => {
162
254
  // Find the first colon that's not inside a nested object/array
@@ -193,13 +285,17 @@ export const parseCSharpObjectStructure = (objectTypeString, originalTypeString)
193
285
  };
194
286
  if (baseType.startsWith('{')) {
195
287
  // This is a nested object
196
- const nestedStructure = parseCSharpObjectStructure(baseType);
288
+ const nestedStructure = parseCSharpObjectStructure(baseType, originalTypes[propertyName]);
197
289
  propertyDef.type = isArray ? 'object[]' : 'object';
198
290
  propertyDef.structure = nestedStructure;
199
291
  }
200
292
  else {
201
293
  // This is a primitive type
202
- const csharpType = convertToCSharpType(baseType);
294
+ const originalPropType = originalTypes[propertyName];
295
+ const baseOriginalPropType = isArray && originalPropType?.endsWith('[]')
296
+ ? originalPropType.slice(0, -2).trim()
297
+ : originalPropType;
298
+ const csharpType = convertToCSharpType(baseType, baseOriginalPropType);
203
299
  propertyDef.type = isArray ? `${csharpType}[]` : csharpType;
204
300
  }
205
301
  propertyDef.comment = interfaceComments?.[propertyName] ?? 'N/A';
@@ -38,14 +38,17 @@ describe('util -> convertToCSharpType', () => {
38
38
  expect(convertToCSharpType('undefined')).toBe('undefined');
39
39
  expect(convertToCSharpType('void')).toBe('void');
40
40
  });
41
+ it('should convert Date to DateTimeOffset', () => {
42
+ expect(convertToCSharpType('Date')).toBe('DateTimeOffset');
43
+ });
41
44
  it('should return the original type if no mapping exists', () => {
42
- expect(convertToCSharpType('Date')).toBe('Date');
43
45
  expect(convertToCSharpType('CustomType')).toBe('CustomType');
44
46
  });
45
47
  it('should handle array types', () => {
46
48
  expect(convertToCSharpType('string[]')).toBe('string[]');
47
49
  expect(convertToCSharpType('number[]')).toBe('double[]');
48
50
  expect(convertToCSharpType('boolean[]')).toBe('bool[]');
51
+ expect(convertToCSharpType('Date[]')).toBe('DateTimeOffset[]');
49
52
  expect(convertToCSharpType('CustomType[]')).toBe('CustomType[]');
50
53
  });
51
54
  it('should convert object types to "object"', () => {
@@ -56,6 +59,22 @@ describe('util -> convertToCSharpType', () => {
56
59
  expect(convertToCSharpType('{ foo: string }[]')).toBe('object[]');
57
60
  expect(convertToCSharpType('{ label: string; value: string; disabled?: boolean; }[]')).toBe('object[]');
58
61
  });
62
+ it('should return TimeOnly when originalType is TimeOnly', () => {
63
+ expect(convertToCSharpType('`${number}:${number}:${number}`', 'TimeOnly')).toBe('TimeOnly');
64
+ });
65
+ it('should return DateOnly when originalType is DateOnly', () => {
66
+ expect(convertToCSharpType('`${number}-${number}-${number}`', 'DateOnly')).toBe('DateOnly');
67
+ });
68
+ it('should handle TimeOnly array via originalType', () => {
69
+ expect(convertToCSharpType('`${number}:${number}:${number}`[]', 'TimeOnly[]')).toBe('TimeOnly[]');
70
+ });
71
+ it('should handle DateOnly array via originalType', () => {
72
+ expect(convertToCSharpType('`${number}-${number}-${number}`[]', 'DateOnly[]')).toBe('DateOnly[]');
73
+ });
74
+ it('should ignore originalType when it is not TimeOnly or DateOnly', () => {
75
+ expect(convertToCSharpType('string', 'SomeAlias')).toBe('string');
76
+ expect(convertToCSharpType('number', 'MyNumber')).toBe('double');
77
+ });
59
78
  });
60
79
  describe('util -> checkForRecursiveType', () => {
61
80
  it('marks recursive when structure keys match parent keys', () => {
@@ -247,4 +266,79 @@ describe('util -> parseCSharpObjectStructure', () => {
247
266
  expect(() => parseCSharpObjectStructure('{ unclosed: string;')).toThrow();
248
267
  expect(() => parseCSharpObjectStructure('malformed')).not.toThrow();
249
268
  });
269
+ it('should pass original type names to convertToCSharpType for TimeOnly', () => {
270
+ const result = parseCSharpObjectStructure('{ start?: `${number}:${number}:${number}`; end?: `${number}:${number}:${number}` }', '{ start?: TimeOnly; end?: TimeOnly }');
271
+ expect(result).toEqual({
272
+ start: {
273
+ type: 'TimeOnly',
274
+ optional: true,
275
+ comment: 'N/A',
276
+ },
277
+ end: {
278
+ type: 'TimeOnly',
279
+ optional: true,
280
+ comment: 'N/A',
281
+ },
282
+ });
283
+ });
284
+ it('should pass original type names to convertToCSharpType for DateOnly', () => {
285
+ const result = parseCSharpObjectStructure('{ date?: `${number}-${number}-${number}` }', '{ date?: DateOnly }');
286
+ expect(result).toEqual({
287
+ date: {
288
+ type: 'DateOnly',
289
+ optional: true,
290
+ comment: 'N/A',
291
+ },
292
+ });
293
+ });
294
+ it('should handle array types with original type names', () => {
295
+ const result = parseCSharpObjectStructure('{ times: `${number}:${number}:${number}`[] }', '{ times: TimeOnly[] }');
296
+ expect(result).toEqual({
297
+ times: {
298
+ type: 'TimeOnly[]',
299
+ optional: false,
300
+ comment: 'N/A',
301
+ },
302
+ });
303
+ });
304
+ it('should pass original type through nested object structures', () => {
305
+ const result = parseCSharpObjectStructure('{ range: { start?: `${number}:${number}:${number}`; end?: `${number}:${number}:${number}` } }', '{ range: { start?: TimeOnly; end?: TimeOnly } }');
306
+ expect(result).toEqual({
307
+ range: {
308
+ type: 'object',
309
+ optional: false,
310
+ comment: 'N/A',
311
+ structure: {
312
+ start: {
313
+ type: 'TimeOnly',
314
+ optional: true,
315
+ comment: 'N/A',
316
+ },
317
+ end: {
318
+ type: 'TimeOnly',
319
+ optional: true,
320
+ comment: 'N/A',
321
+ },
322
+ },
323
+ },
324
+ });
325
+ });
326
+ it('should handle mixed original types and regular types', () => {
327
+ const result = parseCSharpObjectStructure('{ label: string; time: `${number}:${number}:${number}`; count: number }', '{ label: string; time: TimeOnly; count: number }');
328
+ expect(result).toEqual({
329
+ label: { type: 'string', optional: false, comment: 'N/A' },
330
+ time: { type: 'TimeOnly', optional: false, comment: 'N/A' },
331
+ count: { type: 'double', optional: false, comment: 'N/A' },
332
+ });
333
+ });
334
+ it('should still work when originalTypeString is not provided', () => {
335
+ const result = parseCSharpObjectStructure('{ start?: `${number}:${number}:${number}` }');
336
+ expect(result).toEqual({
337
+ start: {
338
+ type: '`${number}:${number}:${number}`',
339
+ optional: true,
340
+ comment: 'N/A',
341
+ },
342
+ });
343
+ });
250
344
  });