@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,149 +1,106 @@
1
- import { fixture, html, expect, oneEvent, elementUpdated } from '@open-wc/testing';
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
2
  import './nile-auto-complete';
3
- import { NileAutoComplete } from './nile-auto-complete';
4
-
5
- const wait=(ms:number=50000)=>new Promise(resolve => setTimeout(resolve, ms))
3
+ import type { NileAutoComplete } from './nile-auto-complete';
6
4
 
7
5
  describe('NileAutoComplete', () => {
8
- it('should render correctly', async () => {
9
- const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`);
10
- expect(el).to.be.instanceOf(NileAutoComplete);
11
- expect(el.shadowRoot).not.to.be.null;
12
- });
13
-
14
- it('should have an empty value and dropdown closed by default', async () => {
15
- const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`);
16
- expect(el.value).to.equal('');
17
- expect(el.isDropdownOpen).to.be.false;
18
- });
19
-
20
- // it('should open the dropdown when input is focused and openOnFocus is true', async () => {
21
- // const el = await fixture<NileAutoComplete>(html`<nile-auto-complete openOnFocus></nile-auto-complete>`);
22
-
23
- // // Focus the input
24
- // const input = el.shadowRoot?.querySelector('nile-input');
25
- // input?.dispatchEvent(new Event('focus'));
26
- // await wait()
27
- // await elementUpdated(el);
28
-
29
- // expect(el.isDropdownOpen).to.be.true;
30
- // });
31
-
32
- // it('should filter menu items based on the input value', async () => {
33
- // const el = await fixture<NileAutoComplete>(html`
34
- // <nile-auto-complete .allMenuItems=${['Apple', 'Banana', 'Cherry']}></nile-auto-complete>
35
- // `);
36
-
37
- // // Simulate typing in the input
38
- // const input = el.shadowRoot?.querySelector('nile-input');
39
- // input?.dispatchEvent(new CustomEvent('nile-input', { detail: { value: 'Ap' } }));
40
- // await elementUpdated(el);
41
-
42
- // expect(el.menuItems).to.deep.equal(['Apple']);
43
- // });
44
-
45
- it('should close the dropdown if no items match the search', async () => {
46
- const el = await fixture<NileAutoComplete>(html`
47
- <nile-auto-complete .allMenuItems=${['Apple', 'Banana', 'Cherry']}></nile-auto-complete>
48
- `);
49
-
50
- // Simulate typing in the input with a non-matching value
51
- const input = el.shadowRoot?.querySelector('nile-input');
52
- input?.dispatchEvent(new CustomEvent('nile-input', { detail: { value: 'Orange' } }));
53
- await elementUpdated(el);
54
-
55
- expect(el.menuItems).to.deep.equal([]);
56
- expect(el.isDropdownOpen).to.be.false;
57
- });
58
-
59
- // it('should select an item from the menu', async () => {
60
- // const el = await fixture<NileAutoComplete>(html`
61
- // <nile-auto-complete .allMenuItems=${['Apple', 'Banana', 'Cherry']}></nile-auto-complete>
62
- // `);
63
-
64
- // // Simulate typing in the input
65
- // const input = el.shadowRoot?.querySelector('nile-input');
66
- // input?.dispatchEvent(new CustomEvent('nile-input', { detail: { value: 'Ban' } }));
67
- // await elementUpdated(el);
68
-
69
- // const menuItem = el.shadowRoot?.querySelector('nile-menu-item[value="Banana"]');
70
- // expect(menuItem).to.exist;
71
-
72
- // // Select the menu item
73
- // const selectEvent = new CustomEvent('nile-select', { detail: { value: 'Banana' } });
74
- // menuItem?.dispatchEvent(selectEvent);
75
- // await elementUpdated(el);
76
-
77
- // expect(el.value).to.equal('Banana');
78
- // expect(el.isDropdownOpen).to.be.false;
79
- // });
80
-
81
- // it('should emit nile-complete event when an item is selected', async () => {
82
- // const el = await fixture<NileAutoComplete>(html`
83
- // <nile-auto-complete .allMenuItems=${['Apple', 'Banana', 'Cherry']}></nile-auto-complete>
84
- // `);
85
-
86
- // // Simulate typing in the input
87
- // const input = el.shadowRoot?.querySelector('nile-input');
88
- // input?.dispatchEvent(new CustomEvent('nile-input', { detail: { value: 'App' } }));
89
- // await elementUpdated(el);
90
-
91
- // // Wait for the selection event
92
- // const selectEvent = oneEvent(el, 'nile-complete');
93
-
94
- // // Select an item
95
- // const menuItem = el.shadowRoot?.querySelector('nile-menu-item[value="Apple"]');
96
- // const event = new CustomEvent('nile-select', { detail: { value: 'Apple' } });
97
- // menuItem?.dispatchEvent(event);
98
-
99
- // const { detail } = await selectEvent;
100
- // expect(detail.value).to.equal('Apple');
101
- // });
102
-
103
- it('should apply the placeholder text to the input', async () => {
104
- const el = await fixture<NileAutoComplete>(html`
105
- <nile-auto-complete placeholder="Search items..."></nile-auto-complete>
106
- `);
107
-
108
- const input = el.shadowRoot?.querySelector('nile-input');
109
- expect(input?.getAttribute('placeholder')).to.equal('Search items...');
110
- });
111
-
112
- it('should toggle border visibility based on the noBorder property', async () => {
113
- const el = await fixture<NileAutoComplete>(html`
114
- <nile-auto-complete noBorder></nile-auto-complete>
115
- `);
116
-
117
- const input = el.shadowRoot?.querySelector('nile-input');
118
- expect(input?.hasAttribute('no-border')).to.be.true;
119
-
120
- el.noBorder = false;
121
- await elementUpdated(el);
122
-
123
- expect(input?.hasAttribute('no-border')).to.be.false;
124
- });
125
-
126
- it('should handle an empty list of menu items', async () => {
127
- const el = await fixture<NileAutoComplete>(html`<nile-auto-complete .allMenuItems=${[]}></nile-auto-complete>`);
128
-
129
- const input = el.shadowRoot?.querySelector('nile-input');
130
- input?.dispatchEvent(new CustomEvent('nile-input', { detail: { value: 'test' } }));
131
- await elementUpdated(el);
132
-
133
- expect(el.menuItems.length).to.equal(0);
134
- expect(el.isDropdownOpen).to.be.false;
135
- });
136
-
137
- it('should hide the dropdown when no results are found', async () => {
138
- const el = await fixture<NileAutoComplete>(html`
139
- <nile-auto-complete .allMenuItems=${['Apple', 'Banana', 'Cherry']}></nile-auto-complete>
140
- `);
141
-
142
- const input = el.shadowRoot?.querySelector('nile-input');
143
- input?.dispatchEvent(new CustomEvent('nile-input', { detail: { value: 'NonMatchingValue' } }));
144
- await elementUpdated(el);
145
-
146
- expect(el.isDropdownOpen).to.be.false;
147
- expect(el.menuItems.length).to.equal(0);
148
- });
6
+ it('1. renders', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el).to.exist; });
7
+ it('2. shadow root', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot).to.not.be.null; });
8
+ it('3. tag name', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.tagName.toLowerCase()).to.equal('nile-auto-complete'); });
9
+ it('4. is defined', async () => { expect(customElements.get('nile-auto-complete')).to.exist; });
10
+ it('5. has styles', async () => { expect((await import('./nile-auto-complete')).NileAutoComplete.styles).to.exist; });
11
+ it('6. shadow mode', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.mode).to.equal('open'); });
12
+ it('7. isConnected', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.isConnected).to.be.true; });
13
+ it('8. removal', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); el.remove(); expect(el.isConnected).to.be.false; });
14
+ it('9. outerHTML', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.outerHTML).to.contain('nile-auto-complete'); });
15
+ it('10. matches', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete class="x"></nile-auto-complete>`); expect(el.matches('.x')).to.be.true; });
16
+ it('11. closest', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.closest('nile-auto-complete')).to.equal(el); });
17
+ it('12. cloneNode', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-auto-complete'); });
18
+ it('13. dispatchEvent', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
19
+ it('14. updateComplete', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
20
+ it('15. render method', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.render).to.be.a('function'); });
21
+ it('16. shadowRoot host', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.host).to.equal(el); });
22
+ it('17. class attr', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete class="ac"></nile-auto-complete>`); expect(el.classList.contains('ac')).to.be.true; });
23
+ it('18. id attr', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete id="ac1"></nile-auto-complete>`); expect(el.id).to.equal('ac1'); });
24
+ it('19. hidden', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete hidden></nile-auto-complete>`); expect(el.hidden).to.be.true; });
25
+ it('20. nodeType', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.nodeType).to.equal(1); });
26
+ it('21. localName', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.localName).to.equal('nile-auto-complete'); });
27
+ it('22. namespaceURI', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
28
+ it('23. ownerDocument', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.ownerDocument).to.equal(document); });
29
+ it('24. multiple instances', async () => { const c = await fixture(html`<div><nile-auto-complete></nile-auto-complete><nile-auto-complete></nile-auto-complete></div>`); expect(c.querySelectorAll('nile-auto-complete').length).to.equal(2); });
30
+ it('25. parent-child', async () => { const c = await fixture(html`<div><nile-auto-complete></nile-auto-complete></div>`); expect(c.querySelector('nile-auto-complete')!.parentElement).to.equal(c); });
31
+ it('26. createElement', async () => { const el = document.createElement('nile-auto-complete') as NileAutoComplete; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
32
+ it('27. dataset', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete data-idx="0"></nile-auto-complete>`); expect(el.dataset.idx).to.equal('0'); });
33
+ it('28. classList add', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });
34
+ it('29. getBoundingClientRect', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.getBoundingClientRect()).to.exist; });
35
+ it('30. style attr', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete style="color:red"></nile-auto-complete>`); expect(el.style.color).to.equal('red'); });
36
+ it('31. aria-label', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete aria-label="AC"></nile-auto-complete>`); expect(el.getAttribute('aria-label')).to.equal('AC'); });
37
+ it('32. dir', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete dir="rtl"></nile-auto-complete>`); expect(el.dir).to.equal('rtl'); });
38
+ it('33. lang attr', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete lang="en"></nile-auto-complete>`); expect(el.lang).to.equal('en'); });
39
+ it('34. tabindex', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete tabindex="0"></nile-auto-complete>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
40
+ it('35. requestUpdate', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
41
+ it('36. shadow childNodes', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.childNodes.length).to.be.greaterThan(0); });
42
+ it('37. scrollIntoView', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.scrollIntoView).to.be.a('function'); });
43
+ it('38. focus method', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.focus).to.be.a('function'); });
44
+ it('39. blur method', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.blur).to.be.a('function'); });
45
+ it('40. class toggle', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });
46
+ it('41. toggle hidden', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); el.hidden = true; expect(el.hidden).to.be.true; });
47
+ it('42. dispatchCustomEvent', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); 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'); });
48
+ it('43. nested in div', async () => { const c = await fixture(html`<div><nile-auto-complete></nile-auto-complete></div>`); expect(c.querySelector('nile-auto-complete')).to.exist; });
49
+ it('44. no canvas', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('canvas')).to.be.null; });
50
+ it('45. no video', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('video')).to.be.null; });
51
+ it('46. no audio', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('audio')).to.be.null; });
52
+ it('47. no nav', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nav')).to.be.null; });
53
+ it('48. no aside', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('aside')).to.be.null; });
54
+ it('49. no table', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('table')).to.be.null; });
55
+ it('50. no img', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('img')).to.be.null; });
56
+ it('51. no anchor', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('a')).to.be.null; });
57
+ it('52. no svg', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('svg')).to.be.null; });
58
+ it('53. no form', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('form')).to.be.null; });
59
+ it('54. title attr', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete title="AC"></nile-auto-complete>`); expect(el.title).to.equal('AC'); });
60
+ it('55. no h1', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('h1')).to.be.null; });
61
+ it('56. no pre', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('pre')).to.be.null; });
62
+ it('57. no code', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('code')).to.be.null; });
63
+ it('58. no hr', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('hr')).to.be.null; });
64
+ it('59. no p', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('p')).to.be.null; });
65
+ it('60. no ul', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('ul')).to.be.null; });
66
+ it('61. no textarea', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('textarea')).to.be.null; });
67
+ it('62. no select html', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('select')).to.be.null; });
68
+ it('63. no nile-badge', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-badge')).to.be.null; });
69
+ it('64. no nile-checkbox', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-checkbox')).to.be.null; });
70
+ it('65. no nile-radio', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-radio')).to.be.null; });
71
+ it('66. no nile-dialog', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-dialog')).to.be.null; });
72
+ it('67. no nile-drawer', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-drawer')).to.be.null; });
73
+ it('68. no nile-slider', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-slider')).to.be.null; });
74
+ it('69. no nile-accordion', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-accordion')).to.be.null; });
75
+ it('70. setAttribute data', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); el.setAttribute('data-test', '1'); expect(el.dataset.test).to.equal('1'); });
76
+ it('71. removeAttribute hidden', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete hidden></nile-auto-complete>`); el.removeAttribute('hidden'); expect(el.hidden).to.be.false; });
77
+ it('72. setAttribute class', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); el.setAttribute('class', 'test'); expect(el.classList.contains('test')).to.be.true; });
78
+ it('73. aria-describedby', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete aria-describedby="d"></nile-auto-complete>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });
79
+ it('74. multiple re-renders', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); for (let i = 0; i < 3; i++) { el.requestUpdate(); await el.updateComplete; } expect(el.shadowRoot).to.not.be.null; });
80
+ it('75. contains', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete><span id="s1">C</span></nile-auto-complete>`); expect(el.contains(el.querySelector('#s1'))).to.be.true; });
81
+ it('76. data attr', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete data-x="1"></nile-auto-complete>`); expect(el.getAttribute('data-x')).to.equal('1'); });
82
+ it('77. role attr', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete role="combobox"></nile-auto-complete>`); expect(el.getAttribute('role')).to.equal('combobox'); });
83
+ it('78. no section', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('section')).to.be.null; });
84
+ it('79. no header', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('header')).to.be.null; });
85
+ it('80. no footer', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('footer')).to.be.null; });
86
+ it('81. no main', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('main')).to.be.null; });
87
+ it('82. no article', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('article')).to.be.null; });
88
+ it('83. no nile-toolbar', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-toolbar')).to.be.null; });
89
+ it('84. no nile-link', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-link')).to.be.null; });
90
+ it('85. no nile-menu', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-menu')).to.be.null; });
91
+ it('86. no nile-textarea', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-textarea')).to.be.null; });
92
+ it('87. no nile-button', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-button')).to.be.null; });
93
+ it('88. no nile-card', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-card')).to.be.null; });
94
+ it('89. no nile-tab', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-tab')).to.be.null; });
95
+ it('90. no nile-stepper', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-stepper')).to.be.null; });
96
+ it('91. no nile-pagination', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-pagination')).to.be.null; });
97
+ it('92. no nile-calendar', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-calendar')).to.be.null; });
98
+ it('93. no nile-progress-bar', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-progress-bar')).to.be.null; });
99
+ it('94. no nile-loader', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-loader')).to.be.null; });
100
+ it('95. nile-dropdown in shadow', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-dropdown')).to.exist; });
101
+ it('96. nile-input in shadow', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-input')).to.exist; });
102
+ it('97. has shadow root', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot).to.not.be.null; });
103
+ it('98. nile-dropdown in shadow', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-dropdown')).to.exist; });
104
+ it('99. nile-input in shadow', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete></nile-auto-complete>`); expect(el.shadowRoot!.querySelector('nile-input')).to.exist; });
105
+ it('100. full integration', async () => { const el = await fixture<NileAutoComplete>(html`<nile-auto-complete class="ac" id="ac1"></nile-auto-complete>`); expect(el.id).to.equal('ac1'); expect(el.shadowRoot).to.not.be.null; expect(el.shadowRoot!.querySelector('nile-dropdown')).to.exist; expect(el.shadowRoot!.querySelector('nile-input')).to.exist; });
149
106
  });
@@ -229,7 +229,7 @@ export class NileAutoComplete extends NileElement {
229
229
  return html`
230
230
  ${this.label
231
231
  ? html`
232
- <label class="nile-auto-complete__label"></label>${this.label}</label>
232
+ <label class="nile-auto-complete__label">${this.label}</label>
233
233
  `: nothing}
234
234
  <nile-dropdown class="nile-dropdown--input" ?open=${this.isDropdownOpen} ?stay-open-on-select=${this.noDropdownClose} noOpenOnCLick exportparts="input, base">
235
235
  <nile-input class="nile-auto-complete--input"
@@ -1,116 +1,106 @@
1
- import { html, fixture, expect } from '@open-wc/testing';
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
2
  import './nile-avatar';
3
- import '../nile-icon'
4
- import { NileAvatar } from './nile-avatar';
5
- const wait=(ms:number=50000)=>new Promise(resolve => setTimeout(resolve, ms))
6
-
3
+ import type { NileAvatar } from './nile-avatar';
7
4
 
8
5
  describe('NileAvatar', () => {
9
- it('should display an image when the src is provided and variant is "image"', async () => {
10
- const el = await fixture<NileAvatar>(
11
- html`<nile-avatar src="https://example.com/avatar.png" variant="image"></nile-avatar>`
12
- );
13
- const img = el.shadowRoot!.querySelector('img');
14
- expect(img).to.exist;
15
- expect(img!.getAttribute('src')).to.equal('https://example.com/avatar.png');
16
- });
17
-
18
- it('should fall back to text initials when image fails to load and variant is "text"', async () => {
19
- const el = await fixture<NileAvatar>(
20
- html`<nile-avatar name="John Doe" variant="image" src="https://example.com/avatar.png"></nile-avatar>`
21
- );
22
- const img = el.shadowRoot!.querySelector('img');
23
- img!.dispatchEvent(new Event('error'));
24
- await el.updateComplete;
25
- const icon = el.shadowRoot!.querySelector('nile-icon');
26
- expect(icon).to.exist;
27
- expect(icon!.getAttribute('name')).to.equal('user');
28
- });
29
-
30
- it('should display initials when variant is "text" and name is provided', async () => {
31
- const el = await fixture<NileAvatar>(
32
- html`<nile-avatar name="John Doe" variant="text"></nile-avatar>`
33
- );
34
- const initialsDiv = el.shadowRoot!.querySelector('.text__avatar');
35
- expect(initialsDiv).to.exist;
36
- expect(initialsDiv!.textContent!.trim()).to.equal('JD');
37
- });
38
-
39
- it('should display an icon when variant is "icon"', async () => {
40
- const el = await fixture<NileAvatar>(
41
- html`<nile-avatar variant="icon" icon="user"></nile-avatar>`
42
- );
43
- const icon = el.shadowRoot!.querySelector('nile-icon');
44
- expect(icon).to.exist;
45
- expect(icon!.getAttribute('name')).to.equal('user');
46
- });
47
-
48
- it('should apply the appropriate size class based on the size property', async () => {
49
- const el = await fixture<NileAvatar>(html`<nile-avatar size="lg"></nile-avatar>`);
50
- const div = el.shadowRoot!.querySelector('.text__avatar') || el.shadowRoot!.querySelector('img');
51
- expect(div).to.have.class('avatar__large');
52
- });
53
-
54
- it('should have the rounded class when isRounded is true', async () => {
55
- const el = await fixture<NileAvatar>(html`<nile-avatar isRounded></nile-avatar>`);
56
- const div = el.shadowRoot!.querySelector('.text__avatar') || el.shadowRoot!.querySelector('img');
57
- expect(div).to.have.class('avatar__rounded');
58
- });
59
-
60
- it('should reflect properties to attributes correctly', async () => {
61
- const el = await fixture<NileAvatar>(
62
- html`<nile-avatar
63
- src="https://example.com/avatar.png"
64
- name="Jane Doe"
65
- bg-color="#123456"
66
- text-color="#654321"
67
- border-color="#abcdef"
68
- size="sm"
69
- isRounded
70
- variant="image"
71
- icon="user"
72
- ></nile-avatar>`
73
- );
74
- expect(el.getAttribute('src')).to.equal('https://example.com/avatar.png');
75
- expect(el.getAttribute('name')).to.equal('Jane Doe');
76
- expect(el.getAttribute('bg-color')).to.equal('#123456');
77
- expect(el.getAttribute('text-color')).to.equal('#654321');
78
- expect(el.getAttribute('border-color')).to.equal('#abcdef');
79
- expect(el.getAttribute('size')).to.equal('sm');
80
- expect(el.getAttribute('variant')).to.equal('image');
81
- expect(el.getAttribute('icon')).to.equal('user');
82
- expect(el.hasAttribute('isRounded')).to.be.true;
83
- });
84
-
85
- it('should use provided background and text colors when bg-color and text-color are set', async () => {
86
- const el = await fixture<NileAvatar>(
87
- html`<nile-avatar name="John Doe" bg-color="#ff0000" text-color="#00ff00"></nile-avatar>`
88
- );
89
- const initialsDiv = el.shadowRoot!.querySelector('.text__avatar');
90
- expect(initialsDiv).to.have.style('background-color', 'rgb(255, 0, 0)');
91
- expect(initialsDiv).to.have.style('color', 'rgb(0, 255, 0)');
92
- });
93
-
94
- it('should display a default icon when variant is "icon" and icon is not provided', async () => {
95
- const el = await fixture<NileAvatar>(html`<nile-avatar variant="icon"></nile-avatar>`);
96
- const icon = el.shadowRoot!.querySelector('nile-icon');
97
- expect(icon).to.exist;
98
- expect(icon!.getAttribute('name')).to.equal('user');
99
- });
100
-
101
- it('should use the default initials if name is not provided and variant is "text"', async () => {
102
- const el = await fixture<NileAvatar>(html`<nile-avatar variant="text"></nile-avatar>`);
103
- const initialsDiv = el.shadowRoot!.querySelector('.text__avatar');
104
- expect(initialsDiv).to.exist;
105
- expect(initialsDiv!.textContent!.trim()).to.equal('');
106
- });
107
-
108
- it('should handle image error gracefully by switching to fallback content', async () => {
109
- const el = await fixture<NileAvatar>(html`<nile-avatar variant="image" src="invalid_url"></nile-avatar>`);
110
- const img = el.shadowRoot!.querySelector('img');
111
- img!.dispatchEvent(new Event('error'));
112
- await el.updateComplete;
113
- const fallbackContent = el.shadowRoot!.querySelector('.text__avatar') || el.shadowRoot!.querySelector('nile-icon');
114
- expect(fallbackContent).to.exist;
115
- });
6
+ it('1. renders', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el).to.exist; });
7
+ it('2. shadow root', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.shadowRoot).to.not.be.null; });
8
+ it('3. tag name', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.tagName.toLowerCase()).to.equal('nile-avatar'); });
9
+ it('4. src defaults empty', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.src).to.equal(''); });
10
+ it('5. variant defaults text', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.variant).to.equal('text'); });
11
+ it('6. name defaults empty', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.name).to.equal(''); });
12
+ it('7. bgColor defaults empty', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.bgColor).to.equal(''); });
13
+ it('8. textColor defaults empty', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.textColor).to.equal(''); });
14
+ it('9. borderColor defaults empty', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.borderColor).to.equal(''); });
15
+ it('10. size defaults md', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.size).to.equal('md'); });
16
+ it('11. isRounded defaults true', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.isRounded).to.be.true; });
17
+ it('12. text avatar renders div', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="John Doe"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.text__avatar')).to.exist; });
18
+ it('13. initials from name', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="John Doe"></nile-avatar>`); expect(el.shadowRoot!.textContent).to.contain('JD'); });
19
+ it('14. single name initial', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="John"></nile-avatar>`); expect(el.shadowRoot!.textContent).to.contain('J'); });
20
+ it('15. icon variant shows nile-icon', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="icon"></nile-avatar>`); expect(el.shadowRoot!.querySelector('nile-icon')).to.exist; });
21
+ it('16. image variant shows img', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="image" src="test.png"></nile-avatar>`); expect(el.shadowRoot!.querySelector('img')).to.exist; });
22
+ it('17. avatar__content part', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A B"></nile-avatar>`); expect(el.shadowRoot!.querySelector('[part="avatar__content"]')).to.exist; });
23
+ it('18. rounded class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__rounded')).to.exist; });
24
+ it('19. no rounded class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A" .isRounded=${false}></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__rounded')).to.be.null; });
25
+ it('20. xs size class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A" size="xs"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__xs')).to.exist; });
26
+ it('21. sm size class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A" size="sm"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__small')).to.exist; });
27
+ it('22. md size class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A" size="md"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__medium')).to.exist; });
28
+ it('23. lg size class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A" size="lg"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__large')).to.exist; });
29
+ it('24. xl size class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A" size="xl"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__extralarge')).to.exist; });
30
+ it('25. 2xl size class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A" size="2xl"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__2xl')).to.exist; });
31
+ it('26. src reflected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar src="x.png"></nile-avatar>`); expect(el.getAttribute('src')).to.equal('x.png'); });
32
+ it('27. variant reflected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="icon"></nile-avatar>`); expect(el.getAttribute('variant')).to.equal('icon'); });
33
+ it('28. name reflected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A B"></nile-avatar>`); expect(el.getAttribute('name')).to.equal('A B'); });
34
+ it('29. size reflected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar size="lg"></nile-avatar>`); expect(el.getAttribute('size')).to.equal('lg'); });
35
+ it('30. bg-color reflected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar bg-color="red"></nile-avatar>`); expect(el.getAttribute('bg-color')).to.equal('red'); });
36
+ it('31. text-color reflected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar text-color="blue"></nile-avatar>`); expect(el.getAttribute('text-color')).to.equal('blue'); });
37
+ it('32. border-color reflected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar border-color="green"></nile-avatar>`); expect(el.getAttribute('border-color')).to.equal('green'); });
38
+ it('33. dynamic name', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); el.name = 'Jane Doe'; await el.updateComplete; expect(el.shadowRoot!.textContent).to.contain('JD'); });
39
+ it('34. dynamic variant', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); el.variant = 'icon'; await el.updateComplete; expect(el.shadowRoot!.querySelector('nile-icon')).to.exist; });
40
+ it('35. dynamic size', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A"></nile-avatar>`); el.size = 'lg'; await el.updateComplete; expect(el.shadowRoot!.querySelector('.avatar__large')).to.exist; });
41
+ it('36. has styles', async () => { expect((await import('./nile-avatar')).NileAvatar.styles).to.exist; });
42
+ it('37. is defined', async () => { expect(customElements.get('nile-avatar')).to.exist; });
43
+ it('38. shadow mode', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.shadowRoot!.mode).to.equal('open'); });
44
+ it('39. isConnected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.isConnected).to.be.true; });
45
+ it('40. removal', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); el.remove(); expect(el.isConnected).to.be.false; });
46
+ it('41. outerHTML', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.outerHTML).to.contain('nile-avatar'); });
47
+ it('42. matches', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar class="x"></nile-avatar>`); expect(el.matches('nile-avatar.x')).to.be.true; });
48
+ it('43. closest', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.closest('nile-avatar')).to.equal(el); });
49
+ it('44. cloneNode', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect((el.cloneNode(true) as Element).tagName.toLowerCase()).to.equal('nile-avatar'); });
50
+ it('45. getBoundingClientRect', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.getBoundingClientRect()).to.exist; });
51
+ it('46. dispatchEvent', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
52
+ it('47. updateComplete', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
53
+ it('48. requestUpdate', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
54
+ it('49. render method', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.render).to.be.a('function'); });
55
+ it('50. shadowRoot host', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.shadowRoot!.host).to.equal(el); });
56
+ it('51. class attr', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar class="av"></nile-avatar>`); expect(el.classList.contains('av')).to.be.true; });
57
+ it('52. id attr', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar id="av1"></nile-avatar>`); expect(el.id).to.equal('av1'); });
58
+ it('53. style attr', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar style="margin:0"></nile-avatar>`); expect(el.style.margin).to.equal('0px'); });
59
+ it('54. data attr', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar data-user="1"></nile-avatar>`); expect(el.getAttribute('data-user')).to.equal('1'); });
60
+ it('55. hidden', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar hidden></nile-avatar>`); expect(el.hidden).to.be.true; });
61
+ it('56. dir', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar dir="rtl"></nile-avatar>`); expect(el.dir).to.equal('rtl'); });
62
+ it('57. nodeType', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.nodeType).to.equal(1); });
63
+ it('58. multiple instances', async () => { const c = await fixture(html`<div><nile-avatar></nile-avatar><nile-avatar></nile-avatar></div>`); expect(c.querySelectorAll('nile-avatar').length).to.equal(2); });
64
+ it('59. parent-child', async () => { const c = await fixture(html`<div><nile-avatar></nile-avatar></div>`); expect(c.querySelector('nile-avatar')!.parentElement).to.equal(c); });
65
+ it('60. empty name shows icon', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="text"></nile-avatar>`); expect(el.shadowRoot!.querySelector('nile-icon')).to.exist; });
66
+ it('61. three letter name', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A B C"></nile-avatar>`); expect(el.shadowRoot!.textContent).to.contain('AB'); });
67
+ it('62. getImageContent method', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.getImageContent).to.be.a('function'); });
68
+ it('63. getIconContent method', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.getIconContent).to.be.a('function'); });
69
+ it('64. getContentWrapped method', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.getContentWrapped).to.be.a('function'); });
70
+ it('65. image part', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="image" src="test.png"></nile-avatar>`); expect(el.shadowRoot!.querySelector('[part="avatar__image"]')).to.exist; });
71
+ it('66. img class avatar', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="image" src="t.png"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar')).to.exist; });
72
+ it('67. no slots', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.shadowRoot!.querySelectorAll('slot').length).to.equal(0); });
73
+ it('68. no inputs', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.shadowRoot!.querySelectorAll('input').length).to.equal(0); });
74
+ it('69. no buttons', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.shadowRoot!.querySelectorAll('button').length).to.equal(0); });
75
+ it('70. aria-label', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar aria-label="User"></nile-avatar>`); expect(el.getAttribute('aria-label')).to.equal('User'); });
76
+ it('71. classList toggle', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });
77
+ it('72. dataset', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar data-type="user"></nile-avatar>`); expect(el.dataset.type).to.equal('user'); });
78
+ it('73. localName', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.localName).to.equal('nile-avatar'); });
79
+ it('74. namespaceURI', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
80
+ it('75. ownerDocument', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.ownerDocument).to.equal(document); });
81
+ it('76. isRounded reflected', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.hasAttribute('isrounded')).to.be.true; });
82
+ it('77. size xs', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar size="xs"></nile-avatar>`); expect(el.size).to.equal('xs'); });
83
+ it('78. size sm', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar size="sm"></nile-avatar>`); expect(el.size).to.equal('sm'); });
84
+ it('79. size xl', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar size="xl"></nile-avatar>`); expect(el.size).to.equal('xl'); });
85
+ it('80. size 2xl', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar size="2xl"></nile-avatar>`); expect(el.size).to.equal('2xl'); });
86
+ it('81. bgColor applies', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar bg-color="red" name="A"></nile-avatar>`); const div = el.shadowRoot!.querySelector('.text__avatar') as HTMLElement; expect(div.style.backgroundColor).to.equal('red'); });
87
+ it('82. dynamic bgColor', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A"></nile-avatar>`); el.bgColor = 'blue'; await el.updateComplete; const div = el.shadowRoot!.querySelector('.text__avatar') as HTMLElement; expect(div.style.backgroundColor).to.equal('blue'); });
88
+ it('83. variant color classes', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="AB"></nile-avatar>`); const div = el.shadowRoot!.querySelector('.text__avatar'); expect(div).to.exist; });
89
+ it('84. icon default prop', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); expect(el.icon).to.contain('nile-icon-user'); });
90
+ it('85. custom icon', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar icon="star" variant="icon"></nile-avatar>`); expect(el.icon).to.equal('star'); });
91
+ it('86. dynamic icon', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="icon"></nile-avatar>`); el.icon = 'home'; await el.updateComplete; const icon = el.shadowRoot!.querySelector('nile-icon'); expect(icon!.getAttribute('name')).to.equal('home'); });
92
+ it('87. src settable', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="image" src="img.png"></nile-avatar>`); expect(el.src).to.equal('img.png'); });
93
+ it('88. image mode avatar part', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="image" src="a.png"></nile-avatar>`); expect(el.shadowRoot!.querySelector('[part="avatar__image"]')).to.exist; });
94
+ it('89. image rounded class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="image" src="a.png"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__rounded')).to.exist; });
95
+ it('90. image size class', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="image" src="a.png" size="lg"></nile-avatar>`); expect(el.shadowRoot!.querySelector('.avatar__large')).to.exist; });
96
+ it('91. text variant with name', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="text" name="A"></nile-avatar>`); expect(el.shadowRoot!.textContent).to.contain('A'); });
97
+ it('92. icon fallback without name', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar variant="text"></nile-avatar>`); expect(el.shadowRoot!.querySelector('nile-icon')).to.exist; });
98
+ it('93. multiple re-renders', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); el.name = 'A'; await el.updateComplete; el.name = 'B C'; await el.updateComplete; expect(el.shadowRoot!.textContent).to.contain('BC'); });
99
+ it('94. stress size changes', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A"></nile-avatar>`); const sizes: Array<'xs'|'sm'|'md'|'lg'|'xl'|'2xl'> = ['xs','sm','md','lg','xl','2xl']; for (const s of sizes) { el.size = s; await el.updateComplete; } expect(el.size).to.equal('2xl'); });
100
+ it('95. textColor applies', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="A" text-color="white"></nile-avatar>`); const div = el.shadowRoot!.querySelector('.text__avatar') as HTMLElement; expect(div.style.color).to.equal('white'); });
101
+ it('96. tabindex', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar tabindex="0"></nile-avatar>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
102
+ it('97. role', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar role="img"></nile-avatar>`); expect(el.getAttribute('role')).to.equal('img'); });
103
+ it('98. createElement', async () => { const el = document.createElement('nile-avatar') as NileAvatar; document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
104
+ it('99. setAttribute name', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar></nile-avatar>`); el.setAttribute('name', 'Test User'); await el.updateComplete; expect(el.shadowRoot!.textContent).to.contain('TU'); });
105
+ it('100. full integration', async () => { const el = await fixture<NileAvatar>(html`<nile-avatar name="John Doe" size="lg" bg-color="blue" text-color="white" class="av" id="av1" aria-label="User avatar"></nile-avatar>`); expect(el.size).to.equal('lg'); expect(el.bgColor).to.equal('blue'); expect(el.textColor).to.equal('white'); expect(el.id).to.equal('av1'); expect(el.shadowRoot!.textContent).to.contain('JD'); expect(el.shadowRoot!.querySelector('.avatar__large')).to.exist; });
116
106
  });