@nova-design-system/nova-webcomponents 3.21.1-beta.0 → 3.22.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 (228) hide show
  1. package/dist/cjs/index-93d3b2f8.js +0 -40
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/native.cjs.js +1 -1
  4. package/dist/cjs/nv-split.cjs.entry.js +1 -1
  5. package/dist/cjs/nv-stack.cjs.entry.js +1 -1
  6. package/dist/cjs/nv-table.cjs.entry.js +1 -1
  7. package/dist/cjs/nv-tableheader.cjs.entry.js +1 -1
  8. package/dist/cjs/nv-toggle.cjs.entry.js +2 -2
  9. package/dist/cjs/nv-togglebutton.cjs.entry.js +1 -1
  10. package/dist/cjs/nv-togglebuttongroup.cjs.entry.js +1 -1
  11. package/dist/cjs/nv-tooltip.cjs.entry.js +1 -1
  12. package/dist/collection/collection-manifest.json +0 -10
  13. package/dist/collection/components/nv-split/nv-split.js +1 -1
  14. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  15. package/dist/collection/components/nv-table/nv-table.js +1 -1
  16. package/dist/collection/components/nv-tableheader/nv-tableheader.js +1 -1
  17. package/dist/collection/components/nv-toggle/nv-toggle.js +2 -2
  18. package/dist/collection/components/nv-togglebutton/nv-togglebutton.js +1 -1
  19. package/dist/collection/components/nv-togglebuttongroup/nv-togglebuttongroup.js +1 -1
  20. package/dist/collection/components/nv-tooltip/nv-tooltip.js +1 -1
  21. package/dist/components/nv-breadcrumb.js +1 -1
  22. package/dist/components/nv-split.js +1 -1
  23. package/dist/components/nv-stack.js +1 -1
  24. package/dist/components/nv-table.js +1 -1
  25. package/dist/components/nv-tableheader.js +1 -1
  26. package/dist/components/nv-toggle.js +2 -2
  27. package/dist/components/nv-togglebutton.js +1 -1
  28. package/dist/components/nv-togglebuttongroup.js +1 -1
  29. package/dist/components/nv-tooltip.js +1 -1
  30. package/dist/components/{p-439c38c3.js → p-f68c8fff.js} +2 -2
  31. package/dist/components/{p-439c38c3.js.map → p-f68c8fff.js.map} +1 -1
  32. package/dist/esm/index-dc2723f3.js +0 -40
  33. package/dist/esm/loader.js +1 -1
  34. package/dist/esm/native.js +1 -1
  35. package/dist/esm/nv-split.entry.js +1 -1
  36. package/dist/esm/nv-stack.entry.js +1 -1
  37. package/dist/esm/nv-table.entry.js +1 -1
  38. package/dist/esm/nv-tableheader.entry.js +1 -1
  39. package/dist/esm/nv-toggle.entry.js +2 -2
  40. package/dist/esm/nv-togglebutton.entry.js +1 -1
  41. package/dist/esm/nv-togglebuttongroup.entry.js +1 -1
  42. package/dist/esm/nv-tooltip.entry.js +1 -1
  43. package/dist/native/native.css +1 -1
  44. package/dist/native/native.esm.js +1 -1
  45. package/dist/native/native.esm.js.map +1 -1
  46. package/dist/native/{p-b4128eb5.entry.js → p-023f36b6.entry.js} +2 -2
  47. package/dist/native/{p-b369a073.entry.js → p-07b12aa5.entry.js} +2 -2
  48. package/dist/native/{p-87deff5a.entry.js → p-104a9828.entry.js} +2 -2
  49. package/dist/native/{p-6fb6b9e4.entry.js → p-2895ad03.entry.js} +2 -2
  50. package/dist/native/{p-31a61359.entry.js → p-2e1b4e19.entry.js} +2 -2
  51. package/dist/native/{p-7a2f37e2.entry.js → p-2fb1974e.entry.js} +2 -2
  52. package/dist/native/{p-c4cd2860.entry.js → p-44f4e0ae.entry.js} +2 -2
  53. package/dist/native/{p-98cab7d2.entry.js → p-7ac9af42.entry.js} +2 -2
  54. package/dist/types/components.d.ts +0 -502
  55. package/dist/vscode-data.json +0 -1758
  56. package/hydrate/index.js +9 -831
  57. package/hydrate/index.mjs +9 -831
  58. package/package.json +5 -41
  59. package/dist/cjs/nv-notification-bullet.cjs.entry.js +0 -79
  60. package/dist/cjs/nv-notification-bullet.cjs.entry.js.map +0 -1
  61. package/dist/cjs/nv-sidebar.cjs.entry.js +0 -179
  62. package/dist/cjs/nv-sidebar.cjs.entry.js.map +0 -1
  63. package/dist/cjs/nv-sidebarcontent.cjs.entry.js +0 -24
  64. package/dist/cjs/nv-sidebarcontent.cjs.entry.js.map +0 -1
  65. package/dist/cjs/nv-sidebardivider.cjs.entry.js +0 -24
  66. package/dist/cjs/nv-sidebardivider.cjs.entry.js.map +0 -1
  67. package/dist/cjs/nv-sidebarfooter.cjs.entry.js +0 -24
  68. package/dist/cjs/nv-sidebarfooter.cjs.entry.js.map +0 -1
  69. package/dist/cjs/nv-sidebargroup.cjs.entry.js +0 -25
  70. package/dist/cjs/nv-sidebargroup.cjs.entry.js.map +0 -1
  71. package/dist/cjs/nv-sidebarheader.cjs.entry.js +0 -24
  72. package/dist/cjs/nv-sidebarheader.cjs.entry.js.map +0 -1
  73. package/dist/cjs/nv-sidebarlogo.cjs.entry.js +0 -34
  74. package/dist/cjs/nv-sidebarlogo.cjs.entry.js.map +0 -1
  75. package/dist/cjs/nv-sidebarnavitem.cjs.entry.js +0 -299
  76. package/dist/cjs/nv-sidebarnavitem.cjs.entry.js.map +0 -1
  77. package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js +0 -37
  78. package/dist/cjs/nv-sidebarnavsubitem.cjs.entry.js.map +0 -1
  79. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js +0 -68
  80. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.docs.js.map +0 -1
  81. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.js +0 -189
  82. package/dist/collection/components/nv-notification-bullet/nv-notification-bullet.js.map +0 -1
  83. package/dist/collection/components/nv-notification-bullet/styles/nv-notification-bullet.css +0 -80
  84. package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js +0 -37
  85. package/dist/collection/components/nv-sidebar/nv-sidebar.docs.js.map +0 -1
  86. package/dist/collection/components/nv-sidebar/nv-sidebar.js +0 -309
  87. package/dist/collection/components/nv-sidebar/nv-sidebar.js.map +0 -1
  88. package/dist/collection/components/nv-sidebar/styles/nv-sidebar.css +0 -73
  89. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.css +0 -7
  90. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.docs.js +0 -6
  91. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.docs.js.map +0 -1
  92. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js +0 -24
  93. package/dist/collection/components/nv-sidebarcontent/nv-sidebarcontent.js.map +0 -1
  94. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.css +0 -6
  95. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.docs.js +0 -6
  96. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.docs.js.map +0 -1
  97. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js +0 -23
  98. package/dist/collection/components/nv-sidebardivider/nv-sidebardivider.js.map +0 -1
  99. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.css +0 -4
  100. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.docs.js +0 -6
  101. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.docs.js.map +0 -1
  102. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js +0 -25
  103. package/dist/collection/components/nv-sidebarfooter/nv-sidebarfooter.js.map +0 -1
  104. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.css +0 -17
  105. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.docs.js +0 -6
  106. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.docs.js.map +0 -1
  107. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js +0 -48
  108. package/dist/collection/components/nv-sidebargroup/nv-sidebargroup.js.map +0 -1
  109. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.css +0 -3
  110. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.docs.js +0 -6
  111. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.docs.js.map +0 -1
  112. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js +0 -25
  113. package/dist/collection/components/nv-sidebarheader/nv-sidebarheader.js.map +0 -1
  114. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.docs.js +0 -6
  115. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.docs.js.map +0 -1
  116. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js +0 -97
  117. package/dist/collection/components/nv-sidebarlogo/nv-sidebarlogo.js.map +0 -1
  118. package/dist/collection/components/nv-sidebarlogo/styles/nv-sidebarlogo.css +0 -47
  119. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.docs.js +0 -6
  120. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.docs.js.map +0 -1
  121. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js +0 -422
  122. package/dist/collection/components/nv-sidebarnavitem/nv-sidebarnavitem.js.map +0 -1
  123. package/dist/collection/components/nv-sidebarnavitem/styles/nv-sidebarnavitem.css +0 -114
  124. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.docs.js +0 -6
  125. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.docs.js.map +0 -1
  126. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js +0 -64
  127. package/dist/collection/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.js.map +0 -1
  128. package/dist/collection/components/nv-sidebarnavsubitem/styles/nv-sidebarnavsubitem.css +0 -73
  129. package/dist/components/nv-notification-bullet.d.ts +0 -11
  130. package/dist/components/nv-notification-bullet.js +0 -8
  131. package/dist/components/nv-notification-bullet.js.map +0 -1
  132. package/dist/components/nv-sidebar.d.ts +0 -11
  133. package/dist/components/nv-sidebar.js +0 -208
  134. package/dist/components/nv-sidebar.js.map +0 -1
  135. package/dist/components/nv-sidebarcontent.d.ts +0 -11
  136. package/dist/components/nv-sidebarcontent.js +0 -38
  137. package/dist/components/nv-sidebarcontent.js.map +0 -1
  138. package/dist/components/nv-sidebardivider.d.ts +0 -11
  139. package/dist/components/nv-sidebardivider.js +0 -38
  140. package/dist/components/nv-sidebardivider.js.map +0 -1
  141. package/dist/components/nv-sidebarfooter.d.ts +0 -11
  142. package/dist/components/nv-sidebarfooter.js +0 -38
  143. package/dist/components/nv-sidebarfooter.js.map +0 -1
  144. package/dist/components/nv-sidebargroup.d.ts +0 -11
  145. package/dist/components/nv-sidebargroup.js +0 -41
  146. package/dist/components/nv-sidebargroup.js.map +0 -1
  147. package/dist/components/nv-sidebarheader.d.ts +0 -11
  148. package/dist/components/nv-sidebarheader.js +0 -38
  149. package/dist/components/nv-sidebarheader.js.map +0 -1
  150. package/dist/components/nv-sidebarlogo.d.ts +0 -11
  151. package/dist/components/nv-sidebarlogo.js +0 -52
  152. package/dist/components/nv-sidebarlogo.js.map +0 -1
  153. package/dist/components/nv-sidebarnavitem.d.ts +0 -11
  154. package/dist/components/nv-sidebarnavitem.js +0 -335
  155. package/dist/components/nv-sidebarnavitem.js.map +0 -1
  156. package/dist/components/nv-sidebarnavsubitem.d.ts +0 -11
  157. package/dist/components/nv-sidebarnavsubitem.js +0 -53
  158. package/dist/components/nv-sidebarnavsubitem.js.map +0 -1
  159. package/dist/components/p-82c9b7cc.js +0 -96
  160. package/dist/components/p-82c9b7cc.js.map +0 -1
  161. package/dist/esm/nv-notification-bullet.entry.js +0 -75
  162. package/dist/esm/nv-notification-bullet.entry.js.map +0 -1
  163. package/dist/esm/nv-sidebar.entry.js +0 -175
  164. package/dist/esm/nv-sidebar.entry.js.map +0 -1
  165. package/dist/esm/nv-sidebarcontent.entry.js +0 -20
  166. package/dist/esm/nv-sidebarcontent.entry.js.map +0 -1
  167. package/dist/esm/nv-sidebardivider.entry.js +0 -20
  168. package/dist/esm/nv-sidebardivider.entry.js.map +0 -1
  169. package/dist/esm/nv-sidebarfooter.entry.js +0 -20
  170. package/dist/esm/nv-sidebarfooter.entry.js.map +0 -1
  171. package/dist/esm/nv-sidebargroup.entry.js +0 -21
  172. package/dist/esm/nv-sidebargroup.entry.js.map +0 -1
  173. package/dist/esm/nv-sidebarheader.entry.js +0 -20
  174. package/dist/esm/nv-sidebarheader.entry.js.map +0 -1
  175. package/dist/esm/nv-sidebarlogo.entry.js +0 -30
  176. package/dist/esm/nv-sidebarlogo.entry.js.map +0 -1
  177. package/dist/esm/nv-sidebarnavitem.entry.js +0 -295
  178. package/dist/esm/nv-sidebarnavitem.entry.js.map +0 -1
  179. package/dist/esm/nv-sidebarnavsubitem.entry.js +0 -33
  180. package/dist/esm/nv-sidebarnavsubitem.entry.js.map +0 -1
  181. package/dist/native/p-02debfd0.entry.js +0 -2
  182. package/dist/native/p-02debfd0.entry.js.map +0 -1
  183. package/dist/native/p-2ba7b6f2.entry.js +0 -2
  184. package/dist/native/p-2ba7b6f2.entry.js.map +0 -1
  185. package/dist/native/p-35263b61.entry.js +0 -2
  186. package/dist/native/p-35263b61.entry.js.map +0 -1
  187. package/dist/native/p-6005ff69.entry.js +0 -2
  188. package/dist/native/p-6005ff69.entry.js.map +0 -1
  189. package/dist/native/p-63348887.entry.js +0 -2
  190. package/dist/native/p-63348887.entry.js.map +0 -1
  191. package/dist/native/p-8bee34e6.entry.js +0 -2
  192. package/dist/native/p-8bee34e6.entry.js.map +0 -1
  193. package/dist/native/p-b5e752f5.entry.js +0 -2
  194. package/dist/native/p-b5e752f5.entry.js.map +0 -1
  195. package/dist/native/p-e7fdcb83.entry.js +0 -2
  196. package/dist/native/p-e7fdcb83.entry.js.map +0 -1
  197. package/dist/native/p-f22ac722.entry.js +0 -2
  198. package/dist/native/p-f22ac722.entry.js.map +0 -1
  199. package/dist/native/p-f8a099a5.entry.js +0 -2
  200. package/dist/native/p-f8a099a5.entry.js.map +0 -1
  201. package/dist/types/components/nv-notification-bullet/nv-notification-bullet.d.ts +0 -44
  202. package/dist/types/components/nv-notification-bullet/nv-notification-bullet.docs.d.ts +0 -4
  203. package/dist/types/components/nv-sidebar/nv-sidebar.d.ts +0 -64
  204. package/dist/types/components/nv-sidebar/nv-sidebar.docs.d.ts +0 -4
  205. package/dist/types/components/nv-sidebarcontent/nv-sidebarcontent.d.ts +0 -8
  206. package/dist/types/components/nv-sidebarcontent/nv-sidebarcontent.docs.d.ts +0 -4
  207. package/dist/types/components/nv-sidebardivider/nv-sidebardivider.d.ts +0 -7
  208. package/dist/types/components/nv-sidebardivider/nv-sidebardivider.docs.d.ts +0 -4
  209. package/dist/types/components/nv-sidebarfooter/nv-sidebarfooter.d.ts +0 -9
  210. package/dist/types/components/nv-sidebarfooter/nv-sidebarfooter.docs.d.ts +0 -4
  211. package/dist/types/components/nv-sidebargroup/nv-sidebargroup.d.ts +0 -13
  212. package/dist/types/components/nv-sidebargroup/nv-sidebargroup.docs.d.ts +0 -4
  213. package/dist/types/components/nv-sidebarheader/nv-sidebarheader.d.ts +0 -9
  214. package/dist/types/components/nv-sidebarheader/nv-sidebarheader.docs.d.ts +0 -4
  215. package/dist/types/components/nv-sidebarlogo/nv-sidebarlogo.d.ts +0 -26
  216. package/dist/types/components/nv-sidebarlogo/nv-sidebarlogo.docs.d.ts +0 -4
  217. package/dist/types/components/nv-sidebarnavitem/nv-sidebarnavitem.d.ts +0 -62
  218. package/dist/types/components/nv-sidebarnavitem/nv-sidebarnavitem.docs.d.ts +0 -4
  219. package/dist/types/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.d.ts +0 -15
  220. package/dist/types/components/nv-sidebarnavsubitem/nv-sidebarnavsubitem.docs.d.ts +0 -4
  221. /package/dist/native/{p-b4128eb5.entry.js.map → p-023f36b6.entry.js.map} +0 -0
  222. /package/dist/native/{p-b369a073.entry.js.map → p-07b12aa5.entry.js.map} +0 -0
  223. /package/dist/native/{p-87deff5a.entry.js.map → p-104a9828.entry.js.map} +0 -0
  224. /package/dist/native/{p-6fb6b9e4.entry.js.map → p-2895ad03.entry.js.map} +0 -0
  225. /package/dist/native/{p-31a61359.entry.js.map → p-2e1b4e19.entry.js.map} +0 -0
  226. /package/dist/native/{p-7a2f37e2.entry.js.map → p-2fb1974e.entry.js.map} +0 -0
  227. /package/dist/native/{p-c4cd2860.entry.js.map → p-44f4e0ae.entry.js.map} +0 -0
  228. /package/dist/native/{p-98cab7d2.entry.js.map → p-7ac9af42.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.21.1-beta.0",
3
+ "version": "3.22.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/",
@@ -74,46 +74,6 @@
74
74
  "import": "./dist/components/nv-tableheader.js",
75
75
  "types": "./dist/components/nv-tableheader.d.ts"
76
76
  },
77
- "./nv-notification": {
78
- "import": "./dist/components/nv-notification.js",
79
- "types": "./dist/components/nv-notification.d.ts"
80
- },
81
- "./nv-sidebarlogo": {
82
- "import": "./dist/components/nv-sidebarlogo.js",
83
- "types": "./dist/components/nv-sidebarlogo.d.ts"
84
- },
85
- "./nv-sidebarnavitem": {
86
- "import": "./dist/components/nv-sidebarnavitem.js",
87
- "types": "./dist/components/nv-sidebarnavitem.d.ts"
88
- },
89
- "./nv-sidebarnavsubitem": {
90
- "import": "./dist/components/nv-sidebarnavsubitem.js",
91
- "types": "./dist/components/nv-sidebarnavsubitem.d.ts"
92
- },
93
- "./nv-sidebargroup": {
94
- "import": "./dist/components/nv-sidebargroup.js",
95
- "types": "./dist/components/nv-sidebargroup.d.ts"
96
- },
97
- "./nv-sidebarcontent": {
98
- "import": "./dist/components/nv-sidebarcontent.js",
99
- "types": "./dist/components/nv-sidebarcontent.d.ts"
100
- },
101
- "./nv-sidebarfooter": {
102
- "import": "./dist/components/nv-sidebarfooter.js",
103
- "types": "./dist/components/nv-sidebarfooter.d.ts"
104
- },
105
- "./nv-sidebarheader": {
106
- "import": "./dist/components/nv-sidebarheader.js",
107
- "types": "./dist/components/nv-sidebarheader.d.ts"
108
- },
109
- "./nv-sidebardivider": {
110
- "import": "./dist/components/nv-sidebardivider.js",
111
- "types": "./dist/components/nv-sidebardivider.d.ts"
112
- },
113
- "./nv-sidebar": {
114
- "import": "./dist/components/nv-sidebar.js",
115
- "types": "./dist/components/nv-sidebar.d.ts"
116
- },
117
77
  "./nv-split": {
118
78
  "import": "./dist/components/nv-split.js",
119
79
  "types": "./dist/components/nv-split.d.ts"
@@ -122,6 +82,10 @@
122
82
  "import": "./dist/components/nv-table.js",
123
83
  "types": "./dist/components/nv-table.d.ts"
124
84
  },
85
+ "./nv-notification": {
86
+ "import": "./dist/components/nv-notification.js",
87
+ "types": "./dist/components/nv-notification.d.ts"
88
+ },
125
89
  "./nv-togglebuttongroup": {
126
90
  "import": "./dist/components/nv-togglebuttongroup.js",
127
91
  "types": "./dist/components/nv-togglebuttongroup.d.ts"
@@ -1,79 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-93d3b2f8.js');
6
-
7
- const nvNotificationBulletCss = "nv-notification-bullet{display:inline-flex;align-items:center;position:relative;}nv-notification-bullet .nv-notification-bullet{display:inline-flex;align-items:center;justify-content:center;min-width:var(--sidebar-primary-notification-bullet-size);max-width:var(--sidebar-primary-notification-bullet-size);min-height:var(--sidebar-primary-notification-bullet-size);max-height:var(--sidebar-primary-notification-bullet-size);padding:0 var(--spacing-1);border-radius:var(--radius-rounded-full);font-size:var(--sidebar-primary-notification-bullet-font-size);font-weight:var(--sidebar-primary-notification-bullet-font-weight);white-space:nowrap;flex-shrink:0}nv-notification-bullet.nv-notification-bullet-brand .nv-notification-bullet.nv-notification-bullet-high{background-color:var(--color-brand-500);color:var(--color-feedback-error-high-contrast-title)}nv-notification-bullet.nv-notification-bullet-brand .nv-notification-bullet.nv-notification-bullet-low{background-color:var(--color-brand-50);color:var(--color-brand-600);border:1px solid var(--color-brand-600)}nv-notification-bullet.nv-notification-bullet-neutral .nv-notification-bullet.nv-notification-bullet-high{background-color:var(--color-interaction-container-neutral-background);color:var(--color-interaction-container-neutral-text)}nv-notification-bullet.nv-notification-bullet-neutral .nv-notification-bullet.nv-notification-bullet-low{background-color:var(--color-interaction-container-neutral-background);color:var(--color-interaction-container-neutral-text)}nv-notification-bullet.nv-notification-bullet-with-cross-border::before{content:\"\";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:calc(var(--sidebar-primary-notification-bullet-size) * 1.5);height:calc(var(--sidebar-primary-notification-bullet-size) * 1.5);border-radius:var(--radius-rounded-full);background-color:var(--nv-component-background, var(--nv-sidebarnavitem-background, var(--color-interaction-container-neutral-background)));z-index:-1;pointer-events:none}nv-sidebar[collapsed] nv-notification-bullet.nv-notification-bullet-with-cross-border::before{width:calc(var(--sidebar-primary-notification-bullet-size-reduced) * 1.5);height:calc(var(--sidebar-primary-notification-bullet-size-reduced) * 1.5)}nv-notification-bullet .nv-notification-bullet.nv-notification-bullet-with-border{}nv-notification-bullet .nv-notification-bullet.nv-notification-bullet-reduced,nv-sidebar[collapsed] nv-notification-bullet .nv-notification-bullet{min-width:var(--sidebar-primary-notification-bullet-size-reduced);max-width:var(--sidebar-primary-notification-bullet-size-reduced);min-height:var(--sidebar-primary-notification-bullet-size-reduced);max-height:var(--sidebar-primary-notification-bullet-size-reduced);padding:0;font-size:0;}nv-notification-bullet .nv-notification-bullet.nv-notification-bullet-reduced.nv-notification-bullet-with-border,nv-sidebar[collapsed] nv-notification-bullet .nv-notification-bullet.nv-notification-bullet-with-border{}";
8
- const NvNotificationBulletStyle0 = nvNotificationBulletCss;
9
-
10
- const NvNotificationBullet = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- /**
14
- * Determines the size of the notification bullet.
15
- * - default: Normal size with text visible
16
- * - reduced: Smaller size, text hidden (just a dot)
17
- */
18
- this.size = 'default';
19
- /**
20
- * Allows to add a border to add contrast on background.
21
- */
22
- this.contrastingBorder = false;
23
- }
24
- //#endregion PROPERTIES
25
- /****************************************************************************/
26
- //#region METHODS
27
- getIntention() {
28
- if (this.intention) {
29
- return this.intention;
30
- }
31
- // Inherit from parent nv-sidebar
32
- const sidebar = this.el.closest('nv-sidebar');
33
- if (sidebar) {
34
- const sidebarIntention = sidebar.getAttribute('notification-intention');
35
- if (sidebarIntention === 'neutral' || sidebarIntention === 'brand') {
36
- return sidebarIntention;
37
- }
38
- }
39
- return 'brand'; // Default fallback
40
- }
41
- getEmphasis() {
42
- if (this.emphasis) {
43
- return this.emphasis;
44
- }
45
- // Inherit from parent nv-sidebar
46
- const sidebar = this.el.closest('nv-sidebar');
47
- if (sidebar) {
48
- const sidebarEmphasis = sidebar.getAttribute('notification-emphasis');
49
- if (sidebarEmphasis === 'high' || sidebarEmphasis === 'low') {
50
- return sidebarEmphasis;
51
- }
52
- }
53
- return 'high'; // Default fallback
54
- }
55
- //#region RENDER
56
- render() {
57
- var _a;
58
- const displayCount = (_a = this.count) !== null && _a !== void 0 ? _a : 0;
59
- const displayText = displayCount > 99 ? '99+' : String(displayCount);
60
- if (displayCount <= 0) {
61
- return null;
62
- }
63
- const sizeClass = this.size === 'reduced' ? 'nv-notification-bullet-reduced' : '';
64
- const intention = this.getIntention();
65
- const emphasis = this.getEmphasis();
66
- const intentionClass = `nv-notification-bullet-${intention}`;
67
- const emphasisClass = `nv-notification-bullet-${emphasis}`;
68
- const borderClass = this.contrastingBorder
69
- ? 'nv-notification-bullet-with-border'
70
- : '';
71
- return (index.h(index.Host, { class: `${intentionClass} ${borderClass ? 'nv-notification-bullet-with-cross-border' : ''}` }, index.h("span", { class: `nv-notification-bullet ${emphasisClass} ${sizeClass} ${borderClass}`, "aria-label": `${displayCount} notifications` }, displayText)));
72
- }
73
- get el() { return index.getElement(this); }
74
- };
75
- NvNotificationBullet.style = NvNotificationBulletStyle0;
76
-
77
- exports.nv_notification_bullet = NvNotificationBullet;
78
-
79
- //# sourceMappingURL=nv-notification-bullet.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"nv-notification-bullet.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,uBAAuB,GAAG,47FAA47F,CAAC;AAC79F,mCAAe,uBAAuB;;MCWzB,oBAAoB;IALjC;;;;;;;QA2CW,SAAI,GAA0B,SAAS,CAAC;;;;QAMxC,sBAAiB,GAAY,KAAK,CAAC;KAoE7C;;;;IAhES,YAAY;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE;YACX,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;YACxE,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,OAAO,EAAE;gBAClE,OAAO,gBAAgB,CAAC;aACzB;SACF;QACD,OAAO,OAAO,CAAC;KAChB;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE;YACX,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;YACtE,IAAI,eAAe,KAAK,MAAM,IAAI,eAAe,KAAK,KAAK,EAAE;gBAC3D,OAAO,eAAe,CAAC;aACxB;SACF;QACD,OAAO,MAAM,CAAC;KACf;;IAED,MAAM;;QACJ,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,YAAY,GAAG,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAErE,IAAI,YAAY,IAAI,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QAED,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,gCAAgC,GAAG,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,0BAA0B,SAAS,EAAE,CAAC;QAC7D,MAAM,aAAa,GAAG,0BAA0B,QAAQ,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB;cACtC,oCAAoC;cACpC,EAAE,CAAC;QAEP,QACEA,QAACC,UAAI,IACH,KAAK,EAAE,GAAG,cAAc,IACtB,WAAW,GAAG,0CAA0C,GAAG,EAC7D,EAAE,IAEFD,kBACE,KAAK,EAAE,0BAA0B,aAAa,IAAI,SAAS,IAAI,WAAW,EAAE,gBAChE,GAAG,YAAY,gBAAgB,IAE1C,WAAW,CACP,CACF,EACP;KACH;;;;;;;","names":["h","Host"],"sources":["src/components/nv-notification-bullet/styles/nv-notification-bullet.scss?tag=nv-notification-bullet","src/components/nv-notification-bullet/nv-notification-bullet.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-notification-bullet {\n display: inline-flex;\n align-items: center;\n position: relative; // Needed for cross-border pseudo-element positioning\n\n /* Base notification bullet styles */\n .nv-notification-bullet {\n @include bullet-base-styles();\n }\n\n /* Intention: brand */\n &.nv-notification-bullet-brand {\n .nv-notification-bullet {\n &.nv-notification-bullet-high {\n @include bullet-brand-high();\n }\n &.nv-notification-bullet-low {\n @include bullet-brand-low();\n }\n }\n }\n\n /* Intention: neutral */\n &.nv-notification-bullet-neutral {\n .nv-notification-bullet {\n &.nv-notification-bullet-high {\n @include bullet-neutral-high();\n }\n &.nv-notification-bullet-low {\n @include bullet-neutral-low();\n }\n }\n }\n\n /* Contrasting border (cross-border backdrop) - creates a larger circle behind the bullet */\n /* The cross-border intelligently inherits the background color from the parent (nv-sidebarnavitem-trigger) */\n &.nv-notification-bullet-with-cross-border::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: calc(var(--sidebar-primary-notification-bullet-size) * 1.5);\n height: calc(var(--sidebar-primary-notification-bullet-size) * 1.5);\n border-radius: var(--radius-rounded-full);\n /* Intelligently inherits background color from parent via CSS variable */\n /* Supports multiple parent types: --nv-component-background (generic) or --nv-sidebarnavitem-background (sidebar specific) */\n background-color: var(--nv-component-background, var(--nv-sidebarnavitem-background, var(--color-interaction-container-neutral-background)));\n z-index: -1;\n pointer-events: none;\n }\n \n /* Cross-border for reduced size (when sidebar is collapsed) */\n nv-sidebar[collapsed] &.nv-notification-bullet-with-cross-border::before {\n width: calc(var(--sidebar-primary-notification-bullet-size-reduced) * 1.5);\n height: calc(var(--sidebar-primary-notification-bullet-size-reduced) * 1.5);\n }\n \n /* Apply cross-border mixin (empty now, but kept for structure) */\n .nv-notification-bullet.nv-notification-bullet-with-border {\n @include bullet-with-border();\n }\n\n /* Size: reduced */\n .nv-notification-bullet.nv-notification-bullet-reduced,\n /* When inside a collapsed sidebar, use reduced size automatically */\n nv-sidebar[collapsed] & .nv-notification-bullet {\n @include bullet-styles-reduced();\n \n /* Apply reduced cross-border backdrop when size is reduced */\n &.nv-notification-bullet-with-border {\n @include bullet-with-border-reduced();\n }\n }\n}\n\n","import { Component, Host, Prop, Element, h } from '@stencil/core';\n\n/**\n * Notification bullet component for displaying notification counts in the sidebar.\n * Automatically adapts its size when the sidebar is collapsed.\n * Inherits intention and emphasis from parent nv-sidebar if not explicitly set.\n */\n@Component({\n tag: 'nv-notification-bullet',\n styleUrl: 'styles/nv-notification-bullet.scss',\n shadow: false,\n})\nexport class NvNotificationBullet {\n @Element() el: HTMLNvNotificationBulletElement;\n\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * The number of notifications to display.\n * If 0 or not provided, the component will not be visible.\n */\n @Prop({ reflect: true })\n readonly count?: number;\n\n /**\n * Determines the type of the notification.\n * - neutral: Uses neutral colors (gray)\n * - brand: Uses brand colors (orange/teal depending on theme)\n * If not set, inherits from parent nv-sidebar's notificationIntention prop.\n * @deprecated Use notificationIntention prop on nv-sidebar instead. This prop is kept for backward compatibility but will be removed in a future version.\n */\n @Prop({ reflect: true })\n readonly intention?: 'neutral' | 'brand';\n\n /**\n * Determines the emphasis and importance of the notification.\n * - high: More prominent appearance\n * - low: Less prominent appearance\n * If not set, inherits from parent nv-sidebar's notificationEmphasis prop.\n * @deprecated Use notificationEmphasis prop on nv-sidebar instead. This prop is kept for backward compatibility but will be removed in a future version.\n */\n @Prop({ reflect: true })\n readonly emphasis?: 'high' | 'low';\n\n /**\n * Determines the size of the notification bullet.\n * - default: Normal size with text visible\n * - reduced: Smaller size, text hidden (just a dot)\n */\n @Prop({ reflect: true })\n readonly size: 'default' | 'reduced' = 'default';\n\n /**\n * Allows to add a border to add contrast on background.\n */\n @Prop({ reflect: true })\n readonly contrastingBorder: boolean = false;\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region METHODS\n private getIntention(): 'neutral' | 'brand' {\n if (this.intention) {\n return this.intention;\n }\n // Inherit from parent nv-sidebar\n const sidebar = this.el.closest('nv-sidebar');\n if (sidebar) {\n const sidebarIntention = sidebar.getAttribute('notification-intention');\n if (sidebarIntention === 'neutral' || sidebarIntention === 'brand') {\n return sidebarIntention;\n }\n }\n return 'brand'; // Default fallback\n }\n\n private getEmphasis(): 'high' | 'low' {\n if (this.emphasis) {\n return this.emphasis;\n }\n // Inherit from parent nv-sidebar\n const sidebar = this.el.closest('nv-sidebar');\n if (sidebar) {\n const sidebarEmphasis = sidebar.getAttribute('notification-emphasis');\n if (sidebarEmphasis === 'high' || sidebarEmphasis === 'low') {\n return sidebarEmphasis;\n }\n }\n return 'high'; // Default fallback\n }\n //#region RENDER\n render() {\n const displayCount = this.count ?? 0;\n const displayText = displayCount > 99 ? '99+' : String(displayCount);\n\n if (displayCount <= 0) {\n return null;\n }\n\n const sizeClass =\n this.size === 'reduced' ? 'nv-notification-bullet-reduced' : '';\n const intention = this.getIntention();\n const emphasis = this.getEmphasis();\n const intentionClass = `nv-notification-bullet-${intention}`;\n const emphasisClass = `nv-notification-bullet-${emphasis}`;\n const borderClass = this.contrastingBorder\n ? 'nv-notification-bullet-with-border'\n : '';\n\n return (\n <Host\n class={`${intentionClass} ${\n borderClass ? 'nv-notification-bullet-with-cross-border' : ''\n }`}\n >\n <span\n class={`nv-notification-bullet ${emphasisClass} ${sizeClass} ${borderClass}`}\n aria-label={`${displayCount} notifications`}\n >\n {displayText}\n </span>\n </Host>\n );\n }\n // #endregion RENDER\n}\n"],"version":3}
@@ -1,179 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-93d3b2f8.js');
6
-
7
- const nvSidebarCss = "nv-sidebarnavitem a,nv-sidebarnavitem a:link,nv-sidebarnavitem a:visited,nv-sidebarnavitem a:hover,nv-sidebarnavitem a:active,nv-sidebarnavsubitem a,nv-sidebarnavsubitem a:link,nv-sidebarnavsubitem a:visited,nv-sidebarnavsubitem a:hover,nv-sidebarnavsubitem a:active{color:inherit !important;text-decoration:none !important}nv-sidebar{display:flex;flex-direction:column;position:relative;height:100vh;background-color:var(--color-level-00-background);border-right:var(--sidebar-primary-separator-size) solid var(--color-content-low-border);transition:width 0.3s ease;width:var(--sidebar-width)}nv-sidebar[collapsed]{width:var(--sidebar-reduced-max-width)}nv-sidebar[collapsed] [data-hide-on-collapsed]{display:none !important}nv-sidebar[collapsed] .nv-sidebar-container{padding:var(--spacing-6) var(--spacing-5)}nv-sidebar .nv-sidebar-container{display:flex;flex-direction:column;flex:1;overflow:hidden;padding:var(--spacing-6);gap:var(--sidebar-gap-y)}nv-sidebar .nv-sidebar-toggle{position:absolute;top:var(--spacing-8);right:calc(var(--spacing-8) / -2);display:flex;align-items:center;justify-content:center;width:var(--spacing-8);height:var(--spacing-8);padding:var(--sidebar-collapsible-button-padding);background-color:var(--color-level-00-background);border:var(--sidebar-primary-separator-size) solid var(--color-content-low-border);border-radius:var(--radius-rounded-full);cursor:pointer;transition:transform 0.2s ease;z-index:10}nv-sidebar .nv-sidebar-toggle:hover{background-color:var(--color-level-10-background)}nv-sidebar .nv-sidebar-toggle:focus,nv-sidebar .nv-sidebar-toggle:focus-within{outline:none}nv-sidebar .nv-sidebar-toggle:focus-visible,nv-sidebar .nv-sidebar-toggle:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--color-focus-brand);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-sidebar .nv-sidebar-toggle nv-icon{width:var(--sidebar-collapsible-button-icon-size);height:var(--sidebar-collapsible-button-icon-size);color:var(--color-interaction-container-neutral-icon)}";
8
- const NvSidebarStyle0 = nvSidebarCss;
9
-
10
- const NvSidebar = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- this.openChanged = index.createEvent(this, "openChanged", 7);
14
- /****************************************************************************/
15
- //#region PROPERTIES
16
- /**
17
- * The type of sidebar behavior.
18
- * - collapsible: Can be toggled open/closed
19
- * - persistent: Always visible
20
- */
21
- this.type = 'persistent';
22
- /**
23
- * Whether the sidebar is currently open (only applies to collapsible type).
24
- */
25
- // eslint-disable-next-line @stencil-community/ban-default-true
26
- this.open = true;
27
- /**
28
- * Determines the type of notification bullets in the sidebar.
29
- * - neutral: Uses neutral colors (gray)
30
- * - brand: Uses brand colors (orange/teal depending on theme)
31
- */
32
- this.notificationIntention = 'brand';
33
- /**
34
- * Determines the emphasis of notification bullets in the sidebar.
35
- * - high: More prominent appearance
36
- * - low: Less prominent appearance
37
- */
38
- this.notificationEmphasis = 'high';
39
- //#endregion EVENTS
40
- /****************************************************************************/
41
- //#region METHODS
42
- this.handleToggle = () => {
43
- if (this.type === 'collapsible') {
44
- // Changing open will trigger @Watch which emits the event
45
- this.open = !this.open;
46
- }
47
- };
48
- /**
49
- * Sets the active state of navigation items based on activePath
50
- */
51
- this.setActiveNavItems = () => {
52
- if (!this.activePath)
53
- return;
54
- // First, check all subitems to find if any matches exactly
55
- const activeSubitemHrefs = new Set();
56
- this.el.querySelectorAll('nv-sidebarnavsubitem').forEach(subItem => {
57
- const link = subItem.querySelector('a');
58
- const href = link === null || link === void 0 ? void 0 : link.getAttribute('href');
59
- if (href) {
60
- const isActive = this.activePath === href;
61
- subItem.active = isActive;
62
- if (isActive) {
63
- activeSubitemHrefs.add(href);
64
- }
65
- }
66
- });
67
- // Then, set nav items active only if:
68
- // 1. Exact match with activePath AND no subitem matches
69
- // 2. OR the navitem has no subitems and activePath starts with its href
70
- this.el.querySelectorAll('nv-sidebarnavitem').forEach(navItem => {
71
- const link = navItem.querySelector(':scope > a, :scope > .nv-sidebarnavitem-trigger a, .nv-sidebarnavitem-content > a');
72
- const href = link === null || link === void 0 ? void 0 : link.getAttribute('href');
73
- const hasSubitems = navItem.querySelector('nv-sidebarnavsubitem') !== null;
74
- if (href) {
75
- if (hasSubitems) {
76
- // Parent with subitems: only active if exact match (not when subitem is active)
77
- navItem.active = this.activePath === href;
78
- }
79
- else {
80
- // Item without subitems: active on exact match
81
- navItem.active = this.activePath === href;
82
- }
83
- }
84
- });
85
- };
86
- this.pendingActiveUpdate = null;
87
- /**
88
- * Sets up the MutationObserver to watch for changes in child elements.
89
- * Only triggers on new nav items being added, not on attribute changes.
90
- */
91
- this.setupMutationObserver = () => {
92
- this.mutationObserver = new MutationObserver(mutations => {
93
- // Only react to new nav items being added, ignore other mutations
94
- const hasNewNavItems = mutations.some(mutation => {
95
- if (mutation.type !== 'childList')
96
- return false;
97
- return Array.from(mutation.addedNodes).some(node => {
98
- if (node.nodeType !== Node.ELEMENT_NODE)
99
- return false;
100
- const el = node;
101
- return (el.tagName.toLowerCase() === 'nv-sidebarnavitem' ||
102
- el.tagName.toLowerCase() === 'nv-sidebarnavsubitem' ||
103
- el.querySelector('nv-sidebarnavitem, nv-sidebarnavsubitem'));
104
- });
105
- });
106
- if (hasNewNavItems) {
107
- // Debounce to prevent multiple rapid calls
108
- if (this.pendingActiveUpdate) {
109
- clearTimeout(this.pendingActiveUpdate);
110
- }
111
- this.pendingActiveUpdate = window.setTimeout(() => {
112
- this.setActiveNavItems();
113
- this.pendingActiveUpdate = null;
114
- }, 50);
115
- }
116
- });
117
- this.mutationObserver.observe(this.el, {
118
- childList: true,
119
- subtree: true,
120
- });
121
- };
122
- }
123
- handleCollapsedSideEffects(isCollapsed) {
124
- if (!isCollapsed) {
125
- return;
126
- }
127
- this.el.querySelectorAll('nv-sidebarnavitem[open]').forEach(navItem => {
128
- navItem.open = false;
129
- });
130
- }
131
- //#endregion METHODS
132
- /****************************************************************************/
133
- //#region WATCHERS
134
- onActivePathChanged() {
135
- this.setActiveNavItems();
136
- }
137
- //#endregion WATCHERS
138
- /****************************************************************************/
139
- //#region LIFECYCLE
140
- componentWillLoad() {
141
- this.setActiveNavItems();
142
- this.setupMutationObserver();
143
- this.handleCollapsedSideEffects(this.type === 'collapsible' && !this.open);
144
- }
145
- onOpenChanged(newValue, oldValue) {
146
- this.handleCollapsedSideEffects(this.type === 'collapsible' && !newValue);
147
- // Only emit event when open state actually changes (not on re-render with same value)
148
- if (this.type === 'collapsible' && newValue !== oldValue) {
149
- this.openChanged.emit(newValue);
150
- }
151
- }
152
- disconnectedCallback() {
153
- if (this.mutationObserver) {
154
- this.mutationObserver.disconnect();
155
- }
156
- if (this.pendingActiveUpdate) {
157
- clearTimeout(this.pendingActiveUpdate);
158
- }
159
- }
160
- //#endregion LIFECYCLE
161
- /****************************************************************************/
162
- //#region RENDER
163
- render() {
164
- const isCollapsed = this.type === 'collapsible' && !this.open;
165
- return (index.h(index.Host, { key: 'af78cae6f6cd895dbef098e549e63ac8baace243', role: "navigation", collapsed: isCollapsed ? true : undefined, "notification-intention": this.notificationIntention, "notification-emphasis": this.notificationEmphasis, "aria-expanded": this.type === 'collapsible' ? String(this.open) : undefined }, index.h("div", { key: '28a2ec38d36308d803362d361a243dc5c1b6083e', class: "nv-sidebar-container" }, index.h("slot", { key: 'c4d85987d256e89508392b6e28fdb74be9140ccb' })), this.type === 'collapsible' && (index.h("button", { key: 'a34c2b6a0be9b1bd494ac542db3ed096c81e32f9', class: "nv-sidebar-toggle", onClick: this.handleToggle, "aria-label": this.open ? 'Collapse sidebar' : 'Expand sidebar' }, index.h("nv-icon", { key: '8905351a55b339106a4c7bb5cf61582a98dd31a5', name: this.open
166
- ? 'layout-sidebar-left-collapse'
167
- : 'layout-sidebar-right-collapse', size: "sm" })))));
168
- }
169
- get el() { return index.getElement(this); }
170
- static get watchers() { return {
171
- "activePath": ["onActivePathChanged"],
172
- "open": ["onOpenChanged"]
173
- }; }
174
- };
175
- NvSidebar.style = NvSidebarStyle0;
176
-
177
- exports.nv_sidebar = NvSidebar;
178
-
179
- //# sourceMappingURL=nv-sidebar.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"nv-sidebar.entry.cjs.js","mappings":"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","names":["h","Host"],"sources":["src/components/nv-sidebar/styles/nv-sidebar.scss?tag=nv-sidebar","src/components/nv-sidebar/nv-sidebar.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n@use \"./global-overrides\";\n\nnv-sidebar {\n @include sidebar-container();\n @include sidebar-width(\"expanded\");\n\n &[collapsed] {\n @include sidebar-width(\"collapsed\");\n\n [data-hide-on-collapsed] {\n display: none !important;\n }\n\n // Collapsed mode: different padding (spacing-6 top/bottom, spacing-5 left/right) (figma rules)\n .nv-sidebar-container {\n padding: var(--spacing-6) var(--spacing-5);\n }\n }\n\n .nv-sidebar-container {\n @include sidebar-inner-container();\n }\n\n .nv-sidebar-toggle {\n @include sidebar-toggle-button();\n }\n}\n","import {\n Component,\n Host,\n Prop,\n Event,\n EventEmitter,\n Element,\n Watch,\n h,\n} from '@stencil/core';\n\n/**\n * Main sidebar container for navigation. Supports collapsible and persistent modes.\n * @slot default - All sidebar components (logo, header, content, footer).\n */\n@Component({\n tag: 'nv-sidebar',\n styleUrl: 'styles/nv-sidebar.scss',\n shadow: false,\n})\nexport class NvSidebar {\n @Element() el!: HTMLNvSidebarElement;\n private mutationObserver: MutationObserver;\n\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * The type of sidebar behavior.\n * - collapsible: Can be toggled open/closed\n * - persistent: Always visible\n */\n @Prop({ reflect: true })\n readonly type: 'collapsible' | 'persistent' = 'persistent';\n\n /**\n * Whether the sidebar is currently open (only applies to collapsible type).\n */\n // eslint-disable-next-line @stencil-community/ban-default-true\n @Prop({ reflect: true, mutable: true })\n open: boolean = true;\n\n /**\n * The current active path. Used to automatically set the active state of nav items.\n * Example: \"/dashboard\" or \"/settings/profile\"\n */\n @Prop({ reflect: true })\n readonly activePath?: string;\n\n /**\n * Determines the type of notification bullets in the sidebar.\n * - neutral: Uses neutral colors (gray)\n * - brand: Uses brand colors (orange/teal depending on theme)\n */\n @Prop({ reflect: true })\n readonly notificationIntention: 'neutral' | 'brand' = 'brand';\n\n /**\n * Determines the emphasis of notification bullets in the sidebar.\n * - high: More prominent appearance\n * - low: Less prominent appearance\n */\n @Prop({ reflect: true })\n readonly notificationEmphasis: 'high' | 'low' = 'high';\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region EVENTS\n /**\n * Emitted when the open state changes.\n * @bind open\n */\n @Event()\n openChanged: EventEmitter<boolean>;\n //#endregion EVENTS\n /****************************************************************************/\n //#region METHODS\n private handleToggle = () => {\n if (this.type === 'collapsible') {\n // Changing open will trigger @Watch which emits the event\n this.open = !this.open;\n }\n };\n\n private handleCollapsedSideEffects(isCollapsed: boolean) {\n if (!isCollapsed) {\n return;\n }\n\n this.el.querySelectorAll('nv-sidebarnavitem[open]').forEach(navItem => {\n (navItem as HTMLNvSidebarnavitemElement).open = false;\n });\n }\n\n /**\n * Sets the active state of navigation items based on activePath\n */\n private setActiveNavItems = () => {\n if (!this.activePath) return;\n\n // First, check all subitems to find if any matches exactly\n const activeSubitemHrefs = new Set<string>();\n this.el.querySelectorAll('nv-sidebarnavsubitem').forEach(subItem => {\n const link = subItem.querySelector('a');\n const href = link?.getAttribute('href');\n\n if (href) {\n const isActive = this.activePath === href;\n subItem.active = isActive;\n if (isActive) {\n activeSubitemHrefs.add(href);\n }\n }\n });\n\n // Then, set nav items active only if:\n // 1. Exact match with activePath AND no subitem matches\n // 2. OR the navitem has no subitems and activePath starts with its href\n this.el.querySelectorAll('nv-sidebarnavitem').forEach(navItem => {\n const link = navItem.querySelector(\n ':scope > a, :scope > .nv-sidebarnavitem-trigger a, .nv-sidebarnavitem-content > a',\n );\n const href = link?.getAttribute('href');\n const hasSubitems =\n navItem.querySelector('nv-sidebarnavsubitem') !== null;\n\n if (href) {\n if (hasSubitems) {\n // Parent with subitems: only active if exact match (not when subitem is active)\n navItem.active = this.activePath === href;\n } else {\n // Item without subitems: active on exact match\n navItem.active = this.activePath === href;\n }\n }\n });\n };\n\n private pendingActiveUpdate: number | null = null;\n\n /**\n * Sets up the MutationObserver to watch for changes in child elements.\n * Only triggers on new nav items being added, not on attribute changes.\n */\n private setupMutationObserver = (): void => {\n this.mutationObserver = new MutationObserver(mutations => {\n // Only react to new nav items being added, ignore other mutations\n const hasNewNavItems = mutations.some(mutation => {\n if (mutation.type !== 'childList') return false;\n return Array.from(mutation.addedNodes).some(node => {\n if (node.nodeType !== Node.ELEMENT_NODE) return false;\n const el = node as Element;\n return (\n el.tagName.toLowerCase() === 'nv-sidebarnavitem' ||\n el.tagName.toLowerCase() === 'nv-sidebarnavsubitem' ||\n el.querySelector('nv-sidebarnavitem, nv-sidebarnavsubitem')\n );\n });\n });\n\n if (hasNewNavItems) {\n // Debounce to prevent multiple rapid calls\n if (this.pendingActiveUpdate) {\n clearTimeout(this.pendingActiveUpdate);\n }\n this.pendingActiveUpdate = window.setTimeout(() => {\n this.setActiveNavItems();\n this.pendingActiveUpdate = null;\n }, 50);\n }\n });\n\n this.mutationObserver.observe(this.el, {\n childList: true,\n subtree: true,\n });\n };\n //#endregion METHODS\n /****************************************************************************/\n //#region WATCHERS\n @Watch('activePath')\n onActivePathChanged() {\n this.setActiveNavItems();\n }\n //#endregion WATCHERS\n /****************************************************************************/\n //#region LIFECYCLE\n componentWillLoad() {\n this.setActiveNavItems();\n this.setupMutationObserver();\n this.handleCollapsedSideEffects(this.type === 'collapsible' && !this.open);\n }\n\n @Watch('open')\n protected onOpenChanged(newValue: boolean, oldValue: boolean) {\n this.handleCollapsedSideEffects(this.type === 'collapsible' && !newValue);\n // Only emit event when open state actually changes (not on re-render with same value)\n if (this.type === 'collapsible' && newValue !== oldValue) {\n this.openChanged.emit(newValue);\n }\n }\n\n disconnectedCallback() {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.pendingActiveUpdate) {\n clearTimeout(this.pendingActiveUpdate);\n }\n }\n //#endregion LIFECYCLE\n /****************************************************************************/\n //#region RENDER\n render() {\n const isCollapsed = this.type === 'collapsible' && !this.open;\n\n return (\n <Host\n role=\"navigation\"\n collapsed={isCollapsed ? true : undefined}\n notification-intention={this.notificationIntention}\n notification-emphasis={this.notificationEmphasis}\n aria-expanded={\n this.type === 'collapsible' ? String(this.open) : undefined\n }\n >\n <div class=\"nv-sidebar-container\">\n <slot></slot>\n </div>\n {this.type === 'collapsible' && (\n <button\n class=\"nv-sidebar-toggle\"\n onClick={this.handleToggle}\n aria-label={this.open ? 'Collapse sidebar' : 'Expand sidebar'}\n >\n <nv-icon\n name={\n this.open\n ? 'layout-sidebar-left-collapse'\n : 'layout-sidebar-right-collapse'\n }\n size=\"sm\"\n ></nv-icon>\n </button>\n )}\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"version":3}
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-93d3b2f8.js');
6
-
7
- const nvSidebarcontentCss = "nv-sidebarcontent{display:flex;flex-direction:column;flex:1;overflow-y:auto;overflow-x:hidden}";
8
- const NvSidebarcontentStyle0 = nvSidebarcontentCss;
9
-
10
- const NvSidebarcontent = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- }
14
- /****************************************************************************/
15
- //#region RENDER
16
- render() {
17
- return (index.h(index.Host, { key: 'd960a2c2abe06db605980bf35d2c7cc74f4e0dba', role: "list" }, index.h("slot", { key: '7c0b0ad872d1afc279bfd9c9d381097207f055e2' })));
18
- }
19
- };
20
- NvSidebarcontent.style = NvSidebarcontentStyle0;
21
-
22
- exports.nv_sidebarcontent = NvSidebarcontent;
23
-
24
- //# sourceMappingURL=nv-sidebarcontent.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"nv-sidebarcontent.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,mBAAmB,GAAG,gGAAgG,CAAC;AAC7H,+BAAe,mBAAmB;;MCUrB,gBAAgB;;;;;;IAG3B,MAAM;QACJ,QACEA,QAACC,UAAI,qDAAC,IAAI,EAAC,MAAM,IACfD,oEAAa,CACR,EACP;KACH;;;;;;","names":["h","Host"],"sources":["src/components/nv-sidebarcontent/nv-sidebarcontent.scss?tag=nv-sidebarcontent","src/components/nv-sidebarcontent/nv-sidebarcontent.tsx"],"sourcesContent":["nv-sidebarcontent {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n}","import { Component, Host, h } from '@stencil/core';\n\n/**\n * Scrollable main content area of the sidebar containing navigation groups and items.\n * @slot default - Navigation groups, items, and dividers.\n */\n@Component({\n tag: 'nv-sidebarcontent',\n styleUrl: 'nv-sidebarcontent.scss',\n shadow: false,\n})\nexport class NvSidebarcontent {\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host role=\"list\">\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"version":3}
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-93d3b2f8.js');
6
-
7
- const nvSidebardividerCss = "nv-sidebardivider{display:block;height:var(--sidebar-primary-separator-size);background-color:var(--color-content-low-border);margin:var(--spacing-2) 0}";
8
- const NvSidebardividerStyle0 = nvSidebardividerCss;
9
-
10
- const NvSidebardivider = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- }
14
- /****************************************************************************/
15
- //#region RENDER
16
- render() {
17
- return index.h(index.Host, { key: 'a4328b357b750232920c8b5e24e91503bba7e235', role: "separator", "aria-orientation": "horizontal" });
18
- }
19
- };
20
- NvSidebardivider.style = NvSidebardividerStyle0;
21
-
22
- exports.nv_sidebardivider = NvSidebardivider;
23
-
24
- //# sourceMappingURL=nv-sidebardivider.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"nv-sidebardivider.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,mBAAmB,GAAG,0JAA0J,CAAC;AACvL,+BAAe,mBAAmB;;MCSrB,gBAAgB;;;;;;IAG3B,MAAM;QACJ,OAAOA,QAACC,UAAI,qDAAC,IAAI,EAAC,WAAW,sBAAkB,YAAY,GAAQ,CAAC;KACrE;;;;;;","names":["h","Host"],"sources":["src/components/nv-sidebardivider/nv-sidebardivider.scss?tag=nv-sidebardivider","src/components/nv-sidebardivider/nv-sidebardivider.tsx"],"sourcesContent":["nv-sidebardivider {\n display: block;\n height: var(--sidebar-primary-separator-size);\n background-color: var(--color-content-low-border);\n margin: var(--spacing-2) 0;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * A horizontal divider for separating sidebar navigation groups.\n */\n@Component({\n tag: 'nv-sidebardivider',\n styleUrl: 'nv-sidebardivider.scss',\n shadow: false,\n})\nexport class NvSidebardivider {\n /****************************************************************************/\n //#region RENDER\n render() {\n return <Host role=\"separator\" aria-orientation=\"horizontal\"></Host>;\n }\n //#endregion RENDER\n}\n"],"version":3}
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-93d3b2f8.js');
6
-
7
- const nvSidebarfooterCss = "nv-sidebarfooter{display:block;margin-top:auto}";
8
- const NvSidebarfooterStyle0 = nvSidebarfooterCss;
9
-
10
- const NvSidebarfooter = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- }
14
- /****************************************************************************/
15
- //#region RENDER
16
- render() {
17
- return (index.h(index.Host, { key: '73ce5246f93d982caf0d65f2cde8156dfbe565da' }, index.h("slot", { key: '92a297a59988ce6e70875eedd50227cdf011d4bf' })));
18
- }
19
- };
20
- NvSidebarfooter.style = NvSidebarfooterStyle0;
21
-
22
- exports.nv_sidebarfooter = NvSidebarfooter;
23
-
24
- //# sourceMappingURL=nv-sidebarfooter.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"nv-sidebarfooter.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,kBAAkB,GAAG,iDAAiD,CAAC;AAC7E,8BAAe,kBAAkB;;MCWpB,eAAe;;;;;;IAG1B,MAAM;QACJ,QACEA,QAACC,UAAI,uDACHD,oEAAa,CACR,EACP;KACH;;;;;;","names":["h","Host"],"sources":["src/components/nv-sidebarfooter/nv-sidebarfooter.scss?tag=nv-sidebarfooter","src/components/nv-sidebarfooter/nv-sidebarfooter.tsx"],"sourcesContent":["nv-sidebarfooter {\n display: block;\n margin-top: auto;\n}","import { Component, Host, h } from '@stencil/core';\n\n/**\n * Optional footer container for the sidebar. Use this to display custom elements\n * like user settings, logout buttons, or version information at the bottom of the sidebar.\n * @slot default - Custom content to display in the footer.\n */\n@Component({\n tag: 'nv-sidebarfooter',\n styleUrl: 'nv-sidebarfooter.scss',\n shadow: false,\n})\nexport class NvSidebarfooter {\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"version":3}
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-93d3b2f8.js');
6
-
7
- const nvSidebargroupCss = "nv-sidebargroup{display:flex;flex-direction:column;gap:var(--spacing-1)}nv-sidebargroup .nv-sidebargroup-label{display:block;font-size:var(--font-size-sm);line-height:var(--line-height-sm);font-weight:var(--font-weight-medium-emphasis);color:var(--color-content-lower-text);letter-spacing:0;padding:var(--sidebar-primary-title-padding-y) var(--sidebar-primary-title-padding-x)}nv-sidebar[collapsed] nv-sidebargroup .nv-sidebargroup-label{display:none}";
8
- const NvSidebargroupStyle0 = nvSidebargroupCss;
9
-
10
- const NvSidebargroup = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- }
14
- //#endregion PROPERTIES
15
- /****************************************************************************/
16
- //#region RENDER
17
- render() {
18
- return (index.h(index.Host, { key: 'c7b4e34d8237dc93adaa33f12d7cfda36a8ac269', role: "group", "aria-label": this.label }, this.label && index.h("div", { key: '7cafdf840b12c89604efda7895b764331c8054b7', class: "nv-sidebargroup-label" }, this.label), index.h("slot", { key: 'b6567a223f7cc05ce2874a632d38d6665c255659' })));
19
- }
20
- };
21
- NvSidebargroup.style = NvSidebargroupStyle0;
22
-
23
- exports.nv_sidebargroup = NvSidebargroup;
24
-
25
- //# sourceMappingURL=nv-sidebargroup.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"nv-sidebargroup.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,iBAAiB,GAAG,qcAAqc,CAAC;AAChe,6BAAe,iBAAiB;;MCUnB,cAAc;;;;;;;IAWzB,MAAM;QACJ,QACEA,QAACC,UAAI,qDAAC,IAAI,EAAC,OAAO,gBAAa,IAAI,CAAC,KAAK,IACtC,IAAI,CAAC,KAAK,IAAID,kEAAK,KAAK,EAAC,uBAAuB,IAAE,IAAI,CAAC,KAAK,CAAO,EACpEA,oEAAa,CACR,EACP;KACH;;;;;;","names":["h","Host"],"sources":["src/components/nv-sidebargroup/nv-sidebargroup.scss?tag=nv-sidebargroup","src/components/nv-sidebargroup/nv-sidebargroup.tsx"],"sourcesContent":["nv-sidebargroup {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-1);\n\n .nv-sidebargroup-label {\n display: block;\n font-size: var(--font-size-sm);\n line-height: var(--line-height-sm);\n font-weight: var(--font-weight-medium-emphasis);\n color: var(--color-content-lower-text);\n letter-spacing: 0;\n padding: var(--sidebar-primary-title-padding-y) var(--sidebar-primary-title-padding-x);\n }\n\n nv-sidebar[collapsed] & {\n .nv-sidebargroup-label {\n display: none;\n }\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n/**\n * Groups navigation items together with an optional label.\n * @slot default - Navigation items (nv-sidebarnavitem) to display in this group.\n */\n@Component({\n tag: 'nv-sidebargroup',\n styleUrl: 'nv-sidebargroup.scss',\n shadow: false,\n})\nexport class NvSidebargroup {\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * Optional label to display above the navigation group.\n */\n @Prop({ reflect: true })\n readonly label?: string;\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host role=\"group\" aria-label={this.label}>\n {this.label && <div class=\"nv-sidebargroup-label\">{this.label}</div>}\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"version":3}
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-93d3b2f8.js');
6
-
7
- const nvSidebarheaderCss = "nv-sidebarheader{display:block}";
8
- const NvSidebarheaderStyle0 = nvSidebarheaderCss;
9
-
10
- const NvSidebarheader = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- }
14
- /****************************************************************************/
15
- //#region RENDER
16
- render() {
17
- return (index.h(index.Host, { key: '42d91f8325df19e8208ab045a057657c97bf3ff4' }, index.h("slot", { key: '42b4e5952fd55b95fe2934297929cef3bd1b226c' })));
18
- }
19
- };
20
- NvSidebarheader.style = NvSidebarheaderStyle0;
21
-
22
- exports.nv_sidebarheader = NvSidebarheader;
23
-
24
- //# sourceMappingURL=nv-sidebarheader.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"nv-sidebarheader.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;AAC7D,8BAAe,kBAAkB;;MCWpB,eAAe;;;;;;IAG1B,MAAM;QACJ,QACEA,QAACC,UAAI,uDACHD,oEAAa,CACR,EACP;KACH;;;;;;","names":["h","Host"],"sources":["src/components/nv-sidebarheader/nv-sidebarheader.scss?tag=nv-sidebarheader","src/components/nv-sidebarheader/nv-sidebarheader.tsx"],"sourcesContent":["nv-sidebarheader {\n display: block;\n}","import { Component, Host, h } from '@stencil/core';\n\n/**\n * Optional header container for the sidebar. Use this to display custom elements\n * like search bars, user profiles, or action buttons at the top of the sidebar.\n * @slot default - Custom content to display in the header.\n */\n@Component({\n tag: 'nv-sidebarheader',\n styleUrl: 'nv-sidebarheader.scss',\n shadow: false,\n})\nexport class NvSidebarheader {\n /****************************************************************************/\n //#region RENDER\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"version":3}
@@ -1,34 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-93d3b2f8.js');
6
-
7
- const nvSidebarlogoCss = "nv-sidebarlogo{display:block}nv-sidebarlogo .nv-sidebarlogo-container{display:flex;align-items:center;gap:var(--spacing-3)}nv-sidebarlogo .nv-sidebarlogo-full,nv-sidebarlogo .nv-sidebarlogo-collapsed{height:var(--spacing-8);width:auto;object-fit:contain}nv-sidebarlogo .nv-sidebarlogo-collapsed{display:none}nv-sidebarlogo .nv-sidebarlogo-title{font-size:var(--nv-sidebarlogo-font-size, var(--font-size-md));font-weight:var(--nv-sidebarlogo-font-weight, var(--font-weight-high-emphasis));font-family:var(--nv-sidebarlogo-font-family, inherit);color:var(--color-content-high-text);white-space:nowrap;overflow:hidden;transition:opacity 0.2s ease, max-width 0.3s ease, margin-left 0.3s ease;max-width:200px;opacity:1}nv-sidebar[collapsed] nv-sidebarlogo .nv-sidebarlogo-full{display:none}nv-sidebar[collapsed] nv-sidebarlogo .nv-sidebarlogo-collapsed{display:block}nv-sidebar[collapsed] nv-sidebarlogo .nv-sidebarlogo-title{max-width:0;opacity:0;margin-left:0}nv-sidebar[collapsed] nv-sidebarlogo .nv-sidebarlogo-container{justify-content:center;align-items:center;gap:0;width:100%;min-height:var(--spacing-12);padding:0}";
8
- const NvSidebarlogoStyle0 = nvSidebarlogoCss;
9
-
10
- const NvSidebarlogo = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- //#endregion PROPERTIES
14
- /****************************************************************************/
15
- //#region CONSTANTS
16
- // Default Nova logo SVG (expanded - icon only, text comes from label prop)
17
- this.defaultLogo = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"%3E%3Cstyle%3E.cls-1{fill:%23f0801a;}%3C/style%3E%3Cpath class="cls-1" d="M25.71,2.13l-5.08,11.39c-.39.88-.38,1.92.13,2.73.74,1.17,2.19,1.59,3.42,1.07l14.26-6-3.14-2.27-10.89,4.66c-.15.06-.3-.09-.23-.24l4.34-9.31-2.81-2.03Z"/%3E%3Cpath class="cls-1" d="M4.29,10l9.22,8.4c.71.65,1.7.97,2.63.73,1.34-.34,2.2-1.58,2.09-2.91l-1.22-15.43-3.14,2.27,1.01,11.8c.01.16-.18.26-.3.15l-7.48-7.04-2.81,2.03Z"/%3E%3Cpath class="cls-1" d="M26.95,39.15l-2.59-12.2c-.2-.94-.82-1.78-1.71-2.13-1.29-.51-2.71,0-3.4,1.14l-8.01,13.24h3.87s6.07-10.18,6.07-10.18c.08-.14.3-.1.33.06l1.97,10.08h3.47Z"/%3E%3Cpath class="cls-1" d="M4.85,32.76l10.82-6.19c.83-.48,1.44-1.32,1.5-2.28.09-1.38-.83-2.58-2.13-2.89L0,17.82l1.2,3.68,11.54,2.67c.16.04.19.25.05.33l-9,4.96,1.07,3.3Z"/%3E%3Cpath class="cls-1" d="M40,20.11l-12.4-1.35c-.95-.1-1.94.22-2.56.96-.89,1.07-.84,2.58.03,3.58l10.08,11.74,1.2-3.69-7.77-8.94c-.11-.12,0-.32.16-.3l10.19,1.28,1.07-3.3Z"/%3E%3C/svg%3E';
18
- // Default Nova icon (collapsed - same logo but will be displayed smaller)
19
- this.defaultCollapsedLogo = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"%3E%3Cstyle%3E.cls-1{fill:%23f0801a;}%3C/style%3E%3Cpath class="cls-1" d="M25.71,2.13l-5.08,11.39c-.39.88-.38,1.92.13,2.73.74,1.17,2.19,1.59,3.42,1.07l14.26-6-3.14-2.27-10.89,4.66c-.15.06-.3-.09-.23-.24l4.34-9.31-2.81-2.03Z"/%3E%3Cpath class="cls-1" d="M4.29,10l9.22,8.4c.71.65,1.7.97,2.63.73,1.34-.34,2.2-1.58,2.09-2.91l-1.22-15.43-3.14,2.27,1.01,11.8c.01.16-.18.26-.3.15l-7.48-7.04-2.81,2.03Z"/%3E%3Cpath class="cls-1" d="M26.95,39.15l-2.59-12.2c-.2-.94-.82-1.78-1.71-2.13-1.29-.51-2.71,0-3.4,1.14l-8.01,13.24h3.87s6.07-10.18,6.07-10.18c.08-.14.3-.1.33.06l1.97,10.08h3.47Z"/%3E%3Cpath class="cls-1" d="M4.85,32.76l10.82-6.19c.83-.48,1.44-1.32,1.5-2.28.09-1.38-.83-2.58-2.13-2.89L0,17.82l1.2,3.68,11.54,2.67c.16.04.19.25.05.33l-9,4.96,1.07,3.3Z"/%3E%3Cpath class="cls-1" d="M40,20.11l-12.4-1.35c-.95-.1-1.94.22-2.56.96-.89,1.07-.84,2.58.03,3.58l10.08,11.74,1.2-3.69-7.77-8.94c-.11-.12,0-.32.16-.3l10.19,1.28,1.07-3.3Z"/%3E%3C/svg%3E';
20
- }
21
- //#endregion CONSTANTS
22
- /****************************************************************************/
23
- //#region RENDER
24
- render() {
25
- const logoSrc = this.logo || this.defaultLogo;
26
- const collapsedLogoSrc = this.collapsedLogo || this.defaultCollapsedLogo;
27
- return (index.h(index.Host, { key: 'ec2aba08293e4def2fe083c311b69cafe005cf5e' }, index.h("div", { key: '3a24d832a0bb5aa44264fe1fc3091878556649bd', class: "nv-sidebarlogo-container" }, index.h("img", { key: 'a9a08e7c5dd51902d9ffbda0d9216a4ffb186756', src: logoSrc, alt: this.label || 'Logo', class: "nv-sidebarlogo-full" }), index.h("img", { key: 'daef311e11c8d5ee6b823a4896be36ea5bd696cc', src: collapsedLogoSrc, alt: this.label || 'Logo', class: "nv-sidebarlogo-collapsed" }), this.label && index.h("span", { key: '9685e4c110e7bb7356f5d49b615105033a32a736', class: "nv-sidebarlogo-title" }, this.label))));
28
- }
29
- };
30
- NvSidebarlogo.style = NvSidebarlogoStyle0;
31
-
32
- exports.nv_sidebarlogo = NvSidebarlogo;
33
-
34
- //# sourceMappingURL=nv-sidebarlogo.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"nv-sidebarlogo.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,gBAAgB,GAAG,gmCAAgmC,CAAC;AAC1nC,4BAAe,gBAAgB;;MCUlB,aAAa;IAL1B;;;;;;QA+BmB,gBAAW,GAC1B,u/BAAu/B,CAAC;;QAGz+B,yBAAoB,GACnC,u/BAAu/B,CAAC;KA2B3/B;;;;IAvBC,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;QAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB,CAAC;QAEzE,QACEA,QAACC,UAAI,uDACHD,kEAAK,KAAK,EAAC,0BAA0B,IACnCA,kEACE,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,EACzB,KAAK,EAAC,qBAAqB,GAC3B,EACFA,kEACE,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,EACzB,KAAK,EAAC,0BAA0B,GAChC,EACD,IAAI,CAAC,KAAK,IAAIA,mEAAM,KAAK,EAAC,sBAAsB,IAAE,IAAI,CAAC,KAAK,CAAQ,CACjE,CACD,EACP;KACH;;;;;;","names":["h","Host"],"sources":["src/components/nv-sidebarlogo/styles/nv-sidebarlogo.scss?tag=nv-sidebarlogo","src/components/nv-sidebarlogo/nv-sidebarlogo.tsx"],"sourcesContent":["@use \"./mixins\" as *;\n\nnv-sidebarlogo {\n @include logo-container-styles();\n\n .nv-sidebarlogo-container {\n @include logo-inner-container();\n }\n\n .nv-sidebarlogo-full,\n .nv-sidebarlogo-collapsed {\n @include logo-image();\n }\n\n .nv-sidebarlogo-collapsed {\n @include logo-collapsed-hidden();\n }\n\n .nv-sidebarlogo-title {\n @include logo-title();\n }\n\n nv-sidebar[collapsed] & {\n .nv-sidebarlogo-full {\n @include logo-collapsed-hidden();\n }\n\n .nv-sidebarlogo-collapsed {\n @include logo-collapsed-visible();\n }\n\n .nv-sidebarlogo-title {\n @include logo-title-collapsed();\n }\n\n .nv-sidebarlogo-container {\n @include logo-collapsed-centered();\n }\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n/**\n * Displays the logo and title at the top of the sidebar.\n * Automatically switches between full and collapsed logos based on the sidebar state.\n */\n@Component({\n tag: 'nv-sidebarlogo',\n styleUrl: 'styles/nv-sidebarlogo.scss',\n shadow: false,\n})\nexport class NvSidebarlogo {\n /****************************************************************************/\n //#region PROPERTIES\n /**\n * The label/name to display next to the logo.\n */\n @Prop({ reflect: true })\n readonly label?: string;\n\n /**\n * URL of the full logo image (shown when sidebar is expanded).\n * If not provided, uses a default Nova logo.\n */\n @Prop({ reflect: true })\n readonly logo?: string;\n\n /**\n * URL of the collapsed logo image (shown when sidebar is collapsed).\n * If not provided, uses a default Nova icon.\n */\n @Prop({ reflect: true })\n readonly collapsedLogo?: string;\n //#endregion PROPERTIES\n /****************************************************************************/\n //#region CONSTANTS\n // Default Nova logo SVG (expanded - icon only, text comes from label prop)\n private readonly defaultLogo =\n 'data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\"%3E%3Cstyle%3E.cls-1{fill:%23f0801a;}%3C/style%3E%3Cpath class=\"cls-1\" d=\"M25.71,2.13l-5.08,11.39c-.39.88-.38,1.92.13,2.73.74,1.17,2.19,1.59,3.42,1.07l14.26-6-3.14-2.27-10.89,4.66c-.15.06-.3-.09-.23-.24l4.34-9.31-2.81-2.03Z\"/%3E%3Cpath class=\"cls-1\" d=\"M4.29,10l9.22,8.4c.71.65,1.7.97,2.63.73,1.34-.34,2.2-1.58,2.09-2.91l-1.22-15.43-3.14,2.27,1.01,11.8c.01.16-.18.26-.3.15l-7.48-7.04-2.81,2.03Z\"/%3E%3Cpath class=\"cls-1\" d=\"M26.95,39.15l-2.59-12.2c-.2-.94-.82-1.78-1.71-2.13-1.29-.51-2.71,0-3.4,1.14l-8.01,13.24h3.87s6.07-10.18,6.07-10.18c.08-.14.3-.1.33.06l1.97,10.08h3.47Z\"/%3E%3Cpath class=\"cls-1\" d=\"M4.85,32.76l10.82-6.19c.83-.48,1.44-1.32,1.5-2.28.09-1.38-.83-2.58-2.13-2.89L0,17.82l1.2,3.68,11.54,2.67c.16.04.19.25.05.33l-9,4.96,1.07,3.3Z\"/%3E%3Cpath class=\"cls-1\" d=\"M40,20.11l-12.4-1.35c-.95-.1-1.94.22-2.56.96-.89,1.07-.84,2.58.03,3.58l10.08,11.74,1.2-3.69-7.77-8.94c-.11-.12,0-.32.16-.3l10.19,1.28,1.07-3.3Z\"/%3E%3C/svg%3E';\n\n // Default Nova icon (collapsed - same logo but will be displayed smaller)\n private readonly defaultCollapsedLogo =\n 'data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\"%3E%3Cstyle%3E.cls-1{fill:%23f0801a;}%3C/style%3E%3Cpath class=\"cls-1\" d=\"M25.71,2.13l-5.08,11.39c-.39.88-.38,1.92.13,2.73.74,1.17,2.19,1.59,3.42,1.07l14.26-6-3.14-2.27-10.89,4.66c-.15.06-.3-.09-.23-.24l4.34-9.31-2.81-2.03Z\"/%3E%3Cpath class=\"cls-1\" d=\"M4.29,10l9.22,8.4c.71.65,1.7.97,2.63.73,1.34-.34,2.2-1.58,2.09-2.91l-1.22-15.43-3.14,2.27,1.01,11.8c.01.16-.18.26-.3.15l-7.48-7.04-2.81,2.03Z\"/%3E%3Cpath class=\"cls-1\" d=\"M26.95,39.15l-2.59-12.2c-.2-.94-.82-1.78-1.71-2.13-1.29-.51-2.71,0-3.4,1.14l-8.01,13.24h3.87s6.07-10.18,6.07-10.18c.08-.14.3-.1.33.06l1.97,10.08h3.47Z\"/%3E%3Cpath class=\"cls-1\" d=\"M4.85,32.76l10.82-6.19c.83-.48,1.44-1.32,1.5-2.28.09-1.38-.83-2.58-2.13-2.89L0,17.82l1.2,3.68,11.54,2.67c.16.04.19.25.05.33l-9,4.96,1.07,3.3Z\"/%3E%3Cpath class=\"cls-1\" d=\"M40,20.11l-12.4-1.35c-.95-.1-1.94.22-2.56.96-.89,1.07-.84,2.58.03,3.58l10.08,11.74,1.2-3.69-7.77-8.94c-.11-.12,0-.32.16-.3l10.19,1.28,1.07-3.3Z\"/%3E%3C/svg%3E';\n //#endregion CONSTANTS\n /****************************************************************************/\n //#region RENDER\n render() {\n const logoSrc = this.logo || this.defaultLogo;\n const collapsedLogoSrc = this.collapsedLogo || this.defaultCollapsedLogo;\n\n return (\n <Host>\n <div class=\"nv-sidebarlogo-container\">\n <img\n src={logoSrc}\n alt={this.label || 'Logo'}\n class=\"nv-sidebarlogo-full\"\n />\n <img\n src={collapsedLogoSrc}\n alt={this.label || 'Logo'}\n class=\"nv-sidebarlogo-collapsed\"\n />\n {this.label && <span class=\"nv-sidebarlogo-title\">{this.label}</span>}\n </div>\n </Host>\n );\n }\n //#endregion RENDER\n}\n"],"version":3}