@nova-design-system/nova-webcomponents 3.0.0-beta.28 → 3.0.0-beta.29

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 (431) hide show
  1. package/dist/blazor-docs.json +760 -254
  2. package/dist/cjs/{app-globals-d8cbb987.js → app-globals-69764290.js} +2 -2
  3. package/dist/cjs/{app-globals-d8cbb987.js.map → app-globals-69764290.js.map} +1 -1
  4. package/dist/cjs/{index-c50face0.js → index-72b8a9ad.js} +847 -488
  5. package/dist/cjs/index-72b8a9ad.js.map +1 -0
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/native.cjs.js +3 -3
  8. package/dist/cjs/native.cjs.js.map +1 -1
  9. package/dist/cjs/nv-alert.cjs.entry.js +22 -9
  10. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nv-avatar.cjs.entry.js +8 -11
  12. package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nv-badge.cjs.entry.js +40 -14
  14. package/dist/cjs/nv-badge.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nv-base.cjs.entry.js +1 -1
  16. package/dist/cjs/nv-button.cjs.entry.js +40 -8
  17. package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-col.cjs.entry.js +1 -2
  19. package/dist/cjs/nv-col.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nv-datagrid.cjs.entry.js +31 -5
  21. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nv-datagridbody.cjs.entry.js +1 -1
  23. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +1 -3
  24. package/dist/cjs/nv-datagridcolumn.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-datagriddatacell.cjs.entry.js +1 -2
  26. package/dist/cjs/nv-datagriddatacell.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nv-datagridhead.cjs.entry.js +1 -1
  28. package/dist/cjs/nv-datagridrow.cjs.entry.js +1 -1
  29. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +40 -9
  30. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-fielddropdown.cjs.entry.js +58 -19
  32. package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +11 -5
  34. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nv-fieldnumber.cjs.entry.js +44 -18
  36. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  37. package/dist/cjs/nv-fieldpassword.cjs.entry.js +62 -21
  38. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  39. package/dist/cjs/nv-fieldradio.cjs.entry.js +26 -8
  40. package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
  41. package/dist/cjs/nv-fieldselect.cjs.entry.js +59 -18
  42. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  43. package/dist/cjs/nv-fieldtext.cjs.entry.js +52 -22
  44. package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +58 -20
  46. package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nv-fieldtoggle.cjs.entry.js +19 -6
  48. package/dist/cjs/nv-fieldtoggle.cjs.entry.js.map +1 -1
  49. package/dist/cjs/nv-icon.cjs.entry.js +4 -9
  50. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  51. package/dist/cjs/nv-iconbutton.cjs.entry.js +42 -9
  52. package/dist/cjs/nv-iconbutton.cjs.entry.js.map +1 -1
  53. package/dist/cjs/nv-loader.cjs.entry.js +8 -2
  54. package/dist/cjs/nv-loader.cjs.entry.js.map +1 -1
  55. package/dist/cjs/nv-menu.cjs.entry.js +20 -1
  56. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  57. package/dist/cjs/nv-menuitem.cjs.entry.js +7 -3
  58. package/dist/cjs/nv-menuitem.cjs.entry.js.map +1 -1
  59. package/dist/cjs/nv-popover.cjs.entry.js +48 -12
  60. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  61. package/dist/cjs/nv-row.cjs.entry.js +1 -1
  62. package/dist/cjs/nv-stack.cjs.entry.js +7 -5
  63. package/dist/cjs/nv-stack.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nv-table.cjs.entry.js +26 -5
  65. package/dist/cjs/nv-table.cjs.entry.js.map +1 -1
  66. package/dist/cjs/nv-tablebody.cjs.entry.js +1 -1
  67. package/dist/cjs/nv-tablecolumn.cjs.entry.js +15 -4
  68. package/dist/cjs/nv-tablecolumn.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nv-tabledatacell.cjs.entry.js +17 -2
  70. package/dist/cjs/nv-tabledatacell.cjs.entry.js.map +1 -1
  71. package/dist/cjs/nv-tablehead.cjs.entry.js +1 -1
  72. package/dist/cjs/nv-tablerow.cjs.entry.js +1 -1
  73. package/dist/cjs/nv-tooltip.cjs.entry.js +11 -2
  74. package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
  75. package/dist/collection/collection-manifest.json +1 -1
  76. package/dist/collection/components/nv-alert/nv-alert.js +37 -8
  77. package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
  78. package/dist/collection/components/nv-avatar/nv-avatar.js +31 -10
  79. package/dist/collection/components/nv-avatar/nv-avatar.js.map +1 -1
  80. package/dist/collection/components/nv-badge/nv-badge.css +70 -0
  81. package/dist/collection/components/nv-badge/nv-badge.docs.js +1 -1
  82. package/dist/collection/components/nv-badge/nv-badge.docs.js.map +1 -1
  83. package/dist/collection/components/nv-badge/nv-badge.js +57 -13
  84. package/dist/collection/components/nv-badge/nv-badge.js.map +1 -1
  85. package/dist/collection/components/nv-button/nv-button.js +53 -7
  86. package/dist/collection/components/nv-button/nv-button.js.map +1 -1
  87. package/dist/collection/components/nv-col/nv-col.js +2 -3
  88. package/dist/collection/components/nv-col/nv-col.js.map +1 -1
  89. package/dist/collection/components/nv-datagrid/nv-datagrid.js +42 -4
  90. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  91. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +4 -4
  92. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js.map +1 -1
  93. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js +2 -3
  94. package/dist/collection/components/nv-datagriddatacell/nv-datagriddatacell.js.map +1 -1
  95. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +73 -8
  96. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
  97. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +87 -18
  98. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  99. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +18 -4
  100. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js.map +1 -1
  101. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +77 -17
  102. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  103. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +99 -20
  104. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
  105. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +49 -7
  106. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js.map +1 -1
  107. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +88 -17
  108. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
  109. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +93 -21
  110. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js.map +1 -1
  111. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +95 -19
  112. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js.map +1 -1
  113. package/dist/collection/components/nv-fieldtoggle/nv-fieldtoggle.js +38 -5
  114. package/dist/collection/components/nv-fieldtoggle/nv-fieldtoggle.js.map +1 -1
  115. package/dist/collection/components/nv-icon/nv-icon.js +19 -8
  116. package/dist/collection/components/nv-icon/nv-icon.js.map +1 -1
  117. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +57 -8
  118. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js.map +1 -1
  119. package/dist/collection/components/nv-loader/nv-loader.js +11 -1
  120. package/dist/collection/components/nv-loader/nv-loader.js.map +1 -1
  121. package/dist/collection/components/nv-menu/nv-menu.js +27 -0
  122. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  123. package/dist/collection/components/nv-menuitem/nv-menuitem.js +14 -2
  124. package/dist/collection/components/nv-menuitem/nv-menuitem.js.map +1 -1
  125. package/dist/collection/components/nv-popover/nv-popover.js +70 -12
  126. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  127. package/dist/collection/components/nv-stack/nv-stack.js +16 -4
  128. package/dist/collection/components/nv-stack/nv-stack.js.map +1 -1
  129. package/dist/collection/components/nv-table/nv-table.js +37 -4
  130. package/dist/collection/components/nv-table/nv-table.js.map +1 -1
  131. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js +24 -3
  132. package/dist/collection/components/nv-tablecolumn/nv-tablecolumn.js.map +1 -1
  133. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js +22 -1
  134. package/dist/collection/components/nv-tabledatacell/nv-tabledatacell.js.map +1 -1
  135. package/dist/collection/components/nv-tooltip/nv-tooltip.js +16 -1
  136. package/dist/collection/components/nv-tooltip/nv-tooltip.js.map +1 -1
  137. package/dist/collection/dev/dev-components.js +1 -1
  138. package/dist/collection/dev/dev-components.js.map +1 -1
  139. package/dist/components/index.js +3 -3
  140. package/dist/components/nv-alert.js +23 -10
  141. package/dist/components/nv-alert.js.map +1 -1
  142. package/dist/components/nv-avatar.js +9 -12
  143. package/dist/components/nv-avatar.js.map +1 -1
  144. package/dist/components/nv-badge.js +41 -15
  145. package/dist/components/nv-badge.js.map +1 -1
  146. package/dist/components/nv-base.js +1 -1
  147. package/dist/components/nv-button.js +41 -9
  148. package/dist/components/nv-button.js.map +1 -1
  149. package/dist/components/nv-col.js +1 -2
  150. package/dist/components/nv-col.js.map +1 -1
  151. package/dist/components/nv-datagrid.js +31 -5
  152. package/dist/components/nv-datagrid.js.map +1 -1
  153. package/dist/components/nv-datagridbody.js +1 -1
  154. package/dist/components/nv-datagridcolumn.js +1 -3
  155. package/dist/components/nv-datagridcolumn.js.map +1 -1
  156. package/dist/components/nv-datagriddatacell.js +1 -2
  157. package/dist/components/nv-datagriddatacell.js.map +1 -1
  158. package/dist/components/nv-datagridhead.js +1 -1
  159. package/dist/components/nv-datagridrow.js +1 -1
  160. package/dist/components/nv-fieldcheckbox.js +40 -9
  161. package/dist/components/nv-fieldcheckbox.js.map +1 -1
  162. package/dist/components/nv-fielddropdown.js +63 -24
  163. package/dist/components/nv-fielddropdown.js.map +1 -1
  164. package/dist/components/nv-fielddropdownitem.js +1 -1
  165. package/dist/components/nv-fieldnumber.js +45 -19
  166. package/dist/components/nv-fieldnumber.js.map +1 -1
  167. package/dist/components/nv-fieldpassword.js +65 -24
  168. package/dist/components/nv-fieldpassword.js.map +1 -1
  169. package/dist/components/nv-fieldradio.js +26 -8
  170. package/dist/components/nv-fieldradio.js.map +1 -1
  171. package/dist/components/nv-fieldselect.js +60 -19
  172. package/dist/components/nv-fieldselect.js.map +1 -1
  173. package/dist/components/nv-fieldtext.js +53 -23
  174. package/dist/components/nv-fieldtext.js.map +1 -1
  175. package/dist/components/nv-fieldtextarea.js +58 -20
  176. package/dist/components/nv-fieldtextarea.js.map +1 -1
  177. package/dist/components/nv-fieldtoggle.js +19 -6
  178. package/dist/components/nv-fieldtoggle.js.map +1 -1
  179. package/dist/components/nv-icon.js +1 -1
  180. package/dist/components/nv-iconbutton.js +1 -1
  181. package/dist/components/nv-loader.js +1 -1
  182. package/dist/components/nv-menu.js +21 -2
  183. package/dist/components/nv-menu.js.map +1 -1
  184. package/dist/components/nv-menuitem.js +8 -4
  185. package/dist/components/nv-menuitem.js.map +1 -1
  186. package/dist/components/nv-popover.js +1 -1
  187. package/dist/components/nv-row.js +1 -1
  188. package/dist/components/nv-stack.js +7 -5
  189. package/dist/components/nv-stack.js.map +1 -1
  190. package/dist/components/nv-table.js +26 -5
  191. package/dist/components/nv-table.js.map +1 -1
  192. package/dist/components/nv-tablebody.js +1 -1
  193. package/dist/components/nv-tablecolumn.js +15 -4
  194. package/dist/components/nv-tablecolumn.js.map +1 -1
  195. package/dist/components/nv-tabledatacell.js +17 -2
  196. package/dist/components/nv-tabledatacell.js.map +1 -1
  197. package/dist/components/nv-tablehead.js +1 -1
  198. package/dist/components/nv-tablerow.js +1 -1
  199. package/dist/components/nv-tooltip.js +12 -3
  200. package/dist/components/nv-tooltip.js.map +1 -1
  201. package/dist/components/{p-d506ae63.js → p-0caa4741.js} +836 -491
  202. package/dist/components/p-0caa4741.js.map +1 -0
  203. package/dist/components/{p-689a7b38.js → p-39e93e5b.js} +5 -10
  204. package/dist/components/p-39e93e5b.js.map +1 -0
  205. package/dist/components/{p-8c8cf8ea.js → p-3ef4ded9.js} +9 -3
  206. package/dist/components/p-3ef4ded9.js.map +1 -0
  207. package/dist/components/{p-89fb6636.js → p-54ea8e62.js} +50 -14
  208. package/dist/components/p-54ea8e62.js.map +1 -0
  209. package/dist/components/{p-45405075.js → p-6c1b9782.js} +13 -7
  210. package/dist/components/p-6c1b9782.js.map +1 -0
  211. package/dist/components/{p-ae6a0d80.js → p-c08a278d.js} +207 -172
  212. package/dist/components/p-c08a278d.js.map +1 -0
  213. package/dist/components/{p-45c63143.js → p-f0d5586a.js} +45 -12
  214. package/dist/components/p-f0d5586a.js.map +1 -0
  215. package/dist/docs.d.ts +8 -0
  216. package/dist/docs.json +762 -256
  217. package/dist/esm/{app-globals-eea8674a.js → app-globals-c5484a00.js} +2 -2
  218. package/dist/esm/{app-globals-eea8674a.js.map → app-globals-c5484a00.js.map} +1 -1
  219. package/dist/esm/{index-e7b35c14.js → index-b6f70e4a.js} +847 -488
  220. package/dist/esm/index-b6f70e4a.js.map +1 -0
  221. package/dist/esm/loader.js +3 -3
  222. package/dist/esm/native.js +4 -4
  223. package/dist/esm/native.js.map +1 -1
  224. package/dist/esm/nv-alert.entry.js +22 -9
  225. package/dist/esm/nv-alert.entry.js.map +1 -1
  226. package/dist/esm/nv-avatar.entry.js +8 -11
  227. package/dist/esm/nv-avatar.entry.js.map +1 -1
  228. package/dist/esm/nv-badge.entry.js +40 -14
  229. package/dist/esm/nv-badge.entry.js.map +1 -1
  230. package/dist/esm/nv-base.entry.js +1 -1
  231. package/dist/esm/nv-button.entry.js +40 -8
  232. package/dist/esm/nv-button.entry.js.map +1 -1
  233. package/dist/esm/nv-col.entry.js +1 -2
  234. package/dist/esm/nv-col.entry.js.map +1 -1
  235. package/dist/esm/nv-datagrid.entry.js +31 -5
  236. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  237. package/dist/esm/nv-datagridbody.entry.js +1 -1
  238. package/dist/esm/nv-datagridcolumn.entry.js +1 -3
  239. package/dist/esm/nv-datagridcolumn.entry.js.map +1 -1
  240. package/dist/esm/nv-datagriddatacell.entry.js +1 -2
  241. package/dist/esm/nv-datagriddatacell.entry.js.map +1 -1
  242. package/dist/esm/nv-datagridhead.entry.js +1 -1
  243. package/dist/esm/nv-datagridrow.entry.js +1 -1
  244. package/dist/esm/nv-fieldcheckbox.entry.js +40 -9
  245. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  246. package/dist/esm/nv-fielddropdown.entry.js +58 -19
  247. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  248. package/dist/esm/nv-fielddropdownitem.entry.js +11 -5
  249. package/dist/esm/nv-fielddropdownitem.entry.js.map +1 -1
  250. package/dist/esm/nv-fieldnumber.entry.js +44 -18
  251. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  252. package/dist/esm/nv-fieldpassword.entry.js +62 -21
  253. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  254. package/dist/esm/nv-fieldradio.entry.js +26 -8
  255. package/dist/esm/nv-fieldradio.entry.js.map +1 -1
  256. package/dist/esm/nv-fieldselect.entry.js +59 -18
  257. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  258. package/dist/esm/nv-fieldtext.entry.js +52 -22
  259. package/dist/esm/nv-fieldtext.entry.js.map +1 -1
  260. package/dist/esm/nv-fieldtextarea.entry.js +58 -20
  261. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  262. package/dist/esm/nv-fieldtoggle.entry.js +19 -6
  263. package/dist/esm/nv-fieldtoggle.entry.js.map +1 -1
  264. package/dist/esm/nv-icon.entry.js +4 -9
  265. package/dist/esm/nv-icon.entry.js.map +1 -1
  266. package/dist/esm/nv-iconbutton.entry.js +42 -9
  267. package/dist/esm/nv-iconbutton.entry.js.map +1 -1
  268. package/dist/esm/nv-loader.entry.js +8 -2
  269. package/dist/esm/nv-loader.entry.js.map +1 -1
  270. package/dist/esm/nv-menu.entry.js +20 -1
  271. package/dist/esm/nv-menu.entry.js.map +1 -1
  272. package/dist/esm/nv-menuitem.entry.js +7 -3
  273. package/dist/esm/nv-menuitem.entry.js.map +1 -1
  274. package/dist/esm/nv-popover.entry.js +48 -12
  275. package/dist/esm/nv-popover.entry.js.map +1 -1
  276. package/dist/esm/nv-row.entry.js +1 -1
  277. package/dist/esm/nv-stack.entry.js +7 -5
  278. package/dist/esm/nv-stack.entry.js.map +1 -1
  279. package/dist/esm/nv-table.entry.js +26 -5
  280. package/dist/esm/nv-table.entry.js.map +1 -1
  281. package/dist/esm/nv-tablebody.entry.js +1 -1
  282. package/dist/esm/nv-tablecolumn.entry.js +15 -4
  283. package/dist/esm/nv-tablecolumn.entry.js.map +1 -1
  284. package/dist/esm/nv-tabledatacell.entry.js +17 -2
  285. package/dist/esm/nv-tabledatacell.entry.js.map +1 -1
  286. package/dist/esm/nv-tablehead.entry.js +1 -1
  287. package/dist/esm/nv-tablerow.entry.js +1 -1
  288. package/dist/esm/nv-tooltip.entry.js +11 -2
  289. package/dist/esm/nv-tooltip.entry.js.map +1 -1
  290. package/dist/native/native.css +1 -1
  291. package/dist/native/native.esm.js +1 -1
  292. package/dist/native/native.esm.js.map +1 -1
  293. package/dist/native/{p-dba9c57c.entry.js → p-01262eaf.entry.js} +2 -2
  294. package/dist/native/p-01262eaf.entry.js.map +1 -0
  295. package/dist/native/p-0bf2007c.entry.js +2 -0
  296. package/dist/native/p-0bf2007c.entry.js.map +1 -0
  297. package/dist/native/{p-69ca8c88.entry.js → p-11faaf31.entry.js} +2 -2
  298. package/dist/native/p-11faaf31.entry.js.map +1 -0
  299. package/dist/native/p-17dba26d.entry.js +2 -0
  300. package/dist/native/{p-39dbb15b.entry.js → p-25e410c1.entry.js} +2 -2
  301. package/dist/native/p-25e410c1.entry.js.map +1 -0
  302. package/dist/native/{p-808cf007.entry.js → p-2a6ca749.entry.js} +2 -2
  303. package/dist/native/p-2a6ca749.entry.js.map +1 -0
  304. package/dist/native/p-327fa1a0.entry.js +2 -0
  305. package/dist/native/p-3bc5875e.entry.js +2 -0
  306. package/dist/native/p-3bc5875e.entry.js.map +1 -0
  307. package/dist/native/p-47c78fe4.entry.js +2 -0
  308. package/dist/native/p-47c78fe4.entry.js.map +1 -0
  309. package/dist/native/{p-bdab3562.entry.js → p-4a64f5b0.entry.js} +2 -2
  310. package/dist/native/p-4a64f5b0.entry.js.map +1 -0
  311. package/dist/native/{p-13070761.entry.js → p-50c31094.entry.js} +2 -2
  312. package/dist/native/p-50c31094.entry.js.map +1 -0
  313. package/dist/native/{p-a59ec107.entry.js → p-605f8b3d.entry.js} +2 -2
  314. package/dist/native/p-605f8b3d.entry.js.map +1 -0
  315. package/dist/native/p-64ae9a21.entry.js +2 -0
  316. package/dist/native/p-64ae9a21.entry.js.map +1 -0
  317. package/dist/native/{p-20c7fc4d.entry.js → p-6e8bcd5b.entry.js} +2 -2
  318. package/dist/native/p-6e8bcd5b.entry.js.map +1 -0
  319. package/dist/native/{p-c4f7e36d.entry.js → p-6eb50254.entry.js} +2 -2
  320. package/dist/native/p-6eb50254.entry.js.map +1 -0
  321. package/dist/native/p-6ef216c4.js +3 -0
  322. package/dist/native/p-6ef216c4.js.map +1 -0
  323. package/dist/native/{p-1aaee302.entry.js → p-7701e4cc.entry.js} +2 -2
  324. package/dist/native/p-7701e4cc.entry.js.map +1 -0
  325. package/dist/native/p-86947929.entry.js +2 -0
  326. package/dist/native/{p-982e474f.entry.js.map → p-86947929.entry.js.map} +1 -1
  327. package/dist/native/p-8bfdda07.entry.js +2 -0
  328. package/dist/native/p-8bfdda07.entry.js.map +1 -0
  329. package/dist/native/p-8f95f4fa.entry.js +2 -0
  330. package/dist/native/p-8f95f4fa.entry.js.map +1 -0
  331. package/dist/native/{p-81256924.entry.js → p-919cf3ec.entry.js} +2 -2
  332. package/dist/native/p-919cf3ec.entry.js.map +1 -0
  333. package/dist/native/p-93eea6e1.entry.js +2 -0
  334. package/dist/native/{p-e842220b.entry.js.map → p-93eea6e1.entry.js.map} +1 -1
  335. package/dist/native/p-95714583.js +2 -0
  336. package/dist/native/p-9f89229b.entry.js +2 -0
  337. package/dist/native/{p-2fca31c0.entry.js.map → p-9f89229b.entry.js.map} +1 -1
  338. package/dist/native/{p-844f4878.entry.js → p-a64baca2.entry.js} +2 -2
  339. package/dist/native/p-a64baca2.entry.js.map +1 -0
  340. package/dist/native/{p-ea4092a7.entry.js → p-a89f5542.entry.js} +2 -2
  341. package/dist/native/p-a89f5542.entry.js.map +1 -0
  342. package/dist/native/p-b3ec71c9.entry.js +2 -0
  343. package/dist/native/p-bbe9a373.entry.js +2 -0
  344. package/dist/native/p-c2dfee1a.entry.js +2 -0
  345. package/dist/native/{p-0cfe2048.entry.js → p-c5e3e234.entry.js} +2 -2
  346. package/dist/native/p-c5e3e234.entry.js.map +1 -0
  347. package/dist/native/{p-c1c661a0.entry.js → p-c5e7ecc8.entry.js} +2 -2
  348. package/dist/native/p-c5e7ecc8.entry.js.map +1 -0
  349. package/dist/native/{p-36d5158c.entry.js → p-c85d031d.entry.js} +3 -3
  350. package/dist/native/p-c85d031d.entry.js.map +1 -0
  351. package/dist/native/{p-38817aa3.entry.js → p-cd75ee63.entry.js} +2 -2
  352. package/dist/native/p-cd75ee63.entry.js.map +1 -0
  353. package/dist/native/{p-e2df46e2.entry.js → p-d4277c50.entry.js} +2 -2
  354. package/dist/native/p-d4277c50.entry.js.map +1 -0
  355. package/dist/native/{p-75b5fdce.entry.js → p-df6c9137.entry.js} +2 -2
  356. package/dist/native/p-df6c9137.entry.js.map +1 -0
  357. package/dist/native/{p-330c929d.entry.js → p-e71fc762.entry.js} +2 -2
  358. package/dist/native/p-ef7f605a.entry.js +2 -0
  359. package/dist/native/p-f2e31579.entry.js +2 -0
  360. package/dist/native/{p-671699bf.entry.js.map → p-f2e31579.entry.js.map} +1 -1
  361. package/dist/native/{p-1edb76e1.entry.js → p-fa8a8b21.entry.js} +2 -2
  362. package/dist/native/p-fa8a8b21.entry.js.map +1 -0
  363. package/dist/types/components/nv-badge/nv-badge.d.ts +1 -1
  364. package/dist/types/components.d.ts +2 -2
  365. package/dist/vscode-data.json +1 -1
  366. package/hydrate/index.js +1507 -733
  367. package/hydrate/index.mjs +1507 -733
  368. package/package.json +7 -2
  369. package/readme.md +5 -1
  370. package/dist/cjs/index-c50face0.js.map +0 -1
  371. package/dist/components/p-45405075.js.map +0 -1
  372. package/dist/components/p-45c63143.js.map +0 -1
  373. package/dist/components/p-689a7b38.js.map +0 -1
  374. package/dist/components/p-89fb6636.js.map +0 -1
  375. package/dist/components/p-8c8cf8ea.js.map +0 -1
  376. package/dist/components/p-ae6a0d80.js.map +0 -1
  377. package/dist/components/p-d506ae63.js.map +0 -1
  378. package/dist/esm/index-e7b35c14.js.map +0 -1
  379. package/dist/native/p-01be802d.entry.js +0 -2
  380. package/dist/native/p-0cfe2048.entry.js.map +0 -1
  381. package/dist/native/p-13070761.entry.js.map +0 -1
  382. package/dist/native/p-1aaee302.entry.js.map +0 -1
  383. package/dist/native/p-1edb76e1.entry.js.map +0 -1
  384. package/dist/native/p-20c7fc4d.entry.js.map +0 -1
  385. package/dist/native/p-28cf537b.entry.js +0 -2
  386. package/dist/native/p-2fca31c0.entry.js +0 -2
  387. package/dist/native/p-36d5158c.entry.js.map +0 -1
  388. package/dist/native/p-38817aa3.entry.js.map +0 -1
  389. package/dist/native/p-39dbb15b.entry.js.map +0 -1
  390. package/dist/native/p-4b926563.entry.js +0 -2
  391. package/dist/native/p-4b926563.entry.js.map +0 -1
  392. package/dist/native/p-4e351d8e.entry.js +0 -2
  393. package/dist/native/p-4e351d8e.entry.js.map +0 -1
  394. package/dist/native/p-671699bf.entry.js +0 -2
  395. package/dist/native/p-69ca8c88.entry.js.map +0 -1
  396. package/dist/native/p-75b5fdce.entry.js.map +0 -1
  397. package/dist/native/p-7a7b9b95.entry.js +0 -2
  398. package/dist/native/p-808cf007.entry.js.map +0 -1
  399. package/dist/native/p-81256924.entry.js.map +0 -1
  400. package/dist/native/p-844f4878.entry.js.map +0 -1
  401. package/dist/native/p-861f91d3.entry.js +0 -2
  402. package/dist/native/p-9221f72a.entry.js +0 -2
  403. package/dist/native/p-982e474f.entry.js +0 -2
  404. package/dist/native/p-99850272.entry.js +0 -2
  405. package/dist/native/p-99850272.entry.js.map +0 -1
  406. package/dist/native/p-a59ec107.entry.js.map +0 -1
  407. package/dist/native/p-b4aea326.js +0 -3
  408. package/dist/native/p-b4aea326.js.map +0 -1
  409. package/dist/native/p-bdab3562.entry.js.map +0 -1
  410. package/dist/native/p-c1c661a0.entry.js.map +0 -1
  411. package/dist/native/p-c4f7e36d.entry.js.map +0 -1
  412. package/dist/native/p-dba9c57c.entry.js.map +0 -1
  413. package/dist/native/p-dbae3920.entry.js +0 -2
  414. package/dist/native/p-dbae3920.entry.js.map +0 -1
  415. package/dist/native/p-de6e0e1f.entry.js +0 -2
  416. package/dist/native/p-de6e0e1f.entry.js.map +0 -1
  417. package/dist/native/p-e2df46e2.entry.js.map +0 -1
  418. package/dist/native/p-e842220b.entry.js +0 -2
  419. package/dist/native/p-ea4092a7.entry.js.map +0 -1
  420. package/dist/native/p-ed893068.entry.js +0 -2
  421. package/dist/native/p-ed893068.entry.js.map +0 -1
  422. package/dist/native/p-eeb6a3dc.js +0 -2
  423. package/dist/native/p-f7b96c42.entry.js +0 -2
  424. /package/dist/native/{p-01be802d.entry.js.map → p-17dba26d.entry.js.map} +0 -0
  425. /package/dist/native/{p-861f91d3.entry.js.map → p-327fa1a0.entry.js.map} +0 -0
  426. /package/dist/native/{p-eeb6a3dc.js.map → p-95714583.js.map} +0 -0
  427. /package/dist/native/{p-9221f72a.entry.js.map → p-b3ec71c9.entry.js.map} +0 -0
  428. /package/dist/native/{p-7a7b9b95.entry.js.map → p-bbe9a373.entry.js.map} +0 -0
  429. /package/dist/native/{p-28cf537b.entry.js.map → p-c2dfee1a.entry.js.map} +0 -0
  430. /package/dist/native/{p-330c929d.entry.js.map → p-e71fc762.entry.js.map} +0 -0
  431. /package/dist/native/{p-f7b96c42.entry.js.map → p-ef7f605a.entry.js.map} +0 -0
@@ -11,6 +11,49 @@ import { v4 as uuidv4 } from "uuid";
11
11
  */
12
12
  export class NvFieldnumber {
13
13
  constructor() {
14
+ //#endregion DEPRECATED
15
+ /****************************************************************************/
16
+ //#region PROPERTIES
17
+ /**
18
+ * Sets the ID for the input element and the for attribute of the associated
19
+ * label. If no ID is provided, a random one will be automatically generated
20
+ * to ensure unique identification, facilitating proper label association and
21
+ * accessibility.
22
+ */
23
+ this.inputId = uuidv4();
24
+ /**
25
+ * The disabled prop lets you turn off the input field so that users can’t
26
+ * type in it. When disabled, the field is grayed out and won’t respond to#
27
+ * clicks or touches.
28
+ */
29
+ this.disabled = false;
30
+ /**
31
+ * Display the input field’s content without allowing users to change it.
32
+ * Users can still click on it, select, and copy the text, but they won’t be
33
+ * able to type or delete anything.
34
+ */
35
+ this.readonly = false;
36
+ /**
37
+ * Marks the input field as required, ensuring that the user must fill it out
38
+ * before submitting the form.
39
+ */
40
+ this.required = false;
41
+ /**
42
+ * Alters the input field’s appearance to indicate an error, helping users
43
+ * identify fields that need correction.
44
+ * @validator error
45
+ */
46
+ this.error = false;
47
+ /**
48
+ * Changes the input field’s appearance to indicate successful input or
49
+ * validation.
50
+ */
51
+ this.success = false;
52
+ /**
53
+ * Define the increment value for the input field. It determines how much the
54
+ * value will increase or decrease when the user clicks the stepper buttons.
55
+ */
56
+ this.step = 1;
14
57
  //#endregion WATCHERS
15
58
  /****************************************************************************/
16
59
  //#region METHODS
@@ -35,23 +78,6 @@ export class NvFieldnumber {
35
78
  this.isMaxValueReached = () => {
36
79
  return this.max !== undefined && this.value >= this.max;
37
80
  };
38
- this.message = undefined;
39
- this.validation = undefined;
40
- this.inputId = uuidv4();
41
- this.label = undefined;
42
- this.description = undefined;
43
- this.placeholder = undefined;
44
- this.name = undefined;
45
- this.disabled = false;
46
- this.readonly = false;
47
- this.required = false;
48
- this.error = false;
49
- this.errorDescription = undefined;
50
- this.success = false;
51
- this.max = undefined;
52
- this.min = undefined;
53
- this.step = 1;
54
- this.value = undefined;
55
81
  }
56
82
  //#endregion PROPERTIES
57
83
  /****************************************************************************/
@@ -110,6 +136,8 @@ export class NvFieldnumber {
110
136
  }],
111
137
  "text": "Message defines a 'hint ' message for the number field."
112
138
  },
139
+ "getter": false,
140
+ "setter": false,
113
141
  "attribute": "message",
114
142
  "reflect": false
115
143
  },
@@ -130,6 +158,8 @@ export class NvFieldnumber {
130
158
  }],
131
159
  "text": "Add the message to the validation state."
132
160
  },
161
+ "getter": false,
162
+ "setter": false,
133
163
  "attribute": "validation",
134
164
  "reflect": false
135
165
  },
@@ -147,6 +177,8 @@ export class NvFieldnumber {
147
177
  "tags": [],
148
178
  "text": "Sets the ID for the input element and the for attribute of the associated\nlabel. If no ID is provided, a random one will be automatically generated\nto ensure unique identification, facilitating proper label association and\naccessibility."
149
179
  },
180
+ "getter": false,
181
+ "setter": false,
150
182
  "attribute": "input-id",
151
183
  "reflect": true,
152
184
  "defaultValue": "uuidv4()"
@@ -165,6 +197,8 @@ export class NvFieldnumber {
165
197
  "tags": [],
166
198
  "text": "Lets you define the text that explains what users should enter in the text\ninput field. It\u2019s a crucial element for making forms clear and\nuser-friendly."
167
199
  },
200
+ "getter": false,
201
+ "setter": false,
168
202
  "attribute": "label",
169
203
  "reflect": true
170
204
  },
@@ -182,6 +216,8 @@ export class NvFieldnumber {
182
216
  "tags": [],
183
217
  "text": "Add helpful hints or extra information under the text input field. This is\nwhere you can clarify what users should enter or provide additional\ninstructions, making the form easier to fill out correctly."
184
218
  },
219
+ "getter": false,
220
+ "setter": false,
185
221
  "attribute": "description",
186
222
  "reflect": true
187
223
  },
@@ -199,6 +235,8 @@ export class NvFieldnumber {
199
235
  "tags": [],
200
236
  "text": "Display temporary text inside the input field to give users a hint about\nwhat to type. It\u2019s a great way to provide examples or suggestions directly\nin the field before they start typing."
201
237
  },
238
+ "getter": false,
239
+ "setter": false,
202
240
  "attribute": "placeholder",
203
241
  "reflect": true
204
242
  },
@@ -216,6 +254,8 @@ export class NvFieldnumber {
216
254
  "tags": [],
217
255
  "text": "Defines the name attribute of the input field, which is crucial for form\nsubmission. This value is used as the key in the key-value pair sent to\nthe server, representing the input\u2019s data in form submissions. It should be\nunique within the form to avoid conflicts"
218
256
  },
257
+ "getter": false,
258
+ "setter": false,
219
259
  "attribute": "name",
220
260
  "reflect": true
221
261
  },
@@ -233,6 +273,8 @@ export class NvFieldnumber {
233
273
  "tags": [],
234
274
  "text": "The disabled prop lets you turn off the input field so that users can\u2019t\ntype in it. When disabled, the field is grayed out and won\u2019t respond to#\nclicks or touches."
235
275
  },
276
+ "getter": false,
277
+ "setter": false,
236
278
  "attribute": "disabled",
237
279
  "reflect": true,
238
280
  "defaultValue": "false"
@@ -251,6 +293,8 @@ export class NvFieldnumber {
251
293
  "tags": [],
252
294
  "text": "Display the input field\u2019s content without allowing users to change it.\nUsers can still click on it, select, and copy the text, but they won\u2019t be\nable to type or delete anything."
253
295
  },
296
+ "getter": false,
297
+ "setter": false,
254
298
  "attribute": "readonly",
255
299
  "reflect": true,
256
300
  "defaultValue": "false"
@@ -269,6 +313,8 @@ export class NvFieldnumber {
269
313
  "tags": [],
270
314
  "text": "Marks the input field as required, ensuring that the user must fill it out\nbefore submitting the form."
271
315
  },
316
+ "getter": false,
317
+ "setter": false,
272
318
  "attribute": "required",
273
319
  "reflect": true,
274
320
  "defaultValue": "false"
@@ -290,6 +336,8 @@ export class NvFieldnumber {
290
336
  }],
291
337
  "text": "Alters the input field\u2019s appearance to indicate an error, helping users\nidentify fields that need correction."
292
338
  },
339
+ "getter": false,
340
+ "setter": false,
293
341
  "attribute": "error",
294
342
  "reflect": true,
295
343
  "defaultValue": "false"
@@ -311,6 +359,8 @@ export class NvFieldnumber {
311
359
  }],
312
360
  "text": "Show a helpful message under the input field when there\u2019s a problem. It\nexplains what\u2019s wrong and how users can fix it, making the error easier to\nunderstand and resolve."
313
361
  },
362
+ "getter": false,
363
+ "setter": false,
314
364
  "attribute": "error-description",
315
365
  "reflect": true
316
366
  },
@@ -328,6 +378,8 @@ export class NvFieldnumber {
328
378
  "tags": [],
329
379
  "text": "Changes the input field\u2019s appearance to indicate successful input or\nvalidation."
330
380
  },
381
+ "getter": false,
382
+ "setter": false,
331
383
  "attribute": "success",
332
384
  "reflect": true,
333
385
  "defaultValue": "false"
@@ -346,6 +398,8 @@ export class NvFieldnumber {
346
398
  "tags": [],
347
399
  "text": "The maximum value that the input field can accept. Use this in combination\nwith min to create a range of valid values."
348
400
  },
401
+ "getter": false,
402
+ "setter": false,
349
403
  "attribute": "max",
350
404
  "reflect": true
351
405
  },
@@ -363,6 +417,8 @@ export class NvFieldnumber {
363
417
  "tags": [],
364
418
  "text": "The minimum value that the input field can accept. Use this in combination\nwith max to create a range of valid values."
365
419
  },
420
+ "getter": false,
421
+ "setter": false,
366
422
  "attribute": "min",
367
423
  "reflect": true
368
424
  },
@@ -380,6 +436,8 @@ export class NvFieldnumber {
380
436
  "tags": [],
381
437
  "text": "Define the increment value for the input field. It determines how much the\nvalue will increase or decrease when the user clicks the stepper buttons."
382
438
  },
439
+ "getter": false,
440
+ "setter": false,
383
441
  "attribute": "step",
384
442
  "reflect": true,
385
443
  "defaultValue": "1"
@@ -398,6 +456,8 @@ export class NvFieldnumber {
398
456
  "tags": [],
399
457
  "text": "The value of the input field. It\u2019s the text that users type in or the value\nthat you set programmatically. This is the main way to interact with the\ninput field, and it\u2019s essential for creating forms that users can fill out."
400
458
  },
459
+ "getter": false,
460
+ "setter": false,
401
461
  "attribute": "value",
402
462
  "reflect": true
403
463
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nv-fieldnumber.js","sourceRoot":"","sources":["../../../src/components/nv-fieldnumber/nv-fieldnumber.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Watch,\n} from '@stencil/core';\nimport clsx from 'clsx';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * @slot leading-input - Content to be placed before the input text, within the input container.\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 label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n\n@Component({\n tag: 'nv-fieldnumber',\n styleUrl: 'nv-fieldnumber.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvFieldnumber {\n @Element() el: HTMLNvFieldnumberElement;\n private inputElement!: HTMLInputElement;\n /****************************************************************************/\n //#region DEPRECATED\n\n /**\n * Message defines a 'hint ' message for the number field.\n * @deprecated use description instead.\n */\n @Prop()\n readonly message: string;\n\n /**\n * Add the message to the validation state.\n * @deprecated use errorDescription and set the error prop instead.\n */\n @Prop()\n readonly validation: string;\n\n //#endregion DEPRECATED\n /****************************************************************************/\n //#region PROPERTIES\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 * Lets you define the text that explains what users should enter in the text\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 * Add helpful hints or extra information under the text input field. This is\n * where you can clarify what users should enter or provide additional\n * instructions, making the form easier to fill out correctly.\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n description: string;\n\n /**\n * Display temporary text inside the input field to give users a hint about\n * what to type. It’s a great way to provide examples or suggestions directly\n * in the field before they start typing.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\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. It should be\n * unique within the form to avoid conflicts\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * The disabled prop lets you turn off the input field so that users can’t\n * type in 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 * 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 * 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 * 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, mutable: true })\n error: boolean = false;\n\n /**\n * Show a helpful message under the input field when there’s a problem. It\n * explains what’s wrong and how users can fix it, making the error easier to\n * understand and resolve.\n * @validator message\n */\n @Prop({ reflect: true, mutable: true })\n errorDescription: 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 * The maximum value that the input field can accept. Use this in combination\n * with min to create a range of valid values.\n */\n @Prop({ reflect: true })\n readonly max: number;\n\n /**\n * The minimum value that the input field can accept. Use this in combination\n * with max to create a range of valid values.\n */\n @Prop({ reflect: true })\n readonly min: number;\n\n /**\n * Define the increment value for the input field. It determines how much the\n * value will increase or decrease when the user clicks the stepper buttons.\n */\n @Prop({ reflect: true })\n readonly step: number = 1;\n\n /**\n * The value of the input field. It’s the text that users type in or the value\n * that you set programmatically. This is the main way to interact with the\n * input field, and it’s essential for creating forms that users can fill out.\n */\n @Prop({ reflect: true, mutable: true })\n value: number;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillRender() {\n if (this.message) {\n this.description = this.message;\n }\n if (this.validation) {\n this.errorDescription = this.validation;\n this.error = true;\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the input value changes.\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<number>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('value')\n watchValueHandler(newValue: number) {\n this.valueChanged.emit(newValue);\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region METHODS\n\n private handleInput = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.value = Number(input.value);\n };\n\n private handleInputContainerClick = () => {\n this.inputElement.focus();\n };\n\n private handlePlus = () => {\n this.inputElement.stepUp();\n this.value = Number(this.inputElement.value);\n };\n\n private handleMinus = () => {\n this.inputElement.stepDown();\n this.value = Number(this.inputElement.value);\n };\n\n private isMinValueReached = (): boolean => {\n return this.min !== undefined && this.value <= this.min;\n };\n\n private isMaxValueReached = (): boolean => {\n return this.max !== undefined && this.value >= this.max;\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\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 <div class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\" onClick={this.handleInputContainerClick}>\n <slot name=\"leading-input\"></slot>\n <input\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n placeholder={this.placeholder}\n name={this.name}\n type=\"number\"\n required={this.required}\n max={this.max}\n min={this.min}\n step={this.step}\n value={this.value}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInput}\n />\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"md\" />\n )}\n <div class=\"stepper-spacer\"></div>\n <div class=\"stepper\">\n <nv-icon\n name=\"minus\"\n size=\"md\"\n onClick={this.handleMinus}\n class={clsx({ disabled: this.isMinValueReached() })}\n />\n <nv-icon\n name=\"plus\"\n size=\"md\"\n onClick={this.handlePlus}\n class={clsx({ disabled: this.isMaxValueReached() })}\n />\n </div>\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\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"]}
1
+ {"version":3,"file":"nv-fieldnumber.js","sourceRoot":"","sources":["../../../src/components/nv-fieldnumber/nv-fieldnumber.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Watch,\n} from '@stencil/core';\nimport clsx from 'clsx';\nimport { v4 as uuidv4 } from 'uuid';\n\n/**\n * @slot leading-input - Content to be placed before the input text, within the input container.\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 label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n\n@Component({\n tag: 'nv-fieldnumber',\n styleUrl: 'nv-fieldnumber.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvFieldnumber {\n @Element() el: HTMLNvFieldnumberElement;\n private inputElement!: HTMLInputElement;\n /****************************************************************************/\n //#region DEPRECATED\n\n /**\n * Message defines a 'hint ' message for the number field.\n * @deprecated use description instead.\n */\n @Prop()\n readonly message: string;\n\n /**\n * Add the message to the validation state.\n * @deprecated use errorDescription and set the error prop instead.\n */\n @Prop()\n readonly validation: string;\n\n //#endregion DEPRECATED\n /****************************************************************************/\n //#region PROPERTIES\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 * Lets you define the text that explains what users should enter in the text\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 * Add helpful hints or extra information under the text input field. This is\n * where you can clarify what users should enter or provide additional\n * instructions, making the form easier to fill out correctly.\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n description: string;\n\n /**\n * Display temporary text inside the input field to give users a hint about\n * what to type. It’s a great way to provide examples or suggestions directly\n * in the field before they start typing.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\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. It should be\n * unique within the form to avoid conflicts\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * The disabled prop lets you turn off the input field so that users can’t\n * type in 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 * 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 * 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 * 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, mutable: true })\n error: boolean = false;\n\n /**\n * Show a helpful message under the input field when there’s a problem. It\n * explains what’s wrong and how users can fix it, making the error easier to\n * understand and resolve.\n * @validator message\n */\n @Prop({ reflect: true, mutable: true })\n errorDescription: 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 * The maximum value that the input field can accept. Use this in combination\n * with min to create a range of valid values.\n */\n @Prop({ reflect: true })\n readonly max: number;\n\n /**\n * The minimum value that the input field can accept. Use this in combination\n * with max to create a range of valid values.\n */\n @Prop({ reflect: true })\n readonly min: number;\n\n /**\n * Define the increment value for the input field. It determines how much the\n * value will increase or decrease when the user clicks the stepper buttons.\n */\n @Prop({ reflect: true })\n readonly step: number = 1;\n\n /**\n * The value of the input field. It’s the text that users type in or the value\n * that you set programmatically. This is the main way to interact with the\n * input field, and it’s essential for creating forms that users can fill out.\n */\n @Prop({ reflect: true, mutable: true })\n value: number;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillRender() {\n if (this.message) {\n this.description = this.message;\n }\n if (this.validation) {\n this.errorDescription = this.validation;\n this.error = true;\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the input value changes.\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<number>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('value')\n watchValueHandler(newValue: number) {\n this.valueChanged.emit(newValue);\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region METHODS\n\n private handleInput = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.value = Number(input.value);\n };\n\n private handleInputContainerClick = () => {\n this.inputElement.focus();\n };\n\n private handlePlus = () => {\n this.inputElement.stepUp();\n this.value = Number(this.inputElement.value);\n };\n\n private handleMinus = () => {\n this.inputElement.stepDown();\n this.value = Number(this.inputElement.value);\n };\n\n private isMinValueReached = (): boolean => {\n return this.min !== undefined && this.value <= this.min;\n };\n\n private isMaxValueReached = (): boolean => {\n return this.max !== undefined && this.value >= this.max;\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\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 <div class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\" onClick={this.handleInputContainerClick}>\n <slot name=\"leading-input\"></slot>\n <input\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n placeholder={this.placeholder}\n name={this.name}\n type=\"number\"\n required={this.required}\n max={this.max}\n min={this.min}\n step={this.step}\n value={this.value}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInput}\n />\n {this.error && (\n <nv-icon name=\"alert-circle\" class=\"validation\" size=\"md\" />\n )}\n {this.success && (\n <nv-icon name=\"circle-check\" class=\"validation\" size=\"md\" />\n )}\n <div class=\"stepper-spacer\"></div>\n <div class=\"stepper\">\n <nv-icon\n name=\"minus\"\n size=\"md\"\n onClick={this.handleMinus}\n class={clsx({ disabled: this.isMinValueReached() })}\n />\n <nv-icon\n name=\"plus\"\n size=\"md\"\n onClick={this.handlePlus}\n class={clsx({ disabled: this.isMaxValueReached() })}\n />\n </div>\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\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"]}
@@ -10,6 +10,67 @@ import { v4 as uuidv4 } from "uuid";
10
10
  */
11
11
  export class NvFieldpassword {
12
12
  constructor() {
13
+ /****************************************************************************/
14
+ //#region PROPERTIES
15
+ /**
16
+ * Sets the ID for the input element and the for attribute of the associated
17
+ * label. If no ID is provided, a random one will be automatically generated
18
+ * to ensure unique identification, facilitating proper label association and
19
+ * accessibility.
20
+ */
21
+ this.inputId = uuidv4();
22
+ /**
23
+ * The disabled prop lets you turn off the input field so that users can’t
24
+ * type in it. When disabled, the field is grayed out and won’t respond to#
25
+ * clicks or touches.
26
+ */
27
+ this.disabled = false;
28
+ /**
29
+ * Display the input field’s content without allowing users to change it.
30
+ * Users can still click on it, select, and copy the text, but they won’t be
31
+ * able to type or delete anything.
32
+ */
33
+ this.readonly = false;
34
+ /**
35
+ * Marks the input field as required, ensuring that the user must fill it out
36
+ * before submitting the form.
37
+ */
38
+ this.required = false;
39
+ /**
40
+ * Alters the input field’s appearance to indicate an error, helping users
41
+ * identify fields that need correction.
42
+ * @validator error
43
+ */
44
+ this.error = false;
45
+ /**
46
+ * Changes the input field’s appearance to indicate successful input or
47
+ * validation.
48
+ */
49
+ this.success = false;
50
+ /**
51
+ * Defines the type of the input.
52
+ * @default 'text'
53
+ */
54
+ this.mode = 'text';
55
+ /**
56
+ * The autocomplete prop helps users fill out the input field faster by
57
+ * suggesting entries they’ve used before, like their email or address.
58
+ * You can turn it on to make forms more convenient or off to ensure users
59
+ * always type in fresh data.
60
+ */
61
+ this.autocomplete = 'off';
62
+ /**
63
+ * Hide the button to show/hide the password.
64
+ */
65
+ this.hidePasswordIcon = false;
66
+ /**
67
+ * Show/hide the password programmatically.
68
+ */
69
+ this.showPassword = false;
70
+ /**
71
+ * Defines whether the password is visible or not.
72
+ */
73
+ this.showPasswordState = this.showPassword;
13
74
  //#endregion EVENTS
14
75
  /****************************************************************************/
15
76
  //#region METHODS
@@ -32,26 +93,6 @@ export class NvFieldpassword {
32
93
  this.value = input.value; // Update the input value without worrying about the space
33
94
  this.valueChanged.emit(input.value);
34
95
  };
35
- this.inputId = uuidv4();
36
- this.label = undefined;
37
- this.description = undefined;
38
- this.placeholder = undefined;
39
- this.name = undefined;
40
- this.value = undefined;
41
- this.disabled = false;
42
- this.readonly = false;
43
- this.required = false;
44
- this.error = false;
45
- this.errorDescription = undefined;
46
- this.success = false;
47
- this.maxlength = undefined;
48
- this.minlength = undefined;
49
- this.pattern = undefined;
50
- this.mode = 'text';
51
- this.autocomplete = 'off';
52
- this.hidePasswordIcon = false;
53
- this.showPassword = false;
54
- this.showPasswordState = this.showPassword;
55
96
  }
56
97
  handleShowPasswordChange(newValue) {
57
98
  this.showPasswordState = newValue;
@@ -92,6 +133,8 @@ export class NvFieldpassword {
92
133
  "tags": [],
93
134
  "text": "Sets the ID for the input element and the for attribute of the associated\nlabel. If no ID is provided, a random one will be automatically generated\nto ensure unique identification, facilitating proper label association and\naccessibility."
94
135
  },
136
+ "getter": false,
137
+ "setter": false,
95
138
  "attribute": "input-id",
96
139
  "reflect": true,
97
140
  "defaultValue": "uuidv4()"
@@ -110,6 +153,8 @@ export class NvFieldpassword {
110
153
  "tags": [],
111
154
  "text": "Lets you define the text that explains what users should enter in the text\ninput field. It\u2019s a crucial element for making forms clear and\nuser-friendly."
112
155
  },
156
+ "getter": false,
157
+ "setter": false,
113
158
  "attribute": "label",
114
159
  "reflect": true
115
160
  },
@@ -127,6 +172,8 @@ export class NvFieldpassword {
127
172
  "tags": [],
128
173
  "text": "Add helpful hints or extra information under the text input field. This is\nwhere you can clarify what users should enter or provide additional\ninstructions, making the form easier to fill out correctly."
129
174
  },
175
+ "getter": false,
176
+ "setter": false,
130
177
  "attribute": "description",
131
178
  "reflect": true
132
179
  },
@@ -144,6 +191,8 @@ export class NvFieldpassword {
144
191
  "tags": [],
145
192
  "text": "Display temporary text inside the input field to give users a hint about\nwhat to type. It\u2019s a great way to provide examples or suggestions directly\nin the field before they start typing."
146
193
  },
194
+ "getter": false,
195
+ "setter": false,
147
196
  "attribute": "placeholder",
148
197
  "reflect": true
149
198
  },
@@ -161,6 +210,8 @@ export class NvFieldpassword {
161
210
  "tags": [],
162
211
  "text": "Defines the name attribute of the input field, which is crucial for form\nsubmission. This value is used as the key in the key-value pair sent to\nthe server, representing the input\u2019s data in form submissions. It should be\nunique within the form to avoid conflicts"
163
212
  },
213
+ "getter": false,
214
+ "setter": false,
164
215
  "attribute": "name",
165
216
  "reflect": true
166
217
  },
@@ -178,6 +229,8 @@ export class NvFieldpassword {
178
229
  "tags": [],
179
230
  "text": "Specifies the value of the input field, which determines the text displayed\nwithin the field. This prop is typically used in controlled components\nwhere the input\u2019s value is managed by the component\u2019s state."
180
231
  },
232
+ "getter": false,
233
+ "setter": false,
181
234
  "attribute": "value",
182
235
  "reflect": true
183
236
  },
@@ -195,6 +248,8 @@ export class NvFieldpassword {
195
248
  "tags": [],
196
249
  "text": "The disabled prop lets you turn off the input field so that users can\u2019t\ntype in it. When disabled, the field is grayed out and won\u2019t respond to#\nclicks or touches."
197
250
  },
251
+ "getter": false,
252
+ "setter": false,
198
253
  "attribute": "disabled",
199
254
  "reflect": true,
200
255
  "defaultValue": "false"
@@ -213,6 +268,8 @@ export class NvFieldpassword {
213
268
  "tags": [],
214
269
  "text": "Display the input field\u2019s content without allowing users to change it.\nUsers can still click on it, select, and copy the text, but they won\u2019t be\nable to type or delete anything."
215
270
  },
271
+ "getter": false,
272
+ "setter": false,
216
273
  "attribute": "readonly",
217
274
  "reflect": true,
218
275
  "defaultValue": "false"
@@ -231,6 +288,8 @@ export class NvFieldpassword {
231
288
  "tags": [],
232
289
  "text": "Marks the input field as required, ensuring that the user must fill it out\nbefore submitting the form."
233
290
  },
291
+ "getter": false,
292
+ "setter": false,
234
293
  "attribute": "required",
235
294
  "reflect": true,
236
295
  "defaultValue": "false"
@@ -252,6 +311,8 @@ export class NvFieldpassword {
252
311
  }],
253
312
  "text": "Alters the input field\u2019s appearance to indicate an error, helping users\nidentify fields that need correction."
254
313
  },
314
+ "getter": false,
315
+ "setter": false,
255
316
  "attribute": "error",
256
317
  "reflect": true,
257
318
  "defaultValue": "false"
@@ -273,6 +334,8 @@ export class NvFieldpassword {
273
334
  }],
274
335
  "text": "A description that appears when there is an error related to the password\nfield."
275
336
  },
337
+ "getter": false,
338
+ "setter": false,
276
339
  "attribute": "error-description",
277
340
  "reflect": true
278
341
  },
@@ -290,6 +353,8 @@ export class NvFieldpassword {
290
353
  "tags": [],
291
354
  "text": "Changes the input field\u2019s appearance to indicate successful input or\nvalidation."
292
355
  },
356
+ "getter": false,
357
+ "setter": false,
293
358
  "attribute": "success",
294
359
  "reflect": true,
295
360
  "defaultValue": "false"
@@ -308,6 +373,8 @@ export class NvFieldpassword {
308
373
  "tags": [],
309
374
  "text": "Limits how many characters users can type into the input field. It\u2019s\nhelpful for making sure users don\u2019t enter too much information, keeping\ntheir input within the allowed limit."
310
375
  },
376
+ "getter": false,
377
+ "setter": false,
311
378
  "attribute": "maxlength",
312
379
  "reflect": true
313
380
  },
@@ -325,6 +392,8 @@ export class NvFieldpassword {
325
392
  "tags": [],
326
393
  "text": "Ensures that users type at least a certain number of characters into the\ninput field. It\u2019s a way to make sure users provide enough information\nbefore moving on."
327
394
  },
395
+ "getter": false,
396
+ "setter": false,
328
397
  "attribute": "minlength",
329
398
  "reflect": true
330
399
  },
@@ -342,6 +411,8 @@ export class NvFieldpassword {
342
411
  "tags": [],
343
412
  "text": "Set rules for how the input should be formatted. For example, you can\nrequire that a phone number includes only digits or that an email address\nhas the correct format. If users don\u2019t follow these rules, they\u2019ll get a\nprompt to correct their input.\nthe rules are applied to the input value via regexes."
344
413
  },
414
+ "getter": false,
415
+ "setter": false,
345
416
  "attribute": "pattern",
346
417
  "reflect": true
347
418
  },
@@ -362,6 +433,8 @@ export class NvFieldpassword {
362
433
  }],
363
434
  "text": "Defines the type of the input."
364
435
  },
436
+ "getter": false,
437
+ "setter": false,
365
438
  "attribute": "mode",
366
439
  "reflect": true,
367
440
  "defaultValue": "'text'"
@@ -386,6 +459,8 @@ export class NvFieldpassword {
386
459
  "tags": [],
387
460
  "text": "The autocomplete prop helps users fill out the input field faster by\nsuggesting entries they\u2019ve used before, like their email or address.\nYou can turn it on to make forms more convenient or off to ensure users\nalways type in fresh data."
388
461
  },
462
+ "getter": false,
463
+ "setter": false,
389
464
  "attribute": "autocomplete",
390
465
  "reflect": true,
391
466
  "defaultValue": "'off'"
@@ -404,6 +479,8 @@ export class NvFieldpassword {
404
479
  "tags": [],
405
480
  "text": "Hide the button to show/hide the password."
406
481
  },
482
+ "getter": false,
483
+ "setter": false,
407
484
  "attribute": "hide-password-icon",
408
485
  "reflect": true,
409
486
  "defaultValue": "false"
@@ -422,6 +499,8 @@ export class NvFieldpassword {
422
499
  "tags": [],
423
500
  "text": "Show/hide the password programmatically."
424
501
  },
502
+ "getter": false,
503
+ "setter": false,
425
504
  "attribute": "show-password",
426
505
  "reflect": true,
427
506
  "defaultValue": "false"
@@ -1 +1 @@
1
- {"version":3,"file":"nv-fieldpassword.js","sourceRoot":"","sources":["../../../src/components/nv-fieldpassword/nv-fieldpassword.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n State,\n Watch,\n} from '@stencil/core';\n\nimport { v4 as uuidv4 } from 'uuid';\nimport { TextInputAutocomplete } from '../../utils/constants';\n/**\n * @slot leading-input - Content to be placed before the input text, within the input container.\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 label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n\n@Component({\n tag: 'nv-fieldpassword',\n styleUrl: 'nv-fieldpassword.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvFieldpassword {\n @Element() el: HTMLNvFieldpasswordElement;\n private inputElement!: HTMLInputElement;\n\n /****************************************************************************/\n //#region PROPERTIES\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 * Lets you define the text that explains what users should enter in the text\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 * Add helpful hints or extra information under the text input field. This is\n * where you can clarify what users should enter or provide additional\n * instructions, making the form easier to fill out correctly.\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n description: string;\n\n /**\n * Display temporary text inside the input field to give users a hint about\n * what to type. It’s a great way to provide examples or suggestions directly\n * in the field before they start typing.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\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. It should be\n * unique within the form to avoid conflicts\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Specifies the value of the input field, which determines the text displayed\n * within the field. This prop is typically used in controlled components\n * where the input’s value is managed by the component’s state.\n */\n @Prop({ reflect: true, mutable: true })\n value: string;\n\n /**\n * The disabled prop lets you turn off the input field so that users can’t\n * type in 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 * 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 * 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 * 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 password\n * field.\n * @validator message\n */\n @Prop({ reflect: true })\n readonly errorDescription: 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 * Limits how many characters users can type into the input field. It’s\n * helpful for making sure users don’t enter too much information, keeping\n * their input within the allowed limit.\n */\n @Prop({ reflect: true })\n readonly maxlength: number;\n\n /**\n * Ensures that users type at least a certain number of characters into the\n * input field. It’s a way to make sure users provide enough information\n * before moving on.\n */\n @Prop({ reflect: true })\n readonly minlength: number;\n\n /**\n * Set rules for how the input should be formatted. For example, you can\n * require that a phone number includes only digits or that an email address\n * has the correct format. If users don’t follow these rules, they’ll get a\n * prompt to correct their input.\n * the rules are applied to the input value via regexes.\n */\n @Prop({ reflect: true })\n readonly pattern: string;\n\n /**\n * Defines the type of the input.\n * @default 'text'\n */\n @Prop({ reflect: true })\n readonly mode: 'text' | 'number' = 'text';\n\n /**\n * The autocomplete prop helps users fill out the input field faster by\n * suggesting entries they’ve used before, like their email or address.\n * You can turn it on to make forms more convenient or off to ensure users\n * always type in fresh data.\n */\n @Prop({ reflect: true })\n readonly autocomplete: `${TextInputAutocomplete}` = 'off';\n\n /**\n * Hide the button to show/hide the password.\n */\n @Prop({ reflect: true })\n readonly hidePasswordIcon: boolean = false;\n\n /**\n * Show/hide the password programmatically.\n */\n @Prop({ reflect: true })\n readonly showPassword: boolean = false;\n\n /**\n * Defines whether the password is visible or not.\n */\n @State()\n showPasswordState: boolean = this.showPassword;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the input value changes.\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n private handleInputContainerClick = () => {\n this.inputElement.focus();\n };\n\n @Watch('showPassword')\n handleShowPasswordChange(newValue: boolean) {\n this.showPasswordState = newValue;\n }\n\n private togglePasswordVisibility = () => {\n this.showPasswordState = !this.showPasswordState;\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === ' ') {\n event.preventDefault(); // Prevent the space character from being added\n setTimeout(() => {\n this.togglePasswordVisibility();\n }, 0);\n }\n };\n\n private handleInput = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.value = input.value; // Update the input value without worrying about the space\n this.valueChanged.emit(input.value);\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\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 <div class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\" onClick={this.handleInputContainerClick}>\n <slot name=\"leading-input\"></slot>\n\n <input\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n autocomplete={this.autocomplete}\n placeholder={this.placeholder}\n name={this.name}\n type={this.showPasswordState ? 'text' : 'password'}\n inputMode={this.mode}\n value={this.value}\n required={this.required}\n maxlength={this.maxlength}\n minlength={this.minlength}\n pattern={this.pattern}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInput}\n />\n\n {!this.hidePasswordIcon && (\n <nv-iconbutton\n class=\"toggle-password-icon\"\n name={this.showPasswordState ? 'eye' : 'eye-off'}\n size=\"md\"\n emphasis=\"lower\"\n onClick={this.togglePasswordVisibility}\n onKeyDown={this.handleKeyDown}\n aria-label={\n this.showPasswordState ? 'Hide password' : 'Show password'\n }\n aria-pressed={this.showPasswordState.toString()}\n />\n )}\n\n {(this.success || this.error) && (\n <nv-icon\n name={this.success ? 'circle-check' : 'alert-circle'}\n class=\"validation\"\n size=\"md\"\n />\n )}\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\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"]}
1
+ {"version":3,"file":"nv-fieldpassword.js","sourceRoot":"","sources":["../../../src/components/nv-fieldpassword/nv-fieldpassword.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n State,\n Watch,\n} from '@stencil/core';\n\nimport { v4 as uuidv4 } from 'uuid';\nimport { TextInputAutocomplete } from '../../utils/constants';\n/**\n * @slot leading-input - Content to be placed before the input text, within the input container.\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 label - Content to be placed as the label, will override the label prop.\n * @slot description - Content to be placed as the description, will override the description prop.\n * @slot error-description - Content to be placed as the error description, will override the errorDescription prop.\n */\n\n@Component({\n tag: 'nv-fieldpassword',\n styleUrl: 'nv-fieldpassword.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvFieldpassword {\n @Element() el: HTMLNvFieldpasswordElement;\n private inputElement!: HTMLInputElement;\n\n /****************************************************************************/\n //#region PROPERTIES\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 * Lets you define the text that explains what users should enter in the text\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 * Add helpful hints or extra information under the text input field. This is\n * where you can clarify what users should enter or provide additional\n * instructions, making the form easier to fill out correctly.\n */\n // eslint-disable-next-line @stencil-community/strict-mutable\n @Prop({ reflect: true, mutable: true })\n description: string;\n\n /**\n * Display temporary text inside the input field to give users a hint about\n * what to type. It’s a great way to provide examples or suggestions directly\n * in the field before they start typing.\n */\n @Prop({ reflect: true })\n readonly placeholder: string;\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. It should be\n * unique within the form to avoid conflicts\n */\n @Prop({ reflect: true })\n readonly name: string;\n\n /**\n * Specifies the value of the input field, which determines the text displayed\n * within the field. This prop is typically used in controlled components\n * where the input’s value is managed by the component’s state.\n */\n @Prop({ reflect: true, mutable: true })\n value: string;\n\n /**\n * The disabled prop lets you turn off the input field so that users can’t\n * type in 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 * 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 * 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 * 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 password\n * field.\n * @validator message\n */\n @Prop({ reflect: true })\n readonly errorDescription: 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 * Limits how many characters users can type into the input field. It’s\n * helpful for making sure users don’t enter too much information, keeping\n * their input within the allowed limit.\n */\n @Prop({ reflect: true })\n readonly maxlength: number;\n\n /**\n * Ensures that users type at least a certain number of characters into the\n * input field. It’s a way to make sure users provide enough information\n * before moving on.\n */\n @Prop({ reflect: true })\n readonly minlength: number;\n\n /**\n * Set rules for how the input should be formatted. For example, you can\n * require that a phone number includes only digits or that an email address\n * has the correct format. If users don’t follow these rules, they’ll get a\n * prompt to correct their input.\n * the rules are applied to the input value via regexes.\n */\n @Prop({ reflect: true })\n readonly pattern: string;\n\n /**\n * Defines the type of the input.\n * @default 'text'\n */\n @Prop({ reflect: true })\n readonly mode: 'text' | 'number' = 'text';\n\n /**\n * The autocomplete prop helps users fill out the input field faster by\n * suggesting entries they’ve used before, like their email or address.\n * You can turn it on to make forms more convenient or off to ensure users\n * always type in fresh data.\n */\n @Prop({ reflect: true })\n readonly autocomplete: `${TextInputAutocomplete}` = 'off';\n\n /**\n * Hide the button to show/hide the password.\n */\n @Prop({ reflect: true })\n readonly hidePasswordIcon: boolean = false;\n\n /**\n * Show/hide the password programmatically.\n */\n @Prop({ reflect: true })\n readonly showPassword: boolean = false;\n\n /**\n * Defines whether the password is visible or not.\n */\n @State()\n showPasswordState: boolean = this.showPassword;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the input value changes.\n * @bind value\n */\n @Event()\n valueChanged: EventEmitter<string>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n private handleInputContainerClick = () => {\n this.inputElement.focus();\n };\n\n @Watch('showPassword')\n handleShowPasswordChange(newValue: boolean) {\n this.showPasswordState = newValue;\n }\n\n private togglePasswordVisibility = () => {\n this.showPasswordState = !this.showPasswordState;\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === ' ') {\n event.preventDefault(); // Prevent the space character from being added\n setTimeout(() => {\n this.togglePasswordVisibility();\n }, 0);\n }\n };\n\n private handleInput = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.value = input.value; // Update the input value without worrying about the space\n this.valueChanged.emit(input.value);\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\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 <div class=\"input-wrapper\">\n <slot name=\"before-input\"></slot>\n\n <div class=\"input-container\" onClick={this.handleInputContainerClick}>\n <slot name=\"leading-input\"></slot>\n\n <input\n id={this.inputId}\n ref={e => (this.inputElement = e)}\n autocomplete={this.autocomplete}\n placeholder={this.placeholder}\n name={this.name}\n type={this.showPasswordState ? 'text' : 'password'}\n inputMode={this.mode}\n value={this.value}\n required={this.required}\n maxlength={this.maxlength}\n minlength={this.minlength}\n pattern={this.pattern}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInput}\n />\n\n {!this.hidePasswordIcon && (\n <nv-iconbutton\n class=\"toggle-password-icon\"\n name={this.showPasswordState ? 'eye' : 'eye-off'}\n size=\"md\"\n emphasis=\"lower\"\n onClick={this.togglePasswordVisibility}\n onKeyDown={this.handleKeyDown}\n aria-label={\n this.showPasswordState ? 'Hide password' : 'Show password'\n }\n aria-pressed={this.showPasswordState.toString()}\n />\n )}\n\n {(this.success || this.error) && (\n <nv-icon\n name={this.success ? 'circle-check' : 'alert-circle'}\n class=\"validation\"\n size=\"md\"\n />\n )}\n </div>\n\n <slot name=\"after-input\"></slot>\n </div>\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"]}