@aquera/nile-elements 1.5.2 → 1.5.3

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 (517) hide show
  1. package/README.md +6 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +239 -195
  5. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
  6. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  7. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
  8. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
  9. package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +1 -1
  10. package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
  11. package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
  12. package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
  13. package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
  14. package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
  15. package/dist/nile-file-preview/nile-file-preview.css.esm.js +2 -2
  16. package/dist/nile-file-preview/nile-file-preview.esm.js +1 -1
  17. package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
  18. package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
  19. package/dist/nile-file-preview/nile-file-preview.template.esm.js +55 -25
  20. package/dist/nile-file-preview/utils/index.cjs.js +1 -1
  21. package/dist/nile-file-preview/utils/index.esm.js +1 -1
  22. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
  23. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
  24. package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
  25. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  26. package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
  27. package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
  28. package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
  29. package/dist/nile-file-upload/nile-file-upload.css.esm.js +15 -5
  30. package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
  31. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +2 -2
  32. package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
  33. package/dist/nile-file-upload/nile-file-upload.template.esm.js +36 -32
  34. package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
  35. package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
  36. package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
  37. package/dist/nile-file-upload/types/index.cjs.js +1 -1
  38. package/dist/nile-file-upload/types/index.esm.js +1 -1
  39. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +1 -1
  40. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -1
  41. package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -1
  42. package/dist/nile-file-upload/utils/file-validation.util.cjs.js +4 -2
  43. package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
  44. package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
  45. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js +1 -1
  46. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -1
  47. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.esm.js +3 -3
  48. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +1 -1
  49. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -1
  50. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -1
  51. package/dist/nile-grid/nile-grid.cjs.js +1 -1
  52. package/dist/nile-grid/nile-grid.cjs.js.map +1 -1
  53. package/dist/nile-grid/nile-grid.esm.js +2 -2
  54. package/dist/nile-grid/nile-grid.layout.cjs.js +1 -1
  55. package/dist/nile-grid/nile-grid.layout.esm.js +1 -1
  56. package/dist/nile-grid/nile-grid.resize.cjs.js +1 -1
  57. package/dist/nile-grid/nile-grid.resize.esm.js +1 -1
  58. package/dist/nile-grid/nile-grid.utils.cjs.js +1 -1
  59. package/dist/nile-grid/nile-grid.utils.esm.js +1 -1
  60. package/dist/nile-grid/nile-grid.width.cjs.js +1 -1
  61. package/dist/nile-grid/nile-grid.width.cjs.js.map +1 -1
  62. package/dist/nile-grid/nile-grid.width.esm.js +1 -1
  63. package/dist/nile-input/nile-input.cjs.js +1 -1
  64. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  65. package/dist/nile-input/nile-input.esm.js +1 -1
  66. package/dist/nile-popover/index.cjs.js +1 -1
  67. package/dist/nile-popover/index.esm.js +1 -1
  68. package/dist/nile-popover/nile-popover.cjs.js +4 -4
  69. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  70. package/dist/nile-popover/nile-popover.esm.js +11 -6
  71. package/dist/src/nile-accordion/nile-accordian.test.js +101 -99
  72. package/dist/src/nile-accordion/nile-accordian.test.js.map +1 -1
  73. package/dist/src/nile-auto-complete/nile-auto-complete.css.js +1 -1
  74. package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
  75. package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
  76. package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
  77. package/dist/src/nile-auto-complete/nile-auto-complete.test.js +104 -112
  78. package/dist/src/nile-auto-complete/nile-auto-complete.test.js.map +1 -1
  79. package/dist/src/nile-avatar/nile-avatar.test.d.ts +0 -1
  80. package/dist/src/nile-avatar/nile-avatar.test.js +103 -87
  81. package/dist/src/nile-avatar/nile-avatar.test.js.map +1 -1
  82. package/dist/src/nile-badge/nile-badge.test.js +554 -35
  83. package/dist/src/nile-badge/nile-badge.test.js.map +1 -1
  84. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.d.ts +2 -0
  85. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js +106 -0
  86. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js.map +1 -0
  87. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.d.ts +1 -0
  88. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js +108 -0
  89. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js.map +1 -0
  90. package/dist/src/nile-button/nile-button.test.js +499 -39
  91. package/dist/src/nile-button/nile-button.test.js.map +1 -1
  92. package/dist/src/nile-button-filter/nile-button-filter.test.d.ts +1 -0
  93. package/dist/src/nile-button-filter/nile-button-filter.test.js +108 -0
  94. package/dist/src/nile-button-filter/nile-button-filter.test.js.map +1 -0
  95. package/dist/src/nile-button-toggle/nile-button-toggle.test.d.ts +1 -0
  96. package/dist/src/nile-button-toggle/nile-button-toggle.test.js +108 -0
  97. package/dist/src/nile-button-toggle/nile-button-toggle.test.js.map +1 -0
  98. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.d.ts +1 -1
  99. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js +105 -104
  100. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js.map +1 -1
  101. package/dist/src/nile-calendar/nile-calendar.test.d.ts +0 -6
  102. package/dist/src/nile-calendar/nile-calendar.test.js +103 -318
  103. package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
  104. package/dist/src/nile-card/nile-card.test.js +102 -66
  105. package/dist/src/nile-card/nile-card.test.js.map +1 -1
  106. package/dist/src/nile-checkbox/nile-checkbox.test.js +547 -108
  107. package/dist/src/nile-checkbox/nile-checkbox.test.js.map +1 -1
  108. package/dist/src/nile-chip/nile-chip.test.d.ts +0 -2
  109. package/dist/src/nile-chip/nile-chip.test.js +101 -102
  110. package/dist/src/nile-chip/nile-chip.test.js.map +1 -1
  111. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.d.ts +1 -0
  112. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js +108 -0
  113. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js.map +1 -0
  114. package/dist/src/nile-date-picker/nile-date-picker.test.d.ts +1 -0
  115. package/dist/src/nile-date-picker/nile-date-picker.test.js +108 -0
  116. package/dist/src/nile-date-picker/nile-date-picker.test.js.map +1 -0
  117. package/dist/src/nile-dialog/nile-dialog.test.d.ts +0 -1
  118. package/dist/src/nile-dialog/nile-dialog.test.js +104 -126
  119. package/dist/src/nile-dialog/nile-dialog.test.js.map +1 -1
  120. package/dist/src/nile-divider/nile-divider.test.d.ts +1 -0
  121. package/dist/src/nile-divider/nile-divider.test.js +560 -0
  122. package/dist/src/nile-divider/nile-divider.test.js.map +1 -0
  123. package/dist/src/nile-drawer/nile-drawer.test.js +106 -86
  124. package/dist/src/nile-drawer/nile-drawer.test.js.map +1 -1
  125. package/dist/src/nile-dropdown/nile-dropdown.test.js +104 -148
  126. package/dist/src/nile-dropdown/nile-dropdown.test.js.map +1 -1
  127. package/dist/src/nile-empty-state/nile-empty-state.test.js +107 -59
  128. package/dist/src/nile-empty-state/nile-empty-state.test.js.map +1 -1
  129. package/dist/src/nile-error-message/nile-error-message.test.js +105 -55
  130. package/dist/src/nile-error-message/nile-error-message.test.js.map +1 -1
  131. package/dist/src/nile-error-notification/nile-error-notification.test.d.ts +1 -0
  132. package/dist/src/nile-error-notification/nile-error-notification.test.js +108 -0
  133. package/dist/src/nile-error-notification/nile-error-notification.test.js.map +1 -0
  134. package/dist/src/nile-file-preview/nile-file-preview.css.js +2 -2
  135. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
  136. package/dist/src/nile-file-preview/nile-file-preview.d.ts +1 -4
  137. package/dist/src/nile-file-preview/nile-file-preview.js +21 -47
  138. package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
  139. package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +6 -6
  140. package/dist/src/nile-file-preview/nile-file-preview.template.js +53 -23
  141. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
  142. package/dist/src/nile-file-preview/nile-file-preview.test.d.ts +0 -6
  143. package/dist/src/nile-file-preview/nile-file-preview.test.js +106 -28
  144. package/dist/src/nile-file-preview/nile-file-preview.test.js.map +1 -1
  145. package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +3 -2
  146. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +32 -7
  147. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
  148. package/dist/src/nile-file-upload/nile-file-upload.css.js +15 -5
  149. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
  150. package/dist/src/nile-file-upload/nile-file-upload.d.ts +4 -1
  151. package/dist/src/nile-file-upload/nile-file-upload.js +13 -1
  152. package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
  153. package/dist/src/nile-file-upload/nile-file-upload.template.js +19 -15
  154. package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
  155. package/dist/src/nile-file-upload/nile-file-upload.test.d.ts +0 -6
  156. package/dist/src/nile-file-upload/nile-file-upload.test.js +106 -28
  157. package/dist/src/nile-file-upload/nile-file-upload.test.js.map +1 -1
  158. package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +17 -3
  159. package/dist/src/nile-file-upload/types/file-upload.enums.js +17 -1
  160. package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
  161. package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +2 -0
  162. package/dist/src/nile-file-upload/utils/drag-drop.util.js +14 -8
  163. package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -1
  164. package/dist/src/nile-file-upload/utils/file-validation.util.js +89 -10
  165. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
  166. package/dist/src/nile-filter-chip/nile-filter-chip.test.js +102 -77
  167. package/dist/src/nile-filter-chip/nile-filter-chip.test.js.map +1 -1
  168. package/dist/src/nile-form-error-message/nile-form-error-message.test.d.ts +1 -0
  169. package/dist/src/nile-form-error-message/nile-form-error-message.test.js +108 -0
  170. package/dist/src/nile-form-error-message/nile-form-error-message.test.js.map +1 -0
  171. package/dist/src/nile-form-group/nile-form-group.test.js +104 -51
  172. package/dist/src/nile-form-group/nile-form-group.test.js.map +1 -1
  173. package/dist/src/nile-form-help-text/nile-form-help-text.test.js +104 -84
  174. package/dist/src/nile-form-help-text/nile-form-help-text.test.js.map +1 -1
  175. package/dist/src/nile-format-date/nile-format-date.test.d.ts +1 -0
  176. package/dist/src/nile-format-date/nile-format-date.test.js +108 -0
  177. package/dist/src/nile-format-date/nile-format-date.test.js.map +1 -0
  178. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js +6 -5
  179. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js.map +1 -1
  180. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.d.ts +14 -0
  181. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js +24 -0
  182. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -1
  183. package/dist/src/nile-grid/nile-grid.d.ts +1 -0
  184. package/dist/src/nile-grid/nile-grid.js +5 -1
  185. package/dist/src/nile-grid/nile-grid.js.map +1 -1
  186. package/dist/src/nile-grid/nile-grid.utils.d.ts +6 -0
  187. package/dist/src/nile-grid/nile-grid.utils.js +13 -0
  188. package/dist/src/nile-grid/nile-grid.utils.js.map +1 -1
  189. package/dist/src/nile-heading/nile-heading.test.d.ts +1 -0
  190. package/dist/src/nile-heading/nile-heading.test.js +108 -0
  191. package/dist/src/nile-heading/nile-heading.test.js.map +1 -0
  192. package/dist/src/nile-hero/nile-hero.test.js +101 -38
  193. package/dist/src/nile-hero/nile-hero.test.js.map +1 -1
  194. package/dist/src/nile-icon/nile-icon.test.js +103 -40
  195. package/dist/src/nile-icon/nile-icon.test.js.map +1 -1
  196. package/dist/src/nile-icon-button/nile-icon-button.test.d.ts +1 -0
  197. package/dist/src/nile-icon-button/nile-icon-button.test.js +568 -0
  198. package/dist/src/nile-icon-button/nile-icon-button.test.js.map +1 -0
  199. package/dist/src/nile-inline-edit/nile-inline-edit.test.d.ts +1 -0
  200. package/dist/src/nile-inline-edit/nile-inline-edit.test.js +108 -0
  201. package/dist/src/nile-inline-edit/nile-inline-edit.test.js.map +1 -0
  202. package/dist/src/nile-input/nile-input.js +1 -1
  203. package/dist/src/nile-input/nile-input.js.map +1 -1
  204. package/dist/src/nile-input/nile-input.test.js +109 -139
  205. package/dist/src/nile-input/nile-input.test.js.map +1 -1
  206. package/dist/src/nile-link/nile-link.test.js +103 -67
  207. package/dist/src/nile-link/nile-link.test.js.map +1 -1
  208. package/dist/src/nile-list/nile-list.test.d.ts +1 -0
  209. package/dist/src/nile-list/nile-list.test.js +108 -0
  210. package/dist/src/nile-list/nile-list.test.js.map +1 -0
  211. package/dist/src/nile-list-item/nile-list-item.test.d.ts +1 -0
  212. package/dist/src/nile-list-item/nile-list-item.test.js +108 -0
  213. package/dist/src/nile-list-item/nile-list-item.test.js.map +1 -0
  214. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.d.ts +2 -0
  215. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js +109 -0
  216. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js.map +1 -0
  217. package/dist/src/nile-loader/nile-loader.test.js +107 -40
  218. package/dist/src/nile-loader/nile-loader.test.js.map +1 -1
  219. package/dist/src/nile-menu/nile-menu.test.d.ts +1 -0
  220. package/dist/src/nile-menu/nile-menu.test.js +113 -0
  221. package/dist/src/nile-menu/nile-menu.test.js.map +1 -0
  222. package/dist/src/nile-menu-item/nile-menu-item.test.d.ts +1 -0
  223. package/dist/src/nile-menu-item/nile-menu-item.test.js +113 -0
  224. package/dist/src/nile-menu-item/nile-menu-item.test.js.map +1 -0
  225. package/dist/src/nile-option/nile-option.test.d.ts +1 -0
  226. package/dist/src/nile-option/nile-option.test.js +108 -0
  227. package/dist/src/nile-option/nile-option.test.js.map +1 -0
  228. package/dist/src/nile-option-group/nile-option-group.test.d.ts +1 -0
  229. package/dist/src/nile-option-group/nile-option-group.test.js +108 -0
  230. package/dist/src/nile-option-group/nile-option-group.test.js.map +1 -0
  231. package/dist/src/nile-page-header/nile-page-header.test.d.ts +1 -0
  232. package/dist/src/nile-page-header/nile-page-header.test.js +108 -0
  233. package/dist/src/nile-page-header/nile-page-header.test.js.map +1 -0
  234. package/dist/src/nile-pagination/nile-pagination.test.d.ts +1 -0
  235. package/dist/src/nile-pagination/nile-pagination.test.js +108 -0
  236. package/dist/src/nile-pagination/nile-pagination.test.js.map +1 -0
  237. package/dist/src/nile-popover/nile-popover.test.js +103 -68
  238. package/dist/src/nile-popover/nile-popover.test.js.map +1 -1
  239. package/dist/src/nile-popup/nile-popup.test.js +104 -65
  240. package/dist/src/nile-popup/nile-popup.test.js.map +1 -1
  241. package/dist/src/nile-progress-bar/nile-progress-bar.test.js +104 -44
  242. package/dist/src/nile-progress-bar/nile-progress-bar.test.js.map +1 -1
  243. package/dist/src/nile-radio/nile-radio.test.js +103 -66
  244. package/dist/src/nile-radio/nile-radio.test.js.map +1 -1
  245. package/dist/src/nile-radio-group/nile-radio-group.test.d.ts +0 -1
  246. package/dist/src/nile-radio-group/nile-radio-group.test.js +105 -171
  247. package/dist/src/nile-radio-group/nile-radio-group.test.js.map +1 -1
  248. package/dist/src/nile-section-message/nile-section-message.test.d.ts +1 -0
  249. package/dist/src/nile-section-message/nile-section-message.test.js +108 -0
  250. package/dist/src/nile-section-message/nile-section-message.test.js.map +1 -0
  251. package/dist/src/nile-select/nile-select.test.d.ts +0 -5
  252. package/dist/src/nile-select/nile-select.test.js +105 -244
  253. package/dist/src/nile-select/nile-select.test.js.map +1 -1
  254. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.d.ts +1 -0
  255. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js +108 -0
  256. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js.map +1 -0
  257. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js +104 -50
  258. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js.map +1 -1
  259. package/dist/src/nile-slider/nile-slider.test.d.ts +1 -0
  260. package/dist/src/nile-slider/nile-slider.test.js +108 -0
  261. package/dist/src/nile-slider/nile-slider.test.js.map +1 -0
  262. package/dist/src/nile-spinner/nile-spinner.test.d.ts +1 -0
  263. package/dist/src/nile-spinner/nile-spinner.test.js +569 -0
  264. package/dist/src/nile-spinner/nile-spinner.test.js.map +1 -0
  265. package/dist/src/nile-split-panel/nile-split-panel.test.d.ts +1 -0
  266. package/dist/src/nile-split-panel/nile-split-panel.test.js +108 -0
  267. package/dist/src/nile-split-panel/nile-split-panel.test.js.map +1 -0
  268. package/dist/src/nile-stepper/nile-stepper.test.d.ts +2 -0
  269. package/dist/src/nile-stepper/nile-stepper.test.js +109 -0
  270. package/dist/src/nile-stepper/nile-stepper.test.js.map +1 -0
  271. package/dist/src/nile-stepper-item/nile-stepper-item.test.d.ts +1 -0
  272. package/dist/src/nile-stepper-item/nile-stepper-item.test.js +108 -0
  273. package/dist/src/nile-stepper-item/nile-stepper-item.test.js.map +1 -0
  274. package/dist/src/nile-tab/nile-tab.test.d.ts +1 -0
  275. package/dist/src/nile-tab/nile-tab.test.js +108 -0
  276. package/dist/src/nile-tab/nile-tab.test.js.map +1 -0
  277. package/dist/src/nile-tab-group/nile-tab-group.test.js +105 -172
  278. package/dist/src/nile-tab-group/nile-tab-group.test.js.map +1 -1
  279. package/dist/src/nile-tab-panel/nile-tab-panel.test.d.ts +1 -0
  280. package/dist/src/nile-tab-panel/nile-tab-panel.test.js +108 -0
  281. package/dist/src/nile-tab-panel/nile-tab-panel.test.js.map +1 -0
  282. package/dist/src/nile-tag/nile-tag.test.d.ts +1 -0
  283. package/dist/src/nile-tag/nile-tag.test.js +574 -0
  284. package/dist/src/nile-tag/nile-tag.test.js.map +1 -0
  285. package/dist/src/nile-textarea/nile-textarea.test.d.ts +1 -1
  286. package/dist/src/nile-textarea/nile-textarea.test.js +105 -84
  287. package/dist/src/nile-textarea/nile-textarea.test.js.map +1 -1
  288. package/dist/src/nile-title/nile-title.test.d.ts +1 -0
  289. package/dist/src/nile-title/nile-title.test.js +108 -0
  290. package/dist/src/nile-title/nile-title.test.js.map +1 -0
  291. package/dist/src/nile-toast/nile-toast.test.d.ts +1 -0
  292. package/dist/src/nile-toast/nile-toast.test.js +526 -0
  293. package/dist/src/nile-toast/nile-toast.test.js.map +1 -0
  294. package/dist/src/nile-toolbar/nile-toolbar.test.d.ts +1 -0
  295. package/dist/src/nile-toolbar/nile-toolbar.test.js +108 -0
  296. package/dist/src/nile-toolbar/nile-toolbar.test.js.map +1 -0
  297. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +1 -0
  298. package/dist/src/nile-tooltip/nile-tooltip.test.js +546 -0
  299. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +1 -0
  300. package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +1 -7
  301. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +105 -628
  302. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
  303. package/dist/src/version.js +1 -1
  304. package/dist/src/version.js.map +1 -1
  305. package/dist/tsconfig.tsbuildinfo +1 -1
  306. package/package.json +1 -1
  307. package/rollup.config.js +7 -1
  308. package/src/nile-accordion/nile-accordian.test.ts +102 -116
  309. package/src/nile-auto-complete/nile-auto-complete.css.ts +1 -1
  310. package/src/nile-auto-complete/nile-auto-complete.test.ts +102 -145
  311. package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
  312. package/src/nile-avatar/nile-avatar.test.ts +102 -112
  313. package/src/nile-badge/nile-badge.test.ts +642 -30
  314. package/src/nile-breadcrumb/nile-breadcrumb.test.ts +107 -0
  315. package/src/nile-breadcrumb-item/nile-breadcrumb-item.test.ts +106 -0
  316. package/src/nile-button/nile-button.test.ts +593 -61
  317. package/src/nile-button-filter/nile-button-filter.test.ts +106 -0
  318. package/src/nile-button-toggle/nile-button-toggle.test.ts +106 -0
  319. package/src/nile-button-toggle-group/nile-button-toggle-group.test.ts +104 -126
  320. package/src/nile-calendar/nile-calendar.test.ts +102 -406
  321. package/src/nile-card/nile-card.test.ts +103 -71
  322. package/src/nile-checkbox/nile-checkbox.test.ts +614 -108
  323. package/src/nile-chip/nile-chip.test.ts +102 -136
  324. package/src/nile-circular-progressbar/nile-circular-progressbar.test.ts +106 -0
  325. package/src/nile-date-picker/nile-date-picker.test.ts +106 -0
  326. package/src/nile-dialog/nile-dialog.test.ts +102 -164
  327. package/src/nile-divider/nile-divider.test.ts +659 -0
  328. package/src/nile-drawer/nile-drawer.test.ts +105 -105
  329. package/src/nile-dropdown/nile-dropdown.test.ts +102 -190
  330. package/src/nile-empty-state/nile-empty-state.test.ts +104 -67
  331. package/src/nile-error-message/nile-error-message.test.ts +104 -67
  332. package/src/nile-error-notification/nile-error-notification.test.ts +106 -0
  333. package/src/nile-file-preview/nile-file-preview.css.ts +2 -2
  334. package/src/nile-file-preview/nile-file-preview.template.ts +59 -23
  335. package/src/nile-file-preview/nile-file-preview.test.ts +105 -37
  336. package/src/nile-file-preview/nile-file-preview.ts +23 -56
  337. package/src/nile-file-preview/utils/nile-file-preview.util.ts +37 -8
  338. package/src/nile-file-upload/nile-file-upload.css.ts +15 -5
  339. package/src/nile-file-upload/nile-file-upload.template.ts +22 -18
  340. package/src/nile-file-upload/nile-file-upload.test.ts +105 -37
  341. package/src/nile-file-upload/nile-file-upload.ts +11 -3
  342. package/src/nile-file-upload/types/file-upload.enums.ts +20 -4
  343. package/src/nile-file-upload/utils/drag-drop.util.ts +20 -11
  344. package/src/nile-file-upload/utils/file-validation.util.ts +104 -22
  345. package/src/nile-filter-chip/nile-filter-chip.test.ts +103 -89
  346. package/src/nile-form-error-message/nile-form-error-message.test.ts +106 -0
  347. package/src/nile-form-group/nile-form-group.test.ts +103 -60
  348. package/src/nile-form-help-text/nile-form-help-text.test.ts +102 -106
  349. package/src/nile-format-date/nile-format-date.test.ts +106 -0
  350. package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.ts +7 -5
  351. package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.ts +28 -0
  352. package/src/nile-grid/nile-grid.ts +6 -1
  353. package/src/nile-grid/nile-grid.utils.ts +18 -1
  354. package/src/nile-heading/nile-heading.test.ts +106 -0
  355. package/src/nile-hero/nile-hero.test.ts +103 -42
  356. package/src/nile-icon/nile-icon.test.ts +103 -50
  357. package/src/nile-icon-button/nile-icon-button.test.ts +667 -0
  358. package/src/nile-inline-edit/nile-inline-edit.test.ts +106 -0
  359. package/src/nile-input/nile-input.test.ts +105 -164
  360. package/src/nile-input/nile-input.ts +1 -1
  361. package/src/nile-link/nile-link.test.ts +104 -81
  362. package/src/nile-list/nile-list.test.ts +106 -0
  363. package/src/nile-list-item/nile-list-item.test.ts +106 -0
  364. package/src/nile-lite-tooltip/nile-lite-tooltip.test.ts +107 -0
  365. package/src/nile-loader/nile-loader.test.ts +103 -48
  366. package/src/nile-menu/nile-menu.test.ts +106 -0
  367. package/src/nile-menu-item/nile-menu-item.test.ts +106 -0
  368. package/src/nile-option/nile-option.test.ts +106 -0
  369. package/src/nile-option-group/nile-option-group.test.ts +106 -0
  370. package/src/nile-page-header/nile-page-header.test.ts +106 -0
  371. package/src/nile-pagination/nile-pagination.test.ts +106 -0
  372. package/src/nile-popover/nile-popover.test.ts +103 -83
  373. package/src/nile-popup/nile-popup.test.ts +102 -82
  374. package/src/nile-progress-bar/nile-progress-bar.test.ts +103 -52
  375. package/src/nile-radio/nile-radio.test.ts +103 -78
  376. package/src/nile-radio-group/nile-radio-group.test.ts +104 -213
  377. package/src/nile-section-message/nile-section-message.test.ts +106 -0
  378. package/src/nile-select/nile-select.test.ts +105 -308
  379. package/src/nile-skeleton-loader/nile-skeleton-loader.test.ts +106 -0
  380. package/src/nile-slide-toggle/nile-slide-toggle.test.ts +103 -58
  381. package/src/nile-slider/nile-slider.test.ts +106 -0
  382. package/src/nile-spinner/nile-spinner.test.ts +668 -0
  383. package/src/nile-split-panel/nile-split-panel.test.ts +106 -0
  384. package/src/nile-stepper/nile-stepper.test.ts +107 -0
  385. package/src/nile-stepper-item/nile-stepper-item.test.ts +106 -0
  386. package/src/nile-tab/nile-tab.test.ts +106 -0
  387. package/src/nile-tab-group/nile-tab-group.test.ts +104 -211
  388. package/src/nile-tab-panel/nile-tab-panel.test.ts +106 -0
  389. package/src/nile-tag/nile-tag.test.ts +675 -0
  390. package/src/nile-textarea/nile-textarea.test.ts +104 -100
  391. package/src/nile-title/nile-title.test.ts +106 -0
  392. package/src/nile-toast/nile-toast.test.ts +625 -0
  393. package/src/nile-toolbar/nile-toolbar.test.ts +106 -0
  394. package/src/nile-tooltip/nile-tooltip.test.ts +645 -0
  395. package/src/nile-virtual-select/nile-virtual-select.test.ts +104 -772
  396. package/vscode-html-custom-data.json +8 -3
  397. package/web-test-runner.config.mjs +4 -2
  398. package/dist/axe.min-2720cd56.esm.js +0 -1
  399. package/dist/axe.min-69d47269.cjs.js +0 -2
  400. package/dist/axe.min-69d47269.cjs.js.map +0 -1
  401. package/dist/css-tag-bb10c0fa.cjs.js +0 -6
  402. package/dist/css-tag-bb10c0fa.cjs.js.map +0 -1
  403. package/dist/css-tag-dc564feb.esm.js +0 -6
  404. package/dist/fixture-958445f8.cjs.js +0 -395
  405. package/dist/fixture-958445f8.cjs.js.map +0 -1
  406. package/dist/fixture-985bba12.esm.js +0 -569
  407. package/dist/nile-accordion/nile-accordian.test.cjs.js +0 -2
  408. package/dist/nile-accordion/nile-accordian.test.cjs.js.map +0 -1
  409. package/dist/nile-accordion/nile-accordian.test.esm.js +0 -1
  410. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +0 -2
  411. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +0 -1
  412. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +0 -9
  413. package/dist/nile-avatar/nile-avatar.test.cjs.js +0 -2
  414. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +0 -1
  415. package/dist/nile-avatar/nile-avatar.test.esm.js +0 -11
  416. package/dist/nile-badge/nile-badge.test.cjs.js +0 -2
  417. package/dist/nile-badge/nile-badge.test.cjs.js.map +0 -1
  418. package/dist/nile-badge/nile-badge.test.esm.js +0 -1
  419. package/dist/nile-button/nile-button.test.cjs.js +0 -2
  420. package/dist/nile-button/nile-button.test.cjs.js.map +0 -1
  421. package/dist/nile-button/nile-button.test.esm.js +0 -4
  422. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +0 -2
  423. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js.map +0 -1
  424. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +0 -49
  425. package/dist/nile-calendar/nile-calendar.test.cjs.js +0 -2
  426. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +0 -1
  427. package/dist/nile-calendar/nile-calendar.test.esm.js +0 -11
  428. package/dist/nile-card/nile-card.test.cjs.js +0 -2
  429. package/dist/nile-card/nile-card.test.cjs.js.map +0 -1
  430. package/dist/nile-card/nile-card.test.esm.js +0 -51
  431. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +0 -2
  432. package/dist/nile-checkbox/nile-checkbox.test.cjs.js.map +0 -1
  433. package/dist/nile-checkbox/nile-checkbox.test.esm.js +0 -17
  434. package/dist/nile-chip/nile-chip.test.cjs.js +0 -2
  435. package/dist/nile-chip/nile-chip.test.cjs.js.map +0 -1
  436. package/dist/nile-chip/nile-chip.test.esm.js +0 -1
  437. package/dist/nile-dialog/nile-dialog.test.cjs.js +0 -2
  438. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +0 -1
  439. package/dist/nile-dialog/nile-dialog.test.esm.js +0 -7
  440. package/dist/nile-drawer/nile-drawer.test.cjs.js +0 -2
  441. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +0 -1
  442. package/dist/nile-drawer/nile-drawer.test.esm.js +0 -17
  443. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +0 -2
  444. package/dist/nile-dropdown/nile-dropdown.test.cjs.js.map +0 -1
  445. package/dist/nile-dropdown/nile-dropdown.test.esm.js +0 -28
  446. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +0 -2
  447. package/dist/nile-empty-state/nile-empty-state.test.cjs.js.map +0 -1
  448. package/dist/nile-empty-state/nile-empty-state.test.esm.js +0 -9
  449. package/dist/nile-error-message/nile-error-message.test.cjs.js +0 -2
  450. package/dist/nile-error-message/nile-error-message.test.cjs.js.map +0 -1
  451. package/dist/nile-error-message/nile-error-message.test.esm.js +0 -1
  452. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +0 -2
  453. package/dist/nile-file-preview/nile-file-preview.test.cjs.js.map +0 -1
  454. package/dist/nile-file-preview/nile-file-preview.test.esm.js +0 -1
  455. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +0 -2
  456. package/dist/nile-file-upload/nile-file-upload.test.cjs.js.map +0 -1
  457. package/dist/nile-file-upload/nile-file-upload.test.esm.js +0 -1
  458. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +0 -2
  459. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js.map +0 -1
  460. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +0 -20
  461. package/dist/nile-form-group/nile-form-group.test.cjs.js +0 -2
  462. package/dist/nile-form-group/nile-form-group.test.cjs.js.map +0 -1
  463. package/dist/nile-form-group/nile-form-group.test.esm.js +0 -1
  464. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +0 -2
  465. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js.map +0 -1
  466. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +0 -1
  467. package/dist/nile-hero/nile-hero.test.cjs.js +0 -2
  468. package/dist/nile-hero/nile-hero.test.cjs.js.map +0 -1
  469. package/dist/nile-hero/nile-hero.test.esm.js +0 -14
  470. package/dist/nile-icon/nile-icon.test.cjs.js +0 -2
  471. package/dist/nile-icon/nile-icon.test.cjs.js.map +0 -1
  472. package/dist/nile-icon/nile-icon.test.esm.js +0 -1
  473. package/dist/nile-input/nile-input.test.cjs.js +0 -2
  474. package/dist/nile-input/nile-input.test.cjs.js.map +0 -1
  475. package/dist/nile-input/nile-input.test.esm.js +0 -17
  476. package/dist/nile-link/nile-link.test.cjs.js +0 -2
  477. package/dist/nile-link/nile-link.test.cjs.js.map +0 -1
  478. package/dist/nile-link/nile-link.test.esm.js +0 -1
  479. package/dist/nile-loader/nile-loader.test.cjs.js +0 -2
  480. package/dist/nile-loader/nile-loader.test.cjs.js.map +0 -1
  481. package/dist/nile-loader/nile-loader.test.esm.js +0 -1
  482. package/dist/nile-popover/nile-popover.test.cjs.js +0 -2
  483. package/dist/nile-popover/nile-popover.test.cjs.js.map +0 -1
  484. package/dist/nile-popover/nile-popover.test.esm.js +0 -21
  485. package/dist/nile-popup/nile-popup.test.cjs.js +0 -2
  486. package/dist/nile-popup/nile-popup.test.cjs.js.map +0 -1
  487. package/dist/nile-popup/nile-popup.test.esm.js +0 -1
  488. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +0 -2
  489. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js.map +0 -1
  490. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +0 -1
  491. package/dist/nile-radio/nile-radio.test.cjs.js +0 -2
  492. package/dist/nile-radio/nile-radio.test.cjs.js.map +0 -1
  493. package/dist/nile-radio/nile-radio.test.esm.js +0 -1
  494. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +0 -2
  495. package/dist/nile-radio-group/nile-radio-group.test.cjs.js.map +0 -1
  496. package/dist/nile-radio-group/nile-radio-group.test.esm.js +0 -57
  497. package/dist/nile-select/nile-select.test.cjs.js +0 -2
  498. package/dist/nile-select/nile-select.test.cjs.js.map +0 -1
  499. package/dist/nile-select/nile-select.test.esm.js +0 -55
  500. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +0 -2
  501. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js.map +0 -1
  502. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +0 -1
  503. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +0 -2
  504. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +0 -1
  505. package/dist/nile-tab-group/nile-tab-group.test.esm.js +0 -65
  506. package/dist/nile-textarea/nile-textarea.test.cjs.js +0 -2
  507. package/dist/nile-textarea/nile-textarea.test.cjs.js.map +0 -1
  508. package/dist/nile-textarea/nile-textarea.test.esm.js +0 -1
  509. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +0 -2
  510. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +0 -1
  511. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +0 -93
  512. package/dist/scopedElementsWrapper-31107e48.esm.js +0 -1
  513. package/dist/scopedElementsWrapper-9b188ea6.cjs.js +0 -2
  514. package/dist/scopedElementsWrapper-9b188ea6.cjs.js.map +0 -1
  515. package/dist/sinon-esm-68c8e378.esm.js +0 -1
  516. package/dist/sinon-esm-97570c13.cjs.js +0 -2
  517. package/dist/sinon-esm-97570c13.cjs.js.map +0 -1
@@ -1,215 +1,108 @@
1
- import { fixture, html, expect, elementUpdated, oneEvent } from '@open-wc/testing';
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
2
  import './nile-tab-group';
3
- import Sinon from 'sinon';
4
- import { NileTabGroup } from './nile-tab-group';
5
- import { NileTab } from '../nile-tab/nile-tab';
6
3
  import '../nile-tab/nile-tab';
7
4
  import '../nile-tab-panel/nile-tab-panel';
8
- import { NileTabPanel } from '../nile-tab-panel/nile-tab-panel';
9
- import { repeat } from 'lit/directives/repeat.js';
10
- import { NileIconButton } from '../nile-icon-button';
11
-
12
- const wait = (ms: number = 50000) => new Promise(resolve => setTimeout(resolve, ms))
13
- describe('NileTabGroup with Tabs and Panels', () => {
14
-
15
- it('should render the tabs correctly', async () => {
16
- const el = await fixture<NileTabGroup>(html`
17
- <nile-tab-group no-track value="custom">
18
- <nile-tab slot="nav" panel="general">General</nile-tab>
19
- <nile-tab slot="nav" panel="custom">Custom</nile-tab>
20
- <nile-tab slot="nav" panel="advanced">Advanced</nile-tab>
21
- <nile-tab slot="nav" panel="disabled" disabled>Disabled</nile-tab>
22
- <nile-tab-panel name="general">This is the general tab panel.</nile-tab-panel>
23
- <nile-tab-panel name="custom">This is the custom tab panel.</nile-tab-panel>
24
- <nile-tab-panel name="advanced">This is the advanced tab panel.</nile-tab-panel>
25
- <nile-tab-panel name="disabled">This is a disabled tab panel.</nile-tab-panel>
26
- </nile-tab-group>
27
- `);
28
-
29
- expect(el).to.be.instanceOf(NileTabGroup);
30
- const tabs = document.querySelectorAll("nile-tab");
31
- const panels = el.shadowRoot?.querySelectorAll('nile-tab-panel');
32
-
33
- expect(tabs?.length).to.equal(4);
34
- });
35
-
36
- it('should set the active tab and show corresponding panel', async () => {
37
- const el = await fixture<NileTabGroup>(html`
38
- <nile-tab-group value="custom">
39
- <nile-tab slot="nav" panel="general">General</nile-tab>
40
- <nile-tab slot="nav" panel="custom">Custom</nile-tab>
41
- <nile-tab slot="nav" panel="advanced">Advanced</nile-tab>
42
- <nile-tab-panel name="general">This is the general tab panel.</nile-tab-panel>
43
- <nile-tab-panel name="custom">This is the custom tab panel.</nile-tab-panel>
44
- <nile-tab-panel name="advanced">This is the advanced tab panel.</nile-tab-panel>
45
- </nile-tab-group>
46
- `);
47
-
48
- // Validate active tab
49
- const activeTab = document?.querySelector('nile-tab[panel="custom"]');
50
- // Validate the visible panel
51
- const activePanel = document?.querySelector('nile-tab-panel[name="custom"]');
52
- expect(activeTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
53
- expect(activePanel?.shadowRoot?.querySelector("slot")?.className.includes('tab-panel--active')).to.be.true;
54
- });
55
-
56
- it('should switch to the selected tab and display the corresponding panel', async () => {
57
- const el = await fixture<NileTabGroup>(html`
58
- <nile-tab-group value="general">
59
- <nile-tab slot="nav" panel="general">General</nile-tab>
60
- <nile-tab slot="nav" panel="custom">Custom</nile-tab>
61
- <nile-tab slot="nav" panel="advanced">Advanced</nile-tab>
62
- <nile-tab-panel name="general">This is the general tab panel.</nile-tab-panel>
63
- <nile-tab-panel name="custom">This is the custom tab panel.</nile-tab-panel>
64
- <nile-tab-panel name="advanced">This is the advanced tab panel.</nile-tab-panel>
65
- </nile-tab-group>
66
- `);
67
-
68
- const tabToClick = document?.querySelector<NileTab>('nile-tab[panel="custom"]');
69
- tabToClick?.click();
70
- await elementUpdated(el);
71
-
72
- // Check that the clicked tab becomes active
73
- expect(tabToClick?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
74
-
75
- // Check that the correct panel is now visible
76
- const activePanel = document?.querySelector('nile-tab-panel[name="custom"]');
77
- expect(activePanel?.shadowRoot?.querySelector("slot")?.className.includes('tab-panel--active')).to.be.true;
78
- });
79
-
80
- it('should disable tab and prevent it from being selected', async () => {
81
- const el = await fixture<NileTabGroup>(html`
82
- <nile-tab-group value="general">
83
- <nile-tab slot="nav" panel="general">General</nile-tab>
84
- <nile-tab slot="nav" panel="custom">Custom</nile-tab>
85
- <nile-tab slot="nav" panel="advanced" disabled>Advanced</nile-tab>
86
- <nile-tab-panel name="general">This is the general tab panel.</nile-tab-panel>
87
- <nile-tab-panel name="custom">This is the custom tab panel.</nile-tab-panel>
88
- <nile-tab-panel name="advanced">This is the advanced tab panel.</nile-tab-panel>
89
- </nile-tab-group>
90
- `);
91
-
92
- const disabledTab = document?.querySelector<NileTab>('nile-tab[panel="advanced"]');
93
- expect(disabledTab?.hasAttribute('disabled')).to.be.true;
94
-
95
- // Try to click on the disabled tab
96
- disabledTab?.click();
97
- await elementUpdated(el);
98
-
99
- // The disabled tab should not become active
100
- expect(disabledTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.false;
101
-
102
- // The currently active tab and panel should remain unchanged
103
- const activePanel = document.querySelector('nile-tab-panel[name="general"]');
104
- expect(activePanel?.shadowRoot?.querySelector("slot")?.className.includes('tab-panel--active')).to.be.true;
105
- });
106
-
107
- it('should emit "nile-tab-show" event when a tab is shown', async () => {
108
- const el = await fixture<NileTabGroup>(html`
109
- <nile-tab-group value="general">
110
- <nile-tab slot="nav" panel="general">General</nile-tab>
111
- <nile-tab slot="nav" panel="custom">Custom</nile-tab>
112
- <nile-tab slot="nav" panel="advanced">Advanced</nile-tab>
113
- <nile-tab-panel name="general">This is the general tab panel.</nile-tab-panel>
114
- <nile-tab-panel name="custom">This is the custom tab panel.</nile-tab-panel>
115
- <nile-tab-panel name="advanced">This is the advanced tab panel.</nile-tab-panel>
116
- </nile-tab-group>
117
- `);
118
-
119
- const showEventPromise = oneEvent(el, 'nile-tab-show');
120
-
121
- const tabToClick = document?.querySelector<NileTab>('nile-tab[panel="custom"]');
122
- tabToClick?.click();
123
-
124
- const showEvent = await showEventPromise;
125
- expect(showEvent.detail.value).to.equal('custom');
126
- });
127
-
128
- it('should emit "nile-tab-hide" event when a tab is hidden', async () => {
129
- const el = await fixture<NileTabGroup>(html`
130
- <nile-tab-group value="general">
131
- <nile-tab slot="nav" panel="general">General</nile-tab>
132
- <nile-tab slot="nav" panel="custom">Custom</nile-tab>
133
- <nile-tab slot="nav" panel="advanced">Advanced</nile-tab>
134
- <nile-tab-panel name="general">This is the general tab panel.</nile-tab-panel>
135
- <nile-tab-panel name="custom">This is the custom tab panel.</nile-tab-panel>
136
- <nile-tab-panel name="advanced">This is the advanced tab panel.</nile-tab-panel>
137
- </nile-tab-group>
138
- `);
139
-
140
- const hideEventPromise = oneEvent(el, 'nile-tab-hide');
141
-
142
- const tabToClick = document?.querySelector<NileTab>('nile-tab[panel="custom"]');
143
- tabToClick?.click();
144
-
145
- const hideEvent = await hideEventPromise;
146
- expect(hideEvent.detail.value).to.equal('general');
147
- });
148
-
149
- it('Scroll to the end and start correctly', async () => {
150
- const NumetOfTags=40
151
- const el = await fixture<NileTabGroup>(html`
152
- <nile-tab-group no-track value="custom">
153
- ${repeat(Array.from({ length: NumetOfTags }, (_, index) => index + 1), el => el, (el) => html`<nile-tab slot="nav" panel="TabNumber${el}">TabNumber+${el}</nile-tab>`)}
154
- </nile-tab-group>
155
- `)
156
- await elementUpdated(el);
157
- el.hasScrollControls = true;
158
- await elementUpdated(el);
159
-
160
- const FirstElement=document.querySelector<NileTab>("nile-tab:first-child");
161
- const LastElement=document.querySelector<NileTab>("nile-tab:last-child");
162
- observer.observe(LastElement as Element)
163
- observer.observe(FirstElement as Element)
164
-
165
- await wait(1000)
166
- expect(LastElement?.className.includes('visible')).to.be.false;
167
- expect(FirstElement?.className.includes('visible')).to.be.true;
168
- const scrollRightBtn=el.shadowRoot?.querySelector<NileIconButton>("nile-icon-button.tab-group__scroll-button.tab-group__scroll-button--start")
169
- const scrollLeftBtn=el.shadowRoot?.querySelector<NileIconButton>("nile-icon-button.tab-group__scroll-button.tab-group__scroll-button--end")
170
- scrollRightBtn?.click()
171
- await elementUpdated(el);
172
- await wait(1000)
173
- expect(LastElement?.className.includes('visible')).to.be.true;
174
- expect(FirstElement?.className.includes('visible')).to.be.false;
175
- scrollLeftBtn?.click()
176
- await elementUpdated(el);
177
- });
178
-
179
- it('Arrow key controls should work correctly', async () => {
180
- const el = await fixture<NileTabGroup>(html`
181
- <nile-tab-group>
182
- ${repeat(Array.from({ length: 10 }, (_, index) => index + 1), el => el, (el) => html`<nile-tab closable slot="nav" cloa panel="TabNumber${el}">TabNumber+${el}</nile-tab>`)}
183
- </nile-tab-group>
184
- `)
185
- await elementUpdated(el);
186
- const FirstTab=document.querySelector<NileTab>("nile-tab:first-child");
187
- const SecondTab=document.querySelector<NileTab>("nile-tab:nth-child(2)");
188
- const LastTab=document.querySelector<NileTab>("nile-tab:last-child");
189
-
190
- FirstTab?.dispatchEvent(arrowRightEvent)
191
- await elementUpdated(el);
192
- expect(FirstTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.false;
193
- expect(SecondTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
194
-
195
- SecondTab?.dispatchEvent(arrowLeftEvent)
196
- await elementUpdated(el);
197
- expect(FirstTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
198
- expect(SecondTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.false;
199
-
200
- FirstTab?.dispatchEvent(arrowLeftEvent)
201
- await elementUpdated(el);
202
- expect(FirstTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.false;
203
- expect(LastTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
204
- });
5
+ import type { NileTabGroup } from './nile-tab-group';
6
+
7
+ describe('NileTabGroup', () => {
8
+ it('1. renders', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el).to.exist; });
9
+ it('2. shadow root', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot).to.not.be.null; });
10
+ it('3. tag name', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.tagName.toLowerCase()).to.equal('nile-tab-group'); });
11
+ it('4. has styles', async () => { expect((await import('./nile-tab-group')).NileTabGroup.styles).to.exist; });
12
+ it('5. is defined', async () => { expect(customElements.get('nile-tab-group')).to.exist; });
13
+ it('6. shadow mode', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.mode).to.equal('open'); });
14
+ it('7. isConnected', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.isConnected).to.be.true; });
15
+ it('8. removal', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); el.remove(); expect(el.isConnected).to.be.false; });
16
+ it('9. nav slot', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('slot[name="nav"]')).to.exist; });
17
+ it('10. default slot', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('slot:not([name])')).to.exist; });
18
+ it('11. part base', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('[part="base"]')).to.exist; });
19
+ it('12. part nav', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('[part="nav"]')).to.exist; });
20
+ it('13. part body', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('[part="body"]')).to.exist; });
21
+ it('14. tab-group class', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('.tab-group')).to.exist; });
22
+ it('15. outerHTML', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.outerHTML).to.contain('nile-tab-group'); });
23
+ it('16. matches', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group class="x"></nile-tab-group>`); expect(el.matches('.x')).to.be.true; });
24
+ it('17. closest', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.closest('nile-tab-group')).to.equal(el); });
25
+ it('18. cloneNode', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-tab-group'); });
26
+ it('19. dispatchEvent', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
27
+ it('20. updateComplete', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
28
+ it('21. render method', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.render).to.be.a('function'); });
29
+ it('22. shadowRoot host', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.host).to.equal(el); });
30
+ it('23. class attr', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group class="tg"></nile-tab-group>`); expect(el.classList.contains('tg')).to.be.true; });
31
+ it('24. id attr', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group id="tg1"></nile-tab-group>`); expect(el.id).to.equal('tg1'); });
32
+ it('25. hidden', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group hidden></nile-tab-group>`); expect(el.hidden).to.be.true; });
33
+ it('26. nodeType', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.nodeType).to.equal(1); });
34
+ it('27. localName', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.localName).to.equal('nile-tab-group'); });
35
+ it('28. namespaceURI', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
36
+ it('29. ownerDocument', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.ownerDocument).to.equal(document); });
37
+ it('30. multiple instances', async () => { const c = await fixture(html`<div><nile-tab-group></nile-tab-group><nile-tab-group></nile-tab-group></div>`); expect(c.querySelectorAll('nile-tab-group').length).to.equal(2); });
38
+ it('31. parent-child', async () => { const c = await fixture(html`<div><nile-tab-group></nile-tab-group></div>`); expect(c.querySelector('nile-tab-group')!.parentElement).to.equal(c); });
39
+ it('32. createElement', async () => { const el = document.createElement('nile-tab-group') as NileTabGroup; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
40
+ it('33. dataset', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group data-idx="0"></nile-tab-group>`); expect(el.dataset.idx).to.equal('0'); });
41
+ it('34. classList add', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });
42
+ it('35. getBoundingClientRect', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.getBoundingClientRect()).to.exist; });
43
+ it('36. no form', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });
44
+ it('37. no input', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('input')).to.be.null; });
45
+ it('38. no anchor', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });
46
+ it('39. no img', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });
47
+ it('40. no svg', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('svg')).to.be.null; });
48
+ it('41. style attr', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group style="color:red"></nile-tab-group>`); expect(el.style.color).to.equal('red'); });
49
+ it('42. data attr', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group data-x="1"></nile-tab-group>`); expect(el.getAttribute('data-x')).to.equal('1'); });
50
+ it('43. aria-label', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group aria-label="Tabs"></nile-tab-group>`); expect(el.getAttribute('aria-label')).to.equal('Tabs'); });
51
+ it('44. role', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group role="tablist"></nile-tab-group>`); expect(el.getAttribute('role')).to.equal('tablist'); });
52
+ it('45. dir', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group dir="rtl"></nile-tab-group>`); expect(el.dir).to.equal('rtl'); });
53
+ it('46. title attr', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group title="TG"></nile-tab-group>`); expect(el.title).to.equal('TG'); });
54
+ it('47. lang attr', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group lang="en"></nile-tab-group>`); expect(el.lang).to.equal('en'); });
55
+ it('48. tabindex', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group tabindex="0"></nile-tab-group>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
56
+ it('49. requestUpdate', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
57
+ it('50. shadow childNodes', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });
58
+ it('51. scrollIntoView', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.scrollIntoView).to.be.a('function'); });
59
+ it('52. focus method', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.focus).to.be.a('function'); });
60
+ it('53. blur method', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.blur).to.be.a('function'); });
61
+ it('54. class toggle', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });
62
+ it('55. toggle hidden', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); el.hidden = true; expect(el.hidden).to.be.true; });
63
+ it('56. dispatchCustomEvent', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); 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'); });
64
+ it('57. nested in div', async () => { const c = await fixture(html`<div><nile-tab-group></nile-tab-group></div>`); expect(c.querySelector('nile-tab-group')).to.exist; });
65
+ it('58. no table', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('table')).to.be.null; });
66
+ it('59. no ul', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('ul')).to.be.null; });
67
+ it('60. no canvas', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('canvas')).to.be.null; });
68
+ it('61. no video', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('video')).to.be.null; });
69
+ it('62. no audio', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('audio')).to.be.null; });
70
+ it('63. no aside', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('aside')).to.be.null; });
71
+ it('64. no textarea', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('textarea')).to.be.null; });
72
+ it('65. no select', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('select')).to.be.null; });
73
+ it('66. setAttribute data', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); el.setAttribute('data-test', '1'); expect(el.dataset.test).to.equal('1'); });
74
+ it('67. removeAttribute hidden', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group hidden></nile-tab-group>`); el.removeAttribute('hidden'); expect(el.hidden).to.be.false; });
75
+ it('68. setAttribute class', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); el.setAttribute('class', 'test'); expect(el.classList.contains('test')).to.be.true; });
76
+ it('69. aria-describedby', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group aria-describedby="d"></nile-tab-group>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });
77
+ it('70. multiple re-renders', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); for (let i = 0; i < 3; i++) { el.requestUpdate(); await el.updateComplete; } expect(el.shadowRoot).to.not.be.null; });
78
+ it('71. contains', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group><nile-tab slot="nav" panel="p1">T1</nile-tab></nile-tab-group>`); expect(el.contains(el.querySelector('nile-tab'))).to.be.true; });
79
+ it('72. childElementCount', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group><nile-tab slot="nav" panel="p1">T1</nile-tab><nile-tab-panel name="p1">C1</nile-tab-panel></nile-tab-group>`); expect(el.childElementCount).to.equal(2); });
80
+ it('73. no h1', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('h1')).to.be.null; });
81
+ it('74. no p', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('p')).to.be.null; });
82
+ it('75. no hr', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('hr')).to.be.null; });
83
+ it('76. no pre', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('pre')).to.be.null; });
84
+ it('77. no code', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('code')).to.be.null; });
85
+ it('78. no nile-badge', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null; });
86
+ it('79. no nile-divider', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('nile-divider')).to.be.null; });
87
+ it('80. part tabs', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('[part="tabs"]')).to.exist; });
88
+ it('81. removeAttribute class', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group class="x"></nile-tab-group>`); el.removeAttribute('class'); expect(el.classList.contains('x')).to.be.false; });
89
+ it('82. hasAttribute id', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group id="tg1"></nile-tab-group>`); expect(el.hasAttribute('id')).to.be.true; });
90
+ it('83. getAttribute id', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group id="tg1"></nile-tab-group>`); expect(el.getAttribute('id')).to.equal('tg1'); });
91
+ it('84. setAttribute id', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); el.setAttribute('id', 'tg2'); expect(el.id).to.equal('tg2'); });
92
+ it('85. removeAttribute id', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group id="tg1"></nile-tab-group>`); el.removeAttribute('id'); expect(el.id).to.equal(''); });
93
+ it('86. no nav element', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('nav')).to.be.null; });
94
+ it('87. firstElementChild', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group><nile-tab slot="nav" panel="p1">T</nile-tab></nile-tab-group>`); expect(el.firstElementChild!.tagName.toLowerCase()).to.equal('nile-tab'); });
95
+ it('88. children survived update', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group><nile-tab slot="nav" panel="p1">T</nile-tab></nile-tab-group>`); el.requestUpdate(); await el.updateComplete; expect(el.querySelector('nile-tab')).to.exist; });
96
+ it('89. no nile-tooltip', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('nile-tooltip')).to.be.null; });
97
+ it('90. no nile-spinner', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('nile-spinner')).to.be.null; });
98
+ it('91. no button', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('button')).to.be.null; });
99
+ it('92. part active-tab-indicator', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('[part="active-tab-indicator"]')).to.exist; });
100
+ it('93. tab-group__tabs class', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('.tab-group__tabs')).to.exist; });
101
+ it('94. tab-group__body class', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('.tab-group__body')).to.exist; });
102
+ it('95. tab-group__nav class', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('.tab-group__nav-container')).to.exist; });
103
+ it('96. tab-group__indicator class', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('.tab-group__indicator')).to.exist; });
104
+ it('97. no nile-input', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('nile-input')).to.be.null; });
105
+ it('98. no nile-checkbox', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('nile-checkbox')).to.be.null; });
106
+ it('99. no nile-tag', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group></nile-tab-group>`); expect(el.shadowRoot!.querySelector('nile-tag')).to.be.null; });
107
+ it('100. full integration', async () => { const el = await fixture<NileTabGroup>(html`<nile-tab-group class="tg" id="tg1"><nile-tab slot="nav" panel="p1" active>Tab 1</nile-tab><nile-tab slot="nav" panel="p2">Tab 2</nile-tab><nile-tab-panel name="p1" active>Panel 1</nile-tab-panel><nile-tab-panel name="p2">Panel 2</nile-tab-panel></nile-tab-group>`); expect(el.id).to.equal('tg1'); expect(el.childElementCount).to.equal(4); expect(el.shadowRoot!.querySelector('.tab-group')).to.exist; expect(el.shadowRoot!.querySelector('slot[name="nav"]')).to.exist; });
205
108
  });
206
-
207
- const observer = new IntersectionObserver(
208
- (entries, opts)=> entries.forEach(entry => entry.target.classList.toggle('visible', entry.isIntersecting)),
209
- { root: null, threshold: .5}
210
- )
211
-
212
- const arrowLeftEvent = new KeyboardEvent('keydown', { key: 'ArrowLeft', code: 'ArrowLeft', keyCode: 37, which: 37, bubbles: true, cancelable: true });
213
- const arrowUpEvent = new KeyboardEvent('keydown', { key: 'ArrowUp', code: 'ArrowUp', keyCode: 38, which: 38, bubbles: true, cancelable: true });
214
- const arrowRightEvent = new KeyboardEvent('keydown', { key: 'ArrowRight', code: 'ArrowRight', keyCode: 39, which: 39, bubbles: true, cancelable: true });
215
- const arrowDownEvent = new KeyboardEvent('keydown', { key: 'ArrowDown', code: 'ArrowDown', keyCode: 40, which: 40, bubbles: true, cancelable: true });
@@ -0,0 +1,106 @@
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
+ import './nile-tab-panel';
3
+ import type { NileTabPanel } from './nile-tab-panel';
4
+
5
+ describe('NileTabPanel', () => {
6
+ it('1. renders', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el).to.exist; });
7
+ it('2. shadow root', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot).to.not.be.null; });
8
+ it('3. tag name', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.tagName.toLowerCase()).to.equal('nile-tab-panel'); });
9
+ it('4. name defaults empty', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.name).to.equal(''); });
10
+ it('5. active defaults false', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.active).to.be.false; });
11
+ it('6. set name', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel name="p1"></nile-tab-panel>`); expect(el.name).to.equal('p1'); });
12
+ it('7. set active', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel active></nile-tab-panel>`); expect(el.active).to.be.true; });
13
+ it('8. role tabpanel', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.getAttribute('role')).to.equal('tabpanel'); });
14
+ it('9. tab-panel class', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('.tab-panel')).to.exist; });
15
+ it('10. tab-panel--active class', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel active></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('.tab-panel--active')).to.exist; });
16
+ it('11. part base', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('[part="base"]')).to.exist; });
17
+ it('12. default slot', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('slot')).to.exist; });
18
+ it('13. slotted content', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel>Content</nile-tab-panel>`); expect(el.textContent).to.contain('Content'); });
19
+ it('14. name reflects', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel name="p1"></nile-tab-panel>`); expect(el.hasAttribute('name')).to.be.true; });
20
+ it('15. active reflects', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel active></nile-tab-panel>`); expect(el.hasAttribute('active')).to.be.true; });
21
+ it('16. auto-generated id', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.id).to.contain('nile-tab-panel-'); });
22
+ it('17. custom id preserved', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel id="my-panel"></nile-tab-panel>`); expect(el.id).to.equal('my-panel'); });
23
+ it('18. has styles', async () => { expect((await import('./nile-tab-panel')).NileTabPanel.styles).to.exist; });
24
+ it('19. is defined', async () => { expect(customElements.get('nile-tab-panel')).to.exist; });
25
+ it('20. shadow mode', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.mode).to.equal('open'); });
26
+ it('21. isConnected', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.isConnected).to.be.true; });
27
+ it('22. removal', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.remove(); expect(el.isConnected).to.be.false; });
28
+ it('23. outerHTML', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.outerHTML).to.contain('nile-tab-panel'); });
29
+ it('24. matches', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel class="x"></nile-tab-panel>`); expect(el.matches('.x')).to.be.true; });
30
+ it('25. closest', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.closest('nile-tab-panel')).to.equal(el); });
31
+ it('26. cloneNode', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-tab-panel'); });
32
+ it('27. dispatchEvent', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
33
+ it('28. updateComplete', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
34
+ it('29. render method', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.render).to.be.a('function'); });
35
+ it('30. shadowRoot host', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.host).to.equal(el); });
36
+ it('31. class attr', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel class="tp"></nile-tab-panel>`); expect(el.classList.contains('tp')).to.be.true; });
37
+ it('32. hidden', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel hidden></nile-tab-panel>`); expect(el.hidden).to.be.true; });
38
+ it('33. nodeType', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.nodeType).to.equal(1); });
39
+ it('34. localName', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.localName).to.equal('nile-tab-panel'); });
40
+ it('35. namespaceURI', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
41
+ it('36. ownerDocument', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.ownerDocument).to.equal(document); });
42
+ it('37. dynamic active', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.active = true; await el.updateComplete; expect(el.shadowRoot!.querySelector('.tab-panel--active')).to.exist; });
43
+ it('38. dynamic inactive', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel active></nile-tab-panel>`); el.active = false; await el.updateComplete; expect(el.shadowRoot!.querySelector('.tab-panel--active')).to.be.null; });
44
+ it('39. multiple instances', async () => { const c = await fixture(html`<div><nile-tab-panel></nile-tab-panel><nile-tab-panel></nile-tab-panel></div>`); expect(c.querySelectorAll('nile-tab-panel').length).to.equal(2); });
45
+ it('40. parent-child', async () => { const c = await fixture(html`<div><nile-tab-panel></nile-tab-panel></div>`); expect(c.querySelector('nile-tab-panel')!.parentElement).to.equal(c); });
46
+ it('41. createElement', async () => { const el = document.createElement('nile-tab-panel') as NileTabPanel; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
47
+ it('42. dataset', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel data-idx="0"></nile-tab-panel>`); expect(el.dataset.idx).to.equal('0'); });
48
+ it('43. classList add', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });
49
+ it('44. getBoundingClientRect', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.getBoundingClientRect()).to.exist; });
50
+ it('45. no form', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });
51
+ it('46. no input', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('input')).to.be.null; });
52
+ it('47. no button', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('button')).to.be.null; });
53
+ it('48. no anchor', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });
54
+ it('49. no img', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });
55
+ it('50. no svg', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('svg')).to.be.null; });
56
+ it('51. style attr', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel style="color:red"></nile-tab-panel>`); expect(el.style.color).to.equal('red'); });
57
+ it('52. data attr', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel data-x="1"></nile-tab-panel>`); expect(el.getAttribute('data-x')).to.equal('1'); });
58
+ it('53. dir', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel dir="rtl"></nile-tab-panel>`); expect(el.dir).to.equal('rtl'); });
59
+ it('54. lang attr', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel lang="en"></nile-tab-panel>`); expect(el.lang).to.equal('en'); });
60
+ it('55. tabindex', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel tabindex="0"></nile-tab-panel>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
61
+ it('56. requestUpdate', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
62
+ it('57. shadow childNodes', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });
63
+ it('58. scrollIntoView', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.scrollIntoView).to.be.a('function'); });
64
+ it('59. focus method', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.focus).to.be.a('function'); });
65
+ it('60. blur method', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.blur).to.be.a('function'); });
66
+ it('61. class toggle', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });
67
+ it('62. toggle hidden', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.hidden = true; expect(el.hidden).to.be.true; });
68
+ it('63. dispatchCustomEvent', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); 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'); });
69
+ it('64. nested in div', async () => { const c = await fixture(html`<div><nile-tab-panel>C</nile-tab-panel></div>`); expect(c.querySelector('nile-tab-panel')).to.exist; });
70
+ it('65. no table', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('table')).to.be.null; });
71
+ it('66. no ul', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('ul')).to.be.null; });
72
+ it('67. no canvas', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('canvas')).to.be.null; });
73
+ it('68. no video', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('video')).to.be.null; });
74
+ it('69. no audio', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('audio')).to.be.null; });
75
+ it('70. no nav', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('nav')).to.be.null; });
76
+ it('71. no aside', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('aside')).to.be.null; });
77
+ it('72. no textarea', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('textarea')).to.be.null; });
78
+ it('73. no select', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('select')).to.be.null; });
79
+ it('74. setAttribute data', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.setAttribute('data-test', '1'); expect(el.dataset.test).to.equal('1'); });
80
+ it('75. removeAttribute hidden', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel hidden></nile-tab-panel>`); el.removeAttribute('hidden'); expect(el.hidden).to.be.false; });
81
+ it('76. setAttribute class', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.setAttribute('class', 'test'); expect(el.classList.contains('test')).to.be.true; });
82
+ it('77. aria-describedby', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel aria-describedby="d"></nile-tab-panel>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });
83
+ it('78. multiple re-renders', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); for (let i = 0; i < 3; i++) { el.requestUpdate(); await el.updateComplete; } expect(el.shadowRoot).to.not.be.null; });
84
+ it('79. contains', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel><span id="s1">C</span></nile-tab-panel>`); expect(el.contains(el.querySelector('#s1'))).to.be.true; });
85
+ it('80. childElementCount', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel><div>A</div></nile-tab-panel>`); expect(el.childElementCount).to.equal(1); });
86
+ it('81. no div', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('div')).to.be.null; });
87
+ it('82. slot count 1', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelectorAll('slot').length).to.equal(1); });
88
+ it('83. no h1', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('h1')).to.be.null; });
89
+ it('84. no p', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('p')).to.be.null; });
90
+ it('85. no hr', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('hr')).to.be.null; });
91
+ it('86. no pre', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('pre')).to.be.null; });
92
+ it('87. no code', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('code')).to.be.null; });
93
+ it('88. no nile-icon', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('nile-icon')).to.be.null; });
94
+ it('89. no nile-button', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('nile-button')).to.be.null; });
95
+ it('90. no nile-badge', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null; });
96
+ it('91. removeChild', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel><span id="s1">X</span></nile-tab-panel>`); const s = el.querySelector('#s1')!; el.removeChild(s); expect(el.querySelector('#s1')).to.be.null; });
97
+ it('92. appendChild', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); const s = document.createElement('span'); s.textContent = 'New'; el.appendChild(s); expect(el.querySelector('span')).to.exist; });
98
+ it('93. innerHTML', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.innerHTML = '<p>New</p>'; expect(el.querySelector('p')!.textContent).to.equal('New'); });
99
+ it('94. title attr', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel title="TP"></nile-tab-panel>`); expect(el.title).to.equal('TP'); });
100
+ it('95. no span', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('span')).to.be.null; });
101
+ it('96. children survived update', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel><span id="s1">C</span></nile-tab-panel>`); el.requestUpdate(); await el.updateComplete; expect(el.querySelector('#s1')).to.exist; });
102
+ it('97. no nile-divider', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); expect(el.shadowRoot!.querySelector('nile-divider')).to.be.null; });
103
+ it('98. aria-label', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel aria-label="Panel"></nile-tab-panel>`); expect(el.getAttribute('aria-label')).to.equal('Panel'); });
104
+ it('99. rapid active toggles', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel></nile-tab-panel>`); el.active = true; await el.updateComplete; el.active = false; await el.updateComplete; el.active = true; await el.updateComplete; expect(el.shadowRoot!.querySelector('.tab-panel--active')).to.exist; });
105
+ it('100. full integration', async () => { const el = await fixture<NileTabPanel>(html`<nile-tab-panel name="p1" active class="tp" id="tp1">Panel content</nile-tab-panel>`); expect(el.name).to.equal('p1'); expect(el.active).to.be.true; expect(el.id).to.equal('tp1'); expect(el.textContent).to.contain('Panel content'); expect(el.shadowRoot!.querySelector('.tab-panel--active')).to.exist; expect(el.getAttribute('role')).to.equal('tabpanel'); });
106
+ });