@nova-design-system/nova-webcomponents 3.20.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 (178) 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-icon.cjs.entry.js +1 -1
  13. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  14. package/dist/cjs/nv-iconbutton_2.cjs.entry.js +6 -1
  15. package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nv-tableheader.cjs.entry.js +77 -0
  17. package/dist/cjs/nv-tableheader.cjs.entry.js.map +1 -0
  18. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  19. package/dist/cjs/nv-togglebutton.cjs.entry.js +2 -2
  20. package/dist/cjs/nv-togglebutton.cjs.entry.js.map +1 -1
  21. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +1 -1
  22. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  23. package/dist/collection/collection-manifest.json +1 -0
  24. package/dist/collection/components/nv-button/nv-button.js +26 -1
  25. package/dist/collection/components/nv-button/nv-button.js.map +1 -1
  26. package/dist/collection/components/nv-button/styles/nv-button.css +4 -0
  27. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +1 -1
  28. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  29. package/dist/collection/components/nv-datagrid/nv-datagrid.js +4 -2
  30. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  31. package/dist/collection/components/nv-dialog/nv-dialog.css +1 -0
  32. package/dist/collection/components/nv-icon/nv-icons.js +1 -2
  33. package/dist/collection/components/nv-icon/nv-icons.js.map +1 -1
  34. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +26 -1
  35. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js.map +1 -1
  36. package/dist/collection/components/nv-menuitem/nv-menuitem.js +1 -1
  37. package/dist/collection/components/nv-table/nv-table.docs.js +7 -0
  38. package/dist/collection/components/nv-table/nv-table.docs.js.map +1 -1
  39. package/dist/collection/components/nv-tableheader/nv-tableheader.css +28 -0
  40. package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js +13 -0
  41. package/dist/collection/components/nv-tableheader/nv-tableheader.docs.js.map +1 -0
  42. package/dist/collection/components/nv-tableheader/nv-tableheader.js +139 -0
  43. package/dist/collection/components/nv-tableheader/nv-tableheader.js.map +1 -0
  44. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  45. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  46. package/dist/collection/components/nv-togglebutton/styles/nv-togglebutton.css +4 -0
  47. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  48. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  49. package/dist/components/index.js +1 -2
  50. package/dist/components/index.js.map +1 -1
  51. package/dist/components/nv-accordion-item.js +1 -1
  52. package/dist/components/nv-accordion.js +3 -3
  53. package/dist/components/nv-alert.js +1 -1
  54. package/dist/components/nv-avatar.js +1 -1
  55. package/dist/components/nv-badge.js +1 -1
  56. package/dist/components/nv-breadcrumb.js +1 -1
  57. package/dist/components/nv-button.js +1 -1
  58. package/dist/components/nv-datagrid.js +4 -4
  59. package/dist/components/nv-datagrid.js.map +1 -1
  60. package/dist/components/nv-dialog.js +4 -4
  61. package/dist/components/nv-dialog.js.map +1 -1
  62. package/dist/components/nv-dialogfooter.js +1 -1
  63. package/dist/components/nv-fielddate.js +2 -2
  64. package/dist/components/nv-fielddaterange.js +2 -2
  65. package/dist/components/nv-fielddropdown.js +3 -3
  66. package/dist/components/nv-fielddropdownitem.js +1 -1
  67. package/dist/components/nv-fieldmultiselect.js +3 -3
  68. package/dist/components/nv-fieldnumber.js +1 -1
  69. package/dist/components/nv-fieldpassword.js +2 -2
  70. package/dist/components/nv-fieldselect.js +2 -2
  71. package/dist/components/nv-fieldslider.js +3 -3
  72. package/dist/components/nv-fieldtext.js +1 -1
  73. package/dist/components/nv-fieldtime.js +2 -2
  74. package/dist/components/nv-icon.js +1 -1
  75. package/dist/components/nv-iconbutton.js +1 -1
  76. package/dist/components/nv-menu.js +2 -2
  77. package/dist/components/nv-menuitem.js +1 -1
  78. package/dist/components/nv-notification.js +1 -1
  79. package/dist/components/nv-tableheader.d.ts +11 -0
  80. package/dist/components/nv-tableheader.js +112 -0
  81. package/dist/components/nv-tableheader.js.map +1 -0
  82. package/dist/components/nv-toggle.js +2 -2
  83. package/dist/components/nv-togglebutton.js +2 -2
  84. package/dist/components/nv-togglebutton.js.map +1 -1
  85. package/dist/components/nv-togglebuttongroup.js +1 -1
  86. package/dist/components/nv-tooltip.js +1 -1
  87. package/dist/components/{p-60083982.js → p-00347aae.js} +3 -3
  88. package/dist/components/{p-60083982.js.map → p-00347aae.js.map} +1 -1
  89. package/dist/components/p-0bfe8a47.js +88 -0
  90. package/dist/components/p-0bfe8a47.js.map +1 -0
  91. package/dist/components/p-2062ba39.js +191 -0
  92. package/dist/components/p-2062ba39.js.map +1 -0
  93. package/dist/components/{p-5a5db065.js → p-5c6b5444.js} +10 -4
  94. package/dist/components/p-5c6b5444.js.map +1 -0
  95. package/dist/components/{p-18f50d91.js → p-61382072.js} +2 -2
  96. package/dist/components/{p-18f50d91.js.map → p-61382072.js.map} +1 -1
  97. package/dist/components/{p-81d915ef.js → p-643d7802.js} +2 -2
  98. package/dist/components/{p-81d915ef.js.map → p-643d7802.js.map} +1 -1
  99. package/dist/components/{p-334e19d3.js → p-86588fba.js} +3 -3
  100. package/dist/components/{p-334e19d3.js.map → p-86588fba.js.map} +1 -1
  101. package/dist/components/{p-45a3cf85.js → p-8ce28cff.js} +2 -2
  102. package/dist/components/{p-45a3cf85.js.map → p-8ce28cff.js.map} +1 -1
  103. package/dist/components/{p-2ac6f42d.js → p-c4d20cc9.js} +2 -2
  104. package/dist/components/{p-2ac6f42d.js.map → p-c4d20cc9.js.map} +1 -1
  105. package/dist/components/{p-49205084.js → p-c69f5a37.js} +2 -2
  106. package/dist/components/{p-49205084.js.map → p-c69f5a37.js.map} +1 -1
  107. package/dist/components/{p-b67f31af.js → p-d1d4cc45.js} +3 -3
  108. package/dist/components/{p-b67f31af.js.map → p-d1d4cc45.js.map} +1 -1
  109. package/dist/esm/index-dc2723f3.js +4 -0
  110. package/dist/esm/index.js +1 -2
  111. package/dist/esm/index.js.map +1 -1
  112. package/dist/esm/loader.js +1 -1
  113. package/dist/esm/native.js +1 -1
  114. package/dist/esm/nv-button.entry.js +7 -2
  115. package/dist/esm/nv-button.entry.js.map +1 -1
  116. package/dist/esm/nv-datagrid.entry.js +2 -2
  117. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  118. package/dist/esm/nv-dialog.entry.js +1 -1
  119. package/dist/esm/nv-dialog.entry.js.map +1 -1
  120. package/dist/esm/nv-icon.entry.js +1 -1
  121. package/dist/esm/nv-icon.entry.js.map +1 -1
  122. package/dist/esm/nv-iconbutton_2.entry.js +6 -1
  123. package/dist/esm/nv-iconbutton_2.entry.js.map +1 -1
  124. package/dist/esm/nv-tableheader.entry.js +73 -0
  125. package/dist/esm/nv-tableheader.entry.js.map +1 -0
  126. package/dist/esm/nv-toggle.entry.js +2 -2
  127. package/dist/esm/nv-togglebutton.entry.js +2 -2
  128. package/dist/esm/nv-togglebutton.entry.js.map +1 -1
  129. package/dist/esm/nv-togglebuttongroup.entry.js +1 -1
  130. package/dist/esm/nv-tooltip.entry.js +1 -1
  131. package/dist/native/index.esm.js +1 -1
  132. package/dist/native/index.esm.js.map +1 -1
  133. package/dist/native/native.css +1 -1
  134. package/dist/native/native.esm.js +1 -1
  135. package/dist/native/native.esm.js.map +1 -1
  136. package/dist/native/p-2b4cf4b8.entry.js +2 -0
  137. package/dist/native/{p-dfb6b65e.entry.js.map → p-2b4cf4b8.entry.js.map} +1 -1
  138. package/dist/native/{p-8e423742.entry.js → p-44ba73dc.entry.js} +2 -2
  139. package/dist/native/{p-8e423742.entry.js.map → p-44ba73dc.entry.js.map} +1 -1
  140. package/dist/native/{p-075d231e.entry.js → p-4de8697c.entry.js} +2 -2
  141. package/dist/native/{p-44a78545.entry.js → p-533e2530.entry.js} +2 -2
  142. package/dist/native/p-56ed7306.entry.js +2 -0
  143. package/dist/native/p-56ed7306.entry.js.map +1 -0
  144. package/dist/native/p-973f5db2.entry.js +2 -0
  145. package/dist/native/p-973f5db2.entry.js.map +1 -0
  146. package/dist/native/p-ae5be175.entry.js +2 -0
  147. package/dist/native/p-ae5be175.entry.js.map +1 -0
  148. package/dist/native/p-b43d6629.entry.js +2 -0
  149. package/dist/native/p-b43d6629.entry.js.map +1 -0
  150. package/dist/native/{p-122c78c3.entry.js → p-be49d837.entry.js} +2 -2
  151. package/dist/native/{p-122c78c3.entry.js.map → p-be49d837.entry.js.map} +1 -1
  152. package/dist/native/{p-445221dc.entry.js → p-c4baad6e.entry.js} +2 -2
  153. package/dist/types/components/nv-button/nv-button.d.ts +5 -0
  154. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +2 -0
  155. package/dist/types/components/nv-icon/nv-icons.d.ts +1 -1
  156. package/dist/types/components/nv-iconbutton/nv-iconbutton.d.ts +5 -0
  157. package/dist/types/components/nv-tableheader/nv-tableheader.d.ts +32 -0
  158. package/dist/types/components/nv-tableheader/nv-tableheader.docs.d.ts +4 -0
  159. package/dist/types/components.d.ts +92 -0
  160. package/dist/vscode-data.json +39 -6
  161. package/hydrate/index.js +114 -17
  162. package/hydrate/index.mjs +114 -17
  163. package/package.json +5 -1
  164. package/dist/components/p-5a5db065.js.map +0 -1
  165. package/dist/components/p-946a047c.js +0 -88
  166. package/dist/components/p-946a047c.js.map +0 -1
  167. package/dist/components/p-e1b2eba2.js +0 -185
  168. package/dist/components/p-e1b2eba2.js.map +0 -1
  169. package/dist/native/p-a6fc987a.entry.js +0 -2
  170. package/dist/native/p-a6fc987a.entry.js.map +0 -1
  171. package/dist/native/p-d62869ff.entry.js +0 -2
  172. package/dist/native/p-d62869ff.entry.js.map +0 -1
  173. package/dist/native/p-d8f3cf92.entry.js +0 -2
  174. package/dist/native/p-d8f3cf92.entry.js.map +0 -1
  175. package/dist/native/p-dfb6b65e.entry.js +0 -2
  176. /package/dist/native/{p-075d231e.entry.js.map → p-4de8697c.entry.js.map} +0 -0
  177. /package/dist/native/{p-44a78545.entry.js.map → p-533e2530.entry.js.map} +0 -0
  178. /package/dist/native/{p-445221dc.entry.js.map → p-c4baad6e.entry.js.map} +0 -0
@@ -0,0 +1,112 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-5829b9f7.js';
2
+ import { d as defineCustomElement$4 } from './p-0bfe8a47.js';
3
+ import { d as defineCustomElement$3 } from './p-5c6b5444.js';
4
+ import { d as defineCustomElement$2 } from './p-222136c2.js';
5
+
6
+ const nvTableheaderCss = "nv-tableheader{display:inline-flex;width:100%;align-items:center;gap:var(--spacing-2)}nv-tableheader:focus-visible{border-radius:var(--radius-rounded-sm)}nv-tableheader:focus-visible:focus,nv-tableheader:focus-visible:focus-within{outline:none}nv-tableheader:focus-visible:focus-visible,nv-tableheader:focus-visible:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-tableheader nv-iconbutton{transition:transform 120ms ease, opacity 120ms ease}nv-tableheader nv-iconbutton svg{transition:transform 240ms ease}nv-tableheader nv-iconbutton.is-none{opacity:0.5}nv-tableheader nv-iconbutton.is-desc svg{transform:rotate(180deg)}";
7
+ const NvTableheaderStyle0 = nvTableheaderCss;
8
+
9
+ const NvTableheader$1 = /*@__PURE__*/ proxyCustomElement(class NvTableheader extends H {
10
+ constructor() {
11
+ super();
12
+ this.__registerHost();
13
+ this.sortDirectionChanged = createEvent(this, "sortDirectionChanged", 7);
14
+ /****************************************************************************/
15
+ //#region PROPERTIES
16
+ /**
17
+ * Will render the header as sortable with the corresponding icon button.
18
+ * Allows the header to be tabbed, and trigger sorting via click or keyboard
19
+ * navigation
20
+ */
21
+ this.sortable = false;
22
+ /**
23
+ * The current sort direction of the header. Will be 'none' if the header is
24
+ * not sortable or if the sort direction is not set.
25
+ */
26
+ this.sortDirection = 'none';
27
+ }
28
+ //#endregion PROPERTIES
29
+ /****************************************************************************/
30
+ //#region METHODS
31
+ cycleSortDirection(e) {
32
+ if (!this.sortable)
33
+ return;
34
+ e === null || e === void 0 ? void 0 : e.preventDefault();
35
+ const next = {
36
+ none: 'asc',
37
+ asc: 'desc',
38
+ desc: 'none',
39
+ };
40
+ this.sortDirection = next[this.sortDirection];
41
+ this.sortDirectionChanged.emit(this.sortDirection);
42
+ }
43
+ handleKeyDown(event) {
44
+ if (!this.sortable)
45
+ return;
46
+ if (event.key === 'Enter' || event.key === ' ') {
47
+ event.preventDefault();
48
+ this.cycleSortDirection();
49
+ }
50
+ }
51
+ get ariaSort() {
52
+ const sortMap = {
53
+ none: 'none',
54
+ asc: 'ascending',
55
+ desc: 'descending',
56
+ };
57
+ if (!this.sortable)
58
+ return sortMap.none;
59
+ return sortMap[this.sortDirection];
60
+ }
61
+ //#endregion EVENTS
62
+ /****************************************************************************/
63
+ //#region RENDER
64
+ render() {
65
+ return (h(Host, { key: 'ff2fc290253d468d2d139afdc708b012258b3f31', role: "columnheader", "aria-sort": this.ariaSort, tabindex: this.sortable ? 0 : undefined, onKeyDown: this.handleKeyDown.bind(this), onClick: this.cycleSortDirection.bind(this) }, h("slot", { key: '3c70c590cc33ca2d722dbc3313c9e10583bfa631' }), this.sortable && (h("span", { key: '219a872d53157545302495cec6844d55b5026e00', class: "sort-icon-wrap", "aria-hidden": "true" }, h("nv-iconbutton", { key: 'd39698493a8504bb7e2af6fa52ac4c548b91bf40', disableTabindex: true, name: "arrow-up", size: "xs", emphasis: this.sortDirection === 'none' ? 'lower' : 'low',
66
+ // prevent mousedown from selecting text
67
+ onMouseDown: (e) => e.preventDefault(), class: {
68
+ 'is-none': this.sortDirection === 'none',
69
+ 'is-desc': this.sortDirection === 'desc',
70
+ } })))));
71
+ }
72
+ static get style() { return NvTableheaderStyle0; }
73
+ }, [4, "nv-tableheader", {
74
+ "sortable": [516],
75
+ "sortDirection": [1537, "sort-direction"]
76
+ }]);
77
+ function defineCustomElement$1() {
78
+ if (typeof customElements === "undefined") {
79
+ return;
80
+ }
81
+ const components = ["nv-tableheader", "nv-icon", "nv-iconbutton", "nv-loader"];
82
+ components.forEach(tagName => { switch (tagName) {
83
+ case "nv-tableheader":
84
+ if (!customElements.get(tagName)) {
85
+ customElements.define(tagName, NvTableheader$1);
86
+ }
87
+ break;
88
+ case "nv-icon":
89
+ if (!customElements.get(tagName)) {
90
+ defineCustomElement$4();
91
+ }
92
+ break;
93
+ case "nv-iconbutton":
94
+ if (!customElements.get(tagName)) {
95
+ defineCustomElement$3();
96
+ }
97
+ break;
98
+ case "nv-loader":
99
+ if (!customElements.get(tagName)) {
100
+ defineCustomElement$2();
101
+ }
102
+ break;
103
+ } });
104
+ }
105
+ defineCustomElement$1();
106
+
107
+ const NvTableheader = NvTableheader$1;
108
+ const defineCustomElement = defineCustomElement$1;
109
+
110
+ export { NvTableheader, defineCustomElement };
111
+
112
+ //# sourceMappingURL=nv-tableheader.js.map
@@ -0,0 +1 @@
1
+ {"file":"nv-tableheader.js","mappings":";;;;;AAAA,MAAM,gBAAgB,GAAG,ytBAAytB,CAAC;AACnvB,4BAAe,gBAAgB;;MCSlBA,eAAa;IAL1B;;;;;;;;;;;QAeW,aAAQ,GAAY,KAAK,CAAC;;;;;QAOnC,kBAAa,GAA4B,MAAM,CAAC;KA2FjD;;;;IArFS,kBAAkB,CAAC,CAAS;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,cAAc,EAAE,CAAC;QAEpB,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,MAAM;SACJ,CAAC;QAEX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACpD;IAEO,aAAa,CAAC,KAAoB;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;KACF;IAED,IAAI,QAAQ;QACV,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,WAAW;YAChB,IAAI,EAAE,YAAY;SACV,CAAC;QAEX,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACpC;;;;IAuBD,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,IAAI,EAAC,cAAc,eACR,IAAI,CAAC,QAAQ,EACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,EACvC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACxC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAE3C,8DAAa,EAEZ,IAAI,CAAC,QAAQ,KACZ,6DAAM,KAAK,EAAC,gBAAgB,iBAAa,MAAM,IAC7C,sEACE,eAAe,QACf,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,IAAI,CAAC,aAAa,KAAK,MAAM,GAAG,OAAO,GAAG,KAAK;;YAEzD,WAAW,EAAE,CAAC,CAAa,KAAK,CAAC,CAAC,cAAc,EAAE,EAClD,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,aAAa,KAAK,MAAM;gBACxC,SAAS,EAAE,IAAI,CAAC,aAAa,KAAK,MAAM;aACzC,GACD,CACG,CACR,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["NvTableheader"],"sources":["src/components/nv-tableheader/nv-tableheader.scss?tag=nv-tableheader","src/components/nv-tableheader/nv-tableheader.tsx"],"sourcesContent":["// include focus ring\n@import \"../../styles/focus-ring\";\n\n@mixin root-styles() {\n display: inline-flex;\n width: 100%;\n align-items: center;\n gap: var(--spacing-2);\n}\n\n@mixin focus-styles() {\n @include focus-ring();\n border-radius: var(--radius-rounded-sm);\n}\n\n@mixin nv-icon-styles() {\n transition: transform 120ms ease, opacity 120ms ease;\n svg {\n transition: transform 240ms ease;\n }\n &.is-none { opacity: .5; }\n &.is-desc {\n svg {\n transform: rotate(180deg);\n }\n }\n}\n\nnv-tableheader {\n @include root-styles();\n\n &:focus-visible {\n @include focus-styles();\n }\n\n nv-iconbutton {\n @include nv-icon-styles();\n }\n}","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n/**\n * @slot default - Child content of the component.\n */\n@Component({\n tag: 'nv-tableheader',\n styleUrl: 'nv-tableheader.scss',\n shadow: false,\n})\nexport class NvTableheader {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Will render the header as sortable with the corresponding icon button.\n * Allows the header to be tabbed, and trigger sorting via click or keyboard\n * navigation\n */\n @Prop({ reflect: true })\n readonly sortable: boolean = false;\n\n /**\n * The current sort direction of the header. Will be 'none' if the header is\n * not sortable or if the sort direction is not set.\n */\n @Prop({ reflect: true, mutable: true })\n sortDirection: 'none' | 'asc' | 'desc' = 'none';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n private cycleSortDirection(e?: Event) {\n if (!this.sortable) return;\n e?.preventDefault();\n\n const next = {\n none: 'asc',\n asc: 'desc',\n desc: 'none',\n } as const;\n\n this.sortDirection = next[this.sortDirection];\n this.sortDirectionChanged.emit(this.sortDirection);\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!this.sortable) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.cycleSortDirection();\n }\n }\n\n get ariaSort() {\n const sortMap = {\n none: 'none',\n asc: 'ascending',\n desc: 'descending',\n } as const;\n\n if (!this.sortable) return sortMap.none;\n return sortMap[this.sortDirection];\n }\n\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Event emitted when the sort direction changes. Payload is the new sort\n * direction.\n */\n @Event()\n sortDirectionChanged: EventEmitter<string>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host\n role=\"columnheader\"\n aria-sort={this.ariaSort}\n tabindex={this.sortable ? 0 : undefined}\n onKeyDown={this.handleKeyDown.bind(this)}\n onClick={this.cycleSortDirection.bind(this)}\n >\n <slot></slot>\n\n {this.sortable && (\n <span class=\"sort-icon-wrap\" aria-hidden=\"true\">\n <nv-iconbutton\n disableTabindex\n name=\"arrow-up\"\n size=\"xs\"\n emphasis={this.sortDirection === 'none' ? 'lower' : 'low'}\n // prevent mousedown from selecting text\n onMouseDown={(e: MouseEvent) => e.preventDefault()}\n class={{\n 'is-none': this.sortDirection === 'none',\n 'is-desc': this.sortDirection === 'desc',\n }}\n />\n </span>\n )}\n </Host>\n );\n }\n // #endregion RENDER\n}\n"],"version":3}
@@ -63,8 +63,8 @@ const NvToggle$1 = /*@__PURE__*/ proxyCustomElement(class NvToggle extends H {
63
63
  /****************************************************************************/
64
64
  //#region RENDER
65
65
  render() {
66
- return (h(Host, { key: '65222149af4edb9f8fd2da7efe9a01e15dec4722', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: '7edd5587281b5610269f1ac09826ce379abfae24', class: "input-container" }, h("input", { key: '30d3db3cbdc263259a5ba1bf8e637225c4db3b4a', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: 'a8a6d3c2774560b7d43cda75882d90cc564f4c54', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: 'fe980a07df4901081fda42df758236da0b8a11d0', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: '723cec5914c6c0bed7e14e61e2f64e83c8e8b7b8', name: "label" }, this.label))), (this.description ||
67
- this.el.querySelector('[slot="description"]')) && (h("div", { key: 'f811065ed06f0816d8f0f1f65d4c659cbde3f683', class: "description" }, h("slot", { key: '541946e3f33a315bf667999c30a44fd93fc5f07f', name: "description" }, this.description))))));
66
+ return (h(Host, { key: '8e5b801ed4263b02b9b00628e94de448986eca98', class: clsx(this.labelPlacement === 'before' && 'label-placement-before') }, h("div", { key: 'b25ed406fae37d41f1c1fbe4234ded3f94db14b0', class: "input-container" }, h("input", { key: '5a98b81705597f2a115517b6031289ee9be54bda', type: "checkbox", id: this.inputId, name: this.name, autocomplete: "off", value: this.value, checked: Boolean(this.checked), disabled: this.disabled || this.readonly, readonly: this.readonly })), h("div", { key: '89366dfe5c0106d7e28a858745941f0358220ce7', class: "text-container" }, (this.label || this.el.querySelector('[slot="label"]')) && (h("label", { key: '3f0192378adbd8d5d5f5f5684d1e929462d7832b', htmlFor: this.inputId, class: clsx(this.hideLabel && 'visually-hidden') }, h("slot", { key: 'ee95958740e62af025bc4a456fe1b9f12b9aac71', name: "label" }, this.label))), (this.description ||
67
+ this.el.querySelector('[slot="description"]')) && (h("div", { key: 'eee5a91ccbe1eed1d2ce41c0ce08cf8b49440501', class: "description" }, h("slot", { key: 'a925c57db61229d032412e315ff1f738a479b090', name: "description" }, this.description))))));
68
68
  }
69
69
  static get formAssociated() { return true; }
70
70
  get el() { return this; }
@@ -1,6 +1,6 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-5829b9f7.js';
2
2
 
3
- const nvTogglebuttonCss = "nv-togglebutton{display:inline-flex;justify-content:center;align-items:center}nv-togglebutton:focus-visible,nv-togglebutton:has(:focus-visible){z-index:1}nv-togglebutton[size=xs]{padding:var(--button-xs-padding-y) var(--button-xs-padding-x);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);font-size:var(--button-xs-font-size);padding-top:calc(var(--togglegroup-xs-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-xs-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-xs-button-radius));border-width:0}nv-togglebutton[size=xs] nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-togglebutton[size=sm]{padding:var(--button-sm-padding-y) var(--button-sm-padding-x);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);font-size:var(--button-sm-font-size);padding-top:calc(var(--togglegroup-sm-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-sm-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-sm-button-radius));border-width:0}nv-togglebutton[size=sm] nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-togglebutton[size=md]{padding:var(--button-md-padding-y) var(--button-md-padding-x);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);font-size:var(--button-md-font-size);padding-top:calc(var(--togglegroup-md-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-md-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-md-button-radius));border-width:0}nv-togglebutton[size=md] nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-togglebutton[size=lg]{padding:var(--button-lg-padding-y) var(--button-lg-padding-x);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);font-size:var(--button-lg-font-size);padding-top:calc(var(--togglegroup-lg-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-lg-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-lg-button-radius));border-width:0}nv-togglebutton[size=lg] nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-togglebutton[emphasis=high]{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-togglebutton[emphasis=high]:hover{background:var(--components-button-low-background-hover);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text-hover)}nv-togglebutton[emphasis=high]:active{background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-togglebutton[emphasis=high]:focus,nv-togglebutton[emphasis=high]:focus-within{outline:none}nv-togglebutton[emphasis=high]:focus-visible,nv-togglebutton[emphasis=high]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-togglebutton[emphasis=high]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=high][active]:not([active=false]){background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-togglebutton[emphasis=low]{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-togglebutton[emphasis=low]:hover{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-active);border:1px solid var(--components-button-lower-border-active);color:var(--components-button-lower-text-active)}nv-togglebutton[emphasis=low]:focus,nv-togglebutton[emphasis=low]:focus-within{outline:none}nv-togglebutton[emphasis=low]:focus-visible,nv-togglebutton[emphasis=low]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-togglebutton[emphasis=low]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=low][active]:not([active=false]),nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}";
3
+ const nvTogglebuttonCss = "nv-togglebutton{display:inline-flex;justify-content:center;align-items:center}nv-togglebutton:focus-visible,nv-togglebutton:has(:focus-visible){z-index:1}nv-togglebutton[size=xs]{padding:var(--button-xs-padding-y) var(--button-xs-padding-x);gap:var(--button-xs-gap);border-radius:var(--button-xs-border-radius);line-height:var(--button-xs-line-height);height:var(--button-xs-height);font-size:var(--button-xs-font-size);padding-top:calc(var(--togglegroup-xs-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-xs-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-xs-button-radius));border-width:0}nv-togglebutton[size=xs] nv-icon>svg{width:var(--spacing-3);height:var(--spacing-3);stroke-width:1.2px}nv-togglebutton[size=sm]{padding:var(--button-sm-padding-y) var(--button-sm-padding-x);gap:var(--button-sm-gap);border-radius:var(--button-sm-border-radius);line-height:var(--button-sm-line-height);height:var(--button-sm-height);font-size:var(--button-sm-font-size);padding-top:calc(var(--togglegroup-sm-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-sm-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-sm-button-radius));border-width:0}nv-togglebutton[size=sm] nv-icon>svg{width:var(--spacing-4);height:var(--spacing-4);stroke-width:1.5px}nv-togglebutton[size=md]{padding:var(--button-md-padding-y) var(--button-md-padding-x);gap:var(--button-md-gap);border-radius:var(--button-md-border-radius);line-height:var(--button-md-line-height);height:var(--button-md-height);font-size:var(--button-md-font-size);padding-top:calc(var(--togglegroup-md-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-md-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-md-button-radius));border-width:0}nv-togglebutton[size=md] nv-icon>svg{width:var(--spacing-5);height:var(--spacing-5);stroke-width:1.6px}nv-togglebutton[size=lg]{padding:var(--button-lg-padding-y) var(--button-lg-padding-x);gap:var(--button-lg-gap);border-radius:var(--button-lg-border-radius);line-height:var(--button-lg-line-height);height:var(--button-lg-height);font-size:var(--button-lg-font-size);padding-top:calc(var(--togglegroup-lg-button-padding-y) - 1px);padding-bottom:calc(var(--togglegroup-lg-button-padding-y) - 1px);border-radius:calc(var(--togglegroup-lg-button-radius));border-width:0}nv-togglebutton[size=lg] nv-icon>svg{width:var(--spacing-6);height:var(--spacing-6);stroke-width:1.8px}nv-togglebutton[emphasis=high]{background:var(--components-button-low-background);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text)}nv-togglebutton[emphasis=high]:hover{background:var(--components-button-low-background-hover);border:1px solid var(--components-button-low-border);color:var(--components-button-low-text-hover)}nv-togglebutton[emphasis=high]:active{background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-togglebutton[emphasis=high]:focus,nv-togglebutton[emphasis=high]:focus-within{outline:none}nv-togglebutton[emphasis=high]:focus-visible,nv-togglebutton[emphasis=high]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-togglebutton[emphasis=high]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=high][active]:not([active=false]){background:var(--components-button-low-background-active);border:1px solid var(--components-button-low-border-active);color:var(--components-button-low-text-active)}nv-togglebutton[emphasis=low]{background:var(--components-button-lower-background);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text)}nv-togglebutton[emphasis=low]:hover{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-active);border:1px solid var(--components-button-lower-border-active);color:var(--components-button-lower-text-active)}nv-togglebutton[emphasis=low]:focus,nv-togglebutton[emphasis=low]:focus-within{outline:none}nv-togglebutton[emphasis=low]:focus-visible,nv-togglebutton[emphasis=low]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-togglebutton[emphasis=low]:disabled:not([disabled=false]){opacity:0.5;cursor:not-allowed;box-shadow:none}nv-togglebutton[emphasis=low][active]:not([active=false]),nv-togglebutton[emphasis=low]:active{background:var(--components-button-lower-background-hover);border:1px solid var(--components-button-lower-border);color:var(--components-button-lower-text-hover)}";
4
4
  const NvTogglebuttonStyle0 = nvTogglebuttonCss;
5
5
 
6
6
  const NvTogglebutton$1 = /*@__PURE__*/ proxyCustomElement(class NvTogglebutton extends H {
@@ -45,7 +45,7 @@ const NvTogglebutton$1 = /*@__PURE__*/ proxyCustomElement(class NvTogglebutton e
45
45
  /****************************************************************************/
46
46
  //#region RENDER
47
47
  render() {
48
- return (h(Host, { key: 'c4b698b1fb80f0dcca5d7a77bc20d22db1cbf538', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, h("slot", { key: '605385f07f32b989685983cfd1a082525741fba4' })));
48
+ return (h(Host, { key: 'a36d2ac3ed287145dae1812e8488313e7509b979', role: "button", tabindex: "0", "aria-pressed": String(this.active), onClick: this.handleClick }, h("slot", { key: '463f95e6e68148d94047e8b71c99c449dccffbd6' })));
49
49
  }
50
50
  static get style() { return NvTogglebuttonStyle0; }
51
51
  }, [4, "nv-togglebutton", {
@@ -1 +1 @@
1
- {"file":"nv-togglebutton.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,+rJAA+rJ,CAAC;AAC1tJ,6BAAe,iBAAiB;;MCUnBA,gBAAc;IAL3B;;;;;;;;;;;QAeW,SAAI,GAA0B,IAAI,CAAC;;;;QAanC,aAAQ,GAAY,KAAK,CAAC;;;;;QAO1B,WAAM,GAAY,KAAK,CAAC;;;;QAMxB,aAAQ,GAA8B,MAAM,CAAC;;;;QAM9C,gBAAW,GAAG;YACpB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;SACJ,CAAC;KAiCH;;;;IAbC,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAC,GAAG,kBACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EACjC,OAAO,EAAE,IAAI,CAAC,WAAW,IAEzB,8DAAa,CACR,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["NvTogglebutton"],"sources":["src/components/nv-togglebutton/styles/nv-togglebutton.scss?tag=nv-togglebutton","src/components/nv-togglebutton/nv-togglebutton.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-togglebutton {\n @include root-styles();\n\n @each $size in $sizes {\n &[size=\"#{$size}\"] {\n @include button-size-styles($size);\n @include togglegroup-button-size-styles($size);\n }\n }\n\n &[emphasis=\"high\"] {\n @include button-emphasis-styles('low');\n &[active]:not([active=\"false\"]) {\n @include button-active-styles('low');\n }\n }\n &[emphasis=\"low\"] {\n @include button-emphasis-styles('lower');\n &[active]:not([active=\"false\"]), &:active {\n @include button-hover-styles('lower');\n }\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { ToggleButtonEmphasis, ToggleButtonSize } from '../../utils/constants';\n\n/**\n * @slot default - Child content of the toggle button.\n */\n@Component({\n tag: 'nv-togglebutton',\n styleUrl: 'styles/nv-togglebutton.scss',\n shadow: false,\n})\nexport class NvTogglebutton {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Determines how large or small the togglebutton appears, allowing for\n * customization of the togglebutton's dimensions to fit different design\n * specifications and user needs.\n */\n @Prop({ reflect: true })\n readonly size: `${ToggleButtonSize}` = 'md';\n\n /**\n * The value to associated with the button when selected in a\n * Togglebuttongroup.\n */\n @Prop({ reflect: true })\n readonly value: string;\n\n /**\n * Prevents all interaction, rendering the toggle in a non-interactive state.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Whether the button is active or not. Will not toggle automatically but\n * needs to be controlled externally.\n */\n @Prop({ reflect: true })\n readonly active: boolean = false;\n\n /**\n * Make it more or less visually prominent to users.\n */\n @Prop({ reflect: true })\n readonly emphasis: `${ToggleButtonEmphasis}` = 'high';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n private handleClick = () => {\n if (this.disabled) return;\n\n this.toggled.emit({\n value: this.value,\n active: this.active,\n });\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the button is toggled.\n */\n @Event({ eventName: 'toggled' })\n toggled: EventEmitter<{\n /** The value associated with the button. */\n value: string;\n /** If the button is active when clicked. */\n active: boolean;\n }>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host\n role=\"button\"\n tabindex=\"0\"\n aria-pressed={String(this.active)}\n onClick={this.handleClick}\n >\n <slot></slot>\n </Host>\n );\n }\n // #endregion RENDER\n}\n"],"version":3}
1
+ {"file":"nv-togglebutton.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,2zJAA2zJ,CAAC;AACt1J,6BAAe,iBAAiB;;MCUnBA,gBAAc;IAL3B;;;;;;;;;;;QAeW,SAAI,GAA0B,IAAI,CAAC;;;;QAanC,aAAQ,GAAY,KAAK,CAAC;;;;;QAO1B,WAAM,GAAY,KAAK,CAAC;;;;QAMxB,aAAQ,GAA8B,MAAM,CAAC;;;;QAM9C,gBAAW,GAAG;YACpB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;SACJ,CAAC;KAiCH;;;;IAbC,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAC,GAAG,kBACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EACjC,OAAO,EAAE,IAAI,CAAC,WAAW,IAEzB,8DAAa,CACR,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["NvTogglebutton"],"sources":["src/components/nv-togglebutton/styles/nv-togglebutton.scss?tag=nv-togglebutton","src/components/nv-togglebutton/nv-togglebutton.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-togglebutton {\n @include root-styles();\n\n @each $size in $sizes {\n &[size=\"#{$size}\"] {\n @include button-size-styles($size);\n @include togglegroup-button-size-styles($size);\n }\n }\n\n &[emphasis=\"high\"] {\n @include button-emphasis-styles('low');\n &[active]:not([active=\"false\"]) {\n @include button-active-styles('low');\n }\n }\n &[emphasis=\"low\"] {\n @include button-emphasis-styles('lower');\n &[active]:not([active=\"false\"]), &:active {\n @include button-hover-styles('lower');\n }\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { ToggleButtonEmphasis, ToggleButtonSize } from '../../utils/constants';\n\n/**\n * @slot default - Child content of the toggle button.\n */\n@Component({\n tag: 'nv-togglebutton',\n styleUrl: 'styles/nv-togglebutton.scss',\n shadow: false,\n})\nexport class NvTogglebutton {\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Determines how large or small the togglebutton appears, allowing for\n * customization of the togglebutton's dimensions to fit different design\n * specifications and user needs.\n */\n @Prop({ reflect: true })\n readonly size: `${ToggleButtonSize}` = 'md';\n\n /**\n * The value to associated with the button when selected in a\n * Togglebuttongroup.\n */\n @Prop({ reflect: true })\n readonly value: string;\n\n /**\n * Prevents all interaction, rendering the toggle in a non-interactive state.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Whether the button is active or not. Will not toggle automatically but\n * needs to be controlled externally.\n */\n @Prop({ reflect: true })\n readonly active: boolean = false;\n\n /**\n * Make it more or less visually prominent to users.\n */\n @Prop({ reflect: true })\n readonly emphasis: `${ToggleButtonEmphasis}` = 'high';\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n\n private handleClick = () => {\n if (this.disabled) return;\n\n this.toggled.emit({\n value: this.value,\n active: this.active,\n });\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the button is toggled.\n */\n @Event({ eventName: 'toggled' })\n toggled: EventEmitter<{\n /** The value associated with the button. */\n value: string;\n /** If the button is active when clicked. */\n active: boolean;\n }>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host\n role=\"button\"\n tabindex=\"0\"\n aria-pressed={String(this.active)}\n onClick={this.handleClick}\n >\n <slot></slot>\n </Host>\n );\n }\n // #endregion RENDER\n}\n"],"version":3}
@@ -153,7 +153,7 @@ const NvTogglebuttongroup$1 = /*@__PURE__*/ proxyCustomElement(class NvTogglebut
153
153
  /****************************************************************************/
154
154
  //#region RENDER
155
155
  render() {
156
- return (h(Host, { key: 'ab91ff1817e3388508ed1da7a9ed57a79cf8c4bc' }, h("slot", { key: '4a3280db78c1f0cd120a0cb32d95eabaf69995a6' })));
156
+ return (h(Host, { key: '02b7814ffceeaa875edcbce4ebdd6465b24abf62' }, h("slot", { key: '89c9387a50ec0c1c660e490b66742be96e6f6b3e' })));
157
157
  }
158
158
  get el() { return this; }
159
159
  static get watchers() { return {
@@ -1,4 +1,4 @@
1
- import { N as NvTooltip$1, d as defineCustomElement$1 } from './p-81d915ef.js';
1
+ import { N as NvTooltip$1, d as defineCustomElement$1 } from './p-643d7802.js';
2
2
 
3
3
  const NvTooltip = NvTooltip$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment, d as Host } from './p-5829b9f7.js';
2
2
  import { b as ButtonType } from './p-51602221.js';
3
- import { d as defineCustomElement$3 } from './p-e1b2eba2.js';
4
- import { d as defineCustomElement$2 } from './p-946a047c.js';
3
+ import { d as defineCustomElement$3 } from './p-2062ba39.js';
4
+ import { d as defineCustomElement$2 } from './p-0bfe8a47.js';
5
5
  import { d as defineCustomElement$1 } from './p-222136c2.js';
6
6
 
7
7
  const nvDialogfooterCss = "nv-dialogfooter{display:flex;padding:var(--dialog-footer-padding-top) var(--dialog-footer-padding-x) var(--dialog-footer-padding-bottom) var(--dialog-footer-padding-x);justify-content:flex-end;align-items:flex-end;gap:var(--dialog-footer-gap-y);align-self:stretch}";
@@ -135,4 +135,4 @@ defineCustomElement();
135
135
 
136
136
  export { NvDialogfooter as N, defineCustomElement as d };
137
137
 
138
- //# sourceMappingURL=p-60083982.js.map
138
+ //# sourceMappingURL=p-00347aae.js.map
@@ -1 +1 @@
1
- {"file":"p-60083982.js","mappings":";;;;;;AAAA,MAAM,iBAAiB,GAAG,0QAA0Q,CAAC;AACrS,6BAAe,iBAAiB;;MCqBnB,cAAc;IAN3B;;;;;;QASU,YAAO,GAAG,KAAK,CAAC;;;;;;QASf,aAAQ,GAAY,KAAK,CAAC;;;;;QAO1B,kBAAa,GAAY,KAAK,CAAC;;;;QAM/B,gBAAW,GAAW,EAAE,CAAC;;;;QAMzB,iBAAY,GAAW,EAAE,CAAC;;;;QAM1B,WAAM,GAAY,KAAK,CAAC;;;;QAMxB,gBAAW,GAAW,QAAQ,CAAC;;;;QAM/B,iBAAY,GAAW,SAAS,CAAC;;;;;;;;QA0ClC,kBAAa,GAAG,CAAC,KAAY;YACnC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;SAClC,CAAC;;;;;QAMM,iBAAY,GAAG,CAAC,KAAY;YAClC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC5B,CAAC;KAwEH;;;;IAlEC,iBAAiB;;QAEf,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI;YACrD,QACE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;gBACnC,CAAE,IAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,EACvC;SACH,CAAC,CAAC;KACJ;IAED,gBAAgB;;QAEd,IAAI,CAAC,iBAAiB;YACpB,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI;kBAC/B,UAAU,CAAC,MAAM;kBACjB,UAAU,CAAC,MAAM,CAAC;KACzB;;;;IAMD,MAAM;QACJ,QACE,EAAC,IAAI,uDACF,CAAC,IAAI,CAAC,OAAO,IACZ,EAAC,QAAQ,QACN,CAAC,IAAI,CAAC,aAAa,KAClB,iBAAW,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,IAC5D,IAAI,CAAC,WAAW,CACP,CACb,EACD,iBACE,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAC,IAAI,EACT,QAAQ,EAAC,MAAM,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,iBAAiB,IAE3B,IAAI,CAAC,WAAW,KACf,eACE,IAAI,EAAC,cAAc,EACnB,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,IAAI,EAAC,IAAI,GACT,CACH,EACA,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,KAChB,eACE,IAAI,EAAC,eAAe,EACpB,IAAI,EAAE,IAAI,CAAC,YAAY,EACvB,IAAI,EAAC,IAAI,GACT,CACH,CACS,CACH,KAEX,eAAa,CACd,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/nv-dialogfooter/nv-dialogfooter.scss?tag=nv-dialogfooter","src/components/nv-dialogfooter/nv-dialogfooter.tsx"],"sourcesContent":["nv-dialogfooter {\n display: flex;\n padding: var(--dialog-footer-padding-top) var(--dialog-footer-padding-x)\n var(--dialog-footer-padding-bottom) var(--dialog-footer-padding-x);\n\n justify-content: flex-end;\n align-items: flex-end;\n gap: var(--dialog-footer-gap-y);\n align-self: stretch;\n}\n","import {\n AttachInternals,\n Component,\n h,\n Host,\n Prop,\n Event,\n EventEmitter,\n Fragment,\n Element,\n} from '@stencil/core';\nimport { ButtonType } from '../../utils/constants';\n\n/**\n * @slot default - Custom content for the dialog footer. When provided, the default buttons will not be rendered.\n */\n@Component({\n tag: 'nv-dialogfooter',\n styleUrl: 'nv-dialogfooter.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvDialogfooter {\n @AttachInternals() internals: ElementInternals;\n @Element() el: HTMLNvDialogfooterElement;\n private hasSlot = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Disables the primary button, preventing user interaction.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Controls the visibility of the cancel button. When true, the cancel button is\n * hidden.\n */\n @Prop({ reflect: true })\n readonly undismissable: boolean = false;\n\n /**\n * Sets the leading icon for the primary button.\n */\n @Prop({ reflect: true })\n readonly leadingIcon: string = '';\n\n /**\n * Sets the trailing icon for the primary button.\n */\n @Prop({ reflect: true })\n readonly trailingIcon: string = '';\n\n /**\n * Sets the danger state for the primary button.\n */\n @Prop({ reflect: true })\n readonly danger: boolean = false;\n\n /**\n * Sets the label for the cancel button.\n */\n @Prop({ reflect: true })\n readonly cancelLabel: string = 'Cancel';\n\n /**\n * Sets the label for the primary button.\n */\n @Prop({ reflect: true })\n readonly primaryLabel: string = 'Primary';\n\n /**\n * Sets the type of the primary button. If using a form, this will default to\n * 'submit' if nothing passed.\n */\n @Prop({ reflect: true, mutable: true })\n primaryButtonType: `${ButtonType}`;\n\n /**\n * A form inside the dialog can be submitted through the dialog footer by\n * giving the form an id and passing that id to the form attribute.\n */\n @Prop({ reflect: true })\n readonly form: string;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the cancel button is clicked. This will close the dialog.\n */\n @Event()\n dialogCanceled: EventEmitter<void>;\n\n /**\n * Emitted when the primary button is clicked. This allows to handle the\n * primary action and potential data capture before closing the dialog.\n */\n @Event()\n dialogPrimaryClicked: EventEmitter<void>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Handles the primary action when the primary button is clicked.\n * @param {Event} event - The click event.\n */\n\n private handlePrimary = (event: Event) => {\n event.stopPropagation();\n this.dialogPrimaryClicked.emit();\n };\n\n /**\n * Handles the cancel action when the cancel button is clicked. This will close the dialog.\n * @param {Event} event - The click event.\n */\n private handleCancel = (event: Event) => {\n event.stopPropagation();\n this.dialogCanceled.emit();\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n // Check if there are any child elements that don't have a slot attribute\n this.hasSlot = Array.from(this.el.childNodes).some(node => {\n return (\n node.nodeType === Node.ELEMENT_NODE &&\n !(node as Element).hasAttribute('slot')\n );\n });\n }\n\n componentDidLoad() {\n // Set the default button type based on the form property\n this.primaryButtonType =\n this.primaryButtonType || this.form\n ? ButtonType.Submit\n : ButtonType.Button;\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {!this.hasSlot ? (\n <Fragment>\n {!this.undismissable && (\n <nv-button onClick={this.handleCancel} emphasis=\"low\" size=\"sm\">\n {this.cancelLabel}\n </nv-button>\n )}\n <nv-button\n onClick={this.handlePrimary}\n disabled={this.disabled}\n danger={this.danger}\n size=\"sm\"\n emphasis=\"high\"\n form={this.form}\n type={this.primaryButtonType}\n >\n {this.leadingIcon && (\n <nv-icon\n slot=\"leading-icon\"\n name={this.leadingIcon}\n size=\"sm\"\n />\n )}\n {this.primaryLabel}\n {this.trailingIcon && (\n <nv-icon\n slot=\"trailing-icon\"\n name={this.trailingIcon}\n size=\"sm\"\n />\n )}\n </nv-button>\n </Fragment>\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}
1
+ {"file":"p-00347aae.js","mappings":";;;;;;AAAA,MAAM,iBAAiB,GAAG,0QAA0Q,CAAC;AACrS,6BAAe,iBAAiB;;MCqBnB,cAAc;IAN3B;;;;;;QASU,YAAO,GAAG,KAAK,CAAC;;;;;;QASf,aAAQ,GAAY,KAAK,CAAC;;;;;QAO1B,kBAAa,GAAY,KAAK,CAAC;;;;QAM/B,gBAAW,GAAW,EAAE,CAAC;;;;QAMzB,iBAAY,GAAW,EAAE,CAAC;;;;QAM1B,WAAM,GAAY,KAAK,CAAC;;;;QAMxB,gBAAW,GAAW,QAAQ,CAAC;;;;QAM/B,iBAAY,GAAW,SAAS,CAAC;;;;;;;;QA0ClC,kBAAa,GAAG,CAAC,KAAY;YACnC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;SAClC,CAAC;;;;;QAMM,iBAAY,GAAG,CAAC,KAAY;YAClC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC5B,CAAC;KAwEH;;;;IAlEC,iBAAiB;;QAEf,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI;YACrD,QACE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;gBACnC,CAAE,IAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,EACvC;SACH,CAAC,CAAC;KACJ;IAED,gBAAgB;;QAEd,IAAI,CAAC,iBAAiB;YACpB,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI;kBAC/B,UAAU,CAAC,MAAM;kBACjB,UAAU,CAAC,MAAM,CAAC;KACzB;;;;IAMD,MAAM;QACJ,QACE,EAAC,IAAI,uDACF,CAAC,IAAI,CAAC,OAAO,IACZ,EAAC,QAAQ,QACN,CAAC,IAAI,CAAC,aAAa,KAClB,iBAAW,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,IAC5D,IAAI,CAAC,WAAW,CACP,CACb,EACD,iBACE,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAC,IAAI,EACT,QAAQ,EAAC,MAAM,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,iBAAiB,IAE3B,IAAI,CAAC,WAAW,KACf,eACE,IAAI,EAAC,cAAc,EACnB,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,IAAI,EAAC,IAAI,GACT,CACH,EACA,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,KAChB,eACE,IAAI,EAAC,eAAe,EACpB,IAAI,EAAE,IAAI,CAAC,YAAY,EACvB,IAAI,EAAC,IAAI,GACT,CACH,CACS,CACH,KAEX,eAAa,CACd,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/nv-dialogfooter/nv-dialogfooter.scss?tag=nv-dialogfooter","src/components/nv-dialogfooter/nv-dialogfooter.tsx"],"sourcesContent":["nv-dialogfooter {\n display: flex;\n padding: var(--dialog-footer-padding-top) var(--dialog-footer-padding-x)\n var(--dialog-footer-padding-bottom) var(--dialog-footer-padding-x);\n\n justify-content: flex-end;\n align-items: flex-end;\n gap: var(--dialog-footer-gap-y);\n align-self: stretch;\n}\n","import {\n AttachInternals,\n Component,\n h,\n Host,\n Prop,\n Event,\n EventEmitter,\n Fragment,\n Element,\n} from '@stencil/core';\nimport { ButtonType } from '../../utils/constants';\n\n/**\n * @slot default - Custom content for the dialog footer. When provided, the default buttons will not be rendered.\n */\n@Component({\n tag: 'nv-dialogfooter',\n styleUrl: 'nv-dialogfooter.scss',\n shadow: false,\n formAssociated: true,\n})\nexport class NvDialogfooter {\n @AttachInternals() internals: ElementInternals;\n @Element() el: HTMLNvDialogfooterElement;\n private hasSlot = false;\n\n /****************************************************************************/\n //#region PROPERTIES\n\n /**\n * Disables the primary button, preventing user interaction.\n */\n @Prop({ reflect: true })\n readonly disabled: boolean = false;\n\n /**\n * Controls the visibility of the cancel button. When true, the cancel button is\n * hidden.\n */\n @Prop({ reflect: true })\n readonly undismissable: boolean = false;\n\n /**\n * Sets the leading icon for the primary button.\n */\n @Prop({ reflect: true })\n readonly leadingIcon: string = '';\n\n /**\n * Sets the trailing icon for the primary button.\n */\n @Prop({ reflect: true })\n readonly trailingIcon: string = '';\n\n /**\n * Sets the danger state for the primary button.\n */\n @Prop({ reflect: true })\n readonly danger: boolean = false;\n\n /**\n * Sets the label for the cancel button.\n */\n @Prop({ reflect: true })\n readonly cancelLabel: string = 'Cancel';\n\n /**\n * Sets the label for the primary button.\n */\n @Prop({ reflect: true })\n readonly primaryLabel: string = 'Primary';\n\n /**\n * Sets the type of the primary button. If using a form, this will default to\n * 'submit' if nothing passed.\n */\n @Prop({ reflect: true, mutable: true })\n primaryButtonType: `${ButtonType}`;\n\n /**\n * A form inside the dialog can be submitted through the dialog footer by\n * giving the form an id and passing that id to the form attribute.\n */\n @Prop({ reflect: true })\n readonly form: string;\n\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n\n /**\n * Emitted when the cancel button is clicked. This will close the dialog.\n */\n @Event()\n dialogCanceled: EventEmitter<void>;\n\n /**\n * Emitted when the primary button is clicked. This allows to handle the\n * primary action and potential data capture before closing the dialog.\n */\n @Event()\n dialogPrimaryClicked: EventEmitter<void>;\n\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n\n /**\n * Handles the primary action when the primary button is clicked.\n * @param {Event} event - The click event.\n */\n\n private handlePrimary = (event: Event) => {\n event.stopPropagation();\n this.dialogPrimaryClicked.emit();\n };\n\n /**\n * Handles the cancel action when the cancel button is clicked. This will close the dialog.\n * @param {Event} event - The click event.\n */\n private handleCancel = (event: Event) => {\n event.stopPropagation();\n this.dialogCanceled.emit();\n };\n\n //#endregion METHODS\n /****************************************************************************/\n //#region LIFECYCLE\n\n componentWillLoad() {\n // Check if there are any child elements that don't have a slot attribute\n this.hasSlot = Array.from(this.el.childNodes).some(node => {\n return (\n node.nodeType === Node.ELEMENT_NODE &&\n !(node as Element).hasAttribute('slot')\n );\n });\n }\n\n componentDidLoad() {\n // Set the default button type based on the form property\n this.primaryButtonType =\n this.primaryButtonType || this.form\n ? ButtonType.Submit\n : ButtonType.Button;\n }\n\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n\n render() {\n return (\n <Host>\n {!this.hasSlot ? (\n <Fragment>\n {!this.undismissable && (\n <nv-button onClick={this.handleCancel} emphasis=\"low\" size=\"sm\">\n {this.cancelLabel}\n </nv-button>\n )}\n <nv-button\n onClick={this.handlePrimary}\n disabled={this.disabled}\n danger={this.danger}\n size=\"sm\"\n emphasis=\"high\"\n form={this.form}\n type={this.primaryButtonType}\n >\n {this.leadingIcon && (\n <nv-icon\n slot=\"leading-icon\"\n name={this.leadingIcon}\n size=\"sm\"\n />\n )}\n {this.primaryLabel}\n {this.trailingIcon && (\n <nv-icon\n slot=\"trailing-icon\"\n name={this.trailingIcon}\n size=\"sm\"\n />\n )}\n </nv-button>\n </Fragment>\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n\n //#endregion RENDER\n}\n"],"version":3}