@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,2 +0,0 @@
1
- import{r as e,c as a,h as o,H as r,g as t}from"./p-d0a33e64.js";import{c as n}from"./p-8a1a6e56.js";import{F as s}from"./p-51602221.js";import{u as i}from"./p-3cd7a66f.js";import{u as c}from"./p-a271e3be.js";import"./p-42ea6b74.js";import{t as l}from"./p-a52cd849.js";const f='nv-alert{display:flex !important;align-items:flex-start;position:relative;gap:var(--alert-gap-x);border-radius:var(--alert-radius);font-family:"TT Norms Pro", "Montserrat", sans-serif}nv-alert>nv-icon{margin-left:var(--alert-icon-position-x);margin-top:var(--alert-icon-position-y)}nv-alert.hidden{display:none !important}nv-alert.feedback-information{background-color:var(--components-alert-information-background);border:1px solid var(--components-alert-information-border) !important}nv-alert.feedback-information>.close:focus,nv-alert.feedback-information>.close:focus-within{outline:none}nv-alert.feedback-information>.close:focus-visible,nv-alert.feedback-information>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-information-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-warning{background-color:var(--components-alert-warning-background);border:1px solid var(--components-alert-warning-border) !important}nv-alert.feedback-warning>.close:focus,nv-alert.feedback-warning>.close:focus-within{outline:none}nv-alert.feedback-warning>.close:focus-visible,nv-alert.feedback-warning>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-warning-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-error{background-color:var(--components-alert-error-background);border:1px solid var(--components-alert-error-border) !important}nv-alert.feedback-error>.close:focus,nv-alert.feedback-error>.close:focus-within{outline:none}nv-alert.feedback-error>.close:focus-visible,nv-alert.feedback-error>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-error-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-success{background-color:var(--components-alert-success-background);border:1px solid var(--components-alert-success-border) !important}nv-alert.feedback-success>.close:focus,nv-alert.feedback-success>.close:focus-within{outline:none}nv-alert.feedback-success>.close:focus-visible,nv-alert.feedback-success>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-success-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert.feedback-neutral{background-color:var(--components-alert-neutral-background);border:1px solid var(--components-alert-neutral-border) !important}nv-alert.feedback-neutral>.close:focus,nv-alert.feedback-neutral>.close:focus-within{outline:none}nv-alert.feedback-neutral>.close:focus-visible,nv-alert.feedback-neutral>.close:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-alert-neutral-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-alert>nv-icon.icon-information{color:var(--components-alert-information-icon)}nv-alert>nv-icon.icon-warning{color:var(--components-alert-warning-icon)}nv-alert>nv-icon.icon-error{color:var(--components-alert-error-icon)}nv-alert>nv-icon.icon-success{color:var(--components-alert-success-icon)}nv-alert>nv-icon.icon-neutral{color:var(--components-alert-neutral-icon)}nv-alert>.content{display:flex;padding:var(--alert-padding);padding-right:calc(var(--alert-padding) + var(--spacing-5) + var(--spacing-1));padding-left:0;flex-direction:column;gap:var(--alert-gap-y)}nv-alert>.content>.heading{color:var(--components-alert-content-title);font-size:var(--alert-heading-font-size);line-height:var(--alert-heading-line-height);font-weight:var(--alert-heading-font-weight)}nv-alert>.content>.message{color:var(--components-alert-content-description);font-size:var(--alert-message-font-size);line-height:var(--alert-message-line-height)}nv-alert>.close{border-radius:var(--alert-radius);position:absolute;display:flex;top:var(--alert-icon-position-y);right:var(--alert-icon-position-x);padding:0;border:none;background:none;cursor:pointer}';const d=f;const u=class{constructor(o){e(this,o);this.hiddenChanged=a(this,"hiddenChanged",7);this.hiddenChangedComplete=a(this,"hiddenChangedComplete",7);this.closeClicked=a(this,"closeClicked",7);this.feedback="information";this.dismissible=false;this.preventAutoClose=false;this.hidden=false;this.hasNoAnimations=false;this.handleDismiss=()=>{if(!this.preventAutoClose){this.hidden=true}this.closeClicked.emit()};this.getDefaultIcon=()=>{switch(this.feedback){case s.Warning:return"alert-circle";case s.Information:return"info-circle";case s.Success:return"circle-check";case s.Error:return"alert-circle";case s.Neutral:return"help";default:return"info-circle"}}}componentWillRender(){if(this.color){switch(this.color){case"primary":this.feedback="warning";break;case"secondary":this.feedback="information";break;case"neutral":this.feedback="information";break;default:this.feedback=this.color}}}async handleHiddenChange(e){this.hiddenChanged.emit(e);await this.updateVisibility(e);this.hiddenChangedComplete.emit(e)}async updateVisibility(e){if(this.hasNoAnimations){this.toggleHiddenClass(e);return}const{fadeIn:a,fadeOut:o}=c(this.el,{duration:150});const{collapse:r,expand:t}=i(this.el,{duration:250});if(e){await l(o,r).start();this.toggleHiddenClass(true)}else{this.toggleHiddenClass(false);await l(t,a).start()}}toggleHiddenClass(e){this.el.classList.toggle("hidden",e)}componentWillLoad(){if(this.color){switch(this.color){case"primary":this.feedback="warning";break;case"secondary":this.feedback="information";break;case"neutral":this.feedback="information";break;default:this.feedback=this.color}}if(this.hidden){this.el.classList.add("hidden")}}render(){var e;return o(r,{key:"08bc48f1d9bba66505e46fb26b8400f185dcc716",role:"alert",class:n("root",`feedback-${this.feedback}`)},o("nv-icon",{key:"b4846e6aee8cf6cfde913372b11675a3c0301fa3",name:(e=this.icon)!==null&&e!==void 0?e:this.getDefaultIcon(),class:`icon-${this.feedback}`,size:"md"}),o("div",{key:"61edadca039963056bdf27914829286515269a4a",class:"content"},this.heading&&o("p",{key:"25c0396ade2573a9f955302cfe52702fe5e4f531",class:"heading"},this.heading),this.message&&o("p",{key:"dbef6eac9028f5431bb9665ca5642af5278c20d7",class:"message"},this.message),o("slot",{key:"5aa607cb7c48783371887fd9126b247647e8b37c"})),this.dismissible&&o("button",{key:"e6be3501788f12fac97c162c0ed64c922acd4b22",class:"close",type:"button",onClick:this.handleDismiss},o("nv-icon",{key:"f39c94a6cf82226eb77143bce7b4d74aff30c05a",name:"x",size:"sm"})))}get el(){return t(this)}static get watchers(){return{hidden:["handleHiddenChange"]}}};u.style=d;export{u as nv_alert};
2
- //# sourceMappingURL=p-4ec61dec.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nvAlertCss","NvAlertStyle0","NvAlert","constructor","hostRef","this","feedback","dismissible","preventAutoClose","hidden","hasNoAnimations","handleDismiss","closeClicked","emit","getDefaultIcon","FeedbackColors","Warning","Information","Success","Error","Neutral","componentWillRender","color","handleHiddenChange","hiddenChanged","updateVisibility","hiddenChangedComplete","toggleHiddenClass","fadeIn","fadeOut","useFade","el","duration","collapse","expand","useCollapse","timeline","start","classList","toggle","componentWillLoad","add","render","h","Host","key","role","class","clsx","name","_a","icon","size","heading","message","type","onClick"],"sources":["src/components/nv-alert/nv-alert.scss?tag=nv-alert","src/components/nv-alert/nv-alert.tsx"],"sourcesContent":["@use \"sass:map\";\n@import \"../../styles/focus-ring\";\n\n/* Variants */\n$alert-feedback: (\"information\", \"warning\", \"error\", \"success\", \"neutral\");\n\n/* Define maps for feedback-related variables */\n$components-alert-background: (\n \"information\": var(--components-alert-information-background),\n \"warning\": var(--components-alert-warning-background),\n \"error\": var(--components-alert-error-background),\n \"success\": var(--components-alert-success-background),\n \"neutral\": var(--components-alert-neutral-background)\n);\n\n$components-alert-border: (\n \"information\": var(--components-alert-information-border),\n \"warning\": var(--components-alert-warning-border),\n \"error\": var(--components-alert-error-border),\n \"success\": var(--components-alert-success-border),\n \"neutral\": var(--components-alert-neutral-border)\n);\n\n$components-alert-icon: (\n \"information\": var(--components-alert-information-icon),\n \"warning\": var(--components-alert-warning-icon),\n \"error\": var(--components-alert-error-icon),\n \"success\": var(--components-alert-success-icon),\n \"neutral\": var(--components-alert-neutral-icon)\n);\n\n@mixin root-styles() {\n display: flex !important; // override the display: none in [hidden] css\n align-items: flex-start;\n position: relative;\n gap: var(--alert-gap-x);\n border-radius: var(--alert-radius);\n font-family: \"TT Norms Pro\", \"Montserrat\", sans-serif;\n}\n\n@mixin content-styles() {\n display: flex;\n padding: var(--alert-padding);\n padding-right: calc(var(--alert-padding) + var(--spacing-5) + var(--spacing-1));\n padding-left: 0;\n flex-direction: column;\n gap: var(--alert-gap-y);\n}\n\n@mixin feedback-color($feedback-type) {\n background-color: map.get($components-alert-background, $feedback-type);\n border: 1px solid map.get($components-alert-border, $feedback-type) !important;\n}\n\n@mixin icon-color($feedback-type) {\n color: map.get($components-alert-icon, $feedback-type);\n}\n\n@mixin icon-position {\n margin-left: var(--alert-icon-position-x);\n margin-top: var(--alert-icon-position-y);\n}\n\nnv-alert {\n @include root-styles();\n\n & > nv-icon {\n @include icon-position();\n }\n\n &.hidden {\n display: none!important;\n }\n\n @each $feedback in $alert-feedback {\n &.feedback-#{$feedback} {\n @include feedback-color($feedback);\n & > .close {\n @include focus-ring(map.get($components-alert-border, $feedback));\n }\n }\n }\n\n @each $feedback in $alert-feedback {\n & > nv-icon.icon-#{$feedback} {\n @include icon-color($feedback);\n }\n }\n\n & > .content {\n @include content-styles();\n\n & > .heading {\n color: var(--components-alert-content-title);\n font-size: var(--alert-heading-font-size);\n line-height: var(--alert-heading-line-height);\n font-weight: var(--alert-heading-font-weight);\n }\n & > .message {\n color: var(--components-alert-content-description);\n font-size: var(--alert-message-font-size);\n line-height: var(--alert-message-line-height);\n }\n }\n & > .close {\n border-radius: var(--alert-radius);\n position: absolute;\n display: flex;\n top: var(--alert-icon-position-y);\n right: var(--alert-icon-position-x);\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Watch,\n Element,\n} from '@stencil/core';\nimport clsx from 'clsx';\n\nimport {\n DeprecatedSemanticColors,\n FeedbackColors,\n} from '../../utils/constants';\nimport { useCollapse, useFade, timeline } from '../../animations';\nimport { type IconName } from '../nv-icon/nv-icons';\n\n/**\n * @slot default - Use this slot to insert HTML into the alert content.\n */\n@Component({\n tag: 'nv-alert',\n styleUrl: 'nv-alert.scss',\n shadow: false,\n})\nexport class NvAlert {\n @Element() el: HTMLNvAlertElement;\n\n /****************************************************************************/\n //#region DEPRECATED\n\n /**\n * Defines color of the alert.\n * @deprecated use feedback instead.\n */\n @Prop({ reflect: true })\n readonly color: `${DeprecatedSemanticColors}`;\n\n componentWillRender() {\n if (this.color) {\n switch (this.color) {\n case 'primary' as DeprecatedSemanticColors:\n this.feedback = 'warning' as FeedbackColors;\n break;\n case 'secondary' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n case 'neutral' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n default:\n this.feedback = this.color as FeedbackColors;\n }\n }\n }\n\n //#endregion DEPRECATED\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Specifies the alert type which determines the color and default icon.\n */\n @Prop({ reflect: true, mutable: true })\n feedback: `${FeedbackColors}` = 'information';\n\n /**\n * Main content of the alert. For more complex content, use the default slot\n * instead.\n */\n @Prop({ reflect: true })\n readonly message: string;\n\n /**\n * Short and concise text for the alert title.\n */\n @Prop({ reflect: true })\n readonly heading: string;\n\n /**\n * Icon associated with the alert, defaults vary based on the feedback type.\n */\n @Prop({ reflect: true })\n readonly icon: string;\n\n /**\n * Allows the alert to be dismissed via a close button (x). The alert is not\n * dismissible unless explicitly enabled.\n */\n @Prop({ reflect: true })\n readonly dismissible: boolean = false;\n\n /**\n * When true, the alert does not automatically close upon dismissing.\n * Useful for externally controlled component behavior.\n */\n @Prop({ reflect: true })\n readonly preventAutoClose: boolean = false;\n\n /**\n * Controls the visibility of the alert. Will animate with fade and collapse.\n */\n @Prop({ reflect: true, mutable: true })\n hidden: boolean = false; // eslint-disable-line @stencil-community/reserved-member-names\n\n /**\n * When true, the alert will not animate when it is hidden or shown.\n */\n @Prop({ reflect: true })\n readonly hasNoAnimations: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emits when the 'hidden' prop changes, reflecting a change in visibility.\n * Passes hidden value to the detail.\n * @bind hidden\n */\n @Event()\n hiddenChanged: EventEmitter<boolean>;\n\n /**\n * Emitted when the animations complete, detail includes the hidden value.\n */\n @Event()\n hiddenChangedComplete: EventEmitter<boolean>;\n\n /**\n * Emitted when the close button is clicked.\n */\n @Event()\n closeClicked: EventEmitter<void>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n /**\n * Used for 2 way binding with the hidden property.\n * Triggers open and close animations.\n * @param {boolean} hidden - The visibility state of the alert.\n */\n @Watch('hidden')\n async handleHiddenChange(hidden: boolean) {\n this.hiddenChanged.emit(hidden);\n\n await this.updateVisibility(hidden);\n this.hiddenChangedComplete.emit(hidden);\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Handles the dismissal of the alert, considering the preventAutoClose prop.\n * Passes the original event from the close button to the close event detail.\n * @param {MouseEvent} originalEvent - The original event from the close button.\n */\n private handleDismiss = () => {\n if (!this.preventAutoClose) {\n this.hidden = true;\n }\n\n this.closeClicked.emit();\n };\n\n /**\n * By default an icon is linked to the feedback type\n * @returns {string} - The default icon name.\n */\n private getDefaultIcon = (): IconName => {\n switch (this.feedback) {\n case FeedbackColors.Warning:\n return 'alert-circle';\n case FeedbackColors.Information:\n return 'info-circle';\n case FeedbackColors.Success:\n return 'circle-check';\n case FeedbackColors.Error:\n return 'alert-circle';\n case FeedbackColors.Neutral:\n return 'help';\n default:\n return 'info-circle';\n }\n };\n\n /**\n * Updates the visibility state of the alert with optional animations\n * @param {boolean} hidden - Whether the alert should be hidden\n */\n private async updateVisibility(hidden: boolean) {\n if (this.hasNoAnimations) {\n this.toggleHiddenClass(hidden);\n return;\n }\n\n const { fadeIn, fadeOut } = useFade(this.el, { duration: 150 });\n const { collapse, expand } = useCollapse(this.el, { duration: 250 });\n\n if (hidden) {\n await timeline(fadeOut, collapse).start();\n this.toggleHiddenClass(true);\n } else {\n this.toggleHiddenClass(false);\n await timeline(expand, fadeIn).start();\n }\n }\n\n /**\n * Toggles the 'hidden' class on the element\n * @param {boolean} hidden - Whether to add or remove the hidden class\n */\n private toggleHiddenClass(hidden: boolean) {\n this.el.classList.toggle('hidden', hidden);\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (this.color) {\n switch (this.color) {\n case 'primary' as DeprecatedSemanticColors:\n this.feedback = 'warning' as FeedbackColors;\n break;\n case 'secondary' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n case 'neutral' as DeprecatedSemanticColors:\n this.feedback = 'information' as FeedbackColors;\n break;\n default:\n this.feedback = this.color as FeedbackColors;\n }\n }\n\n if (this.hidden) {\n this.el.classList.add('hidden');\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host role=\"alert\" class={clsx('root', `feedback-${this.feedback}`)}>\n <nv-icon\n name={this.icon ?? this.getDefaultIcon()}\n class={`icon-${this.feedback}`}\n size=\"md\"\n ></nv-icon>\n\n <div class=\"content\">\n {this.heading && <p class=\"heading\">{this.heading}</p>}\n\n {this.message && <p class=\"message\">{this.message}</p>}\n\n <slot></slot>\n </div>\n\n {this.dismissible && (\n <button class=\"close\" type=\"button\" onClick={this.handleDismiss}>\n <nv-icon name=\"x\" size=\"sm\" />\n </button>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"mappings":"4QAAA,MAAMA,EAAa,+2HACnB,MAAAC,EAAeD,E,MC0BFE,EAAO,MALpB,WAAAC,CAAAC,G,+JA4CEC,KAAAC,SAAgC,cA0BvBD,KAAAE,YAAuB,MAOvBF,KAAAG,iBAA4B,MAMrCH,KAAAI,OAAkB,MAMTJ,KAAAK,gBAA2B,MAoD5BL,KAAAM,cAAgB,KACtB,IAAKN,KAAKG,iBAAkB,CAC1BH,KAAKI,OAAS,I,CAGhBJ,KAAKO,aAAaC,MAAM,EAOlBR,KAAAS,eAAiB,KACvB,OAAQT,KAAKC,UACX,KAAKS,EAAeC,QAClB,MAAO,eACT,KAAKD,EAAeE,YAClB,MAAO,cACT,KAAKF,EAAeG,QAClB,MAAO,eACT,KAAKH,EAAeI,MAClB,MAAO,eACT,KAAKJ,EAAeK,QAClB,MAAO,OACT,QACE,MAAO,c,EApJb,mBAAAC,GACE,GAAIhB,KAAKiB,MAAO,CACd,OAAQjB,KAAKiB,OACX,IAAK,UACHjB,KAAKC,SAAW,UAChB,MACF,IAAK,YACHD,KAAKC,SAAW,cAChB,MACF,IAAK,UACHD,KAAKC,SAAW,cAChB,MACF,QACED,KAAKC,SAAWD,KAAKiB,M,EA8F7B,wBAAMC,CAAmBd,GACvBJ,KAAKmB,cAAcX,KAAKJ,SAElBJ,KAAKoB,iBAAiBhB,GAC5BJ,KAAKqB,sBAAsBb,KAAKJ,E,CA6C1B,sBAAMgB,CAAiBhB,GAC7B,GAAIJ,KAAKK,gBAAiB,CACxBL,KAAKsB,kBAAkBlB,GACvB,M,CAGF,MAAMmB,OAAEA,EAAMC,QAAEA,GAAYC,EAAQzB,KAAK0B,GAAI,CAAEC,SAAU,MACzD,MAAMC,SAAEA,EAAQC,OAAEA,GAAWC,EAAY9B,KAAK0B,GAAI,CAAEC,SAAU,MAE9D,GAAIvB,EAAQ,OACJ2B,EAASP,EAASI,GAAUI,QAClChC,KAAKsB,kBAAkB,K,KAClB,CACLtB,KAAKsB,kBAAkB,aACjBS,EAASF,EAAQN,GAAQS,O,EAQ3B,iBAAAV,CAAkBlB,GACxBJ,KAAK0B,GAAGO,UAAUC,OAAO,SAAU9B,E,CAOrC,iBAAA+B,GACE,GAAInC,KAAKiB,MAAO,CACd,OAAQjB,KAAKiB,OACX,IAAK,UACHjB,KAAKC,SAAW,UAChB,MACF,IAAK,YACHD,KAAKC,SAAW,cAChB,MACF,IAAK,UACHD,KAAKC,SAAW,cAChB,MACF,QACED,KAAKC,SAAWD,KAAKiB,M,CAI3B,GAAIjB,KAAKI,OAAQ,CACfJ,KAAK0B,GAAGO,UAAUG,IAAI,S,EAQ1B,MAAAC,G,MACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,KAAK,QAAQC,MAAOC,EAAK,OAAQ,YAAY3C,KAAKC,aACtDqC,EAAA,WAAAE,IAAA,2CACEI,MAAMC,EAAA7C,KAAK8C,QAAI,MAAAD,SAAA,EAAAA,EAAI7C,KAAKS,iBACxBiC,MAAO,QAAQ1C,KAAKC,WACpB8C,KAAK,OAGPT,EAAA,OAAAE,IAAA,2CAAKE,MAAM,WACR1C,KAAKgD,SAAWV,EAAA,KAAAE,IAAA,2CAAGE,MAAM,WAAW1C,KAAKgD,SAEzChD,KAAKiD,SAAWX,EAAA,KAAAE,IAAA,2CAAGE,MAAM,WAAW1C,KAAKiD,SAE1CX,EAAA,QAAAE,IAAA,8CAGDxC,KAAKE,aACJoC,EAAA,UAAAE,IAAA,2CAAQE,MAAM,QAAQQ,KAAK,SAASC,QAASnD,KAAKM,eAChDgC,EAAA,WAAAE,IAAA,2CAASI,KAAK,IAAIG,KAAK,Q","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as n,h as t,H as o,g as i}from"./p-d0a33e64.js";const r="nv-menuitem{display:flex;align-items:center;max-width:300px;width:100vw;font-size:var(--menu-contextual-item-font-size);font-weight:var(--menu-contextual-item-font-weight);color:var(--components-menu-contextual-item-content);border-radius:var(--menu-contextual-item-radius);gap:var(--menu-contextual-item-gap-x);padding:var(--menu-contextual-item-padding-y) var(--menu-contextual-item-padding-x);transition:background-color 150ms ease-out;cursor:pointer}nv-menuitem:hover,nv-menuitem:focus,nv-menuitem:focus-within{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menuitem *{pointer-events:none}nv-menuitem kbd{color:var(--components-menu-contextual-item-shortcut)}nv-menuitem [data-scope=text]{margin-right:auto}nv-menuitem[disabled]:not([disabled=false]){cursor:unset;background-color:unset;color:var(--components-menu-contextual-item-content-disabled)}nv-menu{display:inline-block;position:relative}nv-menu:has([fluid]:not([fluid=false])){display:block}nv-menu nv-popover{display:unset}nv-menu nv-popover [data-scope=popover]{background-color:transparent !important;padding:0 !important}nv-menu [slot=content]{padding:var(--menu-contextual-padding-y) var(--menu-contextual-padding-x);border-radius:var(--menu-contextual-radius);gap:var(--menu-contextual-gap-y);background-color:var(--components-menu-contextual-background);border-color:var(--components-menu-contextual-border);display:flex;flex-direction:column}nv-menu nv-menu[open]:not([open=false])>nv-menuitem{background-color:var(--components-menu-contextual-item-background-hover);color:var(--components-menu-contextual-item-content-hover)}nv-menu hr{display:block;margin:var(--menu-contextual-divider-padding-top) var(--menu-contextual-divider-padding-x) var(--menu-contextual-divider-padding-bottom) var(--menu-contextual-divider-padding-x)}";const a=r;const s=class{constructor(o){e(this,o);this.menuitemSelected=n(this,"menuitemSelected",7);this.isHandlingKeyDown=false;this.open=false;this.nested=false;this.disableCloseOnSelect=false;this.placement="bottom-end";this.renderMenuItems=()=>this.items.map((e=>{var n;if(e.hasSubmenu&&((n=e.submenuItems)===null||n===void 0?void 0:n.length)>0){return t("nv-menu",{nested:true,placement:"right-start",items:e.submenuItems},t("nv-menuitem",{slot:"trigger",hasSubmenu:true,disabled:e.disabled,icon:e.icon,shortcut:e.shortcut,id:e.value,name:e.label,label:e.label}))}return t("nv-menuitem",{disabled:e.disabled,icon:e.icon,shortcut:e.shortcut,id:e.value,name:e.label,label:e.label})}))}async show(){this.open=true}async close(){this.open=false}handleMenuItemSelect(e){if(this.disableCloseOnSelect)return;if(e.detail.hasSubmenu)return;this.open=false}handleKeydown(e){if(!this.open){if((e.key==="Enter"||e.key==="ArrowDown"||e.key===" ")&&document.activeElement===this.triggerElement){e.preventDefault();this.show();const n=this.popoverElement.querySelector("nv-menuitem");if(n){requestAnimationFrame((()=>n.focus()))}}return}if(this.isHandlingKeyDown)return;this.isHandlingKeyDown=true;if(e.key==="ArrowDown"||e.key==="ArrowUp"||e.key==="ArrowLeft"||e.key==="ArrowRight"||e.key==="Escape"){e.preventDefault()}if(e.key==="Escape"&&!this.nested){this.close();this.triggerElement.focus();this.isHandlingKeyDown=false;return}const n=this.el.querySelector('[slot="content"]');const t=Array.from(n.childNodes).filter((e=>{var n;return(n=e.matches)===null||n===void 0?void 0:n.call(e,"nv-menuitem, nv-menu")}));let o=t.indexOf(document.activeElement);if(o===-1)o=t.indexOf(document.activeElement.parentElement);if(o===-1&&t.find((e=>e.matches("nv-menu[open]")))){this.isHandlingKeyDown=false;return}if(e.key==="ArrowDown"||e.key==="ArrowUp"){t.forEach((e=>{if(e.matches("nv-menu"))e.close()}))}if(e.key==="ArrowDown"){let e=(o+1)%t.length;while(t[e].matches("nv-menuitem[disabled]")){e=(e+1)%t.length}const n=t[e];if(n.matches("nv-menuitem")){n.focus()}else if(n.matches("nv-menu")){n.querySelector("nv-menuitem").focus()}}if(e.key==="ArrowUp"){let e=(o-1+t.length)%t.length;while(t[e].matches("nv-menuitem[disabled]")){e=(e-1+t.length)%t.length}const n=t[e];if(n.matches("nv-menuitem")){n.focus()}else if(n.matches("nv-menu")){n.querySelector("nv-menuitem").focus()}}if(e.key==="ArrowRight"){const e=t[o];if(!e.matches("nv-menu")){this.isHandlingKeyDown=false;return}e.show()}if(e.key==="ArrowLeft"&&this.nested){if(t.find((e=>e.matches("nv-menu[open]")))){this.isHandlingKeyDown=false;return}this.close();this.triggerElement.focus()}this.isHandlingKeyDown=false}handleOpenChanged(e){e.stopPropagation();if(e.target===this.el.querySelector("nv-popover")){this.open=e.detail}const n=this.triggerElement===document.activeElement;const t=this.triggerElement.matches(":focus-visible");if(n&&t)this.focusFirstItem()}focusFirstItem(){const e=this.popoverElement.querySelector("nv-menuitem");if(e){requestAnimationFrame((()=>e.focus()))}}componentWillLoad(){this.triggerElement=Array.from(this.el.children).find((e=>e.getAttribute("slot")==="trigger"))}render(){return t(o,{key:"163c25a3424503f4c32e5c47647d685882f6dd57"},t("slot",{key:"64c7fe175a04a174f92d4fe62026ab03db6f16a9",name:"trigger"}),t("nv-popover",{key:"bd8e058010e53b1f68cbefcba6871ee7a02f0e9a",ref:e=>this.popoverElement=e,triggerMode:"click",triggerElement:this.triggerElement,placement:this.placement,nested:this.nested,open:this.open},this.items?t("ul",{slot:"content"},this.renderMenuItems()):t("slot",{name:"content"})))}get el(){return i(this)}};s.style=a;export{s as nv_menu};
2
- //# sourceMappingURL=p-5f0776cb.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nvMenuCss","NvMenuStyle0","NvMenu","constructor","hostRef","this","isHandlingKeyDown","open","nested","disableCloseOnSelect","placement","renderMenuItems","items","map","item","hasSubmenu","_a","submenuItems","length","h","slot","disabled","icon","shortcut","id","value","name","label","show","close","handleMenuItemSelect","event","detail","handleKeydown","key","document","activeElement","triggerElement","preventDefault","firstMenuItem","popoverElement","querySelector","requestAnimationFrame","focus","menuContent","el","menuItems","Array","from","childNodes","filter","matches","call","currentIndex","indexOf","parentElement","find","forEach","nextIndex","nextFocusable","prevIndex","prevFocusable","submenu","handleOpenChanged","stopPropagation","target","triggerHasFocus","triggerHasFocusVisible","focusFirstItem","firstButton","componentWillLoad","children","child","getAttribute","render","Host","ref","triggerMode"],"sources":["src/components/nv-menu/nv-menu.scss?tag=nv-menu","src/components/nv-menu/nv-menu.tsx"],"sourcesContent":["@use \"../nv-menuitem/nv-menuitem\" as nv-menuitem;\n\n@mixin root-styles() {\n display: inline-block;\n position: relative;\n\n &:has([fluid]:not([fluid=\"false\"])) {\n display: block;\n }\n}\n\n@mixin content-styles() {\n padding: var(--menu-contextual-padding-y)\n var(--menu-contextual-padding-x);\n border-radius: var(--menu-contextual-radius);\n gap: var(--menu-contextual-gap-y);\n background-color: var(--components-menu-contextual-background);\n border-color: var(--components-menu-contextual-border);\n display: flex;\n flex-direction: column;\n}\n\n@mixin separator-styles() {\n display: block;\n margin: var(--menu-contextual-divider-padding-top)\n var(--menu-contextual-divider-padding-x)\n var(--menu-contextual-divider-padding-bottom)\n var(--menu-contextual-divider-padding-x) ;\n}\n\nnv-menu {\n @include root-styles();\n\n nv-popover {\n display: unset;\n\n [data-scope=popover]{\n background-color: transparent !important;\n padding: 0 !important;\n }\n }\n\n [slot=\"content\"] {\n @include content-styles();\n }\n\n nv-menu[open]:not([open=\"false\"]) {\n > nv-menuitem {\n @include nv-menuitem.focused-styles();\n }\n }\n\n hr {\n @include separator-styles();\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Listen,\n Event,\n EventEmitter,\n Method,\n} from '@stencil/core';\nimport type { Placement } from '@floating-ui/dom';\nimport { IconName } from '../nv-icon/nv-icons';\n\n/**\n * @slot trigger - The button element that toggles the menu popover\n * @slot content - The content of the menu, should be wrapped in a ul element containing nv-menuitem elements\n */\n@Component({\n tag: 'nv-menu',\n styleUrl: 'nv-menu.scss',\n shadow: false,\n})\nexport class NvMenu {\n @Element() el: HTMLNvMenuElement;\n private triggerElement!: HTMLElement;\n private popoverElement!: HTMLNvPopoverElement;\n private isHandlingKeyDown: boolean = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Use this to toggle the initial visibility of the menu, by default the menu\n * is hidden.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * Use this if the menu is nested inside another menu. This will prevent the\n * parent menu from closing when the child menu is opened.\n */\n @Prop({ reflect: true })\n readonly nested: boolean = false;\n\n /**\n * Use this to disable the menu from closing automatically when a menu item is\n * selected.\n */\n @Prop({ reflect: true })\n readonly disableCloseOnSelect: boolean = false;\n\n /**\n * Decides where the menu shows up next to the button it's linked to (above,\n * below, to the sides). If there isn't enough room, it will adjust its\n * position on the axis to fit on the screen, so users can always see it.\n */\n @Prop({ reflect: true })\n readonly placement: Placement = 'bottom-end';\n\n /**\n * List of items used to automatically generate dropdown items. This\n * provides an alternative to using the slot manually.\n *\n * @example\n * items = [{\n * \"label\": \"Option 1\",\n * \"value\": \"option1\",\n * },\n * {\n * \"label\": \"Option 2\",\n * \"value\": \"option2\",\n * }]\n */\n @Prop({ reflect: true })\n readonly items?: {\n /**\n * The label of the menu item.\n */\n label: string;\n /**\n * The value of the menu item.\n */\n value?: string;\n /**\n * Whether the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * Whether the menu item has a submenu.\n */\n hasSubmenu?: boolean;\n /**\n * The icon of the menu item.\n */\n icon?: string;\n /**\n * The shortcut of the menu item.\n */\n shortcut?: string;\n /**\n * Whether the menu item is nested.\n */\n nested?: boolean;\n /**\n * The submenu items of the menu item.\n */\n submenuItems?: InstanceType<typeof NvMenu>['items'];\n }[];\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Opens the menu.\n */\n @Method()\n async show() {\n this.open = true;\n }\n\n /**\n * Closes the menu.\n */\n @Method()\n async close() {\n this.open = false;\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted from nv-menuitem elements with the corresponding id and name when\n * selected (via click or keyboard). This event listener can be attached to\n * either the nv-menu or the nv-menuitem element.\n */\n @Event()\n menuitemSelected: EventEmitter<\n HTMLNvMenuitemElementEventMap['menuitemSelected']\n >;\n\n @Listen('menuitemSelected')\n handleMenuItemSelect(\n event: CustomEvent<HTMLNvMenuitemElementEventMap['menuitemSelected']>,\n ) {\n if (this.disableCloseOnSelect) return;\n if (event.detail.hasSubmenu) return;\n this.open = false;\n }\n\n @Listen('keydown', { passive: false })\n handleKeydown(event: KeyboardEvent) {\n // If the menu is not open, check if the trigger is focused\n // and the user presses Enter or ArrowDown, open the menu\n if (!this.open) {\n if (\n (event.key === 'Enter' ||\n event.key === 'ArrowDown' ||\n event.key === ' ') &&\n document.activeElement === this.triggerElement\n ) {\n event.preventDefault();\n this.show();\n // Then, put the focus on the first menuitem\n const firstMenuItem = this.popoverElement.querySelector('nv-menuitem');\n if (firstMenuItem) {\n requestAnimationFrame(() => (firstMenuItem as HTMLElement).focus());\n }\n }\n return;\n }\n\n if (this.isHandlingKeyDown) return;\n this.isHandlingKeyDown = true;\n\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight' ||\n event.key === 'Escape'\n ) {\n event.preventDefault();\n }\n\n if (event.key === 'Escape' && !this.nested) {\n this.close();\n this.triggerElement.focus();\n this.isHandlingKeyDown = false;\n return;\n }\n\n const menuContent = this.el.querySelector('[slot=\"content\"]');\n const menuItems = (\n Array.from(menuContent.childNodes) as Array<\n HTMLNvMenuitemElement | HTMLNvMenuElement\n >\n ).filter(item => item.matches?.('nv-menuitem, nv-menu'));\n\n let currentIndex = menuItems.indexOf(\n document.activeElement as HTMLNvMenuitemElement,\n );\n if (currentIndex === -1)\n currentIndex = menuItems.indexOf(\n document.activeElement.parentElement as HTMLNvMenuitemElement,\n );\n if (\n currentIndex === -1 &&\n menuItems.find(item => item.matches('nv-menu[open]'))\n ) {\n this.isHandlingKeyDown = false;\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n menuItems.forEach(item => {\n if (item.matches('nv-menu')) (item as HTMLNvMenuElement).close();\n });\n }\n\n if (event.key === 'ArrowDown') {\n let nextIndex = (currentIndex + 1) % menuItems.length;\n while (menuItems[nextIndex].matches('nv-menuitem[disabled]')) {\n nextIndex = (nextIndex + 1) % menuItems.length;\n }\n const nextFocusable = menuItems[nextIndex];\n if (nextFocusable.matches('nv-menuitem')) {\n nextFocusable.focus();\n } else if (nextFocusable.matches('nv-menu')) {\n nextFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowUp') {\n let prevIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;\n while (menuItems[prevIndex].matches('nv-menuitem[disabled]')) {\n prevIndex = (prevIndex - 1 + menuItems.length) % menuItems.length;\n }\n const prevFocusable = menuItems[prevIndex];\n if (prevFocusable.matches('nv-menuitem')) {\n prevFocusable.focus();\n } else if (prevFocusable.matches('nv-menu')) {\n prevFocusable.querySelector('nv-menuitem').focus();\n }\n }\n\n if (event.key === 'ArrowRight') {\n const submenu = menuItems[currentIndex];\n if (!submenu.matches('nv-menu')) {\n this.isHandlingKeyDown = false;\n return;\n }\n (submenu as HTMLNvMenuElement).show();\n }\n\n if (event.key === 'ArrowLeft' && this.nested) {\n if (menuItems.find(item => item.matches('nv-menu[open]'))) {\n this.isHandlingKeyDown = false;\n return;\n }\n this.close();\n this.triggerElement.focus();\n }\n\n this.isHandlingKeyDown = false;\n }\n\n @Listen('openChanged')\n handleOpenChanged(event: CustomEvent<boolean>) {\n // Stop propagation to prevent the event from affecting parent components like dialogs\n event.stopPropagation();\n\n if (event.target === this.el.querySelector('nv-popover')) {\n this.open = event.detail;\n }\n const triggerHasFocus = this.triggerElement === document.activeElement;\n const triggerHasFocusVisible =\n this.triggerElement.matches(':focus-visible');\n if (triggerHasFocus && triggerHasFocusVisible) this.focusFirstItem();\n }\n\n private focusFirstItem() {\n const firstButton = this.popoverElement.querySelector('nv-menuitem');\n if (firstButton) {\n requestAnimationFrame(() => firstButton.focus());\n }\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n this.triggerElement = Array.from(this.el.children).find(child => {\n return child.getAttribute('slot') === 'trigger';\n }) as HTMLElement;\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n /**\n * Generates menu items from the `items` property.\n * @param {MenuItem[]} items - The items to display in the menu.\n * @returns {HTMLElement[]} The rendered items.\n */\n private renderMenuItems = () => {\n return this.items.map(item => {\n if (item.hasSubmenu && item.submenuItems?.length > 0) {\n return (\n <nv-menu nested placement=\"right-start\" items={item.submenuItems}>\n <nv-menuitem\n slot=\"trigger\"\n hasSubmenu\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n </nv-menu>\n );\n }\n return (\n <nv-menuitem\n disabled={item.disabled}\n icon={item.icon as IconName}\n shortcut={item.shortcut}\n id={item.value}\n name={item.label}\n label={item.label}\n ></nv-menuitem>\n );\n });\n };\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\"></slot>\n <nv-popover\n ref={el => (this.popoverElement = el)}\n triggerMode=\"click\"\n triggerElement={this.triggerElement}\n placement={this.placement}\n nested={this.nested}\n open={this.open}\n >\n {this.items ? (\n <ul slot=\"content\">{this.renderMenuItems()}</ul>\n ) : (\n <slot name=\"content\"></slot>\n )}\n </nv-popover>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as i,H as s,g as r}from"./p-d0a33e64.js";import{a as n}from"./p-a5c8eee9.js";import{g as o}from"./p-51602221.js";import{v as l}from"./p-f5ff676c.js";const a='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldtime{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldtime[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldtime[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldtime[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fieldtime[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fieldtime label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldtime nv-popover{width:100%;display:block}nv-fieldtime nv-popover [data-scope=popover]{padding:var(--list-dropdown-padding);background-color:var(--components-list-dropdown-background);border:1px solid var(--components-list-dropdown-border);width:100%}nv-fieldtime .input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch;width:100%}nv-fieldtime .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out;display:flex;justify-content:flex-start;align-items:center;position:relative;width:100%;min-height:40px;gap:0;padding-left:var(--form-field-padding-x)}nv-fieldtime .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldtime .input-container:focus-within,nv-fieldtime .input-container:focus-within:hover,nv-fieldtime .input-container:focus,nv-fieldtime .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldtime .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldtime .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldtime .input-container input.time-input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;width:100%;min-width:24px;flex:0 0 24px;text-align:center;padding:0;margin:0}nv-fieldtime .input-container input.time-input:focus{outline:none}nv-fieldtime .input-container input.time-input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldtime .input-container input.time-input[type=password]::-ms-clear,nv-fieldtime .input-container input.time-input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldtime .input-container input.time-input::-webkit-inner-spin-button,nv-fieldtime .input-container input.time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}nv-fieldtime .input-container span{width:100%;text-align:center;min-width:24px;flex:0 0 24px;padding:0 4px;color:var(--components-form-field-content-text)}nv-fieldtime .input-container>nv-iconbutton{border:0px;border-radius:0px;margin-left:auto}nv-fieldtime .input-container>nv-iconbutton:focus-visible{border-radius:var(--button-md-border-radius);outline-offset:-3px}nv-fieldtime .input-container>nv-iconbutton:last-of-type{border-top-right-radius:var(--form-field-radius);border-bottom-right-radius:var(--form-field-radius)}nv-fieldtime .input-container nv-icon.validation{color:var(--nv-field-border-default);position:absolute;right:50px;top:50%;transform:translateY(-50%)}nv-fieldtime .input-container:focus,nv-fieldtime .input-container:focus-within{border-color:var(--color-focus-brand);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--color-focus-brand)}nv-fieldtime .description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldtime .error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}nv-fieldtime hr{border:none;border-top:1px solid var(--dropdown-divider-color, #ccc);margin:0.5rem 0}nv-fieldtime .time-dropdown{width:100%}nv-fieldtime .time-dropdown .time-columns{display:flex;justify-content:flex-start;align-items:center}nv-fieldtime .time-dropdown .time-columns .time-column{flex:1;text-align:center;max-height:200px;overflow-y:auto;scroll-behavior:smooth;scrollbar-gutter:stable both-edges;scrollbar-gutter:auto}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar{width:6px;height:6px}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar-track{background-color:var(--color-level-10-background);border-radius:9999px}nv-fieldtime .time-dropdown .time-columns .time-column::-webkit-scrollbar-thumb{background-color:var(--color-gray-200);border-radius:9999px}nv-fieldtime .time-dropdown .time-columns .time-column:last-child{border-right:none}nv-fieldtime .time-dropdown .time-columns .time-column .time-option{padding:var(--calendar-padding);text-align:center;cursor:pointer;transition:background-color 0.2s;border-radius:var(--list-dropdown-item-radius);color:var(--components-calendar-cell-text);font-size:var(--font-size-sm);display:flex;justify-content:center;align-items:center}nv-fieldtime .time-dropdown .time-columns .time-column .time-option:hover{background-color:var(--components-calendar-cell-background-hover);color:var(--components-calendar-cell-text-hover)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option:focus,nv-fieldtime .time-dropdown .time-columns .time-column .time-option:focus-within{background-color:var(--components-calendar-cell-background-hover);color:var(--components-calendar-cell-text-hover)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option.selected{background-color:var(--components-calendar-cell-background-selected);color:var(--components-calendar-cell-text-selected)}nv-fieldtime .time-dropdown .time-columns .time-column .time-option.highlighted{background-color:var(--components-calendar-cell-background-hover);color:var(--components-menu-contextual-item-content-hover)}';const d=a;const c=class{constructor(i){e(this,i);this.valueChanged=t(this,"valueChanged",7);this.inputElements={};this.inputZeroAdded={};this.typeFocused=o.Hours;this.hours="00";this.minutes="00";this.seconds="00";this.inputId=l();this.readonly=false;this.disabled=false;this.required=false;this.success=false;this.error=false;this.format="HH:mm:ss";this.open=false;this.step=6e4;this.autofocus=false}handleOpenChanged(e){e.stopPropagation();this.open=e.detail}handleKeyDown(e){var t,i,s,r;if(!this.open){if(e.key==="ArrowDown"){this.open=true;e.preventDefault();return}return}if(!this.popoverElement){console.warn("nv-fieldtime -> Popover element is not defined");return}const n=`.time-column.time-column-${this.typeFocused} div`;const l=Array.from(this.el.querySelectorAll(n));if(l.length===0){console.warn("nv-fieldtime -> No dropdown items found to navigate");return}let a=l.findIndex((e=>e.classList.contains("highlighted")));if(e.key==="ArrowDown"){e.preventDefault();a=(a+1)%l.length;this.updateHighlightedItem(l,a)}else if(e.key==="ArrowUp"){e.preventDefault();a=(a-1+l.length)%l.length;this.updateHighlightedItem(l,a)}else if(e.key==="Enter"&&a>=0){e.preventDefault();l[a].click();if(this.typeFocused===o.Hours){(t=this.inputElements[o.Minutes])===null||t===void 0?void 0:t.focus();(i=this.inputElements[o.Minutes])===null||i===void 0?void 0:i.select()}else if(this.typeFocused===o.Minutes||this.typeFocused===o.Seconds){(s=this.inputElements[o.Seconds])===null||s===void 0?void 0:s.focus();(r=this.inputElements[o.Seconds])===null||r===void 0?void 0:r.select()}}else if(e.key==="Escape"){e.preventDefault();if(this.inputElements[o.Hours]){this.inputElements[o.Hours].blur()}}}handleValueChange(e){this.valueChanged.emit(e)}handleInputChange(e,t){const i=e.target;const s=i.value.replace(/[^0-9]/g,"");switch(t){case o.Hours:this.handleHoursChange(s,t);break;case o.Minutes:this.handleMinutesChange(s,t);break;case o.Seconds:this.handleSecondsChange(s,t);break}const r=this.reconstructTime();this.value=r}handleHoursChange(e,t){var i,s,r,n;const l=this.format.startsWith("HH");const a=l?24:12;let d=false;const c=this.parseHour(this.max,this.format)||(this.format.startsWith("hh")?"12":"24");const f=this.parseHour(this.min,this.format)||"00";if(e.length===1){this.inputZeroAdded[t]=true;const i=e.padStart(2,"0");if(c&&parseInt(i,10)>parseInt(c,10)){if(f&&parseInt(i,10)<parseInt(f,10)){this.hours=f}else{this.hours="00";d=true}}else{if(f&&parseInt(i,10)<parseInt(f,10)){this.hours=f}else{this.hours=i}}}else if(this.inputZeroAdded[t]){this.inputZeroAdded[t]=false;const i=e.slice(1,3).padStart(2,"0");const s=parseInt(i,10)||0;if(s>=a){if(f&&parseInt(i,10)<parseInt(f,10)){this.hours=f}else{this.hours="00";d=true}}else{if(c&&parseInt(i,10)>parseInt(c,10)){if(f&&parseInt(i,10)<parseInt(f,10)){this.hours=f}else{this.hours="00";d=true}}else{if(f&&parseInt(i,10)<parseInt(f,10)){this.hours=f}else{this.hours=i}}}}else if(e.length>2){if(e.startsWith("00")){this.inputZeroAdded[t]=true;const i=e.slice(1,3).padStart(2,"0");if(c&&parseInt(i,10)>parseInt(c,10)){if(f&&parseInt(i,10)<parseInt(f,10)){this.hours=f}else{this.hours="00";d=true}}else{if(f&&parseInt(i,10)<parseInt(f,10)){this.hours=f}else{this.hours=i}}}else{const t=e.slice(1,3).padStart(2,"0");const i=parseInt(t,10)||0;if(i>=a){if(f&&parseInt(t,10)<parseInt(f,10)){this.hours=f;d=true}else{this.hours="00";d=true}}else{if(c&&i>parseInt(c,10)){if(f&&parseInt(t,10)<parseInt(f,10)){this.hours=f}else{this.hours="00";d=true}}else{if(f&&i<parseInt(f,10)){this.hours=f}else{this.hours=i.toString()}}}}}else{const t=e.padStart(2,"0");const i=parseInt(t,10)||0;if(i>=a){if(f&&parseInt(t,10)<parseInt(f,10)){this.hours=f}else{this.hours="00";d=true}}else{if(c&&i>parseInt(c,10)){this.hours="00";d=true}else{if(f&&i<parseInt(f,10)){this.hours=f}else{this.hours=i.toString()}}}}if(this.hours.length===2&&!this.inputZeroAdded[t]&&!d){(i=this.inputElements[o.Minutes])===null||i===void 0?void 0:i.focus();(s=this.inputElements[o.Minutes])===null||s===void 0?void 0:s.select()}else if(d){(r=this.inputElements[o.Hours])===null||r===void 0?void 0:r.focus();(n=this.inputElements[o.Hours])===null||n===void 0?void 0:n.select()}}handleMinutesChange(e,t){var i,s,r,n,l,a;const d=60;let c=false;const f=(i=this.parseMinute(this.min))!==null&&i!==void 0?i:0;const h=(s=this.parseMinute(this.max))!==null&&s!==void 0?s:59;if(e.length===1){this.inputZeroAdded[t]=true;const i=e.padStart(2,"0");if(h&&parseInt(i,10)>h){if(f&&parseInt(i,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes="00";c=true}}else{if(f&&parseInt(i,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes=i}}}else if(this.inputZeroAdded[t]){this.inputZeroAdded[t]=false;const i=e.slice(1,3).padStart(2,"0");const s=parseInt(i,10)||0;if(s>=d){if(f&&parseInt(i,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes="00";c=true}}else{if(h&&s>h){if(f&&parseInt(i,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes="00";c=true}}else{if(f&&s<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes=i}}}}else if(e.length>2){if(e.startsWith("00")){this.inputZeroAdded[t]=true;const i=e.slice(1,3).padStart(2,"0");if(h&&parseInt(i,10)>h){if(f&&parseInt(i,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes="00";c=true}}else{if(f&&parseInt(i,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes=i}}}else{const t=e.slice(1,3).padStart(2,"0");const i=parseInt(t,10)||0;if(i>=d){if(f&&parseInt(t,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes="00";c=true}}else{if(h&&i>h){if(f&&parseInt(t,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes="00";c=true}}else{if(f&&i<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes=i.toString()}}}}}else{const t=e.padStart(2,"0");const i=parseInt(t,10)||0;if(i>=d){if(f&&parseInt(t,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes="00";c=true}}else{if(h&&i>h){if(f&&parseInt(t,10)<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes="00";c=true}}else{if(f&&i<f){this.minutes=f.toString().padStart(2,"0")}else{this.minutes=i.toString()}}}}if(this.minutes.length===2&&!this.inputZeroAdded[t]&&!c){(r=this.inputElements[o.Seconds])===null||r===void 0?void 0:r.focus();(n=this.inputElements[o.Seconds])===null||n===void 0?void 0:n.select()}else if(c){(l=this.inputElements[o.Minutes])===null||l===void 0?void 0:l.focus();(a=this.inputElements[o.Minutes])===null||a===void 0?void 0:a.select()}}handleSecondsChange(e,t){var i,s,r,n;const l=60;let a=false;const d=(i=this.parseSecond(this.min))!==null&&i!==void 0?i:0;const c=(s=this.parseSecond(this.max))!==null&&s!==void 0?s:59;if(e.length===1){this.inputZeroAdded[t]=true;const i=e.padStart(2,"0");if(c&&parseInt(i,10)>c){if(d&&parseInt(i,10)<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds="00";a=true}}else{if(d&&parseInt(i,10)<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds=i}}}else if(this.inputZeroAdded[t]){this.inputZeroAdded[t]=false;const i=e.slice(1,3).padStart(2,"0");const s=parseInt(i,10)||0;if(s>=l){if(d&&parseInt(i,10)<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds="00";a=true}}else{if(c&&s>c){if(d&&parseInt(i,10)<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds="00";a=true}}else{if(d&&s<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds=i}}}}else if(e.length>2){const t=e.slice(1,3).padStart(2,"0");const i=parseInt(t,10)||0;if(i>=l){if(d&&parseInt(t,10)<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds="00";a=true}}else{if(c&&i>c){if(d&&parseInt(t,10)<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds="00";a=true}}else{if(d&&i<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds=i.toString()}}}}else{const t=e.padStart(2,"0");const i=parseInt(t,10)||0;if(i>=l){if(d&&parseInt(t,10)<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds="00";a=true}}else{if(c&&i>c){if(d&&parseInt(t,10)<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds="00";a=true}}else{if(d&&i<d){this.seconds=d.toString().padStart(2,"0")}else{this.seconds=i.toString()}}}}if(a){(r=this.inputElements[o.Seconds])===null||r===void 0?void 0:r.focus();(n=this.inputElements[o.Seconds])===null||n===void 0?void 0:n.select()}}parseTime(e){if(!e){return}const t=e.replace(/[^0-9]/g,"").padStart(6,"0");const i=t.slice(0,2);const s=t.slice(2,4);const r=t.slice(4,6);const n=this.parseHour(this.min,this.format)||i;const o=this.parseMinute(this.min)||s;const l=this.parseSecond(this.min)||r;this.hours=n.padStart(2,"0");this.minutes=o.toString().padStart(2,"0");this.seconds=l.toString().padStart(2,"0")}reconstructTime(){if(this.format==="HH"||this.format==="hh"){return this.hours}else if(this.format==="HH:mm"||this.format==="hh:mm"){return`${this.hours}:${this.minutes}`}else if(this.format==="HH:mm:ss"||this.format==="hh:mm:ss"){return`${this.hours}:${this.minutes}:${this.seconds}`}else{return`${this.hours}:${this.minutes}:${this.seconds}`}}handleFocus(e){var t,i,s,r;if(this.readonly||this.disabled){return}if(!this.open){this.open=true}if(((t=this.inputElements[e])===null||t===void 0?void 0:t.value.length)===0||((i=this.inputElements[e])===null||i===void 0?void 0:i.value)==="00"){(s=this.inputElements[e])===null||s===void 0?void 0:s.focus();(r=this.inputElements[e])===null||r===void 0?void 0:r.select()}this.typeFocused=e}HandleDropdownIconClick(){var e,t,i,s,r,n;if(this.disabled||this.readonly){return}if(this.open&&this.inputElements[o.Hours]){this.open=false}else if(this.open&&this.inputElements[o.Minutes]){this.open=false}else if(this.open&&this.inputElements[o.Seconds]){this.open=false}else if(!this.open&&this.inputElements[o.Hours]){(e=this.inputElements[o.Hours])===null||e===void 0?void 0:e.focus();(t=this.inputElements[o.Hours])===null||t===void 0?void 0:t.select()}else if(!this.open&&this.inputElements[o.Minutes]){(i=this.inputElements[o.Minutes])===null||i===void 0?void 0:i.focus();(s=this.inputElements[o.Minutes])===null||s===void 0?void 0:s.select()}else if(!this.open&&this.inputElements[o.Seconds]){(r=this.inputElements[o.Seconds])===null||r===void 0?void 0:r.focus();(n=this.inputElements[o.Seconds])===null||n===void 0?void 0:n.select()}else{console.warn("nv-fieldtime -> No input elements found to focus or to blur")}}updateHighlightedItem(e,t){e.forEach(((e,i)=>{if(i===t){e.classList.add("highlighted");e.setAttribute("tabindex","0");e.focus();e.scrollIntoView({block:"nearest"})}else{e.classList.remove("highlighted");e.setAttribute("tabindex","-1")}}))}handleTimeOptionClick(e,t){const i=parseInt(e.target.textContent||"0",10);if(t===o.Hours){this.hours=i.toString().padStart(2,"0")}else if(t===o.Minutes){this.minutes=i.toString().padStart(2,"0")}else if(t===o.Seconds){this.seconds=i.toString().padStart(2,"0")}const s=this.reconstructTime();this.value=s}handleInputBlur(){setTimeout((()=>{if(!this.el.contains(document.activeElement)){if(this.open){this.open=false}}}),150)}handleClickOutside(e){const t=e.target;if(this.el.contains(t)||Object.values(this.inputElements).some((e=>e.contains(t)))){return}if(this.open){this.open=false}}handleScroll(e,t){const i=e.target;const s=i.scrollTop;const r=i.clientHeight;const n=i.scrollHeight;const o=40;const l=this.generateTimeOptions(t);const a=l.length*o;if(s+r>=n-o||s<=0){i.scrollTop=a}}generateTimeOptions(e){const t=this.step/1e3;if(t===0){return["00"]}switch(e){case o.Hours:return this.generateHourOptions(t);case o.Minutes:return this.generateMinuteOptions(t);case o.Seconds:return this.generateSecondOptions(t);default:return[]}}generateHourOptions(e){const t=Math.max(1,Math.floor(e/3600));const i=this.parseHour(this.max,this.format)||(this.format.startsWith("hh")?"12":"24");const s=this.parseHour(this.min,this.format)||"00";const r=parseInt(i,10);const n=parseInt(s,10);const o=[];for(let e=n;e<r;e+=t){o.push(e.toString().padStart(2,"0"))}return o}parseHour(e,t){if(!e)return null;const[i]=e.split(":");const s=parseInt(i,10);if(isNaN(s))return null;if(t.startsWith("hh"))return s>0&&s<=12?i.padStart(2,"0"):null;return s>=0&&s<=24?i.padStart(2,"0"):null}generateMinuteOptions(e){var t,i;const s=Math.max(1,Math.floor(e%3600/60));const r=(t=this.parseMinute(this.min))!==null&&t!==void 0?t:0;const n=(i=this.parseMinute(this.max))!==null&&i!==void 0?i:59;if(r===0&&n===0)return["00"];const o=[];for(let e=r;e<=n;e+=s){o.push(e.toString().padStart(2,"0"))}return o}parseMinute(e){if(!e)return null;const t=e.split(":");if(t.length<2)return null;const i=parseInt(t[1],10);return isNaN(i)||i<0||i>=60?null:i}generateSecondOptions(e){var t,i;const s=Math.max(1,e%60);const r=(t=this.parseSecond(this.min))!==null&&t!==void 0?t:0;const n=(i=this.parseSecond(this.max))!==null&&i!==void 0?i:59;if(r===0&&n===0)return["00"];const o=[];for(let e=r;e<=n;e+=s){o.push(e.toString().padStart(2,"0"))}return o}parseSecond(e){if(!e)return null;const t=e.split(":");if(t.length<3)return null;const i=parseInt(t[2],10);return isNaN(i)||i<0||i>=60?null:i}generateInfiniteTimeOptions(e){const t=this.generateTimeOptions(e);const i=t.length;const s=Math.ceil(300/i);return Array(s).fill(t).flat()}getCurrentTime(){const e=new Date;return e.toLocaleTimeString()}updateColumnHighlight(e,t){const i=Array.from(this.el.querySelectorAll(e));const s=i.findIndex((e=>e.textContent===t));this.updateHighlightedItem(i,s)}handleHostClick(e){var t,i;if(this.disabled||this.readonly){return}const s=e.target;if(s.closest("nv-iconbutton")){return}if(!this.open){if(this.inputElements){(t=this.inputElements[o.Hours])===null||t===void 0?void 0:t.focus();(i=this.inputElements[o.Hours])===null||i===void 0?void 0:i.select()}e.preventDefault()}}componentWillLoad(){document.addEventListener("click",this.handleClickOutside.bind(this));if(this.value){this.parseTime(this.value)}else{const e=this.parseHour(this.min,this.format)||"00";const t=this.parseMinute(this.min)||0;const i=this.parseSecond(this.min)||0;this.hours=e.padStart(2,"0");this.minutes=t.toString().padStart(2,"0");this.seconds=i.toString().padStart(2,"0")}}connectedCallback(){document.addEventListener("click",this.handleClickOutside.bind(this))}disconnectedCallback(){document.removeEventListener("click",this.handleClickOutside.bind(this))}componentDidLoad(){if(!this.value){const e=this.getCurrentTime();let[t,i,s]=e.split(":");let r,n;if(s.includes(" ")){[r,n]=s.split(" ")}else{r=s}let o=parseInt(t,10);if(n){if(n==="PM"&&o<12){o+=12}else if(n==="AM"&&o===12){o=0}}if(this.format.startsWith("hh")){if(o===0){t="12"}else if(o>12){t=(o-12).toString()}else{t=o.toString()}}else{t=o.toString()}t=t.padStart(2,"0");i=i.padStart(2,"0");r=r.padStart(2,"0");const l=`.time-column.time-column-hours div`;this.updateColumnHighlight(l,t);const a=`.time-column.time-column-minutes div`;this.updateColumnHighlight(a,i);const d=`.time-column.time-column-seconds div`;this.updateColumnHighlight(d,r)}}RenderTimeOptionsColumn(e){return i("div",{class:`time-column time-column-${e}`,onScroll:t=>this.handleScroll(t,e)},this.generateInfiniteTimeOptions(e).map(((t,s)=>i("div",{class:{"time-option":true,selected:e===o.Hours&&t===this.hours||e===o.Minutes&&t===this.minutes||e===o.Seconds&&t===this.seconds},key:`${t}-${s}`,onClick:t=>this.handleTimeOptionClick(t,e)},t))))}render(){return i(s,{key:"a960e7daf8d9a323a55b0f248dd24f8e94321161",onclick:e=>this.handleHostClick(e)},(this.label||this.el.querySelector('[slot="label"]'))&&i("label",{key:"23c78f159cb32ef76d0d8b5a1171246c9c69fdb7",htmlFor:this.inputId},i("slot",{key:"70b2361b44414dba4ca91b487a7b04872cc0d75d",name:"label"},this.label)),i("nv-popover",{key:"80de55aa7eb0c165ed6871cb0ac6a5aec9046769",ref:e=>this.popoverElement=e,triggerMode:"controlled",placement:"bottom-start",open:this.open},i("div",{key:"fcd670c6dd32e6687540ddbdaefc2808898a459f",class:"input-wrapper",slot:"trigger"},i("slot",{key:"cea8867cee99035e97bc9ad40a7f20cf1091f415",name:"before-input"}),i("div",{key:"b68a1a7477baaa3fbf39182a36fe4a693e29a688",class:"input-container"},i("slot",{key:"3bb50bb3ad0207ded63bddfff6b5c5afda7ddfd4",name:"leading-input"}),n(this.format,"HH")&&[i("input",{key:"236b3a8067f50c443a117e6b3e8e4b882a84eb01",ref:e=>this.inputElements[o.Hours]=e,type:"number",autofocus:this.autofocus,class:"time-input",pattern:"[0-9]*",maxlength:"3",value:this.hours,onInput:e=>this.handleInputChange(e,o.Hours),placeholder:this.format.includes("hh")?"hh":"HH",inputMode:"numeric",onFocus:()=>this.handleFocus(o.Hours),name:this.name?`${o.Hours}-${this.name}`:o.Hours,id:this.inputId,readonly:this.readonly,disabled:this.disabled,required:this.required,onKeyDown:e=>this.handleKeyDown(e),onBlur:()=>this.handleInputBlur()})],this.format.includes("mm")&&[i("span",{key:"2440acab80a0d91ebe758f5a329ac5d805a18f9a"},":"),i("input",{key:"72bc71a8bce65be766c899738745d85da7ef3530",ref:e=>this.inputElements[o.Minutes]=e,type:"number",autofocus:this.autofocus,class:"time-input",pattern:"[0-9]*",maxlength:"3",value:this.minutes,onInput:e=>this.handleInputChange(e,o.Minutes),placeholder:"mm",inputMode:"numeric",onFocus:()=>this.handleFocus(o.Minutes),name:this.name?`${o.Minutes}-${this.name}`:o.Minutes,id:`${this.inputId}-minutes`,readonly:this.readonly,disabled:this.disabled,required:this.required,onKeyDown:e=>this.handleKeyDown(e),onBlur:()=>this.handleInputBlur()})],this.format.includes("ss")&&[i("span",{key:"0afdff59b999c346b455ed7408332d087ae48b12"},":"),i("input",{key:"0ecf4b18af18b6184e0ccdd00ddea561ee403195",ref:e=>this.inputElements[o.Seconds]=e,type:"number",autofocus:this.autofocus,class:"time-input",pattern:"[0-9]*",maxlength:"3",value:this.seconds,onInput:e=>this.handleInputChange(e,o.Seconds),placeholder:"ss",inputMode:"numeric",onFocus:()=>this.handleFocus(o.Seconds),name:this.name?`${o.Seconds}-${this.name}`:o.Seconds,id:`${this.inputId}-seconds`,readonly:this.readonly,disabled:this.disabled,required:this.required,onKeyDown:e=>this.handleKeyDown(e),onBlur:()=>this.handleInputBlur()})],i("nv-iconbutton",{key:"2d3d19d683d85110df8aab9d7c70fb377b189381",name:"clock",size:"md",emphasis:"lower","aria-label":this.open?"Hide time picker":"Show time picker","aria-pressed":this.open.toString(),onClick:()=>this.HandleDropdownIconClick()}),this.error&&i("nv-icon",{key:"8b49cb73821fea8926ede8406019fa68baa8500e",name:"alert-circle",class:"validation",size:"sm"}),this.success&&i("nv-icon",{key:"372b8e95455c269a988257f2504fc24c680d7f4b",name:"circle-check",class:"validation",size:"sm"})),i("slot",{key:"9e23fd13862e6218cd7213729b3e165ae74fe2eb",name:"after-input"})),i("div",{key:"c5b99d58c96a055ea8aeade81fb5d75490421716",class:"time-dropdown",slot:"content"},i("div",{key:"2bcee9fa41574db70850445bba4d4041c9471a46",class:"time-columns"},n(this.format,"HH")&&this.RenderTimeOptionsColumn(o.Hours),this.format.includes("mm")&&this.RenderTimeOptionsColumn(o.Minutes),this.format.includes("ss")&&this.RenderTimeOptionsColumn(o.Seconds)))),(this.description||this.el.querySelector('[slot="description"]'))&&i("div",{key:"822534262bb1769294be95c1a240a2753d556e1c",class:"description"},i("slot",{key:"62489b82bee33610b55dfa4c2f9997b5d68b6bfe",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&i("div",{key:"9cedb395a09c4243c7c714574ad8d41b6a836fbb",hidden:!this.error,class:"error-description"},i("slot",{key:"7b8802739ad74756f2843dd8807afe6abda92831",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return r(this)}static get watchers(){return{value:["handleValueChange"]}}};c.style=d;export{c as nv_fieldtime};
2
- //# sourceMappingURL=p-6c7a9a21.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nvFieldtimeCss","NvFieldtimeStyle0","NvFieldtime","constructor","hostRef","this","inputElements","inputZeroAdded","typeFocused","TimeType","Hours","hours","minutes","seconds","inputId","uuidv4","readonly","disabled","required","success","error","format","open","step","autofocus","handleOpenChanged","event","stopPropagation","detail","handleKeyDown","key","preventDefault","popoverElement","console","warn","stringSelector","items","Array","from","el","querySelectorAll","length","currentIndex","findIndex","item","classList","contains","updateHighlightedItem","click","_a","Minutes","focus","_b","select","Seconds","_c","_d","blur","handleValueChange","newValue","valueChanged","emit","handleInputChange","e","type","inputElement","target","inputValue","value","replace","handleHoursChange","handleMinutesChange","handleSecondsChange","currentValue","reconstructTime","isHHFormat","startsWith","maxHours","reputedToZero","maxHour","parseHour","max","minHour","min","newInputValue","padStart","parseInt","slice","parsedNewInputValue","toString","maxMinutes","minMinute","parseMinute","maxMinute","_e","_f","maxSeconds","minSecond","parseSecond","maxSecond","parseTime","timeString","cleanedTime","hour","minute","second","handleFocus","HandleDropdownIconClick","index","forEach","i","add","setAttribute","scrollIntoView","block","remove","handleTimeOptionClick","option","textContent","handleInputBlur","setTimeout","document","activeElement","handleClickOutside","Object","values","some","input","handleScroll","scrollTop","containerHeight","clientHeight","scrollHeight","itemHeight","options","generateTimeOptions","singleSetHeight","stepInSeconds","generateHourOptions","generateMinuteOptions","generateSecondOptions","hourStep","Math","floor","maxHourValue","minHourValue","push","hourStr","split","isNaN","minuteStep","parts","secondStep","generateInfiniteTimeOptions","totalOptions","repetitions","ceil","fill","flat","getCurrentTime","currentTime","Date","toLocaleTimeString","updateColumnHighlight","selector","x","handleHostClick","targetElement","closest","componentWillLoad","addEventListener","bind","connectedCallback","disconnectedCallback","removeEventListener","componentDidLoad","secondAmPm","amPm","includes","parsedHour","hourSelector","minuteSelector","secondSelector","RenderTimeOptionsColumn","h","class","onScroll","map","selected","onClick","render","Host","onclick","label","querySelector","htmlFor","name","ref","triggerMode","placement","slot","startsWithIgnoreCase","pattern","maxlength","onInput","placeholder","inputMode","onFocus","id","onKeyDown","onBlur","size","emphasis","description","errorDescription","hidden"],"sources":["src/components/nv-fieldtime/styles/nv-fieldtime.scss?tag=nv-fieldtime","src/components/nv-fieldtime/nv-fieldtime.tsx"],"sourcesContent":["@use './mixins' as *;\n@import '../../../styles/form-field';\n\nnv-fieldtime {\n @include form-field-variables();\n @include form-field-root();\n\n &[readonly]:not([readonly='false']) {\n @include form-field-readonly-variables();\n }\n\n &[error]:not([error='false']) {\n @include form-field-error-variables();\n }\n\n &[success]:not([success='false']) {\n @include form-field-success-variables();\n }\n\n &[required]:not([required='false']) label {\n @include form-field-label-required();\n }\n\n label {\n @include form-field-label();\n }\n\n nv-popover {\n @include apply-popover-style;\n }\n\n .input-wrapper {\n @include form-field-input-wrapper();\n width: 100%;\n }\n\n .input-container {\n @include form-field-input-container();\n @include flex-container(flex-start);\n position: relative;\n width: 100%;\n min-height: 40px;\n gap: 0;\n padding-left: var(--form-field-padding-x);\n\n input.time-input {\n @include form-field-input();\n @include apply-input-styles();\n }\n\n span {\n width: 100%;\n text-align: center;\n min-width: 24px;\n flex: 0 0 24px;\n padding: 0 4px;\n color: var(--components-form-field-content-text);\n }\n\n > nv-iconbutton {\n @include form-field-action();\n margin-left: auto;\n }\n\n nv-icon.validation {\n @include form-field-icon();\n @include icon-position(50px);\n }\n\n &:focus,\n &:focus-within {\n @include apply-focus-styles;\n }\n }\n\n .description {\n @include form-field-description();\n }\n\n .error-description {\n @include form-field-error-description();\n }\n\n hr {\n border: none;\n border-top: 1px solid var(--dropdown-divider-color, #ccc);\n margin: 0.5rem 0;\n }\n\n .time-dropdown {\n width: 100%;\n\n .time-columns {\n @include flex-container;\n\n .time-column {\n flex: 1;\n text-align: center;\n @include scrollable(200px);\n scrollbar-gutter: auto; // Prevents scrollbar from shifting content\n\n &:last-child {\n border-right: none;\n }\n\n .time-option {\n padding: var(--calendar-padding);\n text-align: center;\n cursor: pointer;\n transition: background-color 0.2s;\n //height: 40px;\n border-radius: var(--list-dropdown-item-radius);\n color: var(--components-calendar-cell-text);\n font-size: var(--font-size-sm);\n @include flex-container(center);\n\n &:hover {\n background-color: var(\n --components-calendar-cell-background-hover\n );\n color: var(--components-calendar-cell-text-hover);\n }\n\n @include state-focus(\n var(--components-calendar-cell-background-hover),\n var(--components-calendar-cell-text-hover)\n );\n\n &.selected {\n background-color: var(\n --components-calendar-cell-background-selected\n );\n color: var(--components-calendar-cell-text-selected);\n \n }\n\n &.highlighted {\n background-color: var(\n --components-calendar-cell-background-hover\n );\n color: var(--components-menu-contextual-item-content-hover);\n }\n }\n }\n }\n }\n}\n","/* eslint-disable react/jsx-no-bind */\nimport {\n Component,\n Host,\n h,\n State,\n Element,\n Event,\n EventEmitter,\n Prop,\n Watch,\n Listen,\n} from '@stencil/core';\nimport { v4 as uuidv4 } from 'uuid';\nimport { startsWithIgnoreCase } from '../../utils/string.utils';\nimport { TimeType } from '../../utils/constants';\n\n/**\n * @slot label - Content to be placed as the label, will override the label prop.\n * @slot before-input - Content to be placed before the input text, outside the input container.\n * @slot after-input - Content to be placed after the input text, outside the input container.\n * @slot leading-input - Content to be placed before the input text, within the input container.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n */\n@Component({\n tag: 'nv-fieldtime',\n styleUrl: 'styles/nv-fieldtime.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvFieldtime {\n @Element() el: HTMLNvFieldtimeElement;\n\n // Input elements for hours, minutes, and seconds\n private inputElements: { [key: string]: HTMLInputElement } = {};\n\n private inputZeroAdded: { [key: string]: boolean } = {};\n\n private popoverElement!: HTMLNvPopoverElement;\n\n private typeFocused: TimeType = TimeType.Hours;\n\n /****************************************************************************/\n //#region STATES\n\n @State()\n hours: string = '00';\n @State()\n minutes: string = '00';\n @State()\n seconds: string = '00';\n\n //#endregion STATES\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * The current value of the time input in the specified format.\n */\n @Prop({ reflect: true, mutable: true })\n value: string;\n\n /**\n * Lets you define the text that explains what users should enter in the time\n * input field. It's a crucial element for making forms clear and\n * user-friendly.\n */\n @Prop({ reflect: true })\n readonly label: string;\n\n /**\n * Sets the ID for the input element and the for attribute of the associated\n * label. If no ID is provided, a random one will be automatically generated\n * to ensure unique identification, facilitating proper label association and\n * accessibility.\n */\n @Prop({ reflect: true })\n readonly inputId: string = uuidv4();\n\n /**\n * Display the input field's content without allowing users to change it.\n * Users can still click on it, select, and copy the text, but they won't be\n * able to type or delete anything.\n */\n @Prop({ reflect: true })\n readonly readonly: boolean = false;\n\n /**\n * The disabled prop lets you turn off the input field so that users can't\n * interact with it. When disabled, the field is grayed out and won't respond to\n * clicks or touches.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Marks the input field as required, ensuring that the user must fill it out\n * before submitting the form.\n */\n @Prop({ reflect: true })\n readonly required: boolean = false;\n\n /**\n * Defines the name attribute of the input field, which is crucial for form\n * submission. This value is used as the key in the key-value pair sent to\n * the server, representing the input's data in form submissions.\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Changes the input field’s appearance to indicate successful input or\n * validation.\n */\n @Prop({ reflect: true })\n readonly success: boolean = false;\n\n /**\n * Alters the input field's appearance to indicate an error, helping users\n * identify fields that need correction.\n * @validator error\n */\n @Prop({ reflect: true })\n readonly error: boolean = false;\n\n /**\n * A description that appears when there is an error related to the time\n * field.\n * @validator message\n */\n @Prop({ reflect: true })\n readonly errorDescription: string;\n\n /**\n * Specifies the time format to be used.\n * Available formats:\n * - HH: 24-hour format (00-23)\n * - HH:mm: 24-hour format with minutes (00:00-23:59)\n * - HH:mm:ss: 24-hour format with minutes and seconds (00:00:00-23:59:59)\n * - hh: 12-hour format (01-12)\n * - hh:mm: 12-hour format with minutes (01:00-12:59)\n * - hh:mm:ss: 12-hour format with minutes and seconds (01:00:00-12:59:59)\n */\n @Prop({ reflect: true })\n readonly format: 'HH' | 'HH:mm' | 'HH:mm:ss' | 'hh' | 'hh:mm' | 'hh:mm:ss' =\n 'HH:mm:ss';\n\n /**\n * Add helpful hints or extra information under the time input field. This is\n * where you can clarify what users should enter or provide additional\n * instructions.\n */\n @Prop({ reflect: true })\n readonly description: string;\n\n /**\n * State of the time picker popover.\n */\n @Prop({ reflect: true, mutable: true })\n open: boolean = false;\n\n /**\n * The step interval in milliseconds for time increments/decrements.\n * This affects how the time changes when using arrow keys or spinners.\n */\n @Prop({ reflect: true })\n readonly step: number = 60000; // In secondes\n\n /**\n * The maximum time value that can be selected.\n */\n @Prop({ reflect: true })\n readonly max: string;\n\n /**\n * The minimum time value that can be selected.\n */\n @Prop({ reflect: true })\n readonly min: string;\n\n /**\n * Applies focus to the input field as soon as the component is mounted. This\n * is equivalent to setting the native autofocus attribute on an <input>\n * element.\n */\n @Prop({ reflect: true })\n // eslint-disable-next-line @stencil-community/reserved-member-names\n readonly autofocus: boolean = false;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emit an event when the time value changes.\n * The event detail contains the new time value (HH, HH:mm or HH:mm:ss).\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LISTENERS\n\n @Listen('openChanged')\n handleOpenChanged(event: CustomEvent<boolean>) {\n // Stop propagation to prevent the event from affecting parent components like dialogs\n event.stopPropagation();\n\n // Update `open` based on the popover state\n this.open = event.detail;\n }\n\n @Listen('keydown', { passive: false })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.open) {\n if (event.key === 'ArrowDown') {\n this.open = true;\n\n event.preventDefault();\n return;\n }\n return;\n }\n\n // Verify if the popover element is defined\n if (!this.popoverElement) {\n console.warn('nv-fieldtime -> Popover element is not defined');\n return;\n }\n\n const stringSelector = `.time-column.time-column-${this.typeFocused} div`;\n const items = Array.from(\n this.el.querySelectorAll<HTMLElement>(stringSelector),\n );\n\n // Verify if there are items to navigate\n if (items.length === 0) {\n console.warn('nv-fieldtime -> No dropdown items found to navigate');\n return;\n }\n\n let currentIndex = items.findIndex(item =>\n item.classList.contains('highlighted'),\n );\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n currentIndex = (currentIndex + 1) % items.length;\n this.updateHighlightedItem(items, currentIndex);\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n currentIndex = (currentIndex - 1 + items.length) % items.length;\n this.updateHighlightedItem(items, currentIndex);\n } else if (event.key === 'Enter' && currentIndex >= 0) {\n event.preventDefault();\n items[currentIndex].click();\n\n if (this.typeFocused === TimeType.Hours) {\n this.inputElements[TimeType.Minutes]?.focus();\n this.inputElements[TimeType.Minutes]?.select();\n } else if (\n this.typeFocused === TimeType.Minutes ||\n this.typeFocused === TimeType.Seconds\n ) {\n this.inputElements[TimeType.Seconds]?.focus();\n this.inputElements[TimeType.Seconds]?.select();\n }\n } else if (event.key === 'Escape') {\n event.preventDefault();\n\n if (this.inputElements[TimeType.Hours]) {\n this.inputElements[TimeType.Hours].blur();\n }\n }\n }\n\n //#endregion LISTENERS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('value')\n handleValueChange(newValue: string) {\n this.valueChanged.emit(newValue);\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region METHODS\n\n private handleInputChange(e: InputEvent, type: TimeType): void {\n const inputElement = e.target as HTMLInputElement;\n const inputValue = inputElement.value.replace(/[^0-9]/g, ''); // Only keep numeric input\n\n // Update the time value based on the type\n switch (type) {\n case TimeType.Hours:\n this.handleHoursChange(inputValue, type);\n break;\n case TimeType.Minutes:\n this.handleMinutesChange(inputValue, type);\n break;\n case TimeType.Seconds:\n this.handleSecondsChange(inputValue, type);\n break;\n }\n\n // Reconstruct time from inputs\n const currentValue = this.reconstructTime();\n\n this.value = currentValue;\n }\n\n private handleHoursChange(inputValue: string, type: TimeType): void {\n const isHHFormat = this.format.startsWith('HH');\n const maxHours = isHHFormat ? 24 : 12;\n let reputedToZero = false;\n const maxHour =\n this.parseHour(this.max, this.format) ||\n (this.format.startsWith('hh') ? '12' : '24');\n const minHour = this.parseHour(this.min, this.format) || '00';\n\n if (inputValue.length === 1) {\n this.inputZeroAdded[type] = true;\n\n const newInputValue = inputValue.padStart(2, '0');\n\n if (maxHour && parseInt(newInputValue, 10) > parseInt(maxHour, 10)) {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = '00';\n reputedToZero = true;\n }\n } else {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = newInputValue;\n }\n }\n } else if (this.inputZeroAdded[type]) {\n this.inputZeroAdded[type] = false;\n\n const newInputValue = inputValue.slice(1, 3).padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxHours) {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = '00';\n reputedToZero = true;\n }\n } else {\n if (maxHour && parseInt(newInputValue, 10) > parseInt(maxHour, 10)) {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = '00';\n reputedToZero = true;\n }\n } else {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = newInputValue;\n }\n }\n }\n } else if (inputValue.length > 2) {\n if (inputValue.startsWith('00')) {\n this.inputZeroAdded[type] = true;\n const newInputValue = inputValue.slice(1, 3).padStart(2, '0');\n\n if (maxHour && parseInt(newInputValue, 10) > parseInt(maxHour, 10)) {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = '00';\n reputedToZero = true;\n }\n } else {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = newInputValue;\n }\n }\n } else {\n const newInputValue = inputValue.slice(1, 3).padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxHours) {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n reputedToZero = true;\n } else {\n this.hours = '00';\n reputedToZero = true;\n }\n } else {\n if (maxHour && parsedNewInputValue > parseInt(maxHour, 10)) {\n if (\n minHour &&\n parseInt(newInputValue, 10) < parseInt(minHour, 10)\n ) {\n this.hours = minHour;\n } else {\n this.hours = '00';\n reputedToZero = true;\n }\n } else {\n if (minHour && parsedNewInputValue < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = parsedNewInputValue.toString();\n }\n }\n }\n }\n } else {\n const newInputValue = inputValue.padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxHours) {\n if (minHour && parseInt(newInputValue, 10) < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = '00';\n reputedToZero = true;\n }\n } else {\n if (maxHour && parsedNewInputValue > parseInt(maxHour, 10)) {\n this.hours = '00';\n reputedToZero = true;\n } else {\n if (minHour && parsedNewInputValue < parseInt(minHour, 10)) {\n this.hours = minHour;\n } else {\n this.hours = parsedNewInputValue.toString();\n }\n }\n }\n }\n\n if (\n this.hours.length === 2 &&\n !this.inputZeroAdded[type] &&\n !reputedToZero\n ) {\n this.inputElements[TimeType.Minutes]?.focus();\n this.inputElements[TimeType.Minutes]?.select();\n } else if (reputedToZero) {\n this.inputElements[TimeType.Hours]?.focus();\n this.inputElements[TimeType.Hours]?.select();\n }\n }\n\n private handleMinutesChange(inputValue: string, type: TimeType): void {\n const maxMinutes = 60;\n let reputedToZero = false;\n const minMinute = this.parseMinute(this.min) ?? 0;\n const maxMinute = this.parseMinute(this.max) ?? 59;\n\n if (inputValue.length === 1) {\n this.inputZeroAdded[type] = true;\n\n const newInputValue = inputValue.padStart(2, '0');\n\n if (maxMinute && parseInt(newInputValue, 10) > maxMinute) {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = '00';\n reputedToZero = true;\n }\n } else {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = newInputValue;\n }\n }\n } else if (this.inputZeroAdded[type]) {\n this.inputZeroAdded[type] = false;\n\n const newInputValue = inputValue.slice(1, 3).padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxMinutes) {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = '00';\n reputedToZero = true;\n }\n } else {\n if (maxMinute && parsedNewInputValue > maxMinute) {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = '00';\n reputedToZero = true;\n }\n } else {\n if (minMinute && parsedNewInputValue < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = newInputValue;\n }\n }\n }\n } else if (inputValue.length > 2) {\n if (inputValue.startsWith('00')) {\n this.inputZeroAdded[type] = true;\n const newInputValue = inputValue.slice(1, 3).padStart(2, '0');\n\n if (maxMinute && parseInt(newInputValue, 10) > maxMinute) {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = '00';\n reputedToZero = true;\n }\n } else {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = newInputValue;\n }\n }\n } else {\n const newInputValue = inputValue.slice(1, 3).padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxMinutes) {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = '00';\n reputedToZero = true;\n }\n } else {\n if (maxMinute && parsedNewInputValue > maxMinute) {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = '00';\n reputedToZero = true;\n }\n } else {\n if (minMinute && parsedNewInputValue < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = parsedNewInputValue.toString();\n }\n }\n }\n }\n } else {\n const newInputValue = inputValue.padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxMinutes) {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = '00';\n reputedToZero = true;\n }\n } else {\n if (maxMinute && parsedNewInputValue > maxMinute) {\n if (minMinute && parseInt(newInputValue, 10) < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = '00';\n reputedToZero = true;\n }\n } else {\n if (minMinute && parsedNewInputValue < minMinute) {\n this.minutes = minMinute.toString().padStart(2, '0');\n } else {\n this.minutes = parsedNewInputValue.toString();\n }\n }\n }\n }\n\n if (\n this.minutes.length === 2 &&\n !this.inputZeroAdded[type] &&\n !reputedToZero\n ) {\n this.inputElements[TimeType.Seconds]?.focus();\n this.inputElements[TimeType.Seconds]?.select();\n } else if (reputedToZero) {\n this.inputElements[TimeType.Minutes]?.focus();\n this.inputElements[TimeType.Minutes]?.select();\n }\n }\n\n private handleSecondsChange(inputValue: string, type: TimeType): void {\n const maxSeconds = 60;\n let reputedToZero = false;\n const minSecond = this.parseSecond(this.min) ?? 0;\n const maxSecond = this.parseSecond(this.max) ?? 59;\n\n if (inputValue.length === 1) {\n this.inputZeroAdded[type] = true;\n const newInputValue = inputValue.padStart(2, '0');\n\n if (maxSecond && parseInt(newInputValue, 10) > maxSecond) {\n if (minSecond && parseInt(newInputValue, 10) < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = '00';\n reputedToZero = true;\n }\n } else {\n if (minSecond && parseInt(newInputValue, 10) < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = newInputValue;\n }\n }\n } else if (this.inputZeroAdded[type]) {\n this.inputZeroAdded[type] = false;\n const newInputValue = inputValue.slice(1, 3).padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxSeconds) {\n if (minSecond && parseInt(newInputValue, 10) < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = '00';\n reputedToZero = true;\n }\n } else {\n if (maxSecond && parsedNewInputValue > maxSecond) {\n if (minSecond && parseInt(newInputValue, 10) < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = '00';\n reputedToZero = true;\n }\n } else {\n if (minSecond && parsedNewInputValue < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = newInputValue;\n }\n }\n }\n } else if (inputValue.length > 2) {\n const newInputValue = inputValue.slice(1, 3).padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxSeconds) {\n if (minSecond && parseInt(newInputValue, 10) < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = '00';\n reputedToZero = true;\n }\n } else {\n if (maxSecond && parsedNewInputValue > maxSecond) {\n if (minSecond && parseInt(newInputValue, 10) < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = '00';\n reputedToZero = true;\n }\n } else {\n if (minSecond && parsedNewInputValue < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = parsedNewInputValue.toString();\n }\n }\n }\n } else {\n const newInputValue = inputValue.padStart(2, '0');\n const parsedNewInputValue = parseInt(newInputValue, 10) || 0;\n\n if (parsedNewInputValue >= maxSeconds) {\n if (minSecond && parseInt(newInputValue, 10) < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = '00';\n reputedToZero = true;\n }\n } else {\n if (maxSecond && parsedNewInputValue > maxSecond) {\n if (minSecond && parseInt(newInputValue, 10) < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = '00';\n reputedToZero = true;\n }\n } else {\n if (minSecond && parsedNewInputValue < minSecond) {\n this.seconds = minSecond.toString().padStart(2, '0');\n } else {\n this.seconds = parsedNewInputValue.toString();\n }\n }\n }\n }\n\n if (reputedToZero) {\n this.inputElements[TimeType.Seconds]?.focus();\n this.inputElements[TimeType.Seconds]?.select();\n }\n }\n\n // Parse a continuous time string (e.g., \"123456\") into hours, minutes, and seconds\n private parseTime(timeString: string): void {\n if (!timeString) {\n return;\n }\n\n const cleanedTime = timeString.replace(/[^0-9]/g, '').padStart(6, '0');\n const hour = cleanedTime.slice(0, 2);\n const minute = cleanedTime.slice(2, 4);\n const second = cleanedTime.slice(4, 6);\n\n const minHour = this.parseHour(this.min, this.format) || hour;\n const minMinute = this.parseMinute(this.min) || minute;\n const minSecond = this.parseSecond(this.min) || second;\n\n this.hours = minHour.padStart(2, '0');\n this.minutes = minMinute.toString().padStart(2, '0');\n this.seconds = minSecond.toString().padStart(2, '0');\n }\n\n private reconstructTime(): string {\n if (this.format === 'HH' || this.format === 'hh') {\n return this.hours;\n } else if (this.format === 'HH:mm' || this.format === 'hh:mm') {\n return `${this.hours}:${this.minutes}`;\n } else if (this.format === 'HH:mm:ss' || this.format === 'hh:mm:ss') {\n return `${this.hours}:${this.minutes}:${this.seconds}`;\n } else {\n return `${this.hours}:${this.minutes}:${this.seconds}`;\n }\n }\n\n private handleFocus(type: TimeType): void {\n if (this.readonly || this.disabled) {\n return;\n }\n\n if (!this.open) {\n this.open = true; // Force the popover to open\n }\n\n // Refocus on the input if it loses focus and is empty\n if (\n this.inputElements[type]?.value.length === 0 ||\n this.inputElements[type]?.value === '00'\n ) {\n this.inputElements[type]?.focus();\n this.inputElements[type]?.select();\n }\n\n this.typeFocused = type;\n }\n\n private HandleDropdownIconClick(): void {\n if (this.disabled || this.readonly) {\n return; // Do not toggle if disabled or read-only\n }\n\n if (this.open && this.inputElements[TimeType.Hours]) {\n this.open = false; // Close the popover if it is open\n } else if (this.open && this.inputElements[TimeType.Minutes]) {\n this.open = false; // Close the popover if it is open\n } else if (this.open && this.inputElements[TimeType.Seconds]) {\n this.open = false; // Close the popover if it is open\n } else if (!this.open && this.inputElements[TimeType.Hours]) {\n this.inputElements[TimeType.Hours]?.focus(); // Focus will open the popover\n this.inputElements[TimeType.Hours]?.select();\n } else if (!this.open && this.inputElements[TimeType.Minutes]) {\n this.inputElements[TimeType.Minutes]?.focus(); // Focus will open the popover\n this.inputElements[TimeType.Minutes]?.select();\n } else if (!this.open && this.inputElements[TimeType.Seconds]) {\n this.inputElements[TimeType.Seconds]?.focus(); // Focus will open the popover\n this.inputElements[TimeType.Seconds]?.select();\n } else {\n console.warn(\n 'nv-fieldtime -> No input elements found to focus or to blur',\n );\n }\n }\n\n private updateHighlightedItem(items: HTMLElement[], index: number) {\n items.forEach((item, i) => {\n if (i === index) {\n item.classList.add('highlighted');\n item.setAttribute('tabindex', '0');\n item.focus(); // Forcer le focus ici\n item.scrollIntoView({ block: 'nearest' });\n } else {\n item.classList.remove('highlighted');\n item.setAttribute('tabindex', '-1');\n }\n });\n }\n\n private handleTimeOptionClick(event: MouseEvent, type: TimeType): void {\n const option = parseInt(\n (event.target as HTMLElement).textContent || '0',\n 10,\n );\n\n if (type === TimeType.Hours) {\n this.hours = option.toString().padStart(2, '0');\n } else if (type === TimeType.Minutes) {\n this.minutes = option.toString().padStart(2, '0');\n } else if (type === TimeType.Seconds) {\n this.seconds = option.toString().padStart(2, '0');\n }\n\n const reconstructTime = this.reconstructTime();\n this.value = reconstructTime;\n }\n\n private handleInputBlur(): void {\n // Use a delay to check if the focus is still within the popover\n setTimeout(() => {\n if (!this.el.contains(document.activeElement)) {\n if (this.open) {\n this.open = false; // Close the popover if the focus is outside the component\n }\n }\n }, 150);\n }\n\n private handleClickOutside(event: MouseEvent) {\n const target = event.target as Node;\n\n // Check if the click is inside the component or any of the input elements\n if (\n this.el.contains(target) ||\n Object.values(this.inputElements).some(input => input.contains(target))\n ) {\n return;\n }\n\n if (this.open) {\n this.open = false; // Close the popover if the click is outside\n }\n }\n\n private handleScroll(e: Event, type: TimeType): void {\n const target = e.target as HTMLElement;\n const scrollTop = target.scrollTop;\n const containerHeight = target.clientHeight;\n const scrollHeight = target.scrollHeight;\n\n // Define the height of each item, this could be dynamic if the height varies\n const itemHeight = 40; // Consider making this configurable or dynamic\n const options = this.generateTimeOptions(type); // Generates the list of time options\n const singleSetHeight = options.length * itemHeight;\n\n // Check if the scroll is near the bottom or top and reset to the first set\n if (\n scrollTop + containerHeight >= scrollHeight - itemHeight ||\n scrollTop <= 0\n ) {\n target.scrollTop = singleSetHeight; // Reset to the first set from the bottom\n }\n }\n\n private generateTimeOptions(type: TimeType) {\n // Convert the step in seconds\n const stepInSeconds = this.step / 1000;\n\n // Handle edge case for zero step\n if (stepInSeconds === 0) {\n return ['00']; // Just return the default value\n }\n\n // Generate the time options based on the type\n switch (type) {\n case TimeType.Hours:\n return this.generateHourOptions(stepInSeconds);\n\n case TimeType.Minutes:\n return this.generateMinuteOptions(stepInSeconds);\n\n case TimeType.Seconds:\n return this.generateSecondOptions(stepInSeconds);\n\n default:\n return [];\n }\n }\n\n private generateHourOptions(stepInSeconds: number): string[] {\n const hourStep = Math.max(1, Math.floor(stepInSeconds / 3600)); // Prevent step < 1\n const maxHour =\n this.parseHour(this.max, this.format) ||\n (this.format.startsWith('hh') ? '12' : '24');\n const minHour = this.parseHour(this.min, this.format) || '00';\n\n const maxHourValue = parseInt(maxHour, 10);\n const minHourValue = parseInt(minHour, 10);\n const values: string[] = [];\n\n for (let i = minHourValue; i < maxHourValue; i += hourStep) {\n values.push(i.toString().padStart(2, '0'));\n }\n\n return values;\n }\n\n private parseHour(value: string | null, format: string): string | null {\n if (!value) return null;\n const [hourStr] = value.split(':');\n const hour = parseInt(hourStr, 10);\n if (isNaN(hour)) return null;\n if (format.startsWith('hh'))\n return hour > 0 && hour <= 12 ? hourStr.padStart(2, '0') : null;\n return hour >= 0 && hour <= 24 ? hourStr.padStart(2, '0') : null;\n }\n\n private generateMinuteOptions(stepInSeconds: number): string[] {\n const minuteStep = Math.max(1, Math.floor((stepInSeconds % 3600) / 60)); // Ensure step >= 1\n const minMinute = this.parseMinute(this.min) ?? 0;\n const maxMinute = this.parseMinute(this.max) ?? 59;\n\n if (minMinute === 0 && maxMinute === 0) return ['00']; // Handle edge case for zero seconds\n\n const values: string[] = [];\n\n for (let i = minMinute; i <= maxMinute; i += minuteStep) {\n values.push(i.toString().padStart(2, '0'));\n }\n\n return values;\n }\n\n private parseMinute(value: string | null): number | null {\n if (!value) return null;\n const parts = value.split(':');\n if (parts.length < 2) return null; // Expect at least \"hh:mm\"\n const minute = parseInt(parts[1], 10);\n return isNaN(minute) || minute < 0 || minute >= 60 ? null : minute;\n }\n\n private generateSecondOptions(stepInSeconds: number): string[] {\n const secondStep = Math.max(1, stepInSeconds % 60); // Ensure step >= 1\n const minSecond = this.parseSecond(this.min) ?? 0;\n const maxSecond = this.parseSecond(this.max) ?? 59;\n\n if (minSecond === 0 && maxSecond === 0) return ['00']; // Handle edge case for zero seconds\n\n const values: string[] = [];\n\n for (let i = minSecond; i <= maxSecond; i += secondStep) {\n values.push(i.toString().padStart(2, '0'));\n }\n\n return values;\n }\n\n private parseSecond(value: string | null): number | null {\n if (!value) return null;\n const parts = value.split(':');\n if (parts.length < 3) return null; // Expect \"hh:mm:ss\" or \"HH:mm:ss\"\n const second = parseInt(parts[2], 10);\n return isNaN(second) || second < 0 || second >= 60 ? null : second;\n }\n\n private generateInfiniteTimeOptions(type: TimeType): string[] {\n const options = this.generateTimeOptions(type);\n const totalOptions = options.length;\n\n // Dynamically calculate repetitions based on a target number of items (e.g., 300 items)\n const repetitions = Math.ceil(300 / totalOptions);\n return Array(repetitions).fill(options).flat();\n }\n\n private getCurrentTime(): string {\n const currentTime = new Date();\n return currentTime.toLocaleTimeString(); // Returns the time in the locale's format\n }\n\n private updateColumnHighlight(selector, value): void {\n const items = Array.from(this.el.querySelectorAll<HTMLElement>(selector));\n\n const index = items.findIndex(x => x.textContent === value);\n this.updateHighlightedItem(items, index);\n }\n\n private handleHostClick(event: MouseEvent): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n const targetElement = event.target as HTMLElement;\n\n // Check if the click target or its ancestors are inside an nv-iconbutton element\n if (targetElement.closest('nv-iconbutton')) {\n return; // Handle icon button click separately\n }\n\n if (!this.open) {\n if (this.inputElements) {\n this.inputElements[TimeType.Hours]?.focus();\n this.inputElements[TimeType.Hours]?.select();\n }\n\n event.preventDefault();\n }\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n document.addEventListener('click', this.handleClickOutside.bind(this));\n\n // If an initial value is passed, parse it\n if (this.value) {\n this.parseTime(this.value);\n } else {\n const minHour = this.parseHour(this.min, this.format) || '00';\n const minMinute = this.parseMinute(this.min) || 0;\n const minSecond = this.parseSecond(this.min) || 0;\n\n this.hours = minHour.padStart(2, '0');\n this.minutes = minMinute.toString().padStart(2, '0');\n this.seconds = minSecond.toString().padStart(2, '0');\n }\n }\n\n connectedCallback() {\n document.addEventListener('click', this.handleClickOutside.bind(this));\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside.bind(this));\n }\n\n componentDidLoad() {\n if (!this.value) {\n const currentTime = this.getCurrentTime();\n\n // Split time into components\n // eslint-disable-next-line prefer-const\n let [hour, minute, secondAmPm] = currentTime.split(':');\n let second, amPm;\n\n // Check if AM/PM is present and split accordingly\n if (secondAmPm.includes(' ')) {\n [second, amPm] = secondAmPm.split(' ');\n } else {\n second = secondAmPm;\n }\n\n // Parse hour as integer for calculations\n let parsedHour = parseInt(hour, 10);\n\n // Convert hour to 24-hour format based on AM/PM (if present)\n if (amPm) {\n if (amPm === 'PM' && parsedHour < 12) {\n parsedHour += 12; // Convert PM to 24-hour\n } else if (amPm === 'AM' && parsedHour === 12) {\n parsedHour = 0; // Midnight in 24-hour format\n }\n }\n\n // Adjust for 12-hour format if necessary\n if (this.format.startsWith('hh')) {\n if (parsedHour === 0) {\n hour = '12'; // Midnight in 12-hour format\n } else if (parsedHour > 12) {\n hour = (parsedHour - 12).toString(); // Convert 24-hour to 12-hour\n } else {\n hour = parsedHour.toString();\n }\n } else {\n hour = parsedHour.toString(); // Use 24-hour format directly\n }\n\n // Pad hour, minute, and second to ensure two digits\n hour = hour.padStart(2, '0');\n minute = minute.padStart(2, '0');\n second = second.padStart(2, '0');\n\n // Update highlighted items for hours\n const hourSelector = `.time-column.time-column-hours div`;\n this.updateColumnHighlight(hourSelector, hour);\n\n // Update highlighted items for minutes\n const minuteSelector = `.time-column.time-column-minutes div`;\n this.updateColumnHighlight(minuteSelector, minute);\n\n // Update highlighted items for seconds\n const secondSelector = `.time-column.time-column-seconds div`;\n this.updateColumnHighlight(secondSelector, second);\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n private RenderTimeOptionsColumn(type: TimeType): HTMLElement {\n return (\n <div\n class={`time-column time-column-${type}`}\n onScroll={e => this.handleScroll(e, type)}\n >\n {/* Hours */}\n {this.generateInfiniteTimeOptions(type).map((option, index) => (\n <div\n class={{\n 'time-option': true,\n 'selected':\n (type === TimeType.Hours && option === this.hours) ||\n (type === TimeType.Minutes && option === this.minutes) ||\n (type === TimeType.Seconds && option === this.seconds),\n }}\n key={`${option}-${index}`}\n onClick={e => this.handleTimeOptionClick(e, type)}\n >\n {option}\n </div>\n ))}\n </div>\n );\n }\n\n render() {\n return (\n <Host onclick={e => this.handleHostClick(e)}>\n {(this.label || this.el.querySelector('[slot=\"label\"]')) && (\n <label htmlFor={this.inputId}>\n <slot name=\"label\">{this.label}</slot>\n </label>\n )}\n\n <nv-popover\n ref={el => (this.popoverElement = el as HTMLNvPopoverElement)}\n triggerMode=\"controlled\"\n placement=\"bottom-start\"\n open={this.open}\n >\n <div class=\"input-wrapper\" slot=\"trigger\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\">\n <slot name=\"leading-input\"></slot>\n {/* Input fields for hours, minutes, and seconds */}\n {/* Hours */}\n {startsWithIgnoreCase(this.format, 'HH') && [\n <input\n ref={el => (this.inputElements[TimeType.Hours] = el)}\n type=\"number\"\n autofocus={this.autofocus}\n class=\"time-input\"\n pattern=\"[0-9]*\"\n maxlength=\"3\"\n value={this.hours}\n onInput={e => this.handleInputChange(e, TimeType.Hours)}\n placeholder={this.format.includes('hh') ? 'hh' : 'HH'}\n inputMode=\"numeric\"\n onFocus={() => this.handleFocus(TimeType.Hours)}\n name={\n this.name\n ? `${TimeType.Hours}-${this.name}`\n : TimeType.Hours\n }\n id={this.inputId}\n readonly={this.readonly}\n disabled={this.disabled}\n required={this.required}\n onKeyDown={e => this.handleKeyDown(e)} // Handle arrow keys\n onBlur={() => this.handleInputBlur()}\n />,\n ]}\n {/* Minutes */}\n {this.format.includes('mm') && [\n <span>:</span>,\n <input\n ref={el => (this.inputElements[TimeType.Minutes] = el)}\n type=\"number\"\n autofocus={this.autofocus}\n class=\"time-input\"\n pattern=\"[0-9]*\"\n maxlength=\"3\"\n value={this.minutes}\n onInput={e => this.handleInputChange(e, TimeType.Minutes)}\n placeholder=\"mm\"\n inputMode=\"numeric\"\n onFocus={() => this.handleFocus(TimeType.Minutes)}\n name={\n this.name\n ? `${TimeType.Minutes}-${this.name}`\n : TimeType.Minutes\n }\n id={`${this.inputId}-minutes`}\n readonly={this.readonly}\n disabled={this.disabled}\n required={this.required}\n onKeyDown={e => this.handleKeyDown(e)} // Handle arrow keys\n onBlur={() => this.handleInputBlur()}\n />,\n ]}\n {/* Seconds */}\n {this.format.includes('ss') && [\n <span>:</span>,\n\n <input\n ref={el => (this.inputElements[TimeType.Seconds] = el)}\n type=\"number\"\n autofocus={this.autofocus}\n class=\"time-input\"\n pattern=\"[0-9]*\"\n maxlength=\"3\"\n value={this.seconds}\n onInput={e => this.handleInputChange(e, TimeType.Seconds)}\n placeholder=\"ss\"\n inputMode=\"numeric\"\n onFocus={() => this.handleFocus(TimeType.Seconds)}\n name={\n this.name\n ? `${TimeType.Seconds}-${this.name}`\n : TimeType.Seconds\n }\n id={`${this.inputId}-seconds`}\n readonly={this.readonly}\n disabled={this.disabled}\n required={this.required}\n onKeyDown={e => this.handleKeyDown(e)} // Handle arrow keys\n onBlur={() => this.handleInputBlur()}\n />,\n ]}\n\n <nv-iconbutton\n name={'clock'}\n size=\"md\"\n emphasis=\"lower\"\n aria-label={this.open ? 'Hide time picker' : 'Show time picker'}\n aria-pressed={this.open.toString()}\n onClick={() => this.HandleDropdownIconClick()}\n />\n\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"sm\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"sm\" />\n )}\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\n\n <div class=\"time-dropdown\" slot=\"content\">\n <div class=\"time-columns\">\n {startsWithIgnoreCase(this.format, 'HH') &&\n this.RenderTimeOptionsColumn(TimeType.Hours)}\n {this.format.includes('mm') &&\n this.RenderTimeOptionsColumn(TimeType.Minutes)}\n {this.format.includes('ss') &&\n this.RenderTimeOptionsColumn(TimeType.Seconds)}\n </div>\n </div>\n </nv-popover>\n\n {(this.description ||\n this.el.querySelector('[slot=\"description\"]')) && (\n <div class=\"description\">\n <slot name=\"description\">{this.description}</slot>\n </div>\n )}\n\n {(this.errorDescription ||\n this.el.querySelector('[slot=\"error-description\"]')) && (\n <div hidden={!this.error} class=\"error-description\">\n <slot name=\"error-description\">{this.errorDescription}</slot>\n </div>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{a as t,f as e,r as n,c as o,h as s,H as i,g as r}from"./p-d0a33e64.js";import{u as c}from"./p-a271e3be.js";import{u as a}from"./p-4697bd56.js";import"./p-42ea6b74.js";import{a as l,r as f}from"./p-d429a343.js";const u=["top","right","bottom","left"];const d=["start","end"];const h=u.reduce(((t,e)=>t.concat(e,e+"-"+d[0],e+"-"+d[1])),[]);const p=Math.min;const m=Math.max;const y=Math.round;const g=t=>({x:t,y:t});const v={left:"right",right:"left",bottom:"top",top:"bottom"};const w={start:"end",end:"start"};function b(t,e,n){return m(t,p(e,n))}function x(t,e){return typeof t==="function"?t(e):t}function k(t){return t.split("-")[0]}function A(t){return t.split("-")[1]}function T(t){return t==="x"?"y":"x"}function C(t){return t==="y"?"height":"width"}function O(t){return["top","bottom"].includes(k(t))?"y":"x"}function P(t){return T(O(t))}function S(t,e,n){if(n===void 0){n=false}const o=A(t);const s=P(t);const i=C(s);let r=s==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";if(e.reference[i]>e.floating[i]){r=M(r)}return[r,M(r)]}function D(t){const e=M(t);return[j(t),e,j(e)]}function j(t){return t.replace(/start|end/g,(t=>w[t]))}function R(t,e,n){const o=["left","right"];const s=["right","left"];const i=["top","bottom"];const r=["bottom","top"];switch(t){case"top":case"bottom":if(n)return e?s:o;return e?o:s;case"left":case"right":return e?i:r;default:return[]}}function L(t,e,n,o){const s=A(t);let i=R(k(t),n==="start",o);if(s){i=i.map((t=>t+"-"+s));if(e){i=i.concat(i.map(j))}}return i}function M(t){return t.replace(/left|right|bottom|top/g,(t=>v[t]))}function B(t){return{top:0,right:0,bottom:0,left:0,...t}}function F(t){return typeof t!=="number"?B(t):{top:t,right:t,bottom:t,left:t}}function H(t){const{x:e,y:n,width:o,height:s}=t;return{width:o,height:s,top:n,left:e,right:e+o,bottom:n+s,x:e,y:n}}function E(t,e,n){let{reference:o,floating:s}=t;const i=O(e);const r=P(e);const c=C(r);const a=k(e);const l=i==="y";const f=o.x+o.width/2-s.width/2;const u=o.y+o.height/2-s.height/2;const d=o[c]/2-s[c]/2;let h;switch(a){case"top":h={x:f,y:o.y-s.height};break;case"bottom":h={x:f,y:o.y+o.height};break;case"right":h={x:o.x+o.width,y:u};break;case"left":h={x:o.x-s.width,y:u};break;default:h={x:o.x,y:o.y}}switch(A(e)){case"start":h[r]-=d*(n&&l?-1:1);break;case"end":h[r]+=d*(n&&l?-1:1);break}return h}const $=async(t,e,n)=>{const{placement:o="bottom",strategy:s="absolute",middleware:i=[],platform:r}=n;const c=i.filter(Boolean);const a=await(r.isRTL==null?void 0:r.isRTL(e));let l=await r.getElementRects({reference:t,floating:e,strategy:s});let{x:f,y:u}=E(l,o,a);let d=o;let h={};let p=0;for(let n=0;n<c.length;n++){const{name:i,fn:m}=c[n];const{x:y,y:g,data:v,reset:w}=await m({x:f,y:u,initialPlacement:o,placement:d,strategy:s,middlewareData:h,rects:l,platform:r,elements:{reference:t,floating:e}});f=y!=null?y:f;u=g!=null?g:u;h={...h,[i]:{...h[i],...v}};if(w&&p<=50){p++;if(typeof w==="object"){if(w.placement){d=w.placement}if(w.rects){l=w.rects===true?await r.getElementRects({reference:t,floating:e,strategy:s}):w.rects}({x:f,y:u}=E(l,d,a))}n=-1}}return{x:f,y:u,placement:d,strategy:s,middlewareData:h}};async function z(t,e){var n;if(e===void 0){e={}}const{x:o,y:s,platform:i,rects:r,elements:c,strategy:a}=t;const{boundary:l="clippingAncestors",rootBoundary:f="viewport",elementContext:u="floating",altBoundary:d=false,padding:h=0}=x(e,t);const p=F(h);const m=u==="floating"?"reference":"floating";const y=c[d?m:u];const g=H(await i.getClippingRect({element:((n=await(i.isElement==null?void 0:i.isElement(y)))!=null?n:true)?y:y.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:l,rootBoundary:f,strategy:a}));const v=u==="floating"?{x:o,y:s,width:r.floating.width,height:r.floating.height}:r.reference;const w=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating));const b=await(i.isElement==null?void 0:i.isElement(w))?await(i.getScale==null?void 0:i.getScale(w))||{x:1,y:1}:{x:1,y:1};const k=H(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:v,offsetParent:w,strategy:a}):v);return{top:(g.top-k.top+p.top)/b.y,bottom:(k.bottom-g.bottom+p.bottom)/b.y,left:(g.left-k.left+p.left)/b.x,right:(k.right-g.right+p.right)/b.x}}const W=t=>({name:"arrow",options:t,async fn(e){const{x:n,y:o,placement:s,rects:i,platform:r,elements:c,middlewareData:a}=e;const{element:l,padding:f=0}=x(t,e)||{};if(l==null){return{}}const u=F(f);const d={x:n,y:o};const h=P(s);const m=C(h);const y=await r.getDimensions(l);const g=h==="y";const v=g?"top":"left";const w=g?"bottom":"right";const k=g?"clientHeight":"clientWidth";const T=i.reference[m]+i.reference[h]-d[h]-i.floating[m];const O=d[h]-i.reference[h];const S=await(r.getOffsetParent==null?void 0:r.getOffsetParent(l));let D=S?S[k]:0;if(!D||!await(r.isElement==null?void 0:r.isElement(S))){D=c.floating[k]||i.floating[m]}const j=T/2-O/2;const R=D/2-y[m]/2-1;const L=p(u[v],R);const M=p(u[w],R);const B=L;const H=D-y[m]-M;const E=D/2-y[m]/2+j;const $=b(B,E,H);const z=!a.arrow&&A(s)!=null&&E!==$&&i.reference[m]/2-(E<B?L:M)-y[m]/2<0;const W=z?E<B?E-B:E-H:0;return{[h]:d[h]+W,data:{[h]:$,centerOffset:E-$-W,...z&&{alignmentOffset:W}},reset:z}}});function N(t,e,n){const o=t?[...n.filter((e=>A(e)===t)),...n.filter((e=>A(e)!==t))]:n.filter((t=>k(t)===t));return o.filter((n=>{if(t){return A(n)===t||(e?j(n)!==n:false)}return true}))}const I=function(t){if(t===void 0){t={}}return{name:"autoPlacement",options:t,async fn(e){var n,o,s;const{rects:i,middlewareData:r,placement:c,platform:a,elements:l}=e;const{crossAxis:f=false,alignment:u,allowedPlacements:d=h,autoAlignment:p=true,...m}=x(t,e);const y=u!==undefined||d===h?N(u||null,p,d):d;const g=await z(e,m);const v=((n=r.autoPlacement)==null?void 0:n.index)||0;const w=y[v];if(w==null){return{}}const b=S(w,i,await(a.isRTL==null?void 0:a.isRTL(l.floating)));if(c!==w){return{reset:{placement:y[0]}}}const T=[g[k(w)],g[b[0]],g[b[1]]];const C=[...((o=r.autoPlacement)==null?void 0:o.overflows)||[],{placement:w,overflows:T}];const O=y[v+1];if(O){return{data:{index:v+1,overflows:C},reset:{placement:O}}}const P=C.map((t=>{const e=A(t.placement);return[t.placement,e&&f?t.overflows.slice(0,2).reduce(((t,e)=>t+e),0):t.overflows[0],t.overflows]})).sort(((t,e)=>t[1]-e[1]));const D=P.filter((t=>t[2].slice(0,A(t[0])?2:3).every((t=>t<=0))));const j=((s=D[0])==null?void 0:s[0])||P[0][0];if(j!==c){return{data:{index:v+1,overflows:C},reset:{placement:j}}}return{}}}};const U=function(t){if(t===void 0){t={}}return{name:"flip",options:t,async fn(e){var n,o;const{placement:s,middlewareData:i,rects:r,initialPlacement:c,platform:a,elements:l}=e;const{mainAxis:f=true,crossAxis:u=true,fallbackPlacements:d,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:m=true,...y}=x(t,e);if((n=i.arrow)!=null&&n.alignmentOffset){return{}}const g=k(s);const v=k(c)===c;const w=await(a.isRTL==null?void 0:a.isRTL(l.floating));const b=d||(v||!m?[M(c)]:D(c));if(!d&&p!=="none"){b.push(...L(c,m,p,w))}const A=[c,...b];const T=await z(e,y);const C=[];let O=((o=i.flip)==null?void 0:o.overflows)||[];if(f){C.push(T[g])}if(u){const t=S(s,r,w);C.push(T[t[0]],T[t[1]])}O=[...O,{placement:s,overflows:C}];if(!C.every((t=>t<=0))){var P,j;const t=(((P=i.flip)==null?void 0:P.index)||0)+1;const e=A[t];if(e){return{data:{index:t,overflows:O},reset:{placement:e}}}let n=(j=O.filter((t=>t.overflows[0]<=0)).sort(((t,e)=>t.overflows[1]-e.overflows[1]))[0])==null?void 0:j.placement;if(!n){switch(h){case"bestFit":{var R;const t=(R=O.map((t=>[t.placement,t.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)])).sort(((t,e)=>t[1]-e[1]))[0])==null?void 0:R[0];if(t){n=t}break}case"initialPlacement":n=c;break}}if(s!==n){return{reset:{placement:n}}}}return{}}}};function _(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function G(t){return u.some((e=>t[e]>=0))}const K=function(t){if(t===void 0){t={}}return{name:"hide",options:t,async fn(e){const{rects:n}=e;const{strategy:o="referenceHidden",...s}=x(t,e);switch(o){case"referenceHidden":{const t=await z(e,{...s,elementContext:"reference"});const o=_(t,n.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:G(o)}}}case"escaped":{const t=await z(e,{...s,altBoundary:true});const o=_(t,n.floating);return{data:{escapedOffsets:o,escaped:G(o)}}}default:{return{}}}}}};function V(t){const e=p(...t.map((t=>t.left)));const n=p(...t.map((t=>t.top)));const o=m(...t.map((t=>t.right)));const s=m(...t.map((t=>t.bottom)));return{x:e,y:n,width:o-e,height:s-n}}function X(t){const e=t.slice().sort(((t,e)=>t.y-e.y));const n=[];let o=null;for(let t=0;t<e.length;t++){const s=e[t];if(!o||s.y-o.y>o.height/2){n.push([s])}else{n[n.length-1].push(s)}o=s}return n.map((t=>H(V(t))))}const Y=function(t){if(t===void 0){t={}}return{name:"inline",options:t,async fn(e){const{placement:n,elements:o,rects:s,platform:i,strategy:r}=e;const{padding:c=2,x:a,y:l}=x(t,e);const f=Array.from(await(i.getClientRects==null?void 0:i.getClientRects(o.reference))||[]);const u=X(f);const d=H(V(f));const h=F(c);function y(){if(u.length===2&&u[0].left>u[1].right&&a!=null&&l!=null){return u.find((t=>a>t.left-h.left&&a<t.right+h.right&&l>t.top-h.top&&l<t.bottom+h.bottom))||d}if(u.length>=2){if(O(n)==="y"){const t=u[0];const e=u[u.length-1];const o=k(n)==="top";const s=t.top;const i=e.bottom;const r=o?t.left:e.left;const c=o?t.right:e.right;const a=c-r;const l=i-s;return{top:s,bottom:i,left:r,right:c,width:a,height:l,x:r,y:s}}const t=k(n)==="left";const e=m(...u.map((t=>t.right)));const o=p(...u.map((t=>t.left)));const s=u.filter((n=>t?n.left===o:n.right===e));const i=s[0].top;const r=s[s.length-1].bottom;const c=o;const a=e;const l=a-c;const f=r-i;return{top:i,bottom:r,left:c,right:a,width:l,height:f,x:c,y:i}}return d}const g=await i.getElementRects({reference:{getBoundingClientRect:y},floating:o.floating,strategy:r});if(s.reference.x!==g.reference.x||s.reference.y!==g.reference.y||s.reference.width!==g.reference.width||s.reference.height!==g.reference.height){return{reset:{rects:g}}}return{}}}};async function q(t,e){const{placement:n,platform:o,elements:s}=t;const i=await(o.isRTL==null?void 0:o.isRTL(s.floating));const r=k(n);const c=A(n);const a=O(n)==="y";const l=["left","top"].includes(r)?-1:1;const f=i&&a?-1:1;const u=x(e,t);let{mainAxis:d,crossAxis:h,alignmentAxis:p}=typeof u==="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...u};if(c&&typeof p==="number"){h=c==="end"?p*-1:p}return a?{x:h*f,y:d*l}:{x:d*l,y:h*f}}const J=function(t){if(t===void 0){t=0}return{name:"offset",options:t,async fn(e){var n,o;const{x:s,y:i,placement:r,middlewareData:c}=e;const a=await q(e,t);if(r===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset){return{}}return{x:s+a.x,y:i+a.y,data:{...a,placement:r}}}}};const Q=function(t){if(t===void 0){t={}}return{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:s}=e;const{mainAxis:i=true,crossAxis:r=false,limiter:c={fn:t=>{let{x:e,y:n}=t;return{x:e,y:n}}},...a}=x(t,e);const l={x:n,y:o};const f=await z(e,a);const u=O(k(s));const d=T(u);let h=l[d];let p=l[u];if(i){const t=d==="y"?"top":"left";const e=d==="y"?"bottom":"right";const n=h+f[t];const o=h-f[e];h=b(n,h,o)}if(r){const t=u==="y"?"top":"left";const e=u==="y"?"bottom":"right";const n=p+f[t];const o=p-f[e];p=b(n,p,o)}const m=c.fn({...e,[d]:h,[u]:p});return{...m,data:{x:m.x-n,y:m.y-o}}}}};const Z=function(t){if(t===void 0){t={}}return{options:t,fn(e){const{x:n,y:o,placement:s,rects:i,middlewareData:r}=e;const{offset:c=0,mainAxis:a=true,crossAxis:l=true}=x(t,e);const f={x:n,y:o};const u=O(s);const d=T(u);let h=f[d];let p=f[u];const m=x(c,e);const y=typeof m==="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(a){const t=d==="y"?"height":"width";const e=i.reference[d]-i.floating[t]+y.mainAxis;const n=i.reference[d]+i.reference[t]-y.mainAxis;if(h<e){h=e}else if(h>n){h=n}}if(l){var g,v;const t=d==="y"?"width":"height";const e=["top","left"].includes(k(s));const n=i.reference[u]-i.floating[t]+(e?((g=r.offset)==null?void 0:g[u])||0:0)+(e?0:y.crossAxis);const o=i.reference[u]+i.reference[t]+(e?0:((v=r.offset)==null?void 0:v[u])||0)-(e?y.crossAxis:0);if(p<n){p=n}else if(p>o){p=o}}return{[d]:h,[u]:p}}}};const tt=function(t){if(t===void 0){t={}}return{name:"size",options:t,async fn(e){const{placement:n,rects:o,platform:s,elements:i}=e;const{apply:r=(()=>{}),...c}=x(t,e);const a=await z(e,c);const l=k(n);const f=A(n);const u=O(n)==="y";const{width:d,height:h}=o.floating;let y;let g;if(l==="top"||l==="bottom"){y=l;g=f===(await(s.isRTL==null?void 0:s.isRTL(i.floating))?"start":"end")?"left":"right"}else{g=l;y=f==="end"?"top":"bottom"}const v=h-a.top-a.bottom;const w=d-a.left-a.right;const b=p(h-a[y],v);const T=p(d-a[g],w);const C=!e.middlewareData.shift;let P=b;let S=T;if(u){S=f||C?p(T,w):w}else{P=f||C?p(b,v):v}if(C&&!f){const t=m(a.left,0);const e=m(a.right,0);const n=m(a.top,0);const o=m(a.bottom,0);if(u){S=d-2*(t!==0||e!==0?t+e:m(a.left,a.right))}else{P=h-2*(n!==0||o!==0?n+o:m(a.top,a.bottom))}}await r({...e,availableWidth:S,availableHeight:P});const D=await s.getDimensions(i.floating);if(d!==D.width||h!==D.height){return{reset:{rects:true}}}return{}}}};function et(){return typeof window!=="undefined"}function nt(t){if(it(t)){return(t.nodeName||"").toLowerCase()}return"#document"}function ot(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function st(t){var e;return(e=(it(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function it(t){if(!et()){return false}return t instanceof Node||t instanceof ot(t).Node}function rt(t){if(!et()){return false}return t instanceof Element||t instanceof ot(t).Element}function ct(t){if(!et()){return false}return t instanceof HTMLElement||t instanceof ot(t).HTMLElement}function at(t){if(!et()||typeof ShadowRoot==="undefined"){return false}return t instanceof ShadowRoot||t instanceof ot(t).ShadowRoot}function lt(t){const{overflow:e,overflowX:n,overflowY:o,display:s}=yt(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!["inline","contents"].includes(s)}function ft(t){return["table","td","th"].includes(nt(t))}function ut(t){return[":popover-open",":modal"].some((e=>{try{return t.matches(e)}catch(t){return false}}))}function dt(t){const e=pt();const n=rt(t)?yt(t):t;return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":false)||!e&&(n.backdropFilter?n.backdropFilter!=="none":false)||!e&&(n.filter?n.filter!=="none":false)||["transform","perspective","filter"].some((t=>(n.willChange||"").includes(t)))||["paint","layout","strict","content"].some((t=>(n.contain||"").includes(t)))}function ht(t){let e=vt(t);while(ct(e)&&!mt(e)){if(dt(e)){return e}else if(ut(e)){return null}e=vt(e)}return null}function pt(){if(typeof CSS==="undefined"||!CSS.supports)return false;return CSS.supports("-webkit-backdrop-filter","none")}function mt(t){return["html","body","#document"].includes(nt(t))}function yt(t){return ot(t).getComputedStyle(t)}function gt(t){if(rt(t)){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}return{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function vt(t){if(nt(t)==="html"){return t}const e=t.assignedSlot||t.parentNode||at(t)&&t.host||st(t);return at(e)?e.host:e}function wt(t){const e=vt(t);if(mt(e)){return t.ownerDocument?t.ownerDocument.body:t.body}if(ct(e)&&lt(e)){return e}return wt(e)}function bt(t,e,n){var o;if(e===void 0){e=[]}if(n===void 0){n=true}const s=wt(t);const i=s===((o=t.ownerDocument)==null?void 0:o.body);const r=ot(s);if(i){const t=xt(r);return e.concat(r,r.visualViewport||[],lt(s)?s:[],t&&n?bt(t):[])}return e.concat(s,bt(s,[],n))}function xt(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function kt(t){const e=yt(t);let n=parseFloat(e.width)||0;let o=parseFloat(e.height)||0;const s=ct(t);const i=s?t.offsetWidth:n;const r=s?t.offsetHeight:o;const c=y(n)!==i||y(o)!==r;if(c){n=i;o=r}return{width:n,height:o,$:c}}function At(t){return!rt(t)?t.contextElement:t}function Tt(t){const e=At(t);if(!ct(e)){return g(1)}const n=e.getBoundingClientRect();const{width:o,height:s,$:i}=kt(e);let r=(i?y(n.width):n.width)/o;let c=(i?y(n.height):n.height)/s;if(!r||!Number.isFinite(r)){r=1}if(!c||!Number.isFinite(c)){c=1}return{x:r,y:c}}const Ct=g(0);function Ot(t){const e=ot(t);if(!pt()||!e.visualViewport){return Ct}return{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function Pt(t,e,n){if(e===void 0){e=false}if(!n||e&&n!==ot(t)){return false}return e}function St(t,e,n,o){if(e===void 0){e=false}if(n===void 0){n=false}const s=t.getBoundingClientRect();const i=At(t);let r=g(1);if(e){if(o){if(rt(o)){r=Tt(o)}}else{r=Tt(t)}}const c=Pt(i,n,o)?Ot(i):g(0);let a=(s.left+c.x)/r.x;let l=(s.top+c.y)/r.y;let f=s.width/r.x;let u=s.height/r.y;if(i){const t=ot(i);const e=o&&rt(o)?ot(o):o;let n=t;let s=xt(n);while(s&&o&&e!==n){const t=Tt(s);const e=s.getBoundingClientRect();const o=yt(s);const i=e.left+(s.clientLeft+parseFloat(o.paddingLeft))*t.x;const r=e.top+(s.clientTop+parseFloat(o.paddingTop))*t.y;a*=t.x;l*=t.y;f*=t.x;u*=t.y;a+=i;l+=r;n=ot(s);s=xt(n)}}return H({width:f,height:u,x:a,y:l})}function Dt(t){let{elements:e,rect:n,offsetParent:o,strategy:s}=t;const i=s==="fixed";const r=st(o);const c=e?ut(e.floating):false;if(o===r||c&&i){return n}let a={scrollLeft:0,scrollTop:0};let l=g(1);const f=g(0);const u=ct(o);if(u||!u&&!i){if(nt(o)!=="body"||lt(r)){a=gt(o)}if(ct(o)){const t=St(o);l=Tt(o);f.x=t.x+o.clientLeft;f.y=t.y+o.clientTop}}return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-a.scrollLeft*l.x+f.x,y:n.y*l.y-a.scrollTop*l.y+f.y}}function jt(t){return Array.from(t.getClientRects())}function Rt(t,e){const n=gt(t).scrollLeft;if(!e){return St(st(t)).left+n}return e.left+n}function Lt(t){const e=st(t);const n=gt(t);const o=t.ownerDocument.body;const s=m(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth);const i=m(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight);let r=-n.scrollLeft+Rt(t);const c=-n.scrollTop;if(yt(o).direction==="rtl"){r+=m(e.clientWidth,o.clientWidth)-s}return{width:s,height:i,x:r,y:c}}function Mt(t,e){const n=ot(t);const o=st(t);const s=n.visualViewport;let i=o.clientWidth;let r=o.clientHeight;let c=0;let a=0;if(s){i=s.width;r=s.height;const t=pt();if(!t||t&&e==="fixed"){c=s.offsetLeft;a=s.offsetTop}}return{width:i,height:r,x:c,y:a}}function Bt(t,e){const n=St(t,true,e==="fixed");const o=n.top+t.clientTop;const s=n.left+t.clientLeft;const i=ct(t)?Tt(t):g(1);const r=t.clientWidth*i.x;const c=t.clientHeight*i.y;const a=s*i.x;const l=o*i.y;return{width:r,height:c,x:a,y:l}}function Ft(t,e,n){let o;if(e==="viewport"){o=Mt(t,n)}else if(e==="document"){o=Lt(st(t))}else if(rt(e)){o=Bt(e,n)}else{const n=Ot(t);o={...e,x:e.x-n.x,y:e.y-n.y}}return H(o)}function Ht(t,e){const n=vt(t);if(n===e||!rt(n)||mt(n)){return false}return yt(n).position==="fixed"||Ht(n,e)}function Et(t,e){const n=e.get(t);if(n){return n}let o=bt(t,[],false).filter((t=>rt(t)&&nt(t)!=="body"));let s=null;const i=yt(t).position==="fixed";let r=i?vt(t):t;while(rt(r)&&!mt(r)){const e=yt(r);const n=dt(r);if(!n&&e.position==="fixed"){s=null}const c=i?!n&&!s:!n&&e.position==="static"&&!!s&&["absolute","fixed"].includes(s.position)||lt(r)&&!n&&Ht(t,r);if(c){o=o.filter((t=>t!==r))}else{s=e}r=vt(r)}e.set(t,o);return o}function $t(t){let{element:e,boundary:n,rootBoundary:o,strategy:s}=t;const i=n==="clippingAncestors"?ut(e)?[]:Et(e,this._c):[].concat(n);const r=[...i,o];const c=r[0];const a=r.reduce(((t,n)=>{const o=Ft(e,n,s);t.top=m(o.top,t.top);t.right=p(o.right,t.right);t.bottom=p(o.bottom,t.bottom);t.left=m(o.left,t.left);return t}),Ft(e,c,s));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}}function zt(t){const{width:e,height:n}=kt(t);return{width:e,height:n}}function Wt(t,e,n){const o=ct(e);const s=st(e);const i=n==="fixed";const r=St(t,true,i,e);let c={scrollLeft:0,scrollTop:0};const a=g(0);if(o||!o&&!i){if(nt(e)!=="body"||lt(s)){c=gt(e)}if(o){const t=St(e,true,i,e);a.x=t.x+e.clientLeft;a.y=t.y+e.clientTop}else if(s){a.x=Rt(s)}}let l=0;let f=0;if(s&&!o&&!i){const t=s.getBoundingClientRect();f=t.top+c.scrollTop;l=t.left+c.scrollLeft-Rt(s,t)}const u=r.left+c.scrollLeft-a.x-l;const d=r.top+c.scrollTop-a.y-f;return{x:u,y:d,width:r.width,height:r.height}}function Nt(t){return yt(t).position==="static"}function It(t,e){if(!ct(t)||yt(t).position==="fixed"){return null}if(e){return e(t)}let n=t.offsetParent;if(st(t)===n){n=n.ownerDocument.body}return n}function Ut(t,e){const n=ot(t);if(ut(t)){return n}if(!ct(t)){let e=vt(t);while(e&&!mt(e)){if(rt(e)&&!Nt(e)){return e}e=vt(e)}return n}let o=It(t,e);while(o&&ft(o)&&Nt(o)){o=It(o,e)}if(o&&mt(o)&&Nt(o)&&!dt(o)){return n}return o||ht(t)||n}const _t=async function(t){const e=this.getOffsetParent||Ut;const n=this.getDimensions;const o=await n(t.floating);return{reference:Wt(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function Gt(t){return yt(t).direction==="rtl"}const Kt={convertOffsetParentRelativeRectToViewportRelativeRect:Dt,getDocumentElement:st,getClippingRect:$t,getOffsetParent:Ut,getElementRects:_t,getClientRects:jt,getDimensions:zt,getScale:Tt,isElement:rt,isRTL:Gt};const Vt=J;I;const Xt=Q;const Yt=U;tt;K;const qt=W;Y;Z;const Jt=(t,e,n)=>{const o=new Map;const s={platform:Kt,...n};const i={...s.platform,_c:o};return $(t,e,{...s,platform:i})};const Qt=(t,e,n)=>{const o=t.get(e);if(!o){t.set(e,[n])}else if(!o.includes(n)){o.push(n)}};const Zt=(t,e)=>{let n;return(...o)=>{if(n){clearTimeout(n)}n=setTimeout((()=>{n=0;t(...o)}),e)}};const te=t=>!("isConnected"in t)||t.isConnected;const ee=Zt((t=>{for(let e of t.keys()){t.set(e,t.get(e).filter(te))}}),2e3);const ne=()=>{if(typeof t!=="function"){return{}}const n=new Map;return{dispose:()=>n.clear(),get:e=>{const o=t();if(o){Qt(n,e,o)}},set:t=>{const o=n.get(t);if(o){n.set(t,o.filter(e))}ee(n)},reset:()=>{n.forEach((t=>t.forEach(e)));ee(n)}}};const oe=t=>typeof t==="function"?t():t;const se=(t,e=((t,e)=>t!==e))=>{const n=oe(t);let o=new Map(Object.entries(n!==null&&n!==void 0?n:{}));const s={dispose:[],get:[],set:[],reset:[]};const i=()=>{var e;o=new Map(Object.entries((e=oe(t))!==null&&e!==void 0?e:{}));s.reset.forEach((t=>t()))};const r=()=>{s.dispose.forEach((t=>t()));i()};const c=t=>{s.get.forEach((e=>e(t)));return o.get(t)};const a=(t,n)=>{const i=o.get(t);if(e(n,i,t)){o.set(t,n);s.set.forEach((e=>e(t,n,i)))}};const l=typeof Proxy==="undefined"?{}:new Proxy(n,{get(t,e){return c(e)},ownKeys(t){return Array.from(o.keys())},getOwnPropertyDescriptor(){return{enumerable:true,configurable:true}},has(t,e){return o.has(e)},set(t,e,n){a(e,n);return true}});const f=(t,e)=>{s[t].push(e);return()=>{ie(s[t],e)}};const u=(e,n)=>{const o=f("set",((t,o)=>{if(t===e){n(o)}}));const s=f("reset",(()=>n(oe(t)[e])));return()=>{o();s()}};const d=(...t)=>{const e=t.reduce(((t,e)=>{if(e.set){t.push(f("set",e.set))}if(e.get){t.push(f("get",e.get))}if(e.reset){t.push(f("reset",e.reset))}if(e.dispose){t.push(f("dispose",e.dispose))}return t}),[]);return()=>e.forEach((t=>t()))};const h=t=>{const e=o.get(t);s.set.forEach((n=>n(t,e,e)))};return{state:l,get:c,set:a,on:f,onChange:u,use:d,dispose:r,reset:i,forceUpdate:h}};const ie=(t,e)=>{const n=t.indexOf(e);if(n>=0){t[n]=t[t.length-1];t.length--}};const re=(t,e)=>{const n=se(t,e);n.use(ne());return n};const ce="nv-popover{display:inline-block;position:relative}nv-popover:has([fluid]:not([fluid=false])){display:block}nv-popover[strategy=fixed]{position:static}nv-popover>[data-scope=popover]{width:max-content;background-color:var(--components-popover-background);border-color:var(--components-popover-border);font-weight:var(--font-weight-medium-emphasis);border-width:1px;border-style:solid;border-radius:var(--popover-radius);padding:var(--popover-padding-y) var(--popover-padding-x);position:absolute;top:0;left:0;z-index:1;box-shadow:var(--popover-shadow-1-x) var(--popover-shadow-1-y) var(--popover-shadow-1-blur) -2px var(--popover-shadow-1-opacity), var(--popover-shadow-2-x) var(--popover-shadow-2-y) var(--popover-shadow-2-blur) var(--shadow-spread-lg-2) var(--popover-shadow-2-opacity)}nv-popover>[data-scope=popover][hidden]:not([hidden=false]){display:none}nv-popover>[data-scope=popover][data-strategy=fixed]{position:fixed;z-index:9999}nv-popover>[data-scope=popover]>[data-scope=arrow]{background-color:var(--components-popover-background);position:absolute;border-color:var(--components-popover-border);border-width:1px;border-style:solid;border-bottom-color:transparent;border-right-color:transparent;width:8px;height:8px;transform:rotate(45deg);border-radius:1px}nv-popover>[data-scope=popover]>[slot=content]{position:relative;z-index:1}nv-popover>slot-fb{display:none}";const ae=ce;const{state:le}=re({groups:new Map});const fe=class{constructor(t){n(this,t);this.openChanged=o(this,"openChanged",7);this.eventsAttached=false;this.open=false;this.triggerMode="click";this.placement="bottom";this.strategy="absolute";this.offset=6;this.hasArrow=false;this.disableFlip=false;this.shiftPadding=0;this.enterDelay=0;this.nested=false;this.handleClickOutside=t=>{var e;if(this.el.contains(t.target))return;if((e=this.triggerElement)===null||e===void 0?void 0:e.contains(t.target))return;this.open=false};this.clickEvents=[["click",()=>this.open=!this.open]];this.outsideClickEvents=[["click",this.handleClickOutside],["touchstart",this.handleClickOutside]];this.hoverEvents=[["focus",()=>{clearTimeout(this.hideTimeout);this.showTimeout=setTimeout((()=>this.open=true),this.enterDelay)}],["blur",()=>{clearTimeout(this.showTimeout);this.hideTimeout=setTimeout((()=>this.open=false),50)}],["mouseenter",()=>{clearTimeout(this.hideTimeout);this.showTimeout=setTimeout((()=>this.open=true),this.enterDelay)}],["mouseleave",()=>{clearTimeout(this.showTimeout);this.hideTimeout=setTimeout((()=>this.open=false),100)}]];this.closeEvents=[["keydown",t=>{if(t.key==="Escape"){this.open=false}}]];this.isAnimating=false}async show(){this.open=true}async hide(){this.open=false}async toggle(){this.open=!this.open}attachEventListeners(){if(this.triggerElement&&!this.eventsAttached){l(this.closeEvents,document,this);if(this.triggerMode==="click"){l(this.clickEvents,this.triggerElement,this);l(this.outsideClickEvents,document,this)}if(this.triggerMode==="hover"){l(this.hoverEvents,this.triggerElement,this)}this.eventsAttached=true}}positionPopover(){if(!this.triggerElement)return;Jt(this.triggerElement,this.popoverElement,{placement:this.placement,strategy:this.strategy,middleware:[Vt(this.offset),!this.disableFlip&&Yt({fallbackStrategy:"bestFit",crossAxis:true,fallbackPlacements:["bottom"]}),Xt({padding:this.shiftPadding}),this.hasArrow&&qt({element:this.arrowElement})]}).then((({x:t,y:e,placement:n,middlewareData:o,strategy:s})=>{Object.assign(this.popoverElement.style,{left:`${t}px`,top:`${e}px`,position:s});if(this.hasArrow){const t={top:"bottom",right:"left",bottom:"top",left:"right"}[n.split("-")[0]];const e={top:"rotate(225deg)",right:"rotate(315deg)",bottom:"rotate(45deg)",left:"rotate(135deg)"}[n.split("-")[0]];const{x:s,y:i}=o.arrow;Object.assign(this.arrowElement.style,{left:s!=null?`${s}px`:"",top:i!=null?`${i}px`:"",right:"",bottom:"",transform:e,[t]:"-4px"})}}))}handleOpenChanged(t){var e;if(this.triggerMode==="controlled")return;if(this.nested)return;if((e=t.target)===null||e===void 0?void 0:e.hasAttribute("nested"))return;if(t.target!==this.el&&t.detail===true)this.open=false}async handleOpenChange(t){while(this.isAnimating){await new Promise((t=>setTimeout(t,50)))}this.isAnimating=true;const e=le.groups.get(this.groupName);const n=e&&e.openedBy!==this.el;const o=e&&e.openedBy===this.el;if(t)this.popoverElement.style.removeProperty("display");if(o&&!t)le.groups.delete(this.groupName);if(this.groupName&&t)le.groups.set(this.groupName,{openedBy:this.el});const{growIn:s}=a(this.popoverElement,{duration:n?0:100,amount:.85});const{fadeOut:i}=c(this.popoverElement,{duration:n?0:100});if(t===true){this.popoverElement.removeAttribute("hidden");this.positionPopover();await s()}if(t===false){await i();this.popoverElement.setAttribute("hidden","")}this.isAnimating=false;this.openChanged.emit(t)}handleStrategyChange(){if(this.open){this.positionPopover()}}componentWillLoad(){if(!this.triggerElement)this.triggerElement=Array.from(this.el.children).find((t=>t.getAttribute("slot")==="trigger"))}componentWillUpdate(){this.attachEventListeners()}componentDidLoad(){if(!this.open){const{setGrowOut:t}=a(this.popoverElement);t()}else{const{setFadeIn:t}=c(this.popoverElement);t();this.popoverElement.removeAttribute("hidden")}this.positionPopover();this.attachEventListeners()}disconnectedCallback(){f(this.closeEvents,document,this);if(this.triggerMode==="click"){f(this.clickEvents,this.triggerElement,this);f(this.outsideClickEvents,document,this)}if(this.triggerMode==="hover")f(this.hoverEvents,this.triggerElement,this);this.eventsAttached=false;if(this.hideTimeout)clearTimeout(this.hideTimeout);if(this.showTimeout)clearTimeout(this.showTimeout)}render(){return s(i,{key:"1af6f61d4b3d87e30d2311708fcd61979170aa96"},s("slot",{key:"113813292e083fa4b188f3e5750549a08fc8c3aa",name:"trigger"}),s("div",{key:"7687d6ae12b24ed575843f0d171d911eb0994675","data-scope":"popover","data-strategy":this.strategy,hidden:true,ref:t=>this.popoverElement=t},this.hasArrow&&s("div",{key:"162f1f50be23da7fadac8f76507e6d8d058fb58b","data-scope":"arrow",ref:t=>this.arrowElement=t}),s("slot",{key:"57ecf69ef395a045cb35e7db9f380027dfceff6e",name:"content"})))}get el(){return r(this)}static get watchers(){return{open:["handleOpenChange"],strategy:["handleStrategyChange"]}}};fe.style=ae;export{fe as nv_popover};
2
- //# sourceMappingURL=p-6cb6679b.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as o,h as t,H as e,g as n}from"./p-d0a33e64.js";import{b as s,B as r}from"./p-51602221.js";const a='nv-button{text-decoration:none;display:inline-flex;justify-content:center;align-items:center;font-style:normal;font-weight:var(--font-weight-medium-emphasis);font-family:"TT Norms Pro", sans-serif;transition:background-color 150ms ease-out;user-select:none;cursor:pointer;height:fit-content;width:fit-content}nv-button[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);font-size:var(--button-xs-font-size)}nv-button[size=xs] nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-button[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);font-size:var(--button-sm-font-size)}nv-button[size=sm] nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-button[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);font-size:var(--button-md-font-size)}nv-button[size=md] nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-button[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);font-size:var(--button-lg-font-size)}nv-button[size=lg] nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-button[emphasis=high]{background:var(--components-button-high-background);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text)}nv-button[emphasis=high]:hover{background:var(--components-button-high-background-hover);border:1px solid var(--components-button-high-border);color:var(--components-button-high-text-hover)}nv-button[emphasis=high]:active{background:var(--components-button-high-background-active);border:1px solid var(--components-button-high-border-active);color:var(--components-button-high-text-active)}nv-button[emphasis=high]:focus,nv-button[emphasis=high]:focus-within{outline:none}nv-button[emphasis=high]:focus-visible,nv-button[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-button[emphasis=high]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-button[emphasis=high][active]:not([active=false]){background:var(--components-button-high-background-active);border:1px solid var(--components-button-high-border-active);color:var(--components-button-high-text-active)}nv-button[emphasis=high][danger]:not([danger=false]){background:var(--components-button-destructive-high-background);border:1px solid transparent;color:var(--components-button-destructive-high-text)}nv-button[emphasis=high][danger]:not([danger=false]):hover{background:var(--components-button-destructive-high-background-hover);border:1px solid transparent;color:var(--components-button-destructive-high-text-hover)}nv-button[emphasis=high][danger]:not([danger=false]):focus,nv-button[emphasis=high][danger]:not([danger=false]):focus-within{outline:none}nv-button[emphasis=high][danger]:not([danger=false]):focus-visible,nv-button[emphasis=high][danger]:not([danger=false]):has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-destructive);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=medium]{background:var(--components-button-medium-background);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text)}nv-button[emphasis=medium]:hover{background:var(--components-button-medium-background-hover);border:1px solid var(--components-button-medium-border);color:var(--components-button-medium-text-hover)}nv-button[emphasis=medium]:active{background:var(--components-button-medium-background-active);border:1px solid var(--components-button-medium-border-active);color:var(--components-button-medium-text-active)}nv-button[emphasis=medium]:focus,nv-button[emphasis=medium]:focus-within{outline:none}nv-button[emphasis=medium]:focus-visible,nv-button[emphasis=medium]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=medium]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-button[emphasis=medium][active]:not([active=false]){background:var(--components-button-medium-background-active);border:1px solid var(--components-button-medium-border-active);color:var(--components-button-medium-text-active)}nv-button[emphasis=medium][danger]:not([danger=false]){background:var(--components-button-destructive-medium-background);border:1px solid var(--components-button-destructive-medium-border);color:var(--components-button-destructive-medium-text)}nv-button[emphasis=medium][danger]:not([danger=false]):hover{background:var(--components-button-destructive-medium-background-hover);border:1px solid var(--components-button-destructive-medium-border);color:var(--components-button-destructive-medium-text-hover)}nv-button[emphasis=medium][danger]:not([danger=false]):focus,nv-button[emphasis=medium][danger]:not([danger=false]):focus-within{outline:none}nv-button[emphasis=medium][danger]:not([danger=false]):focus-visible,nv-button[emphasis=medium][danger]:not([danger=false]):has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-destructive);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=low]{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-button[emphasis=low]:hover{background:var(--components-button-low-background-hover);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text-hover)}nv-button[emphasis=low]: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-button[emphasis=low]:focus,nv-button[emphasis=low]:focus-within{outline:none}nv-button[emphasis=low]:focus-visible,nv-button[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-button[emphasis=low]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-button[emphasis=low][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-button[emphasis=low][danger]:not([danger=false]){background:var(--components-button-destructive-low-background);border:1px solid var(--components-button-destructive-low-border);color:var(--components-button-destructive-low-text)}nv-button[emphasis=low][danger]:not([danger=false]):hover{background:var(--components-button-destructive-low-background-hover);border:1px solid var(--components-button-destructive-low-border);color:var(--components-button-destructive-low-text-hover)}nv-button[emphasis=low][danger]:not([danger=false]):focus,nv-button[emphasis=low][danger]:not([danger=false]):focus-within{outline:none}nv-button[emphasis=low][danger]:not([danger=false]):focus-visible,nv-button[emphasis=low][danger]:not([danger=false]):has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-destructive);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=lower]{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-button[emphasis=lower]:hover{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}nv-button[emphasis=lower]: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-button[emphasis=lower]:focus,nv-button[emphasis=lower]:focus-within{outline:none}nv-button[emphasis=lower]:focus-visible,nv-button[emphasis=lower]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[emphasis=lower]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-button[emphasis=lower][active]:not([active=false]){background:var(--components-button-lower-background-active);border:1px solid var(--components-button-lower-border-active);color:var(--components-button-lower-text-active)}nv-button[emphasis=lower][danger]:not([danger=false]){background:var(--components-button-destructive-lower-background);border:1px solid var(--components-button-destructive-lower-border);color:var(--components-button-destructive-lower-text)}nv-button[emphasis=lower][danger]:not([danger=false]):hover{background:var(--components-button-destructive-lower-background-hover);border:1px solid var(--components-button-destructive-lower-border);color:var(--components-button-destructive-lower-text-hover)}nv-button[emphasis=lower][danger]:not([danger=false]):focus,nv-button[emphasis=lower][danger]:not([danger=false]):focus-within{outline:none}nv-button[emphasis=lower][danger]:not([danger=false]):focus-visible,nv-button[emphasis=lower][danger]:not([danger=false]):has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-destructive);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-button[fluid]:not([fluid=false]){width:100%}nv-button[loading]:not([loading=false]) [slot=leading-icon]{display:none}';const i=a;const u=class{constructor(t){o(this,t);if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}this.size="md";this.emphasis="high";this.active=false;this.danger=false;this.loading=false;this.disabled=false;this.fluid=false;this.type="button";this.handleButtonClick=o=>{var t;if(this.loading||this.disabled){o.preventDefault();return}if(this.type!==s.Button&&(this.form||((t=this.internals)===null||t===void 0?void 0:t.form))){this.processFormAction()}else if(this.form&&this.type===s.Button){console.warn("Button has a form id but is not of type submit or reset so no form action will be processed.",`Button:`,this.el)}};this.processFormAction=()=>{var o,t;const e=this.form?document.getElementById(this.form):(o=this.internals)===null||o===void 0?void 0:o.form;if(!e){console.warn("No form element found.",`Form ID: ${this.form||"Not provided"}`,`Internals form:`,(t=this.internals)===null||t===void 0?void 0:t.form);return}switch(this.type){case s.Submit:e.requestSubmit();break;case s.Reset:e.reset();break}}}handleKeyDown(o){if(o.key==="Enter"||o.key===" "){o.preventDefault();this.el.click()}}handleTouchStart(o){if(o.touches.length>1)return;o.preventDefault();this.el.click()}handleLoadingChange(o){this.loading=o;this.disabled=o}handleDisabledChange(o){if(this.loading){this.disabled=this.loading}else{this.disabled=o}}componentWillLoad(){if(this.loading){this.disabled=this.loading}}render(){return t(e,{key:"54c0b3351f4d8a180058a03e61a562882fb98498",role:"button",tabindex:"0",onClick:this.handleButtonClick},this.loading&&t("nv-loader",{key:"21315e4af4111bcf47c67e65a9a58a1d7121a43e",size:this.size===r.Large?"sm":"xs"}),t("slot",{key:"f37683ddaa2c11c5b7accfc99429c930f5a3dcf6",name:"leading-icon"}),t("slot",{key:"d17ebe7505d9027c6c58f930a8ea9b097561cead"}),t("slot",{key:"2cd6c9756cc7540417041adf5830b734291b2ab5",name:"trailing-icon"}))}static get formAssociated(){return true}get el(){return n(this)}static get watchers(){return{loading:["handleLoadingChange"],disabled:["handleDisabledChange"]}}};u.style=i;export{u as nv_button};
2
- //# sourceMappingURL=p-6d13a851.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r}from"./p-d0a33e64.js";const s=class{constructor(s){r(this,s)}render(){return null}};export{s as nv_tablecolumn};
2
- //# sourceMappingURL=p-87784622.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["NvTablecolumn","render"],"sources":["src/components/nv-tablecolumn/nv-tablecolumn.tsx"],"sourcesContent":["import { Component, Prop } from '@stencil/core';\n\n@Component({\n tag: 'nv-tablecolumn',\n shadow: false,\n})\nexport class NvTablecolumn {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Name of the column and data accessor\n */\n @Prop({ reflect: true })\n readonly name!: string;\n\n /**\n * Header of the column to be displayed\n */\n @Prop({ reflect: true })\n readonly header?: string;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return null;\n }\n\n // #endregion RENDER\n}\n"],"mappings":"qCAMaA,EAAa,M,yBAoBxB,MAAAC,GACE,OAAO,I","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as r,h as o,H as t,g as i}from"./p-d0a33e64.js";import{v as n}from"./p-f5ff676c.js";const a='nv-fieldslider .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-hover)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .track-range{background:var(--components-slider-track-filled-focus)}nv-fieldslider .slider-container .track-container:has(.thumb:focus) .thumb{border-color:var(--components-slider-track-filled-focus)}nv-fieldslider[error] .slider-container .track-container .track .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:hover{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-handler-background-error)}nv-fieldslider[error] .slider-container .track-container .track .thumb:focus{border-color:var(--components-slider-track-filled-error);outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-slider-track-filled-error);outline-offset:calc(var(--focus-outline-offset) * 1);background-color:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .track-range{background:var(--components-slider-track-filled-error)}nv-fieldslider[error] .slider-container .track-container:has(.thumb:hover) .thumb{border-color:var(--components-slider-track-filled-error)}nv-fieldtext{--nv-field-border-default:var(--components-form-field-border-default);--nv-field-border-hover:var(--components-form-field-border-hover);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--components-form-field-border-default);--nv-field-border-readonly:var(--components-form-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-brand);--nv-field-background:var(--components-form-field-background-default);display:flex;flex-direction:column;align-items:flex-start;gap:var(--form-gap-y);box-sizing:border-box;max-width:480px}nv-fieldtext[fluid]:not([fluid=false]){max-width:unset}nv-fieldtext[readonly]:not([readonly=false]){--nv-field-border-default:var(--components-form-field-border-readonly);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--components-form-field-border-focus);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-background:var(--components-form-field-background-readonly)}nv-fieldtext[error]:not([error=false]){--nv-field-border-default:var(--components-form-field-border-error);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-destructive-in-field)}nv-fieldtext[success]:not([success=false]){--nv-field-border-default:var(--components-form-field-border-success);--nv-field-border-hover:var(--nv-field-border-default);--nv-field-border-focus:var(--nv-field-border-default);--nv-field-border-disabled:var(--nv-field-border-default);--nv-field-border-readonly:var(--nv-field-border-default);--nv-field-focus-box-shadow:var(--color-focus-success)}nv-fieldtext[required]:not([required=false]) label::after{content:"*";color:var(--components-form-text-required);font-weight:700}nv-fieldtext>label{display:flex;align-items:center;gap:var(--form-label-gap);align-self:stretch;color:var(--components-form-text-label-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-label-font-size);font-style:normal;font-weight:500;line-height:var(--form-label-line-height)}nv-fieldtext>.input-wrapper{display:flex;flex-wrap:wrap;gap:var(--form-gap-x);align-items:stretch;align-self:stretch}nv-fieldtext>.input-wrapper .input-container{display:flex;flex-grow:1;justify-content:center;align-items:center;align-self:stretch;border-radius:var(--form-field-radius);border-width:1px;border-style:solid;border-color:var(--nv-field-border-default);opacity:var(--components-form-opacity-default, 1);background:var(--nv-field-background);transition:all 150ms ease-out}nv-fieldtext>.input-wrapper .input-container:hover{border-color:var(--nv-field-border-hover)}nv-fieldtext>.input-wrapper .input-container:focus-within,nv-fieldtext>.input-wrapper .input-container:focus-within:hover,nv-fieldtext>.input-wrapper .input-container:focus,nv-fieldtext>.input-wrapper .input-container:focus:hover{border-color:var(--nv-field-border-focus);box-shadow:0px 0px 0px var(--focus-field-stroke) var(--nv-field-focus-box-shadow)}nv-fieldtext>.input-wrapper .input-container:has(input:read-only){opacity:0.5;background-color:var(--components-form-field-background-readonly);border-color:var(--nv-field-border-readonly)}nv-fieldtext>.input-wrapper .input-container:has(input:disabled){opacity:0.5;background-color:var(--components-form-field-background-disabled);border-color:var(--nv-field-border-disabled)}nv-fieldtext>.input-wrapper .input-container>[slot=leading-input]{display:block;margin-left:var(--form-field-padding-x)}nv-fieldtext>.input-wrapper .input-container input{display:flex;align-items:center;flex:1 0 0;overflow:hidden;background-color:transparent;color:var(--components-form-field-content-text);padding:var(--form-field-padding-y) var(--form-field-padding-x);font-size:var(--form-field-font-size);font-style:normal;font-weight:500;line-height:var(--form-field-line-height);width:100%;}nv-fieldtext>.input-wrapper .input-container input:focus{outline:none}nv-fieldtext>.input-wrapper .input-container input::placeholder{overflow:hidden;color:var(--components-form-field-content-placeholder);text-overflow:ellipsis;font-family:"TT Norms Pro", sans-serif;font-size:var(--form-field-font-size);font-style:normal;font-weight:400;line-height:var(--form-field-line-height)}nv-fieldtext>.input-wrapper .input-container input[type=password]::-ms-clear,nv-fieldtext>.input-wrapper .input-container input[type=password]::-ms-reveal{display:none;width:0;height:0}nv-fieldtext>.input-wrapper .input-container nv-icon.validation{color:var(--nv-field-border-default);margin-right:var(--form-gap-x)}nv-fieldtext>.input-wrapper .input-container>[slot=trailing-input]{display:block;margin-right:var(--form-field-padding-x)}nv-fieldtext>.description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height)}nv-fieldtext>.error-description{display:flex;align-items:center;align-self:stretch;gap:var(--spacing-1);color:var(--components-form-text-description-default);font-family:"TT Norms Pro", sans-serif;font-size:var(--form-description-font-size);font-style:normal;line-height:var(--form-description-line-height);color:var(--components-form-text-description-error)}';const l=a;const d=class{constructor(o){e(this,o);this.valueChanged=r(this,"valueChanged",7);this.inputId=n();this.type="text";this.disabled=false;this.readonly=false;this.required=false;this.error=false;this.success=false;this.multiple=false;this.autofocus=false;this.fluid=false;this.handleInput=e=>{const r=e.target;this.value=r.value;this.valueChanged.emit(r.value)};this.handleInputContainerClick=()=>{this.inputElement.focus()}}componentWillRender(){if(this.textInputType){this.type=this.textInputType}if(this.message){this.description=this.message}if(this.validation){this.errorDescription=this.validation;this.error=true}}render(){return o(t,{key:"c807258b41bcaada1a02abf56171f84a4dadc981"},(this.label||this.el.querySelector('[slot="label"]'))&&o("label",{key:"9ba74a42aaddc54af913d8e9a76ad596f0b0ca02",htmlFor:this.inputId},o("slot",{key:"7b0c763c5034807aceaf883dc8a7097cc5d21586",name:"label"},this.label)),o("div",{key:"89396cfa77b11ea2499292448f43303ec1419432",class:"input-wrapper"},o("slot",{key:"0574e6280a9f8575a555ed71cb380f8d622019a3",name:"before-input"}),o("div",{key:"a7822f74ded6e21992ebf15afbbcaea449195c6a",class:"input-container",onClick:this.handleInputContainerClick},o("slot",{key:"af6789b67cea21c9445bd1000fa582c092daccf6",name:"leading-input"}),o("input",{key:"00118f95a1555d601cf5de2b4703e064dc31250a",id:this.inputId,ref:e=>this.inputElement=e,placeholder:this.placeholder,name:this.name,type:this.type,disabled:this.disabled,readOnly:this.readonly,required:this.required,maxlength:this.maxlength,minlength:this.minlength,pattern:this.pattern,autofocus:this.autofocus,autocomplete:this.autocomplete,multiple:this.multiple,value:this.value,onInput:this.handleInput}),o("slot",{key:"67e4fecbfd6c938e77b98416d0d6229993ec4592",name:"trailing-input"}),this.error&&o("nv-icon",{key:"5f11f64460e003859fefffa904c70719ebf87a26",name:"alert-circle",class:"validation",size:"md"}),this.success&&o("nv-icon",{key:"161fec1690c7672be64684c0121a802406b1d30b",name:"circle-check",class:"validation",size:"md"})),o("slot",{key:"05d808bc7c372d5c911d03c074c89a829e42083b",name:"after-input"})),(this.description||this.el.querySelector('[slot="description"]'))&&o("div",{key:"07818a5aec0540a8758ccdfc32dbc15129adf5e9",class:"description"},o("slot",{key:"cc7b3a9086b4afae71c25964a92ea2ed5f07813a",name:"description"},this.description)),(this.errorDescription||this.el.querySelector('[slot="error-description"]'))&&o("div",{key:"a313507b2c8f88c5d7304513b84f9bb360886961",hidden:!this.error,class:"error-description"},o("slot",{key:"796a5b0c0df37196a4c71bef6a35814fff1eae47",name:"error-description"},this.errorDescription)))}static get formAssociated(){return true}get el(){return i(this)}};d.style=l;export{d as nv_fieldtext};
2
- //# sourceMappingURL=p-92931ab8.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,c as o,f as n,h as t,H as i,g as s}from"./p-d0a33e64.js";const r="nv-accordion{display:block;border:var(--spacing-px) solid var(--color-content-low-border);border-radius:var(--radius-rounded-lg)}nv-accordion .nv-accordion__footer{padding:var(--spacing-3);background:var(--color-level-05-background);border-radius:0 0 var(--radius-rounded-lg) var(--radius-rounded-lg);margin-top:calc(var(--spacing-px) * -1);border-top:var(--spacing-px) solid var(--color-content-low-border)}nv-accordion .nv-accordion__footer:empty{display:none}";const a=r;const d=class{constructor(n){e(this,n);this.openChanged=o(this,"openChanged",7);this.data=[];this.mode="accordion";this.openIndexes=[];this.updatingFromInternal=false}async open(e){this.toggleItem(e,true)}async close(e){this.toggleItem(e,false)}toggleItem(e,o){const n=Array.from(this.el.querySelectorAll("nv-accordion-item"));const t=n[e];if(!t||t.disabled){console.warn("[toggleItem] Item not found or disabled:",e);this.openChanged.emit({openIndexes:[...this.openIndexes||[]]});return}let i=[...this.openIndexes||[]];const s=i.includes(e);if(this.mode==="accordion"){i=o===false||o===undefined&&s?[]:[e]}else{if(o===false){i=i.filter((o=>o!==e))}else if(o===true&&!s){i.push(e)}else if(o===undefined){i=s?i.filter((o=>o!==e)):[...i,e]}}this.updatingFromInternal=true;this.openIndexes=[...i];this.updateChildrenState();this.updatingFromInternal=false;this.openChanged.emit({openIndexes:[...i]})}async updateChildrenState(){const e=Array.from(this.el.querySelectorAll("nv-accordion-item"));e.forEach(((e,o)=>{const t=(this.openIndexes||[]).includes(o);e.open=t;e.mode=this.mode;e.setAttribute("aria-expanded",t?"true":"false");n(e)}))}onItemToggle(e){if(this.updatingFromInternal){return}const o=Array.from(this.el.querySelectorAll("nv-accordion-item"));const n=e.target;const t=o.indexOf(n);if(t!==-1){this.toggleItem(t,e.detail)}else{console.warn("[onItemToggle] Target item not found in items list")}}onOpenIndexesChange(e,o){if(!this.updatingFromInternal&&e!==undefined&&e!==o){this.updateChildrenState()}}onModeChange(){this.updateChildrenState()}componentWillLoad(){if(this.openIndexes===undefined){this.openIndexes=[]}}async componentDidLoad(){var e;const o=Array.from(this.el.querySelectorAll("nv-accordion-item"));if(!((e=this.data)===null||e===void 0?void 0:e.length)&&(!this.openIndexes||this.openIndexes.length===0)){const e=o.map(((e,o)=>e.hasAttribute("open")||e.open?o:-1)).filter((e=>e!==-1));if(e.length>0){this.updatingFromInternal=true;this.openIndexes=[...e];this.updatingFromInternal=false;this.openChanged.emit({openIndexes:[...this.openIndexes]})}}await this.updateChildrenState()}render(){var e;return t(i,{key:"b5c36f19bcbd0d06e9d924ae6f9630b8b6cae05a",role:"list",class:"nv-accordion"},((e=this.data)===null||e===void 0?void 0:e.length)?this.data.map(((e,o)=>{var n;return t("nv-accordion-item",{key:(n=e.id)!==null&&n!==void 0?n:o,itemTitle:e.title,disabled:e.disabled,open:(this.openIndexes||[]).includes(o),mode:this.mode},e.subtitle?t("div",{slot:"header"},t("div",{class:"nv-accordion-item__header-content"},t("span",{class:"nv-accordion-item__title"},e.title),t("span",{class:"nv-accordion-item__subtitle"},e.subtitle))):null,t("div",{slot:"content"},e.content),e.footer&&t("div",{slot:"footer"},e.footer))})):t("slot",null))}get el(){return s(this)}static get watchers(){return{openIndexes:["onOpenIndexesChange"],mode:["onModeChange"]}}};d.style=a;export{d as nv_accordion};
2
- //# sourceMappingURL=p-9a46baa9.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["nvAccordionCss","NvAccordionStyle0","NvAccordion","constructor","hostRef","this","data","mode","openIndexes","updatingFromInternal","open","index","toggleItem","close","forceOpen","items","Array","from","el","querySelectorAll","item","disabled","console","warn","openChanged","emit","isOpen","includes","undefined","filter","i","push","updateChildrenState","forEach","shouldBeOpen","setAttribute","forceUpdate","onItemToggle","event","targetItem","target","indexOf","detail","onOpenIndexesChange","newValue","oldValue","onModeChange","componentWillLoad","componentDidLoad","_a","length","childOpenIndexes","map","hasAttribute","render","h","Host","key","role","class","id","itemTitle","title","subtitle","slot","content","footer"],"sources":["src/components/nv-accordion/styles/nv-accordion.scss?tag=nv-accordion","src/components/nv-accordion/nv-accordion.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-accordion {\n @include accordion-root();\n\n .nv-accordion__footer {\n @include accordion-footer();\n\n &:empty {\n @include accordion-footer-empty();\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Method,\n Listen,\n Element,\n forceUpdate,\n Watch,\n} from '@stencil/core';\n\n/**\n * @slot default - Slot for custom content (optional, ignored if data is provided)\n */\n@Component({\n tag: 'nv-accordion',\n styleUrl: 'styles/nv-accordion.scss',\n shadow: false,\n})\nexport class NvAccordion {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Data to display as a list of items (title, subtitle, content).\n */\n @Prop({ reflect: false })\n readonly data: {\n /** Unique identifier of the item */\n id: string;\n /** Item title */\n title: string;\n /** Optional subtitle */\n subtitle?: string;\n /** Main content */\n content: string;\n /** Optional footer */\n footer?: string;\n /** Disabled state */\n disabled?: boolean;\n }[] = [];\n\n /**\n * Expansion mode: 'accordion' (single open) or 'multi' (multiple open)\n */\n @Prop({ reflect: true })\n readonly mode: 'accordion' | 'multi' = 'accordion';\n\n /**\n * Index of open items (external control possible)\n */\n @Prop({ reflect: false, mutable: true })\n openIndexes?: number[] = [];\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region STATE\n\n @State()\n private updatingFromInternal: boolean = false;\n\n /**\n * Reference to host element to access children\n */\n @Element() el!: HTMLNvAccordionElement;\n\n //#endregion STATE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Event emitted when an item's open state changes\n */\n @Event()\n openChanged: EventEmitter<{\n /** Index of open items */\n openIndexes: number[];\n }>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Opens an item by its index (Public API)\n * @param {number} index Index of the item to open\n */\n @Method()\n async open(index: number) {\n this.toggleItem(index, true);\n }\n\n /**\n * Closes an item by its index (Public API)\n * @param {number} index Index of the item to close\n */\n @Method()\n async close(index: number) {\n this.toggleItem(index, false);\n }\n\n /**\n * Toggles an item's state (internal)\n * @param {number} index Item index\n * @param {boolean} [forceOpen] Force open (true) or close (false)\n */\n private toggleItem(index: number, forceOpen?: boolean) {\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n const item = items[index];\n\n if (!item || item.disabled) {\n console.warn('[toggleItem] Item not found or disabled:', index);\n this.openChanged.emit({ openIndexes: [...(this.openIndexes || [])] });\n return;\n }\n\n let openIndexes = [...(this.openIndexes || [])];\n const isOpen = openIndexes.includes(index);\n\n if (this.mode === 'accordion') {\n openIndexes =\n forceOpen === false || (forceOpen === undefined && isOpen)\n ? []\n : [index];\n } else {\n if (forceOpen === false) {\n openIndexes = openIndexes.filter(i => i !== index);\n } else if (forceOpen === true && !isOpen) {\n openIndexes.push(index);\n } else if (forceOpen === undefined) {\n openIndexes = isOpen\n ? openIndexes.filter(i => i !== index)\n : [...openIndexes, index];\n }\n }\n\n this.updatingFromInternal = true;\n this.openIndexes = [...openIndexes];\n this.updateChildrenState();\n this.updatingFromInternal = false;\n\n this.openChanged.emit({ openIndexes: [...openIndexes] });\n }\n\n /**\n * Updates the open state of child elements based on openIndexes\n */\n private async updateChildrenState() {\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n\n items.forEach((item, i) => {\n const shouldBeOpen = (this.openIndexes || []).includes(i);\n item.open = shouldBeOpen;\n item.mode = this.mode;\n item.setAttribute('aria-expanded', shouldBeOpen ? 'true' : 'false');\n forceUpdate(item);\n });\n }\n\n /**\n * Listens to itemToggle events from nv-accordion-item elements\n * @param {CustomEvent<boolean>} event Event emitted by nv-accordion-item\n */\n @Listen('itemToggle')\n onItemToggle(event: CustomEvent<boolean>) {\n if (this.updatingFromInternal) {\n return;\n }\n\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n const targetItem = event.target as HTMLNvAccordionItemElement;\n const index = items.indexOf(targetItem);\n\n if (index !== -1) {\n this.toggleItem(index, event.detail);\n } else {\n console.warn('[onItemToggle] Target item not found in items list');\n }\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('openIndexes')\n onOpenIndexesChange(\n newValue: number[] | undefined,\n oldValue: number[] | undefined,\n ) {\n if (\n !this.updatingFromInternal &&\n newValue !== undefined &&\n newValue !== oldValue\n ) {\n this.updateChildrenState();\n }\n }\n\n @Watch('mode')\n onModeChange() {\n this.updateChildrenState();\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (this.openIndexes === undefined) {\n this.openIndexes = [];\n }\n }\n\n async componentDidLoad() {\n const items = Array.from(\n this.el.querySelectorAll('nv-accordion-item'),\n ) as HTMLNvAccordionItemElement[];\n\n // Only initialize openIndexes from child items if no data is provided and openIndexes is not explicitly set\n if (\n !this.data?.length &&\n (!this.openIndexes || this.openIndexes.length === 0)\n ) {\n const childOpenIndexes = items\n .map((item, i) => (item.hasAttribute('open') || item.open ? i : -1))\n .filter(i => i !== -1);\n\n if (childOpenIndexes.length > 0) {\n this.updatingFromInternal = true;\n this.openIndexes = [...childOpenIndexes];\n this.updatingFromInternal = false;\n\n this.openChanged.emit({ openIndexes: [...this.openIndexes] });\n }\n }\n\n // Ensure children are in sync with current openIndexes state\n await this.updateChildrenState();\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host role=\"list\" class=\"nv-accordion\">\n {this.data?.length ? (\n this.data.map((item, i) => (\n <nv-accordion-item\n key={item.id ?? i}\n itemTitle={item.title}\n disabled={item.disabled}\n open={(this.openIndexes || []).includes(i)}\n mode={this.mode}\n >\n {item.subtitle ? (\n <div slot=\"header\">\n <div class=\"nv-accordion-item__header-content\">\n <span class=\"nv-accordion-item__title\">{item.title}</span>\n <span class=\"nv-accordion-item__subtitle\">\n {item.subtitle}\n </span>\n </div>\n </div>\n ) : null}\n <div slot=\"content\">{item.content}</div>\n {item.footer && <div slot=\"footer\">{item.footer}</div>}\n </nv-accordion-item>\n ))\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n\n // #endregion RENDER\n}\n"],"mappings":"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","ignoreList":[]}