@aquera/nile-elements 1.5.2 → 1.5.4

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 (619) hide show
  1. package/README.md +9 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +240 -196
  5. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
  6. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  7. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
  8. package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
  9. package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +1 -1
  10. package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
  11. package/dist/nile-badge/index.cjs.js +1 -1
  12. package/dist/nile-badge/index.esm.js +1 -1
  13. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  14. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  15. package/dist/nile-badge/nile-badge.esm.js +1 -1
  16. package/dist/nile-button/index.cjs.js +1 -1
  17. package/dist/nile-button/index.esm.js +1 -1
  18. package/dist/nile-button/nile-button.cjs.js +1 -1
  19. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  20. package/dist/nile-button/nile-button.esm.js +1 -1
  21. package/dist/nile-carousel/index.cjs.js +1 -1
  22. package/dist/nile-carousel/index.esm.js +1 -1
  23. package/dist/nile-carousel/nile-carousel.cjs.js +1 -1
  24. package/dist/nile-carousel/nile-carousel.cjs.js.map +1 -1
  25. package/dist/nile-carousel/nile-carousel.esm.js +11 -11
  26. package/dist/nile-dialog/index.cjs.js +1 -1
  27. package/dist/nile-dialog/index.esm.js +1 -1
  28. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  29. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  30. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  31. package/dist/nile-drawer/index.cjs.js +1 -1
  32. package/dist/nile-drawer/index.esm.js +1 -1
  33. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  34. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  35. package/dist/nile-drawer/nile-drawer.esm.js +1 -1
  36. package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
  37. package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
  38. package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
  39. package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
  40. package/dist/nile-file-preview/nile-file-preview.css.esm.js +2 -2
  41. package/dist/nile-file-preview/nile-file-preview.esm.js +1 -1
  42. package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
  43. package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
  44. package/dist/nile-file-preview/nile-file-preview.template.esm.js +55 -25
  45. package/dist/nile-file-preview/utils/index.cjs.js +1 -1
  46. package/dist/nile-file-preview/utils/index.esm.js +1 -1
  47. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
  48. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
  49. package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
  50. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  51. package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
  52. package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
  53. package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
  54. package/dist/nile-file-upload/nile-file-upload.css.esm.js +15 -5
  55. package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
  56. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +2 -2
  57. package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
  58. package/dist/nile-file-upload/nile-file-upload.template.esm.js +36 -32
  59. package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
  60. package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
  61. package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
  62. package/dist/nile-file-upload/types/index.cjs.js +1 -1
  63. package/dist/nile-file-upload/types/index.esm.js +1 -1
  64. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +1 -1
  65. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -1
  66. package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -1
  67. package/dist/nile-file-upload/utils/file-validation.util.cjs.js +4 -2
  68. package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
  69. package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
  70. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js +1 -1
  71. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -1
  72. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.esm.js +3 -3
  73. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +1 -1
  74. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -1
  75. package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -1
  76. package/dist/nile-grid/nile-grid.cjs.js +1 -1
  77. package/dist/nile-grid/nile-grid.cjs.js.map +1 -1
  78. package/dist/nile-grid/nile-grid.esm.js +2 -2
  79. package/dist/nile-grid/nile-grid.layout.cjs.js +1 -1
  80. package/dist/nile-grid/nile-grid.layout.esm.js +1 -1
  81. package/dist/nile-grid/nile-grid.resize.cjs.js +1 -1
  82. package/dist/nile-grid/nile-grid.resize.esm.js +1 -1
  83. package/dist/nile-grid/nile-grid.utils.cjs.js +1 -1
  84. package/dist/nile-grid/nile-grid.utils.esm.js +1 -1
  85. package/dist/nile-grid/nile-grid.width.cjs.js +1 -1
  86. package/dist/nile-grid/nile-grid.width.cjs.js.map +1 -1
  87. package/dist/nile-grid/nile-grid.width.esm.js +1 -1
  88. package/dist/nile-icon/icons/svg/delete_history.cjs.js +2 -0
  89. package/dist/nile-icon/icons/svg/delete_history.cjs.js.map +1 -0
  90. package/dist/nile-icon/icons/svg/delete_history.esm.js +1 -0
  91. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  92. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  93. package/dist/nile-icon/index.cjs.js +1 -1
  94. package/dist/nile-icon/index.cjs.js.map +1 -1
  95. package/dist/nile-icon/index.esm.js +1 -1
  96. package/dist/nile-icon-button/index.cjs.js +1 -1
  97. package/dist/nile-icon-button/index.esm.js +1 -1
  98. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  99. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  100. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  101. package/dist/nile-input/index.cjs.js +1 -1
  102. package/dist/nile-input/index.esm.js +1 -1
  103. package/dist/nile-input/nile-input.cjs.js +1 -1
  104. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  105. package/dist/nile-input/nile-input.esm.js +2 -2
  106. package/dist/nile-menu-item/index.cjs.js +1 -1
  107. package/dist/nile-menu-item/index.esm.js +1 -1
  108. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  109. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  110. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  111. package/dist/nile-option/index.cjs.js +1 -1
  112. package/dist/nile-option/index.esm.js +1 -1
  113. package/dist/nile-option/nile-option.cjs.js +1 -1
  114. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  115. package/dist/nile-option/nile-option.esm.js +1 -1
  116. package/dist/nile-popover/index.cjs.js +1 -1
  117. package/dist/nile-popover/index.esm.js +1 -1
  118. package/dist/nile-popover/nile-popover.cjs.js +4 -4
  119. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  120. package/dist/nile-popover/nile-popover.esm.js +11 -6
  121. package/dist/nile-select/index.cjs.js +1 -1
  122. package/dist/nile-select/index.esm.js +1 -1
  123. package/dist/nile-select/nile-select.cjs.js +1 -1
  124. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  125. package/dist/nile-select/nile-select.esm.js +1 -1
  126. package/dist/nile-side-bar-action-menu-item/index.cjs.js +1 -1
  127. package/dist/nile-side-bar-action-menu-item/index.esm.js +1 -1
  128. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js +1 -1
  129. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js.map +1 -1
  130. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.esm.js +1 -1
  131. package/dist/nile-tab/index.cjs.js +1 -1
  132. package/dist/nile-tab/index.esm.js +1 -1
  133. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  134. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  135. package/dist/nile-tab/nile-tab.esm.js +1 -1
  136. package/dist/nile-tab-group/index.cjs.js +1 -1
  137. package/dist/nile-tab-group/index.esm.js +1 -1
  138. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  139. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  140. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  141. package/dist/nile-tag/index.cjs.js +1 -1
  142. package/dist/nile-tag/index.esm.js +1 -1
  143. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  144. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  145. package/dist/nile-tag/nile-tag.esm.js +1 -1
  146. package/dist/nile-toast/index.cjs.js +1 -1
  147. package/dist/nile-toast/index.esm.js +1 -1
  148. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  149. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  150. package/dist/nile-toast/nile-toast.esm.js +1 -1
  151. package/dist/nile-tree/index.cjs.js +1 -1
  152. package/dist/nile-tree/index.esm.js +1 -1
  153. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  154. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  155. package/dist/nile-tree/nile-tree.esm.js +1 -1
  156. package/dist/nile-tree-item/index.cjs.js +1 -1
  157. package/dist/nile-tree-item/index.esm.js +1 -1
  158. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  159. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  160. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  161. package/dist/nile-virtual-select/index.cjs.js +1 -1
  162. package/dist/nile-virtual-select/index.esm.js +1 -1
  163. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -2
  164. package/dist/nile-virtual-select/nile-virtual-select.esm.js +1 -1
  165. package/dist/src/nile-accordion/nile-accordian.test.js +101 -99
  166. package/dist/src/nile-accordion/nile-accordian.test.js.map +1 -1
  167. package/dist/src/nile-auto-complete/nile-auto-complete.css.js +1 -1
  168. package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
  169. package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
  170. package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
  171. package/dist/src/nile-auto-complete/nile-auto-complete.test.js +104 -112
  172. package/dist/src/nile-auto-complete/nile-auto-complete.test.js.map +1 -1
  173. package/dist/src/nile-avatar/nile-avatar.test.d.ts +0 -1
  174. package/dist/src/nile-avatar/nile-avatar.test.js +103 -87
  175. package/dist/src/nile-avatar/nile-avatar.test.js.map +1 -1
  176. package/dist/src/nile-badge/nile-badge.test.js +554 -35
  177. package/dist/src/nile-badge/nile-badge.test.js.map +1 -1
  178. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.d.ts +2 -0
  179. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js +106 -0
  180. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js.map +1 -0
  181. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.d.ts +1 -0
  182. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js +108 -0
  183. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.test.js.map +1 -0
  184. package/dist/src/nile-button/nile-button.test.js +499 -39
  185. package/dist/src/nile-button/nile-button.test.js.map +1 -1
  186. package/dist/src/nile-button-filter/nile-button-filter.test.d.ts +1 -0
  187. package/dist/src/nile-button-filter/nile-button-filter.test.js +108 -0
  188. package/dist/src/nile-button-filter/nile-button-filter.test.js.map +1 -0
  189. package/dist/src/nile-button-toggle/nile-button-toggle.test.d.ts +1 -0
  190. package/dist/src/nile-button-toggle/nile-button-toggle.test.js +108 -0
  191. package/dist/src/nile-button-toggle/nile-button-toggle.test.js.map +1 -0
  192. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.d.ts +1 -1
  193. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js +105 -104
  194. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.test.js.map +1 -1
  195. package/dist/src/nile-calendar/nile-calendar.test.d.ts +0 -6
  196. package/dist/src/nile-calendar/nile-calendar.test.js +103 -318
  197. package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
  198. package/dist/src/nile-card/nile-card.test.js +102 -66
  199. package/dist/src/nile-card/nile-card.test.js.map +1 -1
  200. package/dist/src/nile-checkbox/nile-checkbox.test.js +547 -108
  201. package/dist/src/nile-checkbox/nile-checkbox.test.js.map +1 -1
  202. package/dist/src/nile-chip/nile-chip.test.d.ts +0 -2
  203. package/dist/src/nile-chip/nile-chip.test.js +101 -102
  204. package/dist/src/nile-chip/nile-chip.test.js.map +1 -1
  205. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.d.ts +1 -0
  206. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js +108 -0
  207. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.test.js.map +1 -0
  208. package/dist/src/nile-date-picker/nile-date-picker.test.d.ts +1 -0
  209. package/dist/src/nile-date-picker/nile-date-picker.test.js +108 -0
  210. package/dist/src/nile-date-picker/nile-date-picker.test.js.map +1 -0
  211. package/dist/src/nile-dialog/nile-dialog.test.d.ts +0 -1
  212. package/dist/src/nile-dialog/nile-dialog.test.js +104 -126
  213. package/dist/src/nile-dialog/nile-dialog.test.js.map +1 -1
  214. package/dist/src/nile-divider/nile-divider.test.d.ts +1 -0
  215. package/dist/src/nile-divider/nile-divider.test.js +560 -0
  216. package/dist/src/nile-divider/nile-divider.test.js.map +1 -0
  217. package/dist/src/nile-drawer/nile-drawer.test.js +106 -86
  218. package/dist/src/nile-drawer/nile-drawer.test.js.map +1 -1
  219. package/dist/src/nile-dropdown/nile-dropdown.test.js +104 -148
  220. package/dist/src/nile-dropdown/nile-dropdown.test.js.map +1 -1
  221. package/dist/src/nile-empty-state/nile-empty-state.test.js +107 -59
  222. package/dist/src/nile-empty-state/nile-empty-state.test.js.map +1 -1
  223. package/dist/src/nile-error-message/nile-error-message.test.js +105 -55
  224. package/dist/src/nile-error-message/nile-error-message.test.js.map +1 -1
  225. package/dist/src/nile-error-notification/nile-error-notification.test.d.ts +1 -0
  226. package/dist/src/nile-error-notification/nile-error-notification.test.js +108 -0
  227. package/dist/src/nile-error-notification/nile-error-notification.test.js.map +1 -0
  228. package/dist/src/nile-file-preview/nile-file-preview.css.js +2 -2
  229. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
  230. package/dist/src/nile-file-preview/nile-file-preview.d.ts +1 -4
  231. package/dist/src/nile-file-preview/nile-file-preview.js +21 -47
  232. package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
  233. package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +6 -6
  234. package/dist/src/nile-file-preview/nile-file-preview.template.js +53 -23
  235. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
  236. package/dist/src/nile-file-preview/nile-file-preview.test.d.ts +0 -6
  237. package/dist/src/nile-file-preview/nile-file-preview.test.js +106 -28
  238. package/dist/src/nile-file-preview/nile-file-preview.test.js.map +1 -1
  239. package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +3 -2
  240. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +32 -7
  241. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
  242. package/dist/src/nile-file-upload/nile-file-upload.css.js +15 -5
  243. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
  244. package/dist/src/nile-file-upload/nile-file-upload.d.ts +4 -1
  245. package/dist/src/nile-file-upload/nile-file-upload.js +13 -1
  246. package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
  247. package/dist/src/nile-file-upload/nile-file-upload.template.js +19 -15
  248. package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
  249. package/dist/src/nile-file-upload/nile-file-upload.test.d.ts +0 -6
  250. package/dist/src/nile-file-upload/nile-file-upload.test.js +106 -28
  251. package/dist/src/nile-file-upload/nile-file-upload.test.js.map +1 -1
  252. package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +17 -3
  253. package/dist/src/nile-file-upload/types/file-upload.enums.js +17 -1
  254. package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
  255. package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +2 -0
  256. package/dist/src/nile-file-upload/utils/drag-drop.util.js +14 -8
  257. package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -1
  258. package/dist/src/nile-file-upload/utils/file-validation.util.js +89 -10
  259. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
  260. package/dist/src/nile-filter-chip/nile-filter-chip.test.js +102 -77
  261. package/dist/src/nile-filter-chip/nile-filter-chip.test.js.map +1 -1
  262. package/dist/src/nile-form-error-message/nile-form-error-message.test.d.ts +1 -0
  263. package/dist/src/nile-form-error-message/nile-form-error-message.test.js +108 -0
  264. package/dist/src/nile-form-error-message/nile-form-error-message.test.js.map +1 -0
  265. package/dist/src/nile-form-group/nile-form-group.test.js +104 -51
  266. package/dist/src/nile-form-group/nile-form-group.test.js.map +1 -1
  267. package/dist/src/nile-form-help-text/nile-form-help-text.test.js +104 -84
  268. package/dist/src/nile-form-help-text/nile-form-help-text.test.js.map +1 -1
  269. package/dist/src/nile-format-date/nile-format-date.test.d.ts +1 -0
  270. package/dist/src/nile-format-date/nile-format-date.test.js +108 -0
  271. package/dist/src/nile-format-date/nile-format-date.test.js.map +1 -0
  272. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js +6 -5
  273. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.js.map +1 -1
  274. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.d.ts +14 -0
  275. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js +24 -0
  276. package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -1
  277. package/dist/src/nile-grid/nile-grid.d.ts +1 -0
  278. package/dist/src/nile-grid/nile-grid.js +5 -1
  279. package/dist/src/nile-grid/nile-grid.js.map +1 -1
  280. package/dist/src/nile-grid/nile-grid.utils.d.ts +6 -0
  281. package/dist/src/nile-grid/nile-grid.utils.js +13 -0
  282. package/dist/src/nile-grid/nile-grid.utils.js.map +1 -1
  283. package/dist/src/nile-heading/nile-heading.test.d.ts +1 -0
  284. package/dist/src/nile-heading/nile-heading.test.js +108 -0
  285. package/dist/src/nile-heading/nile-heading.test.js.map +1 -0
  286. package/dist/src/nile-hero/nile-hero.test.js +101 -38
  287. package/dist/src/nile-hero/nile-hero.test.js.map +1 -1
  288. package/dist/src/nile-icon/icons/svg/delete_history.d.ts +5 -0
  289. package/dist/src/nile-icon/icons/svg/delete_history.js +5 -0
  290. package/dist/src/nile-icon/icons/svg/delete_history.js.map +1 -0
  291. package/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
  292. package/dist/src/nile-icon/icons/svg/index.js +1 -0
  293. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  294. package/dist/src/nile-icon/nile-icon.test.js +103 -40
  295. package/dist/src/nile-icon/nile-icon.test.js.map +1 -1
  296. package/dist/src/nile-icon-button/nile-icon-button.test.d.ts +1 -0
  297. package/dist/src/nile-icon-button/nile-icon-button.test.js +568 -0
  298. package/dist/src/nile-icon-button/nile-icon-button.test.js.map +1 -0
  299. package/dist/src/nile-inline-edit/nile-inline-edit.test.d.ts +1 -0
  300. package/dist/src/nile-inline-edit/nile-inline-edit.test.js +108 -0
  301. package/dist/src/nile-inline-edit/nile-inline-edit.test.js.map +1 -0
  302. package/dist/src/nile-input/nile-input.js +1 -1
  303. package/dist/src/nile-input/nile-input.js.map +1 -1
  304. package/dist/src/nile-input/nile-input.test.js +109 -139
  305. package/dist/src/nile-input/nile-input.test.js.map +1 -1
  306. package/dist/src/nile-link/nile-link.test.js +103 -67
  307. package/dist/src/nile-link/nile-link.test.js.map +1 -1
  308. package/dist/src/nile-list/nile-list.test.d.ts +1 -0
  309. package/dist/src/nile-list/nile-list.test.js +108 -0
  310. package/dist/src/nile-list/nile-list.test.js.map +1 -0
  311. package/dist/src/nile-list-item/nile-list-item.test.d.ts +1 -0
  312. package/dist/src/nile-list-item/nile-list-item.test.js +108 -0
  313. package/dist/src/nile-list-item/nile-list-item.test.js.map +1 -0
  314. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.d.ts +2 -0
  315. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js +109 -0
  316. package/dist/src/nile-lite-tooltip/nile-lite-tooltip.test.js.map +1 -0
  317. package/dist/src/nile-loader/nile-loader.test.js +107 -40
  318. package/dist/src/nile-loader/nile-loader.test.js.map +1 -1
  319. package/dist/src/nile-menu/nile-menu.test.d.ts +1 -0
  320. package/dist/src/nile-menu/nile-menu.test.js +113 -0
  321. package/dist/src/nile-menu/nile-menu.test.js.map +1 -0
  322. package/dist/src/nile-menu-item/nile-menu-item.test.d.ts +1 -0
  323. package/dist/src/nile-menu-item/nile-menu-item.test.js +113 -0
  324. package/dist/src/nile-menu-item/nile-menu-item.test.js.map +1 -0
  325. package/dist/src/nile-option/nile-option.test.d.ts +1 -0
  326. package/dist/src/nile-option/nile-option.test.js +108 -0
  327. package/dist/src/nile-option/nile-option.test.js.map +1 -0
  328. package/dist/src/nile-option-group/nile-option-group.test.d.ts +1 -0
  329. package/dist/src/nile-option-group/nile-option-group.test.js +108 -0
  330. package/dist/src/nile-option-group/nile-option-group.test.js.map +1 -0
  331. package/dist/src/nile-page-header/nile-page-header.test.d.ts +1 -0
  332. package/dist/src/nile-page-header/nile-page-header.test.js +108 -0
  333. package/dist/src/nile-page-header/nile-page-header.test.js.map +1 -0
  334. package/dist/src/nile-pagination/nile-pagination.test.d.ts +1 -0
  335. package/dist/src/nile-pagination/nile-pagination.test.js +108 -0
  336. package/dist/src/nile-pagination/nile-pagination.test.js.map +1 -0
  337. package/dist/src/nile-popover/nile-popover.test.js +103 -68
  338. package/dist/src/nile-popover/nile-popover.test.js.map +1 -1
  339. package/dist/src/nile-popup/nile-popup.test.js +104 -65
  340. package/dist/src/nile-popup/nile-popup.test.js.map +1 -1
  341. package/dist/src/nile-progress-bar/nile-progress-bar.test.js +104 -44
  342. package/dist/src/nile-progress-bar/nile-progress-bar.test.js.map +1 -1
  343. package/dist/src/nile-radio/nile-radio.test.js +103 -66
  344. package/dist/src/nile-radio/nile-radio.test.js.map +1 -1
  345. package/dist/src/nile-radio-group/nile-radio-group.test.d.ts +0 -1
  346. package/dist/src/nile-radio-group/nile-radio-group.test.js +105 -171
  347. package/dist/src/nile-radio-group/nile-radio-group.test.js.map +1 -1
  348. package/dist/src/nile-section-message/nile-section-message.test.d.ts +1 -0
  349. package/dist/src/nile-section-message/nile-section-message.test.js +108 -0
  350. package/dist/src/nile-section-message/nile-section-message.test.js.map +1 -0
  351. package/dist/src/nile-select/nile-select.test.d.ts +0 -5
  352. package/dist/src/nile-select/nile-select.test.js +105 -244
  353. package/dist/src/nile-select/nile-select.test.js.map +1 -1
  354. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.d.ts +1 -0
  355. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js +108 -0
  356. package/dist/src/nile-skeleton-loader/nile-skeleton-loader.test.js.map +1 -0
  357. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js +104 -50
  358. package/dist/src/nile-slide-toggle/nile-slide-toggle.test.js.map +1 -1
  359. package/dist/src/nile-slider/nile-slider.test.d.ts +1 -0
  360. package/dist/src/nile-slider/nile-slider.test.js +108 -0
  361. package/dist/src/nile-slider/nile-slider.test.js.map +1 -0
  362. package/dist/src/nile-spinner/nile-spinner.test.d.ts +1 -0
  363. package/dist/src/nile-spinner/nile-spinner.test.js +569 -0
  364. package/dist/src/nile-spinner/nile-spinner.test.js.map +1 -0
  365. package/dist/src/nile-split-panel/nile-split-panel.test.d.ts +1 -0
  366. package/dist/src/nile-split-panel/nile-split-panel.test.js +108 -0
  367. package/dist/src/nile-split-panel/nile-split-panel.test.js.map +1 -0
  368. package/dist/src/nile-stepper/nile-stepper.test.d.ts +2 -0
  369. package/dist/src/nile-stepper/nile-stepper.test.js +109 -0
  370. package/dist/src/nile-stepper/nile-stepper.test.js.map +1 -0
  371. package/dist/src/nile-stepper-item/nile-stepper-item.test.d.ts +1 -0
  372. package/dist/src/nile-stepper-item/nile-stepper-item.test.js +108 -0
  373. package/dist/src/nile-stepper-item/nile-stepper-item.test.js.map +1 -0
  374. package/dist/src/nile-tab/nile-tab.test.d.ts +1 -0
  375. package/dist/src/nile-tab/nile-tab.test.js +108 -0
  376. package/dist/src/nile-tab/nile-tab.test.js.map +1 -0
  377. package/dist/src/nile-tab-group/nile-tab-group.test.js +105 -172
  378. package/dist/src/nile-tab-group/nile-tab-group.test.js.map +1 -1
  379. package/dist/src/nile-tab-panel/nile-tab-panel.test.d.ts +1 -0
  380. package/dist/src/nile-tab-panel/nile-tab-panel.test.js +108 -0
  381. package/dist/src/nile-tab-panel/nile-tab-panel.test.js.map +1 -0
  382. package/dist/src/nile-tag/nile-tag.test.d.ts +1 -0
  383. package/dist/src/nile-tag/nile-tag.test.js +574 -0
  384. package/dist/src/nile-tag/nile-tag.test.js.map +1 -0
  385. package/dist/src/nile-textarea/nile-textarea.test.d.ts +1 -1
  386. package/dist/src/nile-textarea/nile-textarea.test.js +105 -84
  387. package/dist/src/nile-textarea/nile-textarea.test.js.map +1 -1
  388. package/dist/src/nile-title/nile-title.test.d.ts +1 -0
  389. package/dist/src/nile-title/nile-title.test.js +108 -0
  390. package/dist/src/nile-title/nile-title.test.js.map +1 -0
  391. package/dist/src/nile-toast/nile-toast.test.d.ts +1 -0
  392. package/dist/src/nile-toast/nile-toast.test.js +526 -0
  393. package/dist/src/nile-toast/nile-toast.test.js.map +1 -0
  394. package/dist/src/nile-toolbar/nile-toolbar.test.d.ts +1 -0
  395. package/dist/src/nile-toolbar/nile-toolbar.test.js +108 -0
  396. package/dist/src/nile-toolbar/nile-toolbar.test.js.map +1 -0
  397. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +1 -0
  398. package/dist/src/nile-tooltip/nile-tooltip.test.js +546 -0
  399. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +1 -0
  400. package/dist/src/nile-virtual-select/nile-virtual-select.test.d.ts +1 -7
  401. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +105 -628
  402. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
  403. package/dist/src/version.js +2 -2
  404. package/dist/src/version.js.map +1 -1
  405. package/dist/tsconfig.tsbuildinfo +1 -1
  406. package/package.json +1 -1
  407. package/rollup.config.js +7 -1
  408. package/src/nile-accordion/nile-accordian.test.ts +102 -116
  409. package/src/nile-auto-complete/nile-auto-complete.css.ts +1 -1
  410. package/src/nile-auto-complete/nile-auto-complete.test.ts +102 -145
  411. package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
  412. package/src/nile-avatar/nile-avatar.test.ts +102 -112
  413. package/src/nile-badge/nile-badge.test.ts +642 -30
  414. package/src/nile-breadcrumb/nile-breadcrumb.test.ts +107 -0
  415. package/src/nile-breadcrumb-item/nile-breadcrumb-item.test.ts +106 -0
  416. package/src/nile-button/nile-button.test.ts +593 -61
  417. package/src/nile-button-filter/nile-button-filter.test.ts +106 -0
  418. package/src/nile-button-toggle/nile-button-toggle.test.ts +106 -0
  419. package/src/nile-button-toggle-group/nile-button-toggle-group.test.ts +104 -126
  420. package/src/nile-calendar/nile-calendar.test.ts +102 -406
  421. package/src/nile-card/nile-card.test.ts +103 -71
  422. package/src/nile-checkbox/nile-checkbox.test.ts +614 -108
  423. package/src/nile-chip/nile-chip.test.ts +102 -136
  424. package/src/nile-circular-progressbar/nile-circular-progressbar.test.ts +106 -0
  425. package/src/nile-date-picker/nile-date-picker.test.ts +106 -0
  426. package/src/nile-dialog/nile-dialog.test.ts +102 -164
  427. package/src/nile-divider/nile-divider.test.ts +659 -0
  428. package/src/nile-drawer/nile-drawer.test.ts +105 -105
  429. package/src/nile-dropdown/nile-dropdown.test.ts +102 -190
  430. package/src/nile-empty-state/nile-empty-state.test.ts +104 -67
  431. package/src/nile-error-message/nile-error-message.test.ts +104 -67
  432. package/src/nile-error-notification/nile-error-notification.test.ts +106 -0
  433. package/src/nile-file-preview/nile-file-preview.css.ts +2 -2
  434. package/src/nile-file-preview/nile-file-preview.template.ts +59 -23
  435. package/src/nile-file-preview/nile-file-preview.test.ts +105 -37
  436. package/src/nile-file-preview/nile-file-preview.ts +23 -56
  437. package/src/nile-file-preview/utils/nile-file-preview.util.ts +37 -8
  438. package/src/nile-file-upload/nile-file-upload.css.ts +15 -5
  439. package/src/nile-file-upload/nile-file-upload.template.ts +22 -18
  440. package/src/nile-file-upload/nile-file-upload.test.ts +105 -37
  441. package/src/nile-file-upload/nile-file-upload.ts +11 -3
  442. package/src/nile-file-upload/types/file-upload.enums.ts +20 -4
  443. package/src/nile-file-upload/utils/drag-drop.util.ts +20 -11
  444. package/src/nile-file-upload/utils/file-validation.util.ts +104 -22
  445. package/src/nile-filter-chip/nile-filter-chip.test.ts +103 -89
  446. package/src/nile-form-error-message/nile-form-error-message.test.ts +106 -0
  447. package/src/nile-form-group/nile-form-group.test.ts +103 -60
  448. package/src/nile-form-help-text/nile-form-help-text.test.ts +102 -106
  449. package/src/nile-format-date/nile-format-date.test.ts +106 -0
  450. package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.ts +7 -5
  451. package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.utils.ts +28 -0
  452. package/src/nile-grid/nile-grid.ts +6 -1
  453. package/src/nile-grid/nile-grid.utils.ts +18 -1
  454. package/src/nile-heading/nile-heading.test.ts +106 -0
  455. package/src/nile-hero/nile-hero.test.ts +103 -42
  456. package/src/nile-icon/icons/svg/delete_history.ts +5 -0
  457. package/src/nile-icon/icons/svg/index.ts +1 -0
  458. package/src/nile-icon/nile-icon.test.ts +103 -50
  459. package/src/nile-icon-button/nile-icon-button.test.ts +667 -0
  460. package/src/nile-inline-edit/nile-inline-edit.test.ts +106 -0
  461. package/src/nile-input/nile-input.test.ts +105 -164
  462. package/src/nile-input/nile-input.ts +1 -1
  463. package/src/nile-link/nile-link.test.ts +104 -81
  464. package/src/nile-list/nile-list.test.ts +106 -0
  465. package/src/nile-list-item/nile-list-item.test.ts +106 -0
  466. package/src/nile-lite-tooltip/nile-lite-tooltip.test.ts +107 -0
  467. package/src/nile-loader/nile-loader.test.ts +103 -48
  468. package/src/nile-menu/nile-menu.test.ts +106 -0
  469. package/src/nile-menu-item/nile-menu-item.test.ts +106 -0
  470. package/src/nile-option/nile-option.test.ts +106 -0
  471. package/src/nile-option-group/nile-option-group.test.ts +106 -0
  472. package/src/nile-page-header/nile-page-header.test.ts +106 -0
  473. package/src/nile-pagination/nile-pagination.test.ts +106 -0
  474. package/src/nile-popover/nile-popover.test.ts +103 -83
  475. package/src/nile-popup/nile-popup.test.ts +102 -82
  476. package/src/nile-progress-bar/nile-progress-bar.test.ts +103 -52
  477. package/src/nile-radio/nile-radio.test.ts +103 -78
  478. package/src/nile-radio-group/nile-radio-group.test.ts +104 -213
  479. package/src/nile-section-message/nile-section-message.test.ts +106 -0
  480. package/src/nile-select/nile-select.test.ts +105 -308
  481. package/src/nile-skeleton-loader/nile-skeleton-loader.test.ts +106 -0
  482. package/src/nile-slide-toggle/nile-slide-toggle.test.ts +103 -58
  483. package/src/nile-slider/nile-slider.test.ts +106 -0
  484. package/src/nile-spinner/nile-spinner.test.ts +668 -0
  485. package/src/nile-split-panel/nile-split-panel.test.ts +106 -0
  486. package/src/nile-stepper/nile-stepper.test.ts +107 -0
  487. package/src/nile-stepper-item/nile-stepper-item.test.ts +106 -0
  488. package/src/nile-tab/nile-tab.test.ts +106 -0
  489. package/src/nile-tab-group/nile-tab-group.test.ts +104 -211
  490. package/src/nile-tab-panel/nile-tab-panel.test.ts +106 -0
  491. package/src/nile-tag/nile-tag.test.ts +675 -0
  492. package/src/nile-textarea/nile-textarea.test.ts +104 -100
  493. package/src/nile-title/nile-title.test.ts +106 -0
  494. package/src/nile-toast/nile-toast.test.ts +625 -0
  495. package/src/nile-toolbar/nile-toolbar.test.ts +106 -0
  496. package/src/nile-tooltip/nile-tooltip.test.ts +645 -0
  497. package/src/nile-virtual-select/nile-virtual-select.test.ts +104 -772
  498. package/vscode-html-custom-data.json +8 -3
  499. package/web-test-runner.config.mjs +4 -2
  500. package/dist/axe.min-2720cd56.esm.js +0 -1
  501. package/dist/axe.min-69d47269.cjs.js +0 -2
  502. package/dist/axe.min-69d47269.cjs.js.map +0 -1
  503. package/dist/css-tag-bb10c0fa.cjs.js +0 -6
  504. package/dist/css-tag-bb10c0fa.cjs.js.map +0 -1
  505. package/dist/css-tag-dc564feb.esm.js +0 -6
  506. package/dist/fixture-958445f8.cjs.js +0 -395
  507. package/dist/fixture-958445f8.cjs.js.map +0 -1
  508. package/dist/fixture-985bba12.esm.js +0 -569
  509. package/dist/nile-accordion/nile-accordian.test.cjs.js +0 -2
  510. package/dist/nile-accordion/nile-accordian.test.cjs.js.map +0 -1
  511. package/dist/nile-accordion/nile-accordian.test.esm.js +0 -1
  512. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +0 -2
  513. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +0 -1
  514. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +0 -9
  515. package/dist/nile-avatar/nile-avatar.test.cjs.js +0 -2
  516. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +0 -1
  517. package/dist/nile-avatar/nile-avatar.test.esm.js +0 -11
  518. package/dist/nile-badge/nile-badge.test.cjs.js +0 -2
  519. package/dist/nile-badge/nile-badge.test.cjs.js.map +0 -1
  520. package/dist/nile-badge/nile-badge.test.esm.js +0 -1
  521. package/dist/nile-button/nile-button.test.cjs.js +0 -2
  522. package/dist/nile-button/nile-button.test.cjs.js.map +0 -1
  523. package/dist/nile-button/nile-button.test.esm.js +0 -4
  524. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +0 -2
  525. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js.map +0 -1
  526. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +0 -49
  527. package/dist/nile-calendar/nile-calendar.test.cjs.js +0 -2
  528. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +0 -1
  529. package/dist/nile-calendar/nile-calendar.test.esm.js +0 -11
  530. package/dist/nile-card/nile-card.test.cjs.js +0 -2
  531. package/dist/nile-card/nile-card.test.cjs.js.map +0 -1
  532. package/dist/nile-card/nile-card.test.esm.js +0 -51
  533. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +0 -2
  534. package/dist/nile-checkbox/nile-checkbox.test.cjs.js.map +0 -1
  535. package/dist/nile-checkbox/nile-checkbox.test.esm.js +0 -17
  536. package/dist/nile-chip/nile-chip.test.cjs.js +0 -2
  537. package/dist/nile-chip/nile-chip.test.cjs.js.map +0 -1
  538. package/dist/nile-chip/nile-chip.test.esm.js +0 -1
  539. package/dist/nile-dialog/nile-dialog.test.cjs.js +0 -2
  540. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +0 -1
  541. package/dist/nile-dialog/nile-dialog.test.esm.js +0 -7
  542. package/dist/nile-drawer/nile-drawer.test.cjs.js +0 -2
  543. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +0 -1
  544. package/dist/nile-drawer/nile-drawer.test.esm.js +0 -17
  545. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +0 -2
  546. package/dist/nile-dropdown/nile-dropdown.test.cjs.js.map +0 -1
  547. package/dist/nile-dropdown/nile-dropdown.test.esm.js +0 -28
  548. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +0 -2
  549. package/dist/nile-empty-state/nile-empty-state.test.cjs.js.map +0 -1
  550. package/dist/nile-empty-state/nile-empty-state.test.esm.js +0 -9
  551. package/dist/nile-error-message/nile-error-message.test.cjs.js +0 -2
  552. package/dist/nile-error-message/nile-error-message.test.cjs.js.map +0 -1
  553. package/dist/nile-error-message/nile-error-message.test.esm.js +0 -1
  554. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +0 -2
  555. package/dist/nile-file-preview/nile-file-preview.test.cjs.js.map +0 -1
  556. package/dist/nile-file-preview/nile-file-preview.test.esm.js +0 -1
  557. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +0 -2
  558. package/dist/nile-file-upload/nile-file-upload.test.cjs.js.map +0 -1
  559. package/dist/nile-file-upload/nile-file-upload.test.esm.js +0 -1
  560. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +0 -2
  561. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js.map +0 -1
  562. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +0 -20
  563. package/dist/nile-form-group/nile-form-group.test.cjs.js +0 -2
  564. package/dist/nile-form-group/nile-form-group.test.cjs.js.map +0 -1
  565. package/dist/nile-form-group/nile-form-group.test.esm.js +0 -1
  566. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +0 -2
  567. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js.map +0 -1
  568. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +0 -1
  569. package/dist/nile-hero/nile-hero.test.cjs.js +0 -2
  570. package/dist/nile-hero/nile-hero.test.cjs.js.map +0 -1
  571. package/dist/nile-hero/nile-hero.test.esm.js +0 -14
  572. package/dist/nile-icon/nile-icon.test.cjs.js +0 -2
  573. package/dist/nile-icon/nile-icon.test.cjs.js.map +0 -1
  574. package/dist/nile-icon/nile-icon.test.esm.js +0 -1
  575. package/dist/nile-input/nile-input.test.cjs.js +0 -2
  576. package/dist/nile-input/nile-input.test.cjs.js.map +0 -1
  577. package/dist/nile-input/nile-input.test.esm.js +0 -17
  578. package/dist/nile-link/nile-link.test.cjs.js +0 -2
  579. package/dist/nile-link/nile-link.test.cjs.js.map +0 -1
  580. package/dist/nile-link/nile-link.test.esm.js +0 -1
  581. package/dist/nile-loader/nile-loader.test.cjs.js +0 -2
  582. package/dist/nile-loader/nile-loader.test.cjs.js.map +0 -1
  583. package/dist/nile-loader/nile-loader.test.esm.js +0 -1
  584. package/dist/nile-popover/nile-popover.test.cjs.js +0 -2
  585. package/dist/nile-popover/nile-popover.test.cjs.js.map +0 -1
  586. package/dist/nile-popover/nile-popover.test.esm.js +0 -21
  587. package/dist/nile-popup/nile-popup.test.cjs.js +0 -2
  588. package/dist/nile-popup/nile-popup.test.cjs.js.map +0 -1
  589. package/dist/nile-popup/nile-popup.test.esm.js +0 -1
  590. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +0 -2
  591. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js.map +0 -1
  592. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +0 -1
  593. package/dist/nile-radio/nile-radio.test.cjs.js +0 -2
  594. package/dist/nile-radio/nile-radio.test.cjs.js.map +0 -1
  595. package/dist/nile-radio/nile-radio.test.esm.js +0 -1
  596. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +0 -2
  597. package/dist/nile-radio-group/nile-radio-group.test.cjs.js.map +0 -1
  598. package/dist/nile-radio-group/nile-radio-group.test.esm.js +0 -57
  599. package/dist/nile-select/nile-select.test.cjs.js +0 -2
  600. package/dist/nile-select/nile-select.test.cjs.js.map +0 -1
  601. package/dist/nile-select/nile-select.test.esm.js +0 -55
  602. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +0 -2
  603. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js.map +0 -1
  604. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +0 -1
  605. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +0 -2
  606. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +0 -1
  607. package/dist/nile-tab-group/nile-tab-group.test.esm.js +0 -65
  608. package/dist/nile-textarea/nile-textarea.test.cjs.js +0 -2
  609. package/dist/nile-textarea/nile-textarea.test.cjs.js.map +0 -1
  610. package/dist/nile-textarea/nile-textarea.test.esm.js +0 -1
  611. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +0 -2
  612. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +0 -1
  613. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +0 -93
  614. package/dist/scopedElementsWrapper-31107e48.esm.js +0 -1
  615. package/dist/scopedElementsWrapper-9b188ea6.cjs.js +0 -2
  616. package/dist/scopedElementsWrapper-9b188ea6.cjs.js.map +0 -1
  617. package/dist/sinon-esm-68c8e378.esm.js +0 -1
  618. package/dist/sinon-esm-97570c13.cjs.js +0 -2
  619. package/dist/sinon-esm-97570c13.cjs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nile-input.js","sourceRoot":"","sources":["../../../src/nile-input/nile-input.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-input.css';\nimport '../nile-icon';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport { HasSlotController } from '../internal/slot';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../internal/watch';\nimport type { CSSResultGroup } from 'lit';\nimport NileElement, { NileFormControl } from '../internal/nile-element';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\n\n/**\n * Nile icon component.\n *\n * @tag nile-input\n *\n */\n@customElement('nile-input')\nexport class NileInput extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n\n @query('.input__control') input: HTMLInputElement;\n\n @state() private hasFocus = false;\n @property() title = ''; // make reactive to pass through\n\n /**\n * The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\n * to `text`.\n */\n @property({ reflect: true }) type:\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url' = 'text';\n\n /** The name of the input, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** The current value of the input, submitted as a name/value pair with form data. */\n @property() value = '';\n\n @property({ type: Boolean }) checkNonPrintableChar: boolean = false;\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue = '';\n\n /** The input's size. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Draws a filled input. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Sets the input to a warning state, changing its visual appearance. */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state, changing its visual appearance. */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state, changing its visual appearance. */\n @property({ type: Boolean }) success = false;\n\n /** Sets the input to a Destructive state, changing its visual appearance. */\n @property({ type: Boolean }) destructive = false;\n\n /** Draws a pill-style input with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The input's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Adds a clear button when the input is not empty. */\n @property({ type: Boolean }) clearable = false;\n\n /** Disables the input. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Placeholder text to show as a hint when the input is empty. */\n @property() placeholder = '';\n\n /** Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Adds a button to toggle the password's visibility. Only applies to password types. */\n @property({ attribute: 'password-toggle', type: Boolean }) passwordToggle =\n false;\n\n /** Determines whether or not the password is currently visible. Only applies to password input types. */\n @property({ attribute: 'password-visible', type: Boolean }) passwordVisible =\n false;\n\n /** Hides the browser's built-in increment/decrement spin buttons for number inputs. */\n @property({ attribute: 'no-spin-buttons', type: Boolean }) noSpinButtons =\n false;\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Makes the input a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** A regular expression pattern to validate input against. */\n @property() pattern: string;\n\n /** The minimum length of input that will be considered valid. */\n @property({ type: Number }) minlength: number;\n\n /** The maximum length of input that will be considered valid. */\n @property({ type: Number }) maxlength: number;\n\n /** The input's minimum value. Only applies to date and number input types. */\n @property() min: number | string;\n\n /** The input's maximum value. Only applies to date and number input types. */\n @property() max: number | string;\n\n /**\n * Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\n * implied, allowing any numeric value. Only applies to date and number input types.\n */\n @property() step: number | 'any';\n\n /** Controls whether and how text input is automatically capitalized as it is entered by the user. */\n @property() autocapitalize:\n | 'off'\n | 'none'\n | 'on'\n | 'sentences'\n | 'words'\n | 'characters';\n\n /** Indicates whether the browser's autocorrect feature is on or off. */\n @property() autocorrect: 'off' | 'on';\n\n /**\n * Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n * [this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.\n */\n @property() autocomplete: string = 'off';\n\n /** Indicates that the input should receive focus on page load. */\n @property({ type: Boolean, attribute: true, reflect: true }) autofocus: boolean;\n\n /** Used to customize the label or icon of the Enter key on virtual keyboards. */\n @property() enterkeyhint:\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send';\n\n /** Enables spell checking on the input. */\n @property({\n type: Boolean,\n converter: {\n // Allow \"true|false\" attribute values but keep the property boolean\n fromAttribute: value => (!value || value === 'false' ? false : true),\n toAttribute: value => (value ? 'true' : 'false'),\n },\n })\n spellcheck = true;\n\n @property({ type: Boolean, reflect: true }) canSavePassword = false;\n\n /**\n * Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\n * keyboard on supportive devices.\n */\n @property() inputmode:\n | 'none'\n | 'text'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\n //\n // NOTE: We use an in-memory input for these getters/setters instead of the one in the template because the properties\n // can be set before the component is rendered.\n //\n\n @state() hasPrintableCharacters: boolean = false;\n\n @state() markedValue: string;\n\n @property() noOutline: any = false;\n\n @property() noPadding: any = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n /** Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted. */\n get valueAsDate() {\n const input = document.createElement('input');\n input.type = 'date';\n input.value = this.value;\n return input.valueAsDate;\n }\n\n set valueAsDate(newValue: Date | null) {\n const input = document.createElement('input');\n input.type = 'date';\n input.valueAsDate = newValue;\n this.value = input.value;\n }\n\n /** Gets or sets the current value as a number. Returns `NaN` if the value can't be converted. */\n get valueAsNumber() {\n const input = document.createElement('input');\n input.type = 'number';\n input.value = this.value;\n return input.valueAsNumber;\n }\n\n set valueAsNumber(newValue: number) {\n const input = document.createElement('input');\n input.type = 'number';\n input.valueAsNumber = newValue;\n this.value = input.value;\n }\n\n /** Gets the validity state object */\n get validity() {\n return this.input.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.input.validationMessage;\n }\n\n firstUpdated() {\n this.emit('nile-after-init');\n this.formControlController.updateValidity();\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('nile-blur', { value: this.value });\n }\n\n private handleChange() {\n this.value = this.input.value;\n this.emit('nile-change', { value: this.value });\n }\n\n private handleClearClick(event: MouseEvent) {\n this.value = '';\n this.emit('nile-clear', { value: this.value });\n this.emit('nile-input', { value: this.value });\n this.emit('nile-change', { value: this.value });\n this.input.focus();\n\n event.stopPropagation();\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.emit('nile-focus', { value: this.value });\n\n if (this.checkNonPrintableChar) {\n this.markNonPrintableCharacters();\n }\n }\n\n private handleInput() {\n this.value = this.input.value;\n this.formControlController.updateValidity();\n if(this.value && this.type === 'number') {\n this.emit('nile-input', { value: Number(this.value) });\n } else {\n this.emit('nile-input', { value: this.value });\n }\n }\n\n private handleInvalid(event: Event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const hasModifier =\n event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n\n // Pressing enter when focused on an input should submit the form like a native input, but we wait a tick before\n // submitting to allow users to cancel the keydown event if they need to\n if (event.key === 'Enter' && !hasModifier) {\n setTimeout(() => {\n //\n // When using an Input Method Editor (IME), pressing enter will cause the form to submit unexpectedly. One way\n // to check for this is to look at event.isComposing, which will be true when the IME is open.\n //\n\n //\n if (!event.defaultPrevented && !event.isComposing) {\n this.formControlController.submit();\n }\n });\n }\n }\n\n private handlePasswordToggle() {\n this.passwordVisible = !this.passwordVisible;\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Disabled form controls are always valid\n this.formControlController.setValidity(this.disabled);\n }\n\n @watch('step', { waitUntilFirstUpdate: true })\n handleStepChange() {\n // If step changes, the value may become invalid so we need to recheck after the update. We set the new step\n // imperatively so we don't have to wait for the next render to report the updated validity.\n this.input.step = String(this.step);\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n async handleValueChange() {\n await this.updateComplete;\n\n if (this.checkNonPrintableChar) {\n this.markNonPrintableCharacters();\n }\n }\n\n /** checks non printable characters in the value. */\n markNonPrintableCharacters() {\n let markedValue = '';\n this.hasPrintableCharacters = false;\n if (this.value) {\n for (let i = 0, n = this.value.length; i < n; i++) {\n const charCode = this.value.charCodeAt(i);\n\n if (charCode > 127) {\n markedValue += `<span class=\"input__srtiked-text\">${this.value.charAt(\n i\n )}</span>`;\n this.hasPrintableCharacters = true;\n } else {\n markedValue += this.value.charAt(i);\n }\n }\n }\n\n this.markedValue = markedValue;\n this.emit('nile-value-marked', {\n value: this.markedValue,\n hasNonPrintableCharacters: this.hasPrintableCharacters,\n });\n }\n\n /** Removes all non printable characters from the value. */\n removeAllNonPrintableCharacters() {\n let cleanedValue = '';\n\n if (this.value) {\n for (let i = 0, n = this.value.length; i < n; i++) {\n const charCode = this.value.charCodeAt(i);\n\n // Consider a character printable if it's not in the specified non-printable ranges\n if (charCode < 128) {\n cleanedValue += this.value.charAt(i);\n }\n }\n }\n\n this.value = cleanedValue;\n this.emit('nile-npchar-removed', { value: this.value });\n }\n\n /** Sets focus on the input. */\n focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the input. */\n blur() {\n this.input.blur();\n }\n\n /** Selects all the text in the input. */\n select() {\n this.input.select();\n }\n\n /** Sets the start and end positions of the text selection (0-based). */\n setSelectionRange(\n selectionStart: number,\n selectionEnd: number,\n selectionDirection: 'forward' | 'backward' | 'none' = 'none'\n ) {\n this.input.setSelectionRange(\n selectionStart,\n selectionEnd,\n selectionDirection\n );\n }\n\n /** Replaces a range of text with a new string. */\n setRangeText(\n replacement: string,\n start?: number,\n end?: number,\n selectMode?: 'select' | 'start' | 'end' | 'preserve'\n ) {\n // @ts-expect-error - start, end, and selectMode are optional\n this.input.setRangeText(replacement, start, end, selectMode);\n\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n }\n }\n\n // /** Displays the browser picker for an input element (only works if the browser supports it for the input type). */\n // showPicker() {\n // if ('showPicker' in HTMLInputElement.prototype) {\n // this.input.showPicker();\n // }\n // }\n\n /** Increments the value of a numeric input type by the value of the step attribute. */\n stepUp() {\n this.input.stepUp();\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n }\n }\n\n /** Decrements the value of a numeric input type by the value of the step attribute. */\n stepDown() {\n this.input.stepDown();\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n }\n }\n\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.input.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.input.reportValidity();\n }\n\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n public inputFocus() {\n this.input.focus();\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n const hasClearIcon =\n this.clearable &&\n !this.disabled &&\n !this.readonly &&\n (typeof this.value === 'number' || this.value.length > 0);\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n <label\n part=\"form-control-label\"\n class=\"form-control__label\"\n for=\"input\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.checkNonPrintableChar\n ? html`\n <nile-popup ?active=${this.hasPrintableCharacters}\n placement=\"bottom-start\"\n distance=\"5\"\n exportparts=\"input\"\n strategy=\"fixed\"\n >\n <div\n slot=\"anchor\"\n part=\"base\"\n class=${classMap({\n input: true,\n\n // Sizes\n 'input--small': this.size === 'small',\n 'input--medium': this.size === 'medium',\n 'input--large': this.size === 'large',\n\n // States\n 'input--pill': this.pill,\n 'input--standard': !this.filled,\n 'input--warning': this.warning,\n 'input--error': this.error,\n 'input--success': this.success,\n 'input--destructive': this.destructive,\n 'input--filled': this.filled,\n 'input--disabled': this.disabled,\n 'input--focused': this.hasFocus,\n 'input--empty': !this.value,\n 'input--no-spin-buttons': this.noSpinButtons,\n })}\n >\n <slot name=\"prefix\" part=\"prefix\" class=\"input__prefix\"></slot>\n <input\n part=\"input\"\n id=\"input\"\n class=\"input__control ${\n this.type === 'password' && !this.passwordVisible\n ? 'input__password'\n : ''\n }\"\n type=${this.type === 'password'\n ? this.passwordVisible\n ? 'text'\n : 'password'\n : this.type}\n title=${\n this.title /* An empty title prevents browser validation tooltips from appearing on hover */\n }\n name=${ifDefined(this.name)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n placeholder=${ifDefined(this.placeholder)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n step=${ifDefined(this.step as number)}\n .value=${live(this.value)}\n autocapitalize=${ifDefined(this.autocapitalize)}\n autocomplete=${ifDefined(this.autocomplete as any)}\n autocorrect=${ifDefined(this.autocorrect)}\n ?autofocus=${this.autofocus}\n spellcheck=${this.spellcheck}\n pattern=${ifDefined(this.pattern)}\n enterkeyhint=${ifDefined(this.enterkeyhint)}\n inputmode=${ifDefined(this.inputmode)}\n aria-describedby=\"help-text\"\n @change=${this.handleChange}\n @input=${this.handleInput}\n @invalid=${this.handleInvalid}\n @keydown=${this.handleKeyDown}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${\n hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"input__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-error, var(--ng-icon-x-circle))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\"></nile-icon>\n </slot>\n </button>\n `\n : ''\n }\n ${\n this.passwordToggle && !this.disabled\n ? html`\n <button\n part=\"password-toggle-button\"\n class=\"input__password-toggle\"\n type=\"button\"\n aria-label=${this.passwordVisible\n ? 'hidePassword'\n : 'showPassword'}\n @click=${this.handlePasswordToggle}\n tabindex=\"-1\"\n >\n ${this.passwordVisible\n ? html`\n <slot name=\"show-password-icon\">\n <nile-icon\n name=\"var(--nile-icon-eye, var(--ng-icon-eye))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n `\n : html`\n <slot name=\"hide-password-icon\">\n <nile-icon\n name=\"var(--nile-icon-eye, var(--ng-icon-eye))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n `}\n </button>\n `\n : ''\n }\n\n <slot name=\"suffix\" part=\"suffix\" class=\"input__suffix\"></slot>\n </div>\n\n <div class=\"input__non-printable\">\n Non-printable character detected.\n <nile-badge variant=\"error\" @click=${\n this.removeAllNonPrintableCharacters\n }class=\"input__remove-non-printable\">\n Remove All\n </nile-badge>\n\n <div class=\"input__srtiked-text-container\">${unsafeHTML(\n this.markedValue\n )} </div>\n </div>\n </nile-popup>\n `\n : html`\n <div\n part=\"base\"\n class=${classMap({\n input: true,\n\n // Sizes\n 'input--small': this.size === 'small',\n 'input--medium': this.size === 'medium',\n 'input--large': this.size === 'large',\n\n // States\n 'input--pill': this.pill,\n 'input--standard': !this.filled,\n 'input--warning': this.warning,\n 'input--error': this.error,\n 'input--success': this.success,\n 'input--destructive': this.destructive,\n 'input--filled': this.filled,\n 'input--disabled': this.disabled,\n 'input--focused': this.hasFocus,\n 'input--empty': !this.value,\n 'input--no-spin-buttons': this.noSpinButtons,\n })}\n >\n <slot name=\"prefix\" part=\"prefix\" class=\"input__prefix\"></slot>\n <input\n part=\"input\"\n id=\"input\"\n class=\"input__control ${\n this.type === 'password' && !this.passwordVisible\n ? 'input__password'\n : ''\n }\"\n type=${this.type === 'password'\n ? this.passwordVisible\n ? 'text'\n : 'password'\n : this.type}\n title=${this.title}\n name=${ifDefined(this.name)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n placeholder=${ifDefined(this.placeholder)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n step=${ifDefined(this.step as number)}\n .value=${live(this.value)}\n autocapitalize=${ifDefined(this.autocapitalize)}\n autocomplete=${ifDefined(this.autocomplete as any)}\n autocorrect=${ifDefined(this.autocorrect)}\n ?autofocus=${this.autofocus}\n spellcheck=${this.spellcheck}\n pattern=${ifDefined(this.pattern)}\n enterkeyhint=${ifDefined(this.enterkeyhint)}\n inputmode=${ifDefined(this.inputmode)}\n aria-describedby=\"help-text\"\n @change=${this.handleChange}\n @input=${this.handleInput}\n @invalid=${this.handleInvalid}\n @keydown=${this.handleKeyDown}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${\n hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"input__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon\n name=\"var(--nile-icon-error, var(--ng-icon-x-circle))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n </button>\n `\n : ''\n }\n\n ${\n this.passwordToggle && !this.disabled\n ? html`\n <button\n part=\"password-toggle-button\"\n class=\"input__password-toggle\"\n type=\"button\"\n aria-label=${this.passwordVisible\n ? 'hidePassword'\n : 'showPassword'}\n @click=${this.handlePasswordToggle}\n tabindex=\"-1\"\n >\n ${this.passwordVisible\n ? html`\n <slot name=\"show-password-icon\">\n <nile-icon\n name=\"var(--nile-icon-eye, var(--ng-icon-eye))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n `\n : html`\n <slot name=\"hide-password-icon\">\n <nile-icon\n name=\"var(--nile-icon-eye, var(--ng-icon-eye))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n `}\n </button>\n `\n : ''\n }\n\n <slot name=\"suffix\" part=\"suffix\" class=\"input__suffix\"></slot>\n </div>\n `}\n\n </div>\n\n ${\n hasHelpText\n ? html`\n <nile-form-help-text>${this.helpText}</nile-form-help-text>\n `\n : ``\n }\n\n ${\n hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``\n }\n </div>\n </div>\n `;\n }\n}\n\nexport default NileInput;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-input': NileInput;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-input.js","sourceRoot":"","sources":["../../../src/nile-input/nile-input.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-input.css';\nimport '../nile-icon';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport { HasSlotController } from '../internal/slot';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../internal/watch';\nimport type { CSSResultGroup } from 'lit';\nimport NileElement, { NileFormControl } from '../internal/nile-element';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\n\n/**\n * Nile icon component.\n *\n * @tag nile-input\n *\n */\n@customElement('nile-input')\nexport class NileInput extends NileElement implements NileFormControl {\n static styles: CSSResultGroup = styles;\n\n private readonly formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n\n @query('.input__control') input: HTMLInputElement;\n\n @state() private hasFocus = false;\n @property() title = ''; // make reactive to pass through\n\n /**\n * The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\n * to `text`.\n */\n @property({ reflect: true }) type:\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url' = 'text';\n\n /** The name of the input, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /** The current value of the input, submitted as a name/value pair with form data. */\n @property() value = '';\n\n @property({ type: Boolean }) checkNonPrintableChar: boolean = false;\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue = '';\n\n /** The input's size. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Draws a filled input. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Sets the input to a warning state, changing its visual appearance. */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state, changing its visual appearance. */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state, changing its visual appearance. */\n @property({ type: Boolean }) success = false;\n\n /** Sets the input to a Destructive state, changing its visual appearance. */\n @property({ type: Boolean }) destructive = false;\n\n /** Draws a pill-style input with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The input's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n @property({ attribute: 'help-text', reflect: true }) helpText = '';\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Adds a clear button when the input is not empty. */\n @property({ type: Boolean }) clearable = false;\n\n /** Disables the input. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Placeholder text to show as a hint when the input is empty. */\n @property() placeholder = '';\n\n /** Makes the input readonly. */\n @property({ type: Boolean, reflect: true }) readonly = false;\n\n /** Adds a button to toggle the password's visibility. Only applies to password types. */\n @property({ attribute: 'password-toggle', type: Boolean }) passwordToggle =\n false;\n\n /** Determines whether or not the password is currently visible. Only applies to password input types. */\n @property({ attribute: 'password-visible', type: Boolean }) passwordVisible =\n false;\n\n /** Hides the browser's built-in increment/decrement spin buttons for number inputs. */\n @property({ attribute: 'no-spin-buttons', type: Boolean }) noSpinButtons =\n false;\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** Makes the input a required field. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n /** A regular expression pattern to validate input against. */\n @property() pattern: string;\n\n /** The minimum length of input that will be considered valid. */\n @property({ type: Number }) minlength: number;\n\n /** The maximum length of input that will be considered valid. */\n @property({ type: Number }) maxlength: number;\n\n /** The input's minimum value. Only applies to date and number input types. */\n @property() min: number | string;\n\n /** The input's maximum value. Only applies to date and number input types. */\n @property() max: number | string;\n\n /**\n * Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\n * implied, allowing any numeric value. Only applies to date and number input types.\n */\n @property() step: number | 'any';\n\n /** Controls whether and how text input is automatically capitalized as it is entered by the user. */\n @property() autocapitalize:\n | 'off'\n | 'none'\n | 'on'\n | 'sentences'\n | 'words'\n | 'characters';\n\n /** Indicates whether the browser's autocorrect feature is on or off. */\n @property() autocorrect: 'off' | 'on';\n\n /**\n * Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n * [this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.\n */\n @property() autocomplete: string = 'off';\n\n /** Indicates that the input should receive focus on page load. */\n @property({ type: Boolean, attribute: true, reflect: true }) autofocus: boolean;\n\n /** Used to customize the label or icon of the Enter key on virtual keyboards. */\n @property() enterkeyhint:\n | 'enter'\n | 'done'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send';\n\n /** Enables spell checking on the input. */\n @property({\n type: Boolean,\n converter: {\n // Allow \"true|false\" attribute values but keep the property boolean\n fromAttribute: value => (!value || value === 'false' ? false : true),\n toAttribute: value => (value ? 'true' : 'false'),\n },\n })\n spellcheck = true;\n\n @property({ type: Boolean, reflect: true }) canSavePassword = false;\n\n /**\n * Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\n * keyboard on supportive devices.\n */\n @property() inputmode:\n | 'none'\n | 'text'\n | 'decimal'\n | 'numeric'\n | 'tel'\n | 'search'\n | 'email'\n | 'url';\n\n //\n // NOTE: We use an in-memory input for these getters/setters instead of the one in the template because the properties\n // can be set before the component is rendered.\n //\n\n @state() hasPrintableCharacters: boolean = false;\n\n @state() markedValue: string;\n\n @property() noOutline: any = false;\n\n @property() noPadding: any = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.emit('nile-destroy');\n }\n\n /** Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted. */\n get valueAsDate() {\n const input = document.createElement('input');\n input.type = 'date';\n input.value = this.value;\n return input.valueAsDate;\n }\n\n set valueAsDate(newValue: Date | null) {\n const input = document.createElement('input');\n input.type = 'date';\n input.valueAsDate = newValue;\n this.value = input.value;\n }\n\n /** Gets or sets the current value as a number. Returns `NaN` if the value can't be converted. */\n get valueAsNumber() {\n const input = document.createElement('input');\n input.type = 'number';\n input.value = this.value;\n return input.valueAsNumber;\n }\n\n set valueAsNumber(newValue: number) {\n const input = document.createElement('input');\n input.type = 'number';\n input.valueAsNumber = newValue;\n this.value = input.value;\n }\n\n /** Gets the validity state object */\n get validity() {\n return this.input.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.input.validationMessage;\n }\n\n firstUpdated() {\n this.emit('nile-after-init');\n this.formControlController.updateValidity();\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('nile-blur', { value: this.value });\n }\n\n private handleChange() {\n this.value = this.input.value;\n this.emit('nile-change', { value: this.value });\n }\n\n private handleClearClick(event: MouseEvent) {\n this.value = '';\n this.emit('nile-clear', { value: this.value });\n this.emit('nile-input', { value: this.value });\n this.emit('nile-change', { value: this.value });\n this.input.focus();\n\n event.stopPropagation();\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.emit('nile-focus', { value: this.value });\n\n if (this.checkNonPrintableChar) {\n this.markNonPrintableCharacters();\n }\n }\n\n private handleInput() {\n this.value = this.input.value;\n this.formControlController.updateValidity();\n if(this.value && this.type === 'number') {\n this.emit('nile-input', { value: Number(this.value) });\n } else {\n this.emit('nile-input', { value: this.value });\n }\n }\n\n private handleInvalid(event: Event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const hasModifier =\n event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n\n // Pressing enter when focused on an input should submit the form like a native input, but we wait a tick before\n // submitting to allow users to cancel the keydown event if they need to\n if (event.key === 'Enter' && !hasModifier) {\n setTimeout(() => {\n //\n // When using an Input Method Editor (IME), pressing enter will cause the form to submit unexpectedly. One way\n // to check for this is to look at event.isComposing, which will be true when the IME is open.\n //\n\n //\n if (!event.defaultPrevented && !event.isComposing) {\n this.formControlController.submit();\n }\n });\n }\n }\n\n private handlePasswordToggle() {\n this.passwordVisible = !this.passwordVisible;\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Disabled form controls are always valid\n this.formControlController.setValidity(this.disabled);\n }\n\n @watch('step', { waitUntilFirstUpdate: true })\n handleStepChange() {\n // If step changes, the value may become invalid so we need to recheck after the update. We set the new step\n // imperatively so we don't have to wait for the next render to report the updated validity.\n this.input.step = String(this.step);\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n async handleValueChange() {\n await this.updateComplete;\n\n if (this.checkNonPrintableChar) {\n this.markNonPrintableCharacters();\n }\n }\n\n /** checks non printable characters in the value. */\n markNonPrintableCharacters() {\n let markedValue = '';\n this.hasPrintableCharacters = false;\n if (this.value) {\n for (let i = 0, n = this.value.length; i < n; i++) {\n const charCode = this.value.charCodeAt(i);\n\n if (charCode > 127) {\n markedValue += `<span class=\"input__srtiked-text\">${this.value.charAt(\n i\n )}</span>`;\n this.hasPrintableCharacters = true;\n } else {\n markedValue += this.value.charAt(i);\n }\n }\n }\n\n this.markedValue = markedValue;\n this.emit('nile-value-marked', {\n value: this.markedValue,\n hasNonPrintableCharacters: this.hasPrintableCharacters,\n });\n }\n\n /** Removes all non printable characters from the value. */\n removeAllNonPrintableCharacters() {\n let cleanedValue = '';\n\n if (this.value) {\n for (let i = 0, n = this.value.length; i < n; i++) {\n const charCode = this.value.charCodeAt(i);\n\n // Consider a character printable if it's not in the specified non-printable ranges\n if (charCode < 128) {\n cleanedValue += this.value.charAt(i);\n }\n }\n }\n\n this.value = cleanedValue;\n this.emit('nile-npchar-removed', { value: this.value });\n }\n\n /** Sets focus on the input. */\n focus(options?: FocusOptions) {\n this.input.focus(options);\n }\n\n /** Removes focus from the input. */\n blur() {\n this.input.blur();\n }\n\n /** Selects all the text in the input. */\n select() {\n this.input.select();\n }\n\n /** Sets the start and end positions of the text selection (0-based). */\n setSelectionRange(\n selectionStart: number,\n selectionEnd: number,\n selectionDirection: 'forward' | 'backward' | 'none' = 'none'\n ) {\n this.input.setSelectionRange(\n selectionStart,\n selectionEnd,\n selectionDirection\n );\n }\n\n /** Replaces a range of text with a new string. */\n setRangeText(\n replacement: string,\n start?: number,\n end?: number,\n selectMode?: 'select' | 'start' | 'end' | 'preserve'\n ) {\n // @ts-expect-error - start, end, and selectMode are optional\n this.input.setRangeText(replacement, start, end, selectMode);\n\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n }\n }\n\n // /** Displays the browser picker for an input element (only works if the browser supports it for the input type). */\n // showPicker() {\n // if ('showPicker' in HTMLInputElement.prototype) {\n // this.input.showPicker();\n // }\n // }\n\n /** Increments the value of a numeric input type by the value of the step attribute. */\n stepUp() {\n this.input.stepUp();\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n }\n }\n\n /** Decrements the value of a numeric input type by the value of the step attribute. */\n stepDown() {\n this.input.stepDown();\n if (this.value !== this.input.value) {\n this.value = this.input.value;\n }\n }\n\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.input.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController.getForm();\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.input.reportValidity();\n }\n\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message: string) {\n this.input.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n\n public inputFocus() {\n this.input.focus();\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasHelpText = this.helpText ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n const hasClearIcon =\n this.clearable &&\n !this.disabled &&\n !this.readonly &&\n (typeof this.value === 'number' || this.value.length > 0);\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n <label\n part=\"form-control-label\"\n class=\"form-control__label\"\n for=\"input\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n ${this.checkNonPrintableChar\n ? html`\n <nile-popup ?active=${this.hasPrintableCharacters}\n placement=\"bottom-start\"\n distance=\"5\"\n exportparts=\"input\"\n strategy=\"fixed\"\n >\n <div\n slot=\"anchor\"\n part=\"base\"\n class=${classMap({\n input: true,\n\n // Sizes\n 'input--small': this.size === 'small',\n 'input--medium': this.size === 'medium',\n 'input--large': this.size === 'large',\n\n // States\n 'input--pill': this.pill,\n 'input--standard': !this.filled,\n 'input--warning': this.warning,\n 'input--error': this.error,\n 'input--success': this.success,\n 'input--destructive': this.destructive,\n 'input--filled': this.filled,\n 'input--disabled': this.disabled,\n 'input--focused': this.hasFocus,\n 'input--empty': !this.value,\n 'input--no-spin-buttons': this.noSpinButtons,\n })}\n >\n <slot name=\"prefix\" part=\"prefix\" class=\"input__prefix\"></slot>\n <input\n part=\"input\"\n id=\"input\"\n class=\"input__control ${\n this.type === 'password' && !this.passwordVisible\n ? 'input__password'\n : ''\n }\"\n type=${this.type === 'password'\n ? this.passwordVisible\n ? 'text'\n : 'password'\n : this.type}\n title=${\n this.title /* An empty title prevents browser validation tooltips from appearing on hover */\n }\n name=${ifDefined(this.name)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n placeholder=${ifDefined(this.placeholder)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n step=${ifDefined(this.step as number)}\n .value=${live(this.value)}\n autocapitalize=${ifDefined(this.autocapitalize)}\n autocomplete=${ifDefined(this.autocomplete as any)}\n autocorrect=${ifDefined(this.autocorrect)}\n ?autofocus=${this.autofocus}\n spellcheck=${this.spellcheck}\n pattern=${ifDefined(this.pattern)}\n enterkeyhint=${ifDefined(this.enterkeyhint)}\n inputmode=${ifDefined(this.inputmode)}\n aria-describedby=\"help-text\"\n @change=${this.handleChange}\n @input=${this.handleInput}\n @invalid=${this.handleInvalid}\n @keydown=${this.handleKeyDown}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${\n hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"input__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-error, var(--ng-icon-x-circle))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\"></nile-icon>\n </slot>\n </button>\n `\n : ''\n }\n ${\n this.passwordToggle && !this.disabled\n ? html`\n <button\n part=\"password-toggle-button\"\n class=\"input__password-toggle\"\n type=\"button\"\n aria-label=${this.passwordVisible\n ? 'hidePassword'\n : 'showPassword'}\n @click=${this.handlePasswordToggle}\n tabindex=\"-1\"\n >\n ${this.passwordVisible\n ? html`\n <slot name=\"show-password-icon\">\n <nile-icon\n name=\"var(--nile-icon-eye, var(--ng-icon-eye))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n `\n : html`\n <slot name=\"hide-password-icon\">\n <nile-icon\n name=\"var(--nile-icon-eye, var(--ng-icon-eye))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n `}\n </button>\n `\n : ''\n }\n\n <slot name=\"suffix\" part=\"suffix\" class=\"input__suffix\"></slot>\n </div>\n\n <div class=\"input__non-printable\">\n Non-printable character detected.\n <nile-badge variant=\"error\" @click=${\n this.removeAllNonPrintableCharacters\n }class=\"input__remove-non-printable\">\n Remove All\n </nile-badge>\n\n <div class=\"input__srtiked-text-container\">${unsafeHTML(\n this.markedValue\n )} </div>\n </div>\n </nile-popup>\n `\n : html`\n <div\n part=\"base\"\n class=${classMap({\n input: true,\n\n // Sizes\n 'input--small': this.size === 'small',\n 'input--medium': this.size === 'medium',\n 'input--large': this.size === 'large',\n\n // States\n 'input--pill': this.pill,\n 'input--standard': !this.filled,\n 'input--warning': this.warning,\n 'input--error': this.error,\n 'input--success': this.success,\n 'input--destructive': this.destructive,\n 'input--filled': this.filled,\n 'input--disabled': this.disabled,\n 'input--focused': this.hasFocus,\n 'input--empty': !this.value,\n 'input--no-spin-buttons': this.noSpinButtons,\n })}\n >\n <slot name=\"prefix\" part=\"prefix\" class=\"input__prefix\"></slot>\n <input\n part=\"input\"\n id=\"input\"\n class=\"input__control ${\n this.type === 'password' && !this.passwordVisible\n ? 'input__password'\n : ''\n }\"\n type=${this.type === 'password'\n ? this.passwordVisible\n ? 'text'\n : 'password'\n : this.type}\n title=${this.title}\n name=${ifDefined(this.name)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n placeholder=${ifDefined(this.placeholder)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n min=${ifDefined(this.min)}\n max=${ifDefined(this.max)}\n step=${ifDefined(this.step as number)}\n .value=${live(this.value)}\n autocapitalize=${ifDefined(this.autocapitalize)}\n autocomplete=${ifDefined(this.autocomplete as any)}\n autocorrect=${ifDefined(this.autocorrect)}\n ?autofocus=${this.autofocus}\n spellcheck=${this.spellcheck}\n pattern=${ifDefined(this.pattern)}\n enterkeyhint=${ifDefined(this.enterkeyhint)}\n inputmode=${ifDefined(this.inputmode)}\n aria-describedby=\"help-text\"\n @change=${this.handleChange}\n @input=${this.handleInput}\n @invalid=${this.handleInvalid}\n @keydown=${this.handleKeyDown}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${\n hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"input__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon\n name=\"var(--nile-icon-error, var(--ng-icon-x-circle))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n </button>\n `\n : ''\n }\n\n ${\n this.passwordToggle && !this.disabled\n ? html`\n <button\n part=\"password-toggle-button\"\n class=\"input__password-toggle\"\n type=\"button\"\n aria-label=${this.passwordVisible\n ? 'hidePassword'\n : 'showPassword'}\n @click=${this.handlePasswordToggle}\n tabindex=\"-1\"\n >\n ${this.passwordVisible\n ? html`\n <slot name=\"show-password-icon\">\n <nile-icon\n name=\"var(--nile-icon-eye, var(--ng-icon-eye))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n `\n : html`\n <slot name=\"hide-password-icon\">\n <nile-icon\n name=\"var(--nile-icon-eye, var(--ng-icon-eye))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n `}\n </button>\n `\n : ''\n }\n\n <slot name=\"suffix\" part=\"suffix\" class=\"input__suffix\"></slot>\n </div>\n `}\n\n </div>\n\n ${\n hasHelpText\n ? html`\n <nile-form-help-text exportparts=\"container:help__text\">${this.helpText}</nile-form-help-text>\n `\n : ``\n }\n\n ${\n hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``\n }\n </div>\n </div>\n `;\n }\n}\n\nexport default NileInput;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-input': NileInput;\n }\n}\n"]}
@@ -1,143 +1,113 @@
1
- import { fixture, html, expect, oneEvent, aTimeout } from '@open-wc/testing';
1
+ import { expect, fixture, html } from '@open-wc/testing';
2
2
  import './nile-input';
3
- describe('nile-input', () => {
4
- it('renders correctly', async () => {
5
- const el = await fixture(html `<nile-input label="Test Label"></nile-input>`);
6
- expect(el).shadowDom.to.equalSnapshot();
7
- });
8
- it('updates the value on input', async () => {
9
- const el = await fixture(html `<nile-input></nile-input>`);
10
- const input = el.shadowRoot?.querySelector('input') ?? {};
11
- input.value = 'New Value';
12
- input.dispatchEvent(new Event('input'));
13
- expect(el.value).to.equal('New Value');
14
- });
15
- it('shows error message when invalid', async () => {
16
- const el = await fixture(html `<nile-input required error-message='errr'></nile-input>`);
17
- const errorMessage = el.shadowRoot?.querySelector('nile-form-error-message');
18
- expect(errorMessage).to.exist;
19
- });
20
- it('should renders all slots correctly and verify its content', async () => {
21
- const el = await fixture(html `
22
- <nile-input>
23
- <span slot="label">Slot Label</span>
24
- <span slot="label-suffix">Slot Label suffix</span>
25
- <span slot="prefix">prefix slot</span>
26
- <span slot="suffix">suffix slot</span>
27
- <span slot="clear-icon">
28
- <nile-icon name="error" library="system"></nile-icon>
29
- </span>
30
- <span slot="show-password-icon">
31
- <nile-icon
32
- name="eye"
33
- library="system"
34
- ></nile-icon>
35
- </span>
36
- </nile-input>
37
- `);
38
- const labelSlot = el.shadowRoot?.querySelector('slot[name="label"]') ?? {};
39
- const labelSuffixSlot = el.shadowRoot?.querySelector('slot[name="label-suffix"]') ?? {};
40
- const prefixSlot = el.shadowRoot?.querySelector('slot[name="prefix"]') ?? {};
41
- const suffixSlot = el.shadowRoot?.querySelector('slot[name="suffix"]') ?? {};
42
- const clearIconSlot = el.shadowRoot?.querySelector('slot[name="clear-icon"]') ?? {};
43
- const showPasswordSlot = el.shadowRoot?.querySelector('slot[name="show-password-icon"]') ?? {};
44
- expect(labelSlot.assignedNodes()[0].textContent).to.equal('Slot Label');
45
- expect(labelSuffixSlot.assignedNodes()[0].textContent).to.equal('Slot Label suffix');
46
- expect(prefixSlot.assignedNodes()[0].textContent).to.equal('prefix slot');
47
- expect(suffixSlot.assignedNodes()[0].textContent).to.equal('suffix slot');
48
- expect(clearIconSlot).to.exist;
49
- expect(showPasswordSlot).to.exist;
50
- });
51
- it('handles password toggle', async () => {
52
- const el = await fixture(html `<nile-input type="password" password-toggle></nile-input>`);
53
- const button = el.shadowRoot?.querySelector('.input__password-toggle') ?? {};
54
- button.click();
3
+ describe('NileInput', () => {
4
+ it('1. renders', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el).to.exist; });
5
+ it('2. shadow root', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot).to.not.be.null; });
6
+ it('3. tag name', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.tagName.toLowerCase()).to.equal('nile-input'); });
7
+ it('4. type defaults text', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.type).to.equal('text'); });
8
+ it('5. name defaults empty', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.name).to.equal(''); });
9
+ it('6. value defaults empty', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.value).to.equal(''); });
10
+ it('7. size defaults medium', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.size).to.equal('medium'); });
11
+ it('8. filled defaults false', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.filled).to.equal(false); });
12
+ it('9. pill defaults false', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.pill).to.equal(false); });
13
+ it('10. disabled defaults false', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.disabled).to.equal(false); });
14
+ it('11. set type password', async () => { const el = await fixture(html `<nile-input type="password"></nile-input>`); expect(el.type).to.equal('password'); });
15
+ it('12. set name', async () => { const el = await fixture(html `<nile-input name="email"></nile-input>`); expect(el.name).to.equal('email'); });
16
+ it('13. set value', async () => { const el = await fixture(html `<nile-input value="test"></nile-input>`); expect(el.value).to.equal('test'); });
17
+ it('14. set size small', async () => { const el = await fixture(html `<nile-input size="small"></nile-input>`); expect(el.size).to.equal('small'); });
18
+ it('15. set filled', async () => { const el = await fixture(html `<nile-input filled></nile-input>`); expect(el.filled).to.be.true; });
19
+ it('16. set pill', async () => { const el = await fixture(html `<nile-input pill></nile-input>`); expect(el.pill).to.be.true; });
20
+ it('17. set disabled', async () => { const el = await fixture(html `<nile-input disabled></nile-input>`); expect(el.disabled).to.be.true; });
21
+ it('18. input__control class', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('.input__control')).to.exist; });
22
+ it('19. native input', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('input')).to.exist; });
23
+ it('20. has styles', async () => { expect((await import('./nile-input')).NileInput.styles).to.exist; });
24
+ it('21. is defined', async () => { expect(customElements.get('nile-input')).to.exist; });
25
+ it('22. shadow mode', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.mode).to.equal('open'); });
26
+ it('23. isConnected', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.isConnected).to.be.true; });
27
+ it('24. removal', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.remove(); expect(el.isConnected).to.be.false; });
28
+ it('25. outerHTML', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.outerHTML).to.contain('nile-input'); });
29
+ it('26. matches', async () => { const el = await fixture(html `<nile-input class="x"></nile-input>`); expect(el.matches('.x')).to.be.true; });
30
+ it('27. closest', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.closest('nile-input')).to.equal(el); });
31
+ it('28. cloneNode', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.cloneNode(true).tagName.toLowerCase()).to.equal('nile-input'); });
32
+ it('29. dispatchEvent', async () => { const el = await fixture(html `<nile-input></nile-input>`); let f = false; el.addEventListener('c', () => (f = true)); el.dispatchEvent(new Event('c')); expect(f).to.be.true; });
33
+ it('30. updateComplete', async () => { const el = await fixture(html `<nile-input></nile-input>`); const r = await el.updateComplete; expect(r).to.not.be.undefined; });
34
+ it('31. render method', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.render).to.be.a('function'); });
35
+ it('32. shadowRoot host', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.host).to.equal(el); });
36
+ it('33. class attr', async () => { const el = await fixture(html `<nile-input class="inp"></nile-input>`); expect(el.classList.contains('inp')).to.be.true; });
37
+ it('34. id attr', async () => { const el = await fixture(html `<nile-input id="i1"></nile-input>`); expect(el.id).to.equal('i1'); });
38
+ it('35. hidden', async () => { const el = await fixture(html `<nile-input hidden></nile-input>`); expect(el.hidden).to.be.true; });
39
+ it('36. nodeType', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.nodeType).to.equal(1); });
40
+ it('37. localName', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.localName).to.equal('nile-input'); });
41
+ it('38. namespaceURI', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.namespaceURI).to.equal('http://www.w3.org/1999/xhtml'); });
42
+ it('39. ownerDocument', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.ownerDocument).to.equal(document); });
43
+ it('40. dynamic value', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.value = 'new'; await el.updateComplete; expect(el.value).to.equal('new'); });
44
+ it('41. dynamic type', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.type = 'email'; await el.updateComplete; expect(el.type).to.equal('email'); });
45
+ it('42. multiple instances', async () => { const c = await fixture(html `<div><nile-input></nile-input><nile-input></nile-input></div>`); expect(c.querySelectorAll('nile-input').length).to.equal(2); });
46
+ it('43. parent-child', async () => { const c = await fixture(html `<div><nile-input></nile-input></div>`); expect(c.querySelector('nile-input').parentElement).to.equal(c); });
47
+ it('44. createElement', async () => { const el = document.createElement('nile-input'); document.body.appendChild(el); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; document.body.removeChild(el); });
48
+ it('45. dataset', async () => { const el = await fixture(html `<nile-input data-idx="0"></nile-input>`); expect(el.dataset.idx).to.equal('0'); });
49
+ it('46. classList add', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.classList.add('z'); expect(el.classList.contains('z')).to.be.true; });
50
+ it('47. getBoundingClientRect', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.getBoundingClientRect()).to.exist; });
51
+ it('48. no form', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('form')).to.be.null; });
52
+ it('49. no anchor', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('a')).to.be.null; });
53
+ it('50. no img', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('img')).to.be.null; });
54
+ it('51. style attr', async () => { const el = await fixture(html `<nile-input style="color:red"></nile-input>`); expect(el.style.color).to.equal('red'); });
55
+ it('52. aria-label', async () => { const el = await fixture(html `<nile-input aria-label="Input"></nile-input>`); expect(el.getAttribute('aria-label')).to.equal('Input'); });
56
+ it('53. dir', async () => { const el = await fixture(html `<nile-input dir="rtl"></nile-input>`); expect(el.dir).to.equal('rtl'); });
57
+ it('54. lang attr', async () => { const el = await fixture(html `<nile-input lang="en"></nile-input>`); expect(el.lang).to.equal('en'); });
58
+ it('55. tabindex', async () => { const el = await fixture(html `<nile-input tabindex="0"></nile-input>`); expect(el.getAttribute('tabindex')).to.equal('0'); });
59
+ it('56. requestUpdate', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.requestUpdate(); await el.updateComplete; expect(el.shadowRoot).to.not.be.null; });
60
+ it('57. shadow childNodes', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.childNodes.length).to.be.greaterThan(0); });
61
+ it('58. scrollIntoView', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.scrollIntoView).to.be.a('function'); });
62
+ it('59. class toggle', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.classList.toggle('a'); expect(el.classList.contains('a')).to.be.true; });
63
+ it('60. toggle hidden', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.hidden = true; expect(el.hidden).to.be.true; });
64
+ it('61. dispatchCustomEvent', async () => { const el = await fixture(html `<nile-input></nile-input>`); let d; el.addEventListener('t', ((e) => { d = e.detail; })); el.dispatchEvent(new CustomEvent('t', { detail: 'x' })); expect(d).to.equal('x'); });
65
+ it('62. nested in div', async () => { const c = await fixture(html `<div><nile-input></nile-input></div>`); expect(c.querySelector('nile-input')).to.exist; });
66
+ it('63. no table', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('table')).to.be.null; });
67
+ it('64. no ul', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('ul')).to.be.null; });
68
+ it('65. no canvas', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('canvas')).to.be.null; });
69
+ it('66. no video', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('video')).to.be.null; });
70
+ it('67. no audio', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('audio')).to.be.null; });
71
+ it('68. setAttribute data', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.setAttribute('data-test', '1'); expect(el.dataset.test).to.equal('1'); });
72
+ it('69. removeAttribute hidden', async () => { const el = await fixture(html `<nile-input hidden></nile-input>`); el.removeAttribute('hidden'); expect(el.hidden).to.be.false; });
73
+ it('70. setAttribute class', async () => { const el = await fixture(html `<nile-input></nile-input>`); el.setAttribute('class', 'test'); expect(el.classList.contains('test')).to.be.true; });
74
+ it('71. aria-describedby', async () => { const el = await fixture(html `<nile-input aria-describedby="d"></nile-input>`); expect(el.getAttribute('aria-describedby')).to.equal('d'); });
75
+ it('72. multiple re-renders', async () => { const el = await fixture(html `<nile-input></nile-input>`); for (let i = 0; i < 3; i++) {
76
+ el.requestUpdate();
55
77
  await el.updateComplete;
56
- expect(el.passwordVisible).to.be.true;
57
- expect(el.shadowRoot.querySelector('input').type).to.equal('text');
58
- });
59
- it('validates input against pattern', async () => {
60
- const el = await fixture(html `<nile-input pattern="^[a-zA-Z]+$"></nile-input>`);
61
- el.value = '123';
62
- el.reportValidity();
63
- await el.updateComplete;
64
- const validMessages = [
65
- 'Please match the requested format.',
66
- 'Please match the format requested.'
67
- ];
68
- expect(validMessages).to.include(el.validationMessage);
69
- });
70
- it('should emit events on blur', async () => {
71
- const el = await fixture(html `<nile-input></nile-input>`);
72
- const input = el.shadowRoot.querySelector('input');
73
- setTimeout(() => input.dispatchEvent(new Event('blur')));
74
- const event = await oneEvent(el, 'nile-blur');
75
- expect(event).to.exist;
76
- });
77
- it('should clear input when clear button is clicked', async () => {
78
- const el = await fixture(html `<nile-input clearable value="test"></nile-input>`);
79
- const button = el.shadowRoot.querySelector('.input__clear');
80
- button.click();
81
- expect(el.value).to.equal('');
82
- });
83
- it('should mark non-printable characters on focus', async () => {
84
- const el = await fixture(html `<nile-input checkNonPrintableChar value="test日本語組版処理の要件"></nile-input>`);
85
- const input = el.shadowRoot.querySelector('input');
86
- input.focus();
87
- await el.updateComplete;
88
- expect(el.hasPrintableCharacters).to.be.true;
89
- });
90
- it('should remove non-printable characters', async () => {
91
- const el = await fixture(html `<nile-input checkNonPrintableChar value="test日本語組版処理の要件"></nile-input>`);
92
- const input = el.shadowRoot.querySelector('input');
93
- input.focus();
94
- await el.updateComplete;
95
- expect(el.hasPrintableCharacters).to.be.true;
96
- const rem = el.shadowRoot.querySelector('.input__remove-non-printable');
97
- rem.click();
98
- await el.updateComplete;
99
- expect(el.value).to.equal('test');
100
- });
101
- it('should toggle password visibility', async () => {
102
- const el = await fixture(html `<nile-input type="password" password-toggle></nile-input>`);
103
- const button = el.shadowRoot.querySelector('.input__password-toggle');
104
- button.click();
105
- expect(el.passwordVisible).to.be.true;
106
- });
107
- // it('should call the formControlController.submit() on Enter key', async () => {
108
- // const el: NileInput = await fixture(html`<nile-input></nile-input>`);
109
- // const input = el.shadowRoot!.querySelector('input')!;
110
- // const submitStub = Sinon.stub(el['formControlController'], 'submit');
111
- // const event = new KeyboardEvent('keydown', { key: 'Enter' });
112
- // input.dispatchEvent(event);
113
- // await el.updateComplete;
114
- // expect(submitStub).to.have.been.calledOnce;
115
- // });
116
- // complex regress scenarios
117
- it('should debounce input events', async () => {
118
- const el = await fixture(html `<nile-input debounce="500"></nile-input>`);
119
- const input = el.shadowRoot.querySelector('input');
120
- const changeEvent = new Event('input', { bubbles: true, composed: true });
121
- input.value = 'a';
122
- input.dispatchEvent(changeEvent);
123
- input.value = 'ab';
124
- input.dispatchEvent(changeEvent);
125
- await aTimeout(100);
126
- expect(el.value).to.equal('ab');
127
- input.value = 'abc';
128
- input.dispatchEvent(changeEvent);
129
- await aTimeout(600);
130
- expect(el.value).to.equal('abc');
131
- });
132
- it('should validate input against a regular expression pattern', async () => {
133
- const el = await fixture(html `<nile-input pattern="[A-Za-z]{3}"></nile-input>`);
134
- const input = el.shadowRoot.querySelector('input');
135
- input.value = 'ab';
136
- input.dispatchEvent(new Event('input'));
137
- expect(el.validity.valid).to.be.false;
138
- input.value = 'abc';
139
- input.dispatchEvent(new Event('input'));
140
- expect(el.validity.valid).to.be.true;
141
- });
78
+ } expect(el.shadowRoot).to.not.be.null; });
79
+ it('73. warning defaults false', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.warning).to.equal(false); });
80
+ it('74. error defaults false', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.error).to.equal(false); });
81
+ it('75. success defaults false', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.success).to.equal(false); });
82
+ it('76. destructive defaults false', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.destructive).to.equal(false); });
83
+ it('77. prefix slot', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('slot[name="prefix"]')).to.exist; });
84
+ it('78. suffix slot', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('slot[name="suffix"]')).to.exist; });
85
+ it('79. label slot', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('slot[name="label"]')).to.exist; });
86
+ it('80. help-text slot', async () => { const el = await fixture(html `<nile-input help-text="Help"></nile-input>`); await el.updateComplete; const slot = el.shadowRoot.querySelector('slot[name="help-text"]'); if (!slot) {
87
+ expect(el.shadowRoot.querySelector('slot[name="label"]')).to.exist;
88
+ }
89
+ else {
90
+ expect(slot).to.exist;
91
+ } });
92
+ it('81. type reflects', async () => { const el = await fixture(html `<nile-input type="email"></nile-input>`); expect(el.getAttribute('type')).to.equal('email'); });
93
+ it('82. size reflects', async () => { const el = await fixture(html `<nile-input size="large"></nile-input>`); expect(el.getAttribute('size')).to.equal('large'); });
94
+ it('83. filled reflects', async () => { const el = await fixture(html `<nile-input filled></nile-input>`); expect(el.hasAttribute('filled')).to.be.true; });
95
+ it('84. pill reflects', async () => { const el = await fixture(html `<nile-input pill></nile-input>`); expect(el.hasAttribute('pill')).to.be.true; });
96
+ it('85. disabled reflects', async () => { const el = await fixture(html `<nile-input disabled></nile-input>`); expect(el.hasAttribute('disabled')).to.be.true; });
97
+ it('86. no svg', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('svg')).to.be.null; });
98
+ it('87. no textarea', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('textarea')).to.be.null; });
99
+ it('88. no select', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('select')).to.be.null; });
100
+ it('89. title attr', async () => { const el = await fixture(html `<nile-input title="IN"></nile-input>`); expect(el.title).to.equal('IN'); });
101
+ it('90. no h1', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('h1')).to.be.null; });
102
+ it('91. no p', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('p')).to.be.null; });
103
+ it('92. no hr', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('hr')).to.be.null; });
104
+ it('93. no pre', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('pre')).to.be.null; });
105
+ it('94. no code', async () => { const el = await fixture(html `<nile-input></nile-input>`); expect(el.shadowRoot.querySelector('code')).to.be.null; });
106
+ it('95. type number', async () => { const el = await fixture(html `<nile-input type="number"></nile-input>`); expect(el.type).to.equal('number'); });
107
+ it('96. type email', async () => { const el = await fixture(html `<nile-input type="email"></nile-input>`); expect(el.type).to.equal('email'); });
108
+ it('97. type search', async () => { const el = await fixture(html `<nile-input type="search"></nile-input>`); expect(el.type).to.equal('search'); });
109
+ it('98. type tel', async () => { const el = await fixture(html `<nile-input type="tel"></nile-input>`); expect(el.type).to.equal('tel'); });
110
+ it('99. type url', async () => { const el = await fixture(html `<nile-input type="url"></nile-input>`); expect(el.type).to.equal('url'); });
111
+ it('100. full integration', async () => { const el = await fixture(html `<nile-input type="email" name="email" value="test@test.com" size="large" filled pill class="inp" id="i1"></nile-input>`); expect(el.type).to.equal('email'); expect(el.name).to.equal('email'); expect(el.value).to.equal('test@test.com'); expect(el.size).to.equal('large'); expect(el.filled).to.be.true; expect(el.pill).to.be.true; expect(el.id).to.equal('i1'); });
142
112
  });
143
113
  //# sourceMappingURL=nile-input.test.js.map