@nanoporetech-digital/components 1.15.6 → 2.1.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 (981) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/cjs/active-element-2f9bf0aa.js +21 -0
  3. package/dist/cjs/active-element-2f9bf0aa.js.map +1 -0
  4. package/dist/cjs/{algoliasearch.umd-0ccd70ce.js → algoliasearch.umd-79e17a1a.js} +3 -3
  5. package/dist/cjs/{algoliasearch.umd-0ccd70ce.js.map → algoliasearch.umd-79e17a1a.js.map} +1 -1
  6. package/dist/cjs/{dom-5f3fae1a.js → dom-52f9b8b7.js} +25 -6
  7. package/dist/cjs/dom-52f9b8b7.js.map +1 -0
  8. package/dist/cjs/form-control-3bc82e3e.js +80 -0
  9. package/dist/cjs/form-control-3bc82e3e.js.map +1 -0
  10. package/dist/cjs/{index-117f36a4.js → index-53d02e05.js} +12 -27
  11. package/dist/cjs/index-53d02e05.js.map +1 -0
  12. package/dist/cjs/index-cb62df44.js +12 -12
  13. package/dist/cjs/index.cjs.js +3 -3
  14. package/dist/cjs/index.cjs.js.map +1 -1
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/{modal-01eed1bf.js → modal-f09e431f.js} +2 -2
  17. package/dist/cjs/{modal-01eed1bf.js.map → modal-f09e431f.js.map} +1 -1
  18. package/dist/cjs/nano-accordion.cjs.entry.js +2 -4
  19. package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nano-alert.cjs.entry.js +6 -6
  21. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -1
  23. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nano-algolia-input.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-algolia.cjs.entry.js +9 -5
  26. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  27. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
  28. package/dist/cjs/nano-aspect-ratio.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-checkbox-group.cjs.entry.js +4 -1
  30. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
  32. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  33. package/dist/cjs/nano-components.cjs.js +1 -1
  34. package/dist/cjs/nano-datalist_3.cjs.entry.js +790 -0
  35. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -0
  36. package/dist/cjs/nano-date-input.cjs.entry.js +9 -5
  37. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  38. package/dist/cjs/{nano-date-picker_2.cjs.entry.js → nano-date-picker.cjs.entry.js} +2 -274
  39. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -0
  40. package/dist/cjs/nano-details.cjs.entry.js +2 -2
  41. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  42. package/dist/cjs/nano-dialog.cjs.entry.js +5 -5
  43. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  44. package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
  45. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  46. package/dist/cjs/nano-dropdown.cjs.entry.js +307 -0
  47. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -0
  48. package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
  49. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  50. package/dist/cjs/nano-global-nav.cjs.entry.js +19 -24
  51. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  52. package/dist/cjs/nano-global-search-results.cjs.entry.js +200 -115
  53. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  54. package/dist/cjs/nano-grid_3.cjs.entry.js +15 -7
  55. package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
  56. package/dist/cjs/nano-hero.cjs.entry.js +13 -5
  57. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  58. package/dist/cjs/nano-icon-button.cjs.entry.js +2 -2
  59. package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
  60. package/dist/cjs/nano-icon.cjs.entry.js +1 -1
  61. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  62. package/dist/cjs/nano-input.cjs.entry.js +80 -75
  63. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  64. package/dist/cjs/nano-menu-drawer.cjs.entry.js +2 -2
  65. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  66. package/dist/cjs/nano-nav-item_2.cjs.entry.js +287 -533
  67. package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
  68. package/dist/cjs/nano-range.cjs.entry.js +2 -2
  69. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  70. package/dist/cjs/nano-rating.cjs.entry.js +2 -2
  71. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  72. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
  73. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  74. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  75. package/dist/cjs/nano-slide.cjs.entry.js.map +1 -1
  76. package/dist/cjs/nano-slides.cjs.entry.js +1 -1
  77. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  78. package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
  79. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  80. package/dist/cjs/nano-sticker.cjs.entry.js +3 -3
  81. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  82. package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
  83. package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
  84. package/dist/cjs/nano-tab-group.cjs.entry.js +72 -36
  85. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  86. package/dist/cjs/nano-tab.cjs.entry.js +9 -2
  87. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  88. package/dist/cjs/nano-tooltip.cjs.entry.js +2 -2
  89. package/dist/cjs/nano-tooltip.cjs.entry.js.map +1 -1
  90. package/dist/cjs/{popover-d033efa2.js → popover-86f1775c.js} +10 -1
  91. package/dist/cjs/popover-86f1775c.js.map +1 -0
  92. package/dist/cjs/{scroll-d7753eed.js → scroll-6b9e6870.js} +2 -2
  93. package/dist/cjs/{scroll-d7753eed.js.map → scroll-6b9e6870.js.map} +1 -1
  94. package/dist/cjs/{tabbable-615c30e1.js → tabbable-de4c23d8.js} +8 -6
  95. package/dist/cjs/tabbable-de4c23d8.js.map +1 -0
  96. package/dist/collection/collection-manifest.json +3 -2
  97. package/dist/collection/components/accordion/accordion.css +3 -0
  98. package/dist/collection/components/accordion/accordion.js +2 -5
  99. package/dist/collection/components/accordion/accordion.js.map +1 -1
  100. package/dist/collection/components/alert/alert.css +5 -6
  101. package/dist/collection/components/alert/alert.helpers.js +2 -2
  102. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  103. package/dist/collection/components/alert/alert.js +1 -1
  104. package/dist/collection/components/algolia/algolia-filter.css +3 -0
  105. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  106. package/dist/collection/components/algolia/algolia-input.js +5 -5
  107. package/dist/collection/components/algolia/algolia-results.js +1 -1
  108. package/dist/collection/components/algolia/algolia.css +3 -0
  109. package/dist/collection/components/algolia/algolia.js +6 -6
  110. package/dist/collection/components/aspect-ratio/aspect-ratio.css +3 -0
  111. package/dist/collection/components/checkbox/checkbox-group.css +3 -0
  112. package/dist/collection/components/checkbox/checkbox-group.js +5 -2
  113. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  114. package/dist/collection/components/checkbox/checkbox.css +3 -0
  115. package/dist/collection/components/checkbox/checkbox.js +3 -3
  116. package/dist/collection/components/datalist/datalist.css +55 -0
  117. package/dist/collection/components/datalist/datalist.js +796 -0
  118. package/dist/collection/components/datalist/datalist.js.map +1 -0
  119. package/dist/collection/components/date-input/date-input.css +3 -0
  120. package/dist/collection/components/date-input/date-input.js +18 -10
  121. package/dist/collection/components/date-input/date-input.js.map +1 -1
  122. package/dist/collection/components/date-picker/date-picker.css +3 -0
  123. package/dist/collection/components/date-picker/date-picker.js +5 -5
  124. package/dist/collection/components/details/details.css +3 -0
  125. package/dist/collection/components/details/details.js +2 -3
  126. package/dist/collection/components/details/details.js.map +1 -1
  127. package/dist/collection/components/dialog/dialog.css +4 -1
  128. package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
  129. package/dist/collection/components/dialog/dialog.js +1 -1
  130. package/dist/collection/components/drawer/drawer.css +3 -0
  131. package/dist/collection/components/dropdown/dropdown.css +19 -2
  132. package/dist/collection/components/dropdown/dropdown.js +56 -39
  133. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  134. package/dist/collection/components/file-upload/file-upload.css +5 -2
  135. package/dist/collection/components/file-upload/file-upload.js +4 -4
  136. package/dist/collection/components/form-control/form-control.js +73 -0
  137. package/dist/collection/components/form-control/form-control.js.map +1 -0
  138. package/dist/collection/components/global-nav/global-nav.css +43 -37
  139. package/dist/collection/components/global-nav/global-nav.js +21 -26
  140. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  141. package/dist/collection/components/global-search-results/global-search-results.css +299 -18
  142. package/dist/collection/components/global-search-results/global-search-results.js +200 -113
  143. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  144. package/dist/collection/components/grid/grid-item.css +3 -0
  145. package/dist/collection/components/grid/grid-item.js +1 -1
  146. package/dist/collection/components/grid/grid.css +3 -0
  147. package/dist/collection/components/grid/grid.js +37 -6
  148. package/dist/collection/components/grid/grid.js.map +1 -1
  149. package/dist/collection/components/hero/hero.css +13 -5
  150. package/dist/collection/components/hero/hero.js +32 -22
  151. package/dist/collection/components/hero/hero.js.map +1 -1
  152. package/dist/collection/components/icon/icon.css +3 -0
  153. package/dist/collection/components/icon/icon.js +1 -1
  154. package/dist/collection/components/icon-button/icon-button.css +6 -1
  155. package/dist/collection/components/icon-button/icon-button.js +1 -1
  156. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  157. package/dist/collection/components/img/img.css +3 -0
  158. package/dist/collection/components/input/input.css +242 -232
  159. package/dist/collection/components/input/input.js +111 -114
  160. package/dist/collection/components/input/input.js.map +1 -1
  161. package/dist/collection/components/menu/menu.css +27 -35
  162. package/dist/collection/components/menu/menu.js +222 -48
  163. package/dist/collection/components/menu/menu.js.map +1 -1
  164. package/dist/collection/components/menu-drawer/menu-drawer.css +3 -0
  165. package/dist/collection/components/nav-item/nav-item.css +3 -0
  166. package/dist/collection/components/nav-item/nav-item.js +5 -5
  167. package/dist/collection/components/nav-item/nav-item.js.map +1 -1
  168. package/dist/collection/components/option/option-interface.js +5 -0
  169. package/dist/collection/components/option/option-interface.js.map +1 -0
  170. package/dist/collection/components/option/option.css +187 -0
  171. package/dist/collection/components/option/option.js +242 -0
  172. package/dist/collection/components/option/option.js.map +1 -0
  173. package/dist/collection/components/range/range.css +3 -0
  174. package/dist/collection/components/range/range.js +4 -4
  175. package/dist/collection/components/rating/rating.css +3 -0
  176. package/dist/collection/components/resize-observe/resize-observe.js +1 -1
  177. package/dist/collection/components/select/select.css +458 -391
  178. package/dist/collection/components/select/select.js +367 -607
  179. package/dist/collection/components/select/select.js.map +1 -1
  180. package/dist/collection/components/skeleton/skeleton.css +3 -0
  181. package/dist/collection/components/slides/slide.css +3 -0
  182. package/dist/collection/components/slides/slides.css +3 -0
  183. package/dist/collection/components/slides/slides.js +7 -7
  184. package/dist/collection/components/spinner/spinner.css +3 -0
  185. package/dist/collection/components/sticky/sticker.css +3 -0
  186. package/dist/collection/components/tabs/tab-content.css +3 -0
  187. package/dist/collection/components/tabs/tab-content.js +3 -3
  188. package/dist/collection/components/tabs/tab-content.js.map +1 -1
  189. package/dist/collection/components/tabs/tab-group.css +16 -5
  190. package/dist/collection/components/tabs/tab-group.js +137 -41
  191. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  192. package/dist/collection/components/tabs/tab.css +36 -6
  193. package/dist/collection/components/tabs/tab.js +45 -2
  194. package/dist/collection/components/tabs/tab.js.map +1 -1
  195. package/dist/collection/components/tooltip/tooltip.css +3 -0
  196. package/dist/collection/utils/active-element.js +16 -0
  197. package/dist/collection/utils/active-element.js.map +1 -0
  198. package/dist/collection/utils/dom.js +24 -5
  199. package/dist/collection/utils/dom.js.map +1 -1
  200. package/dist/collection/utils/index.js +13 -13
  201. package/dist/collection/utils/index.js.map +1 -1
  202. package/dist/collection/utils/popover.js +9 -0
  203. package/dist/collection/utils/popover.js.map +1 -1
  204. package/dist/collection/utils/tabbable.js +7 -5
  205. package/dist/collection/utils/tabbable.js.map +1 -1
  206. package/dist/collection/utils/template.js +5 -1
  207. package/dist/collection/utils/template.js.map +1 -1
  208. package/dist/collection/utils/testing/index.js +11 -1
  209. package/dist/collection/utils/testing/index.js.map +1 -1
  210. package/dist/components/ResizeObserver.es.js +933 -0
  211. package/dist/components/ResizeObserver.es.js.map +1 -0
  212. package/dist/components/_commonjsHelpers.js +41 -0
  213. package/dist/components/_commonjsHelpers.js.map +1 -0
  214. package/dist/components/active-element.js +19 -0
  215. package/dist/components/active-element.js.map +1 -0
  216. package/dist/components/algolia-data.js +49 -0
  217. package/dist/components/algolia-data.js.map +1 -0
  218. package/dist/components/algolia.js +906 -0
  219. package/dist/components/algolia.js.map +1 -0
  220. package/dist/components/algoliasearch.umd.js +13 -0
  221. package/dist/components/algoliasearch.umd.js.map +1 -0
  222. package/dist/components/component-store.js +2234 -0
  223. package/dist/components/component-store.js.map +1 -0
  224. package/dist/components/datalist.js +557 -0
  225. package/dist/components/datalist.js.map +1 -0
  226. package/dist/components/date-picker.js +624 -0
  227. package/dist/components/date-picker.js.map +1 -0
  228. package/dist/{esm/dom-a791b223.js → components/dom.js} +25 -6
  229. package/dist/components/dom.js.map +1 -0
  230. package/dist/components/dropdown.js +332 -0
  231. package/dist/components/dropdown.js.map +1 -0
  232. package/dist/components/focus-visible.js +66 -0
  233. package/dist/components/focus-visible.js.map +1 -0
  234. package/dist/components/form-control.js +77 -0
  235. package/dist/components/form-control.js.map +1 -0
  236. package/dist/components/grid-item.js +112 -0
  237. package/dist/components/grid-item.js.map +1 -0
  238. package/dist/components/grid.js +276 -0
  239. package/dist/components/grid.js.map +1 -0
  240. package/dist/components/icon-button.js +70 -0
  241. package/dist/components/icon-button.js.map +1 -0
  242. package/dist/components/icon.js +269 -0
  243. package/dist/components/icon.js.map +1 -0
  244. package/dist/components/img.js +184 -0
  245. package/dist/components/img.js.map +1 -0
  246. package/dist/components/index.d.ts +26 -0
  247. package/dist/components/index.js +251 -0
  248. package/dist/components/index.js.map +1 -0
  249. package/dist/{esm/index-f41ae118.js → components/index2.js} +13 -27
  250. package/dist/components/index2.js.map +1 -0
  251. package/dist/components/index3.js +1075 -0
  252. package/dist/components/index3.js.map +1 -0
  253. package/dist/components/index4.js +637 -0
  254. package/dist/components/index4.js.map +1 -0
  255. package/dist/components/input.js +474 -0
  256. package/dist/components/input.js.map +1 -0
  257. package/dist/components/intersection-observer.js +985 -0
  258. package/dist/components/intersection-observer.js.map +1 -0
  259. package/dist/components/local-my-account.js +353 -0
  260. package/dist/components/local-my-account.js.map +1 -0
  261. package/dist/components/menu.js +235 -0
  262. package/dist/components/menu.js.map +1 -0
  263. package/dist/components/modal.js +48 -0
  264. package/dist/components/modal.js.map +1 -0
  265. package/dist/components/nano-accordion.d.ts +11 -0
  266. package/dist/components/nano-accordion.js +63 -0
  267. package/dist/components/nano-accordion.js.map +1 -0
  268. package/dist/components/nano-alert.d.ts +11 -0
  269. package/dist/components/nano-alert.js +296 -0
  270. package/dist/components/nano-alert.js.map +1 -0
  271. package/dist/components/nano-algolia-filter.d.ts +11 -0
  272. package/dist/components/nano-algolia-filter.js +317 -0
  273. package/dist/components/nano-algolia-filter.js.map +1 -0
  274. package/dist/components/nano-algolia-input.d.ts +11 -0
  275. package/dist/components/nano-algolia-input.js +224 -0
  276. package/dist/components/nano-algolia-input.js.map +1 -0
  277. package/dist/components/nano-algolia-pagination.d.ts +11 -0
  278. package/dist/components/nano-algolia-pagination.js +104 -0
  279. package/dist/components/nano-algolia-pagination.js.map +1 -0
  280. package/dist/components/nano-algolia-results.d.ts +11 -0
  281. package/dist/components/nano-algolia-results.js +224 -0
  282. package/dist/components/nano-algolia-results.js.map +1 -0
  283. package/dist/components/nano-algolia.d.ts +11 -0
  284. package/dist/components/nano-algolia.js +11 -0
  285. package/dist/components/nano-algolia.js.map +1 -0
  286. package/dist/components/nano-aspect-ratio.d.ts +11 -0
  287. package/dist/components/nano-aspect-ratio.js +74 -0
  288. package/dist/components/nano-aspect-ratio.js.map +1 -0
  289. package/dist/components/nano-checkbox-group.d.ts +11 -0
  290. package/dist/components/nano-checkbox-group.js +235 -0
  291. package/dist/components/nano-checkbox-group.js.map +1 -0
  292. package/dist/components/nano-checkbox.d.ts +11 -0
  293. package/dist/components/nano-checkbox.js +231 -0
  294. package/dist/components/nano-checkbox.js.map +1 -0
  295. package/dist/components/nano-datalist.d.ts +11 -0
  296. package/dist/components/nano-datalist.js +11 -0
  297. package/dist/components/nano-datalist.js.map +1 -0
  298. package/dist/components/nano-date-input.d.ts +11 -0
  299. package/dist/components/nano-date-input.js +408 -0
  300. package/dist/components/nano-date-input.js.map +1 -0
  301. package/dist/components/nano-date-picker.d.ts +11 -0
  302. package/dist/components/nano-date-picker.js +11 -0
  303. package/dist/components/nano-date-picker.js.map +1 -0
  304. package/dist/components/nano-details.d.ts +11 -0
  305. package/dist/components/nano-details.js +162 -0
  306. package/dist/components/nano-details.js.map +1 -0
  307. package/dist/components/nano-dialog.d.ts +11 -0
  308. package/dist/components/nano-dialog.js +231 -0
  309. package/dist/components/nano-dialog.js.map +1 -0
  310. package/dist/components/nano-drawer.d.ts +11 -0
  311. package/dist/components/nano-drawer.js +217 -0
  312. package/dist/components/nano-drawer.js.map +1 -0
  313. package/dist/components/nano-dropdown.d.ts +11 -0
  314. package/dist/components/nano-dropdown.js +11 -0
  315. package/dist/components/nano-dropdown.js.map +1 -0
  316. package/dist/components/nano-file-upload.d.ts +11 -0
  317. package/dist/components/nano-file-upload.js +421 -0
  318. package/dist/components/nano-file-upload.js.map +1 -0
  319. package/dist/components/nano-global-nav.d.ts +11 -0
  320. package/dist/components/nano-global-nav.js +1221 -0
  321. package/dist/components/nano-global-nav.js.map +1 -0
  322. package/dist/components/nano-global-search-results.d.ts +11 -0
  323. package/dist/components/nano-global-search-results.js +608 -0
  324. package/dist/components/nano-global-search-results.js.map +1 -0
  325. package/dist/components/nano-grid-item.d.ts +11 -0
  326. package/dist/components/nano-grid-item.js +11 -0
  327. package/dist/components/nano-grid-item.js.map +1 -0
  328. package/dist/components/nano-grid.d.ts +11 -0
  329. package/dist/components/nano-grid.js +11 -0
  330. package/dist/components/nano-grid.js.map +1 -0
  331. package/dist/components/nano-hero.d.ts +11 -0
  332. package/dist/components/nano-hero.js +187 -0
  333. package/dist/components/nano-hero.js.map +1 -0
  334. package/dist/components/nano-icon-button.d.ts +11 -0
  335. package/dist/components/nano-icon-button.js +11 -0
  336. package/dist/components/nano-icon-button.js.map +1 -0
  337. package/dist/components/nano-icon.d.ts +11 -0
  338. package/dist/components/nano-icon.js +11 -0
  339. package/dist/components/nano-icon.js.map +1 -0
  340. package/dist/components/nano-img.d.ts +11 -0
  341. package/dist/components/nano-img.js +11 -0
  342. package/dist/components/nano-img.js.map +1 -0
  343. package/dist/components/nano-input.d.ts +11 -0
  344. package/dist/components/nano-input.js +11 -0
  345. package/dist/components/nano-input.js.map +1 -0
  346. package/dist/components/nano-menu-drawer.d.ts +11 -0
  347. package/dist/components/nano-menu-drawer.js +221 -0
  348. package/dist/components/nano-menu-drawer.js.map +1 -0
  349. package/dist/components/nano-menu.d.ts +11 -0
  350. package/dist/components/nano-menu.js +11 -0
  351. package/dist/components/nano-menu.js.map +1 -0
  352. package/dist/components/nano-nav-item.d.ts +11 -0
  353. package/dist/components/nano-nav-item.js +11 -0
  354. package/dist/components/nano-nav-item.js.map +1 -0
  355. package/dist/components/nano-option.d.ts +11 -0
  356. package/dist/components/nano-option.js +11 -0
  357. package/dist/components/nano-option.js.map +1 -0
  358. package/dist/components/nano-range.d.ts +11 -0
  359. package/dist/components/nano-range.js +430 -0
  360. package/dist/components/nano-range.js.map +1 -0
  361. package/dist/components/nano-rating.d.ts +11 -0
  362. package/dist/components/nano-rating.js +240 -0
  363. package/dist/components/nano-rating.js.map +1 -0
  364. package/dist/components/nano-resize-observe.d.ts +11 -0
  365. package/dist/components/nano-resize-observe.js +11 -0
  366. package/dist/components/nano-resize-observe.js.map +1 -0
  367. package/dist/components/nano-select.d.ts +11 -0
  368. package/dist/components/nano-select.js +11 -0
  369. package/dist/components/nano-select.js.map +1 -0
  370. package/dist/components/nano-skeleton.d.ts +11 -0
  371. package/dist/components/nano-skeleton.js +11 -0
  372. package/dist/components/nano-skeleton.js.map +1 -0
  373. package/dist/components/nano-slide.d.ts +11 -0
  374. package/dist/components/nano-slide.js +66 -0
  375. package/dist/components/nano-slide.js.map +1 -0
  376. package/dist/components/nano-slides.d.ts +11 -0
  377. package/dist/components/nano-slides.js +4335 -0
  378. package/dist/components/nano-slides.js.map +1 -0
  379. package/dist/components/nano-spinner.d.ts +11 -0
  380. package/dist/components/nano-spinner.js +11 -0
  381. package/dist/components/nano-spinner.js.map +1 -0
  382. package/dist/components/nano-sticker.d.ts +11 -0
  383. package/dist/components/nano-sticker.js +11 -0
  384. package/dist/components/nano-sticker.js.map +1 -0
  385. package/dist/components/nano-tab-content.d.ts +11 -0
  386. package/dist/components/nano-tab-content.js +49 -0
  387. package/dist/components/nano-tab-content.js.map +1 -0
  388. package/dist/components/nano-tab-group.d.ts +11 -0
  389. package/dist/components/nano-tab-group.js +460 -0
  390. package/dist/components/nano-tab-group.js.map +1 -0
  391. package/dist/components/nano-tab.d.ts +11 -0
  392. package/dist/components/nano-tab.js +86 -0
  393. package/dist/components/nano-tab.js.map +1 -0
  394. package/dist/components/nano-tooltip.d.ts +11 -0
  395. package/dist/components/nano-tooltip.js +11 -0
  396. package/dist/components/nano-tooltip.js.map +1 -0
  397. package/dist/components/nav-item.js +327 -0
  398. package/dist/components/nav-item.js.map +1 -0
  399. package/dist/components/option.js +120 -0
  400. package/dist/components/option.js.map +1 -0
  401. package/dist/{esm/popover-2c7b2326.js → components/popover.js} +10 -1
  402. package/dist/components/popover.js.map +1 -0
  403. package/dist/components/resize-observe.js +162 -0
  404. package/dist/components/resize-observe.js.map +1 -0
  405. package/dist/{esm/scroll-5cd0ab13.js → components/scroll.js} +2 -2
  406. package/dist/components/scroll.js.map +1 -0
  407. package/dist/components/select.js +670 -0
  408. package/dist/components/select.js.map +1 -0
  409. package/dist/components/skeleton.js +43 -0
  410. package/dist/components/skeleton.js.map +1 -0
  411. package/dist/components/slot.js +48 -0
  412. package/dist/components/slot.js.map +1 -0
  413. package/dist/components/spinner.js +49 -0
  414. package/dist/components/spinner.js.map +1 -0
  415. package/dist/components/sticker.js +665 -0
  416. package/dist/components/sticker.js.map +1 -0
  417. package/dist/{esm/tabbable-e21f860a.js → components/tabbable.js} +8 -6
  418. package/dist/components/tabbable.js.map +1 -0
  419. package/dist/components/theme.js +29 -0
  420. package/dist/components/theme.js.map +1 -0
  421. package/dist/components/throttle.js +55 -0
  422. package/dist/components/throttle.js.map +1 -0
  423. package/dist/components/tooltip.js +216 -0
  424. package/dist/components/tooltip.js.map +1 -0
  425. package/dist/custom-elements/index.d.ts +12 -6
  426. package/dist/custom-elements/index.js +1745 -1116
  427. package/dist/custom-elements/index.js.map +1 -1
  428. package/dist/esm/active-element-75b7c8a0.js +19 -0
  429. package/dist/esm/active-element-75b7c8a0.js.map +1 -0
  430. package/dist/esm/{algoliasearch.umd-8e5aff52.js → algoliasearch.umd-6d09b727.js} +3 -3
  431. package/dist/esm/{algoliasearch.umd-8e5aff52.js.map → algoliasearch.umd-6d09b727.js.map} +1 -1
  432. package/dist/esm/dom-faa69d29.js +75 -0
  433. package/dist/esm/dom-faa69d29.js.map +1 -0
  434. package/dist/esm/form-control-67eeb108.js +77 -0
  435. package/dist/esm/form-control-67eeb108.js.map +1 -0
  436. package/dist/esm/index-5f8d16e7.js +12 -12
  437. package/dist/esm/index-bf53664b.js +74 -0
  438. package/dist/esm/{index-f41ae118.js.map → index-bf53664b.js.map} +1 -1
  439. package/dist/esm/index.js +4 -4
  440. package/dist/esm/index.js.map +1 -1
  441. package/dist/esm/loader.js +1 -1
  442. package/dist/esm/{modal-eb0a9bb3.js → modal-215df46b.js} +2 -2
  443. package/dist/esm/{modal-eb0a9bb3.js.map → modal-215df46b.js.map} +1 -1
  444. package/dist/esm/nano-accordion.entry.js +2 -4
  445. package/dist/esm/nano-accordion.entry.js.map +1 -1
  446. package/dist/esm/nano-alert.entry.js +6 -6
  447. package/dist/esm/nano-alert.entry.js.map +1 -1
  448. package/dist/esm/nano-algolia-filter.entry.js +1 -1
  449. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  450. package/dist/esm/nano-algolia-input.entry.js +1 -1
  451. package/dist/esm/nano-algolia.entry.js +9 -5
  452. package/dist/esm/nano-algolia.entry.js.map +1 -1
  453. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  454. package/dist/esm/nano-aspect-ratio.entry.js.map +1 -1
  455. package/dist/esm/nano-checkbox-group.entry.js +4 -1
  456. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  457. package/dist/esm/nano-checkbox.entry.js +1 -1
  458. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  459. package/dist/esm/nano-components.js +1 -1
  460. package/dist/esm/nano-datalist_3.entry.js +784 -0
  461. package/dist/esm/nano-datalist_3.entry.js.map +1 -0
  462. package/dist/esm/nano-date-input.entry.js +9 -5
  463. package/dist/esm/nano-date-input.entry.js.map +1 -1
  464. package/dist/esm/{nano-date-picker_2.entry.js → nano-date-picker.entry.js} +3 -274
  465. package/dist/esm/nano-date-picker.entry.js.map +1 -0
  466. package/dist/esm/nano-details.entry.js +2 -2
  467. package/dist/esm/nano-details.entry.js.map +1 -1
  468. package/dist/esm/nano-dialog.entry.js +5 -5
  469. package/dist/esm/nano-dialog.entry.js.map +1 -1
  470. package/dist/esm/nano-drawer.entry.js +5 -5
  471. package/dist/esm/nano-drawer.entry.js.map +1 -1
  472. package/dist/esm/nano-dropdown.entry.js +303 -0
  473. package/dist/esm/nano-dropdown.entry.js.map +1 -0
  474. package/dist/esm/nano-file-upload.entry.js +1 -1
  475. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  476. package/dist/esm/nano-global-nav.entry.js +19 -24
  477. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  478. package/dist/esm/nano-global-search-results.entry.js +200 -115
  479. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  480. package/dist/esm/nano-grid_3.entry.js +16 -8
  481. package/dist/esm/nano-grid_3.entry.js.map +1 -1
  482. package/dist/esm/nano-hero.entry.js +14 -6
  483. package/dist/esm/nano-hero.entry.js.map +1 -1
  484. package/dist/esm/nano-icon-button.entry.js +2 -2
  485. package/dist/esm/nano-icon-button.entry.js.map +1 -1
  486. package/dist/esm/nano-icon.entry.js +1 -1
  487. package/dist/esm/nano-icon.entry.js.map +1 -1
  488. package/dist/esm/nano-input.entry.js +80 -75
  489. package/dist/esm/nano-input.entry.js.map +1 -1
  490. package/dist/esm/nano-menu-drawer.entry.js +2 -2
  491. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  492. package/dist/esm/nano-nav-item_2.entry.js +287 -533
  493. package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
  494. package/dist/esm/nano-range.entry.js +2 -2
  495. package/dist/esm/nano-range.entry.js.map +1 -1
  496. package/dist/esm/nano-rating.entry.js +2 -2
  497. package/dist/esm/nano-rating.entry.js.map +1 -1
  498. package/dist/esm/nano-resize-observe_2.entry.js +1 -1
  499. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  500. package/dist/esm/nano-slide.entry.js +1 -1
  501. package/dist/esm/nano-slide.entry.js.map +1 -1
  502. package/dist/esm/nano-slides.entry.js +1 -1
  503. package/dist/esm/nano-slides.entry.js.map +1 -1
  504. package/dist/esm/nano-spinner.entry.js +1 -1
  505. package/dist/esm/nano-spinner.entry.js.map +1 -1
  506. package/dist/esm/nano-sticker.entry.js +3 -3
  507. package/dist/esm/nano-sticker.entry.js.map +1 -1
  508. package/dist/esm/nano-tab-content.entry.js +2 -2
  509. package/dist/esm/nano-tab-content.entry.js.map +1 -1
  510. package/dist/esm/nano-tab-group.entry.js +72 -36
  511. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  512. package/dist/esm/nano-tab.entry.js +10 -3
  513. package/dist/esm/nano-tab.entry.js.map +1 -1
  514. package/dist/esm/nano-tooltip.entry.js +2 -2
  515. package/dist/esm/nano-tooltip.entry.js.map +1 -1
  516. package/dist/esm/popover-db86a392.js +1893 -0
  517. package/dist/esm/popover-db86a392.js.map +1 -0
  518. package/dist/esm/scroll-881feb46.js +76 -0
  519. package/dist/esm/{scroll-5cd0ab13.js.map → scroll-881feb46.js.map} +1 -1
  520. package/dist/esm/tabbable-614f515e.js +94 -0
  521. package/dist/esm/tabbable-614f515e.js.map +1 -0
  522. package/dist/esm-es5/active-element-75b7c8a0.js +5 -0
  523. package/dist/esm-es5/active-element-75b7c8a0.js.map +1 -0
  524. package/dist/esm-es5/{algoliasearch.umd-8e5aff52.js → algoliasearch.umd-6d09b727.js} +3 -3
  525. package/dist/esm-es5/{algoliasearch.umd-8e5aff52.js.map → algoliasearch.umd-6d09b727.js.map} +1 -1
  526. package/dist/esm-es5/dom-faa69d29.js +5 -0
  527. package/dist/esm-es5/dom-faa69d29.js.map +1 -0
  528. package/dist/esm-es5/form-control-67eeb108.js +5 -0
  529. package/dist/esm-es5/form-control-67eeb108.js.map +1 -0
  530. package/dist/esm-es5/index-5f8d16e7.js +1 -1
  531. package/dist/esm-es5/index-bf53664b.js +5 -0
  532. package/dist/esm-es5/index-bf53664b.js.map +1 -0
  533. package/dist/esm-es5/index.js +1 -1
  534. package/dist/esm-es5/index.js.map +1 -1
  535. package/dist/esm-es5/loader.js +1 -1
  536. package/dist/esm-es5/loader.js.map +1 -1
  537. package/dist/esm-es5/{modal-eb0a9bb3.js → modal-215df46b.js} +2 -2
  538. package/dist/esm-es5/{modal-eb0a9bb3.js.map → modal-215df46b.js.map} +0 -0
  539. package/dist/esm-es5/nano-accordion.entry.js +1 -1
  540. package/dist/esm-es5/nano-accordion.entry.js.map +1 -1
  541. package/dist/esm-es5/nano-alert.entry.js +1 -1
  542. package/dist/esm-es5/nano-alert.entry.js.map +1 -1
  543. package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
  544. package/dist/esm-es5/nano-algolia-filter.entry.js.map +1 -1
  545. package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
  546. package/dist/esm-es5/nano-algolia.entry.js +1 -1
  547. package/dist/esm-es5/nano-algolia.entry.js.map +1 -1
  548. package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
  549. package/dist/esm-es5/nano-aspect-ratio.entry.js.map +1 -1
  550. package/dist/esm-es5/nano-checkbox-group.entry.js +1 -1
  551. package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
  552. package/dist/esm-es5/nano-checkbox.entry.js +1 -1
  553. package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
  554. package/dist/esm-es5/nano-components.js +1 -1
  555. package/dist/esm-es5/nano-components.js.map +1 -1
  556. package/dist/esm-es5/nano-datalist_3.entry.js +5 -0
  557. package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -0
  558. package/dist/esm-es5/nano-date-input.entry.js +1 -1
  559. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  560. package/dist/esm-es5/nano-date-picker.entry.js +5 -0
  561. package/dist/esm-es5/nano-date-picker.entry.js.map +1 -0
  562. package/dist/esm-es5/nano-details.entry.js +1 -1
  563. package/dist/esm-es5/nano-details.entry.js.map +1 -1
  564. package/dist/esm-es5/nano-dialog.entry.js +1 -1
  565. package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
  566. package/dist/esm-es5/nano-drawer.entry.js +1 -1
  567. package/dist/esm-es5/nano-drawer.entry.js.map +1 -1
  568. package/dist/esm-es5/nano-dropdown.entry.js +5 -0
  569. package/dist/esm-es5/nano-dropdown.entry.js.map +1 -0
  570. package/dist/esm-es5/nano-file-upload.entry.js +1 -1
  571. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  572. package/dist/esm-es5/nano-global-nav.entry.js +1 -1
  573. package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
  574. package/dist/esm-es5/nano-global-search-results.entry.js +2 -2
  575. package/dist/esm-es5/nano-global-search-results.entry.js.map +1 -1
  576. package/dist/esm-es5/nano-grid_3.entry.js +1 -1
  577. package/dist/esm-es5/nano-grid_3.entry.js.map +1 -1
  578. package/dist/esm-es5/nano-hero.entry.js +1 -1
  579. package/dist/esm-es5/nano-hero.entry.js.map +1 -1
  580. package/dist/esm-es5/nano-icon-button.entry.js +1 -1
  581. package/dist/esm-es5/nano-icon-button.entry.js.map +1 -1
  582. package/dist/esm-es5/nano-icon.entry.js +1 -1
  583. package/dist/esm-es5/nano-icon.entry.js.map +1 -1
  584. package/dist/esm-es5/nano-input.entry.js +2 -2
  585. package/dist/esm-es5/nano-input.entry.js.map +1 -1
  586. package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
  587. package/dist/esm-es5/nano-menu-drawer.entry.js.map +1 -1
  588. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  589. package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
  590. package/dist/esm-es5/nano-range.entry.js +1 -1
  591. package/dist/esm-es5/nano-range.entry.js.map +1 -1
  592. package/dist/esm-es5/nano-rating.entry.js +1 -1
  593. package/dist/esm-es5/nano-rating.entry.js.map +1 -1
  594. package/dist/esm-es5/nano-resize-observe_2.entry.js +2 -2
  595. package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
  596. package/dist/esm-es5/nano-slide.entry.js +1 -1
  597. package/dist/esm-es5/nano-slide.entry.js.map +1 -1
  598. package/dist/esm-es5/nano-slides.entry.js +1 -1
  599. package/dist/esm-es5/nano-slides.entry.js.map +1 -1
  600. package/dist/esm-es5/nano-spinner.entry.js +1 -1
  601. package/dist/esm-es5/nano-spinner.entry.js.map +1 -1
  602. package/dist/esm-es5/nano-sticker.entry.js +1 -1
  603. package/dist/esm-es5/nano-sticker.entry.js.map +1 -1
  604. package/dist/esm-es5/nano-tab-content.entry.js +1 -1
  605. package/dist/esm-es5/nano-tab-content.entry.js.map +1 -1
  606. package/dist/esm-es5/nano-tab-group.entry.js +2 -2
  607. package/dist/esm-es5/nano-tab-group.entry.js.map +1 -1
  608. package/dist/esm-es5/nano-tab.entry.js +2 -2
  609. package/dist/esm-es5/nano-tab.entry.js.map +1 -1
  610. package/dist/esm-es5/nano-tooltip.entry.js +1 -1
  611. package/dist/esm-es5/nano-tooltip.entry.js.map +1 -1
  612. package/dist/esm-es5/{popover-2c7b2326.js → popover-db86a392.js} +2 -2
  613. package/dist/esm-es5/popover-db86a392.js.map +1 -0
  614. package/dist/esm-es5/{scroll-5cd0ab13.js → scroll-881feb46.js} +2 -2
  615. package/dist/esm-es5/{scroll-5cd0ab13.js.map → scroll-881feb46.js.map} +0 -0
  616. package/dist/esm-es5/tabbable-614f515e.js +5 -0
  617. package/dist/esm-es5/tabbable-614f515e.js.map +1 -0
  618. package/dist/nano-components/index.esm.js +1 -1
  619. package/dist/nano-components/index.esm.js.map +1 -1
  620. package/dist/nano-components/nano-components.css +1 -1
  621. package/dist/nano-components/nano-components.esm.js +1 -1
  622. package/dist/nano-components/nano-components.esm.js.map +1 -1
  623. package/dist/nano-components/{p-2f21a443.system.entry.js → p-033296c7.system.entry.js} +2 -2
  624. package/dist/nano-components/{p-2f21a443.system.entry.js.map → p-033296c7.system.entry.js.map} +1 -1
  625. package/dist/nano-components/p-040b6cda.entry.js +5 -0
  626. package/dist/nano-components/{p-61565b5a.entry.js.map → p-040b6cda.entry.js.map} +1 -1
  627. package/dist/nano-components/p-05c7bde1.system.entry.js +5 -0
  628. package/dist/nano-components/{p-30df44d9.system.entry.js.map → p-05c7bde1.system.entry.js.map} +1 -1
  629. package/dist/nano-components/p-07bdf44d.entry.js +5 -0
  630. package/dist/nano-components/{p-88bcf55b.entry.js.map → p-07bdf44d.entry.js.map} +1 -1
  631. package/dist/nano-components/p-09066701.system.entry.js +5 -0
  632. package/dist/nano-components/p-09066701.system.entry.js.map +1 -0
  633. package/dist/nano-components/p-090f22a9.system.entry.js +5 -0
  634. package/dist/nano-components/{p-854df906.system.entry.js.map → p-090f22a9.system.entry.js.map} +1 -1
  635. package/dist/nano-components/p-096682d9.system.js +1 -1
  636. package/dist/nano-components/p-096682d9.system.js.map +1 -1
  637. package/dist/nano-components/p-09d2d944.system.js +5 -0
  638. package/dist/nano-components/p-09d2d944.system.js.map +1 -0
  639. package/dist/nano-components/{p-bfc12324.system.entry.js → p-0bee6fe6.system.entry.js} +2 -2
  640. package/dist/nano-components/{p-bfc12324.system.entry.js.map → p-0bee6fe6.system.entry.js.map} +0 -0
  641. package/dist/nano-components/{p-21c2a9a5.system.entry.js → p-173bae15.system.entry.js} +2 -2
  642. package/dist/nano-components/{p-21c2a9a5.system.entry.js.map → p-173bae15.system.entry.js.map} +1 -1
  643. package/dist/nano-components/{p-731935b1.js → p-1805d59a.js} +2 -2
  644. package/dist/nano-components/{p-731935b1.js.map → p-1805d59a.js.map} +0 -0
  645. package/dist/nano-components/p-1a293bd0.entry.js +5 -0
  646. package/dist/nano-components/{p-8b7f8ef4.entry.js.map → p-1a293bd0.entry.js.map} +1 -1
  647. package/dist/nano-components/p-1c216ca4.system.js +5 -0
  648. package/dist/{esm-es5/index-f41ae118.js.map → nano-components/p-1c216ca4.system.js.map} +1 -1
  649. package/dist/nano-components/p-1d13dbdf.system.js +5 -0
  650. package/dist/nano-components/p-1d13dbdf.system.js.map +1 -0
  651. package/dist/nano-components/p-1e974cad.entry.js +5 -0
  652. package/dist/nano-components/{p-7e60c331.entry.js.map → p-1e974cad.entry.js.map} +1 -1
  653. package/dist/nano-components/p-20387cde.system.entry.js +5 -0
  654. package/dist/nano-components/{p-91778977.system.entry.js.map → p-20387cde.system.entry.js.map} +1 -1
  655. package/dist/nano-components/p-20db18f3.entry.js +5 -0
  656. package/dist/nano-components/{p-a9dd7cf9.entry.js.map → p-20db18f3.entry.js.map} +1 -1
  657. package/dist/nano-components/p-22884654.system.entry.js +5 -0
  658. package/dist/nano-components/{p-3d0fbd0e.system.entry.js.map → p-22884654.system.entry.js.map} +1 -1
  659. package/dist/nano-components/p-2559e9c1.entry.js +5 -0
  660. package/dist/nano-components/p-2559e9c1.entry.js.map +1 -0
  661. package/dist/nano-components/p-289aa03f.js +5 -0
  662. package/dist/nano-components/p-289aa03f.js.map +1 -0
  663. package/dist/nano-components/p-2e6c55e2.entry.js +5 -0
  664. package/dist/nano-components/{p-6f3d20fe.entry.js.map → p-2e6c55e2.entry.js.map} +1 -1
  665. package/dist/nano-components/{p-60c9b580.system.js → p-3258c568.system.js} +2 -2
  666. package/dist/nano-components/p-3258c568.system.js.map +1 -0
  667. package/dist/nano-components/p-3456db01.entry.js +5 -0
  668. package/dist/nano-components/p-3456db01.entry.js.map +1 -0
  669. package/dist/nano-components/p-346588cc.entry.js +5 -0
  670. package/dist/nano-components/p-346588cc.entry.js.map +1 -0
  671. package/dist/nano-components/p-394c3c19.entry.js +5 -0
  672. package/dist/nano-components/{p-217f71aa.entry.js.map → p-394c3c19.entry.js.map} +1 -1
  673. package/dist/nano-components/p-3a13948a.system.entry.js +5 -0
  674. package/dist/nano-components/p-3a13948a.system.entry.js.map +1 -0
  675. package/dist/nano-components/p-3a725f1f.system.entry.js +5 -0
  676. package/dist/nano-components/p-3a725f1f.system.entry.js.map +1 -0
  677. package/dist/nano-components/p-3aa1d07d.entry.js +5 -0
  678. package/dist/nano-components/{p-6a1c69d3.entry.js.map → p-3aa1d07d.entry.js.map} +1 -1
  679. package/dist/nano-components/p-3ad1d5aa.system.entry.js +5 -0
  680. package/dist/nano-components/p-3ad1d5aa.system.entry.js.map +1 -0
  681. package/dist/nano-components/p-3ef30ded.system.entry.js +5 -0
  682. package/dist/nano-components/{p-9bf4a6e0.system.entry.js.map → p-3ef30ded.system.entry.js.map} +1 -1
  683. package/dist/nano-components/p-3fc52f19.system.entry.js +5 -0
  684. package/dist/nano-components/p-3fc52f19.system.entry.js.map +1 -0
  685. package/dist/nano-components/p-4429caac.system.entry.js +5 -0
  686. package/dist/nano-components/p-4429caac.system.entry.js.map +1 -0
  687. package/dist/nano-components/p-4535e3bb.entry.js +5 -0
  688. package/dist/nano-components/{p-143bca0d.entry.js.map → p-4535e3bb.entry.js.map} +1 -1
  689. package/dist/nano-components/p-462ad4f1.entry.js +5 -0
  690. package/dist/nano-components/p-462ad4f1.entry.js.map +1 -0
  691. package/dist/nano-components/p-46d0bb7b.entry.js +5 -0
  692. package/dist/nano-components/p-46d0bb7b.entry.js.map +1 -0
  693. package/dist/nano-components/p-5066e563.system.entry.js +5 -0
  694. package/dist/nano-components/{p-006f2fd3.system.entry.js.map → p-5066e563.system.entry.js.map} +1 -1
  695. package/dist/nano-components/p-52ab579e.system.entry.js +5 -0
  696. package/dist/nano-components/p-52ab579e.system.entry.js.map +1 -0
  697. package/dist/nano-components/p-531d5275.system.entry.js +5 -0
  698. package/dist/nano-components/{p-b79dc23a.system.entry.js.map → p-531d5275.system.entry.js.map} +1 -1
  699. package/dist/nano-components/p-5653961d.system.entry.js +5 -0
  700. package/dist/nano-components/{p-18f49ebf.system.entry.js.map → p-5653961d.system.entry.js.map} +1 -1
  701. package/dist/nano-components/p-56ba0d63.entry.js +5 -0
  702. package/dist/nano-components/p-56ba0d63.entry.js.map +1 -0
  703. package/dist/nano-components/p-593de29b.system.entry.js +5 -0
  704. package/dist/nano-components/{p-76b13c27.system.entry.js.map → p-593de29b.system.entry.js.map} +1 -1
  705. package/dist/nano-components/p-5a476bba.system.entry.js +5 -0
  706. package/dist/nano-components/p-5a476bba.system.entry.js.map +1 -0
  707. package/dist/nano-components/{p-8a608e6d.entry.js → p-5e7c7d3d.entry.js} +2 -2
  708. package/dist/nano-components/{p-8a608e6d.entry.js.map → p-5e7c7d3d.entry.js.map} +1 -1
  709. package/dist/nano-components/p-672e5547.js +5 -0
  710. package/dist/nano-components/p-672e5547.js.map +1 -0
  711. package/dist/nano-components/{p-a16651a6.system.js → p-67cc0d9b.system.js} +3 -3
  712. package/dist/nano-components/{p-a16651a6.system.js.map → p-67cc0d9b.system.js.map} +1 -1
  713. package/dist/nano-components/p-69439aa1.system.entry.js +5 -0
  714. package/dist/nano-components/p-69439aa1.system.entry.js.map +1 -0
  715. package/dist/nano-components/p-6ade3290.entry.js +5 -0
  716. package/dist/nano-components/{p-1e03f9bf.entry.js.map → p-6ade3290.entry.js.map} +1 -1
  717. package/dist/nano-components/p-70dec19f.entry.js +5 -0
  718. package/dist/nano-components/{p-d0e9b177.entry.js.map → p-70dec19f.entry.js.map} +1 -1
  719. package/dist/nano-components/p-71c26ace.entry.js +5 -0
  720. package/dist/nano-components/p-71c26ace.entry.js.map +1 -0
  721. package/dist/nano-components/p-7232c046.system.entry.js +5 -0
  722. package/dist/nano-components/{p-92b3f99b.system.entry.js.map → p-7232c046.system.entry.js.map} +1 -1
  723. package/dist/nano-components/p-730f60ea.entry.js +5 -0
  724. package/dist/nano-components/{p-78cf9d39.entry.js.map → p-730f60ea.entry.js.map} +1 -1
  725. package/dist/nano-components/p-74a7fc4f.js +5 -0
  726. package/dist/nano-components/p-74a7fc4f.js.map +1 -0
  727. package/dist/nano-components/p-774e090b.system.entry.js +5 -0
  728. package/dist/nano-components/p-774e090b.system.entry.js.map +1 -0
  729. package/dist/nano-components/{p-d31761c8.system.js → p-7be6b7f3.system.js} +2 -2
  730. package/dist/nano-components/p-7be6b7f3.system.js.map +1 -0
  731. package/dist/nano-components/p-7d2e2685.entry.js +5 -0
  732. package/dist/nano-components/p-7d2e2685.entry.js.map +1 -0
  733. package/dist/nano-components/p-820d9e23.system.entry.js +5 -0
  734. package/dist/nano-components/p-820d9e23.system.entry.js.map +1 -0
  735. package/dist/nano-components/p-8278c5d2.system.entry.js +5 -0
  736. package/dist/nano-components/{p-badf69ee.system.entry.js.map → p-8278c5d2.system.entry.js.map} +1 -1
  737. package/dist/nano-components/p-82f4b071.entry.js +5 -0
  738. package/dist/nano-components/p-82f4b071.entry.js.map +1 -0
  739. package/dist/nano-components/p-88f17c86.system.entry.js +5 -0
  740. package/dist/nano-components/p-88f17c86.system.entry.js.map +1 -0
  741. package/dist/nano-components/p-8a8f893b.system.entry.js +5 -0
  742. package/dist/nano-components/{p-cc668975.system.entry.js.map → p-8a8f893b.system.entry.js.map} +1 -1
  743. package/dist/nano-components/p-93448bcd.system.entry.js +5 -0
  744. package/dist/nano-components/{p-02e82e14.system.entry.js.map → p-93448bcd.system.entry.js.map} +1 -1
  745. package/dist/nano-components/p-94593617.system.entry.js +5 -0
  746. package/dist/nano-components/{p-2442eda0.system.entry.js.map → p-94593617.system.entry.js.map} +1 -1
  747. package/dist/nano-components/{p-56113dd3.js → p-9a385481.js} +2 -2
  748. package/dist/nano-components/p-9a385481.js.map +1 -0
  749. package/dist/nano-components/{p-8134c14e.system.js → p-9de508a5.system.js} +2 -2
  750. package/dist/nano-components/p-9de508a5.system.js.map +1 -0
  751. package/dist/nano-components/p-a315ed2c.entry.js +5 -0
  752. package/dist/nano-components/{p-13801651.entry.js.map → p-a315ed2c.entry.js.map} +1 -1
  753. package/dist/nano-components/p-a4075d49.entry.js +5 -0
  754. package/dist/nano-components/p-a4075d49.entry.js.map +1 -0
  755. package/dist/nano-components/p-b19e0775.system.entry.js +5 -0
  756. package/dist/nano-components/p-b19e0775.system.entry.js.map +1 -0
  757. package/dist/nano-components/{p-18411914.system.js → p-b370e3ef.system.js} +2 -2
  758. package/dist/nano-components/{p-18411914.system.js.map → p-b370e3ef.system.js.map} +0 -0
  759. package/dist/nano-components/p-b59d2bd5.entry.js +5 -0
  760. package/dist/nano-components/p-b59d2bd5.entry.js.map +1 -0
  761. package/dist/nano-components/p-b619500f.js +5 -0
  762. package/dist/nano-components/p-b619500f.js.map +1 -0
  763. package/dist/nano-components/{p-23f65b34.entry.js → p-ba13bb56.entry.js} +2 -2
  764. package/dist/nano-components/{p-23f65b34.entry.js.map → p-ba13bb56.entry.js.map} +1 -1
  765. package/dist/nano-components/p-c0ddb4c3.entry.js +5 -0
  766. package/dist/nano-components/{p-78569d39.entry.js.map → p-c0ddb4c3.entry.js.map} +1 -1
  767. package/dist/nano-components/p-c954c040.entry.js +5 -0
  768. package/dist/nano-components/p-c954c040.entry.js.map +1 -0
  769. package/dist/nano-components/p-c9c1a345.system.entry.js +5 -0
  770. package/dist/nano-components/{p-38a3e791.system.entry.js.map → p-c9c1a345.system.entry.js.map} +1 -1
  771. package/dist/nano-components/{p-8c8963f6.js → p-cb79d1ec.js} +2 -2
  772. package/dist/nano-components/{p-8c8963f6.js.map → p-cb79d1ec.js.map} +0 -0
  773. package/dist/nano-components/p-d6569144.entry.js +5 -0
  774. package/dist/nano-components/{p-c7b7f7ab.entry.js.map → p-d6569144.entry.js.map} +1 -1
  775. package/dist/nano-components/{p-2d1a856e.system.js → p-d84ef175.system.js} +2 -2
  776. package/dist/nano-components/{p-2d1a856e.system.js.map → p-d84ef175.system.js.map} +0 -0
  777. package/dist/nano-components/p-d9c7909e.js +5 -0
  778. package/dist/nano-components/p-d9c7909e.js.map +1 -0
  779. package/dist/nano-components/p-e11bd40d.entry.js +5 -0
  780. package/dist/nano-components/{p-a21d90aa.entry.js.map → p-e11bd40d.entry.js.map} +1 -1
  781. package/dist/nano-components/p-e15be516.system.entry.js +5 -0
  782. package/dist/nano-components/p-e15be516.system.entry.js.map +1 -0
  783. package/dist/nano-components/p-e2ae11d2.entry.js +5 -0
  784. package/dist/nano-components/p-e2ae11d2.entry.js.map +1 -0
  785. package/dist/nano-components/{p-8757b4eb.js → p-e3583b00.js} +3 -3
  786. package/dist/nano-components/{p-8757b4eb.js.map → p-e3583b00.js.map} +1 -1
  787. package/dist/nano-components/p-e35eac75.entry.js +5 -0
  788. package/dist/nano-components/p-e35eac75.entry.js.map +1 -0
  789. package/dist/nano-components/p-e562bffd.entry.js +5 -0
  790. package/dist/nano-components/p-e562bffd.entry.js.map +1 -0
  791. package/dist/nano-components/p-e6f41b97.entry.js +5 -0
  792. package/dist/nano-components/p-e6f41b97.entry.js.map +1 -0
  793. package/dist/nano-components/p-e6f8f9f7.system.entry.js +5 -0
  794. package/dist/nano-components/p-e6f8f9f7.system.entry.js.map +1 -0
  795. package/dist/nano-components/p-ea5eb591.system.js +5 -0
  796. package/dist/nano-components/p-ea5eb591.system.js.map +1 -0
  797. package/dist/nano-components/p-ef4e0912.system.entry.js +5 -0
  798. package/dist/nano-components/{p-2aed806d.system.entry.js.map → p-ef4e0912.system.entry.js.map} +1 -1
  799. package/dist/nano-components/{p-981cc614.entry.js → p-f1bf1099.entry.js} +2 -2
  800. package/dist/nano-components/{p-981cc614.entry.js.map → p-f1bf1099.entry.js.map} +0 -0
  801. package/dist/nano-components/p-f2e7d2f9.system.entry.js +5 -0
  802. package/dist/nano-components/p-f2e7d2f9.system.entry.js.map +1 -0
  803. package/dist/nano-components/p-f3bf942d.entry.js +5 -0
  804. package/dist/nano-components/p-f3bf942d.entry.js.map +1 -0
  805. package/dist/nano-components/p-f53989c3.system.entry.js +5 -0
  806. package/dist/nano-components/{p-6621e4f1.system.entry.js.map → p-f53989c3.system.entry.js.map} +1 -1
  807. package/dist/themes/nanopore.css +1 -1
  808. package/dist/themes/nanopore.css.map +1 -1
  809. package/dist/types/components/accordion/accordion.d.ts +0 -1
  810. package/dist/types/components/checkbox/checkbox-group.d.ts +1 -0
  811. package/dist/types/components/datalist/datalist.d.ts +98 -0
  812. package/dist/types/components/date-input/date-input.d.ts +2 -0
  813. package/dist/types/components/dialog/dialog.helpers.d.ts +2 -2
  814. package/dist/types/components/dropdown/dropdown.d.ts +8 -4
  815. package/dist/types/components/form-control/form-control.d.ts +35 -0
  816. package/dist/types/components/global-search-results/global-search-results.d.ts +1 -0
  817. package/dist/types/components/grid/grid.d.ts +7 -1
  818. package/dist/types/components/hero/hero.d.ts +2 -0
  819. package/dist/types/components/input/input.d.ts +13 -9
  820. package/dist/types/components/menu/menu.d.ts +22 -8
  821. package/dist/types/components/option/option-interface.d.ts +7 -0
  822. package/dist/types/components/option/option.d.ts +45 -0
  823. package/dist/types/components/select/select.d.ts +43 -49
  824. package/dist/types/components/tabs/tab-group.d.ts +32 -6
  825. package/dist/types/components/tabs/tab.d.ts +6 -1
  826. package/dist/types/components.d.ts +241 -70
  827. package/dist/types/interface.d.ts +1 -0
  828. package/dist/types/utils/active-element.d.ts +1 -0
  829. package/dist/types/utils/dom.d.ts +9 -1
  830. package/dist/types/utils/index.d.ts +2 -1
  831. package/dist/types/utils/tabbable.d.ts +2 -2
  832. package/dist/types/utils/testing/index.d.ts +3 -2
  833. package/docs-json.json +1244 -262
  834. package/docs-vscode.json +102 -33
  835. package/package.json +5 -5
  836. package/dist/cjs/dom-5f3fae1a.js.map +0 -1
  837. package/dist/cjs/index-117f36a4.js.map +0 -1
  838. package/dist/cjs/nano-date-picker_2.cjs.entry.js.map +0 -1
  839. package/dist/cjs/nano-menu.cjs.entry.js +0 -156
  840. package/dist/cjs/nano-menu.cjs.entry.js.map +0 -1
  841. package/dist/cjs/nano-select-option.cjs.entry.js +0 -43
  842. package/dist/cjs/nano-select-option.cjs.entry.js.map +0 -1
  843. package/dist/cjs/popover-d033efa2.js.map +0 -1
  844. package/dist/cjs/tabbable-615c30e1.js.map +0 -1
  845. package/dist/collection/components/select/select-option.css +0 -15
  846. package/dist/collection/components/select/select-option.js +0 -127
  847. package/dist/collection/components/select/select-option.js.map +0 -1
  848. package/dist/esm/dom-a791b223.js.map +0 -1
  849. package/dist/esm/nano-date-picker_2.entry.js.map +0 -1
  850. package/dist/esm/nano-menu.entry.js +0 -152
  851. package/dist/esm/nano-menu.entry.js.map +0 -1
  852. package/dist/esm/nano-select-option.entry.js +0 -39
  853. package/dist/esm/nano-select-option.entry.js.map +0 -1
  854. package/dist/esm/popover-2c7b2326.js.map +0 -1
  855. package/dist/esm/tabbable-e21f860a.js.map +0 -1
  856. package/dist/esm-es5/dom-a791b223.js +0 -5
  857. package/dist/esm-es5/dom-a791b223.js.map +0 -1
  858. package/dist/esm-es5/index-f41ae118.js +0 -5
  859. package/dist/esm-es5/nano-date-picker_2.entry.js +0 -5
  860. package/dist/esm-es5/nano-date-picker_2.entry.js.map +0 -1
  861. package/dist/esm-es5/nano-menu.entry.js +0 -5
  862. package/dist/esm-es5/nano-menu.entry.js.map +0 -1
  863. package/dist/esm-es5/nano-select-option.entry.js +0 -5
  864. package/dist/esm-es5/nano-select-option.entry.js.map +0 -1
  865. package/dist/esm-es5/popover-2c7b2326.js.map +0 -1
  866. package/dist/esm-es5/tabbable-e21f860a.js +0 -5
  867. package/dist/esm-es5/tabbable-e21f860a.js.map +0 -1
  868. package/dist/nano-components/p-006f2fd3.system.entry.js +0 -5
  869. package/dist/nano-components/p-02e82e14.system.entry.js +0 -5
  870. package/dist/nano-components/p-05a8014a.entry.js +0 -5
  871. package/dist/nano-components/p-05a8014a.entry.js.map +0 -1
  872. package/dist/nano-components/p-13801651.entry.js +0 -5
  873. package/dist/nano-components/p-13fa75fc.entry.js +0 -5
  874. package/dist/nano-components/p-13fa75fc.entry.js.map +0 -1
  875. package/dist/nano-components/p-143bca0d.entry.js +0 -5
  876. package/dist/nano-components/p-18f49ebf.system.entry.js +0 -5
  877. package/dist/nano-components/p-19428228.system.entry.js +0 -5
  878. package/dist/nano-components/p-19428228.system.entry.js.map +0 -1
  879. package/dist/nano-components/p-1e03f9bf.entry.js +0 -5
  880. package/dist/nano-components/p-217f71aa.entry.js +0 -5
  881. package/dist/nano-components/p-2442eda0.system.entry.js +0 -5
  882. package/dist/nano-components/p-2946bd70.system.entry.js +0 -5
  883. package/dist/nano-components/p-2946bd70.system.entry.js.map +0 -1
  884. package/dist/nano-components/p-2aed806d.system.entry.js +0 -5
  885. package/dist/nano-components/p-30df44d9.system.entry.js +0 -5
  886. package/dist/nano-components/p-38a3e791.system.entry.js +0 -5
  887. package/dist/nano-components/p-3a49ceab.entry.js +0 -5
  888. package/dist/nano-components/p-3a49ceab.entry.js.map +0 -1
  889. package/dist/nano-components/p-3d0fbd0e.system.entry.js +0 -5
  890. package/dist/nano-components/p-3f00179c.js +0 -5
  891. package/dist/nano-components/p-3f00179c.js.map +0 -1
  892. package/dist/nano-components/p-48e6bea3.entry.js +0 -5
  893. package/dist/nano-components/p-48e6bea3.entry.js.map +0 -1
  894. package/dist/nano-components/p-4d62ec32.system.js +0 -5
  895. package/dist/nano-components/p-4d62ec32.system.js.map +0 -1
  896. package/dist/nano-components/p-4e451498.entry.js +0 -5
  897. package/dist/nano-components/p-4e451498.entry.js.map +0 -1
  898. package/dist/nano-components/p-51d9570d.entry.js +0 -5
  899. package/dist/nano-components/p-51d9570d.entry.js.map +0 -1
  900. package/dist/nano-components/p-51fa04a6.entry.js +0 -5
  901. package/dist/nano-components/p-51fa04a6.entry.js.map +0 -1
  902. package/dist/nano-components/p-55189485.system.entry.js +0 -5
  903. package/dist/nano-components/p-55189485.system.entry.js.map +0 -1
  904. package/dist/nano-components/p-56113dd3.js.map +0 -1
  905. package/dist/nano-components/p-5bbd6c81.entry.js +0 -5
  906. package/dist/nano-components/p-5bbd6c81.entry.js.map +0 -1
  907. package/dist/nano-components/p-5e9170ae.entry.js +0 -5
  908. package/dist/nano-components/p-5e9170ae.entry.js.map +0 -1
  909. package/dist/nano-components/p-60c9b580.system.js.map +0 -1
  910. package/dist/nano-components/p-61565b5a.entry.js +0 -5
  911. package/dist/nano-components/p-621750cc.js +0 -5
  912. package/dist/nano-components/p-621750cc.js.map +0 -1
  913. package/dist/nano-components/p-6621e4f1.system.entry.js +0 -5
  914. package/dist/nano-components/p-6a1c69d3.entry.js +0 -5
  915. package/dist/nano-components/p-6ab8d211.system.entry.js +0 -5
  916. package/dist/nano-components/p-6ab8d211.system.entry.js.map +0 -1
  917. package/dist/nano-components/p-6e9b3d60.system.entry.js +0 -5
  918. package/dist/nano-components/p-6e9b3d60.system.entry.js.map +0 -1
  919. package/dist/nano-components/p-6f3d20fe.entry.js +0 -5
  920. package/dist/nano-components/p-6feac35e.entry.js +0 -5
  921. package/dist/nano-components/p-6feac35e.entry.js.map +0 -1
  922. package/dist/nano-components/p-723c212f.system.entry.js +0 -5
  923. package/dist/nano-components/p-723c212f.system.entry.js.map +0 -1
  924. package/dist/nano-components/p-76b13c27.system.entry.js +0 -5
  925. package/dist/nano-components/p-78569d39.entry.js +0 -5
  926. package/dist/nano-components/p-78cf9d39.entry.js +0 -5
  927. package/dist/nano-components/p-7e60c331.entry.js +0 -5
  928. package/dist/nano-components/p-8134c14e.system.js.map +0 -1
  929. package/dist/nano-components/p-81b4ed2a.system.entry.js +0 -5
  930. package/dist/nano-components/p-81b4ed2a.system.entry.js.map +0 -1
  931. package/dist/nano-components/p-854df906.system.entry.js +0 -5
  932. package/dist/nano-components/p-88bcf55b.entry.js +0 -5
  933. package/dist/nano-components/p-8b7f8ef4.entry.js +0 -5
  934. package/dist/nano-components/p-8c3993ff.entry.js +0 -5
  935. package/dist/nano-components/p-8c3993ff.entry.js.map +0 -1
  936. package/dist/nano-components/p-91778977.system.entry.js +0 -5
  937. package/dist/nano-components/p-92b3f99b.system.entry.js +0 -5
  938. package/dist/nano-components/p-9bd73d1d.js +0 -5
  939. package/dist/nano-components/p-9bd73d1d.js.map +0 -1
  940. package/dist/nano-components/p-9bf4a6e0.system.entry.js +0 -5
  941. package/dist/nano-components/p-9df226fd.system.entry.js +0 -5
  942. package/dist/nano-components/p-9df226fd.system.entry.js.map +0 -1
  943. package/dist/nano-components/p-a0b55c38.system.entry.js +0 -5
  944. package/dist/nano-components/p-a0b55c38.system.entry.js.map +0 -1
  945. package/dist/nano-components/p-a21d90aa.entry.js +0 -5
  946. package/dist/nano-components/p-a9dd7cf9.entry.js +0 -5
  947. package/dist/nano-components/p-ad069ba4.entry.js +0 -5
  948. package/dist/nano-components/p-ad069ba4.entry.js.map +0 -1
  949. package/dist/nano-components/p-b246a7bb.entry.js +0 -5
  950. package/dist/nano-components/p-b246a7bb.entry.js.map +0 -1
  951. package/dist/nano-components/p-b45d4be9.entry.js +0 -5
  952. package/dist/nano-components/p-b45d4be9.entry.js.map +0 -1
  953. package/dist/nano-components/p-b79dc23a.system.entry.js +0 -5
  954. package/dist/nano-components/p-b86fc6b7.system.js +0 -5
  955. package/dist/nano-components/p-b86fc6b7.system.js.map +0 -1
  956. package/dist/nano-components/p-badf69ee.system.entry.js +0 -5
  957. package/dist/nano-components/p-bde0deae.system.entry.js +0 -5
  958. package/dist/nano-components/p-bde0deae.system.entry.js.map +0 -1
  959. package/dist/nano-components/p-be3df2e8.system.entry.js +0 -5
  960. package/dist/nano-components/p-be3df2e8.system.entry.js.map +0 -1
  961. package/dist/nano-components/p-c39c1e8d.entry.js +0 -5
  962. package/dist/nano-components/p-c39c1e8d.entry.js.map +0 -1
  963. package/dist/nano-components/p-c7b7f7ab.entry.js +0 -5
  964. package/dist/nano-components/p-c82ccbc8.entry.js +0 -5
  965. package/dist/nano-components/p-c82ccbc8.entry.js.map +0 -1
  966. package/dist/nano-components/p-cc668975.system.entry.js +0 -5
  967. package/dist/nano-components/p-cfd4c9de.system.entry.js +0 -5
  968. package/dist/nano-components/p-cfd4c9de.system.entry.js.map +0 -1
  969. package/dist/nano-components/p-d0e9b177.entry.js +0 -5
  970. package/dist/nano-components/p-d31761c8.system.js.map +0 -1
  971. package/dist/nano-components/p-d47d297b.system.entry.js +0 -5
  972. package/dist/nano-components/p-d47d297b.system.entry.js.map +0 -1
  973. package/dist/nano-components/p-e48a53f5.system.entry.js +0 -5
  974. package/dist/nano-components/p-e48a53f5.system.entry.js.map +0 -1
  975. package/dist/nano-components/p-e5f01860.entry.js +0 -5
  976. package/dist/nano-components/p-e5f01860.entry.js.map +0 -1
  977. package/dist/nano-components/p-f2b2cd38.system.entry.js +0 -5
  978. package/dist/nano-components/p-f2b2cd38.system.entry.js.map +0 -1
  979. package/dist/nano-components/p-fcb5ffaf.system.entry.js +0 -5
  980. package/dist/nano-components/p-fcb5ffaf.system.entry.js.map +0 -1
  981. package/dist/types/components/select/select-option.d.ts +0 -23
@@ -7,6 +7,9 @@
7
7
  *::after {
8
8
  box-sizing: border-box;
9
9
  }
10
+ [hidden] {
11
+ display: none !important;
12
+ }
10
13
  :host {
11
14
  /**
12
15
  * @prop --width: width of the dropdown. Defaults to 'auto'
@@ -14,6 +17,10 @@
14
17
  * @prop --border-radius: Defaults to var(--nano-layer-bg, #fff);
15
18
  * @prop --background: Defaults to var(--nano-layer-bg, #fff);
16
19
  * @prop --padding: padding of the drop down. Default to '10px 0';
20
+ * @prop --overflow: `nano-menu` with nested `nav-item` requires hidden overflow. This can be overidden;
21
+ * @prop --dropdown-z-index: Defaults to var(--nano-layer-index-dropdown, 300);
22
+ * @prop --min-width: Defaults to 0;
23
+ * @prop --box-shadow: var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));
17
24
  */
18
25
  --width: auto;
19
26
  --border: var(--nano-layer-border-style, 1px solid var(--nano-layer-border-color, rgba(0, 0, 0, 0.1)));
@@ -22,6 +29,11 @@
22
29
  --padding: 10px 0;
23
30
  --overflow: hidden;
24
31
  --dropdown-z-index: var(--nano-layer-index-dropdown, 300);
32
+ --min-width: 0;
33
+ --box-shadow: var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));
34
+ display: -webkit-box;
35
+ display: -ms-flexbox;
36
+ display: flex;
25
37
  }
26
38
 
27
39
  .dropdown {
@@ -33,6 +45,7 @@
33
45
  .dropdown__positioner {
34
46
  position: absolute;
35
47
  z-index: var(--dropdown-z-index);
48
+ min-width: var(--min-width);
36
49
  }
37
50
  @media (max-width: 35.9375em) {
38
51
  .dropdown__positioner {
@@ -42,12 +55,13 @@
42
55
  .dropdown__panel {
43
56
  padding: var(--padding);
44
57
  background: var(--background);
58
+ min-width: var(--min-width);
45
59
  width: var(--width);
46
60
  border: var(--border);
47
61
  border-radius: var(--border-radius);
48
62
  color: currentColor;
49
- -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
50
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
63
+ -webkit-box-shadow: var(--box-shadow);
64
+ box-shadow: var(--box-shadow);
51
65
  opacity: 0;
52
66
  -webkit-transition: 0.2s ease opacity, 0.2s ease transform, 0.2s ease min-height;
53
67
  transition: 0.2s ease opacity, 0.2s ease transform, 0.2s ease min-height;
@@ -56,6 +70,9 @@
56
70
  -webkit-box-sizing: content-box !important;
57
71
  box-sizing: content-box !important;
58
72
  }
73
+ .dropdown__panel.loading {
74
+ overflow-y: hidden;
75
+ }
59
76
  .dropdown__panel.top {
60
77
  -webkit-transform: translateY(-20px) translateZ(0);
61
78
  transform: translateY(-20px) translateZ(0);
@@ -3,11 +3,11 @@
3
3
  */
4
4
  import { Component, Element, Event, Method, Prop, Watch, h, Listen, } from '@stencil/core';
5
5
  import Popover from '../../utils/popover';
6
- import { transitionDone } from '../../utils';
7
- import { getNearestTabbableElement } from '../../utils/tabbable';
6
+ import { getNearestTabbableElement, getActiveElement } from '../../utils';
7
+ let dropDownIds = 0;
8
8
  /**
9
9
  * Dropdowns show additional content in a panel.
10
- * Designed to work well with nano-menu components to provide a list of options (works well with nano-nav-items).
10
+ * Designed to work well with nano-menu components to provide a list of options (`nano-nav-items` / `nano-option`).
11
11
  * @slot trigger - The dropdown's trigger.
12
12
  * @slot - The dropdown's content.
13
13
  */
@@ -16,7 +16,7 @@ export class Dropdown {
16
16
  this.dropdownId = `dropdown-${dropDownIds++}`;
17
17
  this.labelId = this.dropdownId + '-title';
18
18
  this.ignoreOpenWatcher = false;
19
- this.menuFocused = false;
19
+ this.didLoad = false;
20
20
  /** Determines if the dropdown should open automatically when the trigger is clicked */
21
21
  this.autoOpen = true;
22
22
  /** Indicates whether or not the dropdown is open. You can use this in lieu of the show/hide methods. */
@@ -55,21 +55,30 @@ export class Dropdown {
55
55
  };
56
56
  this.handleTriggerKeyDown = (event) => {
57
57
  // Open the panel when pressing down or up while focused on the trigger
58
- if (!this.open && ['ArrowDown', 'ArrowUp', ' '].includes(event.key)) {
58
+ if (['ArrowDown', 'ArrowUp', ' '].includes(event.key)) {
59
59
  this.show();
60
60
  event.preventDefault();
61
61
  event.stopPropagation();
62
+ if (this.menu)
63
+ this.menu.setFocus();
62
64
  }
63
65
  };
64
66
  this.handleTriggerSlotChange = () => {
65
67
  this.updateAccessibleTrigger();
66
68
  };
67
69
  }
70
+ get menu() {
71
+ return this.host.querySelector('nano-menu');
72
+ }
68
73
  handleOpenChange() {
69
- if (!this.ignoreOpenWatcher) {
70
- this.open ? this.show() : this.hide();
71
- this.updateAccessibleTrigger();
74
+ if (this.ignoreOpenWatcher)
75
+ return;
76
+ this.open ? this.show() : this.hide();
77
+ if (this.accessibleTrigger) {
78
+ this.accessibleTrigger.setAttribute('aria-expanded', this.open.toString());
79
+ return;
72
80
  }
81
+ this.updateAccessibleTrigger();
73
82
  }
74
83
  handleTetherToChange() {
75
84
  this.createPopover();
@@ -84,20 +93,14 @@ export class Dropdown {
84
93
  });
85
94
  }
86
95
  // Listeners
87
- menuFocus(ev) {
88
- let target = ev.target;
89
- if (!target ||
90
- !target.tagName ||
91
- target.tagName.toLowerCase() !== 'nano-menu')
92
- return;
93
- this.menuFocused = true;
94
- }
95
96
  secondaryOpen(ev) {
96
97
  if (!ev.detail.secondaryMenu)
97
98
  return;
98
99
  ev.stopPropagation();
99
100
  this.panel.classList.add('loading');
100
- transitionDone(this.panel).then(() => this.panel.classList.remove('loading'));
101
+ this.panel.addEventListener('transitionend', () => {
102
+ this.panel.classList.remove('loading');
103
+ }, { once: true });
101
104
  this.panel.style.minHeight =
102
105
  ev.detail.secondaryMenu.scrollHeight + 'px';
103
106
  }
@@ -147,27 +150,45 @@ export class Dropdown {
147
150
  this.ignoreOpenWatcher = false;
148
151
  document.removeEventListener('mousedown', this.handleDocumentMouseDown);
149
152
  document.removeEventListener('keydown', this.handleDocumentKeyDown);
150
- this.menuFocused = false;
153
+ if (this.accessibleTrigger && this.focusEleInDropDwn()) {
154
+ this.accessibleTrigger.focus();
155
+ }
151
156
  }
152
157
  // Private methods
153
- getMenu() {
154
- return this.host.querySelector('nano-menu');
158
+ /** Decides if the current active element or element
159
+ * connected to the current event is connected to the Dropdown
160
+ */
161
+ focusEleInDropDwn(e) {
162
+ var _a;
163
+ const activeElement = getActiveElement();
164
+ if (e && ((_a = e.composedPath()) === null || _a === void 0 ? void 0 : _a.length)) {
165
+ const ddInPath = e.composedPath().includes(this.containingElement);
166
+ return !e.composedPath().includes(this.accessibleTrigger) && ddInPath;
167
+ }
168
+ return (activeElement &&
169
+ activeElement.closest(this.containingElement.tagName.toLowerCase()) ===
170
+ this.containingElement &&
171
+ activeElement !== this.accessibleTrigger);
155
172
  }
156
173
  // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and
157
174
  // `aria-expanded`. These must be applied to the "accessible trigger" (the tabbable portion of the trigger element
158
175
  // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,
159
176
  updateAccessibleTrigger() {
177
+ if (!this.didLoad)
178
+ return;
160
179
  let accessibleTrigger;
180
+ this.accessibleTrigger = null;
161
181
  if (!this.tetherTo) {
162
182
  const assignedElements = Array.from(this.host.querySelectorAll('[slot="trigger"]'));
163
183
  accessibleTrigger = assignedElements.map(getNearestTabbableElement)[0];
164
184
  }
165
185
  else {
166
- accessibleTrigger = this.tetherTo;
186
+ accessibleTrigger = getNearestTabbableElement(this.tetherTo);
167
187
  }
168
188
  if (accessibleTrigger) {
169
189
  accessibleTrigger.setAttribute('aria-haspopup', 'true');
170
190
  accessibleTrigger.setAttribute('aria-expanded', this.open ? 'true' : 'false');
191
+ this.accessibleTrigger = accessibleTrigger;
171
192
  }
172
193
  }
173
194
  // Handlers
@@ -187,26 +208,25 @@ export class Dropdown {
187
208
  }
188
209
  });
189
210
  }
190
- const menu = this.getMenu();
191
211
  // If a menu is present, focus on it when certain keys are pressed
192
- if (menu && ['ArrowDown', 'ArrowUp'].includes(event.key)) {
193
- if (!this.open || this.menuFocused)
212
+ if (this.menu && ['ArrowDown', 'ArrowUp'].includes(event.key)) {
213
+ // must have menu item, must have pressed down, must be open and must not have focus within dd
214
+ if (!this.open || this.focusEleInDropDwn(event))
194
215
  return;
195
216
  event.preventDefault();
196
- menu.setFocus();
217
+ this.menu.setFocus();
197
218
  return;
198
219
  }
199
220
  // All other keys focus the menu and pass the event through to menu (necessary for type-to-search to work)
200
- if (menu && event.target !== menu) {
201
- menu.dispatchEvent(new KeyboardEvent(event.type, event));
221
+ const ePath = event.composedPath();
222
+ if (this.menu && ePath.length && !ePath.find((el) => el !== this.menu)) {
223
+ this.menu.dispatchEvent(new KeyboardEvent(event.type, event));
202
224
  return;
203
225
  }
204
226
  }
205
227
  handleDocumentMouseDown(event) {
206
- const target = event.target;
207
228
  // Close when clicking outside of the close element
208
- if (target.closest(this.containingElement.tagName.toLowerCase()) !==
209
- this.containingElement) {
229
+ if (!this.focusEleInDropDwn(event)) {
210
230
  this.hide();
211
231
  return;
212
232
  }
@@ -230,6 +250,9 @@ export class Dropdown {
230
250
  if (!this.open) {
231
251
  this.panel.scrollTop = 0;
232
252
  }
253
+ else if (this.menu) {
254
+ this.menu.showActiveElement();
255
+ }
233
256
  },
234
257
  });
235
258
  // Show on init if open
@@ -241,12 +264,13 @@ export class Dropdown {
241
264
  connectedCallback() {
242
265
  this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
243
266
  this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
244
- this.handlePanelSelect = this.handlePanelSelect.bind(this);
245
267
  if (!this.containingElement)
246
268
  this.containingElement = this.host;
247
269
  }
248
270
  componentDidLoad() {
271
+ this.didLoad = true;
249
272
  this.createPopover();
273
+ setTimeout(() => this.updateAccessibleTrigger(), 100);
250
274
  }
251
275
  disconnectedCallback() {
252
276
  this.hide();
@@ -257,7 +281,7 @@ export class Dropdown {
257
281
  return (h("div", { part: "base", id: this.dropdownId, class: {
258
282
  dropdown: true,
259
283
  'dropdown--open': this.open,
260
- }, "aria-expanded": this.open ? 'true' : 'false', "aria-haspopup": "true" },
284
+ } },
261
285
  h("span", { part: "trigger", class: "dropdown__trigger", ref: (el) => (this.trigger = el), onKeyDown: this.handleTriggerKeyDown, onClick: this.togglePanel },
262
286
  h("slot", { name: "trigger", onSlotchange: this.handleTriggerSlotChange })),
263
287
  h("div", { ref: (el) => (this.positioner = el), class: "dropdown__positioner" },
@@ -593,12 +617,6 @@ export class Dropdown {
593
617
  "methodName": "handlePopoverOptionsChange"
594
618
  }]; }
595
619
  static get listeners() { return [{
596
- "name": "nanoFocus",
597
- "method": "menuFocus",
598
- "target": undefined,
599
- "capture": false,
600
- "passive": false
601
- }, {
602
620
  "name": "nanoOpen",
603
621
  "method": "secondaryOpen",
604
622
  "target": undefined,
@@ -618,5 +636,4 @@ export class Dropdown {
618
636
  "passive": false
619
637
  }]; }
620
638
  }
621
- let dropDownIds = 0;
622
639
  //# sourceMappingURL=dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Method,\n Prop,\n Watch,\n h,\n Listen,\n ComponentInterface,\n} from '@stencil/core';\nimport Popover from '../../utils/popover';\nimport { transitionDone } from '../../utils';\nimport { NavItemEventDetail } from '../../interface';\nimport { getNearestTabbableElement } from '../../utils/tabbable';\n\n/**\n * Dropdowns show additional content in a panel.\n * Designed to work well with nano-menu components to provide a list of options (works well with nano-nav-items).\n * @slot trigger - The dropdown's trigger.\n * @slot - The dropdown's content.\n */\n@Component({\n tag: 'nano-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n private dropdownId = `dropdown-${dropDownIds++}`;\n private labelId = this.dropdownId + '-title';\n private ignoreOpenWatcher = false;\n private panel: HTMLElement;\n private popover: Popover;\n private trigger: HTMLElement;\n private positioner: HTMLElement;\n private menuFocused: boolean = false;\n\n @Element() host: HTMLNanoDropdownElement;\n\n /** Determines if the dropdown should open automatically when the trigger is clicked */\n @Prop() autoOpen = true;\n\n /** Indicates whether or not the dropdown is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n @Watch('open')\n handleOpenChange() {\n if (!this.ignoreOpenWatcher) {\n this.open ? this.show() : this.hide();\n this.updateAccessibleTrigger();\n }\n }\n\n /**\n * Determines whether the dropdown should hide when a menu item is selected.\n */\n @Prop() closeOnSelect = true;\n\n /**\n * The dropdown will close when the user interacts outside of this element (e.g. clicking).\n */\n @Prop({ mutable: true }) containingElement: HTMLElement;\n\n /**\n * If you don't want to use the trigger slot, you can use this to 'tether' the dropdown to another element.\n * And you will still need to control when the component is opened (using show() / hide() or the `open` prop)\n */\n @Prop() tetherTo: HTMLElement = null;\n\n @Watch('tetherTo')\n handleTetherToChange() {\n this.createPopover();\n this.updateAccessibleTrigger();\n }\n\n /**\n * The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\n * inside of the viewport.\n */\n @Prop() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'bottom-start';\n\n /**\n * The distance in pixels from which to offset the panel away from its trigger.\n */\n @Prop() distance = 2;\n\n /**\n * The distance in pixels from which to offset the panel along its trigger.\n */\n @Prop() skidding = 0;\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n @Watch('placement')\n @Watch('distance')\n @Watch('skidding')\n @Watch('hoist')\n handlePopoverOptionsChange() {\n this.popover.setOptions({\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n skidding: this.skidding,\n distance: this.distance,\n });\n }\n\n /**\n * Title used to describe the dropdown content for accessibility\n */\n @Prop() dialogTitle!: string;\n\n // Events\n\n /**\n * Emitted when the dropdown opens. Calling `event.preventDefault()` will prevent it from being opened.\n */\n @Event() nanoShow: EventEmitter;\n\n /**\n * Emitted after the dropdown opens and all transitions are complete.\n */\n @Event() nanoAfterShow: EventEmitter;\n\n /**\n * Emitted when the dropdown closes. Calling `event.preventDefault()` will prevent it from being closed.\n */\n @Event() nanoHide: EventEmitter;\n\n /**\n * Emitted after the dropdown closes and all transitions are complete.\n */\n @Event() nanoAfterHide: EventEmitter;\n\n // Listeners\n\n @Listen('nanoFocus')\n menuFocus(ev: CustomEvent) {\n let target = ev.target as HTMLElement;\n if (\n !target ||\n !target.tagName ||\n target.tagName.toLowerCase() !== 'nano-menu'\n )\n return;\n this.menuFocused = true;\n }\n\n @Listen('nanoOpen')\n secondaryOpen(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n\n this.panel.classList.add('loading');\n transitionDone(this.panel).then(() =>\n this.panel.classList.remove('loading')\n );\n this.panel.style.minHeight =\n (ev.detail as NavItemEventDetail).secondaryMenu.scrollHeight + 'px';\n }\n\n @Listen('nanoClose')\n secondaryClose(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n if (!(ev.target as HTMLElement).parentElement) return;\n this.panel.style.minHeight =\n (ev.target as HTMLElement).parentElement.scrollHeight + 'px';\n }\n\n @Listen('nanoSelect')\n handlePanelSelect(event: CustomEvent) {\n const target = event.target as HTMLElement;\n\n // Hide the dropdown when a menu item is selected\n if (this.closeOnSelect && target.tagName.toLowerCase() === 'nano-menu')\n this.hide();\n }\n\n // Methods\n\n /** Shows the dropdown panel */\n @Method()\n async show() {\n this.ignoreOpenWatcher = true;\n this.open = true;\n\n const nanoShow = this.nanoShow.emit();\n\n if (nanoShow.defaultPrevented) {\n this.open = false;\n this.ignoreOpenWatcher = false;\n return;\n }\n\n this.popover.show();\n this.ignoreOpenWatcher = false;\n\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n /** Hides the dropdown panel */\n @Method()\n async hide() {\n this.ignoreOpenWatcher = true;\n this.open = false;\n\n const nanoHide = this.nanoHide.emit();\n\n if (nanoHide.defaultPrevented) {\n this.open = true;\n this.ignoreOpenWatcher = false;\n return;\n }\n\n if (this.popover) this.popover.hide();\n this.ignoreOpenWatcher = false;\n\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n\n this.menuFocused = false;\n }\n\n // Private methods\n\n private getMenu() {\n return this.host.querySelector('nano-menu') as HTMLNanoMenuElement;\n }\n\n private togglePanel = () => {\n if (!this.autoOpen) return;\n this.open ? this.hide() : this.show();\n };\n\n // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and\n // `aria-expanded`. These must be applied to the \"accessible trigger\" (the tabbable portion of the trigger element\n // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,\n private updateAccessibleTrigger() {\n let accessibleTrigger: HTMLElement;\n if (!this.tetherTo) {\n const assignedElements = Array.from(\n this.host.querySelectorAll('[slot=\"trigger\"]')\n );\n accessibleTrigger = assignedElements.map(getNearestTabbableElement)[0];\n } else {\n accessibleTrigger = this.tetherTo;\n }\n\n if (accessibleTrigger) {\n accessibleTrigger.setAttribute('aria-haspopup', 'true');\n accessibleTrigger.setAttribute(\n 'aria-expanded',\n this.open ? 'true' : 'false'\n );\n }\n }\n\n // Handlers\n\n private handleDocumentKeyDown(event: KeyboardEvent) {\n // Close when escape is pressed\n if (event.key === 'Escape') {\n this.hide();\n return;\n }\n\n // Close when tabbing results in the focus leaving the close element\n if (event.key === 'Tab') {\n setTimeout(() => {\n if (\n document.activeElement &&\n document.activeElement.closest(\n this.containingElement.tagName.toLowerCase()\n ) !== this.containingElement\n ) {\n this.hide();\n return;\n }\n });\n }\n\n const menu = this.getMenu();\n\n // If a menu is present, focus on it when certain keys are pressed\n if (menu && ['ArrowDown', 'ArrowUp'].includes(event.key)) {\n if (!this.open || this.menuFocused) return;\n event.preventDefault();\n menu.setFocus();\n return;\n }\n\n // All other keys focus the menu and pass the event through to menu (necessary for type-to-search to work)\n if (menu && event.target !== menu) {\n menu.dispatchEvent(new KeyboardEvent(event.type, event));\n return;\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n const target = event.target as HTMLElement;\n\n // Close when clicking outside of the close element\n if (\n target.closest(this.containingElement.tagName.toLowerCase()) !==\n this.containingElement\n ) {\n this.hide();\n return;\n }\n }\n\n private handleTriggerKeyDown = (event: KeyboardEvent) => {\n // Open the panel when pressing down or up while focused on the trigger\n if (!this.open && ['ArrowDown', 'ArrowUp', ' '].includes(event.key)) {\n this.show();\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n private handleTriggerSlotChange = () => {\n this.updateAccessibleTrigger();\n };\n\n private createPopover() {\n if (this.popover) {\n if (this.open) this.hide();\n this.popover.destroy();\n this.popover = null;\n }\n\n this.popover = new Popover(this.tetherTo || this.trigger, this.positioner, {\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n distance: this.distance,\n skidding: this.skidding,\n transitionElement: this.panel,\n onAfterHide: () => this.nanoAfterHide.emit(),\n onAfterShow: () => this.nanoAfterShow.emit(),\n onTransitionEnd: () => {\n if (!this.open) {\n this.panel.scrollTop = 0;\n }\n },\n });\n // Show on init if open\n if (this.open) {\n this.show();\n }\n }\n\n // Stencil hooks\n\n connectedCallback() {\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handlePanelSelect = this.handlePanelSelect.bind(this);\n\n if (!this.containingElement) this.containingElement = this.host;\n }\n\n componentDidLoad() {\n this.createPopover();\n }\n\n disconnectedCallback() {\n this.hide();\n if (this.popover) this.popover.destroy();\n }\n\n render() {\n return (\n <div\n part=\"base\"\n id={this.dropdownId}\n class={{\n dropdown: true,\n 'dropdown--open': this.open,\n }}\n aria-expanded={this.open ? 'true' : 'false'}\n aria-haspopup=\"true\"\n >\n <span\n part=\"trigger\"\n class=\"dropdown__trigger\"\n ref={(el) => (this.trigger = el)}\n onKeyDown={this.handleTriggerKeyDown}\n onClick={this.togglePanel}\n >\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange} />\n </span>\n\n <div ref={(el) => (this.positioner = el)} class=\"dropdown__positioner\">\n <div\n ref={(el) => (this.panel = el)}\n part=\"panel\"\n class={`dropdown__panel ${this.placement.split('-').join(' ')}`}\n aria-hidden={!this.open}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.dialogTitle ? this.labelId : undefined}\n >\n {this.dialogTitle && (\n <h2\n id={this.labelId}\n class=\"dropdown__accessible-title\"\n aria-live=\"polite\"\n >\n {this.dialogTitle}\n </h2>\n )}\n <slot />\n </div>\n </div>\n </div>\n );\n }\n}\n\nlet dropDownIds = 0;\n"]}
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/components/dropdown/dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Method,\n Prop,\n Watch,\n h,\n Listen,\n ComponentInterface,\n} from '@stencil/core';\nimport Popover from '../../utils/popover';\nimport { NavItemEventDetail } from '../../interface';\nimport { getNearestTabbableElement, getActiveElement } from '../../utils';\n\nlet dropDownIds = 0;\n\n/**\n * Dropdowns show additional content in a panel.\n * Designed to work well with nano-menu components to provide a list of options (`nano-nav-items` / `nano-option`).\n * @slot trigger - The dropdown's trigger.\n * @slot - The dropdown's content.\n */\n@Component({\n tag: 'nano-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n private dropdownId = `dropdown-${dropDownIds++}`;\n private labelId = this.dropdownId + '-title';\n private ignoreOpenWatcher = false;\n private panel: HTMLElement;\n private popover: Popover;\n private trigger: HTMLElement;\n private positioner: HTMLElement;\n private accessibleTrigger: HTMLElement;\n private didLoad = false;\n private get menu() {\n return this.host.querySelector('nano-menu') as HTMLNanoMenuElement;\n }\n\n @Element() host: HTMLNanoDropdownElement;\n\n /** Determines if the dropdown should open automatically when the trigger is clicked */\n @Prop() autoOpen = true;\n\n /** Indicates whether or not the dropdown is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n @Watch('open')\n handleOpenChange() {\n if (this.ignoreOpenWatcher) return;\n\n this.open ? this.show() : this.hide();\n\n if (this.accessibleTrigger) {\n this.accessibleTrigger.setAttribute(\n 'aria-expanded',\n this.open.toString()\n );\n return;\n }\n\n this.updateAccessibleTrigger();\n }\n\n /**\n * Determines whether the dropdown should hide when a menu item is selected.\n */\n @Prop() closeOnSelect = true;\n\n /**\n * The dropdown will close when the user interacts outside of this element (e.g. clicking).\n */\n @Prop({ mutable: true }) containingElement: HTMLElement;\n\n /**\n * If you don't want to use the trigger slot, you can use this to 'tether' the dropdown to another element.\n * And you will still need to control when the component is opened (using show() / hide() or the `open` prop)\n */\n @Prop() tetherTo: HTMLElement = null;\n\n @Watch('tetherTo')\n handleTetherToChange() {\n this.createPopover();\n this.updateAccessibleTrigger();\n }\n\n /**\n * The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\n * inside of the viewport.\n */\n @Prop() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'bottom-start';\n\n /**\n * The distance in pixels from which to offset the panel away from its trigger.\n */\n @Prop() distance = 2;\n\n /**\n * The distance in pixels from which to offset the panel along its trigger.\n */\n @Prop() skidding = 0;\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n @Watch('placement')\n @Watch('distance')\n @Watch('skidding')\n @Watch('hoist')\n handlePopoverOptionsChange() {\n this.popover.setOptions({\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n skidding: this.skidding,\n distance: this.distance,\n });\n }\n\n /**\n * Title used to describe the dropdown content for accessibility\n */\n @Prop() dialogTitle!: string;\n\n // Events\n\n /**\n * Emitted when the dropdown opens. Calling `event.preventDefault()` will prevent it from being opened.\n */\n @Event() nanoShow: EventEmitter;\n\n /**\n * Emitted after the dropdown opens and all transitions are complete.\n */\n @Event() nanoAfterShow: EventEmitter;\n\n /**\n * Emitted when the dropdown closes. Calling `event.preventDefault()` will prevent it from being closed.\n */\n @Event() nanoHide: EventEmitter;\n\n /**\n * Emitted after the dropdown closes and all transitions are complete.\n */\n @Event() nanoAfterHide: EventEmitter;\n\n // Listeners\n\n @Listen('nanoOpen')\n secondaryOpen(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n\n this.panel.classList.add('loading');\n this.panel.addEventListener(\n 'transitionend',\n () => {\n this.panel.classList.remove('loading');\n },\n { once: true }\n );\n\n this.panel.style.minHeight =\n (ev.detail as NavItemEventDetail).secondaryMenu.scrollHeight + 'px';\n }\n\n @Listen('nanoClose')\n secondaryClose(ev: CustomEvent) {\n if (!(ev.detail as NavItemEventDetail).secondaryMenu) return;\n ev.stopPropagation();\n if (!(ev.target as HTMLElement).parentElement) return;\n this.panel.style.minHeight =\n (ev.target as HTMLElement).parentElement.scrollHeight + 'px';\n }\n\n @Listen('nanoSelect')\n handlePanelSelect(event: CustomEvent) {\n const target = event.target as HTMLElement;\n\n // Hide the dropdown when a menu item is selected\n if (this.closeOnSelect && target.tagName.toLowerCase() === 'nano-menu')\n this.hide();\n }\n\n // Methods\n\n /** Shows the dropdown panel */\n @Method()\n async show() {\n this.ignoreOpenWatcher = true;\n this.open = true;\n\n const nanoShow = this.nanoShow.emit();\n\n if (nanoShow.defaultPrevented) {\n this.open = false;\n this.ignoreOpenWatcher = false;\n return;\n }\n\n this.popover.show();\n this.ignoreOpenWatcher = false;\n\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n /** Hides the dropdown panel */\n @Method()\n async hide() {\n this.ignoreOpenWatcher = true;\n this.open = false;\n\n const nanoHide = this.nanoHide.emit();\n\n if (nanoHide.defaultPrevented) {\n this.open = true;\n this.ignoreOpenWatcher = false;\n return;\n }\n\n if (this.popover) this.popover.hide();\n this.ignoreOpenWatcher = false;\n\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n\n if (this.accessibleTrigger && this.focusEleInDropDwn()) {\n this.accessibleTrigger.focus();\n }\n }\n\n // Private methods\n\n /** Decides if the current active element or element\n * connected to the current event is connected to the Dropdown\n */\n private focusEleInDropDwn(e?: Event) {\n const activeElement = getActiveElement();\n\n if (e && e.composedPath()?.length) {\n const ddInPath = e.composedPath().includes(this.containingElement);\n return !e.composedPath().includes(this.accessibleTrigger) && ddInPath;\n }\n\n return (\n activeElement &&\n activeElement.closest(this.containingElement.tagName.toLowerCase()) ===\n this.containingElement &&\n activeElement !== this.accessibleTrigger\n );\n }\n\n private togglePanel = () => {\n if (!this.autoOpen) return;\n this.open ? this.hide() : this.show();\n };\n\n // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and\n // `aria-expanded`. These must be applied to the \"accessible trigger\" (the tabbable portion of the trigger element\n // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,\n private updateAccessibleTrigger() {\n if (!this.didLoad) return;\n\n let accessibleTrigger: HTMLElement;\n this.accessibleTrigger = null;\n\n if (!this.tetherTo) {\n const assignedElements = Array.from(\n this.host.querySelectorAll('[slot=\"trigger\"]')\n );\n accessibleTrigger = assignedElements.map(getNearestTabbableElement)[0];\n } else {\n accessibleTrigger = getNearestTabbableElement(this.tetherTo);\n }\n\n if (accessibleTrigger) {\n accessibleTrigger.setAttribute('aria-haspopup', 'true');\n accessibleTrigger.setAttribute(\n 'aria-expanded',\n this.open ? 'true' : 'false'\n );\n this.accessibleTrigger = accessibleTrigger;\n }\n }\n\n // Handlers\n\n private handleDocumentKeyDown(event: KeyboardEvent) {\n // Close when escape is pressed\n if (event.key === 'Escape') {\n this.hide();\n return;\n }\n\n // Close when tabbing results in the focus leaving the close element\n if (event.key === 'Tab') {\n setTimeout(() => {\n if (\n document.activeElement &&\n document.activeElement.closest(\n this.containingElement.tagName.toLowerCase()\n ) !== this.containingElement\n ) {\n this.hide();\n return;\n }\n });\n }\n\n // If a menu is present, focus on it when certain keys are pressed\n if (this.menu && ['ArrowDown', 'ArrowUp'].includes(event.key)) {\n // must have menu item, must have pressed down, must be open and must not have focus within dd\n if (!this.open || this.focusEleInDropDwn(event)) return;\n event.preventDefault();\n this.menu.setFocus();\n return;\n }\n\n // All other keys focus the menu and pass the event through to menu (necessary for type-to-search to work)\n const ePath = event.composedPath();\n if (this.menu && ePath.length && !ePath.find((el) => el !== this.menu)) {\n this.menu.dispatchEvent(new KeyboardEvent(event.type, event));\n return;\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n // Close when clicking outside of the close element\n\n if (!this.focusEleInDropDwn(event)) {\n this.hide();\n return;\n }\n }\n\n private handleTriggerKeyDown = (event: KeyboardEvent) => {\n // Open the panel when pressing down or up while focused on the trigger\n if (['ArrowDown', 'ArrowUp', ' '].includes(event.key)) {\n this.show();\n event.preventDefault();\n event.stopPropagation();\n\n if (this.menu) this.menu.setFocus();\n }\n };\n\n private handleTriggerSlotChange = () => {\n this.updateAccessibleTrigger();\n };\n\n private createPopover() {\n if (this.popover) {\n if (this.open) this.hide();\n this.popover.destroy();\n this.popover = null;\n }\n\n this.popover = new Popover(this.tetherTo || this.trigger, this.positioner, {\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n distance: this.distance,\n skidding: this.skidding,\n transitionElement: this.panel,\n onAfterHide: () => this.nanoAfterHide.emit(),\n onAfterShow: () => this.nanoAfterShow.emit(),\n onTransitionEnd: () => {\n if (!this.open) {\n this.panel.scrollTop = 0;\n } else if (this.menu) {\n this.menu.showActiveElement();\n }\n },\n });\n // Show on init if open\n if (this.open) {\n this.show();\n }\n }\n\n // Stencil hooks\n\n connectedCallback() {\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n\n if (!this.containingElement) this.containingElement = this.host;\n }\n\n componentDidLoad() {\n this.didLoad = true;\n this.createPopover();\n setTimeout(() => this.updateAccessibleTrigger(), 100);\n }\n\n disconnectedCallback() {\n this.hide();\n if (this.popover) this.popover.destroy();\n }\n\n render() {\n return (\n <div\n part=\"base\"\n id={this.dropdownId}\n class={{\n dropdown: true,\n 'dropdown--open': this.open,\n }}\n >\n <span\n part=\"trigger\"\n class=\"dropdown__trigger\"\n ref={(el) => (this.trigger = el)}\n onKeyDown={this.handleTriggerKeyDown}\n onClick={this.togglePanel}\n >\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange} />\n </span>\n\n <div ref={(el) => (this.positioner = el)} class=\"dropdown__positioner\">\n <div\n ref={(el) => (this.panel = el)}\n part=\"panel\"\n class={`dropdown__panel ${this.placement.split('-').join(' ')}`}\n aria-hidden={!this.open}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.dialogTitle ? this.labelId : undefined}\n >\n {this.dialogTitle && (\n <h2\n id={this.labelId}\n class=\"dropdown__accessible-title\"\n aria-live=\"polite\"\n >\n {this.dialogTitle}\n </h2>\n )}\n <slot />\n </div>\n </div>\n </div>\n );\n }\n}\n"]}
@@ -7,6 +7,9 @@
7
7
  *::after {
8
8
  box-sizing: border-box;
9
9
  }
10
+ [hidden] {
11
+ display: none !important;
12
+ }
10
13
  :host {
11
14
  /**
12
15
  * @prop --invalid-msg-color: Default value var(--nano-color-danger, #ef4135);
@@ -433,8 +436,8 @@
433
436
  }
434
437
  }
435
438
  .file-upload__button:hover:not(.file-upload__button--disabled) {
436
- -webkit-box-shadow: var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.3));
437
- box-shadow: var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.3));
439
+ -webkit-box-shadow: var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));
440
+ box-shadow: var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));
438
441
  }
439
442
  .file-upload__button:active:not(.button--disabled):not(:disabled) {
440
443
  -webkit-box-shadow: none;
@@ -655,7 +655,7 @@ export class FileUpload {
655
655
  "references": {
656
656
  "FileWithUrl": {
657
657
  "location": "import",
658
- "path": "/builds/YGFYbT4i/0/Digital/nano-components/packages/components/src/interface.d.ts"
658
+ "path": "/builds/vyiT33Zh/0/Digital/nano-components/packages/components/src/interface.d.ts"
659
659
  }
660
660
  }
661
661
  },
@@ -713,7 +713,7 @@ export class FileUpload {
713
713
  "references": {
714
714
  "FileInputChangeEventDetail": {
715
715
  "location": "import",
716
- "path": "/builds/YGFYbT4i/0/Digital/nano-components/packages/components/src/interface.d.ts"
716
+ "path": "/builds/vyiT33Zh/0/Digital/nano-components/packages/components/src/interface.d.ts"
717
717
  }
718
718
  }
719
719
  }
@@ -766,7 +766,7 @@ export class FileUpload {
766
766
  "references": {
767
767
  "ControlValidityEventDetail": {
768
768
  "location": "import",
769
- "path": "/builds/YGFYbT4i/0/Digital/nano-components/packages/components/src/interface.d.ts"
769
+ "path": "/builds/vyiT33Zh/0/Digital/nano-components/packages/components/src/interface.d.ts"
770
770
  }
771
771
  }
772
772
  }
@@ -788,7 +788,7 @@ export class FileUpload {
788
788
  },
789
789
  "ControlValidity": {
790
790
  "location": "import",
791
- "path": "/builds/YGFYbT4i/0/Digital/nano-components/packages/components/src/interface.d.ts"
791
+ "path": "/builds/vyiT33Zh/0/Digital/nano-components/packages/components/src/interface.d.ts"
792
792
  }
793
793
  },
794
794
  "return": "Promise<ControlValidity>"
@@ -0,0 +1,73 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ import { h } from '@stencil/core';
5
+ const renderLabel = ({ label, hasLabelSlot, controlId, labelId, floatLabel, placeholder, hideLabel, hasValue, rtl, showCharCount, maxlength, charCount, }) => {
6
+ if (!label && !hasLabelSlot)
7
+ return;
8
+ if (floatLabel) {
9
+ return (h("label", { class: "placeholder-as-label", htmlFor: controlId, id: labelId },
10
+ label && label,
11
+ !label && hasLabelSlot && h("slot", { name: "label" })));
12
+ }
13
+ else {
14
+ return (h("label", { class: { label: true, 'visually-hide': hideLabel }, htmlFor: controlId, id: labelId },
15
+ h("div", { class: "label-placeholder" },
16
+ placeholder && hasValue && rtl && (h("span", { class: "placeholder" },
17
+ placeholder,
18
+ " / ")),
19
+ h("span", { class: "labeltext" },
20
+ label && label,
21
+ !label && hasLabelSlot && h("slot", { name: "label" })),
22
+ placeholder && hasValue && !rtl && (h("span", { class: "placeholder" },
23
+ " / ",
24
+ placeholder))),
25
+ showCharCount && (h("span", { class: "charcount" }, maxlength
26
+ ? maxlength - charCount + ' left'
27
+ : charCount + ' characters'))));
28
+ }
29
+ };
30
+ export const FormControlWrap = (props, children) => {
31
+ const { rtl, floatLabel, label, moreId, type, hasHelperSlot, showInlineError, errorMessage, } = props;
32
+ const isLegacy = !document.head.attachShadow;
33
+ return [
34
+ !floatLabel ? renderLabel(Object.assign({}, props)) : '',
35
+ h("div", { class: {
36
+ 'has-label': label !== null && !floatLabel,
37
+ 'has-float-label': label !== null && floatLabel,
38
+ rtl,
39
+ legacy: isLegacy,
40
+ input: true,
41
+ textarea: type === 'textarea',
42
+ } },
43
+ floatLabel && renderLabel(Object.assign(Object.assign({}, props), { rtl })),
44
+ children),
45
+ showInlineError || hasHelperSlot ? (h("div", { class: "more", id: moreId },
46
+ !!showInlineError ? h("div", { class: "error" }, errorMessage) : '',
47
+ h("div", { class: "helper" },
48
+ h("slot", { name: "helper" })))) : (''),
49
+ ];
50
+ };
51
+ export const FormControl = (props, children) => {
52
+ const { clearControl, onClearText, readonly, disabled, control, ref, endSlot, endValueSlot, startSlot, } = props;
53
+ const clickThrough = () => {
54
+ control.setFocus();
55
+ };
56
+ return (h("div", { class: "native-input-wrap", ref: (el) => {
57
+ if (ref)
58
+ ref(el);
59
+ } },
60
+ h("span", { class: "start" },
61
+ h("slot", { name: "start" }),
62
+ startSlot),
63
+ children,
64
+ clearControl && !readonly && !disabled && (h("button", { type: "button", class: "icon input-clear-icon", tabindex: "-1", onTouchStart: onClearText, onMouseDown: onClearText },
65
+ h("nano-icon", { name: "light/times" }))),
66
+ h("span", { class: "value-end", onClick: clickThrough },
67
+ h("slot", { name: "value-end" }),
68
+ endValueSlot),
69
+ h("span", { class: "end" },
70
+ h("slot", { name: "end" }),
71
+ endSlot)));
72
+ };
73
+ //# sourceMappingURL=form-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../../src/components/form-control/form-control.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport { TextFieldTypes } from '../../interface';\n\ninterface FormControlWrapProps {\n rtl: boolean;\n floatLabel: boolean;\n labelId: string;\n label: string;\n moreId: string;\n type?: TextFieldTypes;\n showInlineError: boolean;\n hasHelperSlot: boolean;\n errorMessage: string;\n controlId: string;\n hasLabelSlot: boolean;\n hideLabel: boolean;\n placeholder: string;\n hasValue: boolean;\n showCharCount?: boolean;\n maxlength?: number;\n charCount?: number;\n}\n\ninterface FormControlProps {\n clearControl: boolean;\n onClearText?: () => void;\n readonly: boolean;\n disabled: boolean;\n control: HTMLNanoInputElement | HTMLNanoSelectElement;\n ref?: (elm?: HTMLElement) => void;\n endSlot?: VNode;\n endValueSlot?: VNode;\n startSlot?: VNode;\n}\n\ninterface LabelProps extends FormControlWrapProps {\n rtl: boolean;\n}\n\nconst renderLabel = ({\n label,\n hasLabelSlot,\n controlId,\n labelId,\n floatLabel,\n placeholder,\n hideLabel,\n hasValue,\n rtl,\n showCharCount,\n maxlength,\n charCount,\n}: LabelProps) => {\n if (!label && !hasLabelSlot) return;\n if (floatLabel) {\n return (\n <label class=\"placeholder-as-label\" htmlFor={controlId} id={labelId}>\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n </label>\n );\n } else {\n return (\n <label\n class={{ label: true, 'visually-hide': hideLabel }}\n htmlFor={controlId}\n id={labelId}\n >\n <div class=\"label-placeholder\">\n {placeholder && hasValue && rtl && (\n <span class=\"placeholder\">{placeholder} / </span>\n )}\n <span class=\"labeltext\">\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n </span>\n {placeholder && hasValue && !rtl && (\n <span class=\"placeholder\"> / {placeholder}</span>\n )}\n </div>\n {showCharCount && (\n <span class=\"charcount\">\n {maxlength\n ? maxlength - charCount + ' left'\n : charCount + ' characters'}\n </span>\n )}\n </label>\n );\n }\n};\n\nexport const FormControlWrap: FunctionalComponent<FormControlWrapProps> = (\n props: FormControlWrapProps,\n children\n) => {\n const {\n rtl,\n floatLabel,\n label,\n moreId,\n type,\n hasHelperSlot,\n showInlineError,\n errorMessage,\n } = props;\n const isLegacy = !document.head.attachShadow;\n\n return [\n !floatLabel ? renderLabel({ ...props }) : '',\n <div\n class={{\n 'has-label': label !== null && !floatLabel,\n 'has-float-label': label !== null && floatLabel,\n rtl,\n legacy: isLegacy,\n input: true,\n textarea: type === 'textarea',\n }}\n >\n {floatLabel && renderLabel({ ...props, rtl })}\n {children}\n </div>,\n showInlineError || hasHelperSlot ? (\n <div class=\"more\" id={moreId}>\n {!!showInlineError ? <div class=\"error\">{errorMessage}</div> : ''}\n <div class=\"helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n ) : (\n ''\n ),\n ];\n};\n\nexport const FormControl: FunctionalComponent<FormControlProps> = (\n props: FormControlProps,\n children\n) => {\n const {\n clearControl,\n onClearText,\n readonly,\n disabled,\n control,\n ref,\n endSlot,\n endValueSlot,\n startSlot,\n } = props;\n const clickThrough = () => {\n control.setFocus();\n };\n\n return (\n <div\n class=\"native-input-wrap\"\n ref={(el) => {\n if (ref) ref(el);\n }}\n >\n <span class=\"start\">\n <slot name=\"start\" />\n {startSlot}\n </span>\n {children}\n {clearControl && !readonly && !disabled && (\n <button\n type=\"button\"\n class=\"icon input-clear-icon\"\n tabindex=\"-1\"\n onTouchStart={onClearText}\n onMouseDown={onClearText}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n <span class=\"value-end\" onClick={clickThrough}>\n <slot name=\"value-end\" />\n {endValueSlot}\n </span>\n <span class=\"end\">\n <slot name=\"end\" />\n {endSlot}\n </span>\n </div>\n );\n};\n"]}