@nova-design-system/nova-webcomponents 3.19.0 → 3.21.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 (200) hide show
  1. package/dist/cjs/index-93d3b2f8.js +4 -0
  2. package/dist/cjs/index.cjs.js +1 -2
  3. package/dist/cjs/index.cjs.js.map +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/native.cjs.js +1 -1
  6. package/dist/cjs/nv-button.cjs.entry.js +7 -2
  7. package/dist/cjs/nv-button.cjs.entry.js.map +1 -1
  8. package/dist/cjs/nv-datagrid.cjs.entry.js +2 -2
  9. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  10. package/dist/cjs/nv-dialog.cjs.entry.js +1 -1
  11. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  12. package/dist/cjs/nv-fieldnumber.cjs.entry.js +24 -7
  13. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  14. package/dist/cjs/nv-fieldslider.cjs.entry.js +3 -1
  15. package/dist/cjs/nv-fieldslider.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nv-icon.cjs.entry.js +1 -1
  17. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +6 -1
  19. package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nv-tableheader.cjs.entry.js +77 -0
  21. package/dist/cjs/nv-tableheader.cjs.entry.js.map +1 -0
  22. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  23. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  24. package/dist/cjs/nv-togglebutton.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +1 -1
  26. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  27. package/dist/collection/collection-manifest.json +1 -0
  28. package/dist/collection/components/nv-button/nv-button.js +26 -1
  29. package/dist/collection/components/nv-button/nv-button.js.map +1 -1
  30. package/dist/collection/components/nv-button/styles/nv-button.css +4 -0
  31. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +1 -1
  32. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  33. package/dist/collection/components/nv-datagrid/nv-datagrid.js +4 -2
  34. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  35. package/dist/collection/components/nv-dialog/nv-dialog.css +1 -0
  36. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +26 -9
  37. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  38. package/dist/collection/components/nv-fieldslider/partials/field-input.js +3 -1
  39. package/dist/collection/components/nv-fieldslider/partials/field-input.js.map +1 -1
  40. package/dist/collection/components/nv-icon/nv-icons.js +1 -2
  41. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  42. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +26 -1
  43. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js.map +1 -1
  44. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  45. package/dist/collection/components/nv-table/nv-table.docs.js +7 -0
  46. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
  47. package/dist/collection/components/nv-tableheader/nv-tableheader.css +28 -0
  48. package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js +13 -0
  49. package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js.map +1 -0
  50. package/dist/collection/components/nv-tableheader/nv-tableheader.js +139 -0
  51. package/dist/collection/components/nv-tableheader/nv-tableheader.js.map +1 -0
  52. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  53. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  54. package/dist/collection/components/nv-togglebutton/styles/nv-togglebutton.css +4 -0
  55. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  56. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  57. package/dist/components/index.js +1 -2
  58. package/dist/components/index.js.map +1 -1
  59. package/dist/components/nv-accordion-item.js +1 -1
  60. package/dist/components/nv-accordion.js +3 -3
  61. package/dist/components/nv-alert.js +1 -1
  62. package/dist/components/nv-avatar.js +1 -1
  63. package/dist/components/nv-badge.js +1 -1
  64. package/dist/components/nv-breadcrumb.js +1 -1
  65. package/dist/components/nv-button.js +1 -1
  66. package/dist/components/nv-datagrid.js +4 -4
  67. package/dist/components/nv-datagrid.js.map +1 -1
  68. package/dist/components/nv-dialog.js +4 -4
  69. package/dist/components/nv-dialog.js.map +1 -1
  70. package/dist/components/nv-dialogfooter.js +1 -1
  71. package/dist/components/nv-fielddate.js +2 -2
  72. package/dist/components/nv-fielddaterange.js +2 -2
  73. package/dist/components/nv-fielddropdown.js +3 -3
  74. package/dist/components/nv-fielddropdownitem.js +1 -1
  75. package/dist/components/nv-fieldmultiselect.js +3 -3
  76. package/dist/components/nv-fieldnumber.js +1 -1
  77. package/dist/components/nv-fieldpassword.js +2 -2
  78. package/dist/components/nv-fieldselect.js +2 -2
  79. package/dist/components/nv-fieldslider.js +6 -4
  80. package/dist/components/nv-fieldslider.js.map +1 -1
  81. package/dist/components/nv-fieldtext.js +1 -1
  82. package/dist/components/nv-fieldtime.js +2 -2
  83. package/dist/components/nv-icon.js +1 -1
  84. package/dist/components/nv-iconbutton.js +1 -1
  85. package/dist/components/nv-menu.js +2 -2
  86. package/dist/components/nv-menuitem.js +1 -1
  87. package/dist/components/nv-notification.js +1 -1
  88. package/dist/components/nv-tableheader.d.ts +11 -0
  89. package/dist/components/nv-tableheader.js +112 -0
  90. package/dist/components/nv-tableheader.js.map +1 -0
  91. package/dist/components/nv-toggle.js +2 -2
  92. package/dist/components/nv-togglebutton.js +2 -2
  93. package/dist/components/nv-togglebutton.js.map +1 -1
  94. package/dist/components/nv-togglebuttongroup.js +1 -1
  95. package/dist/components/nv-tooltip.js +1 -1
  96. package/dist/components/{p-60083982.js → p-00347aae.js} +3 -3
  97. package/dist/components/{p-60083982.js.map → p-00347aae.js.map} +1 -1
  98. package/dist/components/p-0bfe8a47.js +88 -0
  99. package/dist/components/p-0bfe8a47.js.map +1 -0
  100. package/dist/components/p-2062ba39.js +191 -0
  101. package/dist/components/p-2062ba39.js.map +1 -0
  102. package/dist/components/{p-5a5db065.js → p-5c6b5444.js} +10 -4
  103. package/dist/components/p-5c6b5444.js.map +1 -0
  104. package/dist/components/{p-18f50d91.js → p-61382072.js} +2 -2
  105. package/dist/components/{p-18f50d91.js.map → p-61382072.js.map} +1 -1
  106. package/dist/components/{p-81d915ef.js → p-643d7802.js} +2 -2
  107. package/dist/components/{p-81d915ef.js.map → p-643d7802.js.map} +1 -1
  108. package/dist/components/{p-334e19d3.js → p-86588fba.js} +3 -3
  109. package/dist/components/{p-334e19d3.js.map → p-86588fba.js.map} +1 -1
  110. package/dist/components/{p-45a3cf85.js → p-8ce28cff.js} +2 -2
  111. package/dist/components/{p-45a3cf85.js.map → p-8ce28cff.js.map} +1 -1
  112. package/dist/components/{p-2ac6f42d.js → p-c4d20cc9.js} +2 -2
  113. package/dist/components/{p-2ac6f42d.js.map → p-c4d20cc9.js.map} +1 -1
  114. package/dist/components/{p-49205084.js → p-c69f5a37.js} +2 -2
  115. package/dist/components/{p-49205084.js.map → p-c69f5a37.js.map} +1 -1
  116. package/dist/components/{p-e0eb748c.js → p-d1d4cc45.js} +27 -10
  117. package/dist/components/{p-e0eb748c.js.map → p-d1d4cc45.js.map} +1 -1
  118. package/dist/esm/index-dc2723f3.js +4 -0
  119. package/dist/esm/index.js +1 -2
  120. package/dist/esm/index.js.map +1 -1
  121. package/dist/esm/loader.js +1 -1
  122. package/dist/esm/native.js +1 -1
  123. package/dist/esm/nv-button.entry.js +7 -2
  124. package/dist/esm/nv-button.entry.js.map +1 -1
  125. package/dist/esm/nv-datagrid.entry.js +2 -2
  126. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  127. package/dist/esm/nv-dialog.entry.js +1 -1
  128. package/dist/esm/nv-dialog.entry.js.map +1 -1
  129. package/dist/esm/nv-fieldnumber.entry.js +24 -7
  130. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  131. package/dist/esm/nv-fieldslider.entry.js +3 -1
  132. package/dist/esm/nv-fieldslider.entry.js.map +1 -1
  133. package/dist/esm/nv-icon.entry.js +1 -1
  134. package/dist/esm/nv-icon.entry.js.map +1 -1
  135. package/dist/esm/nv-iconbutton_2.entry.js +6 -1
  136. package/dist/esm/nv-iconbutton_2.entry.js.map +1 -1
  137. package/dist/esm/nv-tableheader.entry.js +73 -0
  138. package/dist/esm/nv-tableheader.entry.js.map +1 -0
  139. package/dist/esm/nv-toggle.entry.js +2 -2
  140. package/dist/esm/nv-togglebutton.entry.js +2 -2
  141. package/dist/esm/nv-togglebutton.entry.js.map +1 -1
  142. package/dist/esm/nv-togglebuttongroup.entry.js +1 -1
  143. package/dist/esm/nv-tooltip.entry.js +1 -1
  144. package/dist/native/index.esm.js +1 -1
  145. package/dist/native/index.esm.js.map +1 -1
  146. package/dist/native/native.css +1 -1
  147. package/dist/native/native.esm.js +1 -1
  148. package/dist/native/native.esm.js.map +1 -1
  149. package/dist/native/p-2b4cf4b8.entry.js +2 -0
  150. package/dist/native/{p-dfb6b65e.entry.js.map → p-2b4cf4b8.entry.js.map} +1 -1
  151. package/dist/native/{p-8e423742.entry.js → p-44ba73dc.entry.js} +2 -2
  152. package/dist/native/{p-8e423742.entry.js.map → p-44ba73dc.entry.js.map} +1 -1
  153. package/dist/native/{p-075d231e.entry.js → p-4de8697c.entry.js} +2 -2
  154. package/dist/native/{p-44a78545.entry.js → p-533e2530.entry.js} +2 -2
  155. package/dist/native/p-56ed7306.entry.js +2 -0
  156. package/dist/native/p-56ed7306.entry.js.map +1 -0
  157. package/dist/native/p-973f5db2.entry.js +2 -0
  158. package/dist/native/p-973f5db2.entry.js.map +1 -0
  159. package/dist/native/p-ae5be175.entry.js +2 -0
  160. package/dist/native/p-ae5be175.entry.js.map +1 -0
  161. package/dist/native/p-b43d6629.entry.js +2 -0
  162. package/dist/native/p-b43d6629.entry.js.map +1 -0
  163. package/dist/native/{p-c0de4bb0.entry.js → p-bd9bf6a1.entry.js} +2 -2
  164. package/dist/native/p-bd9bf6a1.entry.js.map +1 -0
  165. package/dist/native/{p-122c78c3.entry.js → p-be49d837.entry.js} +2 -2
  166. package/dist/native/{p-122c78c3.entry.js.map → p-be49d837.entry.js.map} +1 -1
  167. package/dist/native/{p-445221dc.entry.js → p-c4baad6e.entry.js} +2 -2
  168. package/dist/native/p-c901693d.entry.js +2 -0
  169. package/dist/native/p-c901693d.entry.js.map +1 -0
  170. package/dist/types/components/nv-button/nv-button.d.ts +5 -0
  171. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +2 -0
  172. package/dist/types/components/nv-fieldnumber/nv-fieldnumber.d.ts +7 -3
  173. package/dist/types/components/nv-fieldslider/partials/field-input.d.ts +1 -1
  174. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  175. package/dist/types/components/nv-iconbutton/nv-iconbutton.d.ts +5 -0
  176. package/dist/types/components/nv-tableheader/nv-tableheader.d.ts +32 -0
  177. package/dist/types/components/nv-tableheader/nv-tableheader.docs.d.ts +4 -0
  178. package/dist/types/components.d.ts +96 -4
  179. package/dist/vscode-data.json +39 -6
  180. package/hydrate/index.js +141 -25
  181. package/hydrate/index.mjs +141 -25
  182. package/package.json +5 -1
  183. package/dist/components/p-5a5db065.js.map +0 -1
  184. package/dist/components/p-946a047c.js +0 -88
  185. package/dist/components/p-946a047c.js.map +0 -1
  186. package/dist/components/p-e1b2eba2.js +0 -185
  187. package/dist/components/p-e1b2eba2.js.map +0 -1
  188. package/dist/native/p-a6fc987a.entry.js +0 -2
  189. package/dist/native/p-a6fc987a.entry.js.map +0 -1
  190. package/dist/native/p-b626ef47.entry.js +0 -2
  191. package/dist/native/p-b626ef47.entry.js.map +0 -1
  192. package/dist/native/p-c0de4bb0.entry.js.map +0 -1
  193. package/dist/native/p-d62869ff.entry.js +0 -2
  194. package/dist/native/p-d62869ff.entry.js.map +0 -1
  195. package/dist/native/p-d8f3cf92.entry.js +0 -2
  196. package/dist/native/p-d8f3cf92.entry.js.map +0 -1
  197. package/dist/native/p-dfb6b65e.entry.js +0 -2
  198. /package/dist/native/{p-075d231e.entry.js.map → p-4de8697c.entry.js.map} +0 -0
  199. /package/dist/native/{p-44a78545.entry.js.map → p-533e2530.entry.js.map} +0 -0
  200. /package/dist/native/{p-445221dc.entry.js.map → p-c4baad6e.entry.js.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nova-design-system/nova-webcomponents",
3
- "version": "3.19.0",
3
+ "version": "3.21.0",
4
4
  "description": "Nova is a design system created by Elia Group to empower creators to efficiently build solutions that people love to use.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",
@@ -70,6 +70,10 @@
70
70
  "extract-comments": "1.1.0"
71
71
  },
72
72
  "exports": {
73
+ "./nv-tableheader": {
74
+ "import": "./dist/components/nv-tableheader.js",
75
+ "types": "./dist/components/nv-tableheader.d.ts"
76
+ },
73
77
  "./nv-split": {
74
78
  "import": "./dist/components/nv-split.js",
75
79
  "types": "./dist/components/nv-split.d.ts"
@@ -1 +0,0 @@
1
- {"file":"p-5a5db065.js","mappings":";;;;;AAAA,MAAM,eAAe,GAAG,4uJAA4uJ,CAAC;AACrwJ,2BAAe,eAAe;;MC6BjB,YAAY;IAPzB;;;;;;;;;;;QAoBW,SAAI,GAAoB,IAAI,CAAC;;;;;;QAQ7B,aAAQ,GAAwB,MAAM,CAAC;;;;;;;;QAUhD,YAAO,GAAY,KAAK,CAAC;;;;QAMzB,aAAQ,GAAY,KAAK,CAAC;;;;;QAOjB,WAAM,GAAY,KAAK,CAAC;;;;;;QAgBxB,SAAI,GAAoB,QAAQ,CAAC;;;;QAMjC,UAAK,GAAyB,QAAQ,CAAC;;;;;;;;;;QAYxC,gBAAW,GAAG,CAAC,KAAY;;YACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC1B,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,0CAAE,aAAa,EAAE,CAAC;aACvC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACzB,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,0CAAE,KAAK,EAAE,CAAC;aAC/B;SACF,CAAC;KAgFH;;;;IAzEC,mBAAmB,CAAC,OAAgB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;KACzB;IAGD,oBAAoB,CAAC,QAAiB;QACpC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;KACF;;;;IAOD,aAAa,CAAC,KAAoB;QAChC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;SACjB;KACF;IAGD,gBAAgB,CAAC,KAAiB;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QACrC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;KACjB;;;;IAMD,iBAAiB;QACf,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;SAC9B;KACF;;;;IAMD,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,QAAQ,EAAC,GAAG,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,EAC1C,KAAK,EAAE,IAAI,CACT,MAAM,EACN,QAAQ,IAAI,CAAC,IAAI,EAAE,EACnB,YAAY,IAAI,CAAC,QAAQ,EAAE,EAC3B,IAAI,CAAC,OAAO,IAAI,SAAS,EACzB,SAAS,IAAI,CAAC,KAAK,EAAE,CACtB,EACD,OAAO,EAAE,IAAI,CAAC,WAAW,IAExB,IAAI,CAAC,OAAO,IAAI,kEAAW,IAAI,EAAE,IAAI,CAAC,IAAI,GAAc,EAExD,CAAC,IAAI,CAAC,OAAO,IAAI,gEAAS,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,EAE/D,8DAAa,CACR,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/nv-iconbutton/nv-iconbutton.scss?tag=nv-iconbutton","src/components/nv-iconbutton/nv-iconbutton.tsx"],"sourcesContent":["@use \"sass:map\";\n@import \"../../styles/focus-ring\";\n\n/* Variants */\n$button-sizes: (\"xs\", \"sm\", \"md\", \"lg\");\n$button-emphasis: (\"high\", \"medium\", \"low\", \"lower\");\n\n/* Define maps for size-related variables */\n$button-icon-button-padding: (\n \"xs\": var(--button-xs-icon-button-padding),\n \"sm\": var(--button-sm-icon-button-padding),\n \"md\": var(--button-md-icon-button-padding),\n \"lg\": var(--button-lg-icon-button-padding)\n);\n\n$button-gap: (\n \"xs\": var(--button-xs-gap),\n \"sm\": var(--button-sm-gap),\n \"md\": var(--button-md-gap),\n \"lg\": var(--button-lg-gap)\n);\n\n$button-border-radius: (\n \"xs\": var(--button-xs-border-radius),\n \"sm\": var(--button-sm-border-radius),\n \"md\": var(--button-md-border-radius),\n \"lg\": var(--button-lg-border-radius)\n);\n\n$button-line-height: (\n \"xs\": var(--button-xs-line-height),\n \"sm\": var(--button-sm-line-height),\n \"md\": var(--button-md-line-height),\n \"lg\": var(--button-lg-line-height)\n);\n\n$button-font-size: (\n \"xs\": var(--button-xs-font-size),\n \"sm\": var(--button-sm-font-size),\n \"md\": var(--button-md-font-size),\n \"lg\": var(--button-lg-font-size)\n);\n\n/* Define maps for emphasis-related variables */\n$components-button-background: (\n \"high\": var(--components-button-high-background),\n \"medium\": var(--components-button-medium-background),\n \"low\": var(--components-button-low-background),\n \"lower\": var(--components-button-lower-background)\n);\n\n$components-button-border: (\n \"high\": var(--components-button-high-border),\n \"medium\": var(--components-button-medium-border),\n \"low\": var(--components-button-low-border),\n \"lower\": var(--components-button-lower-border)\n);\n\n$components-button-text: (\n \"high\": var(--components-button-high-text),\n \"medium\": var(--components-button-medium-text),\n \"low\": var(--components-button-low-text),\n \"lower\": var(--components-button-lower-text)\n);\n\n$components-button-background-hover: (\n \"high\": var(--components-button-high-background-hover),\n \"medium\": var(--components-button-medium-background-hover),\n \"low\": var(--components-button-low-background-hover),\n \"lower\": var(--components-button-lower-background-hover)\n);\n\n$components-button-text-hover: (\n \"high\": var(--components-button-high-text-hover),\n \"medium\": var(--components-button-medium-text-hover),\n \"low\": var(--components-button-low-text-hover),\n \"lower\": var(--components-button-lower-text-hover)\n);\n\n$components-button-icon: (\n \"high\": var(--components-button-high-icon),\n \"medium\": var(--components-button-medium-icon),\n \"low\": var(--components-button-low-icon),\n \"lower\": var(--components-button-lower-icon)\n);\n\n@mixin root-styles() {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n font-style: normal;\n font-weight: var(--font-weight-medium-emphasis);\n font-family: var(--font-family-default), var(--font-family-fallback), sans-serif;\n transition: background-color 150ms ease-out;\n height: fit-content;\n width: fit-content;\n}\n\n@mixin size-styles($size) {\n padding: map.get($button-icon-button-padding, $size);\n gap: map.get($button-gap, $size);\n border-radius: map.get($button-border-radius, $size);\n line-height: map.get($button-line-height, $size);\n font-size: map.get($button-font-size, $size);\n}\n\n@mixin emphasis-styles($emphasis) {\n background: map.get($components-button-background, $emphasis);\n border: 1px solid map.get($components-button-border, $emphasis);\n color: map.get($components-button-text, $emphasis);\n\n &:hover {\n background: map.get($components-button-background-hover, $emphasis);\n color: map.get($components-button-text-hover, $emphasis);\n }\n\n @include focus-ring();\n\n &:disabled {\n background: map.get($components-button-background, $emphasis);\n color: map.get($components-button-text, $emphasis);\n opacity: 0.5;\n cursor: not-allowed;\n box-shadow: none;\n }\n\n & nv-icon > svg {\n color: map.get($components-button-icon, $emphasis);\n }\n}\n\nnv-iconbutton {\n &.root {\n @include root-styles();\n }\n\n @each $size in $button-sizes {\n &.size-#{$size} {\n @include size-styles($size);\n }\n }\n\n @each $emphasis in $button-emphasis {\n &.emphasis-#{$emphasis} {\n @include emphasis-styles($emphasis);\n }\n }\n\n &.loading {\n [slot=\"leading-icon\"] {\n display: none;\n }\n }\n\n &.shape-rounded {\n border-radius: var(--radius-rounded-full);\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n AttachInternals,\n Element,\n Watch,\n Listen,\n} from '@stencil/core';\nimport clsx from 'clsx';\n\nimport {\n ButtonSize,\n ButtonEmphasis,\n ButtonType,\n IconButtonShape,\n} from '../../utils/constants';\nimport { IconName } from '../nv-icon/nv-icons';\n\n/**\n * @slot default - Content of the button.\n */\n@Component({\n tag: 'nv-iconbutton',\n shadow: false,\n formAssociated: true,\n styleUrl: 'nv-iconbutton.scss',\n scoped: false,\n})\nexport class NvIconbutton {\n @AttachInternals() internals: ElementInternals;\n @Element() el: HTMLNvIconbuttonElement;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Determines how large or small the button appears, allowing for\n * customization of the button's dimensions to fit different design\n * specifications and user needs.\n */\n @Prop({ reflect: true })\n readonly size: `${ButtonSize}` = 'md';\n\n /**\n * Adjusts the button’s emphasis to make it more or less visually prominent\n * to users. Use this to draw attention to important actions or reduce focus\n * on less critical ones.\n */\n @Prop({ reflect: true })\n readonly emphasis: `${ButtonEmphasis}` = 'high';\n\n /**\n * Set this to true to show a spinner on the button, letting users know that\n * their action is being processed. It helps improve user experience by\n * indicating ongoing activities. The icon is not displayed when the button\n * is loading. Also, the button is disabled. If you want to disable the\n * button, it is not possible. It is automatically disabled when loading.\n */\n @Prop({ reflect: true, mutable: true })\n loading: boolean = false;\n\n /**\n * Disables the button, preventing user interaction.\n */\n @Prop({ mutable: true, reflect: true })\n disabled: boolean = false;\n\n /**\n * Makes the button look active when it’s within a compatible component\n * like a button group.\n */\n @Prop({ reflect: true })\n readonly active: boolean = false;\n\n /**\n * Choose the icon you want to display. This also sets the aria-label for\n * improved accessibility, helping users who rely on screen readers.\n * The icon is not displayed when the button is loading.\n */\n @Prop({ reflect: true })\n readonly name: `${IconName}` | string;\n\n /**\n * Sets the button type to control its function in forms. Use 'submit' to send\n * form data, 'reset' to clear the form, or 'button' for a standard button\n * that doesn’t interact with form submission by default.\n */\n @Prop({ reflect: true })\n readonly type: `${ButtonType}` = 'button';\n\n /**\n * Sets the shape of the button. Choose between square and rounded.\n */\n @Prop({ reflect: true })\n readonly shape: `${IconButtonShape}` = 'square';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Handles form-related actions when the button is clicked.\n * - Submits the form if the button type is 'submit'.\n * - Resets the form if the button type is 'reset'.\n * @param {Event} event - The click event.\n */\n private handleClick = (event: Event) => {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n if (this.type === 'submit') {\n this.internals?.form?.requestSubmit();\n }\n if (this.type === 'reset') {\n this.internals?.form?.reset();\n }\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n\n @Watch('loading')\n handleLoadingChange(loading: boolean) {\n this.loading = loading;\n this.disabled = loading;\n }\n\n @Watch('disabled')\n handleDisabledChange(disabled: boolean) {\n if (this.loading) {\n this.disabled = this.loading;\n } else {\n this.disabled = disabled;\n }\n }\n\n //#endregion WATCHERS\n /****************************************************************************/\n //#region EVENTS\n\n @Listen('keydown', { passive: false })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.el.click();\n }\n }\n\n @Listen('touchstart', { passive: false })\n handleTouchStart(event: TouchEvent) {\n if (event.touches.length > 1) return;\n event.preventDefault();\n this.el.click();\n }\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n if (this.loading) {\n this.disabled = this.loading;\n }\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host\n role=\"button\"\n type={this.type}\n tabindex=\"0\"\n disabled={this.disabled ? true : undefined}\n class={clsx(\n 'root',\n `size-${this.size}`,\n `emphasis-${this.emphasis}`,\n this.loading && 'loading',\n `shape-${this.shape}`,\n )}\n onClick={this.handleClick}\n >\n {this.loading && <nv-loader size={this.size}></nv-loader>}\n\n {!this.loading && <nv-icon name={this.name} size={this.size} />}\n\n <slot></slot>\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}