@aquera/nile-elements 0.0.80 → 0.0.82

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 (483) hide show
  1. package/README.md +12 -0
  2. package/demo/filenames.txt +1 -1
  3. package/demo/variables.css +54 -0
  4. package/demo/variables_v2.css +51 -0
  5. package/dist/fixture-1a9fb5f1.cjs.js +395 -0
  6. package/dist/fixture-1a9fb5f1.cjs.js.map +1 -0
  7. package/dist/fixture-81e5a936.esm.js +569 -0
  8. package/dist/index.cjs.js +1 -1
  9. package/dist/index.esm.js +1 -1
  10. package/dist/index.iife.js +976 -563
  11. package/dist/internal/animate.cjs.js +1 -1
  12. package/dist/internal/animate.cjs.js.map +1 -1
  13. package/dist/internal/animate.esm.js +1 -1
  14. package/dist/internal/drag.cjs.js +2 -0
  15. package/dist/internal/drag.cjs.js.map +1 -0
  16. package/dist/internal/drag.esm.js +1 -0
  17. package/dist/internal/math.cjs.js +2 -0
  18. package/dist/internal/math.cjs.js.map +1 -0
  19. package/dist/internal/math.esm.js +1 -0
  20. package/dist/nile-avatar/nile-avatar.css.cjs.js +1 -1
  21. package/dist/nile-avatar/nile-avatar.css.cjs.js.map +1 -1
  22. package/dist/nile-avatar/nile-avatar.css.esm.js +7 -8
  23. package/dist/nile-avatar/nile-avatar.test.cjs.js +2 -0
  24. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -0
  25. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -0
  26. package/dist/nile-badge/index.cjs.js +1 -1
  27. package/dist/nile-badge/index.esm.js +1 -1
  28. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  29. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  30. package/dist/nile-badge/nile-badge.css.cjs.js +1 -1
  31. package/dist/nile-badge/nile-badge.css.cjs.js.map +1 -1
  32. package/dist/nile-badge/nile-badge.css.esm.js +47 -47
  33. package/dist/nile-badge/nile-badge.esm.js +1 -1
  34. package/dist/nile-badge/nile-badge.test.cjs.js +2 -0
  35. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -0
  36. package/dist/nile-badge/nile-badge.test.esm.js +1 -0
  37. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.cjs.js +1 -1
  38. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.cjs.js.map +1 -1
  39. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.esm.js +3 -4
  40. package/dist/nile-button/index.cjs.js +1 -1
  41. package/dist/nile-button/index.esm.js +1 -1
  42. package/dist/nile-button/nile-button.cjs.js +1 -1
  43. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  44. package/dist/nile-button/nile-button.esm.js +1 -1
  45. package/dist/nile-button/nile-button.test.cjs.js +2 -0
  46. package/dist/nile-button/nile-button.test.cjs.js.map +1 -0
  47. package/dist/nile-button/nile-button.test.esm.js +4 -0
  48. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +2 -0
  49. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js.map +1 -0
  50. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +49 -0
  51. package/dist/nile-calendar/index.cjs.js +1 -1
  52. package/dist/nile-calendar/index.esm.js +1 -1
  53. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  54. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  55. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  56. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  57. package/dist/nile-calendar/nile-calendar.css.esm.js +122 -191
  58. package/dist/nile-calendar/nile-calendar.esm.js +135 -135
  59. package/dist/nile-card/nile-card.test.cjs.js +2 -0
  60. package/dist/nile-card/nile-card.test.cjs.js.map +1 -0
  61. package/dist/nile-card/nile-card.test.esm.js +51 -0
  62. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -394
  63. package/dist/nile-checkbox/nile-checkbox.test.cjs.js.map +1 -1
  64. package/dist/nile-checkbox/nile-checkbox.test.esm.js +3 -571
  65. package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
  66. package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
  67. package/dist/nile-date-picker/nile-date-picker.esm.js +1 -1
  68. package/dist/nile-dialog/index.cjs.js +1 -1
  69. package/dist/nile-dialog/index.esm.js +1 -1
  70. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  71. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  72. package/dist/nile-dialog/nile-dialog.css.cjs.js +1 -1
  73. package/dist/nile-dialog/nile-dialog.css.cjs.js.map +1 -1
  74. package/dist/nile-dialog/nile-dialog.css.esm.js +4 -1
  75. package/dist/nile-dialog/nile-dialog.esm.js +5 -4
  76. package/dist/nile-drawer/index.cjs.js +1 -1
  77. package/dist/nile-drawer/index.esm.js +1 -1
  78. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  79. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  80. package/dist/nile-drawer/nile-drawer.esm.js +1 -1
  81. package/dist/nile-drawer/nile-drawer.test.cjs.js +2 -0
  82. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -0
  83. package/dist/nile-drawer/nile-drawer.test.esm.js +18 -0
  84. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +2 -0
  85. package/dist/nile-empty-state/nile-empty-state.test.cjs.js.map +1 -0
  86. package/dist/nile-empty-state/nile-empty-state.test.esm.js +9 -0
  87. package/dist/nile-error-message/nile-error-message.test.cjs.js +2 -0
  88. package/dist/nile-error-message/nile-error-message.test.cjs.js.map +1 -0
  89. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -0
  90. package/dist/nile-form-group/nile-form-group.test.cjs.js +2 -0
  91. package/dist/nile-form-group/nile-form-group.test.cjs.js.map +1 -0
  92. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -0
  93. package/dist/nile-hero/nile-hero.test.cjs.js +2 -0
  94. package/dist/nile-hero/nile-hero.test.cjs.js.map +1 -0
  95. package/dist/nile-hero/nile-hero.test.esm.js +14 -0
  96. package/dist/nile-icon/icons/svg/alert.cjs.js +2 -0
  97. package/dist/nile-icon/icons/svg/alert.cjs.js.map +1 -0
  98. package/dist/nile-icon/icons/svg/alert.esm.js +1 -0
  99. package/dist/nile-icon/icons/svg/file-check-02.cjs.js +2 -0
  100. package/dist/nile-icon/icons/svg/file-check-02.cjs.js.map +1 -0
  101. package/dist/nile-icon/icons/svg/file-check-02.esm.js +1 -0
  102. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  103. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  104. package/dist/nile-icon/icons/svg/monitor-01.cjs.js +2 -0
  105. package/dist/nile-icon/icons/svg/monitor-01.cjs.js.map +1 -0
  106. package/dist/nile-icon/icons/svg/monitor-01.esm.js +1 -0
  107. package/dist/nile-icon/index.cjs.js +1 -1
  108. package/dist/nile-icon/index.cjs.js.map +1 -1
  109. package/dist/nile-icon/index.esm.js +1 -1
  110. package/dist/nile-icon/nile-icon.test.cjs.js +2 -0
  111. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -0
  112. package/dist/nile-icon/nile-icon.test.esm.js +1 -0
  113. package/dist/nile-icon-button/index.cjs.js +1 -1
  114. package/dist/nile-icon-button/index.esm.js +1 -1
  115. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  116. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  117. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  118. package/dist/nile-input/index.cjs.js +1 -1
  119. package/dist/nile-input/index.esm.js +1 -1
  120. package/dist/nile-input/nile-input.cjs.js +1 -1
  121. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  122. package/dist/nile-input/nile-input.esm.js +1 -1
  123. package/dist/nile-input/nile-input.test.cjs.js +2 -0
  124. package/dist/nile-input/nile-input.test.cjs.js.map +1 -0
  125. package/dist/nile-input/nile-input.test.esm.js +17 -0
  126. package/dist/nile-link/nile-link.test.cjs.js +2 -0
  127. package/dist/nile-link/nile-link.test.cjs.js.map +1 -0
  128. package/dist/nile-link/nile-link.test.esm.js +1 -0
  129. package/dist/nile-list/index.cjs.js +2 -0
  130. package/dist/nile-list/index.cjs.js.map +1 -0
  131. package/dist/nile-list/index.esm.js +1 -0
  132. package/dist/nile-list/nile-list.cjs.js +2 -0
  133. package/dist/nile-list/nile-list.cjs.js.map +1 -0
  134. package/dist/nile-list/nile-list.css.cjs.js +2 -0
  135. package/dist/nile-list/nile-list.css.cjs.js.map +1 -0
  136. package/dist/nile-list/nile-list.css.esm.js +8 -0
  137. package/dist/nile-list/nile-list.esm.js +3 -0
  138. package/dist/nile-list-item/index.cjs.js +2 -0
  139. package/dist/nile-list-item/index.cjs.js.map +1 -0
  140. package/dist/nile-list-item/index.esm.js +1 -0
  141. package/dist/nile-list-item/nile-list-item.cjs.js +2 -0
  142. package/dist/nile-list-item/nile-list-item.cjs.js.map +1 -0
  143. package/dist/nile-list-item/nile-list-item.css.cjs.js +2 -0
  144. package/dist/nile-list-item/nile-list-item.css.cjs.js.map +1 -0
  145. package/dist/nile-list-item/nile-list-item.css.esm.js +54 -0
  146. package/dist/nile-list-item/nile-list-item.esm.js +21 -0
  147. package/dist/nile-loader/nile-loader.test.cjs.js +2 -0
  148. package/dist/nile-loader/nile-loader.test.cjs.js.map +1 -0
  149. package/dist/nile-loader/nile-loader.test.esm.js +1 -0
  150. package/dist/nile-menu/nile-menu.cjs.js +1 -1
  151. package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
  152. package/dist/nile-menu/nile-menu.css.cjs.js +1 -1
  153. package/dist/nile-menu/nile-menu.css.cjs.js.map +1 -1
  154. package/dist/nile-menu/nile-menu.css.esm.js +21 -7
  155. package/dist/nile-menu/nile-menu.esm.js +17 -15
  156. package/dist/nile-menu-item/index.cjs.js +1 -1
  157. package/dist/nile-menu-item/index.esm.js +1 -1
  158. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  159. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  160. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  161. package/dist/nile-option/index.cjs.js +1 -1
  162. package/dist/nile-option/index.esm.js +1 -1
  163. package/dist/nile-option/nile-option.cjs.js +1 -1
  164. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  165. package/dist/nile-option/nile-option.esm.js +1 -1
  166. package/dist/nile-popover/nile-popover.cjs.js +1 -1
  167. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  168. package/dist/nile-popover/nile-popover.css.cjs.js +1 -1
  169. package/dist/nile-popover/nile-popover.css.cjs.js.map +1 -1
  170. package/dist/nile-popover/nile-popover.css.esm.js +6 -4
  171. package/dist/nile-popover/nile-popover.esm.js +4 -7
  172. package/dist/nile-popover/nile-popover.test.cjs.js +2 -0
  173. package/dist/nile-popover/nile-popover.test.cjs.js.map +1 -0
  174. package/dist/nile-popover/nile-popover.test.esm.js +21 -0
  175. package/dist/nile-popup/nile-popup.css.cjs.js +1 -1
  176. package/dist/nile-popup/nile-popup.css.cjs.js.map +1 -1
  177. package/dist/nile-popup/nile-popup.css.esm.js +8 -4
  178. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +2 -0
  179. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js.map +1 -0
  180. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -0
  181. package/dist/nile-radio/nile-radio.test.cjs.js +2 -0
  182. package/dist/nile-radio/nile-radio.test.cjs.js.map +1 -0
  183. package/dist/nile-radio/nile-radio.test.esm.js +1 -0
  184. package/dist/nile-select/index.cjs.js +1 -1
  185. package/dist/nile-select/index.esm.js +1 -1
  186. package/dist/nile-select/nile-select.cjs.js +1 -1
  187. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  188. package/dist/nile-select/nile-select.esm.js +3 -3
  189. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +2 -0
  190. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js.map +1 -0
  191. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -0
  192. package/dist/nile-split-panel/index.cjs.js +2 -0
  193. package/dist/nile-split-panel/index.cjs.js.map +1 -0
  194. package/dist/nile-split-panel/index.esm.js +1 -0
  195. package/dist/nile-split-panel/nile-split-panel.cjs.js +2 -0
  196. package/dist/nile-split-panel/nile-split-panel.cjs.js.map +1 -0
  197. package/dist/nile-split-panel/nile-split-panel.css.cjs.js +2 -0
  198. package/dist/nile-split-panel/nile-split-panel.css.cjs.js.map +1 -0
  199. package/dist/nile-split-panel/nile-split-panel.css.esm.js +87 -0
  200. package/dist/nile-split-panel/nile-split-panel.esm.js +21 -0
  201. package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
  202. package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
  203. package/dist/nile-stepper/nile-stepper.esm.js +1 -1
  204. package/dist/nile-stepper/nile-stepper.test.cjs.js +2 -0
  205. package/dist/nile-stepper/nile-stepper.test.cjs.js.map +1 -0
  206. package/dist/nile-stepper/nile-stepper.test.esm.js +1 -0
  207. package/dist/nile-tab/index.cjs.js +1 -1
  208. package/dist/nile-tab/index.esm.js +1 -1
  209. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  210. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  211. package/dist/nile-tab/nile-tab.esm.js +1 -1
  212. package/dist/nile-tab-group/index.cjs.js +1 -1
  213. package/dist/nile-tab-group/index.esm.js +1 -1
  214. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  215. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  216. package/dist/nile-tab-group/nile-tab-group.css.cjs.js +1 -1
  217. package/dist/nile-tab-group/nile-tab-group.css.cjs.js.map +1 -1
  218. package/dist/nile-tab-group/nile-tab-group.css.esm.js +2 -2
  219. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  220. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js +1 -1
  221. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js.map +1 -1
  222. package/dist/nile-table-header-item/nile-table-header-item.css.esm.js +0 -4
  223. package/dist/nile-tag/index.cjs.js +1 -1
  224. package/dist/nile-tag/index.esm.js +1 -1
  225. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  226. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  227. package/dist/nile-tag/nile-tag.esm.js +1 -1
  228. package/dist/nile-textarea/nile-textarea.test.cjs.js +2 -0
  229. package/dist/nile-textarea/nile-textarea.test.cjs.js.map +1 -0
  230. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -0
  231. package/dist/nile-toast/index.cjs.js +1 -1
  232. package/dist/nile-toast/index.esm.js +1 -1
  233. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  234. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  235. package/dist/nile-toast/nile-toast.esm.js +1 -1
  236. package/dist/nile-tree/index.cjs.js +2 -0
  237. package/dist/nile-tree/index.cjs.js.map +1 -0
  238. package/dist/nile-tree/index.esm.js +1 -0
  239. package/dist/nile-tree/nile-tree.cjs.js +2 -0
  240. package/dist/nile-tree/nile-tree.cjs.js.map +1 -0
  241. package/dist/nile-tree/nile-tree.css.cjs.js +2 -0
  242. package/dist/nile-tree/nile-tree.css.cjs.js.map +1 -0
  243. package/dist/nile-tree/nile-tree.css.esm.js +36 -0
  244. package/dist/nile-tree/nile-tree.esm.js +13 -0
  245. package/dist/nile-tree-item/index.cjs.js +2 -0
  246. package/dist/nile-tree-item/index.cjs.js.map +1 -0
  247. package/dist/nile-tree-item/index.esm.js +1 -0
  248. package/dist/nile-tree-item/nile-tree-item.cjs.js +2 -0
  249. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -0
  250. package/dist/nile-tree-item/nile-tree-item.css.cjs.js +2 -0
  251. package/dist/nile-tree-item/nile-tree-item.css.cjs.js.map +1 -0
  252. package/dist/nile-tree-item/nile-tree-item.css.esm.js +164 -0
  253. package/dist/nile-tree-item/nile-tree-item.esm.js +63 -0
  254. package/dist/src/index.d.ts +5 -0
  255. package/dist/src/index.js +5 -0
  256. package/dist/src/index.js.map +1 -1
  257. package/dist/src/internal/drag.d.ts +15 -0
  258. package/dist/src/internal/drag.js +28 -0
  259. package/dist/src/internal/drag.js.map +1 -0
  260. package/dist/src/internal/math.d.ts +2 -0
  261. package/dist/src/internal/math.js +12 -0
  262. package/dist/src/internal/math.js.map +1 -0
  263. package/dist/src/nile-avatar/nile-avatar.css.js +5 -6
  264. package/dist/src/nile-avatar/nile-avatar.css.js.map +1 -1
  265. package/dist/src/nile-avatar/nile-avatar.test.d.ts +1 -0
  266. package/dist/src/nile-avatar/nile-avatar.test.js +58 -0
  267. package/dist/src/nile-avatar/nile-avatar.test.js.map +1 -0
  268. package/dist/src/nile-badge/nile-badge.css.js +45 -45
  269. package/dist/src/nile-badge/nile-badge.css.js.map +1 -1
  270. package/dist/src/nile-badge/nile-badge.test.d.ts +1 -0
  271. package/dist/src/nile-badge/nile-badge.test.js +42 -0
  272. package/dist/src/nile-badge/nile-badge.test.js.map +1 -0
  273. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.css.js +3 -4
  274. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.css.js.map +1 -1
  275. package/dist/src/nile-button/nile-button.test.d.ts +1 -0
  276. package/dist/src/nile-button/nile-button.test.js +86 -0
  277. package/dist/src/nile-button/nile-button.test.js.map +1 -0
  278. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.d.ts +2 -0
  279. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js +108 -0
  280. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js.map +1 -0
  281. package/dist/src/nile-calendar/nile-calendar.css.js +122 -191
  282. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  283. package/dist/src/nile-calendar/nile-calendar.d.ts +8 -0
  284. package/dist/src/nile-calendar/nile-calendar.js +164 -167
  285. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  286. package/dist/src/nile-card/nile-card.test.d.ts +1 -0
  287. package/dist/src/nile-card/nile-card.test.js +69 -0
  288. package/dist/src/nile-card/nile-card.test.js.map +1 -0
  289. package/dist/src/nile-date-picker/nile-date-picker.js +1 -0
  290. package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
  291. package/dist/src/nile-dialog/nile-dialog.css.js +4 -1
  292. package/dist/src/nile-dialog/nile-dialog.css.js.map +1 -1
  293. package/dist/src/nile-dialog/nile-dialog.js +4 -3
  294. package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
  295. package/dist/src/nile-drawer/nile-drawer.test.d.ts +1 -0
  296. package/dist/src/nile-drawer/nile-drawer.test.js +88 -0
  297. package/dist/src/nile-drawer/nile-drawer.test.js.map +1 -0
  298. package/dist/src/nile-empty-state/nile-empty-state.test.d.ts +1 -0
  299. package/dist/src/nile-empty-state/nile-empty-state.test.js +63 -0
  300. package/dist/src/nile-empty-state/nile-empty-state.test.js.map +1 -0
  301. package/dist/src/nile-error-message/nile-error-message.test.d.ts +1 -0
  302. package/dist/src/nile-error-message/nile-error-message.test.js +61 -0
  303. package/dist/src/nile-error-message/nile-error-message.test.js.map +1 -0
  304. package/dist/src/nile-form-group/nile-form-group.test.d.ts +1 -0
  305. package/dist/src/nile-form-group/nile-form-group.test.js +55 -0
  306. package/dist/src/nile-form-group/nile-form-group.test.js.map +1 -0
  307. package/dist/src/nile-hero/nile-hero.test.d.ts +1 -0
  308. package/dist/src/nile-hero/nile-hero.test.js +42 -0
  309. package/dist/src/nile-hero/nile-hero.test.js.map +1 -0
  310. package/dist/src/nile-icon/icons/svg/alert.d.ts +5 -0
  311. package/dist/src/nile-icon/icons/svg/alert.js +5 -0
  312. package/dist/src/nile-icon/icons/svg/alert.js.map +1 -0
  313. package/dist/src/nile-icon/icons/svg/file-check-02.d.ts +5 -0
  314. package/dist/src/nile-icon/icons/svg/file-check-02.js +5 -0
  315. package/dist/src/nile-icon/icons/svg/file-check-02.js.map +1 -0
  316. package/dist/src/nile-icon/icons/svg/index.d.ts +3 -0
  317. package/dist/src/nile-icon/icons/svg/index.js +3 -0
  318. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  319. package/dist/src/nile-icon/icons/svg/monitor-01.d.ts +5 -0
  320. package/dist/src/nile-icon/icons/svg/monitor-01.js +5 -0
  321. package/dist/src/nile-icon/icons/svg/monitor-01.js.map +1 -0
  322. package/dist/src/nile-icon/nile-icon.test.d.ts +1 -0
  323. package/dist/src/nile-icon/nile-icon.test.js +45 -0
  324. package/dist/src/nile-icon/nile-icon.test.js.map +1 -0
  325. package/dist/src/nile-input/nile-input.test.d.ts +1 -0
  326. package/dist/src/nile-input/nile-input.test.js +139 -0
  327. package/dist/src/nile-input/nile-input.test.js.map +1 -0
  328. package/dist/src/nile-link/nile-link.test.d.ts +1 -0
  329. package/dist/src/nile-link/nile-link.test.js +72 -0
  330. package/dist/src/nile-link/nile-link.test.js.map +1 -0
  331. package/dist/src/nile-list/index.d.ts +1 -0
  332. package/dist/src/nile-list/index.js +2 -0
  333. package/dist/src/nile-list/index.js.map +1 -0
  334. package/dist/src/nile-list/nile-list.css.d.ts +12 -0
  335. package/dist/src/nile-list/nile-list.css.js +20 -0
  336. package/dist/src/nile-list/nile-list.css.js.map +1 -0
  337. package/dist/src/nile-list/nile-list.d.ts +33 -0
  338. package/dist/src/nile-list/nile-list.js +47 -0
  339. package/dist/src/nile-list/nile-list.js.map +1 -0
  340. package/dist/src/nile-list-item/index.d.ts +1 -0
  341. package/dist/src/nile-list-item/index.js +2 -0
  342. package/dist/src/nile-list-item/index.js.map +1 -0
  343. package/dist/src/nile-list-item/nile-list-item.css.d.ts +12 -0
  344. package/dist/src/nile-list-item/nile-list-item.css.js +66 -0
  345. package/dist/src/nile-list-item/nile-list-item.css.js.map +1 -0
  346. package/dist/src/nile-list-item/nile-list-item.d.ts +38 -0
  347. package/dist/src/nile-list-item/nile-list-item.js +96 -0
  348. package/dist/src/nile-list-item/nile-list-item.js.map +1 -0
  349. package/dist/src/nile-loader/nile-loader.test.d.ts +1 -0
  350. package/dist/src/nile-loader/nile-loader.test.js +39 -0
  351. package/dist/src/nile-loader/nile-loader.test.js.map +1 -0
  352. package/dist/src/nile-menu/nile-menu.css.js +19 -5
  353. package/dist/src/nile-menu/nile-menu.css.js.map +1 -1
  354. package/dist/src/nile-menu/nile-menu.d.ts +1 -0
  355. package/dist/src/nile-menu/nile-menu.js +25 -14
  356. package/dist/src/nile-menu/nile-menu.js.map +1 -1
  357. package/dist/src/nile-popover/nile-popover.css.js +6 -4
  358. package/dist/src/nile-popover/nile-popover.css.js.map +1 -1
  359. package/dist/src/nile-popover/nile-popover.d.ts +1 -0
  360. package/dist/src/nile-popover/nile-popover.js +7 -6
  361. package/dist/src/nile-popover/nile-popover.js.map +1 -1
  362. package/dist/src/nile-popover/nile-popover.test.d.ts +1 -0
  363. package/dist/src/nile-popover/nile-popover.test.js +73 -0
  364. package/dist/src/nile-popover/nile-popover.test.js.map +1 -0
  365. package/dist/src/nile-popup/nile-popup.css.d.ts +5 -5
  366. package/dist/src/nile-popup/nile-popup.css.js +13 -9
  367. package/dist/src/nile-popup/nile-popup.css.js.map +1 -1
  368. package/dist/src/nile-progress-bar/nile-progress-bar.test.d.ts +1 -0
  369. package/dist/src/nile-progress-bar/nile-progress-bar.test.js +48 -0
  370. package/dist/src/nile-progress-bar/nile-progress-bar.test.js.map +1 -0
  371. package/dist/src/nile-radio/nile-radio.test.d.ts +1 -0
  372. package/dist/src/nile-radio/nile-radio.test.js +71 -0
  373. package/dist/src/nile-radio/nile-radio.test.js.map +1 -0
  374. package/dist/src/nile-select/nile-select.d.ts +1 -0
  375. package/dist/src/nile-select/nile-select.js +5 -1
  376. package/dist/src/nile-select/nile-select.js.map +1 -1
  377. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.d.ts +1 -0
  378. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js +54 -0
  379. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js.map +1 -0
  380. package/dist/src/nile-split-panel/index.d.ts +1 -0
  381. package/dist/src/nile-split-panel/index.js +2 -0
  382. package/dist/src/nile-split-panel/index.js.map +1 -0
  383. package/dist/src/nile-split-panel/nile-split-panel.css.d.ts +12 -0
  384. package/dist/src/nile-split-panel/nile-split-panel.css.js +99 -0
  385. package/dist/src/nile-split-panel/nile-split-panel.css.js.map +1 -0
  386. package/dist/src/nile-split-panel/nile-split-panel.d.ts +78 -0
  387. package/dist/src/nile-split-panel/nile-split-panel.js +251 -0
  388. package/dist/src/nile-split-panel/nile-split-panel.js.map +1 -0
  389. package/dist/src/nile-stepper/nile-stepper.js +1 -1
  390. package/dist/src/nile-stepper/nile-stepper.js.map +1 -1
  391. package/dist/src/nile-stepper/nile-stepper.test.d.ts +0 -0
  392. package/dist/src/nile-stepper/nile-stepper.test.js +165 -0
  393. package/dist/src/nile-stepper/nile-stepper.test.js.map +1 -0
  394. package/dist/src/nile-tab-group/nile-tab-group.css.js +2 -2
  395. package/dist/src/nile-tab-group/nile-tab-group.css.js.map +1 -1
  396. package/dist/src/nile-tab-group/nile-tab-group.js +16 -15
  397. package/dist/src/nile-tab-group/nile-tab-group.js.map +1 -1
  398. package/dist/src/nile-table-header-item/nile-table-header-item.css.js +0 -4
  399. package/dist/src/nile-table-header-item/nile-table-header-item.css.js.map +1 -1
  400. package/dist/src/nile-textarea/nile-textarea.test.d.ts +1 -0
  401. package/dist/src/nile-textarea/nile-textarea.test.js +87 -0
  402. package/dist/src/nile-textarea/nile-textarea.test.js.map +1 -0
  403. package/dist/src/nile-tree/index.d.ts +1 -0
  404. package/dist/src/nile-tree/index.js +2 -0
  405. package/dist/src/nile-tree/index.js.map +1 -0
  406. package/dist/src/nile-tree/nile-tree.css.d.ts +12 -0
  407. package/dist/src/nile-tree/nile-tree.css.js +48 -0
  408. package/dist/src/nile-tree/nile-tree.css.js.map +1 -0
  409. package/dist/src/nile-tree/nile-tree.d.ts +69 -0
  410. package/dist/src/nile-tree/nile-tree.js +376 -0
  411. package/dist/src/nile-tree/nile-tree.js.map +1 -0
  412. package/dist/src/nile-tree-item/index.d.ts +1 -0
  413. package/dist/src/nile-tree-item/index.js +2 -0
  414. package/dist/src/nile-tree-item/index.js.map +1 -0
  415. package/dist/src/nile-tree-item/nile-tree-item.css.d.ts +12 -0
  416. package/dist/src/nile-tree-item/nile-tree-item.css.js +176 -0
  417. package/dist/src/nile-tree-item/nile-tree-item.css.js.map +1 -0
  418. package/dist/src/nile-tree-item/nile-tree-item.d.ts +96 -0
  419. package/dist/src/nile-tree-item/nile-tree-item.js +324 -0
  420. package/dist/src/nile-tree-item/nile-tree-item.js.map +1 -0
  421. package/dist/tsconfig.tsbuildinfo +1 -1
  422. package/package.json +71 -2
  423. package/plopfile.js +11 -0
  424. package/src/index.ts +6 -1
  425. package/src/internal/drag.ts +45 -0
  426. package/src/internal/math.ts +14 -0
  427. package/src/nile-avatar/nile-avatar.css.ts +5 -6
  428. package/src/nile-avatar/nile-avatar.test.ts +65 -0
  429. package/src/nile-badge/nile-badge.css.ts +45 -45
  430. package/src/nile-badge/nile-badge.test.ts +48 -0
  431. package/src/nile-breadcrumb-item/nile-breadcrumb-item.css.ts +3 -4
  432. package/src/nile-button/nile-button.test.ts +117 -0
  433. package/src/nile-button-toggle-group/nile-button-toggle-group.test.ts +130 -0
  434. package/src/nile-calendar/nile-calendar.css.ts +122 -191
  435. package/src/nile-calendar/nile-calendar.ts +170 -213
  436. package/src/nile-card/nile-card.test.ts +74 -0
  437. package/src/nile-date-picker/nile-date-picker.ts +5 -6
  438. package/src/nile-dialog/nile-dialog.css.ts +4 -1
  439. package/src/nile-dialog/nile-dialog.ts +4 -4
  440. package/src/nile-drawer/nile-drawer.test.ts +106 -0
  441. package/src/nile-empty-state/nile-empty-state.test.ts +69 -0
  442. package/src/nile-error-message/nile-error-message.test.ts +69 -0
  443. package/src/nile-form-group/nile-form-group.test.ts +63 -0
  444. package/src/nile-hero/nile-hero.test.ts +45 -0
  445. package/src/nile-icon/icons/svg/alert.ts +5 -0
  446. package/src/nile-icon/icons/svg/file-check-02.ts +5 -0
  447. package/src/nile-icon/icons/svg/index.ts +3 -0
  448. package/src/nile-icon/icons/svg/monitor-01.ts +5 -0
  449. package/src/nile-icon/nile-icon.test.ts +53 -0
  450. package/src/nile-input/nile-input.test.ts +160 -0
  451. package/src/nile-link/nile-link.test.ts +83 -0
  452. package/src/nile-list/index.ts +1 -0
  453. package/src/nile-list/nile-list.css.ts +22 -0
  454. package/src/nile-list/nile-list.ts +64 -0
  455. package/src/nile-list-item/index.ts +1 -0
  456. package/src/nile-list-item/nile-list-item.css.ts +68 -0
  457. package/src/nile-list-item/nile-list-item.ts +104 -0
  458. package/src/nile-loader/nile-loader.test.ts +45 -0
  459. package/src/nile-menu/nile-menu.css.ts +19 -5
  460. package/src/nile-menu/nile-menu.ts +27 -17
  461. package/src/nile-popover/nile-popover.css.ts +6 -4
  462. package/src/nile-popover/nile-popover.test.ts +86 -0
  463. package/src/nile-popover/nile-popover.ts +7 -10
  464. package/src/nile-popup/nile-popup.css.ts +14 -10
  465. package/src/nile-progress-bar/nile-progress-bar.test.ts +55 -0
  466. package/src/nile-radio/nile-radio.test.ts +81 -0
  467. package/src/nile-select/nile-select.ts +3 -1
  468. package/src/nile-slide-toggle/nile-slide-toggle.test.ts +61 -0
  469. package/src/nile-split-panel/index.ts +1 -0
  470. package/src/nile-split-panel/nile-split-panel.css.ts +101 -0
  471. package/src/nile-split-panel/nile-split-panel.ts +285 -0
  472. package/src/nile-stepper/nile-stepper.test.ts +174 -0
  473. package/src/nile-stepper/nile-stepper.ts +2 -2
  474. package/src/nile-tab-group/nile-tab-group.css.ts +2 -2
  475. package/src/nile-tab-group/nile-tab-group.ts +2 -1
  476. package/src/nile-table-header-item/nile-table-header-item.css.ts +0 -4
  477. package/src/nile-textarea/nile-textarea.test.ts +102 -0
  478. package/src/nile-tree/index.ts +1 -0
  479. package/src/nile-tree/nile-tree.css.ts +50 -0
  480. package/src/nile-tree/nile-tree.ts +433 -0
  481. package/src/nile-tree-item/index.ts +1 -0
  482. package/src/nile-tree-item/nile-tree-item.css.ts +178 -0
  483. package/src/nile-tree-item/nile-tree-item.ts +330 -0
@@ -0,0 +1,106 @@
1
+ import { expect, fixture, html, waitUntil } from '@open-wc/testing';
2
+ import { sendKeys } from '@web/test-runner-commands';
3
+ import sinon from 'sinon';
4
+ import './nile-drawer'; // Adjust the import path as necessary
5
+ import { NileDrawer } from './nile-drawer';
6
+ describe('Nile-drawer', () => {
7
+ it('should be visible with the open attribute', async () => {
8
+ const el = await fixture<NileDrawer>(html`
9
+ <nile-drawer open>I am content inside nile drawer</nile-drawer>
10
+ `);
11
+ const panel = el.shadowRoot!.querySelector<HTMLElement>('[part="panel"]')!;
12
+ expect(panel.ariaHidden).to.equal('false');
13
+ });
14
+
15
+ it('should not be visible without the open attribute', async () => {
16
+ const el = await fixture<NileDrawer>(html`
17
+ <nile-drawer>I am content inside nile drawer</nile-drawer>
18
+ `);
19
+ const panel = el.shadowRoot!.querySelector<HTMLElement>('[part="panel"]')!;
20
+ expect(panel.ariaHidden).to.equal('true');
21
+ });
22
+
23
+ it('should emit nile-show and nile-after-show when calling show()', async () => {
24
+ const el = await fixture<NileDrawer>(html`
25
+ <nile-drawer>I am Nile Drawer Content.</nile-drawer>
26
+ `);
27
+ const base = el.shadowRoot!.querySelector<HTMLElement>('[part~="base"]')!;
28
+ const showHandler = sinon.spy();
29
+ const afterShowHandler = sinon.spy();
30
+
31
+ el.addEventListener('nile-show', showHandler);
32
+ el.addEventListener('nile-after-show', afterShowHandler);
33
+ el.show();
34
+
35
+ await waitUntil(() => showHandler.calledOnce);
36
+ await waitUntil(() => afterShowHandler.calledOnce);
37
+
38
+ expect(showHandler).to.have.been.calledOnce;
39
+ expect(afterShowHandler).to.have.been.calledOnce;
40
+ expect(base.hidden).to.be.false;
41
+ });
42
+
43
+ it('should emit nile-hide and nile-after-hide when calling hide()', async () => {
44
+ const el = await fixture<NileDrawer>(html`
45
+ <nile-drawer open>I am nile drawer content</nile-drawer>
46
+ `);
47
+ const base = el.shadowRoot!.querySelector<HTMLElement>('[part~="base"]')!;
48
+ const hideHandler = sinon.spy();
49
+ const afterHideHandler = sinon.spy();
50
+
51
+ el.addEventListener('nile-hide', hideHandler);
52
+ el.addEventListener('nile-after-hide', afterHideHandler);
53
+ el.hide();
54
+
55
+ await waitUntil(() => hideHandler.calledOnce);
56
+ await waitUntil(() => afterHideHandler.calledOnce);
57
+
58
+ expect(hideHandler).to.have.been.calledOnce;
59
+ expect(afterHideHandler).to.have.been.calledOnce;
60
+ expect(base.hidden).to.be.true;
61
+ });
62
+
63
+ it('should emit nile-show and nile-after-show when setting open = true', async () => {
64
+ const el = await fixture<NileDrawer>(html`
65
+ <nile-drawer
66
+ >Lorem ipsum dolor sit amet, consectetur adipiscing elit.</nile-drawer
67
+ >
68
+ `);
69
+ const base = el.shadowRoot!.querySelector<HTMLElement>('[part~="base"]')!;
70
+ const showHandler = sinon.spy();
71
+ const afterShowHandler = sinon.spy();
72
+
73
+ el.addEventListener('nile-show', showHandler);
74
+ el.addEventListener('nile-after-show', afterShowHandler);
75
+ el.open = true;
76
+
77
+ await waitUntil(() => showHandler.calledOnce);
78
+ await waitUntil(() => afterShowHandler.calledOnce);
79
+
80
+ expect(showHandler).to.have.been.calledOnce;
81
+ expect(afterShowHandler).to.have.been.calledOnce;
82
+ expect(base.hidden).to.be.false;
83
+ });
84
+
85
+ it('should emit nile-hide and nile-after-hide when setting open = false', async () => {
86
+ const el = await fixture<NileDrawer>(html`
87
+ <nile-drawer open
88
+ >Lorem ipsum dolor sit amet, consectetur adipiscing elit.</nile-drawer
89
+ >
90
+ `);
91
+ const base = el.shadowRoot!.querySelector<HTMLElement>('[part~="base"]')!;
92
+ const hideHandler = sinon.spy();
93
+ const afterHideHandler = sinon.spy();
94
+
95
+ el.addEventListener('nile-hide', hideHandler);
96
+ el.addEventListener('nile-after-hide', afterHideHandler);
97
+ el.open = false;
98
+
99
+ await waitUntil(() => hideHandler.calledOnce);
100
+ await waitUntil(() => afterHideHandler.calledOnce);
101
+
102
+ expect(hideHandler).to.have.been.calledOnce;
103
+ expect(afterHideHandler).to.have.been.calledOnce;
104
+ expect(base.hidden).to.be.true;
105
+ });
106
+ });
@@ -0,0 +1,69 @@
1
+ import { fixture,html,expect } from "@open-wc/testing";
2
+ import './nile-empty-state';
3
+ import { NileEmptyState } from "./nile-empty-state";
4
+
5
+ describe('NileEmptyState',()=>{
6
+ it('renders correctly with default properties',async ()=>{
7
+ const el=await fixture<NileEmptyState>(html`<nile-empty-state></nile-empty-state>`)
8
+ expect(el.size).to.equal('md');
9
+ expect(el.variant).to.equal('tonal');
10
+ expect(el.icon).to.equal('error');
11
+ expect(el.grayscale).to.be.false;
12
+ expect(el.text).to.equal('Empty State');
13
+ expect(el.subText).to.equal('No Data');
14
+ })
15
+
16
+ it('should reflect properties to attributes', async () => {
17
+ const iconName="action"
18
+ const el = await fixture<NileEmptyState>(html`
19
+ <nile-empty-state size="sm" variant="flat" icon=${iconName} grayscale text="Test state text" sub-text="Test sub text"></nile-empty-state>
20
+ `);
21
+ expect(el.getAttribute('size')).to.equal('sm');
22
+ expect(el.getAttribute('variant')).to.equal('flat');
23
+ expect(el.getAttribute('icon')).to.equal(iconName);
24
+ expect(el.hasAttribute('grayscale')).to.be.true;
25
+ expect(el.getAttribute('text')).to.equal('Test state text');
26
+ expect(el.getAttribute('sub-text')).to.equal('Test sub text');
27
+ });
28
+
29
+ it('should render different sizes correctly', async () => {
30
+ const sizes:Array<'sm' | 'md' | 'lg' >= ['sm', 'md', 'lg'];
31
+ for (const size of sizes) {
32
+ const el = await fixture<NileEmptyState>(html`<nile-empty-state size="${size}"></nile-empty-state>`);
33
+ const container = el.shadowRoot!.querySelector('.empty-state')!;
34
+ expect(container.classList.contains(`empty-state--${size}`)).to.be.true;
35
+ }
36
+ });
37
+
38
+ it('should render different variants correctly', async () => {
39
+ const variants :Array<'flat' | 'content' | 'tonal' >= ['flat', 'content', 'tonal'];
40
+ for (const variant of variants) {
41
+ const el = await fixture<NileEmptyState>(html`<nile-empty-state variant="${variant}"></nile-empty-state>`);
42
+ const container = el.shadowRoot!.querySelector(`.empty-state__body--${variant}`)!;
43
+ expect(container).to.exist;
44
+ }
45
+ });
46
+
47
+ it('should render text properties correctly', async () => {
48
+ const sampleText='Custom Text'
49
+ const sampleSubText="Custom SubText"
50
+ const el = await fixture<NileEmptyState>(html`
51
+ <nile-empty-state text=${sampleText} sub-text=${sampleSubText}></nile-empty-state>
52
+ `);
53
+ const textEl = el.shadowRoot!.querySelector('.empty-state__text')!;
54
+ const subTextEl = el.shadowRoot!.querySelector('.empty-state__subtext')!;
55
+ expect(textEl.textContent).to.equal(sampleText);
56
+ expect(subTextEl.textContent).to.equal(sampleSubText);
57
+ });
58
+
59
+ it('should render slot content', async () => {
60
+ const el = await fixture<NileEmptyState>(html`
61
+ <nile-empty-state>
62
+ <div class="slot-content">Slot Content</div>
63
+ </nile-empty-state>
64
+ `);
65
+ const slotContent = el.querySelector('.slot-content')!;
66
+ expect(slotContent).to.exist;
67
+ expect(slotContent.textContent).to.equal('Slot Content');
68
+ });
69
+ })
@@ -0,0 +1,69 @@
1
+ import { html, fixture, expect, oneEvent } from '@open-wc/testing';
2
+ import './nile-error-message';
3
+ import { NileErrorMessage } from './nile-error-message';
4
+ describe('NileErrorMessage', () => {
5
+ it('should render the error message', async () => {
6
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorMessage="An error occurred"></nile-error-message>`);
7
+ const errorMessage = el.shadowRoot!.querySelector('.nile-error-message__error');
8
+ expect(errorMessage!.textContent).to.equal('An error occurred');
9
+ });
10
+
11
+ it('should truncate the error response if it is too long', async () => {
12
+ const longErrorResponse = 'a'.repeat(150);
13
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorResponse="${longErrorResponse}"></nile-error-message>`);
14
+ const truncatedResponse = el.getTruncatedResponse();
15
+ expect(truncatedResponse).to.equal(`${longErrorResponse.substring(0, 100)}...`);
16
+ });
17
+
18
+ it('should not truncate the error response if it is within the maximum length', async () => {
19
+ const shortErrorResponse = 'Short error message';
20
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorResponse="${shortErrorResponse}"></nile-error-message>`);
21
+ const truncatedResponse = el.getTruncatedResponse();
22
+ expect(truncatedResponse).to.equal(shortErrorResponse);
23
+ });
24
+
25
+ it('should toggle the expanded state when the button is clicked', async () => {
26
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorResponse="Short error message" errorResponseLong="Detailed error information"></nile-error-message>`);
27
+ const button :HTMLButtonElement = el.shadowRoot!.querySelector('.nile-error-message__more-button') ??{} as HTMLButtonElement;
28
+ button.click();
29
+ expect(el.isExpanded).to.be.true;
30
+ button.click();
31
+ expect(el.isExpanded).to.be.false;
32
+ });
33
+
34
+ it('should display the "View More" button if there is extended error information', async () => {
35
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorResponse="Short error message" errorResponseLong="Detailed error information"></nile-error-message>`);
36
+ const button = el.shadowRoot!.querySelector('.nile-error-message__more-button');
37
+ expect(button).to.exist;
38
+ });
39
+
40
+ it('should not display the "View More" button if there is no extended error information', async () => {
41
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorResponse="Short error message"></nile-error-message>`);
42
+ const button = el.shadowRoot!.querySelector('.nile-error-message__more-button');
43
+ expect(button).to.not.exist;
44
+ });
45
+
46
+ it('should show the extended error information when expanded', async () => {
47
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorResponse="Short error message" errorResponseLong="Detailed error information"></nile-error-message>`);
48
+ el.isExpanded = true;
49
+ await el.updateComplete;
50
+ const expandedResponse = el.shadowRoot!.querySelector('.nile-error-message__response-expanded');
51
+ expect(expandedResponse?.textContent).to.include('Detailed error information');
52
+ });
53
+
54
+ it('should hide the extended error information when collapsed', async () => {
55
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorResponse="Short error message" errorResponseLong="Detailed error information"></nile-error-message>`);
56
+ el.isExpanded = false;
57
+ await el.updateComplete;
58
+ const expandedResponse = el.shadowRoot!.querySelector('.nile-error-message__response-expanded');
59
+ expect(expandedResponse).to.have.class('collapsed');
60
+ });
61
+
62
+ it('should render icon and error message parts', async () => {
63
+ const el = await fixture<NileErrorMessage>(html`<nile-error-message errorMessage="An error occurred"></nile-error-message>`);
64
+ const icon = el.shadowRoot!.querySelector('nile-icon');
65
+ expect(icon).to.exist;
66
+ const errorMessage = el.shadowRoot!.querySelector('.nile-error-message__error');
67
+ expect(errorMessage).to.exist;
68
+ });
69
+ });
@@ -0,0 +1,63 @@
1
+ import { fixture, html, expect } from '@open-wc/testing';
2
+ import './nile-form-group'; // Make sure to import the component to be tested
3
+ import NileFormGroup from './nile-form-group';
4
+
5
+ describe('NileFormGroup', () => {
6
+ it('should have default properties', async () => {
7
+ const el = await fixture<NileFormGroup>(html`<nile-form-group></nile-form-group>`);
8
+ expect(el.title).to.equal('');
9
+ expect(el.subtitle).to.equal('');
10
+ });
11
+
12
+ it('should render title when set', async () => {
13
+ const el = await fixture<NileFormGroup>(html`<nile-form-group title="Test Title"></nile-form-group>`);
14
+ const titleSlot = el.shadowRoot!.querySelector('slot[name="title"]');
15
+ expect(titleSlot).to.exist;
16
+ expect(titleSlot?.textContent?.trim()).to.equal('Test Title');
17
+ });
18
+
19
+ it('should render subtitle when set', async () => {
20
+ const el = await fixture<NileFormGroup>(html`<nile-form-group title="Test Title" subtitle="Test Subtitle"></nile-form-group>`);
21
+ const subtitleSlot = el.shadowRoot!.querySelector('slot[name="subtitle"]');
22
+ expect(subtitleSlot).to.exist;
23
+ expect(subtitleSlot?.textContent?.trim()).to.equal('Test Subtitle');
24
+ });
25
+
26
+ it('should not render title and subtitle if not set', async () => {
27
+ const el = await fixture<NileFormGroup>(html`<nile-form-group></nile-form-group>`);
28
+ const titleSlot = el.shadowRoot!.querySelector('slot[name="title"]');
29
+ const subtitleSlot = el.shadowRoot!.querySelector('slot[name="subtitle"]');
30
+ expect(titleSlot).to.not.exist;
31
+ expect(subtitleSlot).to.not.exist;
32
+ });
33
+
34
+ it('should render content inside the form body slot', async () => {
35
+ const el = await fixture<NileFormGroup>(html`<nile-form-group><p>Form Content</p></nile-form-group>`);
36
+ const bodySlot = el.shadowRoot!.querySelector<HTMLSlotElement>('.form__body slot');
37
+ const assignedNodes = bodySlot?.assignedNodes() ?? [] as any;
38
+ expect(assignedNodes.length).to.equal(1);
39
+ expect(assignedNodes[0].textContent.trim()).to.equal('Form Content');
40
+ });
41
+
42
+ it('should reflect title and subtitle attributes', async () => {
43
+ const el = await fixture<NileFormGroup>(html`<nile-form-group title="Test Title" subtitle="Test Subtitle"></nile-form-group>`);
44
+ expect(el.getAttribute('title')).to.equal('Test Title');
45
+ expect(el.getAttribute('subtitle')).to.equal('Test Subtitle');
46
+ });
47
+
48
+ it('should update the title dynamically', async () => {
49
+ const el = await fixture<NileFormGroup>(html`<nile-form-group title="Initial Title"></nile-form-group>`);
50
+ el.title = 'Updated Title';
51
+ await el.updateComplete;
52
+ const titleSlot = el.shadowRoot!.querySelector('slot[name="title"]')?? {} as any;
53
+ expect(titleSlot.textContent.trim()).to.equal('Updated Title');
54
+ });
55
+
56
+ it('should update the subtitle dynamically', async () => {
57
+ const el = await fixture<NileFormGroup>(html`<nile-form-group title="Test Title" subtitle="Initial Subtitle"></nile-form-group>`);
58
+ el.subtitle = 'Updated Subtitle';
59
+ await el.updateComplete;
60
+ const subtitleSlot = el.shadowRoot!.querySelector('slot[name="subtitle"]') ?? {} as any;
61
+ expect(subtitleSlot.textContent.trim()).to.equal('Updated Subtitle');
62
+ });
63
+ });
@@ -0,0 +1,45 @@
1
+ import { fixture, html, expect, oneEvent } from '@open-wc/testing';
2
+ import './nile-hero';
3
+ import { NileHero } from './nile-hero';
4
+
5
+ describe('NileHero', () => {
6
+ it('renders correctly with default properties', async () => {
7
+ const el = await fixture<NileHero>(html`
8
+ <nile-hero icon="error" hero-text="Test Hero">
9
+ <nile-page-header
10
+ heading="I am heading"
11
+ sub-heading="I am subheading"
12
+ ></nile-page-header>
13
+ </nile-hero>`);
14
+ expect(el.getAttribute('icon')).to.equal('error');
15
+ expect(el.hasAttribute('collapse')).to.be.false;
16
+ expect(el.getAttribute('img-src')).to.equal('');
17
+ expect(el.getAttribute('hero-text')).to.equal('Test Hero');
18
+ expect(el).shadowDom.to.equalSnapshot();
19
+ });
20
+
21
+ it('checks for collapsed state', async () => {
22
+ const el = await fixture<NileHero>(html`<nile-hero></nile-hero>`);
23
+ el.collapse = true;
24
+ await el.updateComplete;
25
+ expect(el.collapse).to.be.true;
26
+ el.collapse=true;
27
+ await el.updateComplete;
28
+ const heroContainer=el.shadowRoot?.querySelector('.hero__container');
29
+ expect(heroContainer?.classList.contains('hero__container--collapsed')).to.be.true;
30
+ });
31
+
32
+ it('should render slot content', async () => {
33
+ const el = await fixture<NileHero>(html`
34
+ <nile-hero>
35
+ <nile-page-header
36
+ heading="I am heading"
37
+ sub-heading="I am subheading"
38
+ ></nile-page-header>
39
+ </nile-hero>
40
+ `);
41
+ await el.updateComplete;
42
+ const NilePageHeader = el.querySelector('nile-page-header')!;
43
+ expect(NilePageHeader).to.exist;
44
+ });
45
+ })
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTIgOFYxMk0xMiAxNkgxMi4wMSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjAgMTIuNVY2LjhDMjAgNS4xMTk4NCAyMCA0LjI3OTc2IDE5LjY3MyAzLjYzODAzQzE5LjM4NTQgMy4wNzM1NCAxOC45MjY1IDIuNjE0NiAxOC4zNjIgMi4zMjY5OEMxNy43MjAyIDIgMTYuODgwMiAyIDE1LjIgMkg4LjhDNy4xMTk4NCAyIDYuMjc5NzYgMiA1LjYzODAzIDIuMzI2OThDNS4wNzM1NCAyLjYxNDYgNC42MTQ2IDMuMDczNTQgNC4zMjY5OCAzLjYzODAzQzQgNC4yNzk3NiA0IDUuMTE5ODQgNCA2LjhWMTcuMkM0IDE4Ljg4MDIgNCAxOS43MjAyIDQuMzI2OTggMjAuMzYyQzQuNjE0NiAyMC45MjY1IDUuMDczNTQgMjEuMzg1NCA1LjYzODAzIDIxLjY3M0M2LjI3OTc2IDIyIDcuMTE5ODQgMjIgOC44IDIySDEyTTE0IDExSDhNMTAgMTVIOE0xNiA3SDhNMTQuNSAxOUwxNi41IDIxTDIxIDE2LjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==";
@@ -7,6 +7,7 @@ export { default as agent } from './agent';
7
7
  export { default as agents } from './agents';
8
8
  export { default as aggregation } from './aggregation';
9
9
  export { default as alertcircle } from './alert-circle';
10
+ export { default as alert } from './alert';
10
11
  export { default as allapplication } from './allapplication';
11
12
  export { default as allsearch } from './allsearch';
12
13
  export { default as anomaly } from './anomaly';
@@ -171,6 +172,7 @@ export { default as eye } from './eye';
171
172
  export { default as eyeclosed } from './eyeclosed';
172
173
  export { default as featuredicon } from './featured-icon';
173
174
  export { default as file06 } from './file-06';
175
+ export { default as filecheck02 } from './file-check-02';
174
176
  export { default as fileshield01 } from './file-shield-01';
175
177
  export { default as fileshield02 } from './file-shield-02';
176
178
  export { default as filetypeicon } from './file-type-icon';
@@ -300,6 +302,7 @@ export { default as maximize } from './maximize';
300
302
  export { default as menu } from './menu';
301
303
  export { default as messagenotificationsquare } from './message-notification-square';
302
304
  export { default as minus } from './minus';
305
+ export { default as monitor01 } from './monitor-01';
303
306
  export { default as moveleft } from './moveleft';
304
307
  export { default as moveright } from './moveright';
305
308
  export { default as multipleuser } from './multiple-user';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Do not edit directly
3
+ */
4
+
5
+ export default "PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOCAyMUgxNk0xMiAxN1YyMU02LjggMTdIMTcuMkMxOC44ODAyIDE3IDE5LjcyMDIgMTcgMjAuMzYyIDE2LjY3M0MyMC45MjY1IDE2LjM4NTQgMjEuMzg1NCAxNS45MjY1IDIxLjY3MyAxNS4zNjJDMjIgMTQuNzIwMiAyMiAxMy44ODAyIDIyIDEyLjJWNy44QzIyIDYuMTE5ODQgMjIgNS4yNzk3NiAyMS42NzMgNC42MzgwM0MyMS4zODU0IDQuMDczNTQgMjAuOTI2NSAzLjYxNDYgMjAuMzYyIDMuMzI2OThDMTkuNzIwMiAzIDE4Ljg4MDIgMyAxNy4yIDNINi44QzUuMTE5ODQgMyA0LjI3OTc2IDMgMy42MzgwMyAzLjMyNjk4QzMuMDczNTQgMy42MTQ2IDIuNjE0NiA0LjA3MzU0IDIuMzI2OTggNC42MzgwM0MyIDUuMjc5NzYgMiA2LjExOTg0IDIgNy44VjEyLjJDMiAxMy44ODAyIDIgMTQuNzIwMiAyLjMyNjk4IDE1LjM2MkMyLjYxNDYgMTUuOTI2NSAzLjA3MzU0IDE2LjM4NTQgMy42MzgwMyAxNi42NzNDNC4yNzk3NiAxNyA1LjExOTg0IDE3IDYuOCAxN1oiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==";
@@ -0,0 +1,53 @@
1
+ import { html, fixture, expect } from '@open-wc/testing';
2
+ import './index';
3
+ import { NileIcon } from './index';
4
+ import Sinon from 'sinon';
5
+
6
+ describe('NileIcon', () => {
7
+ it('should render the icon with the correct name', async () => {
8
+ const el = await fixture<NileIcon>(html`<nile-icon name="info"></nile-icon>`);
9
+ expect(el.name).to.equal('info');
10
+ expect(el).to.equalSnapshot()
11
+ });
12
+
13
+ it('should render the icon with the correct size', async () => {
14
+ const el = await fixture<NileIcon>(html`<nile-icon size="24"></nile-icon>`);
15
+ expect(el.size).to.equal('24');
16
+ const svg = el.shadowRoot!.querySelector('svg');
17
+ expect(svg?.getAttribute('height')).to.equal('24');
18
+ expect(svg?.getAttribute('width')).to.equal('24');
19
+ });
20
+
21
+ it('should apply the correct color to the icon', async () => {
22
+ const el = await fixture<NileIcon>(html`<nile-icon color="red"></nile-icon>`);
23
+ await el.updateComplete
24
+ expect(el.color).to.equal('red');
25
+ expect(el.style.getPropertyValue('--nile-svg-fill')).to.equal('red');
26
+ });
27
+
28
+ it('should set the correct viewBox based on frame property', async () => {
29
+ const el = await fixture<NileIcon>(html`<nile-icon frame="32"></nile-icon>`);
30
+ const svg = el.shadowRoot!.querySelector('svg');
31
+ expect(svg?.getAttribute('viewBox')).to.equal('0 0 32 32');
32
+ });
33
+
34
+ it('should set aria attributes based on description', async () => {
35
+ const el = await fixture<NileIcon>(html`<nile-icon description="Test icon"></nile-icon>`);
36
+ const svg = el.shadowRoot!.querySelector('svg');
37
+ await el.updateComplete
38
+ expect(svg?.getAttribute('aria-label')).to.equal('Test icon');
39
+ expect(svg?.getAttribute('aria-hidden')).to.equal('false');
40
+ });
41
+
42
+ it('should apply stroke class based on method property', async () => {
43
+ const el = await fixture<NileIcon>(html`<nile-icon method="stroke"></nile-icon>`);
44
+ const svg = el.shadowRoot!.querySelector('svg');
45
+ expect(svg?.classList.contains('stroke')).to.be.true;
46
+ });
47
+
48
+ it('should apply push class when push property is true', async () => {
49
+ const el = await fixture<NileIcon>(html`<nile-icon push></nile-icon>`);
50
+ const svg = el.shadowRoot!.querySelector('svg');
51
+ expect(svg?.classList.contains('nds-icon--push')).to.be.true;
52
+ });
53
+ });
@@ -0,0 +1,160 @@
1
+ import { fixture, html, expect, oneEvent, nextFrame, aTimeout } from '@open-wc/testing';
2
+ import './nile-input';
3
+ import { NileInput } from './nile-input';
4
+ import Sinon from 'sinon';
5
+
6
+ describe('nile-input', () => {
7
+ it('renders correctly', async () => {
8
+ const el = await fixture<NileInput>(html`<nile-input label="Test Label"></nile-input>`);
9
+ expect(el).shadowDom.to.equalSnapshot();
10
+ });
11
+
12
+ it('updates the value on input', async () => {
13
+ const el :any = await fixture<NileInput>(html`<nile-input></nile-input>`);
14
+ const input = el.shadowRoot?.querySelector('input') ?? {} as any;
15
+ input.value = 'New Value';
16
+ input.dispatchEvent(new Event('input'));
17
+ expect(el.value).to.equal('New Value');
18
+ });
19
+
20
+
21
+ it('shows error message when invalid', async () => {
22
+ const el = await fixture<NileInput>(html`<nile-input required error-message='errr'></nile-input>`);
23
+ const errorMessage = el.shadowRoot?.querySelector('nile-form-error-message');
24
+ expect(errorMessage).to.exist;
25
+ });
26
+
27
+
28
+ it('should renders all slots correctly and verify its content', async () => {
29
+ const el = await fixture<NileInput>(html`
30
+ <nile-input>
31
+ <span slot="label">Slot Label</span>
32
+ <span slot="label-suffix">Slot Label suffix</span>
33
+ <span slot="prefix">prefix slot</span>
34
+ <span slot="suffix">suffix slot</span>
35
+ <span slot="clear-icon">
36
+ <nile-icon name="error" library="system"></nile-icon>
37
+ </span>
38
+ <span slot="show-password-icon">
39
+ <nile-icon
40
+ name="eye"
41
+ library="system"
42
+ ></nile-icon>
43
+ </span>
44
+ </nile-input>
45
+ `);
46
+ const labelSlot = el.shadowRoot?.querySelector('slot[name="label"]') ?? {} as any;
47
+ const labelSuffixSlot = el.shadowRoot?.querySelector('slot[name="label-suffix"]') ?? {} as any;
48
+ const prefixSlot = el.shadowRoot?.querySelector('slot[name="prefix"]') ?? {} as any;
49
+ const suffixSlot = el.shadowRoot?.querySelector('slot[name="suffix"]') ?? {} as any;
50
+ const clearIconSlot = el.shadowRoot?.querySelector('slot[name="clear-icon"]') ?? {} as HTMLElement;
51
+ const showPasswordSlot = el.shadowRoot?.querySelector('slot[name="show-password-icon"]') ?? {} as HTMLElement;
52
+ expect(labelSlot.assignedNodes()[0].textContent).to.equal('Slot Label');
53
+ expect(labelSuffixSlot.assignedNodes()[0].textContent).to.equal('Slot Label suffix');
54
+ expect(prefixSlot.assignedNodes()[0].textContent).to.equal('prefix slot');
55
+ expect(suffixSlot.assignedNodes()[0].textContent).to.equal('suffix slot');
56
+ expect(clearIconSlot).to.exist;
57
+ expect(showPasswordSlot).to.exist;
58
+ });
59
+
60
+ it('handles password toggle', async () => {
61
+ const el = await fixture<NileInput>(html`<nile-input type="password" password-toggle></nile-input>`);
62
+ const button = el.shadowRoot?.querySelector('.input__password-toggle') ?? {} as any;
63
+ button.click();
64
+ await el.updateComplete;
65
+ expect(el.passwordVisible).to.be.true;
66
+ expect(el.shadowRoot!.querySelector('input')!.type).to.equal('text');
67
+ });
68
+
69
+ it('validates input against pattern', async () => {
70
+ const el = await fixture<NileInput>(html`<nile-input pattern="^[a-zA-Z]+$"></nile-input>`);
71
+ el.value = '123';
72
+ el.reportValidity();
73
+ await el.updateComplete;
74
+ expect(el.validationMessage).to.equal('Please match the format requested.');
75
+ });
76
+
77
+ it('should emit events on blur', async () => {
78
+ const el = await fixture<NileInput>(html`<nile-input></nile-input>`);
79
+ const input = el.shadowRoot!.querySelector('input')!;
80
+ setTimeout(() => input.dispatchEvent(new Event('blur')));
81
+ const event = await oneEvent(el, 'nile-blur');
82
+ expect(event).to.exist;
83
+ });
84
+
85
+ it('should clear input when clear button is clicked', async () => {
86
+ const el = await fixture<NileInput>(html`<nile-input clearable value="test"></nile-input>`);
87
+ const button = el.shadowRoot!.querySelector('.input__clear') as HTMLElement;
88
+ button.click();
89
+ expect(el.value).to.equal('');
90
+ });
91
+
92
+ it('should mark non-printable characters on focus', async () => {
93
+ const el: NileInput = await fixture(html`<nile-input checkNonPrintableChar value="test日本語組版処理の要件"></nile-input>`);
94
+ const input = el.shadowRoot!.querySelector('input')!;
95
+ input.focus();
96
+ await el.updateComplete;
97
+ expect(el.hasPrintableCharacters).to.be.true;
98
+ });
99
+
100
+ it('should remove non-printable characters', async () => {
101
+ const el: NileInput = await fixture(html`<nile-input checkNonPrintableChar value="test日本語組版処理の要件"></nile-input>`);
102
+ const input = el.shadowRoot!.querySelector('input')!;
103
+ input.focus();
104
+ await el.updateComplete;
105
+ expect(el.hasPrintableCharacters).to.be.true;
106
+ const rem : HTMLElement=el.shadowRoot!.querySelector('.input__remove-non-printable')!;
107
+ rem.click()
108
+ await el.updateComplete;
109
+ expect(el.value).to.equal('test');
110
+ });
111
+
112
+ it('should toggle password visibility', async () => {
113
+ const el: NileInput = await fixture(html`<nile-input type="password" password-toggle></nile-input>`);
114
+ const button = el.shadowRoot!.querySelector('.input__password-toggle') as HTMLElement;
115
+ button.click();
116
+ expect(el.passwordVisible).to.be.true;
117
+ });
118
+
119
+ // it('should call the formControlController.submit() on Enter key', async () => {
120
+ // const el: NileInput = await fixture(html`<nile-input></nile-input>`);
121
+ // const input = el.shadowRoot!.querySelector('input')!;
122
+ // const submitStub = Sinon.stub(el['formControlController'], 'submit');
123
+ // const event = new KeyboardEvent('keydown', { key: 'Enter' });
124
+ // input.dispatchEvent(event);
125
+ // await el.updateComplete;
126
+ // expect(submitStub).to.have.been.calledOnce;
127
+ // });
128
+
129
+ // complex regress scenarios
130
+ it('should debounce input events', async () => {
131
+ const el: NileInput = await fixture(html`<nile-input debounce="500"></nile-input>`);
132
+ const input = el.shadowRoot!.querySelector('input')!;
133
+ const changeEvent = new Event('input', { bubbles: true, composed: true });
134
+
135
+ input.value = 'a';
136
+ input.dispatchEvent(changeEvent);
137
+ input.value = 'ab';
138
+ input.dispatchEvent(changeEvent);
139
+
140
+ await aTimeout(100);
141
+ expect(el.value).to.equal('ab');
142
+ input.value = 'abc';
143
+ input.dispatchEvent(changeEvent);
144
+
145
+ await aTimeout(600);
146
+ expect(el.value).to.equal('abc');
147
+ });
148
+
149
+ it('should validate input against a regular expression pattern', async () => {
150
+ const el: NileInput = await fixture(html`<nile-input pattern="[A-Za-z]{3}"></nile-input>`);
151
+ const input = el.shadowRoot!.querySelector('input')!;
152
+ input.value = 'ab';
153
+ input.dispatchEvent(new Event('input'));
154
+ expect(el.validity.valid).to.be.false;
155
+
156
+ input.value = 'abc';
157
+ input.dispatchEvent(new Event('input'));
158
+ expect(el.validity.valid).to.be.true;
159
+ });
160
+ })