@nanoporetech-digital/components 1.14.1 → 1.15.0

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 (492) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/{algolia-data-4d5ee8da.js → algolia-data-a98ccf4f.js} +2 -2
  3. package/dist/cjs/algolia-data-a98ccf4f.js.map +1 -0
  4. package/dist/cjs/algoliasearch.umd-5dc661c5.js +12 -0
  5. package/dist/cjs/algoliasearch.umd-5dc661c5.js.map +1 -0
  6. package/dist/cjs/{component-store-4dfd3a12.js → component-store-8d99743e.js} +2 -2
  7. package/dist/cjs/{component-store-4dfd3a12.js.map → component-store-8d99743e.js.map} +1 -1
  8. package/dist/cjs/{global-befb7a64.js → global-aa92d50f.js} +5 -3
  9. package/dist/cjs/global-aa92d50f.js.map +1 -0
  10. package/dist/cjs/{index-197e7a3f.js → index-f12395b8.js} +3 -1
  11. package/dist/cjs/index-f12395b8.js.map +1 -0
  12. package/dist/cjs/loader.cjs.js +3 -3
  13. package/dist/cjs/nano-accordion.cjs.entry.js +1 -1
  14. package/dist/cjs/nano-alert.cjs.entry.js +2 -2
  15. package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
  16. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nano-algolia-input.cjs.entry.js +5 -5
  18. package/dist/cjs/nano-algolia-input.cjs.entry.js.map +1 -1
  19. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
  20. package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
  21. package/dist/cjs/nano-algolia.cjs.entry.js +5 -5
  22. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  23. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
  24. package/dist/cjs/nano-checkbox-group.cjs.entry.js +2 -2
  25. package/dist/cjs/nano-checkbox.cjs.entry.js +2 -2
  26. package/dist/cjs/nano-components.cjs.js +3 -3
  27. package/dist/cjs/nano-date-input.cjs.entry.js +43 -15
  28. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-date-picker_2.cjs.entry.js +31 -11
  30. package/dist/cjs/nano-date-picker_2.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-details.cjs.entry.js +14 -8
  32. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nano-dialog.cjs.entry.js +5 -9
  34. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  35. package/dist/cjs/nano-drawer.cjs.entry.js +1 -1
  36. package/dist/cjs/nano-file-upload.cjs.entry.js +7 -14
  37. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nano-global-nav.cjs.entry.js +4 -4
  39. package/dist/cjs/nano-global-search-results.cjs.entry.js +2 -2
  40. package/dist/cjs/nano-grid_3.cjs.entry.js +1 -1
  41. package/dist/cjs/nano-hero.cjs.entry.js +1 -1
  42. package/dist/cjs/nano-icon-button.cjs.entry.js +2 -2
  43. package/dist/cjs/nano-icon.cjs.entry.js +1 -1
  44. package/dist/cjs/nano-input.cjs.entry.js +12 -2
  45. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nano-menu-drawer.cjs.entry.js +1 -1
  47. package/dist/cjs/nano-menu.cjs.entry.js +2 -2
  48. package/dist/cjs/nano-nav-item_2.cjs.entry.js +2 -2
  49. package/dist/cjs/nano-range.cjs.entry.js +2 -2
  50. package/dist/cjs/nano-rating.cjs.entry.js +1 -1
  51. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
  52. package/dist/cjs/nano-select-option.cjs.entry.js +1 -1
  53. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  54. package/dist/cjs/nano-slides.cjs.entry.js +2 -2
  55. package/dist/cjs/nano-spinner.cjs.entry.js +2 -2
  56. package/dist/cjs/nano-sticker.cjs.entry.js +1 -1
  57. package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
  58. package/dist/cjs/nano-tab-group.cjs.entry.js +3 -3
  59. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  60. package/dist/cjs/nano-tooltip.cjs.entry.js +1 -1
  61. package/dist/collection/components/accordion/accordion.js +1 -1
  62. package/dist/collection/components/alert/alert.css +3 -3
  63. package/dist/collection/components/alert/alert.js +1 -1
  64. package/dist/collection/components/algolia/algolia-data.js.map +1 -1
  65. package/dist/collection/components/algolia/algolia-filter.js +3 -3
  66. package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
  67. package/dist/collection/components/algolia/algolia-input.js +7 -7
  68. package/dist/collection/components/algolia/algolia-input.js.map +1 -1
  69. package/dist/collection/components/algolia/algolia-results.js +1 -1
  70. package/dist/collection/components/algolia/algolia.js +7 -7
  71. package/dist/collection/components/algolia/algolia.js.map +1 -1
  72. package/dist/collection/components/checkbox/__tests__/__fixtures__/checkbox-templates.js +7 -2
  73. package/dist/collection/components/checkbox/__tests__/__fixtures__/checkbox-templates.js.map +1 -1
  74. package/dist/collection/components/checkbox/checkbox-group.css +2 -2
  75. package/dist/collection/components/checkbox/checkbox-group.js +2 -2
  76. package/dist/collection/components/checkbox/checkbox.css +2 -2
  77. package/dist/collection/components/checkbox/checkbox.js +3 -3
  78. package/dist/collection/components/date-input/date-input.css +0 -4
  79. package/dist/collection/components/date-input/date-input.js +70 -21
  80. package/dist/collection/components/date-input/date-input.js.map +1 -1
  81. package/dist/collection/components/date-picker/date-picker.css +15 -4
  82. package/dist/collection/components/date-picker/date-picker.js +44 -16
  83. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  84. package/dist/collection/components/details/details.css +3 -3
  85. package/dist/collection/components/details/details.js +13 -7
  86. package/dist/collection/components/details/details.js.map +1 -1
  87. package/dist/collection/components/dialog/dialog.css +2 -3
  88. package/dist/collection/components/dialog/dialog.js +6 -10
  89. package/dist/collection/components/dialog/dialog.js.map +1 -1
  90. package/dist/collection/components/dropdown/dropdown.js +2 -1
  91. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  92. package/dist/collection/components/file-upload/file-upload-interface.js.map +1 -1
  93. package/dist/collection/components/file-upload/file-upload.css +9 -17
  94. package/dist/collection/components/file-upload/file-upload.js +17 -20
  95. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  96. package/dist/collection/components/global-nav/global-nav.css +2 -2
  97. package/dist/collection/components/global-nav/global-nav.js +4 -4
  98. package/dist/collection/components/global-search-results/global-search-results.css +3 -3
  99. package/dist/collection/components/grid/grid-item.js +1 -1
  100. package/dist/collection/components/icon/icon.js +1 -1
  101. package/dist/collection/components/icon-button/icon-button.css +2 -2
  102. package/dist/collection/components/input/input.css +5 -6
  103. package/dist/collection/components/input/input.js +25 -6
  104. package/dist/collection/components/input/input.js.map +1 -1
  105. package/dist/collection/components/menu/menu.css +7 -7
  106. package/dist/collection/components/nav-item/nav-item.js +4 -4
  107. package/dist/collection/components/range/range.css +4 -4
  108. package/dist/collection/components/range/range.js +4 -4
  109. package/dist/collection/components/resize-observe/resize-observe.js +1 -1
  110. package/dist/collection/components/select/select.css +4 -4
  111. package/dist/collection/components/select/select.js +5 -5
  112. package/dist/collection/components/slides/slides.css +2 -2
  113. package/dist/collection/components/slides/slides.js +7 -7
  114. package/dist/collection/components/spinner/spinner.css +2 -2
  115. package/dist/collection/components/tabs/tab-group.css +6 -6
  116. package/dist/collection/components/tabs/tab-group.js +2 -2
  117. package/dist/collection/components/tabs/tab.css +2 -2
  118. package/dist/collection/global/script/global.js +4 -2
  119. package/dist/collection/global/script/global.js.map +1 -1
  120. package/dist/collection/utils/testing/index.js +91 -18
  121. package/dist/collection/utils/testing/index.js.map +1 -1
  122. package/dist/custom-elements/index.js +131 -74
  123. package/dist/custom-elements/index.js.map +1 -1
  124. package/dist/esm/{algolia-data-6db3f5f2.js → algolia-data-b31a9800.js} +2 -2
  125. package/dist/esm/algolia-data-b31a9800.js.map +1 -0
  126. package/dist/esm/algoliasearch.umd-7ecbe0e9.js +10 -0
  127. package/dist/esm/algoliasearch.umd-7ecbe0e9.js.map +1 -0
  128. package/dist/esm/{component-store-6736ee0f.js → component-store-93172454.js} +2 -2
  129. package/dist/esm/{component-store-6736ee0f.js.map → component-store-93172454.js.map} +1 -1
  130. package/dist/esm/{global-c85d24a2.js → global-118ae701.js} +5 -3
  131. package/dist/esm/global-118ae701.js.map +1 -0
  132. package/dist/esm/{index-8e9bc704.js → index-912ef959.js} +3 -1
  133. package/dist/esm/index-912ef959.js.map +1 -0
  134. package/dist/esm/loader.js +3 -3
  135. package/dist/esm/nano-accordion.entry.js +1 -1
  136. package/dist/esm/nano-alert.entry.js +2 -2
  137. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  138. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  139. package/dist/esm/nano-algolia-input.entry.js +5 -5
  140. package/dist/esm/nano-algolia-input.entry.js.map +1 -1
  141. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  142. package/dist/esm/nano-algolia-results.entry.js +2 -2
  143. package/dist/esm/nano-algolia.entry.js +5 -5
  144. package/dist/esm/nano-algolia.entry.js.map +1 -1
  145. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  146. package/dist/esm/nano-checkbox-group.entry.js +2 -2
  147. package/dist/esm/nano-checkbox.entry.js +2 -2
  148. package/dist/esm/nano-components.js +3 -3
  149. package/dist/esm/nano-date-input.entry.js +43 -15
  150. package/dist/esm/nano-date-input.entry.js.map +1 -1
  151. package/dist/esm/nano-date-picker_2.entry.js +31 -11
  152. package/dist/esm/nano-date-picker_2.entry.js.map +1 -1
  153. package/dist/esm/nano-details.entry.js +14 -8
  154. package/dist/esm/nano-details.entry.js.map +1 -1
  155. package/dist/esm/nano-dialog.entry.js +5 -9
  156. package/dist/esm/nano-dialog.entry.js.map +1 -1
  157. package/dist/esm/nano-drawer.entry.js +1 -1
  158. package/dist/esm/nano-file-upload.entry.js +7 -14
  159. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  160. package/dist/esm/nano-global-nav.entry.js +4 -4
  161. package/dist/esm/nano-global-search-results.entry.js +2 -2
  162. package/dist/esm/nano-grid_3.entry.js +1 -1
  163. package/dist/esm/nano-hero.entry.js +1 -1
  164. package/dist/esm/nano-icon-button.entry.js +2 -2
  165. package/dist/esm/nano-icon.entry.js +1 -1
  166. package/dist/esm/nano-input.entry.js +12 -2
  167. package/dist/esm/nano-input.entry.js.map +1 -1
  168. package/dist/esm/nano-menu-drawer.entry.js +1 -1
  169. package/dist/esm/nano-menu.entry.js +2 -2
  170. package/dist/esm/nano-nav-item_2.entry.js +2 -2
  171. package/dist/esm/nano-range.entry.js +2 -2
  172. package/dist/esm/nano-rating.entry.js +1 -1
  173. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  174. package/dist/esm/nano-select-option.entry.js +1 -1
  175. package/dist/esm/nano-slide.entry.js +1 -1
  176. package/dist/esm/nano-slides.entry.js +2 -2
  177. package/dist/esm/nano-spinner.entry.js +2 -2
  178. package/dist/esm/nano-sticker.entry.js +1 -1
  179. package/dist/esm/nano-tab-content.entry.js +1 -1
  180. package/dist/esm/nano-tab-group.entry.js +3 -3
  181. package/dist/esm/nano-tab.entry.js +2 -2
  182. package/dist/esm/nano-tooltip.entry.js +1 -1
  183. package/dist/esm-es5/{algolia-data-6db3f5f2.js → algolia-data-b31a9800.js} +2 -2
  184. package/dist/esm-es5/algolia-data-b31a9800.js.map +1 -0
  185. package/dist/esm-es5/algoliasearch.umd-7ecbe0e9.js +4 -0
  186. package/dist/esm-es5/algoliasearch.umd-7ecbe0e9.js.map +1 -0
  187. package/dist/esm-es5/{component-store-6736ee0f.js → component-store-93172454.js} +2 -2
  188. package/dist/esm-es5/{component-store-6736ee0f.js.map → component-store-93172454.js.map} +0 -0
  189. package/dist/esm-es5/{global-c85d24a2.js → global-118ae701.js} +2 -2
  190. package/dist/esm-es5/global-118ae701.js.map +1 -0
  191. package/dist/esm-es5/index-912ef959.js +2 -0
  192. package/dist/esm-es5/index-912ef959.js.map +1 -0
  193. package/dist/esm-es5/loader.js +1 -1
  194. package/dist/esm-es5/loader.js.map +1 -1
  195. package/dist/esm-es5/nano-accordion.entry.js +1 -1
  196. package/dist/esm-es5/nano-alert.entry.js +1 -1
  197. package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
  198. package/dist/esm-es5/nano-algolia-filter.entry.js.map +1 -1
  199. package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
  200. package/dist/esm-es5/nano-algolia-input.entry.js.map +1 -1
  201. package/dist/esm-es5/nano-algolia-pagination.entry.js +1 -1
  202. package/dist/esm-es5/nano-algolia-results.entry.js +1 -1
  203. package/dist/esm-es5/nano-algolia.entry.js +1 -1
  204. package/dist/esm-es5/nano-algolia.entry.js.map +1 -1
  205. package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
  206. package/dist/esm-es5/nano-checkbox-group.entry.js +1 -1
  207. package/dist/esm-es5/nano-checkbox.entry.js +1 -1
  208. package/dist/esm-es5/nano-components.js +1 -1
  209. package/dist/esm-es5/nano-components.js.map +1 -1
  210. package/dist/esm-es5/nano-date-input.entry.js +1 -1
  211. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  212. package/dist/esm-es5/nano-date-picker_2.entry.js +1 -1
  213. package/dist/esm-es5/nano-date-picker_2.entry.js.map +1 -1
  214. package/dist/esm-es5/nano-details.entry.js +1 -1
  215. package/dist/esm-es5/nano-details.entry.js.map +1 -1
  216. package/dist/esm-es5/nano-dialog.entry.js +1 -1
  217. package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
  218. package/dist/esm-es5/nano-drawer.entry.js +1 -1
  219. package/dist/esm-es5/nano-file-upload.entry.js +1 -1
  220. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  221. package/dist/esm-es5/nano-global-nav.entry.js +1 -1
  222. package/dist/esm-es5/nano-global-search-results.entry.js +1 -1
  223. package/dist/esm-es5/nano-grid_3.entry.js +1 -1
  224. package/dist/esm-es5/nano-hero.entry.js +1 -1
  225. package/dist/esm-es5/nano-icon-button.entry.js +1 -1
  226. package/dist/esm-es5/nano-icon.entry.js +1 -1
  227. package/dist/esm-es5/nano-input.entry.js +1 -1
  228. package/dist/esm-es5/nano-input.entry.js.map +1 -1
  229. package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
  230. package/dist/esm-es5/nano-menu.entry.js +1 -1
  231. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  232. package/dist/esm-es5/nano-range.entry.js +1 -1
  233. package/dist/esm-es5/nano-rating.entry.js +1 -1
  234. package/dist/esm-es5/nano-resize-observe_2.entry.js +1 -1
  235. package/dist/esm-es5/nano-select-option.entry.js +1 -1
  236. package/dist/esm-es5/nano-slide.entry.js +1 -1
  237. package/dist/esm-es5/nano-slides.entry.js +2 -2
  238. package/dist/esm-es5/nano-spinner.entry.js +1 -1
  239. package/dist/esm-es5/nano-sticker.entry.js +1 -1
  240. package/dist/esm-es5/nano-tab-content.entry.js +1 -1
  241. package/dist/esm-es5/nano-tab-group.entry.js +1 -1
  242. package/dist/esm-es5/nano-tab.entry.js +1 -1
  243. package/dist/esm-es5/nano-tooltip.entry.js +1 -1
  244. package/dist/nano-components/nano-components.esm.js +1 -1
  245. package/dist/nano-components/nano-components.esm.js.map +1 -1
  246. package/dist/nano-components/nano-components.js +1 -1
  247. package/dist/nano-components/{p-dbd71a33.system.entry.js → p-007c6041.system.entry.js} +2 -2
  248. package/dist/nano-components/{p-dbd71a33.system.entry.js.map → p-007c6041.system.entry.js.map} +0 -0
  249. package/dist/nano-components/{p-83bf885b.entry.js → p-02177814.entry.js} +2 -2
  250. package/dist/nano-components/{p-83bf885b.entry.js.map → p-02177814.entry.js.map} +0 -0
  251. package/dist/nano-components/{p-df2764c8.system.entry.js → p-046af455.system.entry.js} +2 -2
  252. package/dist/nano-components/{p-df2764c8.system.entry.js.map → p-046af455.system.entry.js.map} +0 -0
  253. package/dist/nano-components/p-05c062ae.js +4 -0
  254. package/dist/nano-components/p-05c062ae.js.map +1 -0
  255. package/dist/nano-components/{p-4d17169a.entry.js → p-104a9d64.entry.js} +2 -2
  256. package/dist/nano-components/p-104a9d64.entry.js.map +1 -0
  257. package/dist/nano-components/{p-55b80a92.system.entry.js → p-10f24f67.system.entry.js} +2 -2
  258. package/dist/nano-components/{p-55b80a92.system.entry.js.map → p-10f24f67.system.entry.js.map} +0 -0
  259. package/dist/nano-components/{p-6403dd02.system.entry.js → p-1c7614c4.system.entry.js} +2 -2
  260. package/dist/nano-components/p-1c7614c4.system.entry.js.map +1 -0
  261. package/dist/nano-components/{p-007c6ccc.system.entry.js → p-1d16e897.system.entry.js} +2 -2
  262. package/dist/nano-components/{p-007c6ccc.system.entry.js.map → p-1d16e897.system.entry.js.map} +0 -0
  263. package/dist/nano-components/{p-daf1462f.system.entry.js → p-21a6f295.system.entry.js} +2 -2
  264. package/dist/nano-components/{p-daf1462f.system.entry.js.map → p-21a6f295.system.entry.js.map} +0 -0
  265. package/dist/nano-components/{p-acbc08ea.system.entry.js → p-273b19b0.system.entry.js} +2 -2
  266. package/dist/nano-components/{p-acbc08ea.system.entry.js.map → p-273b19b0.system.entry.js.map} +0 -0
  267. package/dist/nano-components/p-28123e6e.entry.js +2 -0
  268. package/dist/nano-components/p-28123e6e.entry.js.map +1 -0
  269. package/dist/nano-components/{p-f1cd2d9b.entry.js → p-2ae39fa1.entry.js} +2 -2
  270. package/dist/nano-components/{p-f1cd2d9b.entry.js.map → p-2ae39fa1.entry.js.map} +0 -0
  271. package/dist/nano-components/{p-9393bfbb.system.entry.js → p-2edaf0eb.system.entry.js} +3 -3
  272. package/dist/nano-components/{p-9393bfbb.system.entry.js.map → p-2edaf0eb.system.entry.js.map} +0 -0
  273. package/dist/nano-components/{p-e7e898f5.system.entry.js → p-2f876f68.system.entry.js} +2 -2
  274. package/dist/nano-components/{p-e7e898f5.system.entry.js.map → p-2f876f68.system.entry.js.map} +0 -0
  275. package/dist/nano-components/{p-19962dda.system.entry.js → p-305ba54b.system.entry.js} +2 -2
  276. package/dist/nano-components/{p-19962dda.system.entry.js.map → p-305ba54b.system.entry.js.map} +0 -0
  277. package/dist/nano-components/{p-5f9e92b0.system.entry.js → p-30a22cd0.system.entry.js} +2 -2
  278. package/dist/nano-components/{p-5f9e92b0.system.entry.js.map → p-30a22cd0.system.entry.js.map} +0 -0
  279. package/dist/nano-components/{p-cc8fb176.system.entry.js → p-31c52d0a.system.entry.js} +2 -2
  280. package/dist/nano-components/{p-cc8fb176.system.entry.js.map → p-31c52d0a.system.entry.js.map} +0 -0
  281. package/dist/nano-components/{p-c6f7ce64.system.entry.js → p-325f32b3.system.entry.js} +2 -2
  282. package/dist/nano-components/p-325f32b3.system.entry.js.map +1 -0
  283. package/dist/nano-components/{p-3f9a70f8.entry.js → p-3b2ea5fd.entry.js} +2 -2
  284. package/dist/nano-components/{p-3f9a70f8.entry.js.map → p-3b2ea5fd.entry.js.map} +0 -0
  285. package/dist/nano-components/{p-0283a2ec.js → p-4370f8ae.js} +2 -2
  286. package/dist/nano-components/p-4370f8ae.js.map +1 -0
  287. package/dist/nano-components/{p-8097b205.system.js → p-4647a31f.system.js} +2 -2
  288. package/dist/nano-components/{p-8097b205.system.js.map → p-4647a31f.system.js.map} +0 -0
  289. package/dist/nano-components/{p-447ed63d.system.entry.js → p-491096f0.system.entry.js} +2 -2
  290. package/dist/nano-components/p-491096f0.system.entry.js.map +1 -0
  291. package/dist/nano-components/{p-1de83f90.system.entry.js → p-4e21bfe1.system.entry.js} +2 -2
  292. package/dist/nano-components/{p-1de83f90.system.entry.js.map → p-4e21bfe1.system.entry.js.map} +0 -0
  293. package/dist/nano-components/{p-6855167a.entry.js → p-4fa0b560.entry.js} +2 -2
  294. package/dist/nano-components/{p-6855167a.entry.js.map → p-4fa0b560.entry.js.map} +0 -0
  295. package/dist/nano-components/{p-7db31794.system.entry.js → p-4fbc3c8b.system.entry.js} +2 -2
  296. package/dist/nano-components/{p-7db31794.system.entry.js.map → p-4fbc3c8b.system.entry.js.map} +0 -0
  297. package/dist/nano-components/{p-5198e4c6.system.js → p-508484f8.system.js} +2 -2
  298. package/dist/nano-components/p-508484f8.system.js.map +1 -0
  299. package/dist/nano-components/p-5672ebbb.system.entry.js +2 -0
  300. package/dist/nano-components/p-5672ebbb.system.entry.js.map +1 -0
  301. package/dist/nano-components/{p-7a8ea050.entry.js → p-574143b5.entry.js} +2 -2
  302. package/dist/nano-components/{p-7a8ea050.entry.js.map → p-574143b5.entry.js.map} +0 -0
  303. package/dist/nano-components/{p-ff530ea6.system.entry.js → p-57434dc5.system.entry.js} +2 -2
  304. package/dist/nano-components/{p-ff530ea6.system.entry.js.map → p-57434dc5.system.entry.js.map} +0 -0
  305. package/dist/nano-components/{p-44cf7aeb.entry.js → p-574f1393.entry.js} +2 -2
  306. package/dist/nano-components/p-574f1393.entry.js.map +1 -0
  307. package/dist/nano-components/{p-24ad4b09.entry.js → p-580eac05.entry.js} +2 -2
  308. package/dist/nano-components/{p-24ad4b09.entry.js.map → p-580eac05.entry.js.map} +0 -0
  309. package/dist/nano-components/{p-fc9828c7.entry.js → p-59aba360.entry.js} +2 -2
  310. package/dist/nano-components/{p-fc9828c7.entry.js.map → p-59aba360.entry.js.map} +0 -0
  311. package/dist/nano-components/{p-c8945124.system.js → p-698a8ab3.system.js} +2 -2
  312. package/dist/nano-components/p-698a8ab3.system.js.map +1 -0
  313. package/dist/nano-components/{p-c05d2d62.entry.js → p-6a3eee01.entry.js} +2 -2
  314. package/dist/nano-components/{p-c05d2d62.entry.js.map → p-6a3eee01.entry.js.map} +0 -0
  315. package/dist/nano-components/{p-ddaa8946.entry.js → p-6aab52a0.entry.js} +2 -2
  316. package/dist/nano-components/p-6aab52a0.entry.js.map +1 -0
  317. package/dist/nano-components/{p-4b9a1f76.entry.js → p-6dc59ae8.entry.js} +2 -2
  318. package/dist/nano-components/{p-4b9a1f76.entry.js.map → p-6dc59ae8.entry.js.map} +0 -0
  319. package/dist/nano-components/{p-057177d7.entry.js → p-6eba639a.entry.js} +3 -3
  320. package/dist/nano-components/{p-057177d7.entry.js.map → p-6eba639a.entry.js.map} +0 -0
  321. package/dist/nano-components/{p-185dedd1.system.entry.js → p-73d969d0.system.entry.js} +2 -2
  322. package/dist/nano-components/{p-185dedd1.system.entry.js.map → p-73d969d0.system.entry.js.map} +0 -0
  323. package/dist/nano-components/{p-4a319e09.system.entry.js → p-7dc79f13.system.entry.js} +2 -2
  324. package/dist/nano-components/{p-4a319e09.system.entry.js.map → p-7dc79f13.system.entry.js.map} +0 -0
  325. package/dist/nano-components/{p-fd6ff03f.entry.js → p-7df31b1c.entry.js} +2 -2
  326. package/dist/nano-components/{p-fd6ff03f.entry.js.map → p-7df31b1c.entry.js.map} +0 -0
  327. package/dist/nano-components/{p-172053d0.system.entry.js → p-7e208086.system.entry.js} +2 -2
  328. package/dist/nano-components/{p-172053d0.system.entry.js.map → p-7e208086.system.entry.js.map} +0 -0
  329. package/dist/nano-components/{p-173755c4.system.entry.js → p-7e4129b4.system.entry.js} +2 -2
  330. package/dist/nano-components/{p-173755c4.system.entry.js.map → p-7e4129b4.system.entry.js.map} +0 -0
  331. package/dist/nano-components/{p-f3bb5f81.entry.js → p-7e68796f.entry.js} +2 -2
  332. package/dist/nano-components/{p-f3bb5f81.entry.js.map → p-7e68796f.entry.js.map} +0 -0
  333. package/dist/nano-components/{p-a17e6ab1.entry.js → p-81d7fd45.entry.js} +2 -2
  334. package/dist/nano-components/{p-a17e6ab1.entry.js.map → p-81d7fd45.entry.js.map} +0 -0
  335. package/dist/nano-components/{p-981f997c.entry.js → p-82571543.entry.js} +2 -2
  336. package/dist/nano-components/p-82571543.entry.js.map +1 -0
  337. package/dist/nano-components/{p-016c6482.system.entry.js → p-844a1134.system.entry.js} +2 -2
  338. package/dist/nano-components/{p-016c6482.system.entry.js.map → p-844a1134.system.entry.js.map} +0 -0
  339. package/dist/nano-components/p-8535a942.entry.js +2 -0
  340. package/dist/nano-components/{p-6d718c9a.entry.js.map → p-8535a942.entry.js.map} +1 -1
  341. package/dist/nano-components/{p-e422c66f.entry.js → p-8c1d85ae.entry.js} +2 -2
  342. package/dist/nano-components/{p-e422c66f.entry.js.map → p-8c1d85ae.entry.js.map} +0 -0
  343. package/dist/nano-components/{p-46f84983.system.entry.js → p-8ed6acea.system.entry.js} +2 -2
  344. package/dist/nano-components/{p-46f84983.system.entry.js.map → p-8ed6acea.system.entry.js.map} +0 -0
  345. package/dist/nano-components/p-9164e5e2.system.entry.js +2 -0
  346. package/dist/nano-components/p-9164e5e2.system.entry.js.map +1 -0
  347. package/dist/nano-components/{p-896b7462.system.entry.js → p-9371d81b.system.entry.js} +2 -2
  348. package/dist/nano-components/{p-896b7462.system.entry.js.map → p-9371d81b.system.entry.js.map} +0 -0
  349. package/dist/nano-components/{p-b49d1e17.system.entry.js → p-95a4c3f2.system.entry.js} +2 -2
  350. package/dist/nano-components/{p-b49d1e17.system.entry.js.map → p-95a4c3f2.system.entry.js.map} +0 -0
  351. package/dist/nano-components/{p-06cc7501.entry.js → p-96ba0d00.entry.js} +2 -2
  352. package/dist/nano-components/{p-06cc7501.entry.js.map → p-96ba0d00.entry.js.map} +0 -0
  353. package/dist/nano-components/p-99637978.entry.js +2 -0
  354. package/dist/nano-components/p-99637978.entry.js.map +1 -0
  355. package/dist/nano-components/{p-56a8af2c.entry.js → p-9ccd832b.entry.js} +2 -2
  356. package/dist/nano-components/{p-56a8af2c.entry.js.map → p-9ccd832b.entry.js.map} +0 -0
  357. package/dist/nano-components/{p-2116ecb5.js → p-a1680208.js} +2 -2
  358. package/dist/nano-components/{p-2116ecb5.js.map → p-a1680208.js.map} +0 -0
  359. package/dist/nano-components/{p-b4a53bea.entry.js → p-a53a193c.entry.js} +2 -2
  360. package/dist/nano-components/{p-b4a53bea.entry.js.map → p-a53a193c.entry.js.map} +0 -0
  361. package/dist/nano-components/{p-b74ba77b.system.entry.js → p-a7ac7964.system.entry.js} +2 -2
  362. package/dist/nano-components/{p-b74ba77b.system.entry.js.map → p-a7ac7964.system.entry.js.map} +0 -0
  363. package/dist/nano-components/{p-30c68e8e.system.entry.js → p-aadd8c31.system.entry.js} +2 -2
  364. package/dist/nano-components/{p-30c68e8e.system.entry.js.map → p-aadd8c31.system.entry.js.map} +0 -0
  365. package/dist/nano-components/p-ab666582.entry.js +2 -0
  366. package/dist/nano-components/p-ab666582.entry.js.map +1 -0
  367. package/dist/nano-components/p-acd5d0f0.system.entry.js +2 -0
  368. package/dist/nano-components/p-acd5d0f0.system.entry.js.map +1 -0
  369. package/dist/nano-components/p-af9f6453.system.js +2 -0
  370. package/dist/nano-components/p-af9f6453.system.js.map +1 -0
  371. package/dist/nano-components/p-b1d3ab54.system.entry.js +2 -0
  372. package/dist/nano-components/p-b1d3ab54.system.entry.js.map +1 -0
  373. package/dist/nano-components/{p-bd04677f.entry.js → p-b3131821.entry.js} +2 -2
  374. package/dist/nano-components/{p-bd04677f.entry.js.map → p-b3131821.entry.js.map} +0 -0
  375. package/dist/nano-components/{p-ef46375f.entry.js → p-b7a58722.entry.js} +2 -2
  376. package/dist/nano-components/{p-ef46375f.entry.js.map → p-b7a58722.entry.js.map} +0 -0
  377. package/dist/nano-components/p-bb0619e6.js +2 -0
  378. package/dist/nano-components/p-bb0619e6.js.map +1 -0
  379. package/dist/nano-components/{p-081356e2.entry.js → p-c3f861c5.entry.js} +2 -2
  380. package/dist/nano-components/{p-081356e2.entry.js.map → p-c3f861c5.entry.js.map} +0 -0
  381. package/dist/nano-components/{p-ab384425.system.entry.js → p-c655e010.system.entry.js} +2 -2
  382. package/dist/nano-components/{p-ab384425.system.entry.js.map → p-c655e010.system.entry.js.map} +0 -0
  383. package/dist/nano-components/p-c72b22be.entry.js +2 -0
  384. package/dist/nano-components/p-c72b22be.entry.js.map +1 -0
  385. package/dist/nano-components/{p-d7ddc7e3.entry.js → p-d250987a.entry.js} +2 -2
  386. package/dist/nano-components/{p-d7ddc7e3.entry.js.map → p-d250987a.entry.js.map} +0 -0
  387. package/dist/nano-components/{p-b1badcb1.system.entry.js → p-d393d10a.system.entry.js} +2 -2
  388. package/dist/nano-components/{p-b1badcb1.system.entry.js.map → p-d393d10a.system.entry.js.map} +0 -0
  389. package/dist/nano-components/{p-868872fa.entry.js → p-db271541.entry.js} +2 -2
  390. package/dist/nano-components/{p-868872fa.entry.js.map → p-db271541.entry.js.map} +0 -0
  391. package/dist/nano-components/p-dccd86ec.system.js +4 -0
  392. package/dist/nano-components/p-dccd86ec.system.js.map +1 -0
  393. package/dist/nano-components/p-e0cc37fb.entry.js +2 -0
  394. package/dist/nano-components/{p-b19e2af5.entry.js.map → p-e0cc37fb.entry.js.map} +1 -1
  395. package/dist/nano-components/{p-db4ba5d8.system.entry.js → p-e28536b4.system.entry.js} +2 -2
  396. package/dist/nano-components/{p-db4ba5d8.system.entry.js.map → p-e28536b4.system.entry.js.map} +0 -0
  397. package/dist/nano-components/{p-b2804245.entry.js → p-ebf34764.entry.js} +2 -2
  398. package/dist/nano-components/{p-b2804245.entry.js.map → p-ebf34764.entry.js.map} +0 -0
  399. package/dist/nano-components/p-edddeaae.system.js +2 -0
  400. package/dist/nano-components/{p-f2d24fc6.system.js.map → p-edddeaae.system.js.map} +1 -1
  401. package/dist/nano-components/{p-d7a2499b.entry.js → p-ef5d9308.entry.js} +2 -2
  402. package/dist/nano-components/{p-d7a2499b.entry.js.map → p-ef5d9308.entry.js.map} +0 -0
  403. package/dist/nano-components/p-f234e064.system.entry.js +2 -0
  404. package/dist/nano-components/p-f234e064.system.entry.js.map +1 -0
  405. package/dist/nano-components/{p-6dae7bdd.system.entry.js → p-f27c9429.system.entry.js} +2 -2
  406. package/dist/nano-components/{p-6dae7bdd.system.entry.js.map → p-f27c9429.system.entry.js.map} +0 -0
  407. package/dist/nano-components/{p-3c25067f.entry.js → p-f3688bce.entry.js} +2 -2
  408. package/dist/nano-components/{p-3c25067f.entry.js.map → p-f3688bce.entry.js.map} +0 -0
  409. package/dist/nano-components/{p-66a5132f.system.entry.js → p-f86db7c0.system.entry.js} +2 -2
  410. package/dist/nano-components/{p-66a5132f.system.entry.js.map → p-f86db7c0.system.entry.js.map} +0 -0
  411. package/dist/nano-components/{p-7e259efb.system.entry.js → p-fa86645d.system.entry.js} +2 -2
  412. package/dist/nano-components/p-fa86645d.system.entry.js.map +1 -0
  413. package/dist/nano-components/{p-b5ff5764.entry.js → p-fdfa03d7.entry.js} +2 -2
  414. package/dist/nano-components/{p-b5ff5764.entry.js.map → p-fdfa03d7.entry.js.map} +0 -0
  415. package/dist/nano-components/p-ff2ff5b0.js +2 -0
  416. package/dist/nano-components/p-ff2ff5b0.js.map +1 -0
  417. package/dist/nano-components/p-ff5890b4.entry.js +2 -0
  418. package/dist/nano-components/p-ff5890b4.entry.js.map +1 -0
  419. package/dist/nano-components/{p-dbe19aba.entry.js → p-ffab923c.entry.js} +2 -2
  420. package/dist/nano-components/{p-dbe19aba.entry.js.map → p-ffab923c.entry.js.map} +0 -0
  421. package/dist/themes/nanopore.css +1 -1
  422. package/dist/types/components/date-input/date-input.d.ts +9 -0
  423. package/dist/types/components/date-picker/date-picker.d.ts +9 -4
  424. package/dist/types/components/details/details.d.ts +1 -0
  425. package/dist/types/components/file-upload/file-upload-interface.d.ts +4 -3
  426. package/dist/types/components/file-upload/file-upload.d.ts +2 -12
  427. package/dist/types/components/input/input.d.ts +1 -0
  428. package/dist/types/components.d.ts +16 -7
  429. package/dist/types/utils/testing/index.d.ts +4 -1
  430. package/docs-json.json +60 -31
  431. package/docs-vscode.json +4 -0
  432. package/package.json +8 -7
  433. package/dist/cjs/algolia-data-4d5ee8da.js.map +0 -1
  434. package/dist/cjs/algoliasearch.umd-51f0001d.js +0 -12
  435. package/dist/cjs/algoliasearch.umd-51f0001d.js.map +0 -1
  436. package/dist/cjs/global-befb7a64.js.map +0 -1
  437. package/dist/cjs/index-197e7a3f.js.map +0 -1
  438. package/dist/esm/algolia-data-6db3f5f2.js.map +0 -1
  439. package/dist/esm/algoliasearch.umd-2c129faa.js +0 -10
  440. package/dist/esm/algoliasearch.umd-2c129faa.js.map +0 -1
  441. package/dist/esm/global-c85d24a2.js.map +0 -1
  442. package/dist/esm/index-8e9bc704.js.map +0 -1
  443. package/dist/esm-es5/algolia-data-6db3f5f2.js.map +0 -1
  444. package/dist/esm-es5/algoliasearch.umd-2c129faa.js +0 -4
  445. package/dist/esm-es5/algoliasearch.umd-2c129faa.js.map +0 -1
  446. package/dist/esm-es5/global-c85d24a2.js.map +0 -1
  447. package/dist/esm-es5/index-8e9bc704.js +0 -2
  448. package/dist/esm-es5/index-8e9bc704.js.map +0 -1
  449. package/dist/nano-components/p-01e5c484.system.entry.js +0 -2
  450. package/dist/nano-components/p-01e5c484.system.entry.js.map +0 -1
  451. package/dist/nano-components/p-0283a2ec.js.map +0 -1
  452. package/dist/nano-components/p-03e4f363.system.js +0 -2
  453. package/dist/nano-components/p-03e4f363.system.js.map +0 -1
  454. package/dist/nano-components/p-19aecfb6.js +0 -2
  455. package/dist/nano-components/p-19aecfb6.js.map +0 -1
  456. package/dist/nano-components/p-23da4de5.js +0 -4
  457. package/dist/nano-components/p-23da4de5.js.map +0 -1
  458. package/dist/nano-components/p-2e2b4393.system.entry.js +0 -2
  459. package/dist/nano-components/p-2e2b4393.system.entry.js.map +0 -1
  460. package/dist/nano-components/p-32c68c7c.entry.js +0 -2
  461. package/dist/nano-components/p-32c68c7c.entry.js.map +0 -1
  462. package/dist/nano-components/p-38ed336b.entry.js +0 -2
  463. package/dist/nano-components/p-38ed336b.entry.js.map +0 -1
  464. package/dist/nano-components/p-447ed63d.system.entry.js.map +0 -1
  465. package/dist/nano-components/p-44cf7aeb.entry.js.map +0 -1
  466. package/dist/nano-components/p-4573be34.entry.js +0 -2
  467. package/dist/nano-components/p-4573be34.entry.js.map +0 -1
  468. package/dist/nano-components/p-4d17169a.entry.js.map +0 -1
  469. package/dist/nano-components/p-5198e4c6.system.js.map +0 -1
  470. package/dist/nano-components/p-6403dd02.system.entry.js.map +0 -1
  471. package/dist/nano-components/p-68eb3c21.entry.js +0 -2
  472. package/dist/nano-components/p-68eb3c21.entry.js.map +0 -1
  473. package/dist/nano-components/p-6d718c9a.entry.js +0 -2
  474. package/dist/nano-components/p-6edd2945.system.entry.js +0 -2
  475. package/dist/nano-components/p-6edd2945.system.entry.js.map +0 -1
  476. package/dist/nano-components/p-7e259efb.system.entry.js.map +0 -1
  477. package/dist/nano-components/p-981f997c.entry.js.map +0 -1
  478. package/dist/nano-components/p-b19e2af5.entry.js +0 -2
  479. package/dist/nano-components/p-c6f7ce64.system.entry.js.map +0 -1
  480. package/dist/nano-components/p-c8945124.system.js.map +0 -1
  481. package/dist/nano-components/p-cb750e49.system.js +0 -4
  482. package/dist/nano-components/p-cb750e49.system.js.map +0 -1
  483. package/dist/nano-components/p-ddaa8946.entry.js.map +0 -1
  484. package/dist/nano-components/p-eb090a2c.system.entry.js +0 -2
  485. package/dist/nano-components/p-eb090a2c.system.entry.js.map +0 -1
  486. package/dist/nano-components/p-f2d24fc6.system.js +0 -2
  487. package/dist/nano-components/p-f31f23ad.entry.js +0 -2
  488. package/dist/nano-components/p-f31f23ad.entry.js.map +0 -1
  489. package/dist/nano-components/p-fc189b6d.js +0 -2
  490. package/dist/nano-components/p-fc189b6d.js.map +0 -1
  491. package/dist/nano-components/p-fd4630d0.system.entry.js +0 -2
  492. package/dist/nano-components/p-fd4630d0.system.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["src/components/input/input.scss?tag=nano-input&encapsulation=scoped","src/components/input/input.tsx"],"names":["inputCss","Input","class_1","hostRef","_this","this","inputId","inputIds","didBlurAfterEdit","rtl","charCount","hasRendered","hasFocus","isLegacy","document","head","attachShadow","hasLabelSlot","hasButtonSlot","hasHelperSlot","_invalid","autocapitalise","autocomplete","autocorrect","autofocus","clearInput","debounce","disabled","validateOn","showInlineError","hideLabel","floatLabel","name","readonly","required","spellcheck","type","value","resize","rows","showCharCount","validate","ev","nativeInput","validity","valid","errorContainer","preventDefault","innerText","validationMessage","nanoValidate","emit","isValid","errorMessage","originalEvent","onInput","input","target","nanoInput","handleDocumentMouseDown","closestElement","el","tagName","toLowerCase","onBlur","handleDocumentKeyDown","key","setTimeout","activeElement","focusChanged","removeEventListener","nanoBlur","onFocus","addEventListener","nanoFocus","onKeydown","shouldClearOnEdit","hasValue","clearTextInput","stopPropagation","Object","defineProperty","prototype","shouldValidate","valueChanged","nanoChange","length","style","height","scrollHeight","debounceChanged","debounceEvent","reportValidity","validateFirst","setFocus","focus","getInputElement","Promise","resolve","showError","message","setCustomValidity","_a","clearOnEdit","undefined","getValue","slotChangeObserver","mo","disconnect","MutationObserver","processSlottedContent","observe","childList","subtree","querySelectorAll","querySelector","hasLegacySlot","existingInput","existingLabel","label","innerHTML","Array","from","attributes","filter","attr","specified","nodeName","map","nodeValue","children","forEach","n","parentNode","removeChild","connectedCallback","dispatchEvent","CustomEvent","detail","disconnectedCallback","componentDidLoad","componentWillLoad","renderLabel","labelId","position","h","class","htmlFor","id","visually-hide","placeholder","maxlength","render","moreId","ownerDocument","dir","Host","aria-disabled","assign","createColorClasses","color","has-value","has-focus","is-invalid","has-label","has-float-label","has-inline-button","legacy","textarea","ref","aria-labelledby","accept","autoCapitalize","autoComplete","autoCorrect","autoFocus","inputMode","inputmode","form","min","max","minLength","minlength","maxLength","multiple","pattern","readOnly","step","size","onKeyDown","onInvalid","native-input","resizable","tabindex","onTouchStart","onMouseDown","div"],"mappings":"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","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import './input.vars';\n\n:host {\n @include inputVars;\n\n position: relative;\n width: 100%;\n padding: 0 !important;\n color: currentColor;\n display: inline-block;\n}\n\n:host(.nano-color) {\n color: current-color(base);\n\n --input-border-style--focus: #{$input-border-style} var(--nano-color-tint, #{nano-color(primary, tint)});\n}\n\n:host([disabled]:not([disabled='false'])) {\n opacity: 0.7;\n}\n\nlabel,\n.more,\n.error,\n.helper {\n display: block;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &.visually-hide {\n @include visually-hide;\n }\n}\n\n.placeholder-as-label {\n @include padding(0, 0, 0, var(--padding-start));\n\n color: var(--label-color);\n position: absolute;\n font-size: 1.4em;\n transform: translateY(-50%);\n transform-origin: top left;\n top: 50%;\n transition: 0.125s ease-in;\n opacity: 0.7;\n\n :host(.has-focus) & {\n transform: translateY(-120%);\n font-size: 0.9em;\n }\n\n :host(.is-invalid) & {\n color: var(--invalid-msg-color);\n }\n\n :host(.has-value) & {\n transform: translateY(-120%);\n font-size: 0.9em;\n }\n\n & ~ .native-input-wrap {\n font-size: 1.1em;\n }\n\n .textarea & {\n top: 50%;\n\n :host(.has-focus) & {\n top: 0;\n transform: translateY(38%);\n }\n\n :host(.has-value) & {\n top: 0;\n transform: translateY(38%);\n }\n }\n}\n\n.label {\n color: var(--label-color);\n font-size: var(--label-font-size);\n padding-bottom: var(--padding-bottom);\n line-height: 1;\n display: flex;\n\n .label-placeholder {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .placeholder {\n @include margin(0, 5px, 0, 0);\n\n opacity: 0;\n appearance: none;\n transition: 0.3s ease opacity;\n font-size: 0.9em;\n }\n\n .charcount {\n @include margin(0, 0, 0, auto);\n\n font-size: 0.9em;\n opacity: 0.5;\n }\n\n :host(.has-value) & {\n .placeholder {\n opacity: 0.5;\n }\n }\n\n :host(.has-focus) & {\n color: var(--label-color--focus);\n }\n\n :host(.is-invalid) & {\n color: var(--label-color--invalid);\n }\n}\n\n.more {\n height: 1em;\n\n @include margin(4px, 0, var(--padding-bottom), 3px);\n\n position: relative;\n}\n\n.helper,\n.error {\n top: 0;\n left: 0;\n position: absolute;\n font-size: var(--invalid-msg-font-size);\n line-height: 1.2;\n transition: 0.3s ease-out opacity;\n width: auto;\n}\n\n.helper {\n font-style: italic;\n color: var(--help-msg-color);\n\n :host([show-inline-error]:not([show-inline-error='false']).is-invalid) & {\n opacity: 0;\n }\n}\n\n.error {\n opacity: 0;\n color: var(--invalid-msg-color);\n font-stretch: condensed;\n\n :host(.is-invalid) & {\n opacity: 1;\n }\n}\n\n.input {\n @include text-inherit();\n @include border-radius(var(--input-border-radius));\n\n width: 100%;\n padding: 0 !important;\n position: relative;\n flex: 1 0 auto;\n display: flex;\n background: var(--input-bg-color);\n border: var(--input-border-style);\n border-width: var(--input-border-width);\n font-size: var(--input-font-size);\n\n :host(.has-focus) & {\n background: var(--input-bg-color--focus);\n border: var(--input-border-style--focus);\n border-width: var(--input-border-width);\n z-index: 1;\n }\n\n :host(.is-invalid) & {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid);\n border-width: var(--input-border-width);\n }\n\n :host(.is-invalid.has-focus) & {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid-focus);\n border-width: var(--input-border-width);\n }\n}\n\n// Native Text Input\n// --------------------------------------------------\n\n.native-input-wrap {\n display: flex;\n align-items: stretch;\n flex: 1;\n}\n\n.native-input {\n @include border-radius(var(--input-border-radius));\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n @include text-inherit();\n\n text-overflow: ellipsis;\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n width: 100%;\n max-width: 100%;\n max-height: 100%;\n border: 0;\n outline: none;\n background: transparent;\n appearance: none;\n line-height: 2.5em;\n min-height: 2.5em;\n margin: 0;\n box-sizing: border-box;\n resize: none;\n overflow: hidden;\n\n &::placeholder {\n color: var(--placeholder-color);\n font-family: inherit;\n font-style: var(--placeholder-font-style);\n font-weight: var(--placeholder-font-weight);\n opacity: var(--placeholder-opacity);\n line-height: 2.5em;\n min-height: 2.5em;\n // text-overflow: ellipsis;\n }\n\n &::-moz-placeholder {\n line-height: 2.8em;\n text-overflow: ellipsis;\n }\n\n &:-webkit-autofill {\n background-color: transparent;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n appearance: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n }\n\n &.resizable {\n resize: vertical;\n overflow: auto;\n }\n\n .textarea & {\n line-height: 1.5em;\n padding-top: var(--padding-top);\n padding-bottom: var(--padding-bottom);\n white-space: pre-wrap;\n\n &::placeholder {\n line-height: 1.5em;\n }\n }\n\n .has-float-label & {\n padding-top: 1.4em;\n }\n\n .has-float-label.textarea & {\n padding-top: 1.8em;\n }\n\n .legacy & {\n box-sizing: content-box;\n }\n}\n\n.native-input[disabled] {\n opacity: 0.4;\n}\n\n// Clear Input Icon\n// --------------------------------------------------\n\n.input-clear-icon,\n.inline-button {\n @include margin(0);\n @include background-position(center);\n\n font-size: 1.4em;\n border: 0;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n display: flex;\n align-items: stretch;\n width: auto;\n\n .has-float-label & {\n right: 0;\n position: absolute;\n top: 0;\n height: 100%;\n left: auto;\n }\n\n .rtl.has-float-label & {\n right: auto;\n left: 0;\n }\n}\n\n.inline-button::slotted(*),\n.inline-button ::slotted(*) {\n font-size: 1em;\n\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n\n align-items: center;\n display: flex;\n height: 100%;\n\n :host([disabled]:not([disabled='false'])) & {\n pointer-events: none;\n }\n}\n\n.input-clear-icon {\n color: var(--clear-btn-color);\n padding: 0;\n opacity: 0;\n width: 0;\n appearance: none;\n align-items: center;\n overflow: hidden;\n\n :host(.is-invalid) & {\n color: var(--clear-btn-color--invalid);\n }\n\n :host(.has-value) & {\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n\n opacity: 1;\n width: auto;\n }\n\n &:hover {\n color: var(--clear-btn-color--hover);\n }\n\n .has-inline-button.has-float-label & {\n right: 1.5em;\n position: absolute;\n top: 0;\n height: 100%;\n left: auto;\n }\n\n .rtl.has-float-label.has-inline-button & {\n right: auto;\n left: 1.2em;\n }\n}\n","import {\n Build,\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n VNode,\n} from '@stencil/core';\n\nimport {\n Color,\n ControlValidity,\n ControlValidityEventDetail,\n InputChangeEventDetail,\n TextFieldTypes,\n} from '../../interface';\nimport {\n debounceEvent,\n testLegacyStyle,\n closestElement,\n createColorClasses,\n} from '../../utils';\n\n/**\n * The input component is a wrapper to the HTML input element with custom styling and additional functionality. It accepts most of the same properties as the HTML [input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input), but works great on desktop devices and integrates with the keyboard on mobile devices.\n\nIt is meant for text type inputs only, such as \"text\", \"password\", \"email\", \"number\", \"search\", \"tel\", and \"url\". It supports all standard text input events including keyup, keydown, keypress, and more.\n * @slot inline-button - suitable for inline action buttons or icons that may add extra contextual information\n * @slot label - if you do not set a label attribute, you can use this slot for more complex markup\n * @slot helper - helper text to accompany the form field underneath.\n * @slot legacy - you can use this slot to wrap any old inputs / labels. This will set appropriate defaults for the nano-input\n */\n@Component({\n tag: 'nano-input',\n styleUrl: 'input.scss',\n scoped: true,\n})\nexport class Input implements ComponentInterface {\n private nativeInput?: HTMLInputElement | HTMLTextAreaElement;\n private inputId = `nano-input-${inputIds++}`;\n private didBlurAfterEdit = false;\n private errorContainer?: HTMLDivElement;\n private rtl: boolean = false;\n private mo?: MutationObserver;\n private charCount = 0;\n private hasRendered = false;\n\n @State() hasFocus = false;\n @State() isLegacy = !document.head.attachShadow;\n @State() hasLabelSlot = false;\n @State() hasButtonSlot = false;\n @State() hasHelperSlot = false;\n\n @Element() el!: HTMLNanoInputElement;\n\n /**\n * This will be true when the control is in an invalid state.\n * Validity is determined by the `required` prop. Or if custom validity message is set. @readonly\n */\n @Prop({ reflect: true })\n get invalid() {\n return this._invalid;\n }\n @State() _invalid = false;\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\n\n /**\n * If the value of the type attribute is `\"file\"`, then this attribute will indicate the types of files that the server accepts, otherwise it will be ignored. The value must be a comma-separated list of unique content type specifiers.\n */\n @Prop() accept?: string;\n\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n */\n @Prop() autocapitalise: 'none' | 'sentences' | 'words' | 'characters' =\n 'none';\n\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n @Prop() autocomplete: 'on' | 'off' = 'off';\n\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n @Prop() autocorrect: 'on' | 'off' = 'off';\n\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.\n */\n @Prop() clearInput = false;\n\n /**\n * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types.\n */\n @Prop() clearOnEdit?: boolean;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `nanoChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search';\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submit';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * String to place within a label element. Alternatively you may use a label slot.\n */\n @Prop() label!: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.\n */\n @Prop() maxlength?: number;\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.\n */\n @Prop() minlength?: number;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"` or `\"file\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() pattern?: string;\n\n /**\n * Instructional text that shows before the input has a value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * The initial size of the control. This value is in pixels unless the value of the type attribute is `\"text\"` or `\"password\"`, in which case it is an integer number of characters. This attribute applies only when the `type` attribute is set to `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() size?: number;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: TextFieldTypes = 'text';\n\n /**\n * The form element to associate the select with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | null = '';\n\n /**\n * relevant to type=\"textarea\". Vertical resizing - enable / disable or make automatic.\n */\n @Prop() resize: 'true' | 'false' | 'auto' = 'auto';\n\n /**\n * relevant to type=\"textarea\". Default number of rows to show\n */\n @Prop() rows = 2;\n\n /**\n * relevant to type=\"textarea\".\n */\n @Prop() showCharCount = false;\n\n @Watch('minlength')\n @Watch('maxlength')\n @Watch('min')\n @Watch('max')\n @Watch('required')\n @Watch('disabled')\n @Watch('validateOn')\n @Watch('readonly')\n @Watch('pattern')\n @Watch('inputmode')\n protected shouldValidate() {\n if (!this.hasRendered) return;\n setTimeout(() => {\n if (this.validateOn === 'dirty') this.validate();\n }, 20);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.nanoChange.emit({ value: this.value });\n this.charCount = this.value.length;\n\n if (this.type === 'textarea' && this.resize === 'auto') {\n this.nativeInput.style.height = 'auto';\n if (this.value.length)\n this.nativeInput.style.height = this.nativeInput.scrollHeight + 'px';\n }\n\n setTimeout(() => {\n if (this.validateOn === 'dirty') this.validate();\n }, 20);\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() nanoInput!: EventEmitter<KeyboardEvent>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() nanoChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been created.\n * @internal\n */\n @Event() nanoDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been removed.\n * @internal\n */\n @Event() nanoDidUnload!: EventEmitter<void>;\n\n /**\n * Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`.\n */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n /**\n * Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }`\n */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n if (validateFirst) this.validate();\n return {\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n };\n }\n\n /**\n * Sets focus on the specified `nano-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n\n /**\n * Returns the native `<input>` element used under the hood.\n */\n @Method()\n getInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement> {\n return Promise.resolve(this.nativeInput!);\n }\n\n /**\n * Invalidate the field and show a custom error message. To clear the error you will need to re-call this method with an empty string.\n */\n @Method()\n async showError(message: string) {\n if (this.nativeInput) {\n this.nativeInput.setCustomValidity(message);\n this.validate();\n }\n }\n\n private shouldClearOnEdit() {\n const { type, clearOnEdit } = this;\n return clearOnEdit === undefined ? type === 'password' : clearOnEdit;\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private validate = (ev?: Event) => {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n if (!this.nativeInput.validity.valid) {\n if (this.showInlineError && !!this.errorContainer) {\n if (ev) ev.preventDefault();\n this.errorContainer.innerText = this.nativeInput.validationMessage;\n }\n this._invalid = true;\n } else this._invalid = false;\n\n this.nanoValidate.emit({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n originalEvent: ev,\n });\n };\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) this.value = input.value || '';\n this.nanoInput.emit(ev as KeyboardEvent);\n };\n\n private handleDocumentMouseDown = (ev: MouseEvent) => {\n const target = ev.target as HTMLElement;\n if (closestElement(this.el.tagName.toLowerCase(), target) !== this.el) {\n this.onBlur();\n }\n };\n\n private handleDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key !== 'Tab') return;\n setTimeout(() => {\n if (\n document.activeElement &&\n closestElement(\n this.el.tagName.toLowerCase(),\n document.activeElement\n ) !== this.el\n ) {\n this.onBlur();\n return;\n }\n });\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.focusChanged();\n if (this.validateOn === 'dirty') this.validate();\n\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.focusChanged();\n\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n\n this.nanoFocus.emit();\n };\n\n private onKeydown = () => {\n if (this.shouldClearOnEdit()) {\n // Did the input value change after it was blurred and edited?\n if (this.didBlurAfterEdit && this.hasValue()) {\n // Clear the input\n this.clearTextInput();\n }\n\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n };\n\n private clearTextInput = (ev?: Event) => {\n if (this.clearInput && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.value = '';\n /**\n * This is needed for clearOnEdit\n * Otherwise the value will not be cleared\n * if user is inside the input\n */\n if (this.nativeInput) {\n this.nativeInput.value = '';\n }\n };\n\n private focusChanged() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (!this.hasFocus && this.shouldClearOnEdit() && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n }\n\n private hasValue(): boolean {\n return this.getValue().length > 0;\n }\n\n private slotChangeObserver() {\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.el, { childList: true, subtree: true });\n }\n\n private processSlottedContent() {\n // see if we have label / button content\n this.hasLabelSlot = !!this.el.querySelectorAll('[slot=\"label\"]');\n this.hasButtonSlot = !!this.el.querySelector('[slot=\"inline-button\"]');\n this.hasHelperSlot = !!this.el.querySelector('[slot=\"helper\"]');\n\n const hasLegacySlot = !!this.el.querySelector('[slot=\"legacy\"]');\n if (!hasLegacySlot) return;\n\n let existingInput = this.el.querySelector(\n 'input:not([class*=\"sc-nano-input\"])'\n );\n let existingLabel = this.el.querySelector(\n 'label:not([class*=\"sc-nano-input\"])'\n );\n\n if (existingLabel) this.label = this.label || existingLabel.innerHTML;\n\n if (existingInput) {\n Array.from(existingInput.attributes)\n .filter((attr) => attr.specified && attr.nodeName in this)\n .map((attr) => (this[attr.nodeName] = attr.nodeValue));\n }\n\n if (existingLabel || existingInput) {\n // empty all slotted stuff\n let children = this.el.querySelectorAll('[slot=\"legacy\"]');\n if (children) children.forEach((n) => n.parentNode.removeChild(n));\n }\n }\n\n connectedCallback() {\n this.debounceChanged();\n if (Build.isBrowser) {\n this.el.dispatchEvent(\n new CustomEvent('nanoDidLoad', {\n detail: this.el,\n })\n );\n }\n testLegacyStyle(this.el);\n }\n\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(\n new CustomEvent('nanoDidUnload', {\n detail: this.el,\n })\n );\n }\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n this.hasRendered = true;\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n private renderLabel(labelId: string, position?: 'float'): VNode {\n if (!this.label && !this.hasLabelSlot) return;\n if (position === 'float') {\n return (\n <label class=\"placeholder-as-label\" htmlFor={this.inputId} id={labelId}>\n {this.label && this.label}\n {!this.label && this.hasLabelSlot && <slot name=\"label\" />}\n </label>\n );\n } else {\n return (\n <label\n class={{ label: true, 'visually-hide': this.hideLabel }}\n htmlFor={this.inputId}\n id={labelId}\n >\n <div class=\"label-placeholder\">\n {this.placeholder && this.hasValue() && this.rtl && (\n <span class=\"placeholder\">{this.placeholder} / </span>\n )}\n <span class=\"labeltext\">\n {this.label && this.label}\n {!this.label && this.hasLabelSlot && <slot name=\"label\" />}\n </span>\n {this.placeholder && this.hasValue() && !this.rtl && (\n <span class=\"placeholder\"> / {this.placeholder}</span>\n )}\n </div>\n {this.showCharCount && (\n <span class=\"charcount\">\n {this.maxlength\n ? this.maxlength - this.charCount + ' left'\n : this.charCount + ' characters'}\n </span>\n )}\n </label>\n );\n }\n }\n\n render() {\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot ? this.inputId + '-more' : '';\n this.rtl = (this.el.ownerDocument as Document).dir === 'rtl';\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n dir={this.rtl ? 'rtl' : null}\n class={{\n ...createColorClasses(this.color),\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'is-invalid': this._invalid,\n }}\n >\n {!this.floatLabel && this.renderLabel(labelId)}\n <div\n class={{\n 'has-label': this.label !== null && !this.floatLabel,\n 'has-float-label': this.label !== null && this.floatLabel,\n rtl: this.rtl,\n 'has-inline-button': this.hasButtonSlot,\n legacy: this.isLegacy,\n input: true,\n textarea: this.type === 'textarea',\n }}\n >\n {this.floatLabel && this.renderLabel(labelId, 'float')}\n <div class=\"native-input-wrap\">\n {this.type !== 'textarea' && (\n <input\n id={this.inputId}\n class=\"native-input\"\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n accept={this.accept}\n autoCapitalize={this.autocapitalise}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n placeholder={\n !this.floatLabel && this.placeholder ? this.placeholder : ''\n }\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n step={this.step}\n size={this.size}\n type={this.type}\n value={value}\n onInput={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n />\n )}\n {this.type === 'textarea' && (\n <textarea\n rows={this.floatLabel ? 1 : this.rows}\n id={this.inputId}\n class={{\n 'native-input': true,\n resizable: this.resize === 'true',\n }}\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n autoCapitalize={this.autocapitalise}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n minLength={this.minlength}\n maxLength={this.maxlength}\n name={this.name}\n placeholder={\n !this.floatLabel && this.placeholder ? this.placeholder : ''\n }\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n value={value}\n onInput={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n ></textarea>\n )}\n {this.clearInput && !this.readonly && !this.disabled && (\n <button\n type=\"button\"\n class=\"icon input-clear-icon\"\n tabindex=\"-1\"\n onTouchStart={this.clearTextInput}\n onMouseDown={this.clearTextInput}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n {this.hasButtonSlot ? (\n <span class=\"inline-button\">\n <slot name=\"inline-button\" />\n </span>\n ) : (\n ''\n )}\n </div>\n </div>\n {(this.showInlineError || this.hasHelperSlot) && (\n <div class=\"more\" id={moreId}>\n {!!this.showInlineError ? (\n <div class=\"error\" ref={(div) => (this.errorContainer = div)} />\n ) : (\n ''\n )}\n <div class=\"helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n )}\n <slot />\n </Host>\n );\n }\n}\n\nlet inputIds = 0;\n"]}
1
+ {"version":3,"sources":["src/components/input/input.scss?tag=nano-input&encapsulation=scoped","src/components/input/input.tsx"],"names":["inputCss","Input","class_1","hostRef","_this","this","inputId","inputIds","didBlurAfterEdit","rtl","charCount","hasRendered","hasFocus","isLegacy","document","head","attachShadow","hasLabelSlot","hasButtonSlot","hasHelperSlot","_invalid","autocapitalise","autocomplete","autocorrect","autofocus","clearInput","debounce","disabled","validateOn","showInlineError","hideLabel","floatLabel","name","readonly","required","spellcheck","type","value","resize","rows","showCharCount","validate","ev","nativeInput","validity","valid","errorContainer","preventDefault","innerText","validationMessage","nanoValidate","emit","isValid","errorMessage","originalEvent","onInput","input","target","nanoInput","handleDocumentMouseDown","closestElement","el","tagName","toLowerCase","onBlur","handleDocumentKeyDown","key","setTimeout","activeElement","focusChanged","removeEventListener","nanoBlur","onFocus","addEventListener","nanoFocus","onKeydown","shouldClearOnEdit","hasValue","clearTextInput","stopPropagation","Object","defineProperty","prototype","shouldValidate","valueChanged","nanoChange","length","style","height","scrollHeight","debounceChanged","debounceEvent","reportValidity","validateFirst","setFocus","focus","getInputElement","Promise","resolve","showError","message","setCustomValidity","onReset","e","form","querySelector","closest","_a","clearOnEdit","undefined","getValue","slotChangeObserver","mo","disconnect","MutationObserver","processSlottedContent","observe","childList","subtree","querySelectorAll","hasLegacySlot","existingInput","existingLabel","label","innerHTML","Array","from","attributes","filter","attr","specified","nodeName","map","nodeValue","children","forEach","n","parentNode","removeChild","connectedCallback","dispatchEvent","CustomEvent","detail","disconnectedCallback","componentDidLoad","_","componentWillLoad","renderLabel","labelId","position","h","class","htmlFor","id","visually-hide","placeholder","maxlength","render","moreId","ownerDocument","dir","Host","aria-disabled","assign","createColorClasses","color","has-value","has-focus","is-invalid","has-label","has-float-label","has-inline-button","legacy","textarea","ref","aria-labelledby","accept","autoCapitalize","autoComplete","autoCorrect","autoFocus","inputMode","inputmode","min","max","minLength","minlength","maxLength","multiple","pattern","readOnly","step","size","onKeyDown","onInvalid","native-input","resizable","tabindex","onTouchStart","onMouseDown","div"],"mappings":"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","sourcesContent":["@import '../../global/style/utilities/globals';\n@import '../../global/style/nano-theme/form';\n@import './input.vars';\n\n:host {\n @include inputVars;\n\n position: relative;\n width: 100%;\n padding: 0 !important;\n color: currentColor;\n display: inline-block;\n}\n\n:host(.nano-color) {\n color: current-color(base);\n\n --input-border-style--focus: #{$input-border-style} var(--nano-color-tint, #{nano-color(primary, tint)});\n}\n\n:host([disabled]:not([disabled='false'])) {\n opacity: 0.7;\n}\n\nlabel,\n.more,\n.error,\n.helper {\n display: block;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &.visually-hide {\n @include visually-hide;\n }\n}\n\n.placeholder-as-label {\n @include padding(0, 0, 0, var(--padding-start));\n\n color: var(--label-color);\n position: absolute;\n font-size: 1.4em;\n transform: translateY(-50%);\n transform-origin: top left;\n top: 50%;\n transition: 0.125s ease-in;\n opacity: 0.7;\n\n :host(.has-focus) & {\n transform: translateY(-120%);\n font-size: 0.9em;\n }\n\n :host(.is-invalid) & {\n color: var(--invalid-msg-color);\n }\n\n :host(.has-value) & {\n transform: translateY(-120%);\n font-size: 0.9em;\n }\n\n & ~ .native-input-wrap {\n font-size: 1.1em;\n }\n\n .textarea & {\n top: 50%;\n\n :host(.has-focus) & {\n top: 0;\n transform: translateY(38%);\n }\n\n :host(.has-value) & {\n top: 0;\n transform: translateY(38%);\n }\n }\n}\n\n.label {\n color: var(--label-color);\n font-size: var(--label-font-size);\n padding-bottom: var(--padding-bottom);\n line-height: 1;\n display: flex;\n\n .label-placeholder {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n .placeholder {\n @include margin(0, 5px, 0, 0);\n\n opacity: 0;\n appearance: none;\n transition: 0.3s ease opacity;\n font-size: 0.9em;\n }\n\n .charcount {\n @include margin(0, 0, 0, auto);\n\n font-size: 0.9em;\n opacity: 0.5;\n }\n\n :host(.has-value) & {\n .placeholder {\n opacity: 0.5;\n }\n }\n\n :host(.has-focus) & {\n color: var(--label-color--focus);\n }\n\n :host(.is-invalid) & {\n color: var(--label-color--invalid);\n }\n}\n\n.more {\n height: 1em;\n\n @include margin(4px, 0, var(--padding-bottom), 3px);\n\n position: relative;\n}\n\n.helper,\n.error {\n top: 0;\n left: 0;\n position: absolute;\n font-size: var(--invalid-msg-font-size);\n line-height: 1.2;\n transition: 0.3s ease-out opacity;\n}\n\n.helper {\n font-style: italic;\n color: var(--help-msg-color);\n\n :host([show-inline-error]:not([show-inline-error='false']).is-invalid) & {\n opacity: 0;\n }\n}\n\n.error {\n opacity: 0;\n color: var(--invalid-msg-color);\n font-stretch: condensed;\n\n :host(.is-invalid) & {\n opacity: 1;\n }\n}\n\n.input {\n @include text-inherit();\n @include border-radius(var(--input-border-radius));\n\n width: 100%;\n padding: 0 !important;\n position: relative;\n flex: 1 0 auto;\n display: flex;\n background: var(--input-bg-color);\n border: var(--input-border-style);\n border-width: var(--input-border-width);\n font-size: var(--input-font-size);\n\n :host(.has-focus) & {\n background: var(--input-bg-color--focus);\n border: var(--input-border-style--focus);\n border-width: var(--input-border-width);\n z-index: 1;\n }\n\n :host(.is-invalid) & {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid);\n border-width: var(--input-border-width);\n }\n\n :host(.is-invalid.has-focus) & {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid-focus);\n border-width: var(--input-border-width);\n }\n}\n\n// Native Text Input\n// --------------------------------------------------\n\n.native-input-wrap {\n display: flex;\n align-items: stretch;\n flex: 1;\n}\n\n.native-input {\n @include border-radius(var(--input-border-radius));\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n @include text-inherit();\n\n text-overflow: ellipsis;\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n width: 100%;\n max-width: 100%;\n max-height: 100%;\n border: 0;\n outline: none;\n background: transparent;\n appearance: none;\n line-height: 2.5em;\n min-height: 2.5em;\n margin: 0;\n box-sizing: border-box;\n resize: none;\n overflow: hidden;\n\n &::placeholder {\n color: var(--placeholder-color);\n font-family: inherit;\n font-style: var(--placeholder-font-style);\n font-weight: var(--placeholder-font-weight);\n opacity: var(--placeholder-opacity);\n line-height: 2.5em;\n min-height: 2.5em;\n // text-overflow: ellipsis;\n }\n\n &::-moz-placeholder {\n line-height: 2.8em;\n text-overflow: ellipsis;\n }\n\n &:-webkit-autofill {\n background-color: transparent;\n }\n\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n appearance: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &::-ms-clear,\n &::-ms-reveal {\n display: none;\n }\n\n &.resizable {\n resize: vertical;\n overflow: auto;\n }\n\n .textarea & {\n line-height: 1.5em;\n padding-top: var(--padding-top);\n padding-bottom: var(--padding-bottom);\n white-space: pre-wrap;\n\n &::placeholder {\n line-height: 1.5em;\n }\n }\n\n .has-float-label & {\n padding-top: 1.4em;\n }\n\n .has-float-label.textarea & {\n padding-top: 1.8em;\n }\n\n .legacy & {\n box-sizing: content-box;\n }\n}\n\n.native-input[disabled] {\n opacity: 0.4;\n}\n\n// Clear Input Icon\n// --------------------------------------------------\n\n.input-clear-icon,\n.inline-button {\n @include margin(0);\n @include background-position(center);\n\n font-size: 1.4em;\n border: 0;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n display: flex;\n align-items: stretch;\n width: auto;\n\n .has-float-label & {\n right: 0;\n position: absolute;\n top: 0;\n height: 100%;\n left: auto;\n }\n\n .rtl.has-float-label & {\n right: auto;\n left: 0;\n }\n}\n\n.inline-button::slotted(*),\n.inline-button ::slotted(*) {\n font-size: 1em;\n\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n\n align-items: center;\n display: flex;\n height: 100%;\n\n :host([disabled]:not([disabled='false'])) & {\n pointer-events: none;\n }\n}\n\n.input-clear-icon {\n color: var(--clear-btn-color);\n padding: 0;\n opacity: 0;\n width: 0;\n appearance: none;\n align-items: center;\n overflow: hidden;\n\n :host(.is-invalid) & {\n color: var(--clear-btn-color--invalid);\n }\n\n :host(.has-value) & {\n @include padding(0, var(--padding-end), 0, var(--padding-start));\n\n opacity: 1;\n width: auto;\n }\n\n &:hover {\n color: var(--clear-btn-color--hover);\n }\n\n .has-inline-button.has-float-label & {\n right: 1.5em;\n position: absolute;\n top: 0;\n height: 100%;\n left: auto;\n }\n\n .rtl.has-float-label.has-inline-button & {\n right: auto;\n left: 1.5em;\n }\n}\n","import {\n Build,\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n State,\n Watch,\n h,\n VNode,\n Listen,\n} from '@stencil/core';\n\nimport {\n Color,\n ControlValidity,\n ControlValidityEventDetail,\n InputChangeEventDetail,\n TextFieldTypes,\n} from '../../interface';\nimport {\n debounceEvent,\n testLegacyStyle,\n closestElement,\n createColorClasses,\n} from '../../utils';\n\n/**\n * The input component is a wrapper to the HTML input element with custom styling and additional functionality. It accepts most of the same properties as the HTML [input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input), but works great on desktop devices and integrates with the keyboard on mobile devices.\n\nIt is meant for text type inputs only, such as \"text\", \"password\", \"email\", \"number\", \"search\", \"tel\", and \"url\". It supports all standard text input events including keyup, keydown, keypress, and more.\n * @slot inline-button - suitable for inline action buttons or icons that may add extra contextual information\n * @slot label - if you do not set a label attribute, you can use this slot for more complex markup\n * @slot helper - helper text to accompany the form field underneath.\n * @slot legacy - you can use this slot to wrap any old inputs / labels. This will set appropriate defaults for the nano-input\n */\n@Component({\n tag: 'nano-input',\n styleUrl: 'input.scss',\n scoped: true,\n})\nexport class Input implements ComponentInterface {\n private nativeInput?: HTMLInputElement | HTMLTextAreaElement;\n private inputId = `nano-input-${inputIds++}`;\n private didBlurAfterEdit = false;\n private errorContainer?: HTMLDivElement;\n private rtl: boolean = false;\n private mo?: MutationObserver;\n private charCount = 0;\n private hasRendered = false;\n\n @State() hasFocus = false;\n @State() isLegacy = !document.head.attachShadow;\n @State() hasLabelSlot = false;\n @State() hasButtonSlot = false;\n @State() hasHelperSlot = false;\n\n @Element() el!: HTMLNanoInputElement;\n\n /**\n * This will be true when the control is in an invalid state.\n * Validity is determined by the `required` prop. Or if custom validity message is set. @readonly\n */\n @Prop({ reflect: true })\n get invalid() {\n return this._invalid;\n }\n @State() _invalid = false;\n\n /**\n * The color to use from the application's color palette.\n */\n @Prop() color?: Color;\n\n /**\n * If the value of the type attribute is `\"file\"`, then this attribute will indicate the types of files that the server accepts, otherwise it will be ignored. The value must be a comma-separated list of unique content type specifiers.\n */\n @Prop() accept?: string;\n\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n */\n @Prop() autocapitalise: 'none' | 'sentences' | 'words' | 'characters' =\n 'none';\n\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n @Prop() autocomplete: 'on' | 'off' = 'off';\n\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n @Prop() autocorrect: 'on' | 'off' = 'off';\n\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.\n */\n @Prop() clearInput = false;\n\n /**\n * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types.\n */\n @Prop() clearOnEdit?: boolean;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `nanoChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n\n /**\n * If `true`, the user cannot interact with the input.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search';\n\n /**\n * When should the field perform validation\n */\n @Prop({ mutable: true }) validateOn: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submit';\n\n /**\n * Whether to show validation errors underneath input\n */\n @Prop({ reflect: true }) showInlineError = true;\n\n /**\n * String to place within a label element. Alternatively you may use a label slot.\n */\n @Prop() label!: string;\n\n /**\n * Visually hide the label - but make it accessible.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * Enable floating label behaviour. Will disable placeholder if set.\n */\n @Prop() floatLabel: boolean = false;\n\n /**\n * The maximum value, which must not be less than its minimum (min attribute) value.\n */\n @Prop() max?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the maximum number of characters that the user can enter.\n */\n @Prop() maxlength?: number;\n\n /**\n * The minimum value, which must not be greater than its maximum (max attribute) value.\n */\n @Prop() min?: string;\n\n /**\n * If the value of the type attribute is `text`, `email`, `search`, `password`, `tel`, or `url`, this attribute specifies the minimum number of characters that the user can enter.\n */\n @Prop() minlength?: number;\n\n /**\n * If `true`, the user can enter more than one value. This attribute applies when the type attribute is set to `\"email\"` or `\"file\"`, otherwise it is ignored.\n */\n @Prop() multiple?: boolean;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * A regular expression that the value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() pattern?: string;\n\n /**\n * Instructional text that shows before the input has a value.\n */\n @Prop() placeholder?: string | null;\n\n /**\n * If `true`, the user cannot modify the value.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\n\n /**\n * Works with the min and max attributes to limit the increments at which a value can be set.\n * Possible values are: `\"any\"` or a positive floating point number.\n */\n @Prop() step?: string;\n\n /**\n * The initial size of the control. This value is in pixels unless the value of the type attribute is `\"text\"` or `\"password\"`, in which case it is an integer number of characters. This attribute applies only when the `type` attribute is set to `\"text\"`, `\"search\"`, `\"tel\"`, `\"url\"`, `\"email\"`, or `\"password\"`, otherwise it is ignored.\n */\n @Prop() size?: number;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: TextFieldTypes = 'text';\n\n /**\n * The form element to associate the select with (its form owner). Must be the id of a form.\n */\n @Prop() form?: string | null;\n\n /**\n * The value of the input.\n */\n @Prop({ mutable: true }) value?: string | null = '';\n\n /**\n * relevant to type=\"textarea\". Vertical resizing - enable / disable or make automatic.\n */\n @Prop() resize: 'true' | 'false' | 'auto' = 'auto';\n\n /**\n * relevant to type=\"textarea\". Default number of rows to show\n */\n @Prop() rows = 2;\n\n /**\n * relevant to type=\"textarea\".\n */\n @Prop() showCharCount = false;\n\n @Watch('minlength')\n @Watch('maxlength')\n @Watch('min')\n @Watch('max')\n @Watch('required')\n @Watch('disabled')\n @Watch('validateOn')\n @Watch('readonly')\n @Watch('pattern')\n @Watch('inputmode')\n protected shouldValidate() {\n if (!this.hasRendered) return;\n setTimeout(() => {\n if (this.validateOn === 'dirty') this.validate();\n }, 20);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.nanoChange.emit({ value: this.value });\n this.charCount = this.value.length;\n\n if (this.type === 'textarea' && this.resize === 'auto') {\n this.nativeInput.style.height = 'auto';\n if (this.value.length)\n this.nativeInput.style.height = this.nativeInput.scrollHeight + 'px';\n }\n\n setTimeout(() => {\n if (this.validateOn === 'dirty') this.validate();\n }, 20);\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n this.nanoChange = debounceEvent(this.nanoChange, this.debounce);\n }\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() nanoInput!: EventEmitter<KeyboardEvent>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() nanoChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() nanoBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() nanoFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been created.\n * @internal\n */\n @Event() nanoDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted when the input has been removed.\n * @internal\n */\n @Event() nanoDidUnload!: EventEmitter<void>;\n\n /**\n * Called when validation is performed (which depends on `validateOn`).\n * @returns event.detail: `{ isValid: boolean, errorMessage: string, originalEvent: Event }`.\n */\n @Event() nanoValidate: EventEmitter<ControlValidityEventDetail>;\n\n /**\n * Get the current state of the control.\n * @param validateFirst - perform validation first before reporting\n * @returns `{ isValid: boolean, errorMessage: string }`\n */\n @Method()\n async reportValidity(validateFirst: boolean): Promise<ControlValidity> {\n if (validateFirst) this.validate();\n return {\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n };\n }\n\n /**\n * Sets focus on the specified `nano-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n\n /**\n * Returns the native `<input>` element used under the hood.\n */\n @Method()\n getInputElement(): Promise<HTMLInputElement | HTMLTextAreaElement> {\n return Promise.resolve(this.nativeInput);\n }\n\n /**\n * Invalidate the field and show a custom error message. To clear the error you will need to re-call this method with an empty string.\n */\n @Method()\n async showError(message: string) {\n if (this.nativeInput) {\n this.nativeInput.setCustomValidity(message);\n this.validate();\n }\n }\n\n @Listen('reset', { target: 'body' })\n onReset(e) {\n const form = this.form\n ? document.querySelector('#' + this.form)\n : this.el.closest('form');\n if (!form || e.target !== this.el.closest('form')) return;\n\n this.value = '';\n }\n\n private shouldClearOnEdit() {\n const { type, clearOnEdit } = this;\n return clearOnEdit === undefined ? type === 'password' : clearOnEdit;\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private validate = (ev?: Event) => {\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n\n if (!this.nativeInput.validity.valid) {\n if (this.showInlineError && !!this.errorContainer) {\n if (ev) ev.preventDefault();\n this.errorContainer.innerText = this.nativeInput.validationMessage;\n }\n this._invalid = true;\n } else this._invalid = false;\n\n this.nanoValidate.emit({\n isValid: !this._invalid,\n errorMessage: this.nativeInput.validationMessage,\n originalEvent: ev,\n });\n };\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) this.value = input.value || '';\n this.nanoInput.emit(ev as KeyboardEvent);\n };\n\n private handleDocumentMouseDown = (ev: MouseEvent) => {\n const target = ev.target as HTMLElement;\n if (closestElement(this.el.tagName.toLowerCase(), target) !== this.el) {\n this.onBlur();\n }\n };\n\n private handleDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key !== 'Tab') return;\n setTimeout(() => {\n if (\n document.activeElement &&\n closestElement(\n this.el.tagName.toLowerCase(),\n document.activeElement\n ) !== this.el\n ) {\n this.onBlur();\n return;\n }\n });\n };\n\n private onBlur = () => {\n this.hasFocus = false;\n this.focusChanged();\n if (this.validateOn === 'dirty') this.validate();\n\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n\n this.nanoBlur.emit();\n };\n\n private onFocus = () => {\n this.hasFocus = true;\n this.focusChanged();\n\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n\n this.nanoFocus.emit();\n };\n\n private onKeydown = () => {\n if (this.shouldClearOnEdit()) {\n // Did the input value change after it was blurred and edited?\n if (this.didBlurAfterEdit && this.hasValue()) {\n // Clear the input\n this.clearTextInput();\n }\n\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n };\n\n private clearTextInput = (ev?: Event) => {\n if (this.clearInput && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.value = '';\n /**\n * This is needed for clearOnEdit\n * Otherwise the value will not be cleared\n * if user is inside the input\n */\n if (this.nativeInput) {\n this.nativeInput.value = '';\n }\n };\n\n private focusChanged() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (!this.hasFocus && this.shouldClearOnEdit() && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n }\n\n private hasValue(): boolean {\n return this.getValue().length > 0;\n }\n\n private slotChangeObserver() {\n if (!Build.isBrowser) return;\n\n if (this.mo) this.mo.disconnect();\n const mo = (this.mo = new MutationObserver(() =>\n this.processSlottedContent()\n ));\n mo.observe(this.el, { childList: true, subtree: true });\n }\n\n private processSlottedContent() {\n // see if we have label / button content\n this.hasLabelSlot = !!this.el.querySelectorAll('[slot=\"label\"]');\n this.hasButtonSlot = !!this.el.querySelector('[slot=\"inline-button\"]');\n this.hasHelperSlot = !!this.el.querySelector('[slot=\"helper\"]');\n\n const hasLegacySlot = !!this.el.querySelector('[slot=\"legacy\"]');\n if (!hasLegacySlot) return;\n\n let existingInput = this.el.querySelector(\n 'input:not([class*=\"sc-nano-input\"])'\n );\n let existingLabel = this.el.querySelector(\n 'label:not([class*=\"sc-nano-input\"])'\n );\n\n if (existingLabel) this.label = this.label || existingLabel.innerHTML;\n\n if (existingInput) {\n Array.from(existingInput.attributes)\n .filter((attr) => attr.specified && attr.nodeName in this)\n .map((attr) => (this[attr.nodeName] = attr.nodeValue));\n }\n\n if (existingLabel || existingInput) {\n // empty all slotted stuff\n let children = this.el.querySelectorAll('[slot=\"legacy\"]');\n if (children) children.forEach((n) => n.parentNode.removeChild(n));\n }\n }\n\n connectedCallback() {\n this.debounceChanged();\n if (Build.isBrowser) {\n this.el.dispatchEvent(\n new CustomEvent('nanoDidLoad', {\n detail: this.el,\n })\n );\n }\n testLegacyStyle(this.el);\n }\n\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(\n new CustomEvent('nanoDidUnload', {\n detail: this.el,\n })\n );\n }\n if (this.mo) this.mo.disconnect();\n }\n\n componentDidLoad() {\n this.slotChangeObserver();\n this.hasRendered = true;\n if (this.autofocus) setTimeout((_) => this.setFocus(), 300);\n }\n\n componentWillLoad() {\n this.processSlottedContent();\n }\n\n private renderLabel(labelId: string, position?: 'float'): VNode {\n if (!this.label && !this.hasLabelSlot) return;\n if (position === 'float') {\n return (\n <label class=\"placeholder-as-label\" htmlFor={this.inputId} id={labelId}>\n {this.label && this.label}\n {!this.label && this.hasLabelSlot && <slot name=\"label\" />}\n </label>\n );\n } else {\n return (\n <label\n class={{ label: true, 'visually-hide': this.hideLabel }}\n htmlFor={this.inputId}\n id={labelId}\n >\n <div class=\"label-placeholder\">\n {this.placeholder && this.hasValue() && this.rtl && (\n <span class=\"placeholder\">{this.placeholder} / </span>\n )}\n <span class=\"labeltext\">\n {this.label && this.label}\n {!this.label && this.hasLabelSlot && <slot name=\"label\" />}\n </span>\n {this.placeholder && this.hasValue() && !this.rtl && (\n <span class=\"placeholder\"> / {this.placeholder}</span>\n )}\n </div>\n {this.showCharCount && (\n <span class=\"charcount\">\n {this.maxlength\n ? this.maxlength - this.charCount + ' left'\n : this.charCount + ' characters'}\n </span>\n )}\n </label>\n );\n }\n }\n\n render() {\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const moreId =\n this.showInlineError || this.hasHelperSlot ? this.inputId + '-more' : '';\n this.rtl = (this.el.ownerDocument as Document).dir === 'rtl';\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n dir={this.rtl ? 'rtl' : null}\n class={{\n ...createColorClasses(this.color),\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'is-invalid': this._invalid,\n }}\n >\n {!this.floatLabel && this.renderLabel(labelId)}\n <div\n class={{\n 'has-label': this.label !== null && !this.floatLabel,\n 'has-float-label': this.label !== null && this.floatLabel,\n rtl: this.rtl,\n 'has-inline-button': this.hasButtonSlot,\n legacy: this.isLegacy,\n input: true,\n textarea: this.type === 'textarea',\n }}\n >\n {this.floatLabel && this.renderLabel(labelId, 'float')}\n <div class=\"native-input-wrap\">\n {this.type !== 'textarea' && (\n <input\n id={this.inputId}\n class=\"native-input\"\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n accept={this.accept}\n autoCapitalize={this.autocapitalise}\n autoComplete={this.autocomplete}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n placeholder={\n !this.floatLabel && this.placeholder ? this.placeholder : ''\n }\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n step={this.step}\n size={this.size}\n type={this.type}\n value={value}\n onInput={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n />\n )}\n {this.type === 'textarea' && (\n <textarea\n rows={this.floatLabel ? 1 : this.rows}\n id={this.inputId}\n class={{\n 'native-input': true,\n resizable: this.resize === 'true',\n }}\n ref={(input) => (this.nativeInput = input)}\n aria-labelledby={labelId + ' ' + moreId}\n disabled={this.disabled}\n autoCapitalize={this.autocapitalise}\n autoCorrect={this.autocorrect}\n autoFocus={this.autofocus}\n inputMode={this.inputmode}\n form={this.form}\n minLength={this.minlength}\n maxLength={this.maxlength}\n name={this.name}\n placeholder={\n !this.floatLabel && this.placeholder ? this.placeholder : ''\n }\n readOnly={this.readonly}\n required={this.required}\n spellcheck={this.spellcheck}\n value={value}\n onInput={this.onInput}\n onFocus={this.onFocus}\n onKeyDown={this.onKeydown}\n onInvalid={this.validate}\n ></textarea>\n )}\n {this.clearInput && !this.readonly && !this.disabled && (\n <button\n type=\"button\"\n class=\"icon input-clear-icon\"\n tabindex=\"-1\"\n onTouchStart={this.clearTextInput}\n onMouseDown={this.clearTextInput}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n {this.hasButtonSlot ? (\n <span class=\"inline-button\">\n <slot name=\"inline-button\" />\n </span>\n ) : (\n ''\n )}\n </div>\n </div>\n {(this.showInlineError || this.hasHelperSlot) && (\n <div class=\"more\" id={moreId}>\n {!!this.showInlineError ? (\n <div class=\"error\" ref={(div) => (this.errorContainer = div)} />\n ) : (\n ''\n )}\n <div class=\"helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n )}\n <slot />\n </Host>\n );\n }\n}\n\nlet inputIds = 0;\n"]}
@@ -1,2 +1,2 @@
1
- import{r as registerInstance,f as writeTask,h,e as Host,g as getElement}from"./index-8e9bc704.js";import{c as closestElement}from"./dom-ae168a2d.js";var menuDrawerCss=':host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host(.legacy) ::slotted(*),:host(.legacy) *{--global-nav-height:61px;--padding-top:13px;--padding-end:13px;--padding-bottom:13px;--padding-start:13px;--secondary-padding-end:13px;--secondary-padding-bottom:13px;--secondary-padding-start:13px;--secondary-padding-top:61px;--icon-size:19px;--font-size:11px;--bg-color:#001a21;--bg-color-hover:rgba(28, 62, 72, 0.8);--bg-color-selected:#274048;--bg-color-open:#274048;--bg-color-focus:rgba(28, 62, 72, 0.8);--focus-outline:none;--content-color:#fff;--secondary-bg-color:rgb(28, 62, 72)}:host{--padding-top:13px;--padding-end:12px;--padding-bottom:13px;--padding-start:12px;--icon-size:19px;--font-size:11px;--global-nav-height:61px;--bg-color:#001a21;--bg-color-hover:rgba(28, 62, 72, 0.8);--bg-color-selected:#274048;--bg-color-focus:rgba(28, 62, 72, 0.8);--focus-outline:none;--content-color:#fff;--secondary-bg-color:rgb(28, 62, 72);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;z-index:1;background:var(--bg-color)}:host ::slotted(nano-nav-item){--secondary-padding-top:var(--global-nav-height);--nano-icon-size:var(--icon-size);color:var(--content-color);font-size:var(--font-size);text-decoration:none;-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host(.hide){display:none}:host(.has-global-nav) .content-wrap{padding-top:var(--global-nav-height)}@supports ((position: -webkit-sticky) or (position: sticky)){:host(.has-global-nav) .content-wrap{margin-top:calc(var(--global-nav-height) * -1)}}.container{right:auto;-webkit-box-flex:0;-ms-flex:0 0 calc((var(--padding-end, 1em) * 2) + var(--icon-size));flex:0 0 calc((var(--padding-end, 1em) * 2) + var(--icon-size));background:var(--bg-color);color:var(--content-color);z-index:1;width:calc((var(--padding-end, 1em) * 2) + var(--icon-size));height:100%}:host(.open) .container{width:auto}:host(:not(.loading)) .container{-webkit-transition:width 0.3s ease;transition:width 0.3s ease}.content-wrap{left:0;top:0;width:inherit;max-width:inherit;background:var(--bg-color);color:#fff;position:fixed;position:-webkit-sticky;position:sticky;font-size:var(--icon-size);line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex;min-height:calc(100vh - 61px);min-height:calc((var(--vh, 1vh) * 100) - 61px);z-index:1}:host([dir=rtl]) .content-wrap{right:0;left:auto}.content{width:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;background:var(--bg-color);-webkit-box-flex:1;-ms-flex:1;flex:1}.content::after{content:"";position:absolute;top:0;left:0;right:0;background:var(--bg-color);z-index:-1;height:100vh}.collapse-btn{background:var(--bg-color-selected);border:none;color:inherit;font-size:var(--icon-size);margin:var(--padding-top) auto var(--padding-bottom) calc(var(--padding-start) / 2);border-radius:4px;padding:6px 5px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;width:30px;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.collapse-btn nano-icon{font-size:var(--icon-size);-webkit-transition:0.2s -webkit-transform ease-in-out;transition:0.2s -webkit-transform ease-in-out;transition:0.2s transform ease-in-out;transition:0.2s transform ease-in-out, 0.2s -webkit-transform ease-in-out;-webkit-transform:translateZ(0) rotate(0deg);transform:translateZ(0) rotate(0deg)}:host(.open) .collapse-btn nano-icon{-webkit-transform:translateZ(0) rotate(180deg);transform:translateZ(0) rotate(180deg)}.foot{margin-top:auto}.measure-ele{height:1px}';var CANSHADOW=!!document.head.attachShadow;var MenuDrawer=function(){function e(e){var t=this;registerInstance(this,e);this.children=[];this.currHeight=window.innerHeight;this.reset=false;this.widthOk=true;this.heightOk=true;this.isLoading=true;this.hide=false;this.open=true;this.saveState=true;this.hideWidth=576;this.hideHeight=true;this.onWindowResize=function(){if(window.innerWidth>t.hideWidth)t.widthOk=true;else t.widthOk=false;var e=window.innerHeight*.01;t.el.style.setProperty("--vh",e+"px");if(window.innerHeight>t.currHeight&&t.widthOk&&!t.heightOk){t.moveItemsToDrawer()}t.currHeight=window.innerHeight};this.toggle=function(e){e.preventDefault();t.open=!t.open};this.onToggleKeyDown=function(e){switch(e.key){case"Enter":case" ":t.open=!t.open;break}}}e.prototype.cancelNavItemEvents=function(e){if(!e.detail.secondaryMenu)return;e.stopPropagation()};e.prototype.openChange=function(){var e=this;if(this.saveState)localStorage.setItem("nanoMenuDrawerOpen",this.open.toString());if(this.containerDiv){if(this.open)writeTask((function(){return e.containerDiv.style.width=e.contentDiv.scrollWidth+"px"}));else writeTask((function(){return e.containerDiv.style.width=null}))}};e.prototype.widthChange=function(){if(this.widthOk)this.moveItemsToDrawer();else this.moveItemsToGlobalNav()};e.prototype.hideHeightChange=function(){if(this.hideHeight&&!this.io)this.attachIO();else if(!this.hideHeight&&this.io){this.io.disconnect();this.io=undefined}};e.prototype.moveItemsToGlobalNav=function(){var e=this;var t=this.el.querySelectorAll("nano-nav-item");t.forEach((function(t){e.children.push({slot:t.getAttribute("slot"),element:t});t.setAttribute("slot","overflow");t.classList.add("nano-global-nav-menu");e.globalNav.appendChild(t)}));this.hide=true};e.prototype.moveItemsToDrawer=function(){var e=this;if(!this.children||!this.children.length)return;this.children.forEach((function(t){t.element.removeAttribute("slot");t.element.classList.remove("nano-global-nav-menu");if(t.slot&&t.slot.length)t.element.setAttribute("slot",t.slot);e.el.appendChild(t.element)}));this.children=[];this.hide=false;if(!this.io)this.attachIO()};e.prototype.attachIO=function(){var e=this;if(!this.hideHeight)return;var t=this.io=new window.IntersectionObserver((function(t){e.heightOk=t[0].intersectionRatio!==0;if(!e.heightOk){e.moveItemsToGlobalNav();e.io.disconnect();e.io=undefined}}),{threshold:1});t.observe(this.measureEle)};e.prototype.componentWillLoad=function(){var e=this;this.globalNav=closestElement("nano-global-nav",this.el);this.globalNav.addEventListener("nanoIsReady",(function(){setTimeout((function(){e.attachIO();e.openChange();e.onWindowResize();e.isLoading=false}),500)}));this.widthOk=window.innerWidth>this.hideWidth;this.currHeight=window.innerHeight;if(this.saveState){var t=localStorage.getItem("nanoMenuDrawerOpen");this.open=t?t==="true":this.open}};e.prototype.componentDidLoad=function(){{window.addEventListener("resize",this.onWindowResize)}};e.prototype.disconnectedCallback=function(){window.removeEventListener("resize",this.debounceResize);if(this.io){this.io.disconnect();this.io=null}};e.prototype.render=function(){var e=this;return h(Host,{class:{open:this.open,hide:this.hide,legacy:!CANSHADOW,loading:this.isLoading,"has-global-nav":!!this.globalNav},dir:this.el.ownerDocument.dir==="rtl"?"rtl":null},h("div",{ref:function(t){return e.containerDiv=t},class:"container"},h("div",{class:"content-wrap"},h("nav",{ref:function(t){return e.contentDiv=t},class:"content"},h("button",{onMouseDown:this.toggle,onKeyDown:this.onToggleKeyDown,class:"collapse-btn"},h("nano-icon",{name:"light/arrow-alt-to-right","aria-label":"collapse / expand"})),h("slot",null),h("div",{class:"foot"},h("div",{class:"measure-ele",ref:function(t){return e.measureEle=t}}),h("slot",{name:"foot"}))))))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{open:["openChange"],widthOk:["widthChange"],hideHeight:["hideHeightChange"]}},enumerable:false,configurable:true});return e}();MenuDrawer.style=menuDrawerCss;export{MenuDrawer as nano_menu_drawer};
1
+ import{r as registerInstance,f as writeTask,h,e as Host,g as getElement}from"./index-912ef959.js";import{c as closestElement}from"./dom-ae168a2d.js";var menuDrawerCss=':host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host(.legacy) ::slotted(*),:host(.legacy) *{--global-nav-height:61px;--padding-top:13px;--padding-end:13px;--padding-bottom:13px;--padding-start:13px;--secondary-padding-end:13px;--secondary-padding-bottom:13px;--secondary-padding-start:13px;--secondary-padding-top:61px;--icon-size:19px;--font-size:11px;--bg-color:#001a21;--bg-color-hover:rgba(28, 62, 72, 0.8);--bg-color-selected:#274048;--bg-color-open:#274048;--bg-color-focus:rgba(28, 62, 72, 0.8);--focus-outline:none;--content-color:#fff;--secondary-bg-color:rgb(28, 62, 72)}:host{--padding-top:13px;--padding-end:12px;--padding-bottom:13px;--padding-start:12px;--icon-size:19px;--font-size:11px;--global-nav-height:61px;--bg-color:#001a21;--bg-color-hover:rgba(28, 62, 72, 0.8);--bg-color-selected:#274048;--bg-color-focus:rgba(28, 62, 72, 0.8);--focus-outline:none;--content-color:#fff;--secondary-bg-color:rgb(28, 62, 72);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;z-index:1;background:var(--bg-color)}:host ::slotted(nano-nav-item){--secondary-padding-top:var(--global-nav-height);--nano-icon-size:var(--icon-size);color:var(--content-color);font-size:var(--font-size);text-decoration:none;-webkit-box-sizing:border-box;box-sizing:border-box}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host(.hide){display:none}:host(.has-global-nav) .content-wrap{padding-top:var(--global-nav-height)}@supports ((position: -webkit-sticky) or (position: sticky)){:host(.has-global-nav) .content-wrap{margin-top:calc(var(--global-nav-height) * -1)}}.container{right:auto;-webkit-box-flex:0;-ms-flex:0 0 calc((var(--padding-end, 1em) * 2) + var(--icon-size));flex:0 0 calc((var(--padding-end, 1em) * 2) + var(--icon-size));background:var(--bg-color);color:var(--content-color);z-index:1;width:calc((var(--padding-end, 1em) * 2) + var(--icon-size));height:100%}:host(.open) .container{width:auto}:host(:not(.loading)) .container{-webkit-transition:width 0.3s ease;transition:width 0.3s ease}.content-wrap{left:0;top:0;width:inherit;max-width:inherit;background:var(--bg-color);color:#fff;position:fixed;position:-webkit-sticky;position:sticky;font-size:var(--icon-size);line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex;min-height:calc(100vh - 61px);min-height:calc((var(--vh, 1vh) * 100) - 61px);z-index:1}:host([dir=rtl]) .content-wrap{right:0;left:auto}.content{width:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;background:var(--bg-color);-webkit-box-flex:1;-ms-flex:1;flex:1}.content::after{content:"";position:absolute;top:0;left:0;right:0;background:var(--bg-color);z-index:-1;height:100vh}.collapse-btn{background:var(--bg-color-selected);border:none;color:inherit;font-size:var(--icon-size);margin:var(--padding-top) auto var(--padding-bottom) calc(var(--padding-start) / 2);border-radius:4px;padding:6px 5px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;width:30px;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.collapse-btn nano-icon{font-size:var(--icon-size);-webkit-transition:0.2s -webkit-transform ease-in-out;transition:0.2s -webkit-transform ease-in-out;transition:0.2s transform ease-in-out;transition:0.2s transform ease-in-out, 0.2s -webkit-transform ease-in-out;-webkit-transform:translateZ(0) rotate(0deg);transform:translateZ(0) rotate(0deg)}:host(.open) .collapse-btn nano-icon{-webkit-transform:translateZ(0) rotate(180deg);transform:translateZ(0) rotate(180deg)}.foot{margin-top:auto}.measure-ele{height:1px}';var CANSHADOW=!!document.head.attachShadow;var MenuDrawer=function(){function e(e){var t=this;registerInstance(this,e);this.children=[];this.currHeight=window.innerHeight;this.reset=false;this.widthOk=true;this.heightOk=true;this.isLoading=true;this.hide=false;this.open=true;this.saveState=true;this.hideWidth=576;this.hideHeight=true;this.onWindowResize=function(){if(window.innerWidth>t.hideWidth)t.widthOk=true;else t.widthOk=false;var e=window.innerHeight*.01;t.el.style.setProperty("--vh",e+"px");if(window.innerHeight>t.currHeight&&t.widthOk&&!t.heightOk){t.moveItemsToDrawer()}t.currHeight=window.innerHeight};this.toggle=function(e){e.preventDefault();t.open=!t.open};this.onToggleKeyDown=function(e){switch(e.key){case"Enter":case" ":t.open=!t.open;break}}}e.prototype.cancelNavItemEvents=function(e){if(!e.detail.secondaryMenu)return;e.stopPropagation()};e.prototype.openChange=function(){var e=this;if(this.saveState)localStorage.setItem("nanoMenuDrawerOpen",this.open.toString());if(this.containerDiv){if(this.open)writeTask((function(){return e.containerDiv.style.width=e.contentDiv.scrollWidth+"px"}));else writeTask((function(){return e.containerDiv.style.width=null}))}};e.prototype.widthChange=function(){if(this.widthOk)this.moveItemsToDrawer();else this.moveItemsToGlobalNav()};e.prototype.hideHeightChange=function(){if(this.hideHeight&&!this.io)this.attachIO();else if(!this.hideHeight&&this.io){this.io.disconnect();this.io=undefined}};e.prototype.moveItemsToGlobalNav=function(){var e=this;var t=this.el.querySelectorAll("nano-nav-item");t.forEach((function(t){e.children.push({slot:t.getAttribute("slot"),element:t});t.setAttribute("slot","overflow");t.classList.add("nano-global-nav-menu");e.globalNav.appendChild(t)}));this.hide=true};e.prototype.moveItemsToDrawer=function(){var e=this;if(!this.children||!this.children.length)return;this.children.forEach((function(t){t.element.removeAttribute("slot");t.element.classList.remove("nano-global-nav-menu");if(t.slot&&t.slot.length)t.element.setAttribute("slot",t.slot);e.el.appendChild(t.element)}));this.children=[];this.hide=false;if(!this.io)this.attachIO()};e.prototype.attachIO=function(){var e=this;if(!this.hideHeight)return;var t=this.io=new window.IntersectionObserver((function(t){e.heightOk=t[0].intersectionRatio!==0;if(!e.heightOk){e.moveItemsToGlobalNav();e.io.disconnect();e.io=undefined}}),{threshold:1});t.observe(this.measureEle)};e.prototype.componentWillLoad=function(){var e=this;this.globalNav=closestElement("nano-global-nav",this.el);this.globalNav.addEventListener("nanoIsReady",(function(){setTimeout((function(){e.attachIO();e.openChange();e.onWindowResize();e.isLoading=false}),500)}));this.widthOk=window.innerWidth>this.hideWidth;this.currHeight=window.innerHeight;if(this.saveState){var t=localStorage.getItem("nanoMenuDrawerOpen");this.open=t?t==="true":this.open}};e.prototype.componentDidLoad=function(){{window.addEventListener("resize",this.onWindowResize)}};e.prototype.disconnectedCallback=function(){window.removeEventListener("resize",this.debounceResize);if(this.io){this.io.disconnect();this.io=null}};e.prototype.render=function(){var e=this;return h(Host,{class:{open:this.open,hide:this.hide,legacy:!CANSHADOW,loading:this.isLoading,"has-global-nav":!!this.globalNav},dir:this.el.ownerDocument.dir==="rtl"?"rtl":null},h("div",{ref:function(t){return e.containerDiv=t},class:"container"},h("div",{class:"content-wrap"},h("nav",{ref:function(t){return e.contentDiv=t},class:"content"},h("button",{onMouseDown:this.toggle,onKeyDown:this.onToggleKeyDown,class:"collapse-btn"},h("nano-icon",{name:"light/arrow-alt-to-right","aria-label":"collapse / expand"})),h("slot",null),h("div",{class:"foot"},h("div",{class:"measure-ele",ref:function(t){return e.measureEle=t}}),h("slot",{name:"foot"}))))))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{open:["openChange"],widthOk:["widthChange"],hideHeight:["hideHeightChange"]}},enumerable:false,configurable:true});return e}();MenuDrawer.style=menuDrawerCss;export{MenuDrawer as nano_menu_drawer};
2
2
  //# sourceMappingURL=nano-menu-drawer.entry.js.map
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,n,o){function r(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,i){function a(e){try{c(o.next(e))}catch(t){i(t)}}function s(e){try{c(o["throw"](e))}catch(t){i(t)}}function c(e){e.done?n(e.value):r(e.value).then(a,s)}c((o=o.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},o,r,i,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(e){return function(t){return c([e,t])}}function c(a){if(o)throw new TypeError("Generator is already executing.");while(n)try{if(o=1,r&&(i=a[0]&2?r["return"]:a[0]?r["throw"]||((i=r["return"])&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;if(r=0,i)a=[a[0]&2,i.value];switch(a[0]){case 0:case 1:i=a;break;case 4:n.label++;return{value:a[1],done:false};case 5:n.label++;r=a[1];a=[0];continue;case 7:a=n.ops.pop();n.trys.pop();continue;default:if(!(i=n.trys,i=i.length>0&&i[i.length-1])&&(a[0]===6||a[0]===2)){n=0;continue}if(a[0]===3&&(!i||a[1]>i[0]&&a[1]<i[3])){n.label=a[1];break}if(a[0]===6&&n.label<i[1]){n.label=i[1];i=a;break}if(i&&n.label<i[2]){n.label=i[2];n.ops.push(a);break}if(i[2])n.ops.pop();n.trys.pop();continue}a=t.call(e,n)}catch(s){a=[6,s];r=0}finally{o=i=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,e as Host,g as getElement}from"./index-8e9bc704.js";import{g as getDirectChildren}from"./dom-ae168a2d.js";import{s as scrollIntoView}from"./scroll-4162ee24.js";import{g as getTextContent}from"./slot-2f257a82.js";var menuCss=".sc-nano-menu-h{-webkit-box-sizing:border-box;box-sizing:border-box}*.sc-nano-menu,*.sc-nano-menu::before,*.sc-nano-menu::after{-webkit-box-sizing:border-box;box-sizing:border-box}.sc-nano-menu-h.legacy .sc-nano-menu-s>*,.legacy.sc-nano-menu-h *.sc-nano-menu{--padding-start:10px;--padding-end:10px;--padding-top:10px;--padding-bottom:10px;--secondary-padding-top:10px;--secondary-padding-bottom:10px;--secondary-bg-color:#fff;--bg-color-hover:#f2f7f9;--bg-color-focus:#f2f7f9;--bg-color-selected:#f2f7f9;--color-hover:#0084a9;--color-selected:#0084a9;--color-focus:#0084a9;--focus-outline:none;display:block}.sc-nano-menu-h{--padding-start:10px;--padding-end:10px;--padding-top:10px;--padding-bottom:10px;--secondary-padding-top:0;--secondary-padding-bottom:0;--bg-color-hover:#f2f7f9;--bg-color-focus:#f2f7f9;--bg-color-selected:#f2f7f9;--color-hover:#0084a9;--color-selected:#0084a9;--color-focus:#0084a9;--focus-outline:none;display:block}.menu.sc-nano-menu{-ms-scroll-chaining:none;overscroll-behavior:none;font-size:0.9em;min-width:var(--width);position:relative}.menu.sc-nano-menu:focus{outline:none}.menu.sc-nano-menu-s>*:not(nano-nav-item){margin-left:var(--padding-start);margin-right:var(--padding-end);margin-top:var(--padding-top);margin-bottom:var(--padding-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.menu.sc-nano-menu-s>*:not(nano-nav-item){margin-left:unset;margin-right:unset;-webkit-margin-start:var(--padding-start);margin-inline-start:var(--padding-start);-webkit-margin-end:var(--padding-end);margin-inline-end:var(--padding-end)}}";var CANSHADOW=!!document.head.attachShadow;var Menu=function(){function e(e){var t=this;registerInstance(this,e);this.nanoFocus=createEvent(this,"nanoFocus",7);this.nanoBlur=createEvent(this,"nanoBlur",7);this.nanoSelect=createEvent(this,"nanoSelect",7);this.ignoreMouseEvents=false;this.typeToSelect="";this.handleFocus=function(){var e=t.getActiveItem();if(!e){t.setActiveItem(t.getItems()[0])}t.nanoFocus.emit()};this.handleBlur=function(){};this.handleClick=function(e){var n=e.target;var o=n.closest("nano-nav-item");if(o&&!o.disabled){t.nanoSelect.emit({item:o})}};this.handleKeyDown=function(e){clearTimeout(t.ignoreMouseTimeout);t.ignoreMouseTimeout=setTimeout((function(){return t.ignoreMouseEvents=false}),500);t.ignoreMouseEvents=true;switch(e.key){case" ":var n=t.getActiveItem();n.click();break;case"ArrowDown":case"ArrowUp":case"Home":case"End":var o=t.getItems();var r=t.getActiveItem();var i=o.indexOf(r);if(o.length){e.preventDefault();if(e.key==="ArrowDown"){i++}else if(e.key==="ArrowUp"){i--}else if(e.key==="Home"){i=0}else if(e.key==="End"){i=o.length-1}if(i<0)i=0;if(i>o.length-1)i=o.length-1;t.setActiveItem(o[i]);t.scrollItemIntoView(o[i]);return}break}if(e.key===" "||/^[\d\w]$/i.test(e.key)){clearTimeout(t.typeToSelectTimeout);t.typeToSelectTimeout=setTimeout((function(){return t.typeToSelect=""}),750);t.typeToSelect+=e.key;var o=t.getItems();for(var a=0,s=o;a<s.length;a++){var c=s[a];var u=c.shadowRoot.querySelector("slot:not([name])");var l=getTextContent(u).toLowerCase().trim();if(l.substring(0,t.typeToSelect.length)===t.typeToSelect){c.setFocus();break}}}};this.handleMouseOver=function(e){var n=e.target;var o=n.closest("nano-nav-item");if(o&&!t.ignoreMouseEvents){t.setActiveItem(o)}}}e.prototype.connectedCallback=function(){};e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.menu.focus();return[2]}))}))};e.prototype.removeFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.menu.blur();return[2]}))}))};e.prototype.getItems=function(){var e;var t=this.el.querySelectorAll("nano-nav-item.secondary-open");if(t.length){var n=t[t.length-1];e=Array.from(n.querySelectorAll("nano-nav-item"))}else{e=getDirectChildren(this.el,"nano-nav-item")}return e.filter((function(e){return!e.disabled}))};e.prototype.getActiveItem=function(){return this.el.querySelector("nano-nav-item.has-focus")};e.prototype.setActiveItem=function(e){if(e)e.setFocus();else this.el.setFocus()};e.prototype.scrollItemIntoView=function(e){if(e){scrollIntoView(e,this.menu)}};e.prototype.render=function(){var e=this;return h(Host,{class:{legacy:!CANSHADOW}},h("nav",{ref:function(t){return e.menu=t},part:"base",class:"menu",tabIndex:-1,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onMouseOver:this.handleMouseOver},h("slot",null)))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();Menu.style=menuCss;export{Menu as nano_menu};
1
+ var __awaiter=this&&this.__awaiter||function(e,t,n,o){function r(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,i){function a(e){try{c(o.next(e))}catch(t){i(t)}}function s(e){try{c(o["throw"](e))}catch(t){i(t)}}function c(e){e.done?n(e.value):r(e.value).then(a,s)}c((o=o.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},o,r,i,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(e){return function(t){return c([e,t])}}function c(a){if(o)throw new TypeError("Generator is already executing.");while(n)try{if(o=1,r&&(i=a[0]&2?r["return"]:a[0]?r["throw"]||((i=r["return"])&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;if(r=0,i)a=[a[0]&2,i.value];switch(a[0]){case 0:case 1:i=a;break;case 4:n.label++;return{value:a[1],done:false};case 5:n.label++;r=a[1];a=[0];continue;case 7:a=n.ops.pop();n.trys.pop();continue;default:if(!(i=n.trys,i=i.length>0&&i[i.length-1])&&(a[0]===6||a[0]===2)){n=0;continue}if(a[0]===3&&(!i||a[1]>i[0]&&a[1]<i[3])){n.label=a[1];break}if(a[0]===6&&n.label<i[1]){n.label=i[1];i=a;break}if(i&&n.label<i[2]){n.label=i[2];n.ops.push(a);break}if(i[2])n.ops.pop();n.trys.pop();continue}a=t.call(e,n)}catch(s){a=[6,s];r=0}finally{o=i=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,e as Host,g as getElement}from"./index-912ef959.js";import{g as getDirectChildren}from"./dom-ae168a2d.js";import{s as scrollIntoView}from"./scroll-4162ee24.js";import{g as getTextContent}from"./slot-2f257a82.js";var menuCss=".sc-nano-menu-h{-webkit-box-sizing:border-box;box-sizing:border-box}*.sc-nano-menu,*.sc-nano-menu::before,*.sc-nano-menu::after{-webkit-box-sizing:border-box;box-sizing:border-box}.sc-nano-menu-h.legacy .sc-nano-menu-s>*,.legacy.sc-nano-menu-h *.sc-nano-menu{--padding-start:10px;--padding-end:10px;--padding-top:10px;--padding-bottom:10px;--secondary-padding-top:10px;--secondary-padding-bottom:10px;--secondary-bg-color:#fff;--bg-color-hover:#f2f7f9;--bg-color-focus:#f2f7f9;--bg-color-selected:#f2f7f9;--color-hover:#007495;--color-selected:#007495;--color-focus:#007495;--focus-outline:none;display:block}.sc-nano-menu-h{--padding-start:10px;--padding-end:10px;--padding-top:10px;--padding-bottom:10px;--secondary-padding-top:0;--secondary-padding-bottom:0;--bg-color-hover:#f2f7f9;--bg-color-focus:#f2f7f9;--bg-color-selected:#f2f7f9;--color-hover:#007495;--color-selected:#007495;--color-focus:#007495;--focus-outline:none;display:block}.menu.sc-nano-menu{-ms-scroll-chaining:none;overscroll-behavior:none;font-size:0.9em;min-width:var(--width);position:relative}.menu.sc-nano-menu:focus{outline:none}.menu.sc-nano-menu-s>*:not(nano-nav-item){margin-left:var(--padding-start);margin-right:var(--padding-end);margin-top:var(--padding-top);margin-bottom:var(--padding-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.menu.sc-nano-menu-s>*:not(nano-nav-item){margin-left:unset;margin-right:unset;-webkit-margin-start:var(--padding-start);margin-inline-start:var(--padding-start);-webkit-margin-end:var(--padding-end);margin-inline-end:var(--padding-end)}}";var CANSHADOW=!!document.head.attachShadow;var Menu=function(){function e(e){var t=this;registerInstance(this,e);this.nanoFocus=createEvent(this,"nanoFocus",7);this.nanoBlur=createEvent(this,"nanoBlur",7);this.nanoSelect=createEvent(this,"nanoSelect",7);this.ignoreMouseEvents=false;this.typeToSelect="";this.handleFocus=function(){var e=t.getActiveItem();if(!e){t.setActiveItem(t.getItems()[0])}t.nanoFocus.emit()};this.handleBlur=function(){};this.handleClick=function(e){var n=e.target;var o=n.closest("nano-nav-item");if(o&&!o.disabled){t.nanoSelect.emit({item:o})}};this.handleKeyDown=function(e){clearTimeout(t.ignoreMouseTimeout);t.ignoreMouseTimeout=setTimeout((function(){return t.ignoreMouseEvents=false}),500);t.ignoreMouseEvents=true;switch(e.key){case" ":var n=t.getActiveItem();n.click();break;case"ArrowDown":case"ArrowUp":case"Home":case"End":var o=t.getItems();var r=t.getActiveItem();var i=o.indexOf(r);if(o.length){e.preventDefault();if(e.key==="ArrowDown"){i++}else if(e.key==="ArrowUp"){i--}else if(e.key==="Home"){i=0}else if(e.key==="End"){i=o.length-1}if(i<0)i=0;if(i>o.length-1)i=o.length-1;t.setActiveItem(o[i]);t.scrollItemIntoView(o[i]);return}break}if(e.key===" "||/^[\d\w]$/i.test(e.key)){clearTimeout(t.typeToSelectTimeout);t.typeToSelectTimeout=setTimeout((function(){return t.typeToSelect=""}),750);t.typeToSelect+=e.key;var o=t.getItems();for(var a=0,s=o;a<s.length;a++){var c=s[a];var u=c.shadowRoot.querySelector("slot:not([name])");var l=getTextContent(u).toLowerCase().trim();if(l.substring(0,t.typeToSelect.length)===t.typeToSelect){c.setFocus();break}}}};this.handleMouseOver=function(e){var n=e.target;var o=n.closest("nano-nav-item");if(o&&!t.ignoreMouseEvents){t.setActiveItem(o)}}}e.prototype.connectedCallback=function(){};e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.menu.focus();return[2]}))}))};e.prototype.removeFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.menu.blur();return[2]}))}))};e.prototype.getItems=function(){var e;var t=this.el.querySelectorAll("nano-nav-item.secondary-open");if(t.length){var n=t[t.length-1];e=Array.from(n.querySelectorAll("nano-nav-item"))}else{e=getDirectChildren(this.el,"nano-nav-item")}return e.filter((function(e){return!e.disabled}))};e.prototype.getActiveItem=function(){return this.el.querySelector("nano-nav-item.has-focus")};e.prototype.setActiveItem=function(e){if(e)e.setFocus();else this.el.setFocus()};e.prototype.scrollItemIntoView=function(e){if(e){scrollIntoView(e,this.menu)}};e.prototype.render=function(){var e=this;return h(Host,{class:{legacy:!CANSHADOW}},h("nav",{ref:function(t){return e.menu=t},part:"base",class:"menu",tabIndex:-1,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onMouseOver:this.handleMouseOver},h("slot",null)))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();Menu.style=menuCss;export{Menu as nano_menu};
2
2
  //# sourceMappingURL=nano-menu.entry.js.map