@aquera/nile-elements 1.5.4 → 1.5.6

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 (297) hide show
  1. package/README.md +10 -0
  2. package/demo/index.css +9 -0
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +871 -255
  6. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
  7. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
  8. package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +13 -2
  9. package/dist/nile-button/nile-button.cjs.js +1 -1
  10. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  11. package/dist/nile-button/nile-button.css.cjs.js +1 -1
  12. package/dist/nile-button/nile-button.css.cjs.js.map +1 -1
  13. package/dist/nile-button/nile-button.css.esm.js +89 -33
  14. package/dist/nile-button/nile-button.esm.js +2 -2
  15. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  16. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  17. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  18. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  19. package/dist/nile-calendar/nile-calendar.css.esm.js +59 -2
  20. package/dist/nile-calendar/nile-calendar.esm.js +16 -10
  21. package/dist/nile-checkbox/nile-checkbox.css.cjs.js +1 -1
  22. package/dist/nile-checkbox/nile-checkbox.css.cjs.js.map +1 -1
  23. package/dist/nile-checkbox/nile-checkbox.css.esm.js +4 -5
  24. package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
  25. package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
  26. package/dist/nile-chip/nile-chip.css.esm.js +37 -23
  27. package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
  28. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  29. package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
  30. package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
  31. package/dist/nile-code-editor/nile-code-editor.css.esm.js +7 -6
  32. package/dist/nile-code-editor/nile-code-editor.esm.js +1 -1
  33. package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
  34. package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
  35. package/dist/nile-date-picker/nile-date-picker.esm.js +4 -4
  36. package/dist/nile-detail/index.cjs.js +2 -0
  37. package/dist/nile-detail/index.cjs.js.map +1 -0
  38. package/dist/nile-detail/index.esm.js +1 -0
  39. package/dist/nile-detail/nile-detail.cjs.js +2 -0
  40. package/dist/nile-detail/nile-detail.cjs.js.map +1 -0
  41. package/dist/nile-detail/nile-detail.css.cjs.js +2 -0
  42. package/dist/nile-detail/nile-detail.css.cjs.js.map +1 -0
  43. package/dist/nile-detail/nile-detail.css.esm.js +149 -0
  44. package/dist/nile-detail/nile-detail.esm.js +45 -0
  45. package/dist/nile-detail/nile-detail.utils.cjs.js +2 -0
  46. package/dist/nile-detail/nile-detail.utils.cjs.js.map +1 -0
  47. package/dist/nile-detail/nile-detail.utils.esm.js +1 -0
  48. package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
  49. package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
  50. package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
  51. package/dist/nile-file-upload/utils/file-validation.util.cjs.js +2 -2
  52. package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
  53. package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
  54. package/dist/nile-filter-chip/nile-filter-chip.cjs.js +1 -1
  55. package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +1 -1
  56. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js +1 -1
  57. package/dist/nile-filter-chip/nile-filter-chip.css.cjs.js.map +1 -1
  58. package/dist/nile-filter-chip/nile-filter-chip.css.esm.js +24 -2
  59. package/dist/nile-filter-chip/nile-filter-chip.esm.js +2 -2
  60. package/dist/nile-inline-edit/nile-inline-edit.cjs.js +1 -1
  61. package/dist/nile-inline-edit/nile-inline-edit.cjs.js.map +1 -1
  62. package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js +1 -1
  63. package/dist/nile-inline-edit/nile-inline-edit.css.cjs.js.map +1 -1
  64. package/dist/nile-inline-edit/nile-inline-edit.css.esm.js +15 -6
  65. package/dist/nile-inline-edit/nile-inline-edit.esm.js +2 -2
  66. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
  67. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
  68. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
  69. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
  70. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +19 -0
  71. package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +16 -14
  72. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
  73. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
  74. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +8 -3
  75. package/dist/nile-input/nile-input.css.cjs.js +1 -1
  76. package/dist/nile-input/nile-input.css.cjs.js.map +1 -1
  77. package/dist/nile-input/nile-input.css.esm.js +4 -4
  78. package/dist/nile-link/nile-link.cjs.js +1 -1
  79. package/dist/nile-link/nile-link.cjs.js.map +1 -1
  80. package/dist/nile-link/nile-link.css.cjs.js +1 -1
  81. package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
  82. package/dist/nile-link/nile-link.css.esm.js +3 -4
  83. package/dist/nile-link/nile-link.esm.js +2 -2
  84. package/dist/nile-pagination/nile-pagination.cjs.js +1 -1
  85. package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -1
  86. package/dist/nile-pagination/nile-pagination.css.cjs.js +1 -1
  87. package/dist/nile-pagination/nile-pagination.css.cjs.js.map +1 -1
  88. package/dist/nile-pagination/nile-pagination.css.esm.js +109 -5
  89. package/dist/nile-pagination/nile-pagination.esm.js +70 -3
  90. package/dist/nile-qr-code/index.cjs.js +2 -0
  91. package/dist/nile-qr-code/index.cjs.js.map +1 -0
  92. package/dist/nile-qr-code/index.esm.js +1 -0
  93. package/dist/nile-qr-code/nile-qr-code-utils.cjs.js +2 -0
  94. package/dist/nile-qr-code/nile-qr-code-utils.cjs.js.map +1 -0
  95. package/dist/nile-qr-code/nile-qr-code-utils.esm.js +1 -0
  96. package/dist/nile-qr-code/nile-qr-code.cjs.js +2 -0
  97. package/dist/nile-qr-code/nile-qr-code.cjs.js.map +1 -0
  98. package/dist/nile-qr-code/nile-qr-code.css.cjs.js +2 -0
  99. package/dist/nile-qr-code/nile-qr-code.css.cjs.js.map +1 -0
  100. package/dist/nile-qr-code/nile-qr-code.css.esm.js +12 -0
  101. package/dist/nile-qr-code/nile-qr-code.esm.js +9 -0
  102. package/dist/nile-radio/nile-radio.css.cjs.js +1 -1
  103. package/dist/nile-radio/nile-radio.css.cjs.js.map +1 -1
  104. package/dist/nile-radio/nile-radio.css.esm.js +1 -1
  105. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  106. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  107. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  108. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  109. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +25 -6
  110. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  111. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +1 -1
  112. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -1
  113. package/dist/nile-rich-text-editor/nile-rte-select.esm.js +4 -3
  114. package/dist/nile-select/nile-select.css.cjs.js +1 -1
  115. package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
  116. package/dist/nile-select/nile-select.css.esm.js +7 -4
  117. package/dist/nile-slide-toggle/nile-slide-toggle.css.cjs.js +1 -1
  118. package/dist/nile-slide-toggle/nile-slide-toggle.css.cjs.js.map +1 -1
  119. package/dist/nile-slide-toggle/nile-slide-toggle.css.esm.js +5 -1
  120. package/dist/nile-textarea/nile-textarea.css.cjs.js +1 -1
  121. package/dist/nile-textarea/nile-textarea.css.cjs.js.map +1 -1
  122. package/dist/nile-textarea/nile-textarea.css.esm.js +10 -5
  123. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
  124. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
  125. package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +5 -3
  126. package/dist/src/index.d.ts +2 -0
  127. package/dist/src/index.js +2 -0
  128. package/dist/src/index.js.map +1 -1
  129. package/dist/src/nile-auto-complete/nile-auto-complete.css.js +11 -0
  130. package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
  131. package/dist/src/nile-button/nile-button.css.js +89 -33
  132. package/dist/src/nile-button/nile-button.css.js.map +1 -1
  133. package/dist/src/nile-button/nile-button.js +5 -5
  134. package/dist/src/nile-button/nile-button.js.map +1 -1
  135. package/dist/src/nile-calendar/nile-calendar.css.js +57 -0
  136. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  137. package/dist/src/nile-calendar/nile-calendar.d.ts +1 -0
  138. package/dist/src/nile-calendar/nile-calendar.js +24 -6
  139. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  140. package/dist/src/nile-checkbox/nile-checkbox.css.js +4 -5
  141. package/dist/src/nile-checkbox/nile-checkbox.css.js.map +1 -1
  142. package/dist/src/nile-chip/nile-chip.css.js +35 -21
  143. package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
  144. package/dist/src/nile-code-editor/nile-code-editor.css.js +7 -6
  145. package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
  146. package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -1
  147. package/dist/src/nile-code-editor/nile-code-editor.js +7 -1
  148. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  149. package/dist/src/nile-date-picker/nile-date-picker.d.ts +3 -0
  150. package/dist/src/nile-date-picker/nile-date-picker.js +22 -2
  151. package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
  152. package/dist/src/nile-detail/index.d.ts +1 -0
  153. package/dist/src/nile-detail/index.js +2 -0
  154. package/dist/src/nile-detail/index.js.map +1 -0
  155. package/dist/src/nile-detail/nile-detail.css.d.ts +3 -0
  156. package/dist/src/nile-detail/nile-detail.css.js +152 -0
  157. package/dist/src/nile-detail/nile-detail.css.js.map +1 -0
  158. package/dist/src/nile-detail/nile-detail.d.ts +29 -0
  159. package/dist/src/nile-detail/nile-detail.js +143 -0
  160. package/dist/src/nile-detail/nile-detail.js.map +1 -0
  161. package/dist/src/nile-detail/nile-detail.test.d.ts +1 -0
  162. package/dist/src/nile-detail/nile-detail.test.js +168 -0
  163. package/dist/src/nile-detail/nile-detail.test.js.map +1 -0
  164. package/dist/src/nile-detail/nile-detail.utils.d.ts +8 -0
  165. package/dist/src/nile-detail/nile-detail.utils.js +117 -0
  166. package/dist/src/nile-detail/nile-detail.utils.js.map +1 -0
  167. package/dist/src/nile-dropdown/nile-dropdown.d.ts +1 -0
  168. package/dist/src/nile-dropdown/nile-dropdown.js +11 -0
  169. package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
  170. package/dist/src/nile-file-upload/utils/file-validation.util.js +11 -6
  171. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
  172. package/dist/src/nile-filter-chip/nile-filter-chip.css.js +22 -0
  173. package/dist/src/nile-filter-chip/nile-filter-chip.css.js.map +1 -1
  174. package/dist/src/nile-filter-chip/nile-filter-chip.d.ts +1 -0
  175. package/dist/src/nile-filter-chip/nile-filter-chip.js +6 -0
  176. package/dist/src/nile-filter-chip/nile-filter-chip.js.map +1 -1
  177. package/dist/src/nile-inline-edit/nile-inline-edit.css.js +15 -6
  178. package/dist/src/nile-inline-edit/nile-inline-edit.css.js.map +1 -1
  179. package/dist/src/nile-inline-edit/nile-inline-edit.d.ts +2 -0
  180. package/dist/src/nile-inline-edit/nile-inline-edit.js +7 -0
  181. package/dist/src/nile-inline-edit/nile-inline-edit.js.map +1 -1
  182. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +19 -0
  183. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
  184. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.d.ts +6 -0
  185. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +88 -4
  186. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
  187. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.d.ts +3 -0
  188. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.js +110 -0
  189. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.test.js.map +1 -0
  190. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.d.ts +2 -0
  191. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.js +109 -0
  192. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.js.map +1 -0
  193. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +4 -0
  194. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +30 -2
  195. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
  196. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.d.ts +2 -0
  197. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.js +109 -0
  198. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.js.map +1 -0
  199. package/dist/src/nile-input/nile-input.css.js +4 -4
  200. package/dist/src/nile-input/nile-input.css.js.map +1 -1
  201. package/dist/src/nile-link/nile-link.css.js +1 -2
  202. package/dist/src/nile-link/nile-link.css.js.map +1 -1
  203. package/dist/src/nile-link/nile-link.js +1 -0
  204. package/dist/src/nile-link/nile-link.js.map +1 -1
  205. package/dist/src/nile-pagination/nile-pagination.css.js +107 -3
  206. package/dist/src/nile-pagination/nile-pagination.css.js.map +1 -1
  207. package/dist/src/nile-pagination/nile-pagination.d.ts +5 -1
  208. package/dist/src/nile-pagination/nile-pagination.js +84 -1
  209. package/dist/src/nile-pagination/nile-pagination.js.map +1 -1
  210. package/dist/src/nile-pagination/nile-pagination.test.js +1187 -103
  211. package/dist/src/nile-pagination/nile-pagination.test.js.map +1 -1
  212. package/dist/src/nile-qr-code/index.d.ts +1 -0
  213. package/dist/src/nile-qr-code/index.js +2 -0
  214. package/dist/src/nile-qr-code/index.js.map +1 -0
  215. package/dist/src/nile-qr-code/nile-qr-code-utils.d.ts +15 -0
  216. package/dist/src/nile-qr-code/nile-qr-code-utils.js +678 -0
  217. package/dist/src/nile-qr-code/nile-qr-code-utils.js.map +1 -0
  218. package/dist/src/nile-qr-code/nile-qr-code.css.d.ts +12 -0
  219. package/dist/src/nile-qr-code/nile-qr-code.css.js +24 -0
  220. package/dist/src/nile-qr-code/nile-qr-code.css.js.map +1 -0
  221. package/dist/src/nile-qr-code/nile-qr-code.d.ts +127 -0
  222. package/dist/src/nile-qr-code/nile-qr-code.js +381 -0
  223. package/dist/src/nile-qr-code/nile-qr-code.js.map +1 -0
  224. package/dist/src/nile-qr-code/nile-qr-code.test.d.ts +1 -0
  225. package/dist/src/nile-qr-code/nile-qr-code.test.js +719 -0
  226. package/dist/src/nile-qr-code/nile-qr-code.test.js.map +1 -0
  227. package/dist/src/nile-radio/nile-radio.css.js +1 -1
  228. package/dist/src/nile-radio/nile-radio.css.js.map +1 -1
  229. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +25 -6
  230. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  231. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +1 -0
  232. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +17 -6
  233. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  234. package/dist/src/nile-rich-text-editor/nile-rte-select.d.ts +1 -0
  235. package/dist/src/nile-rich-text-editor/nile-rte-select.js +7 -2
  236. package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -1
  237. package/dist/src/nile-select/nile-select.css.js +7 -4
  238. package/dist/src/nile-select/nile-select.css.js.map +1 -1
  239. package/dist/src/nile-slide-toggle/nile-slide-toggle.css.js +5 -1
  240. package/dist/src/nile-slide-toggle/nile-slide-toggle.css.js.map +1 -1
  241. package/dist/src/nile-textarea/nile-textarea.css.js +10 -5
  242. package/dist/src/nile-textarea/nile-textarea.css.js.map +1 -1
  243. package/dist/src/nile-virtual-select/nile-virtual-select.css.js +5 -3
  244. package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
  245. package/dist/src/version.js +1 -1
  246. package/dist/src/version.js.map +1 -1
  247. package/dist/tsconfig.tsbuildinfo +1 -1
  248. package/package.json +3 -2
  249. package/src/index.ts +3 -2
  250. package/src/nile-auto-complete/nile-auto-complete.css.ts +11 -0
  251. package/src/nile-button/nile-button.css.ts +89 -33
  252. package/src/nile-button/nile-button.ts +6 -5
  253. package/src/nile-calendar/nile-calendar.css.ts +57 -0
  254. package/src/nile-calendar/nile-calendar.ts +17 -6
  255. package/src/nile-checkbox/nile-checkbox.css.ts +4 -5
  256. package/src/nile-chip/nile-chip.css.ts +35 -21
  257. package/src/nile-code-editor/nile-code-editor.css.ts +7 -6
  258. package/src/nile-code-editor/nile-code-editor.ts +7 -1
  259. package/src/nile-date-picker/nile-date-picker.ts +22 -2
  260. package/src/nile-detail/index.ts +1 -0
  261. package/src/nile-detail/nile-detail.css.ts +153 -0
  262. package/src/nile-detail/nile-detail.test.ts +215 -0
  263. package/src/nile-detail/nile-detail.ts +140 -0
  264. package/src/nile-detail/nile-detail.utils.ts +133 -0
  265. package/src/nile-dropdown/nile-dropdown.ts +11 -0
  266. package/src/nile-file-upload/utils/file-validation.util.ts +10 -5
  267. package/src/nile-filter-chip/nile-filter-chip.css.ts +22 -0
  268. package/src/nile-filter-chip/nile-filter-chip.ts +2 -0
  269. package/src/nile-inline-edit/nile-inline-edit.css.ts +15 -6
  270. package/src/nile-inline-edit/nile-inline-edit.ts +4 -0
  271. package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +19 -0
  272. package/src/nile-inline-sidebar/nile-inline-sidebar.test.ts +108 -0
  273. package/src/nile-inline-sidebar/nile-inline-sidebar.ts +108 -5
  274. package/src/nile-inline-sidebar-group/nile-inline-sidebar-group.test.ts +107 -0
  275. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.test.ts +107 -0
  276. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +34 -3
  277. package/src/nile-input/nile-input.css.ts +4 -4
  278. package/src/nile-link/nile-link.css.ts +1 -2
  279. package/src/nile-link/nile-link.ts +1 -0
  280. package/src/nile-pagination/nile-pagination.css.ts +107 -3
  281. package/src/nile-pagination/nile-pagination.test.ts +1388 -101
  282. package/src/nile-pagination/nile-pagination.ts +87 -2
  283. package/src/nile-qr-code/index.ts +1 -0
  284. package/src/nile-qr-code/nile-qr-code-utils.ts +733 -0
  285. package/src/nile-qr-code/nile-qr-code.css.ts +26 -0
  286. package/src/nile-qr-code/nile-qr-code.test.ts +879 -0
  287. package/src/nile-qr-code/nile-qr-code.ts +431 -0
  288. package/src/nile-radio/nile-radio.css.ts +1 -1
  289. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +25 -6
  290. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +14 -6
  291. package/src/nile-rich-text-editor/nile-rte-select.ts +5 -2
  292. package/src/nile-select/nile-select.css.ts +7 -4
  293. package/src/nile-slide-toggle/nile-slide-toggle.css.ts +5 -1
  294. package/src/nile-textarea/nile-textarea.css.ts +10 -5
  295. package/src/nile-virtual-select/nile-virtual-select.css.ts +5 -3
  296. package/vscode-html-custom-data.json +163 -10
  297. package/web-test-runner.config.mjs +1 -1
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgGxB,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"]}
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"]}
@@ -15,6 +15,8 @@ export declare class NileInlineSidebar extends NileElement {
15
15
  collapsed: boolean;
16
16
  fixed: boolean;
17
17
  showTooltip: boolean;
18
+ /** The side on which the sidebar is placed. */
19
+ placement: 'left' | 'right';
18
20
  private activeIndex;
19
21
  private defaultSlot;
20
22
  private mutationObserver?;
@@ -25,6 +27,10 @@ export declare class NileInlineSidebar extends NileElement {
25
27
  firstUpdated(): void;
26
28
  private observeSidebarItems;
27
29
  private syncActiveFromItems;
30
+ private get focusableItems();
31
+ private updateTabIndices;
32
+ private focusItem;
33
+ private handleKeyDown;
28
34
  private handleItemSelect;
29
35
  private toggleCollapse;
30
36
  private handleMenuItemClick;
@@ -20,12 +20,54 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
20
20
  this.collapsed = false;
21
21
  this.fixed = false;
22
22
  this.showTooltip = false;
23
+ /** The side on which the sidebar is placed. */
24
+ this.placement = 'left';
23
25
  this.activeIndex = -1;
26
+ this.handleKeyDown = (event) => {
27
+ if (this.collapsed)
28
+ return;
29
+ const focusable = this.focusableItems;
30
+ if (!focusable.length)
31
+ return;
32
+ const currentFocus = this.sidebarItems.find(item => item === document.activeElement ||
33
+ item === this.shadowRoot?.activeElement ||
34
+ item.matches(':focus-within'));
35
+ const currentIndex = currentFocus
36
+ ? focusable.indexOf(currentFocus)
37
+ : -1;
38
+ let nextIndex = null;
39
+ switch (event.key) {
40
+ case 'ArrowDown':
41
+ nextIndex =
42
+ currentIndex < focusable.length - 1 ? currentIndex + 1 : 0;
43
+ break;
44
+ case 'ArrowUp':
45
+ nextIndex =
46
+ currentIndex > 0 ? currentIndex - 1 : focusable.length - 1;
47
+ break;
48
+ case 'Home':
49
+ nextIndex = 0;
50
+ break;
51
+ case 'End':
52
+ nextIndex = focusable.length - 1;
53
+ break;
54
+ case 'Enter':
55
+ case ' ':
56
+ return;
57
+ default:
58
+ return;
59
+ }
60
+ event.preventDefault();
61
+ if (nextIndex !== null && focusable[nextIndex]) {
62
+ this.focusItem(focusable[nextIndex]);
63
+ }
64
+ };
24
65
  this.handleItemSelect = (event) => {
25
66
  const selectedItem = event.detail.item;
26
67
  const index = this.sidebarItems.indexOf(selectedItem);
27
68
  this.sidebarItems.forEach((item, i) => (item.active = i === index));
28
69
  this.activeIndex = index;
70
+ this.updateTabIndices();
29
71
  this.dispatchEvent(new CustomEvent('nile-change', {
30
72
  detail: { selectedItem, index },
31
73
  bubbles: true,
@@ -49,12 +91,14 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
49
91
  connectedCallback() {
50
92
  super.connectedCallback();
51
93
  this.addEventListener('nile-click', this.handleItemSelect);
94
+ this.addEventListener('keydown', this.handleKeyDown);
52
95
  this.mutationObserver = new MutationObserver(() => this.syncActiveFromItems());
53
96
  }
54
97
  disconnectedCallback() {
55
98
  super.disconnectedCallback();
56
99
  this.mutationObserver?.disconnect();
57
100
  this.removeEventListener('nile-click', this.handleItemSelect);
101
+ this.removeEventListener('keydown', this.handleKeyDown);
58
102
  }
59
103
  firstUpdated() {
60
104
  this.observeSidebarItems();
@@ -79,6 +123,36 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
79
123
  this.activeIndex = activeIndex;
80
124
  this.requestUpdate();
81
125
  }
126
+ this.updateTabIndices();
127
+ }
128
+ get focusableItems() {
129
+ return this.sidebarItems.filter(item => !item.hasAttribute('disabled'));
130
+ }
131
+ updateTabIndices() {
132
+ const items = this.sidebarItems;
133
+ if (!items.length)
134
+ return;
135
+ const focusTarget = this.activeIndex >= 0 ? items[this.activeIndex] : null;
136
+ items.forEach(item => {
137
+ if (item.hasAttribute('disabled')) {
138
+ item.setAttribute('tabindex', '-1');
139
+ }
140
+ else if (item === focusTarget) {
141
+ item.setAttribute('tabindex', '0');
142
+ }
143
+ else if (!focusTarget && item === this.focusableItems[0]) {
144
+ item.setAttribute('tabindex', '0');
145
+ }
146
+ else {
147
+ item.setAttribute('tabindex', '-1');
148
+ }
149
+ });
150
+ }
151
+ focusItem(item) {
152
+ const items = this.sidebarItems;
153
+ items.forEach(el => el.setAttribute('tabindex', '-1'));
154
+ item.setAttribute('tabindex', '0');
155
+ item.focus();
82
156
  }
83
157
  toggleCollapse() {
84
158
  if (this.fixed)
@@ -110,6 +184,7 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
110
184
  get menuItemsTemplate() {
111
185
  if (!this.sidebarItems?.length)
112
186
  return null;
187
+ const tooltipPlacement = this.placement === 'right' ? 'left' : 'right';
113
188
  return this.sidebarItems.map((item, index) => {
114
189
  const shouldShowTooltip = item.tooltip;
115
190
  const isTruncated = item.scrollWidth > item.clientWidth ||
@@ -128,7 +203,7 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
128
203
  <nile-tooltip
129
204
  content=${item.textContent?.trim() || ''}
130
205
  hoist
131
- placement="right"
206
+ placement=${tooltipPlacement}
132
207
  >
133
208
  ${content}
134
209
  </nile-tooltip>
@@ -137,6 +212,10 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
137
212
  });
138
213
  }
139
214
  render() {
215
+ const isRight = this.placement === 'right';
216
+ const collapsedIcon = isRight ? 'menu_open' : 'menu_close';
217
+ const expandedIcon = isRight ? 'menu_close' : 'menu_open';
218
+ const actionPlacement = isRight ? 'bottom-end' : 'bottom-start';
140
219
  return html `
141
220
  <div class="sidebar" part="base">
142
221
  <div class="sidebar-header" part="header">
@@ -145,7 +224,7 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
145
224
  ? html `
146
225
  <nile-side-bar-action
147
226
  class="toggle-action"
148
- placement="bottom-start"
227
+ placement=${actionPlacement}
149
228
  hoist
150
229
  open
151
230
  triggerDropdown="hover"
@@ -156,7 +235,7 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
156
235
  variant="tertiary"
157
236
  @click=${this.toggleCollapse}
158
237
  >
159
- <nile-icon name="menu_close"></nile-icon>
238
+ <nile-icon name=${collapsedIcon}></nile-icon>
160
239
  </nile-button>
161
240
  <nile-side-bar-action-menu>
162
241
  ${this.menuItemsTemplate}
@@ -169,7 +248,7 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
169
248
  variant="tertiary"
170
249
  @click=${this.toggleCollapse}
171
250
  >
172
- <nile-icon name="menu_open"></nile-icon>
251
+ <nile-icon name=${expandedIcon}></nile-icon>
173
252
  </nile-button>
174
253
  `
175
254
  : null}
@@ -177,6 +256,8 @@ let NileInlineSidebar = class NileInlineSidebar extends NileElement {
177
256
 
178
257
  <nav
179
258
  class="sidebar-nav"
259
+ role="navigation"
260
+ aria-label="Sidebar"
180
261
  style=${this.collapsed ? 'display:none;' : ''}
181
262
  part="nav-items"
182
263
  >
@@ -201,6 +282,9 @@ __decorate([
201
282
  __decorate([
202
283
  property({ type: Boolean, reflect: true })
203
284
  ], NileInlineSidebar.prototype, "showTooltip", void 0);
285
+ __decorate([
286
+ property({ type: String, reflect: true })
287
+ ], NileInlineSidebar.prototype, "placement", void 0);
204
288
  __decorate([
205
289
  state()
206
290
  ], 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 @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.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 }\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 }\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\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 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=\"right\"\n >\n ${content}\n </nile-tooltip>\n `\n : content;\n });\n }\n \n \n \n\n public render(): TemplateResult {\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=\"bottom-start\"\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=\"menu_close\"></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=\"menu_open\"></nile-icon>\n </nile-button>\n `\n : null}\n </div>\n\n <nav\n class=\"sidebar-nav\"\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 } 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"]}
@@ -0,0 +1,3 @@
1
+ import './nile-inline-sidebar';
2
+ import '../nile-inline-sidebar-item/nile-inline-sidebar-item';
3
+ import '../nile-inline-sidebar-group/nile-inline-sidebar-group';
@@ -0,0 +1,110 @@
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
+ import './nile-inline-sidebar';
3
+ import '../nile-inline-sidebar-item/nile-inline-sidebar-item';
4
+ import '../nile-inline-sidebar-group/nile-inline-sidebar-group';
5
+ describe('NileInlineSidebar', () => {
6
+ it('1. renders', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el).to.exist; });
7
+ it('2. shadow root', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot).to.not.be.null; });
8
+ it('3. tag name', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.tagName.toLowerCase()).to.equal('nile-inline-sidebar'); });
9
+ it('4. collapsed defaults false', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.collapsed).to.be.false; });
10
+ it('5. fixed defaults false', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.fixed).to.be.false; });
11
+ it('6. showTooltip defaults false', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.showTooltip).to.be.false; });
12
+ it('7. placement defaults left', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.placement).to.equal('left'); });
13
+ it('8. set collapsed', async () => { const el = await fixture(html `<nile-inline-sidebar collapsed></nile-inline-sidebar>`); expect(el.collapsed).to.be.true; });
14
+ it('9. set fixed', async () => { const el = await fixture(html `<nile-inline-sidebar fixed></nile-inline-sidebar>`); expect(el.fixed).to.be.true; });
15
+ it('10. set showTooltip', async () => { const el = await fixture(html `<nile-inline-sidebar showTooltip></nile-inline-sidebar>`); expect(el.showTooltip).to.be.true; });
16
+ it('11. set placement right', async () => { const el = await fixture(html `<nile-inline-sidebar placement="right"></nile-inline-sidebar>`); expect(el.placement).to.equal('right'); });
17
+ it('12. set placement left', async () => { const el = await fixture(html `<nile-inline-sidebar placement="left"></nile-inline-sidebar>`); expect(el.placement).to.equal('left'); });
18
+ it('13. collapsed reflects', async () => { const el = await fixture(html `<nile-inline-sidebar collapsed></nile-inline-sidebar>`); expect(el.hasAttribute('collapsed')).to.be.true; });
19
+ it('14. fixed reflects', async () => { const el = await fixture(html `<nile-inline-sidebar fixed></nile-inline-sidebar>`); expect(el.hasAttribute('fixed')).to.be.true; });
20
+ it('15. placement reflects', async () => { const el = await fixture(html `<nile-inline-sidebar placement="right"></nile-inline-sidebar>`); expect(el.getAttribute('placement')).to.equal('right'); });
21
+ it('16. sidebar class', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('.sidebar')).to.exist; });
22
+ it('17. base part', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('[part="base"]')).to.exist; });
23
+ it('18. header part', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('[part="header"]')).to.exist; });
24
+ it('19. nav-items part', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('[part="nav-items"]')).to.exist; });
25
+ it('20. sidebar-header class', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('.sidebar-header')).to.exist; });
26
+ it('21. sidebar-nav class', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('.sidebar-nav')).to.exist; });
27
+ it('22. nav element', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('nav')).to.exist; });
28
+ it('23. default slot', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('slot')).to.exist; });
29
+ it('24. toggle-btn when expanded', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('.toggle-btn')).to.exist; });
30
+ it('25. no toggle-btn when fixed', async () => { const el = await fixture(html `<nile-inline-sidebar fixed></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('.toggle-btn')).to.be.null; });
31
+ it('26. collapsed nav hidden', async () => { const el = await fixture(html `<nile-inline-sidebar collapsed></nile-inline-sidebar>`); const nav = el.shadowRoot.querySelector('.sidebar-nav'); expect(nav.style.display).to.equal('none'); });
32
+ it('27. expanded nav visible', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); const nav = el.shadowRoot.querySelector('.sidebar-nav'); expect(nav.style.display).to.not.equal('none'); });
33
+ it('28. collapsed shows side-bar-action', async () => { const el = await fixture(html `<nile-inline-sidebar collapsed></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('nile-side-bar-action')).to.exist; });
34
+ it('29. expanded hides side-bar-action', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('nile-side-bar-action')).to.be.null; });
35
+ it('30. collapsed shows action-menu', async () => { const el = await fixture(html `<nile-inline-sidebar collapsed></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('nile-side-bar-action-menu')).to.exist; });
36
+ it('31. left expanded icon menu_open', async () => { const el = await fixture(html `<nile-inline-sidebar placement="left"></nile-inline-sidebar>`); const icon = el.shadowRoot.querySelector('nile-icon'); expect(icon?.getAttribute('name')).to.equal('menu_open'); });
37
+ it('32. right expanded icon menu_close', async () => { const el = await fixture(html `<nile-inline-sidebar placement="right"></nile-inline-sidebar>`); const icon = el.shadowRoot.querySelector('nile-icon'); expect(icon?.getAttribute('name')).to.equal('menu_close'); });
38
+ it('33. left collapsed icon menu_close', async () => { const el = await fixture(html `<nile-inline-sidebar placement="left" collapsed></nile-inline-sidebar>`); const icon = el.shadowRoot.querySelector('nile-icon'); expect(icon?.getAttribute('name')).to.equal('menu_close'); });
39
+ it('34. right collapsed icon menu_open', async () => { const el = await fixture(html `<nile-inline-sidebar placement="right" collapsed></nile-inline-sidebar>`); const icon = el.shadowRoot.querySelector('nile-icon'); expect(icon?.getAttribute('name')).to.equal('menu_open'); });
40
+ it('35. left action placement bottom-start', async () => { const el = await fixture(html `<nile-inline-sidebar placement="left" collapsed></nile-inline-sidebar>`); const action = el.shadowRoot.querySelector('nile-side-bar-action'); expect(action?.getAttribute('placement')).to.equal('bottom-start'); });
41
+ it('36. right action placement bottom-end', async () => { const el = await fixture(html `<nile-inline-sidebar placement="right" collapsed></nile-inline-sidebar>`); const action = el.shadowRoot.querySelector('nile-side-bar-action'); expect(action?.getAttribute('placement')).to.equal('bottom-end'); });
42
+ it('37. fixed forces collapsed false', async () => { const el = await fixture(html `<nile-inline-sidebar fixed></nile-inline-sidebar>`); expect(el.collapsed).to.be.false; });
43
+ it('38. dynamic collapsed on', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.collapsed = true; await el.updateComplete; expect(el.hasAttribute('collapsed')).to.be.true; });
44
+ it('39. dynamic collapsed off', async () => { const el = await fixture(html `<nile-inline-sidebar collapsed></nile-inline-sidebar>`); el.collapsed = false; await el.updateComplete; expect(el.hasAttribute('collapsed')).to.be.false; });
45
+ it('40. dynamic placement to right', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.placement = 'right'; await el.updateComplete; expect(el.getAttribute('placement')).to.equal('right'); });
46
+ it('41. dynamic placement to left', async () => { const el = await fixture(html `<nile-inline-sidebar placement="right"></nile-inline-sidebar>`); el.placement = 'left'; await el.updateComplete; expect(el.getAttribute('placement')).to.equal('left'); });
47
+ it('42. dynamic fixed', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.fixed = true; await el.updateComplete; expect(el.hasAttribute('fixed')).to.be.true; });
48
+ it('43. slotted item', async () => { const el = await fixture(html `<nile-inline-sidebar><nile-inline-sidebar-item>A</nile-inline-sidebar-item></nile-inline-sidebar>`); expect(el.querySelector('nile-inline-sidebar-item')).to.exist; });
49
+ it('44. slotted group', async () => { const el = await fixture(html `<nile-inline-sidebar><nile-inline-sidebar-group label="G"><nile-inline-sidebar-item>A</nile-inline-sidebar-item></nile-inline-sidebar-group></nile-inline-sidebar>`); expect(el.querySelector('nile-inline-sidebar-group')).to.exist; });
50
+ it('45. multiple items', async () => { const el = await fixture(html `<nile-inline-sidebar><nile-inline-sidebar-item>A</nile-inline-sidebar-item><nile-inline-sidebar-item>B</nile-inline-sidebar-item><nile-inline-sidebar-item>C</nile-inline-sidebar-item></nile-inline-sidebar>`); expect(el.querySelectorAll('nile-inline-sidebar-item').length).to.equal(3); });
51
+ it('46. emits nile-toggle on collapse', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); let detail; el.addEventListener('nile-toggle', ((e) => { detail = e.detail; })); const btn = el.shadowRoot.querySelector('.toggle-btn'); btn.click(); expect(detail).to.exist; expect(detail.collapsed).to.be.true; });
52
+ it('47. emits nile-toggle on expand', async () => { const el = await fixture(html `<nile-inline-sidebar collapsed></nile-inline-sidebar>`); let detail; el.addEventListener('nile-toggle', ((e) => { detail = e.detail; })); const btn = el.shadowRoot.querySelector('.toggle-btn'); btn.click(); expect(detail).to.exist; expect(detail.collapsed).to.be.false; });
53
+ it('48. has styles', async () => { expect((await import('./nile-inline-sidebar')).NileInlineSidebar.styles).to.exist; });
54
+ it('49. is defined', async () => { expect(customElements.get('nile-inline-sidebar')).to.exist; });
55
+ it('50. shadow mode', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.mode).to.equal('open'); });
56
+ it('51. isConnected', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.isConnected).to.be.true; });
57
+ it('52. removal', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.remove(); expect(el.isConnected).to.be.false; });
58
+ it('53. outerHTML', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.outerHTML).to.contain('nile-inline-sidebar'); });
59
+ it('54. matches', async () => { const el = await fixture(html `<nile-inline-sidebar class="x"></nile-inline-sidebar>`); expect(el.matches('.x')).to.be.true; });
60
+ it('55. closest', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.closest('nile-inline-sidebar')).to.equal(el); });
61
+ it('56. cloneNode', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.cloneNode(true).tagName.toLowerCase()).to.equal('nile-inline-sidebar'); });
62
+ it('57. dispatchEvent', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
63
+ it('58. updateComplete', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
64
+ it('59. render method', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.render).to.be.a('function'); });
65
+ it('60. shadowRoot host', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.host).to.equal(el); });
66
+ it('61. class attr', async () => { const el = await fixture(html `<nile-inline-sidebar class="s"></nile-inline-sidebar>`); expect(el.classList.contains('s')).to.be.true; });
67
+ it('62. id attr', async () => { const el = await fixture(html `<nile-inline-sidebar id="s1"></nile-inline-sidebar>`); expect(el.id).to.equal('s1'); });
68
+ it('63. hidden', async () => { const el = await fixture(html `<nile-inline-sidebar hidden></nile-inline-sidebar>`); expect(el.hidden).to.be.true; });
69
+ it('64. nodeType', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.nodeType).to.equal(1); });
70
+ it('65. localName', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.localName).to.equal('nile-inline-sidebar'); });
71
+ it('66. namespaceURI', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
72
+ it('67. ownerDocument', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.ownerDocument).to.equal(document); });
73
+ it('68. multiple instances', async () => { const c = await fixture(html `<div><nile-inline-sidebar></nile-inline-sidebar><nile-inline-sidebar></nile-inline-sidebar></div>`); expect(c.querySelectorAll('nile-inline-sidebar').length).to.equal(2); });
74
+ it('69. parent-child', async () => { const c = await fixture(html `<div><nile-inline-sidebar></nile-inline-sidebar></div>`); expect(c.querySelector('nile-inline-sidebar').parentElement).to.equal(c); });
75
+ it('70. createElement', async () => { const el = document.createElement('nile-inline-sidebar'); document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
76
+ it('71. dataset', async () => { const el = await fixture(html `<nile-inline-sidebar data-idx="0"></nile-inline-sidebar>`); expect(el.dataset.idx).to.equal('0'); });
77
+ it('72. classList add', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });
78
+ it('73. getBoundingClientRect', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.getBoundingClientRect()).to.exist; });
79
+ it('74. no form', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('form')).to.be.null; });
80
+ it('75. no input', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('input')).to.be.null; });
81
+ it('76. no anchor', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('a')).to.be.null; });
82
+ it('77. no img', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('img')).to.be.null; });
83
+ it('78. no svg', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('svg')).to.be.null; });
84
+ it('79. style attr', async () => { const el = await fixture(html `<nile-inline-sidebar style="color:red"></nile-inline-sidebar>`); expect(el.style.color).to.equal('red'); });
85
+ it('80. data attr', async () => { const el = await fixture(html `<nile-inline-sidebar data-x="1"></nile-inline-sidebar>`); expect(el.getAttribute('data-x')).to.equal('1'); });
86
+ it('81. aria-label', async () => { const el = await fixture(html `<nile-inline-sidebar aria-label="Sidebar"></nile-inline-sidebar>`); expect(el.getAttribute('aria-label')).to.equal('Sidebar'); });
87
+ it('82. role', async () => { const el = await fixture(html `<nile-inline-sidebar role="navigation"></nile-inline-sidebar>`); expect(el.getAttribute('role')).to.equal('navigation'); });
88
+ it('83. dir', async () => { const el = await fixture(html `<nile-inline-sidebar dir="rtl"></nile-inline-sidebar>`); expect(el.dir).to.equal('rtl'); });
89
+ it('84. title attr', async () => { const el = await fixture(html `<nile-inline-sidebar title="S"></nile-inline-sidebar>`); expect(el.title).to.equal('S'); });
90
+ it('85. lang attr', async () => { const el = await fixture(html `<nile-inline-sidebar lang="en"></nile-inline-sidebar>`); expect(el.lang).to.equal('en'); });
91
+ it('86. tabindex', async () => { const el = await fixture(html `<nile-inline-sidebar tabindex="0"></nile-inline-sidebar>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
92
+ it('87. requestUpdate', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
93
+ it('88. shadow childNodes', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.childNodes.length).to.be.greaterThan(0); });
94
+ it('89. scrollIntoView', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.scrollIntoView).to.be.a('function'); });
95
+ it('90. focus method', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.focus).to.be.a('function'); });
96
+ it('91. blur method', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.blur).to.be.a('function'); });
97
+ it('92. class toggle', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });
98
+ it('93. toggle hidden', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.hidden = true; expect(el.hidden).to.be.true; });
99
+ it('94. dispatchCustomEvent', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); let d; el.addEventListener('t', ((e) => { d = e.detail; })); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });
100
+ it('95. nested in div', async () => { const c = await fixture(html `<div><nile-inline-sidebar></nile-inline-sidebar></div>`); expect(c.querySelector('nile-inline-sidebar')).to.exist; });
101
+ it('96. no table', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('table')).to.be.null; });
102
+ it('97. no canvas', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot.querySelector('canvas')).to.be.null; });
103
+ it('98. setAttribute data', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); el.setAttribute('data-test', '1'); expect(el.dataset.test).to.equal('1'); });
104
+ it('99. multiple re-renders', async () => { const el = await fixture(html `<nile-inline-sidebar></nile-inline-sidebar>`); for (let i = 0; i < 3; i++) {
105
+ el.requestUpdate();
106
+ await el.updateComplete;
107
+ } expect(el.shadowRoot).to.not.be.null; });
108
+ it('100. full integration', async () => { const el = await fixture(html `<nile-inline-sidebar placement="right" class="s" id="s1" aria-label="Nav"><nile-inline-sidebar-group label="Main"><nile-inline-sidebar-item active>Dashboard</nile-inline-sidebar-item><nile-inline-sidebar-item>Analytics</nile-inline-sidebar-item><nile-inline-sidebar-item disabled>Admin</nile-inline-sidebar-item></nile-inline-sidebar-group></nile-inline-sidebar>`); expect(el.placement).to.equal('right'); expect(el.id).to.equal('s1'); expect(el.getAttribute('aria-label')).to.equal('Nav'); expect(el.querySelectorAll('nile-inline-sidebar-item').length).to.equal(3); expect(el.shadowRoot.querySelector('.sidebar')).to.exist; expect(el.shadowRoot.querySelector('nav')).to.exist; });
109
+ });
110
+ //# sourceMappingURL=nile-inline-sidebar.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-inline-sidebar.test.js","sourceRoot":"","sources":["../../../src/nile-inline-sidebar/nile-inline-sidebar.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html } from '@open-wc/testing';\nimport './nile-inline-sidebar';\nimport '../nile-inline-sidebar-item/nile-inline-sidebar-item';\nimport '../nile-inline-sidebar-group/nile-inline-sidebar-group';\nimport type { NileInlineSidebar } from './nile-inline-sidebar';\n\ndescribe('NileInlineSidebar', () => {\n it('1. renders', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el).to.exist; });\n it('2. shadow root', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot).to.not.be.null; });\n it('3. tag name', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.tagName.toLowerCase()).to.equal('nile-inline-sidebar'); });\n it('4. collapsed defaults false', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.collapsed).to.be.false; });\n it('5. fixed defaults false', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.fixed).to.be.false; });\n it('6. showTooltip defaults false', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.showTooltip).to.be.false; });\n it('7. placement defaults left', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.placement).to.equal('left'); });\n it('8. set collapsed', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar collapsed></nile-inline-sidebar>`); expect(el.collapsed).to.be.true; });\n it('9. set fixed', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar fixed></nile-inline-sidebar>`); expect(el.fixed).to.be.true; });\n it('10. set showTooltip', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar showTooltip></nile-inline-sidebar>`); expect(el.showTooltip).to.be.true; });\n it('11. set placement right', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"right\"></nile-inline-sidebar>`); expect(el.placement).to.equal('right'); });\n it('12. set placement left', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"left\"></nile-inline-sidebar>`); expect(el.placement).to.equal('left'); });\n it('13. collapsed reflects', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar collapsed></nile-inline-sidebar>`); expect(el.hasAttribute('collapsed')).to.be.true; });\n it('14. fixed reflects', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar fixed></nile-inline-sidebar>`); expect(el.hasAttribute('fixed')).to.be.true; });\n it('15. placement reflects', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"right\"></nile-inline-sidebar>`); expect(el.getAttribute('placement')).to.equal('right'); });\n it('16. sidebar class', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('.sidebar')).to.exist; });\n it('17. base part', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('[part=\"base\"]')).to.exist; });\n it('18. header part', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('[part=\"header\"]')).to.exist; });\n it('19. nav-items part', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('[part=\"nav-items\"]')).to.exist; });\n it('20. sidebar-header class', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('.sidebar-header')).to.exist; });\n it('21. sidebar-nav class', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('.sidebar-nav')).to.exist; });\n it('22. nav element', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('nav')).to.exist; });\n it('23. default slot', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('slot')).to.exist; });\n it('24. toggle-btn when expanded', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('.toggle-btn')).to.exist; });\n it('25. no toggle-btn when fixed', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar fixed></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('.toggle-btn')).to.be.null; });\n it('26. collapsed nav hidden', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar collapsed></nile-inline-sidebar>`); const nav = el.shadowRoot!.querySelector('.sidebar-nav') as HTMLElement; expect(nav.style.display).to.equal('none'); });\n it('27. expanded nav visible', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); const nav = el.shadowRoot!.querySelector('.sidebar-nav') as HTMLElement; expect(nav.style.display).to.not.equal('none'); });\n it('28. collapsed shows side-bar-action', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar collapsed></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('nile-side-bar-action')).to.exist; });\n it('29. expanded hides side-bar-action', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('nile-side-bar-action')).to.be.null; });\n it('30. collapsed shows action-menu', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar collapsed></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('nile-side-bar-action-menu')).to.exist; });\n it('31. left expanded icon menu_open', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"left\"></nile-inline-sidebar>`); const icon = el.shadowRoot!.querySelector('nile-icon'); expect(icon?.getAttribute('name')).to.equal('menu_open'); });\n it('32. right expanded icon menu_close', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"right\"></nile-inline-sidebar>`); const icon = el.shadowRoot!.querySelector('nile-icon'); expect(icon?.getAttribute('name')).to.equal('menu_close'); });\n it('33. left collapsed icon menu_close', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"left\" collapsed></nile-inline-sidebar>`); const icon = el.shadowRoot!.querySelector('nile-icon'); expect(icon?.getAttribute('name')).to.equal('menu_close'); });\n it('34. right collapsed icon menu_open', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"right\" collapsed></nile-inline-sidebar>`); const icon = el.shadowRoot!.querySelector('nile-icon'); expect(icon?.getAttribute('name')).to.equal('menu_open'); });\n it('35. left action placement bottom-start', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"left\" collapsed></nile-inline-sidebar>`); const action = el.shadowRoot!.querySelector('nile-side-bar-action'); expect(action?.getAttribute('placement')).to.equal('bottom-start'); });\n it('36. right action placement bottom-end', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"right\" collapsed></nile-inline-sidebar>`); const action = el.shadowRoot!.querySelector('nile-side-bar-action'); expect(action?.getAttribute('placement')).to.equal('bottom-end'); });\n it('37. fixed forces collapsed false', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar fixed></nile-inline-sidebar>`); expect(el.collapsed).to.be.false; });\n it('38. dynamic collapsed on', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.collapsed = true; await el.updateComplete; expect(el.hasAttribute('collapsed')).to.be.true; });\n it('39. dynamic collapsed off', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar collapsed></nile-inline-sidebar>`); el.collapsed = false; await el.updateComplete; expect(el.hasAttribute('collapsed')).to.be.false; });\n it('40. dynamic placement to right', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.placement = 'right'; await el.updateComplete; expect(el.getAttribute('placement')).to.equal('right'); });\n it('41. dynamic placement to left', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"right\"></nile-inline-sidebar>`); el.placement = 'left'; await el.updateComplete; expect(el.getAttribute('placement')).to.equal('left'); });\n it('42. dynamic fixed', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.fixed = true; await el.updateComplete; expect(el.hasAttribute('fixed')).to.be.true; });\n it('43. slotted item', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar><nile-inline-sidebar-item>A</nile-inline-sidebar-item></nile-inline-sidebar>`); expect(el.querySelector('nile-inline-sidebar-item')).to.exist; });\n it('44. slotted group', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar><nile-inline-sidebar-group label=\"G\"><nile-inline-sidebar-item>A</nile-inline-sidebar-item></nile-inline-sidebar-group></nile-inline-sidebar>`); expect(el.querySelector('nile-inline-sidebar-group')).to.exist; });\n it('45. multiple items', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar><nile-inline-sidebar-item>A</nile-inline-sidebar-item><nile-inline-sidebar-item>B</nile-inline-sidebar-item><nile-inline-sidebar-item>C</nile-inline-sidebar-item></nile-inline-sidebar>`); expect(el.querySelectorAll('nile-inline-sidebar-item').length).to.equal(3); });\n it('46. emits nile-toggle on collapse', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); let detail: any; el.addEventListener('nile-toggle', ((e: CustomEvent) => { detail = e.detail; }) as EventListener); const btn = el.shadowRoot!.querySelector('.toggle-btn') as HTMLElement; btn.click(); expect(detail).to.exist; expect(detail.collapsed).to.be.true; });\n it('47. emits nile-toggle on expand', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar collapsed></nile-inline-sidebar>`); let detail: any; el.addEventListener('nile-toggle', ((e: CustomEvent) => { detail = e.detail; }) as EventListener); const btn = el.shadowRoot!.querySelector('.toggle-btn') as HTMLElement; btn.click(); expect(detail).to.exist; expect(detail.collapsed).to.be.false; });\n it('48. has styles', async () => { expect((await import('./nile-inline-sidebar')).NileInlineSidebar.styles).to.exist; });\n it('49. is defined', async () => { expect(customElements.get('nile-inline-sidebar')).to.exist; });\n it('50. shadow mode', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.mode).to.equal('open'); });\n it('51. isConnected', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.isConnected).to.be.true; });\n it('52. removal', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.remove(); expect(el.isConnected).to.be.false; });\n it('53. outerHTML', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.outerHTML).to.contain('nile-inline-sidebar'); });\n it('54. matches', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar class=\"x\"></nile-inline-sidebar>`); expect(el.matches('.x')).to.be.true; });\n it('55. closest', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.closest('nile-inline-sidebar')).to.equal(el); });\n it('56. cloneNode', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-inline-sidebar'); });\n it('57. dispatchEvent', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });\n it('58. updateComplete', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });\n it('59. render method', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.render).to.be.a('function'); });\n it('60. shadowRoot host', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.host).to.equal(el); });\n it('61. class attr', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar class=\"s\"></nile-inline-sidebar>`); expect(el.classList.contains('s')).to.be.true; });\n it('62. id attr', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar id=\"s1\"></nile-inline-sidebar>`); expect(el.id).to.equal('s1'); });\n it('63. hidden', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar hidden></nile-inline-sidebar>`); expect(el.hidden).to.be.true; });\n it('64. nodeType', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.nodeType).to.equal(1); });\n it('65. localName', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.localName).to.equal('nile-inline-sidebar'); });\n it('66. namespaceURI', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });\n it('67. ownerDocument', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.ownerDocument).to.equal(document); });\n it('68. multiple instances', async () => { const c = await fixture(html`<div><nile-inline-sidebar></nile-inline-sidebar><nile-inline-sidebar></nile-inline-sidebar></div>`); expect(c.querySelectorAll('nile-inline-sidebar').length).to.equal(2); });\n it('69. parent-child', async () => { const c = await fixture(html`<div><nile-inline-sidebar></nile-inline-sidebar></div>`); expect(c.querySelector('nile-inline-sidebar')!.parentElement).to.equal(c); });\n it('70. createElement', async () => { const el = document.createElement('nile-inline-sidebar') as NileInlineSidebar; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });\n it('71. dataset', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar data-idx=\"0\"></nile-inline-sidebar>`); expect(el.dataset.idx).to.equal('0'); });\n it('72. classList add', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });\n it('73. getBoundingClientRect', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.getBoundingClientRect()).to.exist; });\n it('74. no form', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });\n it('75. no input', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('input')).to.be.null; });\n it('76. no anchor', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });\n it('77. no img', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });\n it('78. no svg', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('svg')).to.be.null; });\n it('79. style attr', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar style=\"color:red\"></nile-inline-sidebar>`); expect(el.style.color).to.equal('red'); });\n it('80. data attr', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar data-x=\"1\"></nile-inline-sidebar>`); expect(el.getAttribute('data-x')).to.equal('1'); });\n it('81. aria-label', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar aria-label=\"Sidebar\"></nile-inline-sidebar>`); expect(el.getAttribute('aria-label')).to.equal('Sidebar'); });\n it('82. role', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar role=\"navigation\"></nile-inline-sidebar>`); expect(el.getAttribute('role')).to.equal('navigation'); });\n it('83. dir', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar dir=\"rtl\"></nile-inline-sidebar>`); expect(el.dir).to.equal('rtl'); });\n it('84. title attr', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar title=\"S\"></nile-inline-sidebar>`); expect(el.title).to.equal('S'); });\n it('85. lang attr', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar lang=\"en\"></nile-inline-sidebar>`); expect(el.lang).to.equal('en'); });\n it('86. tabindex', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar tabindex=\"0\"></nile-inline-sidebar>`); expect(el.getAttribute('tabindex')).to.equal('0'); });\n it('87. requestUpdate', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });\n it('88. shadow childNodes', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });\n it('89. scrollIntoView', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.scrollIntoView).to.be.a('function'); });\n it('90. focus method', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.focus).to.be.a('function'); });\n it('91. blur method', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.blur).to.be.a('function'); });\n it('92. class toggle', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });\n it('93. toggle hidden', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.hidden = true; expect(el.hidden).to.be.true; });\n it('94. dispatchCustomEvent', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); let d: any; el.addEventListener('t', ((e: CustomEvent) => { d = e.detail; }) as EventListener); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });\n it('95. nested in div', async () => { const c = await fixture(html`<div><nile-inline-sidebar></nile-inline-sidebar></div>`); expect(c.querySelector('nile-inline-sidebar')).to.exist; });\n it('96. no table', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('table')).to.be.null; });\n it('97. no canvas', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); expect(el.shadowRoot!.querySelector('canvas')).to.be.null; });\n it('98. setAttribute data', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); el.setAttribute('data-test', '1'); expect(el.dataset.test).to.equal('1'); });\n it('99. multiple re-renders', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar></nile-inline-sidebar>`); for (let i = 0; i < 3; i++) { el.requestUpdate(); await el.updateComplete; } expect(el.shadowRoot).to.not.be.null; });\n it('100. full integration', async () => { const el = await fixture<NileInlineSidebar>(html`<nile-inline-sidebar placement=\"right\" class=\"s\" id=\"s1\" aria-label=\"Nav\"><nile-inline-sidebar-group label=\"Main\"><nile-inline-sidebar-item active>Dashboard</nile-inline-sidebar-item><nile-inline-sidebar-item>Analytics</nile-inline-sidebar-item><nile-inline-sidebar-item disabled>Admin</nile-inline-sidebar-item></nile-inline-sidebar-group></nile-inline-sidebar>`); expect(el.placement).to.equal('right'); expect(el.id).to.equal('s1'); expect(el.getAttribute('aria-label')).to.equal('Nav'); expect(el.querySelectorAll('nile-inline-sidebar-item').length).to.equal(3); expect(el.shadowRoot!.querySelector('.sidebar')).to.exist; expect(el.shadowRoot!.querySelector('nav')).to.exist; });\n});\n"]}
@@ -0,0 +1,2 @@
1
+ import './nile-inline-sidebar-group';
2
+ import '../nile-inline-sidebar-item/nile-inline-sidebar-item';