@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,83 @@
1
+ import { fixture, expect, oneEvent, aTimeout } from '@open-wc/testing';
2
+ import { html } from 'lit/static-html.js';
3
+ import './nile-link';
4
+ import { NileLink } from './nile-link';
5
+ describe('NileLink', () => {
6
+ it('should render correctly', async () => {
7
+ const el: NileLink = await fixture(html`<nile-link></nile-link>`);
8
+ expect(el.shadowRoot).to.exist;
9
+ expect(el.shadowRoot!.querySelector('.link')).to.exist;
10
+ });
11
+
12
+ it('should handle the disabled attribute', async () => {
13
+ const el: NileLink = await fixture(html`<nile-link disabled></nile-link>`);
14
+ const link = el.shadowRoot!.querySelector('.link')!;
15
+ expect(el.disabled).to.be.true;
16
+ expect(link.getAttribute('aria-disabled')).to.equal('true');
17
+ expect(link.getAttribute('tabindex')).to.equal('-1');
18
+ });
19
+
20
+ it('should emit custom events on focus and blur', async () => {
21
+ const el: NileLink = await fixture(html`<nile-link></nile-link>`);
22
+ setTimeout(() => el.shadowRoot!.querySelector<HTMLElement>('.link')!.focus());
23
+ const focusEvent = await oneEvent(el, 'nile-focus');
24
+ expect(focusEvent).to.exist;
25
+
26
+ setTimeout(() => el.shadowRoot!.querySelector<HTMLElement>('.link')!.blur());
27
+ const blurEvent = await oneEvent(el, 'nile-blur');
28
+ expect(blurEvent).to.exist;
29
+ });
30
+
31
+ it('should prevent click events when disabled', async () => {
32
+ const el: NileLink = await fixture(html`<nile-link disabled></nile-link>`);
33
+ let clicked = false;
34
+ el.addEventListener('click', () => {
35
+ clicked = true;
36
+ });
37
+
38
+ el.shadowRoot!.querySelector<HTMLElement>('.link')!.click();
39
+ await aTimeout(100);
40
+ expect(clicked).to.be.false;
41
+ });
42
+
43
+ it('should handle button property correctly', async () => {
44
+ const el: NileLink = await fixture(html`<nile-link button></nile-link>`);
45
+ const link = el.shadowRoot!.querySelector('.link')!;
46
+ expect(link.classList.contains('link__button')).to.be.true;
47
+ });
48
+
49
+ it('should have all slots rendered successfully', async () => {
50
+ const el: NileLink = await fixture(html`<nile-link><span slot="prefix">Prefix</span><span>Label</span><span slot="suffix">Suffix</span></nile-link>`);
51
+ const prefixSlot = el.shadowRoot!.querySelector<HTMLSlotElement>('slot[name="prefix"]')!;
52
+ const labelSlot = el.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!;
53
+ const suffixSlot = el.shadowRoot!.querySelector<HTMLSlotElement>('slot[name="suffix"]')!;
54
+ expect(prefixSlot.assignedNodes().length).to.equal(1);
55
+ expect(labelSlot.assignedNodes().length).to.equal(1);
56
+ expect(suffixSlot.assignedNodes().length).to.equal(1);
57
+ });
58
+
59
+
60
+ it('should emit nile-init and nile-destroy events on connected and disconnected', async () => {
61
+ const el: NileLink = document.createElement('nile-link');
62
+ let initEvent:any, destroyEvent:any;
63
+ el.addEventListener('nile-init',(e)=>initEvent=e)
64
+ el.addEventListener('nile-init',(e)=>destroyEvent=e)
65
+ document.body.appendChild(el);
66
+ await el.updateComplete
67
+ expect(initEvent).to.exist;
68
+ document.body.removeChild(el);
69
+ await el.updateComplete
70
+ expect(destroyEvent).to.exist;
71
+ });
72
+
73
+ it('should reflect properties correctly', async () => {
74
+ const el: NileLink = await fixture(html`<nile-link></nile-link>`);
75
+ el.disabled = true;
76
+ await el.updateComplete;
77
+ expect(el.hasAttribute('disabled')).to.be.true;
78
+
79
+ el.disabled = false;
80
+ await el.updateComplete;
81
+ expect(el.hasAttribute('disabled')).to.be.false;
82
+ });
83
+ })
@@ -0,0 +1 @@
1
+ export { NileList } from './nile-list';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { css } from 'lit-element';
9
+
10
+ /**
11
+ * List CSS
12
+ */
13
+ export const styles = css`
14
+ :host {
15
+ display: flex;
16
+ flex-direction: column;
17
+ gap: 9px;
18
+ padding: 16px;
19
+ }
20
+ `;
21
+
22
+ export default [styles];
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import {
9
+ LitElement,
10
+ html,
11
+ property,
12
+ CSSResultArray,
13
+ TemplateResult,
14
+ } from 'lit-element';
15
+ import { customElement } from 'lit/decorators.js';
16
+ import { styles } from './nile-list.css';
17
+ import NileElement from '../internal/nile-element';
18
+
19
+ /**
20
+ * Nile list component.
21
+ *
22
+ * @tag nile-list
23
+ *
24
+ */
25
+ @customElement('nile-list')
26
+ export class NileList extends NileElement {
27
+ /**
28
+ * The styles for nile-list
29
+ * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
30
+ */
31
+ public static get styles(): CSSResultArray {
32
+ return [styles];
33
+ }
34
+
35
+ /* #endregion */
36
+
37
+ /* #region Methods */
38
+
39
+ /**
40
+ * Render method
41
+ * @slot This is a slot test
42
+ */
43
+
44
+ handleListItemClick(e: any) {
45
+ const listTextValue = e.target.innerText;
46
+ this.emit('nile-list-click', { value: listTextValue });
47
+ }
48
+
49
+ public render(): TemplateResult {
50
+ return html`
51
+ <slot @nile-list-item-click="${this.handleListItemClick}"> </slot>
52
+ `;
53
+ }
54
+
55
+ /* #endregion */
56
+ }
57
+
58
+ export default NileList;
59
+
60
+ declare global {
61
+ interface HTMLElementTagNameMap {
62
+ 'nile-list': NileList;
63
+ }
64
+ }
@@ -0,0 +1 @@
1
+ export { NileListItem } from './nile-list-item';
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { css } from 'lit-element';
9
+
10
+ /**
11
+ * ListItem CSS
12
+ */
13
+ export const styles = css`
14
+ :host {
15
+ display: flex;
16
+ padding: 12px 16px;
17
+ flex-direction: row;
18
+ align-items: flex-start;
19
+ justify-content: start;
20
+ position: relative;
21
+ height: 100%;
22
+ }
23
+
24
+ :host(:hover) {
25
+ background-color: #f0f0f0; /* Change background color on hover */
26
+ }
27
+
28
+ .preffix__icon {
29
+ display: inline-block;
30
+ margin-right: 12px;
31
+ }
32
+
33
+ .list__item {
34
+ cursor: pointer;
35
+ height: 100%;
36
+ display: block;
37
+ font-size: 16px;
38
+ }
39
+
40
+ .content__wrapper {
41
+ display: flex;
42
+ flex-direction: column;
43
+ gap: 3px;
44
+ height: 100%;
45
+ box-sizing: border-box;
46
+ }
47
+
48
+ .heading {
49
+ display: inline-block;
50
+ font-size: 18px;
51
+ font-weight: 600;
52
+ }
53
+
54
+ .subheading {
55
+ display: inline-block;
56
+ font-size: 12px;
57
+ font-weight: 300;
58
+ }
59
+
60
+ .list-item__suffix {
61
+ display: inline-block;
62
+ position: absolute;
63
+ right: 16px;
64
+ cursor: pointer;
65
+ }
66
+ `;
67
+
68
+ export default [styles];
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import {
9
+ LitElement,
10
+ html,
11
+ property,
12
+ CSSResultArray,
13
+ TemplateResult,
14
+ } from 'lit-element';
15
+ import { customElement } from 'lit/decorators.js';
16
+ import { styles } from './nile-list-item.css';
17
+ import NileElement from '../internal/nile-element';
18
+ import { HasSlotController } from '../internal/slot';
19
+
20
+ /**
21
+ * Nile list-item component.
22
+ *
23
+ * @tag nile-list-item
24
+ *
25
+ */
26
+ @customElement('nile-list-item')
27
+ export class NileListItem extends NileElement {
28
+ /**
29
+ * The styles for nile-list-item
30
+ * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
31
+ */
32
+
33
+ private readonly hasSlotController = new HasSlotController(
34
+ this,
35
+ 'preffix',
36
+ 'heading',
37
+ 'subheading'
38
+ );
39
+
40
+ public static get styles(): CSSResultArray {
41
+ return [styles];
42
+ }
43
+ @property({ type: String, attribute: 'icon-name' }) iconName = '';
44
+ @property({ type: Number, attribute: 'icon-size' }) iconSize = 14;
45
+
46
+ @property({ type: String, attribute: 'heading' }) heading = '';
47
+ @property({ type: String, attribute: 'sub-heading' }) subHeading = '';
48
+
49
+ /* #endregion */
50
+
51
+ /* #region Methods */
52
+
53
+ /**
54
+ * Render method
55
+ * @slot This is a slot test
56
+ */
57
+ handleClick(e: any) {
58
+ this.emit('nile-list-item-click', {
59
+ heading: this.heading,
60
+ subheading: this.subHeading,
61
+ });
62
+ }
63
+
64
+ public render(): TemplateResult {
65
+ return html`
66
+ ${this.iconName || this.hasSlotController.test('preffix')
67
+ ? html` <slot name="preffix" part="preffix" class="preffix__icon">
68
+ <nile-icon
69
+ name="${this.iconName}"
70
+ size="${this.iconSize}"
71
+ ></nile-icon>
72
+ </slot>`
73
+ : ``}
74
+
75
+ <div class="content__wrapper" part="content__wrapper">
76
+ ${this.heading || this.hasSlotController.test('heading')
77
+ ? html` <slot class="heading" part="heading" name="heading"
78
+ >${this.heading}</slot
79
+ >`
80
+ : ``}
81
+ ${this.subHeading || this.hasSlotController.test('subheading')
82
+ ? html` <slot class="subheading" part="subheading" name="subheading"
83
+ >${this.subHeading}</slot
84
+ >`
85
+ : `
86
+ `}
87
+ </div>
88
+
89
+ <slot @click="${this.handleClick}" class="list__item" part="base"> </slot>
90
+ <slot name="suffix" part="suffix" class="list-item__suffix">
91
+ </slot>
92
+ `;
93
+ }
94
+
95
+ /* #endregion */
96
+ }
97
+
98
+ export default NileListItem;
99
+
100
+ declare global {
101
+ interface HTMLElementTagNameMap {
102
+ 'nile-list-item': NileListItem;
103
+ }
104
+ }
@@ -0,0 +1,45 @@
1
+ import { fixture, expect } from '@open-wc/testing';
2
+ import { html } from 'lit/static-html.js';
3
+ import './nile-loader';
4
+ import { NileLoader } from './nile-loader';
5
+
6
+ describe('NileLoader', () => {
7
+ it('should default to size "lg" if no size is provided', async () => {
8
+ const el: NileLoader = await fixture(html`<nile-loader></nile-loader>`);
9
+ expect(el.size).to.equal('lg');
10
+ });
11
+
12
+ it('should apply size classes correctly', async () => {
13
+ const sizes:Array<'sm'|'md'|'lg'>=['sm','md','lg']
14
+ await sizes.forEach(async size=>{
15
+ const el: NileLoader = await fixture(html`<nile-loader size="${size}"></nile-loader>`);
16
+ const loaderContainer = el.shadowRoot!.querySelector('.loader__container')!;
17
+ expect(loaderContainer.classList.contains(`loader__container--${size}`)).to.be.true;
18
+ })
19
+ });
20
+
21
+ it('should have a default variant of "v1"', async () => {
22
+ const el: NileLoader = await fixture(html`<nile-loader></nile-loader>`);
23
+ const variantV1 = el.shadowRoot!.querySelector('.nile-loader__v1');
24
+ expect(variantV1).to.exist;
25
+ });
26
+
27
+ it('should render the correct variant', async () => {
28
+ const el: NileLoader = await fixture(html`<nile-loader variant="v2"></nile-loader>`);
29
+ const variantV2 = el.shadowRoot!.querySelector('.nile-loader__v2');
30
+ expect(variantV2).to.exist;
31
+ });
32
+
33
+ it('should display label if provided', async () => {
34
+ const el: NileLoader = await fixture(html`<nile-loader label="Loading..."></nile-loader>`);
35
+ const label = el.shadowRoot!.querySelector('.loader__label');
36
+ expect(label).to.exist;
37
+ expect(label?.textContent).to.equal('Loading...');
38
+ });
39
+
40
+ it('should handle margin property', async () => {
41
+ const el: NileLoader = await fixture(html`<nile-loader margin="10px"></nile-loader>`);
42
+ const loaderDiv = el.shadowRoot!.querySelector('.nile-loader__v1');
43
+ expect(loaderDiv?.getAttribute('style')).to.contain('margin: 10px');
44
+ });
45
+ })
@@ -17,14 +17,28 @@ export const styles = css`
17
17
  background: hsl(0, 0%, 100%);
18
18
  border: solid 1px hsl(240 5.9% 90%);
19
19
  border-radius: 6px;
20
- overflow: auto;
21
- overscroll-behavior: none;
22
- box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08), 0px 8px 8px -4px rgba(16, 24, 40, 0.03);
20
+ overflow: hidden;
21
+ height: 100%;
22
+ box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08),
23
+ 0px 8px 8px -4px rgba(16, 24, 40, 0.03);
24
+ /* overscroll-behavior: none; */
25
+ /* -ms-overflow-style: none; */
26
+ /* scrollbar-width: none; */
23
27
  }
24
-
28
+
25
29
  .search__wrapper {
26
- box-sizing:border-box;
30
+ box-sizing: border-box;
27
31
  padding: 12px 6px;
32
+ position: sticky;
33
+ z-index: 999;
34
+ top: 0px;
35
+ background: hsl(0, 0%, 100%);
36
+ height: 64px;
37
+ }
38
+
39
+ .menu__items-wrapper {
40
+ overflow: auto;
41
+ max-height: calc(100vh - 64px);
28
42
  }
29
43
 
30
44
  ::slotted(nile-divider) {
@@ -26,6 +26,8 @@ export class NileMenu extends NileElement {
26
26
  @state() searchWidth: number = 0;
27
27
 
28
28
  @property({ type: Boolean, reflect: true }) searchEnabled = false;
29
+ @property({ type: Boolean, reflect: true }) customSearch = false;
30
+
29
31
  @property({ type: Boolean }) showNoResults: boolean = false;
30
32
 
31
33
  @property({ type: String }) noResultsMessage: string = 'No results found';
@@ -166,6 +168,12 @@ export class NileMenu extends NileElement {
166
168
 
167
169
  private handleSearchChange(e: any) {
168
170
  let items = this.getAllItems();
171
+ let searchValue = e.target.value;
172
+ if (this.customSearch) {
173
+ this.emit('nile-search-value', { value: searchValue });
174
+ return;
175
+ }
176
+
169
177
  let counter = 0;
170
178
  items.map(curr_item => {
171
179
  this.searchWidth = Math.max(this.searchWidth, curr_item.offsetWidth);
@@ -183,23 +191,24 @@ export class NileMenu extends NileElement {
183
191
 
184
192
  render() {
185
193
  return html`
186
- <div>
187
- ${this.searchEnabled
188
- ? html`<div class="search__wrapper" part="search__wrapper">
189
- <nile-input
190
- size="medium"
191
- style=${this.searchWidth
192
- ? `width: ${this.searchWidth}px;`
193
- : 'width: 100%;'}
194
- .value=${this.searchValue}
195
- placeholder="Search..."
196
- @nile-input=${this.handleSearchChange}
197
- part="menu__input"
198
- >
199
- <nile-icon name="search" slot="suffix"> </nile-icon>
200
- </nile-input>
201
- </div>`
202
- : html``}
194
+ ${this.searchEnabled
195
+ ? html`<div class="search__wrapper" part="search__wrapper" >
196
+ <nile-input
197
+ size="medium"
198
+ style=${this.searchWidth
199
+ ? `width: ${this.searchWidth}px;`
200
+ : 'width: 100%;'}
201
+ .value=${this.searchValue}
202
+ placeholder="Search..."
203
+ @nile-input=${this.handleSearchChange}
204
+ part="menu__input"
205
+ clearable
206
+ >
207
+ <nile-icon name="search" slot="suffix"> </nile-icon>
208
+ </nile-input>
209
+ </div>`
210
+ : html``}
211
+ <div class="menu__items-wrapper">
203
212
  ${this.showNoResults
204
213
  ? html` <nile-menu-item>${this.noResultsMessage}</nile-menu-item> `
205
214
  : ''}
@@ -211,6 +220,7 @@ export class NileMenu extends NileElement {
211
220
  }}
212
221
  ></slot>
213
222
  <slot
223
+ class="menu__item-wrapper"
214
224
  @slotchange=${this.handleSlotChange}
215
225
  @click=${this.handleClick}
216
226
  @keydown=${this.handleKeyDown}
@@ -17,13 +17,12 @@ export const styles = css`
17
17
 
18
18
  .popover__title {
19
19
  display: block;
20
- color: var(--Dark-Normal, var(--Color-Text-Default, #000));
21
- font-feature-settings: 'clig' off, 'liga' off;
20
+ color: #000;
22
21
  font-family: var(--nile-font-family-serif);
23
22
  font-size: var(--nile-type-scale-4);
24
23
  font-style: normal;
25
24
  font-weight: 500;
26
- line-height: var(--nile-type-scale-4); /* 100% */
25
+ line-height: var(--nile-type-scale-4);
27
26
  letter-spacing: 0.2px;
28
27
  }
29
28
 
@@ -35,7 +34,10 @@ export const styles = css`
35
34
  gap: var(--nile-type-scale-4);
36
35
  padding: var(--nile-type-scale-4);
37
36
  border-radius: var(--nile-radius-base-standard);
38
- background-color:var(--nile-colors-white-base);
37
+ background-color: var(--nile-colors-white-base);
38
+ border: solid 1px hsl(240 5.9% 90%);
39
+ box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08),
40
+ 0px 8px 8px -4px rgba(16, 24, 40, 0.03);
39
41
  }
40
42
 
41
43
  .popover__action {
@@ -0,0 +1,86 @@
1
+ import { fixture, html, expect, oneEvent } from '@open-wc/testing';
2
+ import './nile-popover';
3
+ import { NilePopover } from './nile-popover';
4
+ describe('NilePopover', () => {
5
+ it('renders correctly', async () => {
6
+ const el = await fixture(html`
7
+ <nile-popover title="Test Popover">
8
+ <button slot="anchor">Click me</button>
9
+ <div>Popover Content</div>
10
+ </nile-popover>
11
+ `);
12
+ expect(el).shadowDom.to.equalSnapshot();
13
+ });
14
+
15
+ it('has default properties', async () => {
16
+ const el = await fixture<NilePopover>(html`<nile-popover></nile-popover>`);
17
+ expect(el.placement).to.equal('top');
18
+ expect(el.distance).to.equal(18);
19
+ expect(el.title).to.equal('');
20
+ expect(el.arrowPlacement).to.equal('anchor');
21
+ expect(el.hoist).to.be.false;
22
+ expect(el.flip).to.be.false;
23
+ });
24
+
25
+ it('displays title when popover is shown', async () => {
26
+ const el = await fixture<NilePopover>(html`
27
+ <nile-popover title="Test Popover">
28
+ <button slot="anchor">Click me</button>
29
+ <div>Popover Content</div>
30
+ </nile-popover>
31
+ `);
32
+
33
+ const button = el.querySelector('button');
34
+ button!.click();
35
+ await el.updateComplete;
36
+ const popoverBox = el.shadowRoot!.querySelector('.popover__box');
37
+ expect(popoverBox).to.exist;
38
+
39
+ const titleSlot = el.shadowRoot!.querySelector('slot[name="title"]');
40
+ expect(titleSlot).to.exist;
41
+ expect(titleSlot!.textContent).to.equal('Test Popover');
42
+ });
43
+
44
+ it('toggles isShow state on anchor click', async () => {
45
+ const el = await fixture<NilePopover>(html`
46
+ <nile-popover title="Test Popover">
47
+ <button slot="anchor">Click me</button>
48
+ <div>Popover Content</div>
49
+ </nile-popover>
50
+ `);
51
+
52
+ const button = el.querySelector('button');
53
+ button!.click();
54
+ await el.updateComplete;
55
+ const popOverBox = el.shadowRoot!.querySelector('div[part="popover"]');
56
+ expect(popOverBox).to.exist;
57
+
58
+ button!.click();
59
+ await el.updateComplete;
60
+
61
+ const afterPopOverBox = el.shadowRoot!.querySelector('div[part="popover"]');
62
+ expect(afterPopOverBox).to.null;
63
+ });
64
+
65
+ it('hides popover on document click', async () => {
66
+ const el = await fixture<NilePopover>(html`
67
+ <nile-popover title="Test Popover">
68
+ <button slot="anchor">Click me</button>
69
+ <div>Popover Content</div>
70
+ </nile-popover>
71
+ `);
72
+
73
+ const button = el.querySelector('button');
74
+ button!.click();
75
+ await el.updateComplete;
76
+
77
+ let popoverBox = el.shadowRoot!.querySelector('.popover__box');
78
+ expect(popoverBox).to.exist;
79
+
80
+ document.body.click();
81
+ await el.updateComplete;
82
+
83
+ popoverBox = el.shadowRoot!.querySelector('.popover__box');
84
+ expect(popoverBox).to.not.exist;
85
+ });
86
+ });
@@ -54,6 +54,8 @@ export class NilePopover extends LitElement {
54
54
  /** The distance in pixels from which to offset the popover away from its target. */
55
55
  @property({ type: Number }) distance = 18;
56
56
 
57
+ @property({ type: Boolean, attribute: 'arrow' }) arrow = true;
58
+
57
59
  /** Gives the title to the popover */
58
60
  @property({ type: String }) title = '';
59
61
 
@@ -65,7 +67,6 @@ export class NilePopover extends LitElement {
65
67
  | 'center'
66
68
  | 'anchor' = 'anchor';
67
69
 
68
-
69
70
  /**
70
71
  * Enable this option to prevent the panel from being clipped when the component is placed inside a container with
71
72
  * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.
@@ -74,7 +75,6 @@ export class NilePopover extends LitElement {
74
75
 
75
76
  @property({ type: Boolean }) flip = false;
76
77
 
77
-
78
78
  /* #endregion */
79
79
 
80
80
  /* #region Methods */
@@ -97,10 +97,10 @@ export class NilePopover extends LitElement {
97
97
  private handleClick = () => {
98
98
  this.isShow = !this.isShow;
99
99
  const allPopovers = document.querySelectorAll('nile-popover');
100
-
100
+
101
101
  allPopovers.forEach(popover => {
102
102
  if (popover !== this) {
103
- popover.isShow=false;
103
+ popover.isShow = false;
104
104
  }
105
105
  });
106
106
  };
@@ -115,7 +115,7 @@ export class NilePopover extends LitElement {
115
115
  return html`
116
116
  <nile-popup
117
117
  active
118
- ?arrow="${this.title ? this.isShow : false}"
118
+ .arrow="${this.arrow && this.isShow}"
119
119
  distance="${this.distance}"
120
120
  placement="${this.placement}"
121
121
  @click=${(e: Event) => e.stopPropagation()}
@@ -130,11 +130,8 @@ export class NilePopover extends LitElement {
130
130
  aria-describedby="tooltip"
131
131
  @click=${this.handleClick}
132
132
  ></slot>
133
- ${this.title && this.isShow
134
- ? html` <div
135
- part="popover"
136
- class="popover__box"
137
- >
133
+ ${this.isShow
134
+ ? html` <div part="popover" class="popover__box">
138
135
  <slot name="title" class="popover__title">${this.title}</slot>
139
136
  <slot part="base"></slot>
140
137
  <slot name="action" class="popover__action"> </slot>