@aquera/nile-elements 1.6.7 → 1.6.9

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 (255) hide show
  1. package/README.md +12 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +1735 -495
  5. package/dist/internal/enum.cjs.js +1 -1
  6. package/dist/internal/enum.cjs.js.map +1 -1
  7. package/dist/internal/enum.esm.js +1 -1
  8. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
  9. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  10. package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
  11. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  12. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  13. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  14. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  15. package/dist/nile-calendar/nile-calendar.css.esm.js +0 -3
  16. package/dist/nile-calendar/nile-calendar.esm.js +2 -2
  17. package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
  18. package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
  19. package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
  20. package/dist/nile-inline-sidebar/index.cjs.js +1 -1
  21. package/dist/nile-inline-sidebar/index.esm.js +1 -1
  22. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
  23. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
  24. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
  25. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
  26. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +76 -19
  27. package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +42 -23
  28. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.cjs.js +1 -1
  29. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.cjs.js.map +1 -1
  30. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.esm.js +8 -9
  31. package/dist/nile-inline-sidebar-item/index.cjs.js +1 -1
  32. package/dist/nile-inline-sidebar-item/index.esm.js +1 -1
  33. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
  34. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
  35. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js +1 -1
  36. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js.map +1 -1
  37. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.esm.js +16 -18
  38. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +22 -4
  39. package/dist/nile-inline-sidebar-item-body/index.cjs.js +2 -0
  40. package/dist/nile-inline-sidebar-item-body/index.cjs.js.map +1 -0
  41. package/dist/nile-inline-sidebar-item-body/index.esm.js +1 -0
  42. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.cjs.js +2 -0
  43. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.cjs.js.map +1 -0
  44. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.cjs.js +2 -0
  45. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.cjs.js.map +1 -0
  46. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.esm.js +53 -0
  47. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.esm.js +13 -0
  48. package/dist/nile-inline-sidebar-item-header/index.cjs.js +2 -0
  49. package/dist/nile-inline-sidebar-item-header/index.cjs.js.map +1 -0
  50. package/dist/nile-inline-sidebar-item-header/index.esm.js +1 -0
  51. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.cjs.js +2 -0
  52. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.cjs.js.map +1 -0
  53. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.cjs.js +2 -0
  54. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.cjs.js.map +1 -0
  55. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.esm.js +27 -0
  56. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.esm.js +16 -0
  57. package/dist/nile-inline-sidebar-panel/index.cjs.js +2 -0
  58. package/dist/nile-inline-sidebar-panel/index.cjs.js.map +1 -0
  59. package/dist/nile-inline-sidebar-panel/index.esm.js +1 -0
  60. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.cjs.js +2 -0
  61. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.cjs.js.map +1 -0
  62. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.cjs.js +2 -0
  63. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.cjs.js.map +1 -0
  64. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.esm.js +19 -0
  65. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.esm.js +5 -0
  66. package/dist/nile-inline-sidebar-panel-group/index.cjs.js +2 -0
  67. package/dist/nile-inline-sidebar-panel-group/index.cjs.js.map +1 -0
  68. package/dist/nile-inline-sidebar-panel-group/index.esm.js +1 -0
  69. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.cjs.js +2 -0
  70. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.cjs.js.map +1 -0
  71. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.cjs.js +2 -0
  72. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.cjs.js.map +1 -0
  73. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.esm.js +30 -0
  74. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.esm.js +12 -0
  75. package/dist/nile-nav-tab/index.cjs.js +2 -0
  76. package/dist/nile-nav-tab/index.cjs.js.map +1 -0
  77. package/dist/nile-nav-tab/index.esm.js +1 -0
  78. package/dist/nile-nav-tab/nile-nav-tab.cjs.js +2 -0
  79. package/dist/nile-nav-tab/nile-nav-tab.cjs.js.map +1 -0
  80. package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js +2 -0
  81. package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js.map +1 -0
  82. package/dist/nile-nav-tab/nile-nav-tab.css.esm.js +190 -0
  83. package/dist/nile-nav-tab/nile-nav-tab.esm.js +36 -0
  84. package/dist/nile-nav-tab-group/index.cjs.js +2 -0
  85. package/dist/nile-nav-tab-group/index.cjs.js.map +1 -0
  86. package/dist/nile-nav-tab-group/index.esm.js +1 -0
  87. package/dist/nile-nav-tab-group/nile-nav-tab-group.cjs.js +4 -0
  88. package/dist/nile-nav-tab-group/nile-nav-tab-group.cjs.js.map +1 -0
  89. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js +2 -0
  90. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js.map +1 -0
  91. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.esm.js +668 -0
  92. package/dist/nile-nav-tab-group/nile-nav-tab-group.esm.js +61 -0
  93. package/dist/nile-nav-tab-panel/index.cjs.js +2 -0
  94. package/dist/nile-nav-tab-panel/index.cjs.js.map +1 -0
  95. package/dist/nile-nav-tab-panel/index.esm.js +1 -0
  96. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.cjs.js +2 -0
  97. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.cjs.js.map +1 -0
  98. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.cjs.js +2 -0
  99. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.cjs.js.map +1 -0
  100. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.esm.js +22 -0
  101. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.esm.js +8 -0
  102. package/dist/nile-stepper-item/nile-stepper-item.cjs.js +1 -1
  103. package/dist/nile-stepper-item/nile-stepper-item.cjs.js.map +1 -1
  104. package/dist/nile-stepper-item/nile-stepper-item.esm.js +13 -13
  105. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js +1 -1
  106. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js.map +1 -1
  107. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.esm.js +1 -1
  108. package/dist/src/index.d.ts +7 -0
  109. package/dist/src/index.js +7 -0
  110. package/dist/src/index.js.map +1 -1
  111. package/dist/src/internal/enum.d.ts +6 -0
  112. package/dist/src/internal/enum.js +7 -0
  113. package/dist/src/internal/enum.js.map +1 -1
  114. package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
  115. package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
  116. package/dist/src/nile-calendar/nile-calendar.css.js +0 -3
  117. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  118. package/dist/src/nile-calendar/nile-calendar.js +2 -2
  119. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  120. package/dist/src/nile-dropdown/nile-dropdown.d.ts +2 -0
  121. package/dist/src/nile-dropdown/nile-dropdown.js +21 -5
  122. package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
  123. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.d.ts +1 -0
  124. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +75 -17
  125. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
  126. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.d.ts +17 -1
  127. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +147 -18
  128. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
  129. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.d.ts +1 -0
  130. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.js +7 -7
  131. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.js.map +1 -1
  132. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.d.ts +1 -1
  133. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js +15 -17
  134. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js.map +1 -1
  135. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +7 -1
  136. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +63 -4
  137. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
  138. package/dist/src/nile-inline-sidebar-item-body/index.d.ts +1 -0
  139. package/dist/src/nile-inline-sidebar-item-body/index.js +2 -0
  140. package/dist/src/nile-inline-sidebar-item-body/index.js.map +1 -0
  141. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.d.ts +9 -0
  142. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.js +62 -0
  143. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.js.map +1 -0
  144. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.d.ts +45 -0
  145. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.js +110 -0
  146. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.js.map +1 -0
  147. package/dist/src/nile-inline-sidebar-item-header/index.d.ts +1 -0
  148. package/dist/src/nile-inline-sidebar-item-header/index.js +2 -0
  149. package/dist/src/nile-inline-sidebar-item-header/index.js.map +1 -0
  150. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.d.ts +9 -0
  151. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.js +36 -0
  152. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.js.map +1 -0
  153. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.d.ts +34 -0
  154. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.js +68 -0
  155. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.js.map +1 -0
  156. package/dist/src/nile-inline-sidebar-panel/index.d.ts +1 -0
  157. package/dist/src/nile-inline-sidebar-panel/index.js +2 -0
  158. package/dist/src/nile-inline-sidebar-panel/index.js.map +1 -0
  159. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.d.ts +9 -0
  160. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.js +28 -0
  161. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.js.map +1 -0
  162. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.d.ts +35 -0
  163. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.js +55 -0
  164. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.js.map +1 -0
  165. package/dist/src/nile-inline-sidebar-panel-group/index.d.ts +1 -0
  166. package/dist/src/nile-inline-sidebar-panel-group/index.js +2 -0
  167. package/dist/src/nile-inline-sidebar-panel-group/index.js.map +1 -0
  168. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.d.ts +9 -0
  169. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.js +39 -0
  170. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.js.map +1 -0
  171. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.d.ts +43 -0
  172. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.js +93 -0
  173. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.js.map +1 -0
  174. package/dist/src/nile-nav-tab/index.d.ts +1 -0
  175. package/dist/src/nile-nav-tab/index.js +2 -0
  176. package/dist/src/nile-nav-tab/index.js.map +1 -0
  177. package/dist/src/nile-nav-tab/nile-nav-tab.css.d.ts +9 -0
  178. package/dist/src/nile-nav-tab/nile-nav-tab.css.js +199 -0
  179. package/dist/src/nile-nav-tab/nile-nav-tab.css.js.map +1 -0
  180. package/dist/src/nile-nav-tab/nile-nav-tab.d.ts +50 -0
  181. package/dist/src/nile-nav-tab/nile-nav-tab.js +190 -0
  182. package/dist/src/nile-nav-tab/nile-nav-tab.js.map +1 -0
  183. package/dist/src/nile-nav-tab/nile-nav-tab.test.d.ts +1 -0
  184. package/dist/src/nile-nav-tab/nile-nav-tab.test.js +656 -0
  185. package/dist/src/nile-nav-tab/nile-nav-tab.test.js.map +1 -0
  186. package/dist/src/nile-nav-tab-group/index.d.ts +1 -0
  187. package/dist/src/nile-nav-tab-group/index.js +2 -0
  188. package/dist/src/nile-nav-tab-group/index.js.map +1 -0
  189. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.d.ts +12 -0
  190. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js +680 -0
  191. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js.map +1 -0
  192. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.d.ts +119 -0
  193. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.js +765 -0
  194. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.js.map +1 -0
  195. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.d.ts +3 -0
  196. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.js +838 -0
  197. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.js.map +1 -0
  198. package/dist/src/nile-nav-tab-panel/index.d.ts +1 -0
  199. package/dist/src/nile-nav-tab-panel/index.js +2 -0
  200. package/dist/src/nile-nav-tab-panel/index.js.map +1 -0
  201. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.d.ts +15 -0
  202. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.js +37 -0
  203. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.js.map +1 -0
  204. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.d.ts +37 -0
  205. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.js +75 -0
  206. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.js.map +1 -0
  207. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.d.ts +1 -0
  208. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.js +534 -0
  209. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.js.map +1 -0
  210. package/dist/src/nile-stepper-item/nile-stepper-item.js +1 -1
  211. package/dist/src/nile-stepper-item/nile-stepper-item.js.map +1 -1
  212. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js +1 -1
  213. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js.map +1 -1
  214. package/dist/src/version.js +1 -1
  215. package/dist/src/version.js.map +1 -1
  216. package/dist/tsconfig.tsbuildinfo +1 -1
  217. package/package.json +7 -2
  218. package/src/index.ts +7 -0
  219. package/src/internal/enum.ts +8 -1
  220. package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
  221. package/src/nile-calendar/nile-calendar.css.ts +0 -3
  222. package/src/nile-calendar/nile-calendar.ts +2 -2
  223. package/src/nile-dropdown/nile-dropdown.ts +23 -5
  224. package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +75 -17
  225. package/src/nile-inline-sidebar/nile-inline-sidebar.ts +148 -18
  226. package/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.ts +7 -7
  227. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.ts +15 -17
  228. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +74 -9
  229. package/src/nile-inline-sidebar-item-body/index.ts +1 -0
  230. package/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.ts +64 -0
  231. package/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.ts +110 -0
  232. package/src/nile-inline-sidebar-item-header/index.ts +1 -0
  233. package/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.ts +38 -0
  234. package/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.ts +69 -0
  235. package/src/nile-inline-sidebar-panel/index.ts +1 -0
  236. package/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.ts +30 -0
  237. package/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.ts +53 -0
  238. package/src/nile-inline-sidebar-panel-group/index.ts +1 -0
  239. package/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.ts +41 -0
  240. package/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.ts +101 -0
  241. package/src/nile-nav-tab/index.ts +1 -0
  242. package/src/nile-nav-tab/nile-nav-tab.css.ts +201 -0
  243. package/src/nile-nav-tab/nile-nav-tab.test.ts +768 -0
  244. package/src/nile-nav-tab/nile-nav-tab.ts +198 -0
  245. package/src/nile-nav-tab-group/index.ts +1 -0
  246. package/src/nile-nav-tab-group/nile-nav-tab-group.css.ts +682 -0
  247. package/src/nile-nav-tab-group/nile-nav-tab-group.test.ts +1009 -0
  248. package/src/nile-nav-tab-group/nile-nav-tab-group.ts +845 -0
  249. package/src/nile-nav-tab-panel/index.ts +1 -0
  250. package/src/nile-nav-tab-panel/nile-nav-tab-panel.css.ts +39 -0
  251. package/src/nile-nav-tab-panel/nile-nav-tab-panel.test.ts +797 -0
  252. package/src/nile-nav-tab-panel/nile-nav-tab-panel.ts +78 -0
  253. package/src/nile-stepper-item/nile-stepper-item.ts +1 -1
  254. package/src/nile-vertical-stepper-item/nile-vertical-stepper-item.ts +1 -1
  255. package/vscode-html-custom-data.json +273 -3
@@ -5,23 +5,28 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { css } from 'lit';
8
+ /** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */
8
9
  export const styles = css `
9
10
  :host {
10
- display: block;
11
+ display: flex;
11
12
  height: 100%;
13
+
14
+ --separator-width: 1px;
15
+ --separator-hit-area: 12px;
16
+ --separator-color: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));
12
17
  }
13
18
  .sidebar {
14
19
  display: flex;
15
20
  flex-direction: column;
16
21
  height: 100%;
17
- background: white;
18
- border-right: 1px solid var(--nile-colors-neutral-400);
19
- transition: width 0.3s ease;
22
+ background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
23
+ border-right: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));
24
+ transition: var(--sidebar-transition, width 0.3s ease);
20
25
  position: relative;
21
26
  }
22
27
  .toggle-btn {
23
28
  position: absolute;
24
- top: var(--nile-spacing-2xl);
29
+ top: var(--nile-spacing-2xl, var(--ng-spacing-2xl));
25
30
  right: -14px;
26
31
  z-index: 10;
27
32
  }
@@ -30,7 +35,10 @@ export const styles = css `
30
35
  width: 30px;
31
36
  height: 30px;
32
37
  }
33
- :host(:not([collapsed])) .sidebar {
38
+ nile-button.toggle-btn::part(base) {
39
+ border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));
40
+ }
41
+ :host(:not([collapsed]):not([resizable])) .sidebar {
34
42
  width: 216px;
35
43
  }
36
44
  :host([collapsed]) .sidebar {
@@ -46,10 +54,59 @@ export const styles = css `
46
54
  .sidebar-nav {
47
55
  display: flex;
48
56
  flex-direction: column;
49
- gap: var(--nile-spacing-xs);
50
- padding-right: var(--nile-spacing-xl);
51
- padding-top: var(--nile-spacing-3xl);
52
- padding-bottom: var(--nile-spacing-3xl);
57
+ gap: var(--nile-spacing-xs, var(--ng-spacing-xs));
58
+ padding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));
59
+ padding-top: var(--nile-spacing-3xl, var(--ng-spacing-3xl));
60
+ padding-bottom: var(--nile-spacing-3xl, var(--ng-spacing-3xl));
61
+ }
62
+ .sidebar-nav--rich {
63
+ padding-right: 0px;
64
+ }
65
+
66
+ /* Resizable separator */
67
+ .separator {
68
+ flex: 0 0 var(--separator-width);
69
+ display: flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ background-color: var(--separator-color);
73
+ cursor: col-resize;
74
+ position: relative;
75
+ z-index: 1;
76
+ user-select: none;
77
+ touch-action: none;
78
+ }
79
+
80
+ .separator:focus {
81
+ outline: none;
82
+ }
83
+
84
+ .separator:focus-visible {
85
+ background-color: var(--nile-colors-blue-500, var(--ng-componentcolors-utility-brand-50));
86
+ }
87
+
88
+ .separator::after {
89
+ content: '';
90
+ position: absolute;
91
+ height: 100%;
92
+ left: calc(var(--separator-hit-area) / -2 + var(--separator-width) / 2);
93
+ width: var(--separator-hit-area);
94
+ }
95
+
96
+ :host([resizable]:not([collapsed])) .sidebar {
97
+ border-right: none;
98
+ }
99
+
100
+ :host([resizable][placement='right']:not([collapsed])) .sidebar {
101
+ border-left: none;
102
+ }
103
+
104
+ :host([collapsed]) .separator {
105
+ display: none;
106
+ }
107
+
108
+ :host([placement='right']) .separator {
109
+ order: -1;
53
110
  }
54
111
 
55
112
  nile-side-bar-action-menu {
@@ -61,8 +118,8 @@ export const styles = css `
61
118
  nile-side-bar-action-menu::part(menu__items-wrapper) {
62
119
  width: 100%;
63
120
  max-width: 400px;
64
- padding-top: var(--nile-spacing-lg);
65
- padding-bottom: var(--nile-spacing-lg);
121
+ padding-top: var(--nile-spacing-lg, var(--ng-spacing-lg));
122
+ padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-lg));
66
123
  }
67
124
 
68
125
  nile-side-bar-action-menu-item::part(base) {
@@ -70,12 +127,12 @@ export const styles = css `
70
127
  margin-left: 0;
71
128
  margin-right: 0;
72
129
  border-radius: 0;
73
- color: black;
130
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
74
131
  }
75
132
 
76
133
  nile-side-bar-action-menu-item[active]::part(base):hover {
77
- background: var(--nile-colors-primary-100);
78
- color: black;
134
+ background: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-secondary));
135
+ color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
79
136
  }
80
137
 
81
138
  nile-side-bar-action-menu-item::part(label) {
@@ -104,7 +161,8 @@ export const styles = css `
104
161
 
105
162
  :host([placement='right']) .sidebar {
106
163
  border-right: none;
107
- border-left: 1px solid var(--nile-colors-neutral-400);
164
+ border-left: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));
165
+ order: 0;
108
166
  }
109
167
 
110
168
  :host([placement='right']) .toggle-btn {
@@ -118,7 +176,7 @@ export const styles = css `
118
176
 
119
177
  :host([placement='right']) .sidebar-nav {
120
178
  padding-right: 0;
121
- padding-left: var(--nile-spacing-xl);
179
+ padding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));
122
180
  }
123
181
  `;
124
182
  //# sourceMappingURL=nile-inline-sidebar.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-inline-sidebar.css.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmHxB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\nexport const styles = css`\n :host {\n display: block;\n height: 100%;\n }\n .sidebar {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: white;\n border-right: 1px solid var(--nile-colors-neutral-400);\n transition: width 0.3s ease;\n position: relative;\n }\n .toggle-btn {\n position: absolute;\n top: var(--nile-spacing-2xl);\n right: -14px;\n z-index: 10;\n }\n\n nile-button.toggle-btn::part(base) {\n width: 30px;\n height: 30px;\n }\n :host(:not([collapsed])) .sidebar {\n width: 216px;\n }\n :host([collapsed]) .sidebar {\n width: 0px;\n }\n :host([collapsed]) .sidebar-nav {\n display: none;\n }\n .sidebar-header {\n display: flex;\n justify-content: flex-end;\n }\n .sidebar-nav {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs);\n padding-right: var(--nile-spacing-xl);\n padding-top: var(--nile-spacing-3xl);\n padding-bottom: var(--nile-spacing-3xl);\n }\n\n nile-side-bar-action-menu {\n width: fit-content;\n max-width: 400px;\n min-width: 200px;\n }\n\n nile-side-bar-action-menu::part(menu__items-wrapper) {\n width: 100%;\n max-width: 400px;\n padding-top: var(--nile-spacing-lg);\n padding-bottom: var(--nile-spacing-lg);\n }\n\n nile-side-bar-action-menu-item::part(base) {\n width: 100%;\n margin-left: 0;\n margin-right: 0;\n border-radius: 0;\n color: black;\n }\n\n nile-side-bar-action-menu-item[active]::part(base):hover {\n background: var(--nile-colors-primary-100);\n color: black;\n }\n\n nile-side-bar-action-menu-item::part(label) {\n display: block;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* Transition for sidebar button when it is closed and opened */\n nile-side-bar-action::part(panel),\n nile-side-bar-action-menu {\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease-in;\n transition-delay: 50ms;\n }\n\n nile-side-bar-action:hover::part(panel),\n nile-side-bar-action:hover nile-side-bar-action-menu {\n opacity: 1;\n pointer-events: auto;\n transition-delay: 0ms;\n }\n\n :host([placement='right']) .sidebar {\n border-right: none;\n border-left: 1px solid var(--nile-colors-neutral-400);\n }\n\n :host([placement='right']) .toggle-btn {\n right: auto;\n left: -14px;\n }\n\n :host([placement='right']) .sidebar-header {\n justify-content: flex-start;\n }\n\n :host([placement='right']) .sidebar-nav {\n padding-right: 0;\n padding-left: var(--nile-spacing-xl);\n }\n`;\n"]}
1
+ {"version":3,"file":"nile-inline-sidebar.css.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,mEAAmE;AACnE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4KxB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */\nexport const styles = css`\n :host {\n display: flex;\n height: 100%;\n\n --separator-width: 1px;\n --separator-hit-area: 12px;\n --separator-color: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n .sidebar {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-right: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n transition: var(--sidebar-transition, width 0.3s ease);\n position: relative;\n }\n .toggle-btn {\n position: absolute;\n top: var(--nile-spacing-2xl, var(--ng-spacing-2xl));\n right: -14px;\n z-index: 10;\n }\n\n nile-button.toggle-btn::part(base) {\n width: 30px;\n height: 30px;\n }\n nile-button.toggle-btn::part(base) {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n }\n :host(:not([collapsed]):not([resizable])) .sidebar {\n width: 216px;\n }\n :host([collapsed]) .sidebar {\n width: 0px;\n }\n :host([collapsed]) .sidebar-nav {\n display: none;\n }\n .sidebar-header {\n display: flex;\n justify-content: flex-end;\n }\n .sidebar-nav {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n padding-right: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding-top: var(--nile-spacing-3xl, var(--ng-spacing-3xl));\n padding-bottom: var(--nile-spacing-3xl, var(--ng-spacing-3xl));\n }\n .sidebar-nav--rich {\n padding-right: 0px;\n }\n\n /* Resizable separator */\n .separator {\n flex: 0 0 var(--separator-width);\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--separator-color);\n cursor: col-resize;\n position: relative;\n z-index: 1;\n user-select: none;\n touch-action: none;\n }\n\n .separator:focus {\n outline: none;\n }\n\n .separator:focus-visible {\n background-color: var(--nile-colors-blue-500, var(--ng-componentcolors-utility-brand-50));\n }\n\n .separator::after {\n content: '';\n position: absolute;\n height: 100%;\n left: calc(var(--separator-hit-area) / -2 + var(--separator-width) / 2);\n width: var(--separator-hit-area);\n }\n\n :host([resizable]:not([collapsed])) .sidebar {\n border-right: none;\n }\n\n :host([resizable][placement='right']:not([collapsed])) .sidebar {\n border-left: none;\n }\n\n :host([collapsed]) .separator {\n display: none;\n }\n\n :host([placement='right']) .separator {\n order: -1;\n }\n\n nile-side-bar-action-menu {\n width: fit-content;\n max-width: 400px;\n min-width: 200px;\n }\n\n nile-side-bar-action-menu::part(menu__items-wrapper) {\n width: 100%;\n max-width: 400px;\n padding-top: var(--nile-spacing-lg, var(--ng-spacing-lg));\n padding-bottom: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n nile-side-bar-action-menu-item::part(base) {\n width: 100%;\n margin-left: 0;\n margin-right: 0;\n border-radius: 0;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n nile-side-bar-action-menu-item[active]::part(base):hover {\n background: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-secondary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n nile-side-bar-action-menu-item::part(label) {\n display: block;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* Transition for sidebar button when it is closed and opened */\n nile-side-bar-action::part(panel),\n nile-side-bar-action-menu {\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease-in;\n transition-delay: 50ms;\n }\n\n nile-side-bar-action:hover::part(panel),\n nile-side-bar-action:hover nile-side-bar-action-menu {\n opacity: 1;\n pointer-events: auto;\n transition-delay: 0ms;\n }\n\n :host([placement='right']) .sidebar {\n border-right: none;\n border-left: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n order: 0;\n }\n\n :host([placement='right']) .toggle-btn {\n right: auto;\n left: -14px;\n }\n\n :host([placement='right']) .sidebar-header {\n justify-content: flex-start;\n }\n\n :host([placement='right']) .sidebar-nav {\n padding-right: 0;\n padding-left: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n`;\n"]}
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the BSD-3-Clause license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { CSSResultArray, TemplateResult } from 'lit';
7
+ import { CSSResultArray, TemplateResult, PropertyValues } from 'lit';
8
8
  import NileElement from '../internal/nile-element';
9
9
  /**
10
10
  * Nile inline sidebar component.
@@ -17,6 +17,16 @@ export declare class NileInlineSidebar extends NileElement {
17
17
  showTooltip: boolean;
18
18
  /** The side on which the sidebar is placed. */
19
19
  placement: 'left' | 'right';
20
+ /** Enables a draggable resize handle on the sidebar's trailing edge. */
21
+ resizable: boolean;
22
+ /** Current sidebar width in pixels when resizable is enabled. */
23
+ sidebarWidth: number;
24
+ /** Minimum sidebar width in pixels. */
25
+ minSidebarWidth: number;
26
+ showToggleBtn: boolean;
27
+ /** Maximum sidebar width in pixels. */
28
+ maxSidebarWidth: number;
29
+ variant?: 'minimal' | 'rich';
20
30
  private activeIndex;
21
31
  private defaultSlot;
22
32
  private mutationObserver?;
@@ -25,6 +35,9 @@ export declare class NileInlineSidebar extends NileElement {
25
35
  connectedCallback(): void;
26
36
  disconnectedCallback(): void;
27
37
  firstUpdated(): void;
38
+ updated(changedProperties: PropertyValues): void;
39
+ /** Pushes sidebar `variant` onto each item (rich vs minimal) so layout stays in sync with slotted content. */
40
+ private syncChildSidebarItemVariants;
28
41
  private observeSidebarItems;
29
42
  private syncActiveFromItems;
30
43
  private get focusableItems();
@@ -34,6 +47,9 @@ export declare class NileInlineSidebar extends NileElement {
34
47
  private handleItemSelect;
35
48
  private toggleCollapse;
36
49
  private handleMenuItemClick;
50
+ private handleSeparatorDrag;
51
+ private handleSeparatorKeyDown;
52
+ private get separatorTemplate();
37
53
  private get menuItemsTemplate();
38
54
  render(): TemplateResult;
39
55
  }
@@ -5,10 +5,13 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { __decorate } from "tslib";
8
- import { html } from 'lit';
8
+ import { html, nothing } from 'lit';
9
9
  import { customElement, property, query, state } from 'lit/decorators.js';
10
+ import { classMap } from 'lit/directives/class-map.js';
10
11
  import { styles } from './nile-inline-sidebar.css';
11
12
  import NileElement from '../internal/nile-element';
13
+ import { drag } from '../internal/drag';
14
+ import { clamp } from '../internal/math';
12
15
  /**
13
16
  * Nile inline sidebar component.
14
17
  *
@@ -22,6 +25,16 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
22
25
  this.showTooltip = false;
23
26
  /** The side on which the sidebar is placed. */
24
27
  this.placement = 'left';
28
+ /** Enables a draggable resize handle on the sidebar's trailing edge. */
29
+ this.resizable = false;
30
+ /** Current sidebar width in pixels when resizable is enabled. */
31
+ this.sidebarWidth = 216;
32
+ /** Minimum sidebar width in pixels. */
33
+ this.minSidebarWidth = 120;
34
+ this.showToggleBtn = true;
35
+ /** Maximum sidebar width in pixels. */
36
+ this.maxSidebarWidth = 400;
37
+ this.variant = 'minimal';
25
38
  this.activeIndex = -1;
26
39
  this.handleKeyDown = (event) => {
27
40
  if (this.collapsed)
@@ -103,10 +116,25 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
103
116
  firstUpdated() {
104
117
  this.observeSidebarItems();
105
118
  this.syncActiveFromItems();
119
+ this.syncChildSidebarItemVariants();
106
120
  if (this.fixed) {
107
121
  this.collapsed = false;
108
122
  }
109
123
  }
124
+ updated(changedProperties) {
125
+ super.updated(changedProperties);
126
+ if (changedProperties.has('variant')) {
127
+ this.syncChildSidebarItemVariants();
128
+ }
129
+ }
130
+ /** Pushes sidebar `variant` onto each item (rich vs minimal) so layout stays in sync with slotted content. */
131
+ syncChildSidebarItemVariants() {
132
+ const items = this.querySelectorAll('nile-inline-sidebar-item');
133
+ const v = this.variant ?? 'minimal';
134
+ items.forEach(item => {
135
+ item.variant = v;
136
+ });
137
+ }
110
138
  observeSidebarItems() {
111
139
  if (!this.sidebarItems?.length || !this.mutationObserver)
112
140
  return;
@@ -181,6 +209,76 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
181
209
  window.location.href = href;
182
210
  this.requestUpdate();
183
211
  }
212
+ handleSeparatorDrag(event) {
213
+ if (!this.resizable || this.collapsed)
214
+ return;
215
+ if (event.cancelable)
216
+ event.preventDefault();
217
+ const isRight = this.placement === 'right';
218
+ this.style.setProperty('--sidebar-transition', 'none');
219
+ drag(this, {
220
+ onMove: (x) => {
221
+ const hostRect = this.getBoundingClientRect();
222
+ let newWidth;
223
+ if (isRight) {
224
+ newWidth = hostRect.width - x;
225
+ }
226
+ else {
227
+ newWidth = x;
228
+ }
229
+ this.sidebarWidth = clamp(newWidth, this.minSidebarWidth, this.maxSidebarWidth);
230
+ this.emit('nile-sidebar-resize', { width: this.sidebarWidth });
231
+ },
232
+ onStop: () => {
233
+ this.style.removeProperty('--sidebar-transition');
234
+ },
235
+ initialEvent: event,
236
+ });
237
+ }
238
+ handleSeparatorKeyDown(event) {
239
+ if (!this.resizable || this.collapsed)
240
+ return;
241
+ const step = event.shiftKey ? 10 : 1;
242
+ let newWidth = this.sidebarWidth;
243
+ switch (event.key) {
244
+ case 'ArrowLeft':
245
+ newWidth -= step;
246
+ break;
247
+ case 'ArrowRight':
248
+ newWidth += step;
249
+ break;
250
+ case 'Home':
251
+ newWidth = this.minSidebarWidth;
252
+ break;
253
+ case 'End':
254
+ newWidth = this.maxSidebarWidth;
255
+ break;
256
+ default:
257
+ return;
258
+ }
259
+ event.preventDefault();
260
+ this.sidebarWidth = clamp(newWidth, this.minSidebarWidth, this.maxSidebarWidth);
261
+ this.emit('nile-sidebar-resize', { width: this.sidebarWidth });
262
+ }
263
+ get separatorTemplate() {
264
+ if (!this.resizable || this.collapsed)
265
+ return nothing;
266
+ return html `
267
+ <div
268
+ class="separator"
269
+ part="separator"
270
+ tabindex="0"
271
+ role="separator"
272
+ aria-valuenow=${this.sidebarWidth}
273
+ aria-valuemin=${this.minSidebarWidth}
274
+ aria-valuemax=${this.maxSidebarWidth}
275
+ aria-label="Resize sidebar"
276
+ @keydown=${this.handleSeparatorKeyDown}
277
+ @mousedown=${this.handleSeparatorDrag}
278
+ @touchstart=${this.handleSeparatorDrag}
279
+ ></div>
280
+ `;
281
+ }
184
282
  get menuItemsTemplate() {
185
283
  if (!this.sidebarItems?.length)
186
284
  return null;
@@ -216,8 +314,11 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
216
314
  const collapsedIcon = isRight ? 'menu_open' : 'menu_close';
217
315
  const expandedIcon = isRight ? 'menu_close' : 'menu_open';
218
316
  const actionPlacement = isRight ? 'bottom-end' : 'bottom-start';
317
+ const sidebarStyle = !this.collapsed
318
+ ? `width: ${this.sidebarWidth}px;`
319
+ : '';
219
320
  return html `
220
- <div class="sidebar" part="base">
321
+ <div class="sidebar" part="base" style=${sidebarStyle}>
221
322
  <div class="sidebar-header" part="header">
222
323
  ${!this.fixed
223
324
  ? this.collapsed
@@ -229,33 +330,41 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
229
330
  open
230
331
  triggerDropdown="hover"
231
332
  >
232
- <nile-button
233
- slot="trigger"
234
- class="toggle-btn"
235
- variant="tertiary"
236
- @click=${this.toggleCollapse}
237
- >
238
- <nile-icon name=${collapsedIcon}></nile-icon>
239
- </nile-button>
333
+ ${this.showToggleBtn
334
+ ? html `
335
+ <nile-button
336
+ slot="trigger"
337
+ class="toggle-btn"
338
+ variant="tertiary"
339
+ @click=${this.toggleCollapse}
340
+ >
341
+ <nile-icon name=${collapsedIcon}></nile-icon>
342
+ </nile-button>
343
+ `
344
+ : nothing}
240
345
  <nile-side-bar-action-menu>
241
346
  ${this.menuItemsTemplate}
242
347
  </nile-side-bar-action-menu>
243
348
  </nile-side-bar-action>
244
349
  `
245
350
  : html `
246
- <nile-button
247
- class="toggle-btn"
248
- variant="tertiary"
249
- @click=${this.toggleCollapse}
250
- >
251
- <nile-icon name=${expandedIcon}></nile-icon>
252
- </nile-button>
351
+ ${this.showToggleBtn
352
+ ? html `
353
+ <nile-button
354
+ class="toggle-btn"
355
+ variant="tertiary"
356
+ @click=${this.toggleCollapse}
357
+ >
358
+ <nile-icon name=${expandedIcon}></nile-icon>
359
+ </nile-button>
360
+ `
361
+ : nothing}
253
362
  `
254
363
  : null}
255
364
  </div>
256
365
 
257
366
  <nav
258
- class="sidebar-nav"
367
+ class=${classMap({ 'sidebar-nav': true, 'sidebar-nav--rich': this.variant === 'rich' })}
259
368
  role="navigation"
260
369
  aria-label="Sidebar"
261
370
  style=${this.collapsed ? 'display:none;' : ''}
@@ -266,10 +375,12 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
266
375
  this.requestUpdate();
267
376
  this.observeSidebarItems();
268
377
  this.syncActiveFromItems();
378
+ this.syncChildSidebarItemVariants();
269
379
  }}
270
380
  ></slot>
271
381
  </nav>
272
382
  </div>
383
+ ${this.separatorTemplate}
273
384
  `;
274
385
  }
275
386
  };
@@ -285,6 +396,24 @@ __decorate([
285
396
  __decorate([
286
397
  property({ type: String, reflect: true })
287
398
  ], NileInlineSidebar.prototype, "placement", void 0);
399
+ __decorate([
400
+ property({ type: Boolean, reflect: true })
401
+ ], NileInlineSidebar.prototype, "resizable", void 0);
402
+ __decorate([
403
+ property({ type: Number, attribute: true })
404
+ ], NileInlineSidebar.prototype, "sidebarWidth", void 0);
405
+ __decorate([
406
+ property({ type: Number, attribute: true })
407
+ ], NileInlineSidebar.prototype, "minSidebarWidth", void 0);
408
+ __decorate([
409
+ property({ type: Boolean, attribute: true })
410
+ ], NileInlineSidebar.prototype, "showToggleBtn", void 0);
411
+ __decorate([
412
+ property({ type: Number, attribute: true })
413
+ ], NileInlineSidebar.prototype, "maxSidebarWidth", void 0);
414
+ __decorate([
415
+ property({ type: String, reflect: true, attribute: true })
416
+ ], NileInlineSidebar.prototype, "variant", void 0);
288
417
  __decorate([
289
418
  state()
290
419
  ], NileInlineSidebar.prototype, "activeIndex", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"nile-inline-sidebar.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { styles } from './nile-inline-sidebar.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile inline sidebar component.\n *\n * @tag nile-inline-sidebar\n */\n@customElement('nile-inline-sidebar')\nexport class NileInlineSidebar extends NileElement {\n @property({ type: Boolean, reflect: true }) collapsed = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) fixed = false;\n\n @property({ type: Boolean, reflect: true }) showTooltip = false;\n\n /** The side on which the sidebar is placed. */\n @property({ type: String, reflect: true }) placement: 'left' | 'right' = 'left';\n\n @state() private activeIndex: number = -1;\n\n @query('slot') private defaultSlot!: HTMLSlotElement;\n\n private mutationObserver?: MutationObserver;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n private get sidebarItems(): HTMLElement[] {\n if (!this.defaultSlot) return [];\n const assigned = this.defaultSlot.assignedElements({ flatten: true });\n const items = assigned.flatMap(el =>\n el.tagName.toLowerCase() === 'nile-inline-sidebar-item'\n ? [el]\n : Array.from(el.querySelectorAll('nile-inline-sidebar-item'))\n );\n return items as HTMLElement[];\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('nile-click', this.handleItemSelect);\n this.addEventListener('keydown', this.handleKeyDown);\n this.mutationObserver = new MutationObserver(() =>\n this.syncActiveFromItems()\n );\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.mutationObserver?.disconnect();\n this.removeEventListener('nile-click', this.handleItemSelect);\n this.removeEventListener('keydown', this.handleKeyDown);\n }\n\n firstUpdated() {\n this.observeSidebarItems();\n this.syncActiveFromItems();\n\n if (this.fixed) {\n this.collapsed = false;\n }\n }\n\n private observeSidebarItems() {\n if (!this.sidebarItems?.length || !this.mutationObserver) return;\n this.sidebarItems.forEach(item =>\n this.mutationObserver!.observe(item, {\n attributes: true,\n attributeFilter: ['active'],\n })\n );\n }\n\n private syncActiveFromItems() {\n if (!this.sidebarItems?.length) return;\n const activeIndex = this.sidebarItems.findIndex(item =>\n item.hasAttribute('active')\n );\n if (activeIndex !== -1 && activeIndex !== this.activeIndex) {\n this.activeIndex = activeIndex;\n this.requestUpdate();\n }\n this.updateTabIndices();\n }\n\n \n private get focusableItems(): HTMLElement[] {\n return this.sidebarItems.filter(\n item => !item.hasAttribute('disabled')\n );\n }\n\n private updateTabIndices() {\n const items = this.sidebarItems;\n if (!items.length) return;\n\n const focusTarget =\n this.activeIndex >= 0 ? items[this.activeIndex] : null;\n\n items.forEach(item => {\n if (item.hasAttribute('disabled')) {\n item.setAttribute('tabindex', '-1');\n } else if (item === focusTarget) {\n item.setAttribute('tabindex', '0');\n } else if (!focusTarget && item === this.focusableItems[0]) {\n item.setAttribute('tabindex', '0');\n } else {\n item.setAttribute('tabindex', '-1');\n }\n });\n }\n\n private focusItem(item: HTMLElement) {\n const items = this.sidebarItems;\n items.forEach(el => el.setAttribute('tabindex', '-1'));\n item.setAttribute('tabindex', '0');\n item.focus();\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.collapsed) return;\n\n const focusable = this.focusableItems;\n if (!focusable.length) return;\n\n const currentFocus = this.sidebarItems.find(\n item =>\n item === document.activeElement ||\n item === this.shadowRoot?.activeElement ||\n item.matches(':focus-within')\n );\n\n const currentIndex = currentFocus\n ? focusable.indexOf(currentFocus)\n : -1;\n\n let nextIndex: number | null = null;\n\n switch (event.key) {\n case 'ArrowDown':\n nextIndex =\n currentIndex < focusable.length - 1 ? currentIndex + 1 : 0;\n break;\n\n case 'ArrowUp':\n nextIndex =\n currentIndex > 0 ? currentIndex - 1 : focusable.length - 1;\n break;\n\n case 'Home':\n nextIndex = 0;\n break;\n\n case 'End':\n nextIndex = focusable.length - 1;\n break;\n\n case 'Enter':\n case ' ':\n return;\n\n default:\n return;\n }\n\n event.preventDefault();\n\n if (nextIndex !== null && focusable[nextIndex]) {\n this.focusItem(focusable[nextIndex]);\n }\n };\n\n private handleItemSelect = (event: CustomEvent) => {\n const selectedItem = event.detail.item as HTMLElement;\n const index = this.sidebarItems.indexOf(selectedItem);\n\n this.sidebarItems.forEach(\n (item, i) => ((item as any).active = i === index)\n );\n this.activeIndex = index;\n this.updateTabIndices();\n\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { selectedItem, index },\n bubbles: true,\n composed: true,\n })\n );\n\n this.requestUpdate();\n };\n\n private toggleCollapse() {\n if (this.fixed) return;\n this.collapsed = !this.collapsed;\n\n this.dispatchEvent(\n new CustomEvent('nile-toggle', {\n detail: { collapsed: this.collapsed },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleMenuItemClick(index: number) {\n const selectedItem = this.sidebarItems[index];\n if (!selectedItem || selectedItem.hasAttribute('disabled')) return;\n\n this.sidebarItems.forEach(\n (item, i) => ((item as any).active = i === index)\n );\n this.activeIndex = index;\n const text = selectedItem.textContent?.trim() || '';\n const href = (selectedItem as any).href;\n this.dispatchEvent(\n new CustomEvent('nile-click', {\n detail: { item: selectedItem, href, text },\n bubbles: true,\n composed: true,\n })\n );\n\n if (href) window.location.href = href;\n\n this.requestUpdate();\n }\n\n private get menuItemsTemplate() {\n if (!this.sidebarItems?.length) return null;\n\n const tooltipPlacement = this.placement === 'right' ? 'left' : 'right';\n\n return this.sidebarItems.map((item, index) => {\n const shouldShowTooltip = (item as any).tooltip;\n const isTruncated =\n item.scrollWidth > item.clientWidth ||\n item.scrollHeight > item.clientHeight;\n \n const content = html`\n <nile-side-bar-action-menu-item\n ?disabled=${item.hasAttribute('disabled')}\n ?active=${this.activeIndex === index}\n @click=${() => this.handleMenuItemClick(index)}\n >\n ${item.textContent}\n </nile-side-bar-action-menu-item>\n `;\n return shouldShowTooltip || isTruncated\n ? html`\n <nile-tooltip\n content=${item.textContent?.trim() || ''}\n hoist\n placement=${tooltipPlacement}\n >\n ${content}\n </nile-tooltip>\n `\n : content;\n });\n }\n \n \n \n\n public render(): TemplateResult {\n const isRight = this.placement === 'right';\n const collapsedIcon = isRight ? 'menu_open' : 'menu_close';\n const expandedIcon = isRight ? 'menu_close' : 'menu_open';\n const actionPlacement = isRight ? 'bottom-end' : 'bottom-start';\n\n return html`\n <div class=\"sidebar\" part=\"base\">\n <div class=\"sidebar-header\" part=\"header\">\n ${!this.fixed\n ? this.collapsed\n ? html`\n <nile-side-bar-action\n class=\"toggle-action\"\n placement=${actionPlacement}\n hoist\n open\n triggerDropdown=\"hover\"\n >\n <nile-button\n slot=\"trigger\"\n class=\"toggle-btn\"\n variant=\"tertiary\"\n @click=${this.toggleCollapse}\n >\n <nile-icon name=${collapsedIcon}></nile-icon>\n </nile-button>\n <nile-side-bar-action-menu>\n ${this.menuItemsTemplate}\n </nile-side-bar-action-menu>\n </nile-side-bar-action>\n `\n : html`\n <nile-button\n class=\"toggle-btn\"\n variant=\"tertiary\"\n @click=${this.toggleCollapse}\n >\n <nile-icon name=${expandedIcon}></nile-icon>\n </nile-button>\n `\n : null}\n </div>\n\n <nav\n class=\"sidebar-nav\"\n role=\"navigation\"\n aria-label=\"Sidebar\"\n style=${this.collapsed ? 'display:none;' : ''}\n part=\"nav-items\"\n >\n <slot\n @slotchange=${() => {\n this.requestUpdate();\n this.observeSidebarItems();\n this.syncActiveFromItems();\n }}\n ></slot>\n </nav>\n </div>\n `;\n }\n}\n\nexport default NileInlineSidebar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-inline-sidebar': NileInlineSidebar;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-inline-sidebar.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, CSSResultArray, TemplateResult, nothing, PropertyValues } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './nile-inline-sidebar.css';\nimport NileElement from '../internal/nile-element';\nimport { drag } from '../internal/drag';\nimport { clamp } from '../internal/math';\nimport NileInlineSidebarItem from '../nile-inline-sidebar-item/nile-inline-sidebar-item';\n\n/**\n * Nile inline sidebar component.\n *\n * @tag nile-inline-sidebar\n */\n@customElement('nile-inline-sidebar')\nexport class NileInlineSidebar extends NileElement {\n @property({ type: Boolean, reflect: true }) collapsed = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) fixed = false;\n\n @property({ type: Boolean, reflect: true }) showTooltip = false;\n\n /** The side on which the sidebar is placed. */\n @property({ type: String, reflect: true }) placement: 'left' | 'right' = 'left';\n\n /** Enables a draggable resize handle on the sidebar's trailing edge. */\n @property({ type: Boolean, reflect: true }) resizable = false;\n\n /** Current sidebar width in pixels when resizable is enabled. */\n @property({ type: Number, attribute: true }) sidebarWidth = 216;\n\n /** Minimum sidebar width in pixels. */\n @property({ type: Number, attribute: true }) minSidebarWidth = 120;\n\n @property({ type: Boolean, attribute: true }) showToggleBtn = true;\n\n /** Maximum sidebar width in pixels. */\n @property({ type: Number, attribute: true}) maxSidebarWidth = 400;\n\n @property({ type: String, reflect: true, attribute: true }) variant?: 'minimal' | 'rich' = 'minimal';\n\n @state() private activeIndex: number = -1;\n\n @query('slot') private defaultSlot!: HTMLSlotElement;\n\n private mutationObserver?: MutationObserver;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n private get sidebarItems(): HTMLElement[] {\n if (!this.defaultSlot) return [];\n const assigned = this.defaultSlot.assignedElements({ flatten: true });\n const items = assigned.flatMap(el =>\n el.tagName.toLowerCase() === 'nile-inline-sidebar-item'\n ? [el]\n : Array.from(el.querySelectorAll('nile-inline-sidebar-item'))\n );\n return items as HTMLElement[];\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('nile-click', this.handleItemSelect);\n this.addEventListener('keydown', this.handleKeyDown);\n this.mutationObserver = new MutationObserver(() =>\n this.syncActiveFromItems()\n );\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.mutationObserver?.disconnect();\n this.removeEventListener('nile-click', this.handleItemSelect);\n this.removeEventListener('keydown', this.handleKeyDown);\n }\n\n firstUpdated() {\n this.observeSidebarItems();\n this.syncActiveFromItems();\n this.syncChildSidebarItemVariants();\n\n if (this.fixed) {\n this.collapsed = false;\n }\n }\n\n updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n if (changedProperties.has('variant')) {\n this.syncChildSidebarItemVariants();\n }\n }\n\n /** Pushes sidebar `variant` onto each item (rich vs minimal) so layout stays in sync with slotted content. */\n private syncChildSidebarItemVariants() {\n const items = this.querySelectorAll(\n 'nile-inline-sidebar-item',\n ) as NodeListOf<NileInlineSidebarItem>;\n const v = this.variant ?? 'minimal';\n items.forEach(item => {\n item.variant = v;\n });\n }\n\n private observeSidebarItems() {\n if (!this.sidebarItems?.length || !this.mutationObserver) return;\n this.sidebarItems.forEach(item =>\n this.mutationObserver!.observe(item, {\n attributes: true,\n attributeFilter: ['active'],\n })\n );\n }\n\n private syncActiveFromItems() {\n if (!this.sidebarItems?.length) return;\n const activeIndex = this.sidebarItems.findIndex(item =>\n item.hasAttribute('active')\n );\n if (activeIndex !== -1 && activeIndex !== this.activeIndex) {\n this.activeIndex = activeIndex;\n this.requestUpdate();\n }\n this.updateTabIndices();\n }\n\n \n private get focusableItems(): HTMLElement[] {\n return this.sidebarItems.filter(\n item => !item.hasAttribute('disabled')\n );\n }\n\n private updateTabIndices() {\n const items = this.sidebarItems;\n if (!items.length) return;\n\n const focusTarget =\n this.activeIndex >= 0 ? items[this.activeIndex] : null;\n\n items.forEach(item => {\n if (item.hasAttribute('disabled')) {\n item.setAttribute('tabindex', '-1');\n } else if (item === focusTarget) {\n item.setAttribute('tabindex', '0');\n } else if (!focusTarget && item === this.focusableItems[0]) {\n item.setAttribute('tabindex', '0');\n } else {\n item.setAttribute('tabindex', '-1');\n }\n });\n }\n\n private focusItem(item: HTMLElement) {\n const items = this.sidebarItems;\n items.forEach(el => el.setAttribute('tabindex', '-1'));\n item.setAttribute('tabindex', '0');\n item.focus();\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.collapsed) return;\n\n const focusable = this.focusableItems;\n if (!focusable.length) return;\n\n const currentFocus = this.sidebarItems.find(\n item =>\n item === document.activeElement ||\n item === this.shadowRoot?.activeElement ||\n item.matches(':focus-within')\n );\n\n const currentIndex = currentFocus\n ? focusable.indexOf(currentFocus)\n : -1;\n\n let nextIndex: number | null = null;\n\n switch (event.key) {\n case 'ArrowDown':\n nextIndex =\n currentIndex < focusable.length - 1 ? currentIndex + 1 : 0;\n break;\n\n case 'ArrowUp':\n nextIndex =\n currentIndex > 0 ? currentIndex - 1 : focusable.length - 1;\n break;\n\n case 'Home':\n nextIndex = 0;\n break;\n\n case 'End':\n nextIndex = focusable.length - 1;\n break;\n\n case 'Enter':\n case ' ':\n return;\n\n default:\n return;\n }\n\n event.preventDefault();\n\n if (nextIndex !== null && focusable[nextIndex]) {\n this.focusItem(focusable[nextIndex]);\n }\n };\n\n private handleItemSelect = (event: CustomEvent) => {\n const selectedItem = event.detail.item as HTMLElement;\n const index = this.sidebarItems.indexOf(selectedItem);\n\n this.sidebarItems.forEach(\n (item, i) => ((item as any).active = i === index)\n );\n this.activeIndex = index;\n this.updateTabIndices();\n\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { selectedItem, index },\n bubbles: true,\n composed: true,\n })\n );\n\n this.requestUpdate();\n };\n\n private toggleCollapse() {\n if (this.fixed) return;\n this.collapsed = !this.collapsed;\n\n this.dispatchEvent(\n new CustomEvent('nile-toggle', {\n detail: { collapsed: this.collapsed },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleMenuItemClick(index: number) {\n const selectedItem = this.sidebarItems[index];\n if (!selectedItem || selectedItem.hasAttribute('disabled')) return;\n\n this.sidebarItems.forEach(\n (item, i) => ((item as any).active = i === index)\n );\n this.activeIndex = index;\n const text = selectedItem.textContent?.trim() || '';\n const href = (selectedItem as any).href;\n this.dispatchEvent(\n new CustomEvent('nile-click', {\n detail: { item: selectedItem, href, text },\n bubbles: true,\n composed: true,\n })\n );\n\n if (href) window.location.href = href;\n\n this.requestUpdate();\n }\n\n private handleSeparatorDrag(event: PointerEvent) {\n if (!this.resizable || this.collapsed) return;\n if (event.cancelable) event.preventDefault();\n\n const isRight = this.placement === 'right';\n\n this.style.setProperty('--sidebar-transition', 'none');\n\n drag(this, {\n onMove: (x: number) => {\n const hostRect = this.getBoundingClientRect();\n let newWidth: number;\n\n if (isRight) {\n newWidth = hostRect.width - x;\n } else {\n newWidth = x;\n }\n\n this.sidebarWidth = clamp(newWidth, this.minSidebarWidth, this.maxSidebarWidth);\n this.emit('nile-sidebar-resize', { width: this.sidebarWidth });\n },\n onStop: () => {\n this.style.removeProperty('--sidebar-transition');\n },\n initialEvent: event,\n });\n }\n\n private handleSeparatorKeyDown(event: KeyboardEvent) {\n if (!this.resizable || this.collapsed) return;\n\n const step = event.shiftKey ? 10 : 1;\n let newWidth = this.sidebarWidth;\n\n switch (event.key) {\n case 'ArrowLeft':\n newWidth -= step;\n break;\n case 'ArrowRight':\n newWidth += step;\n break;\n case 'Home':\n newWidth = this.minSidebarWidth;\n break;\n case 'End':\n newWidth = this.maxSidebarWidth;\n break;\n default:\n return;\n }\n\n event.preventDefault();\n this.sidebarWidth = clamp(newWidth, this.minSidebarWidth, this.maxSidebarWidth);\n this.emit('nile-sidebar-resize', { width: this.sidebarWidth });\n }\n\n private get separatorTemplate() {\n if (!this.resizable || this.collapsed) return nothing;\n\n return html`\n <div\n class=\"separator\"\n part=\"separator\"\n tabindex=\"0\"\n role=\"separator\"\n aria-valuenow=${this.sidebarWidth}\n aria-valuemin=${this.minSidebarWidth}\n aria-valuemax=${this.maxSidebarWidth}\n aria-label=\"Resize sidebar\"\n @keydown=${this.handleSeparatorKeyDown}\n @mousedown=${this.handleSeparatorDrag}\n @touchstart=${this.handleSeparatorDrag}\n ></div>\n `;\n }\n\n private get menuItemsTemplate() {\n if (!this.sidebarItems?.length) return null;\n\n const tooltipPlacement = this.placement === 'right' ? 'left' : 'right';\n\n return this.sidebarItems.map((item, index) => {\n const shouldShowTooltip = (item as any).tooltip;\n const isTruncated =\n item.scrollWidth > item.clientWidth ||\n item.scrollHeight > item.clientHeight;\n \n const content = html`\n <nile-side-bar-action-menu-item\n ?disabled=${item.hasAttribute('disabled')}\n ?active=${this.activeIndex === index}\n @click=${() => this.handleMenuItemClick(index)}\n >\n ${item.textContent}\n </nile-side-bar-action-menu-item>\n `;\n return shouldShowTooltip || isTruncated\n ? html`\n <nile-tooltip\n content=${item.textContent?.trim() || ''}\n hoist\n placement=${tooltipPlacement}\n >\n ${content}\n </nile-tooltip>\n `\n : content;\n });\n }\n \n \n \n\n public render(): TemplateResult {\n const isRight = this.placement === 'right';\n const collapsedIcon = isRight ? 'menu_open' : 'menu_close';\n const expandedIcon = isRight ? 'menu_close' : 'menu_open';\n const actionPlacement = isRight ? 'bottom-end' : 'bottom-start';\n\n const sidebarStyle = !this.collapsed\n ? `width: ${this.sidebarWidth}px;`\n : '';\n\n return html`\n <div class=\"sidebar\" part=\"base\" style=${sidebarStyle}>\n <div class=\"sidebar-header\" part=\"header\">\n ${!this.fixed\n ? this.collapsed\n ? html`\n <nile-side-bar-action\n class=\"toggle-action\"\n placement=${actionPlacement}\n hoist\n open\n triggerDropdown=\"hover\"\n >\n ${this.showToggleBtn\n ? html`\n <nile-button\n slot=\"trigger\"\n class=\"toggle-btn\"\n variant=\"tertiary\"\n @click=${this.toggleCollapse}\n >\n <nile-icon name=${collapsedIcon}></nile-icon>\n </nile-button>\n `\n : nothing}\n <nile-side-bar-action-menu>\n ${this.menuItemsTemplate}\n </nile-side-bar-action-menu>\n </nile-side-bar-action>\n `\n : html`\n ${this.showToggleBtn\n ? html` \n <nile-button\n class=\"toggle-btn\"\n variant=\"tertiary\"\n @click=${this.toggleCollapse}\n >\n <nile-icon name=${expandedIcon}></nile-icon>\n </nile-button>\n `\n : nothing}\n `\n : null}\n </div>\n\n <nav\n class=${classMap({ 'sidebar-nav': true, 'sidebar-nav--rich': this.variant === 'rich' })}\n role=\"navigation\"\n aria-label=\"Sidebar\"\n style=${this.collapsed ? 'display:none;' : ''}\n part=\"nav-items\"\n >\n <slot\n @slotchange=${() => {\n this.requestUpdate();\n this.observeSidebarItems();\n this.syncActiveFromItems();\n this.syncChildSidebarItemVariants();\n }}\n ></slot>\n </nav>\n </div>\n ${this.separatorTemplate}\n `;\n }\n}\n\nexport default NileInlineSidebar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-inline-sidebar': NileInlineSidebar;\n }\n}\n"]}
@@ -4,6 +4,7 @@
4
4
  * This source code is licensed under the BSD-3-Clause license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+ /** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */
7
8
  export declare const styles: import("lit").CSSResult;
8
9
  declare const _default: import("lit").CSSResult[];
9
10
  export default _default;
@@ -5,6 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import { css } from 'lit';
8
+ /** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */
8
9
  export const styles = css `
9
10
  :host {
10
11
  display: block;
@@ -13,10 +14,9 @@ export const styles = css `
13
14
  .group {
14
15
  display: flex;
15
16
  flex-direction: column;
16
- gap: var(--nile-spacing-xs);
17
+ gap: var(--nile-spacing-xs, var(--ng-spacing-xs));
17
18
  }
18
19
 
19
-
20
20
  :host([divider="false"]) .group {
21
21
  border-bottom: none;
22
22
  margin-bottom: 0;
@@ -24,18 +24,18 @@ export const styles = css `
24
24
  }
25
25
 
26
26
  .group-label {
27
- font-size: var(--nile-type-scale-3);
28
- font-weight: var(--nile-font-weight-semibold);
27
+ font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
28
+ font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));
29
29
  text-transform: uppercase;
30
- color: var(--nile-colors-neutral-500);
31
- margin: var(--nile-spacing-xs) 0 var(--nile-spacing-xs) var(--nile-spacing-md);
30
+ color: var(--nile-colors-neutral-500, var(--ng-colors-text-disabled));
31
+ margin: var(--nile-spacing-xs, var(--ng-spacing-xs)) 0 var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-md, var(--ng-spacing-md));
32
32
  letter-spacing: 0.05em;
33
33
  }
34
34
 
35
35
  .group-items {
36
36
  display: flex;
37
37
  flex-direction: column;
38
- gap: var(--nile-spacing-xs);
38
+ gap: var(--nile-spacing-xs, var(--ng-spacing-xs));
39
39
  }
40
40
  `;
41
41
  export default [styles];
@@ -1 +1 @@
1
- {"version":3,"file":"nile-inline-sidebar-group.css.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2025\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport { css } from 'lit';\n\nexport const styles = css`\n:host {\n display: block;\n}\n\n.group {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs);\n}\n\n\n:host([divider=\"false\"]) .group {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n}\n\n.group-label {\n font-size: var(--nile-type-scale-3);\n font-weight: var(--nile-font-weight-semibold);\n text-transform: uppercase;\n color: var(--nile-colors-neutral-500); \n margin: var(--nile-spacing-xs) 0 var(--nile-spacing-xs) var(--nile-spacing-md);\n letter-spacing: 0.05em;\n}\n\n.group-items {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs);\n}\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-inline-sidebar-group.css.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,mEAAmE;AACnE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2025\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport { css } from 'lit';\n\n/** Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback. */\nexport const styles = css`\n:host {\n display: block;\n}\n\n.group {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n}\n\n:host([divider=\"false\"]) .group {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n}\n\n.group-label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n text-transform: uppercase;\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-disabled));\n margin: var(--nile-spacing-xs, var(--ng-spacing-xs)) 0 var(--nile-spacing-xs, var(--ng-spacing-xs)) var(--nile-spacing-md, var(--ng-spacing-md));\n letter-spacing: 0.05em;\n}\n\n.group-items {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n}\n`;\n\nexport default [styles];\n"]}
@@ -5,6 +5,6 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  /**
8
- * InlinesidebarItem CSS
8
+ * InlinesidebarItem CSS — Enterprise (`--nile-*`) primary, NxtGen (`--ng-*`) fallback.
9
9
  */
10
10
  export declare const styles: import("lit").CSSResult;