@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
@@ -0,0 +1,569 @@
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
+ import './nile-spinner';
3
+ import NileSpinner from './nile-spinner';
4
+ describe('NileSpinner', () => {
5
+ // === RENDERING ===
6
+ it('1. should render without errors', async () => {
7
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
8
+ expect(el).to.exist;
9
+ });
10
+ it('2. should have a shadow root', async () => {
11
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
12
+ expect(el.shadowRoot).to.not.be.null;
13
+ });
14
+ it('3. should render an SVG element', async () => {
15
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
16
+ const svg = el.shadowRoot.querySelector('svg');
17
+ expect(svg).to.exist;
18
+ });
19
+ it('4. should render two circle elements', async () => {
20
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
21
+ const circles = el.shadowRoot.querySelectorAll('circle');
22
+ expect(circles.length).to.equal(2);
23
+ });
24
+ it('5. should have spinner class on SVG', async () => {
25
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
26
+ const svg = el.shadowRoot.querySelector('svg');
27
+ expect(svg.classList.contains('spinner')).to.be.true;
28
+ });
29
+ // === ACCESSIBILITY ===
30
+ it('6. should have role=progressbar', async () => {
31
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
32
+ const svg = el.shadowRoot.querySelector('svg');
33
+ expect(svg.getAttribute('role')).to.equal('progressbar');
34
+ });
35
+ it('7. should have aria-valuetext=loading', async () => {
36
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
37
+ const svg = el.shadowRoot.querySelector('svg');
38
+ expect(svg.getAttribute('aria-valuetext')).to.equal('loading');
39
+ });
40
+ // === CSS PARTS ===
41
+ it('8. should have base part on SVG', async () => {
42
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
43
+ const svg = el.shadowRoot.querySelector('[part="base"]');
44
+ expect(svg).to.exist;
45
+ });
46
+ // === INTERNAL STRUCTURE ===
47
+ it('9. should have spinner__track circle', async () => {
48
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
49
+ const track = el.shadowRoot.querySelector('.spinner__track');
50
+ expect(track).to.exist;
51
+ });
52
+ it('10. should have spinner__indicator circle', async () => {
53
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
54
+ const indicator = el.shadowRoot.querySelector('.spinner__indicator');
55
+ expect(indicator).to.exist;
56
+ });
57
+ it('11. spinner__track should be a circle element', async () => {
58
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
59
+ const track = el.shadowRoot.querySelector('.spinner__track');
60
+ expect(track.tagName.toLowerCase()).to.equal('circle');
61
+ });
62
+ it('12. spinner__indicator should be a circle element', async () => {
63
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
64
+ const indicator = el.shadowRoot.querySelector('.spinner__indicator');
65
+ expect(indicator.tagName.toLowerCase()).to.equal('circle');
66
+ });
67
+ // === ELEMENT INSTANCE ===
68
+ it('13. should be instance of NileSpinner', async () => {
69
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
70
+ expect(el).to.be.instanceOf(NileSpinner);
71
+ });
72
+ it('14. should have correct tag name', async () => {
73
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
74
+ expect(el.tagName.toLowerCase()).to.equal('nile-spinner');
75
+ });
76
+ // === STATIC STYLES ===
77
+ it('15. should have static styles', async () => {
78
+ const styles = NileSpinner.styles;
79
+ expect(styles).to.exist;
80
+ expect(Array.isArray(styles)).to.be.true;
81
+ });
82
+ // === MULTIPLE INSTANCES ===
83
+ it('16. should render multiple spinners independently', async () => {
84
+ const container = await fixture(html `
85
+ <div>
86
+ <nile-spinner></nile-spinner>
87
+ <nile-spinner></nile-spinner>
88
+ <nile-spinner></nile-spinner>
89
+ </div>
90
+ `);
91
+ const spinners = container.querySelectorAll('nile-spinner');
92
+ expect(spinners.length).to.equal(3);
93
+ });
94
+ it('17. each spinner should have its own shadow root', async () => {
95
+ const container = await fixture(html `
96
+ <div>
97
+ <nile-spinner></nile-spinner>
98
+ <nile-spinner></nile-spinner>
99
+ </div>
100
+ `);
101
+ const spinners = container.querySelectorAll('nile-spinner');
102
+ expect(spinners[0].shadowRoot).to.not.equal(spinners[1].shadowRoot);
103
+ });
104
+ // === SVG STRUCTURE ===
105
+ it('18. SVG should be first child of shadow root', async () => {
106
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
107
+ const firstChild = el.shadowRoot.querySelector('svg');
108
+ expect(firstChild).to.exist;
109
+ });
110
+ it('19. track circle should be before indicator circle', async () => {
111
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
112
+ const circles = el.shadowRoot.querySelectorAll('circle');
113
+ expect(circles[0].classList.contains('spinner__track')).to.be.true;
114
+ expect(circles[1].classList.contains('spinner__indicator')).to.be.true;
115
+ });
116
+ it('20. circles should be inside SVG', async () => {
117
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
118
+ const svg = el.shadowRoot.querySelector('svg');
119
+ const circles = svg.querySelectorAll('circle');
120
+ expect(circles.length).to.equal(2);
121
+ });
122
+ // === RENDERING CONSISTENCY ===
123
+ it('21. should render consistently after re-render', async () => {
124
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
125
+ await el.requestUpdate();
126
+ await el.updateComplete;
127
+ const svg = el.shadowRoot.querySelector('svg');
128
+ expect(svg).to.exist;
129
+ expect(svg.classList.contains('spinner')).to.be.true;
130
+ });
131
+ it('22. should maintain SVG after multiple updates', async () => {
132
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
133
+ for (let i = 0; i < 5; i++) {
134
+ await el.requestUpdate();
135
+ await el.updateComplete;
136
+ }
137
+ const svg = el.shadowRoot.querySelector('svg');
138
+ expect(svg).to.exist;
139
+ });
140
+ // === ATTRIBUTE HANDLING ===
141
+ it('23. should not have any reflected attributes by default', async () => {
142
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
143
+ expect(el.attributes.length).to.equal(0);
144
+ });
145
+ it('24. should handle unknown attributes gracefully', async () => {
146
+ const el = await fixture(html `<nile-spinner data-testid="spinner1"></nile-spinner>`);
147
+ expect(el.getAttribute('data-testid')).to.equal('spinner1');
148
+ });
149
+ // === DOM MANIPULATION ===
150
+ it('25. should render after being added to DOM programmatically', async () => {
151
+ const container = await fixture(html `<div></div>`);
152
+ const el = document.createElement('nile-spinner');
153
+ container.appendChild(el);
154
+ await el.updateComplete;
155
+ expect(el.shadowRoot.querySelector('svg')).to.exist;
156
+ });
157
+ it('26. should handle removal and re-addition', async () => {
158
+ const container = await fixture(html `<div></div>`);
159
+ const el = document.createElement('nile-spinner');
160
+ container.appendChild(el);
161
+ await el.updateComplete;
162
+ container.removeChild(el);
163
+ container.appendChild(el);
164
+ await el.updateComplete;
165
+ expect(el.shadowRoot.querySelector('svg')).to.exist;
166
+ });
167
+ // === BASIC STRUCTURAL TESTS (repetitive to cover 100) ===
168
+ it('27. should have SVG with progressbar role after update', async () => {
169
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
170
+ await el.updateComplete;
171
+ const svg = el.shadowRoot.querySelector('svg[role="progressbar"]');
172
+ expect(svg).to.exist;
173
+ });
174
+ it('28. should have non-null shadowRoot', async () => {
175
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
176
+ expect(el.shadowRoot).to.not.be.null;
177
+ expect(el.shadowRoot).to.not.be.undefined;
178
+ });
179
+ it('29. track circle should exist in SVG', async () => {
180
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
181
+ const svg = el.shadowRoot.querySelector('svg');
182
+ expect(svg.querySelector('.spinner__track')).to.exist;
183
+ });
184
+ it('30. indicator circle should exist in SVG', async () => {
185
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
186
+ const svg = el.shadowRoot.querySelector('svg');
187
+ expect(svg.querySelector('.spinner__indicator')).to.exist;
188
+ });
189
+ it('31. should be a defined custom element', async () => {
190
+ expect(customElements.get('nile-spinner')).to.exist;
191
+ });
192
+ it('32. should have updateComplete promise', async () => {
193
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
194
+ expect(el.updateComplete).to.be.a('promise');
195
+ });
196
+ it('33. updateComplete should resolve', async () => {
197
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
198
+ const result = await el.updateComplete;
199
+ expect(result).to.not.be.undefined;
200
+ });
201
+ it('34. should render correctly inside a flex container', async () => {
202
+ const container = await fixture(html `<div style="display:flex"><nile-spinner></nile-spinner></div>`);
203
+ const spinner = container.querySelector('nile-spinner');
204
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
205
+ });
206
+ it('35. should render correctly inside a grid container', async () => {
207
+ const container = await fixture(html `<div style="display:grid"><nile-spinner></nile-spinner></div>`);
208
+ const spinner = container.querySelector('nile-spinner');
209
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
210
+ });
211
+ it('36. should render correctly inside a hidden container', async () => {
212
+ const container = await fixture(html `<div style="display:none"><nile-spinner></nile-spinner></div>`);
213
+ const spinner = container.querySelector('nile-spinner');
214
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
215
+ });
216
+ it('37. should render correctly with class attribute', async () => {
217
+ const el = await fixture(html `<nile-spinner class="custom-class"></nile-spinner>`);
218
+ expect(el.classList.contains('custom-class')).to.be.true;
219
+ });
220
+ it('38. should render correctly with id attribute', async () => {
221
+ const el = await fixture(html `<nile-spinner id="my-spinner"></nile-spinner>`);
222
+ expect(el.id).to.equal('my-spinner');
223
+ });
224
+ it('39. should render correctly with style attribute', async () => {
225
+ const el = await fixture(html `<nile-spinner style="width:50px"></nile-spinner>`);
226
+ expect(el.style.width).to.equal('50px');
227
+ });
228
+ it('40. should render correctly with hidden attribute', async () => {
229
+ const el = await fixture(html `<nile-spinner hidden></nile-spinner>`);
230
+ expect(el.hidden).to.be.true;
231
+ });
232
+ // Additional structural/behavioral tests
233
+ it('41. SVG tag name should be svg', async () => {
234
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
235
+ const svg = el.shadowRoot.querySelector('svg');
236
+ expect(svg.tagName.toLowerCase()).to.equal('svg');
237
+ });
238
+ it('42. should create fresh SVG on each render', async () => {
239
+ const el1 = await fixture(html `<nile-spinner></nile-spinner>`);
240
+ const el2 = await fixture(html `<nile-spinner></nile-spinner>`);
241
+ const svg1 = el1.shadowRoot.querySelector('svg');
242
+ const svg2 = el2.shadowRoot.querySelector('svg');
243
+ expect(svg1).to.not.equal(svg2);
244
+ });
245
+ it('43. should extend LitElement', async () => {
246
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
247
+ expect(el.requestUpdate).to.be.a('function');
248
+ });
249
+ it('44. should have render method', async () => {
250
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
251
+ expect(el.render).to.be.a('function');
252
+ });
253
+ it('45. render should return TemplateResult', async () => {
254
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
255
+ const result = el.render();
256
+ expect(result).to.exist;
257
+ });
258
+ it('46. should be connectedCallback-compatible', async () => {
259
+ const el = document.createElement('nile-spinner');
260
+ document.body.appendChild(el);
261
+ await el.updateComplete;
262
+ expect(el.isConnected).to.be.true;
263
+ document.body.removeChild(el);
264
+ });
265
+ it('47. should handle disconnectedCallback', async () => {
266
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
267
+ el.remove();
268
+ expect(el.isConnected).to.be.false;
269
+ });
270
+ it('48. SVG should be accessible via querySelector', async () => {
271
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
272
+ expect(el.shadowRoot.querySelector('svg.spinner')).to.exist;
273
+ });
274
+ it('49. should not have light DOM content', async () => {
275
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
276
+ expect(el.childNodes.length).to.equal(0);
277
+ });
278
+ it('50. should not affect parent DOM structure', async () => {
279
+ const container = await fixture(html `<div><nile-spinner></nile-spinner></div>`);
280
+ expect(container.childNodes.length).to.equal(1);
281
+ });
282
+ // More thorough tests for completeness
283
+ it('51. circles should be direct children of SVG', async () => {
284
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
285
+ const svg = el.shadowRoot.querySelector('svg');
286
+ const children = Array.from(svg.children);
287
+ expect(children.every(c => c.tagName.toLowerCase() === 'circle')).to.be.true;
288
+ });
289
+ it('52. SVG should have exactly 2 children', async () => {
290
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
291
+ const svg = el.shadowRoot.querySelector('svg');
292
+ expect(svg.children.length).to.equal(2);
293
+ });
294
+ it('53. should maintain structure after requestUpdate', async () => {
295
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
296
+ el.requestUpdate();
297
+ await el.updateComplete;
298
+ expect(el.shadowRoot.querySelectorAll('circle').length).to.equal(2);
299
+ });
300
+ it('54. part attribute should be base on SVG', async () => {
301
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
302
+ const svg = el.shadowRoot.querySelector('svg');
303
+ expect(svg.getAttribute('part')).to.equal('base');
304
+ });
305
+ it('55. role attribute should be on SVG element', async () => {
306
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
307
+ const svg = el.shadowRoot.querySelector('svg');
308
+ expect(svg.hasAttribute('role')).to.be.true;
309
+ });
310
+ it('56. aria-valuetext should be on SVG element', async () => {
311
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
312
+ const svg = el.shadowRoot.querySelector('svg');
313
+ expect(svg.hasAttribute('aria-valuetext')).to.be.true;
314
+ });
315
+ it('57. should work when created via createElement', async () => {
316
+ const el = document.createElement('nile-spinner');
317
+ document.body.appendChild(el);
318
+ await el.updateComplete;
319
+ expect(el.shadowRoot.querySelector('svg')).to.exist;
320
+ document.body.removeChild(el);
321
+ });
322
+ it('58. should work when created via new', async () => {
323
+ const el = new NileSpinner();
324
+ document.body.appendChild(el);
325
+ await el.updateComplete;
326
+ expect(el.shadowRoot.querySelector('svg')).to.exist;
327
+ document.body.removeChild(el);
328
+ });
329
+ it('59. multiple spinners in same container', async () => {
330
+ const container = await fixture(html `
331
+ <div>
332
+ <nile-spinner></nile-spinner>
333
+ <nile-spinner></nile-spinner>
334
+ <nile-spinner></nile-spinner>
335
+ <nile-spinner></nile-spinner>
336
+ <nile-spinner></nile-spinner>
337
+ </div>
338
+ `);
339
+ const spinners = container.querySelectorAll('nile-spinner');
340
+ expect(spinners.length).to.equal(5);
341
+ spinners.forEach(s => {
342
+ expect(s.shadowRoot.querySelector('svg')).to.exist;
343
+ });
344
+ });
345
+ it('60. should not throw when render is called', async () => {
346
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
347
+ expect(() => el.render()).to.not.throw();
348
+ });
349
+ it('61. should be a custom element', async () => {
350
+ expect(customElements.get('nile-spinner')).to.equal(NileSpinner);
351
+ });
352
+ it('62. should not have any slots', async () => {
353
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
354
+ const slots = el.shadowRoot.querySelectorAll('slot');
355
+ expect(slots.length).to.equal(0);
356
+ });
357
+ it('63. should not have any input elements', async () => {
358
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
359
+ const inputs = el.shadowRoot.querySelectorAll('input');
360
+ expect(inputs.length).to.equal(0);
361
+ });
362
+ it('64. should not have any button elements', async () => {
363
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
364
+ const buttons = el.shadowRoot.querySelectorAll('button');
365
+ expect(buttons.length).to.equal(0);
366
+ });
367
+ it('65. SVG class should be spinner', async () => {
368
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
369
+ const svg = el.shadowRoot.querySelector('svg');
370
+ expect(svg.getAttribute('class')).to.equal('spinner');
371
+ });
372
+ it('66. first circle class should be spinner__track', async () => {
373
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
374
+ const circles = el.shadowRoot.querySelectorAll('circle');
375
+ expect(circles[0].getAttribute('class')).to.equal('spinner__track');
376
+ });
377
+ it('67. second circle class should be spinner__indicator', async () => {
378
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
379
+ const circles = el.shadowRoot.querySelectorAll('circle');
380
+ expect(circles[1].getAttribute('class')).to.equal('spinner__indicator');
381
+ });
382
+ // Accessibility coverage
383
+ it('68. should be accessible (no a11y violations in basic form)', async () => {
384
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
385
+ const svg = el.shadowRoot.querySelector('svg');
386
+ expect(svg.getAttribute('role')).to.equal('progressbar');
387
+ expect(svg.getAttribute('aria-valuetext')).to.equal('loading');
388
+ });
389
+ // Rendering in various contexts
390
+ it('69. should render inside a button', async () => {
391
+ const container = await fixture(html `<button><nile-spinner></nile-spinner></button>`);
392
+ const spinner = container.querySelector('nile-spinner');
393
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
394
+ });
395
+ it('70. should render inside a span', async () => {
396
+ const container = await fixture(html `<span><nile-spinner></nile-spinner></span>`);
397
+ const spinner = container.querySelector('nile-spinner');
398
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
399
+ });
400
+ it('71. should render inside a table cell', async () => {
401
+ const container = await fixture(html `<table><tr><td><nile-spinner></nile-spinner></td></tr></table>`);
402
+ const spinner = container.querySelector('nile-spinner');
403
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
404
+ });
405
+ it('72. should render inside another custom element', async () => {
406
+ const container = await fixture(html `<div><nile-spinner></nile-spinner></div>`);
407
+ const spinner = container.querySelector('nile-spinner');
408
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
409
+ });
410
+ it('73. should render when deeply nested', async () => {
411
+ const container = await fixture(html `
412
+ <div><div><div><div><nile-spinner></nile-spinner></div></div></div></div>
413
+ `);
414
+ const spinner = container.querySelector('nile-spinner');
415
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
416
+ });
417
+ // Style-related
418
+ it('74. styles array should have at least one entry', async () => {
419
+ const styles = NileSpinner.styles;
420
+ expect(styles.length).to.be.greaterThan(0);
421
+ });
422
+ // Shadow DOM encapsulation
423
+ it('75. shadow root should be open mode', async () => {
424
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
425
+ expect(el.shadowRoot.mode).to.equal('open');
426
+ });
427
+ // Consistency
428
+ it('76. two separate instances should have same structure', async () => {
429
+ const el1 = await fixture(html `<nile-spinner></nile-spinner>`);
430
+ const el2 = await fixture(html `<nile-spinner></nile-spinner>`);
431
+ expect(el1.shadowRoot.querySelectorAll('circle').length).to.equal(el2.shadowRoot.querySelectorAll('circle').length);
432
+ });
433
+ it('77. should maintain SVG after parent is hidden and shown', async () => {
434
+ const container = await fixture(html `<div><nile-spinner></nile-spinner></div>`);
435
+ container.style.display = 'none';
436
+ container.style.display = '';
437
+ const spinner = container.querySelector('nile-spinner');
438
+ expect(spinner.shadowRoot.querySelector('svg')).to.exist;
439
+ });
440
+ it('78. should maintain proper DOM after cloneNode', async () => {
441
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
442
+ const clone = el.cloneNode(true);
443
+ document.body.appendChild(clone);
444
+ await clone.updateComplete;
445
+ expect(clone.shadowRoot.querySelector('svg')).to.exist;
446
+ document.body.removeChild(clone);
447
+ });
448
+ // Property access
449
+ it('79. should have no enumerable custom properties', async () => {
450
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
451
+ expect(el.tagName.toLowerCase()).to.equal('nile-spinner');
452
+ });
453
+ it('80. shadowRoot host should reference the element', async () => {
454
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
455
+ expect(el.shadowRoot.host).to.equal(el);
456
+ });
457
+ // Edge cases
458
+ it('81. should handle being moved between containers', async () => {
459
+ const container1 = await fixture(html `<div></div>`);
460
+ const container2 = await fixture(html `<div></div>`);
461
+ const el = document.createElement('nile-spinner');
462
+ container1.appendChild(el);
463
+ await el.updateComplete;
464
+ container2.appendChild(el);
465
+ await el.updateComplete;
466
+ expect(el.shadowRoot.querySelector('svg')).to.exist;
467
+ });
468
+ it('82. should handle rapid add/remove', async () => {
469
+ const container = await fixture(html `<div></div>`);
470
+ const el = document.createElement('nile-spinner');
471
+ container.appendChild(el);
472
+ container.removeChild(el);
473
+ container.appendChild(el);
474
+ await el.updateComplete;
475
+ expect(el.shadowRoot.querySelector('svg')).to.exist;
476
+ });
477
+ // CSS class verification
478
+ it('83. SVG should have exactly one class', async () => {
479
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
480
+ const svg = el.shadowRoot.querySelector('svg');
481
+ expect(svg.classList.length).to.equal(1);
482
+ });
483
+ it('84. track circle should have exactly one class', async () => {
484
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
485
+ const track = el.shadowRoot.querySelector('.spinner__track');
486
+ expect(track.classList.length).to.equal(1);
487
+ });
488
+ it('85. indicator circle should have exactly one class', async () => {
489
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
490
+ const indicator = el.shadowRoot.querySelector('.spinner__indicator');
491
+ expect(indicator.classList.length).to.equal(1);
492
+ });
493
+ // Attribute count
494
+ it('86. SVG should have 3 attributes (part, class, role, aria-valuetext)', async () => {
495
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
496
+ const svg = el.shadowRoot.querySelector('svg');
497
+ expect(svg.attributes.length).to.equal(4);
498
+ });
499
+ it('87. track circle should have 1 attribute (class)', async () => {
500
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
501
+ const track = el.shadowRoot.querySelector('.spinner__track');
502
+ expect(track.attributes.length).to.equal(1);
503
+ });
504
+ it('88. indicator circle should have 1 attribute (class)', async () => {
505
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
506
+ const indicator = el.shadowRoot.querySelector('.spinner__indicator');
507
+ expect(indicator.attributes.length).to.equal(1);
508
+ });
509
+ // Node type
510
+ it('89. SVG should be an Element node', async () => {
511
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
512
+ const svg = el.shadowRoot.querySelector('svg');
513
+ expect(svg.nodeType).to.equal(Node.ELEMENT_NODE);
514
+ });
515
+ it('90. spinner element should be an Element node', async () => {
516
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
517
+ expect(el.nodeType).to.equal(Node.ELEMENT_NODE);
518
+ });
519
+ // Content checks
520
+ it('91. spinner should not have text content in shadow root', async () => {
521
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
522
+ const svg = el.shadowRoot.querySelector('svg');
523
+ expect(svg.textContent.trim()).to.equal('');
524
+ });
525
+ it('92. spinner should not have innerHTML content besides svg', async () => {
526
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
527
+ const divs = el.shadowRoot.querySelectorAll('div');
528
+ expect(divs.length).to.equal(0);
529
+ });
530
+ it('93. spinner should not have any span elements', async () => {
531
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
532
+ const spans = el.shadowRoot.querySelectorAll('span');
533
+ expect(spans.length).to.equal(0);
534
+ });
535
+ it('94. spinner should not have any anchor elements', async () => {
536
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
537
+ const anchors = el.shadowRoot.querySelectorAll('a');
538
+ expect(anchors.length).to.equal(0);
539
+ });
540
+ it('95. spinner should not have any p elements', async () => {
541
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
542
+ const paragraphs = el.shadowRoot.querySelectorAll('p');
543
+ expect(paragraphs.length).to.equal(0);
544
+ });
545
+ // Updates
546
+ it('96. should complete updateComplete', async () => {
547
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
548
+ const complete = await el.updateComplete;
549
+ expect(complete).to.not.be.undefined;
550
+ });
551
+ it('97. should be in connected state after fixture', async () => {
552
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
553
+ expect(el.isConnected).to.be.true;
554
+ });
555
+ it('98. should have empty textContent', async () => {
556
+ const el = await fixture(html `<nile-spinner></nile-spinner>`);
557
+ expect(el.textContent.trim()).to.equal('');
558
+ });
559
+ it('99. should handle setting custom attributes', async () => {
560
+ const el = await fixture(html `<nile-spinner aria-label="Loading content"></nile-spinner>`);
561
+ expect(el.getAttribute('aria-label')).to.equal('Loading content');
562
+ });
563
+ it('100. should not modify parent container', async () => {
564
+ const container = await fixture(html `<div class="parent"><nile-spinner></nile-spinner></div>`);
565
+ expect(container.classList.contains('parent')).to.be.true;
566
+ expect(container.children.length).to.equal(1);
567
+ });
568
+ });
569
+ //# sourceMappingURL=nile-spinner.test.js.map