@nanoporetech-digital/components 2.7.0 → 2.10.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 (543) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/cjs/{algoliasearch.umd-dcf18a4a.js → algoliasearch.umd-7ee60729.js} +3 -3
  3. package/dist/cjs/{algoliasearch.umd-dcf18a4a.js.map → algoliasearch.umd-7ee60729.js.map} +1 -1
  4. package/dist/cjs/{component-store-722032a5.js → component-store-19844199.js} +37 -25
  5. package/dist/cjs/component-store-19844199.js.map +1 -0
  6. package/dist/cjs/{form-control-8f530f7d.js → form-control-d54a847f.js} +26 -19
  7. package/dist/cjs/form-control-d54a847f.js.map +1 -0
  8. package/dist/cjs/index-cb62df44.js +5 -0
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/nano-algolia-filter.cjs.entry.js +1 -1
  11. package/dist/cjs/nano-algolia-input.cjs.entry.js +2 -2
  12. package/dist/cjs/nano-algolia.cjs.entry.js +2 -2
  13. package/dist/cjs/nano-checkbox-group.cjs.entry.js +58 -20
  14. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nano-checkbox.cjs.entry.js +27 -15
  16. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nano-components.cjs.js +1 -1
  18. package/dist/cjs/nano-datalist_3.cjs.entry.js +4 -3
  19. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nano-date-input.cjs.entry.js +17 -4
  21. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nano-dialog.cjs.entry.js +13 -2
  23. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nano-dropdown.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-field-validator.cjs.entry.js +529 -0
  26. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -0
  27. package/dist/cjs/nano-file-upload.cjs.entry.js +59 -36
  28. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  29. package/dist/cjs/nano-global-nav.cjs.entry.js +46 -41
  30. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  32. package/dist/cjs/nano-input.cjs.entry.js +36 -20
  33. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nano-nav-item_2.cjs.entry.js +53 -23
  35. package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
  36. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +6 -4
  37. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nano-sticker.cjs.entry.js +2 -2
  39. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nano-tab-group.cjs.entry.js +1 -1
  41. package/dist/cjs/nano-tooltip.cjs.entry.js +1 -1
  42. package/dist/cjs/{popover-8c86d338.js → popover-5f152a19.js} +3 -8
  43. package/dist/cjs/{popover-8c86d338.js.map → popover-5f152a19.js.map} +1 -1
  44. package/dist/collection/collection-manifest.json +2 -1
  45. package/dist/collection/components/accordion/accordion.js +1 -1
  46. package/dist/collection/components/alert/alert.js +1 -1
  47. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  48. package/dist/collection/components/algolia/algolia-input.js +5 -5
  49. package/dist/collection/components/algolia/algolia-results.js +1 -1
  50. package/dist/collection/components/algolia/algolia.js +6 -6
  51. package/dist/collection/components/checkbox/checkbox-group.css +9 -6
  52. package/dist/collection/components/checkbox/checkbox-group.js +119 -25
  53. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  54. package/dist/collection/components/checkbox/checkbox.css +1 -1
  55. package/dist/collection/components/checkbox/checkbox.js +83 -22
  56. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  57. package/dist/collection/components/datalist/datalist.js +4 -2
  58. package/dist/collection/components/datalist/datalist.js.map +1 -1
  59. package/dist/collection/components/date-input/date-input.js +44 -12
  60. package/dist/collection/components/date-input/date-input.js.map +1 -1
  61. package/dist/collection/components/date-picker/date-picker.js +5 -5
  62. package/dist/collection/components/details/details.js +1 -1
  63. package/dist/collection/components/dialog/dialog.js +34 -1
  64. package/dist/collection/components/dialog/dialog.js.map +1 -1
  65. package/dist/collection/components/dropdown/dropdown.js +1 -1
  66. package/dist/collection/components/field-validator/field-validator.js +577 -0
  67. package/dist/collection/components/field-validator/field-validator.js.map +1 -0
  68. package/dist/collection/components/file-upload/file-upload.css +17 -5
  69. package/dist/collection/components/file-upload/file-upload.js +111 -44
  70. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  71. package/dist/collection/components/form-control/form-control.js +25 -18
  72. package/dist/collection/components/form-control/form-control.js.map +1 -1
  73. package/dist/collection/components/global-nav/global-nav.js +73 -45
  74. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  75. package/dist/collection/components/grid/grid-item.js +1 -1
  76. package/dist/collection/components/icon/icon.js +2 -2
  77. package/dist/collection/components/icon/icon.js.map +1 -1
  78. package/dist/collection/components/input/input.css +56 -5
  79. package/dist/collection/components/input/input.js +65 -29
  80. package/dist/collection/components/input/input.js.map +1 -1
  81. package/dist/collection/components/menu/menu.js +1 -2
  82. package/dist/collection/components/menu/menu.js.map +1 -1
  83. package/dist/collection/components/nav-item/nav-item.js +4 -4
  84. package/dist/collection/components/range/range.js +4 -4
  85. package/dist/collection/components/resize-observe/resize-observe.js +7 -6
  86. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  87. package/dist/collection/components/select/select.css +61 -7
  88. package/dist/collection/components/select/select.js +88 -32
  89. package/dist/collection/components/select/select.js.map +1 -1
  90. package/dist/collection/components/slides/slides.js +7 -7
  91. package/dist/collection/components/{sticky → sticker}/sticker.css +0 -0
  92. package/dist/collection/components/{sticky → sticker}/sticker.js +2 -2
  93. package/dist/collection/components/sticker/sticker.js.map +1 -0
  94. package/dist/collection/components/tabs/tab-group.js +2 -2
  95. package/dist/collection/utils/popover.js +2 -7
  96. package/dist/collection/utils/popover.js.map +1 -1
  97. package/dist/collection/utils/store/component-store.js +4 -13
  98. package/dist/collection/utils/store/component-store.js.map +1 -1
  99. package/dist/collection/utils/store/get-set.js +15 -1
  100. package/dist/collection/utils/store/get-set.js.map +1 -1
  101. package/dist/components/algoliasearch.umd.js +2 -2
  102. package/dist/components/algoliasearch.umd.js.map +1 -1
  103. package/dist/components/component-store.js +36 -24
  104. package/dist/components/component-store.js.map +1 -1
  105. package/dist/components/datalist.js +3 -1
  106. package/dist/components/datalist.js.map +1 -1
  107. package/dist/components/form-control.js +25 -18
  108. package/dist/components/form-control.js.map +1 -1
  109. package/dist/components/icon.js.map +1 -1
  110. package/dist/components/input.js +39 -21
  111. package/dist/components/input.js.map +1 -1
  112. package/dist/components/menu.js +1 -2
  113. package/dist/components/menu.js.map +1 -1
  114. package/dist/components/nano-checkbox-group.js +62 -21
  115. package/dist/components/nano-checkbox-group.js.map +1 -1
  116. package/dist/components/nano-checkbox.js +31 -17
  117. package/dist/components/nano-checkbox.js.map +1 -1
  118. package/dist/components/nano-date-input.js +18 -4
  119. package/dist/components/nano-date-input.js.map +1 -1
  120. package/dist/components/nano-dialog.js +13 -1
  121. package/dist/components/nano-dialog.js.map +1 -1
  122. package/dist/components/nano-field-validator.d.ts +11 -0
  123. package/dist/components/nano-field-validator.js +557 -0
  124. package/dist/components/nano-field-validator.js.map +1 -0
  125. package/dist/components/nano-file-upload.js +62 -37
  126. package/dist/components/nano-file-upload.js.map +1 -1
  127. package/dist/components/nano-global-nav.js +45 -39
  128. package/dist/components/nano-global-nav.js.map +1 -1
  129. package/dist/components/popover.js +2 -7
  130. package/dist/components/popover.js.map +1 -1
  131. package/dist/components/resize-observe.js +6 -4
  132. package/dist/components/resize-observe.js.map +1 -1
  133. package/dist/components/select.js +57 -24
  134. package/dist/components/select.js.map +1 -1
  135. package/dist/components/sticker.js +2 -2
  136. package/dist/components/sticker.js.map +1 -1
  137. package/dist/custom-elements/index.d.ts +6 -0
  138. package/dist/custom-elements/index.js +2606 -705
  139. package/dist/custom-elements/index.js.map +1 -1
  140. package/dist/esm/{algolia-data-dd72d1b7.js → algolia-data-80c1169a.js} +2 -2
  141. package/dist/esm/{algolia-data-dd72d1b7.js.map → algolia-data-80c1169a.js.map} +1 -1
  142. package/dist/esm/{algoliasearch.umd-6143495f.js → algoliasearch.umd-86359963.js} +3 -3
  143. package/dist/esm/{algoliasearch.umd-6143495f.js.map → algoliasearch.umd-86359963.js.map} +1 -1
  144. package/dist/esm/{component-store-b6fbfa35.js → component-store-d238fee4.js} +38 -26
  145. package/dist/esm/component-store-d238fee4.js.map +1 -0
  146. package/dist/esm/{form-control-c52b6256.js → form-control-ad05507c.js} +27 -20
  147. package/dist/esm/form-control-ad05507c.js.map +1 -0
  148. package/dist/esm/{index-5f8d16e7.js → index-c42becad.js} +7 -2
  149. package/dist/esm/{index-5f8d16e7.js.map → index-c42becad.js.map} +1 -1
  150. package/dist/esm/loader.js +2 -2
  151. package/dist/esm/nano-accordion.entry.js +1 -1
  152. package/dist/esm/nano-alert.entry.js +1 -1
  153. package/dist/esm/nano-algolia-filter.entry.js +3 -3
  154. package/dist/esm/nano-algolia-input.entry.js +4 -4
  155. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  156. package/dist/esm/nano-algolia-results.entry.js +2 -2
  157. package/dist/esm/nano-algolia.entry.js +4 -4
  158. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  159. package/dist/esm/nano-checkbox-group.entry.js +59 -21
  160. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  161. package/dist/esm/nano-checkbox.entry.js +28 -16
  162. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  163. package/dist/esm/nano-components.js +2 -2
  164. package/dist/esm/nano-datalist_3.entry.js +5 -4
  165. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  166. package/dist/esm/nano-date-input.entry.js +18 -5
  167. package/dist/esm/nano-date-input.entry.js.map +1 -1
  168. package/dist/esm/nano-date-picker.entry.js +1 -1
  169. package/dist/esm/nano-details.entry.js +1 -1
  170. package/dist/esm/nano-dialog.entry.js +14 -3
  171. package/dist/esm/nano-dialog.entry.js.map +1 -1
  172. package/dist/esm/nano-drawer.entry.js +1 -1
  173. package/dist/esm/nano-dropdown.entry.js +2 -2
  174. package/dist/esm/nano-field-validator.entry.js +525 -0
  175. package/dist/esm/nano-field-validator.entry.js.map +1 -0
  176. package/dist/esm/nano-file-upload.entry.js +60 -37
  177. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  178. package/dist/esm/nano-global-nav.entry.js +47 -42
  179. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  180. package/dist/esm/nano-global-search-results.entry.js +1 -1
  181. package/dist/esm/nano-grid_3.entry.js +1 -1
  182. package/dist/esm/nano-hero.entry.js +1 -1
  183. package/dist/esm/nano-icon-button.entry.js +1 -1
  184. package/dist/esm/nano-icon.entry.js +1 -1
  185. package/dist/esm/nano-icon.entry.js.map +1 -1
  186. package/dist/esm/nano-input.entry.js +38 -22
  187. package/dist/esm/nano-input.entry.js.map +1 -1
  188. package/dist/esm/nano-menu-drawer.entry.js +1 -1
  189. package/dist/esm/nano-nav-item_2.entry.js +55 -25
  190. package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
  191. package/dist/esm/nano-range.entry.js +1 -1
  192. package/dist/esm/nano-rating.entry.js +1 -1
  193. package/dist/esm/nano-resize-observe_2.entry.js +7 -5
  194. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  195. package/dist/esm/nano-slide.entry.js +1 -1
  196. package/dist/esm/nano-slides.entry.js +1 -1
  197. package/dist/esm/nano-spinner.entry.js +1 -1
  198. package/dist/esm/nano-split-pane.entry.js +1 -1
  199. package/dist/esm/nano-sticker.entry.js +3 -3
  200. package/dist/esm/nano-sticker.entry.js.map +1 -1
  201. package/dist/esm/nano-tab-content.entry.js +1 -1
  202. package/dist/esm/nano-tab-group.entry.js +2 -2
  203. package/dist/esm/nano-tab.entry.js +1 -1
  204. package/dist/esm/nano-tooltip.entry.js +2 -2
  205. package/dist/esm/{popover-7639005b.js → popover-a03563f3.js} +3 -8
  206. package/dist/esm/{popover-7639005b.js.map → popover-a03563f3.js.map} +1 -1
  207. package/dist/esm-es5/{algolia-data-dd72d1b7.js → algolia-data-80c1169a.js} +2 -2
  208. package/dist/esm-es5/{algolia-data-dd72d1b7.js.map → algolia-data-80c1169a.js.map} +0 -0
  209. package/dist/esm-es5/{algoliasearch.umd-6143495f.js → algoliasearch.umd-86359963.js} +3 -3
  210. package/dist/esm-es5/{algoliasearch.umd-6143495f.js.map → algoliasearch.umd-86359963.js.map} +1 -1
  211. package/dist/esm-es5/component-store-d238fee4.js +5 -0
  212. package/dist/esm-es5/component-store-d238fee4.js.map +1 -0
  213. package/dist/esm-es5/form-control-ad05507c.js +5 -0
  214. package/dist/esm-es5/form-control-ad05507c.js.map +1 -0
  215. package/dist/esm-es5/{index-5f8d16e7.js → index-c42becad.js} +2 -2
  216. package/dist/esm-es5/{index-5f8d16e7.js.map → index-c42becad.js.map} +0 -0
  217. package/dist/esm-es5/loader.js +1 -1
  218. package/dist/esm-es5/loader.js.map +1 -1
  219. package/dist/esm-es5/nano-accordion.entry.js +1 -1
  220. package/dist/esm-es5/nano-alert.entry.js +1 -1
  221. package/dist/esm-es5/nano-algolia-filter.entry.js +1 -1
  222. package/dist/esm-es5/nano-algolia-input.entry.js +1 -1
  223. package/dist/esm-es5/nano-algolia-pagination.entry.js +1 -1
  224. package/dist/esm-es5/nano-algolia-results.entry.js +1 -1
  225. package/dist/esm-es5/nano-algolia.entry.js +1 -1
  226. package/dist/esm-es5/nano-aspect-ratio.entry.js +1 -1
  227. package/dist/esm-es5/nano-checkbox-group.entry.js +2 -2
  228. package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
  229. package/dist/esm-es5/nano-checkbox.entry.js +1 -1
  230. package/dist/esm-es5/nano-checkbox.entry.js.map +1 -1
  231. package/dist/esm-es5/nano-components.js +1 -1
  232. package/dist/esm-es5/nano-components.js.map +1 -1
  233. package/dist/esm-es5/nano-datalist_3.entry.js +1 -1
  234. package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -1
  235. package/dist/esm-es5/nano-date-input.entry.js +1 -1
  236. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  237. package/dist/esm-es5/nano-date-picker.entry.js +1 -1
  238. package/dist/esm-es5/nano-details.entry.js +1 -1
  239. package/dist/esm-es5/nano-dialog.entry.js +1 -1
  240. package/dist/esm-es5/nano-dialog.entry.js.map +1 -1
  241. package/dist/esm-es5/nano-drawer.entry.js +1 -1
  242. package/dist/esm-es5/nano-dropdown.entry.js +1 -1
  243. package/dist/esm-es5/nano-field-validator.entry.js +5 -0
  244. package/dist/esm-es5/nano-field-validator.entry.js.map +1 -0
  245. package/dist/esm-es5/nano-file-upload.entry.js +2 -2
  246. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  247. package/dist/esm-es5/nano-global-nav.entry.js +1 -1
  248. package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
  249. package/dist/esm-es5/nano-global-search-results.entry.js +1 -1
  250. package/dist/esm-es5/nano-grid_3.entry.js +1 -1
  251. package/dist/esm-es5/nano-hero.entry.js +1 -1
  252. package/dist/esm-es5/nano-icon-button.entry.js +1 -1
  253. package/dist/esm-es5/nano-icon.entry.js +1 -1
  254. package/dist/esm-es5/nano-icon.entry.js.map +1 -1
  255. package/dist/esm-es5/nano-input.entry.js +1 -1
  256. package/dist/esm-es5/nano-input.entry.js.map +1 -1
  257. package/dist/esm-es5/nano-menu-drawer.entry.js +1 -1
  258. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  259. package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
  260. package/dist/esm-es5/nano-range.entry.js +1 -1
  261. package/dist/esm-es5/nano-rating.entry.js +1 -1
  262. package/dist/esm-es5/nano-resize-observe_2.entry.js +2 -2
  263. package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
  264. package/dist/esm-es5/nano-slide.entry.js +1 -1
  265. package/dist/esm-es5/nano-slides.entry.js +1 -1
  266. package/dist/esm-es5/nano-spinner.entry.js +1 -1
  267. package/dist/esm-es5/nano-split-pane.entry.js +1 -1
  268. package/dist/esm-es5/nano-sticker.entry.js +1 -1
  269. package/dist/esm-es5/nano-sticker.entry.js.map +1 -1
  270. package/dist/esm-es5/nano-tab-content.entry.js +1 -1
  271. package/dist/esm-es5/nano-tab-group.entry.js +1 -1
  272. package/dist/esm-es5/nano-tab.entry.js +2 -2
  273. package/dist/esm-es5/nano-tooltip.entry.js +1 -1
  274. package/dist/esm-es5/{popover-7639005b.js → popover-a03563f3.js} +2 -2
  275. package/dist/esm-es5/popover-a03563f3.js.map +1 -0
  276. package/dist/nano-components/nano-components.css +1 -1
  277. package/dist/nano-components/nano-components.esm.js +1 -1
  278. package/dist/nano-components/nano-components.esm.js.map +1 -1
  279. package/dist/nano-components/nano-components.js +1 -1
  280. package/dist/nano-components/p-00eaa36a.entry.js +5 -0
  281. package/dist/nano-components/p-00eaa36a.entry.js.map +1 -0
  282. package/dist/nano-components/{p-4429caac.system.entry.js → p-0c6c2141.system.entry.js} +2 -2
  283. package/dist/nano-components/{p-4429caac.system.entry.js.map → p-0c6c2141.system.entry.js.map} +0 -0
  284. package/dist/nano-components/{p-7232c046.system.entry.js → p-0d0dfc06.system.entry.js} +2 -2
  285. package/dist/nano-components/{p-7232c046.system.entry.js.map → p-0d0dfc06.system.entry.js.map} +0 -0
  286. package/dist/nano-components/{p-e562bffd.entry.js → p-0e2e3f4a.entry.js} +2 -2
  287. package/dist/nano-components/{p-e562bffd.entry.js.map → p-0e2e3f4a.entry.js.map} +0 -0
  288. package/dist/nano-components/{p-56ba0d63.entry.js → p-1030797a.entry.js} +2 -2
  289. package/dist/nano-components/{p-56ba0d63.entry.js.map → p-1030797a.entry.js.map} +0 -0
  290. package/dist/nano-components/p-11451a4b.system.entry.js +5 -0
  291. package/dist/nano-components/p-11451a4b.system.entry.js.map +1 -0
  292. package/dist/nano-components/p-129e2b4b.system.js +5 -0
  293. package/dist/nano-components/p-129e2b4b.system.js.map +1 -0
  294. package/dist/nano-components/{p-c0ddb4c3.entry.js → p-166ade3e.entry.js} +2 -2
  295. package/dist/nano-components/{p-c0ddb4c3.entry.js.map → p-166ade3e.entry.js.map} +0 -0
  296. package/dist/nano-components/{p-5653961d.system.entry.js → p-1a30dfdd.system.entry.js} +2 -2
  297. package/dist/nano-components/p-1a30dfdd.system.entry.js.map +1 -0
  298. package/dist/nano-components/p-1b120f53.entry.js +5 -0
  299. package/dist/nano-components/p-1b120f53.entry.js.map +1 -0
  300. package/dist/nano-components/{p-7d351076.system.entry.js → p-21af2a5e.system.entry.js} +2 -2
  301. package/dist/nano-components/{p-7d351076.system.entry.js.map → p-21af2a5e.system.entry.js.map} +0 -0
  302. package/dist/nano-components/{p-346588cc.entry.js → p-222d8095.entry.js} +2 -2
  303. package/dist/nano-components/{p-346588cc.entry.js.map → p-222d8095.entry.js.map} +0 -0
  304. package/dist/nano-components/p-241d90eb.system.entry.js +5 -0
  305. package/dist/nano-components/p-241d90eb.system.entry.js.map +1 -0
  306. package/dist/nano-components/{p-040b6cda.entry.js → p-2649fc8e.entry.js} +2 -2
  307. package/dist/nano-components/{p-040b6cda.entry.js.map → p-2649fc8e.entry.js.map} +0 -0
  308. package/dist/nano-components/{p-3456db01.entry.js → p-27efac97.entry.js} +2 -2
  309. package/dist/nano-components/{p-3456db01.entry.js.map → p-27efac97.entry.js.map} +0 -0
  310. package/dist/nano-components/{p-462ad4f1.entry.js → p-2c8d7273.entry.js} +2 -2
  311. package/dist/nano-components/{p-462ad4f1.entry.js.map → p-2c8d7273.entry.js.map} +0 -0
  312. package/dist/nano-components/{p-2e6c55e2.entry.js → p-2d53d1a0.entry.js} +2 -2
  313. package/dist/nano-components/{p-2e6c55e2.entry.js.map → p-2d53d1a0.entry.js.map} +0 -0
  314. package/dist/nano-components/{p-1f99d776.entry.js → p-3093915f.entry.js} +2 -2
  315. package/dist/nano-components/{p-1f99d776.entry.js.map → p-3093915f.entry.js.map} +0 -0
  316. package/dist/nano-components/{p-8a8f893b.system.entry.js → p-316f83a9.system.entry.js} +2 -2
  317. package/dist/nano-components/{p-8a8f893b.system.entry.js.map → p-316f83a9.system.entry.js.map} +0 -0
  318. package/dist/nano-components/{p-7246bef5.entry.js → p-325c1cad.entry.js} +2 -2
  319. package/dist/nano-components/{p-7246bef5.entry.js.map → p-325c1cad.entry.js.map} +0 -0
  320. package/dist/nano-components/{p-ec39b143.system.entry.js → p-32f396c0.system.entry.js} +2 -2
  321. package/dist/nano-components/{p-ec39b143.system.entry.js.map → p-32f396c0.system.entry.js.map} +0 -0
  322. package/dist/nano-components/p-32f4516e.js +5 -0
  323. package/dist/nano-components/p-32f4516e.js.map +1 -0
  324. package/dist/nano-components/{p-43543d18.entry.js → p-333237e8.entry.js} +2 -2
  325. package/dist/nano-components/{p-43543d18.entry.js.map → p-333237e8.entry.js.map} +0 -0
  326. package/dist/nano-components/{p-e7fdc62d.entry.js → p-35108e08.entry.js} +2 -2
  327. package/dist/nano-components/{p-e7fdc62d.entry.js.map → p-35108e08.entry.js.map} +0 -0
  328. package/dist/nano-components/{p-a898bf92.system.entry.js → p-379e21d9.system.entry.js} +2 -2
  329. package/dist/nano-components/{p-a898bf92.system.entry.js.map → p-379e21d9.system.entry.js.map} +0 -0
  330. package/dist/nano-components/{p-3ad1d5aa.system.entry.js → p-39d36fd1.system.entry.js} +2 -2
  331. package/dist/nano-components/{p-3ad1d5aa.system.entry.js.map → p-39d36fd1.system.entry.js.map} +0 -0
  332. package/dist/nano-components/{p-41a2e2e4.system.js → p-3a00de47.system.js} +2 -2
  333. package/dist/nano-components/{p-41a2e2e4.system.js.map → p-3a00de47.system.js.map} +0 -0
  334. package/dist/nano-components/{p-6afdb510.system.entry.js → p-3ccb176c.system.entry.js} +2 -2
  335. package/dist/nano-components/{p-6afdb510.system.entry.js.map → p-3ccb176c.system.entry.js.map} +0 -0
  336. package/dist/nano-components/{p-178c34e3.js → p-3de7735c.js} +2 -2
  337. package/dist/nano-components/p-3de7735c.js.map +1 -0
  338. package/dist/nano-components/{p-08b43111.entry.js → p-3e930ac7.entry.js} +2 -2
  339. package/dist/nano-components/{p-08b43111.entry.js.map → p-3e930ac7.entry.js.map} +0 -0
  340. package/dist/nano-components/{p-d8d8bac6.system.entry.js → p-42cebbfe.system.entry.js} +2 -2
  341. package/dist/nano-components/{p-d8d8bac6.system.entry.js.map → p-42cebbfe.system.entry.js.map} +0 -0
  342. package/dist/nano-components/p-45070c8f.entry.js +5 -0
  343. package/dist/nano-components/p-45070c8f.entry.js.map +1 -0
  344. package/dist/nano-components/{p-3ef30ded.system.entry.js → p-48874481.system.entry.js} +2 -2
  345. package/dist/nano-components/{p-3ef30ded.system.entry.js.map → p-48874481.system.entry.js.map} +0 -0
  346. package/dist/nano-components/{p-08ffc9a1.entry.js → p-4e2c0abb.entry.js} +2 -2
  347. package/dist/nano-components/{p-08ffc9a1.entry.js.map → p-4e2c0abb.entry.js.map} +0 -0
  348. package/dist/nano-components/{p-090f22a9.system.entry.js → p-5100ae70.system.entry.js} +2 -2
  349. package/dist/nano-components/{p-090f22a9.system.entry.js.map → p-5100ae70.system.entry.js.map} +0 -0
  350. package/dist/nano-components/{p-593de29b.system.entry.js → p-52769304.system.entry.js} +2 -2
  351. package/dist/nano-components/{p-593de29b.system.entry.js.map → p-52769304.system.entry.js.map} +0 -0
  352. package/dist/nano-components/{p-8278c5d2.system.entry.js → p-56f86047.system.entry.js} +2 -2
  353. package/dist/nano-components/{p-8278c5d2.system.entry.js.map → p-56f86047.system.entry.js.map} +0 -0
  354. package/dist/nano-components/{p-3c475740.system.entry.js → p-5b66bb8f.system.entry.js} +2 -2
  355. package/dist/nano-components/p-5b66bb8f.system.entry.js.map +1 -0
  356. package/dist/nano-components/{p-033296c7.system.entry.js → p-5d17cfbb.system.entry.js} +2 -2
  357. package/dist/nano-components/{p-033296c7.system.entry.js.map → p-5d17cfbb.system.entry.js.map} +0 -0
  358. package/dist/nano-components/{p-88f17c86.system.entry.js → p-5d5ea4ab.system.entry.js} +2 -2
  359. package/dist/nano-components/{p-88f17c86.system.entry.js.map → p-5d5ea4ab.system.entry.js.map} +0 -0
  360. package/dist/nano-components/{p-20387cde.system.entry.js → p-6b4dd158.system.entry.js} +2 -2
  361. package/dist/nano-components/{p-20387cde.system.entry.js.map → p-6b4dd158.system.entry.js.map} +0 -0
  362. package/dist/nano-components/{p-d24811c8.system.js → p-6b5760b1.system.js} +3 -3
  363. package/dist/nano-components/{p-d24811c8.system.js.map → p-6b5760b1.system.js.map} +1 -1
  364. package/dist/nano-components/p-6d138abf.entry.js +5 -0
  365. package/dist/nano-components/p-6d138abf.entry.js.map +1 -0
  366. package/dist/nano-components/{p-5066e563.system.entry.js → p-6dad332b.system.entry.js} +2 -2
  367. package/dist/nano-components/{p-5066e563.system.entry.js.map → p-6dad332b.system.entry.js.map} +0 -0
  368. package/dist/nano-components/{p-730f60ea.entry.js → p-6ddb51e4.entry.js} +2 -2
  369. package/dist/nano-components/p-6ddb51e4.entry.js.map +1 -0
  370. package/dist/nano-components/p-71bbb7ba.entry.js +5 -0
  371. package/dist/nano-components/p-71bbb7ba.entry.js.map +1 -0
  372. package/dist/nano-components/p-71e9fa33.js +5 -0
  373. package/dist/nano-components/p-71e9fa33.js.map +1 -0
  374. package/dist/nano-components/p-72ed603c.system.entry.js +5 -0
  375. package/dist/nano-components/p-72ed603c.system.entry.js.map +1 -0
  376. package/dist/nano-components/{p-c9d09839.entry.js → p-73985eda.entry.js} +2 -2
  377. package/dist/nano-components/{p-c9d09839.entry.js.map → p-73985eda.entry.js.map} +0 -0
  378. package/dist/nano-components/{p-58d7f10f.entry.js → p-76c903db.entry.js} +2 -2
  379. package/dist/nano-components/{p-58d7f10f.entry.js.map → p-76c903db.entry.js.map} +0 -0
  380. package/dist/nano-components/{p-3aa1d07d.entry.js → p-76d9d1d4.entry.js} +2 -2
  381. package/dist/nano-components/p-76d9d1d4.entry.js.map +1 -0
  382. package/dist/nano-components/{p-f53989c3.system.entry.js → p-7aa7425d.system.entry.js} +2 -2
  383. package/dist/nano-components/{p-f53989c3.system.entry.js.map → p-7aa7425d.system.entry.js.map} +1 -1
  384. package/dist/nano-components/{p-531d5275.system.entry.js → p-7ad4a27a.system.entry.js} +2 -2
  385. package/dist/nano-components/p-7ad4a27a.system.entry.js.map +1 -0
  386. package/dist/nano-components/{p-9acc4596.system.entry.js → p-7e55b214.system.entry.js} +3 -3
  387. package/dist/nano-components/{p-9acc4596.system.entry.js.map → p-7e55b214.system.entry.js.map} +0 -0
  388. package/dist/nano-components/{p-62ecd3a1.system.entry.js → p-7f1374b6.system.entry.js} +2 -2
  389. package/dist/nano-components/{p-62ecd3a1.system.entry.js.map → p-7f1374b6.system.entry.js.map} +0 -0
  390. package/dist/nano-components/{p-1e974cad.entry.js → p-7fe9d769.entry.js} +2 -2
  391. package/dist/nano-components/{p-1e974cad.entry.js.map → p-7fe9d769.entry.js.map} +0 -0
  392. package/dist/nano-components/p-85c8b070.system.entry.js +5 -0
  393. package/dist/nano-components/p-85c8b070.system.entry.js.map +1 -0
  394. package/dist/nano-components/{p-f2e7d2f9.system.entry.js → p-88779174.system.entry.js} +2 -2
  395. package/dist/nano-components/{p-f2e7d2f9.system.entry.js.map → p-88779174.system.entry.js.map} +0 -0
  396. package/dist/nano-components/{p-4535e3bb.entry.js → p-8b6fcd6d.entry.js} +2 -2
  397. package/dist/nano-components/{p-4535e3bb.entry.js.map → p-8b6fcd6d.entry.js.map} +0 -0
  398. package/dist/nano-components/{p-6ade3290.entry.js → p-8eb4f24a.entry.js} +2 -2
  399. package/dist/nano-components/{p-6ade3290.entry.js.map → p-8eb4f24a.entry.js.map} +0 -0
  400. package/dist/nano-components/{p-07bdf44d.entry.js → p-8fe2f846.entry.js} +2 -2
  401. package/dist/nano-components/{p-07bdf44d.entry.js.map → p-8fe2f846.entry.js.map} +0 -0
  402. package/dist/nano-components/p-96150b2c.system.entry.js +5 -0
  403. package/dist/nano-components/p-96150b2c.system.entry.js.map +1 -0
  404. package/dist/nano-components/{p-bcd69559.entry.js → p-97b13ad2.entry.js} +2 -2
  405. package/dist/nano-components/{p-bcd69559.entry.js.map → p-97b13ad2.entry.js.map} +0 -0
  406. package/dist/nano-components/{p-c9c1a345.system.entry.js → p-a02cc654.system.entry.js} +2 -2
  407. package/dist/nano-components/{p-c9c1a345.system.entry.js.map → p-a02cc654.system.entry.js.map} +0 -0
  408. package/dist/nano-components/{p-a77e3fbb.js → p-a0b93616.js} +3 -3
  409. package/dist/nano-components/{p-a77e3fbb.js.map → p-a0b93616.js.map} +1 -1
  410. package/dist/nano-components/p-a4969844.entry.js +5 -0
  411. package/dist/nano-components/p-a4969844.entry.js.map +1 -0
  412. package/dist/nano-components/{p-70dec19f.entry.js → p-a6327a9a.entry.js} +2 -2
  413. package/dist/nano-components/{p-70dec19f.entry.js.map → p-a6327a9a.entry.js.map} +0 -0
  414. package/dist/nano-components/p-a81db037.entry.js +5 -0
  415. package/dist/nano-components/p-a81db037.entry.js.map +1 -0
  416. package/dist/nano-components/{p-a315ed2c.entry.js → p-a9a4fc3e.entry.js} +2 -2
  417. package/dist/nano-components/{p-a315ed2c.entry.js.map → p-a9a4fc3e.entry.js.map} +1 -1
  418. package/dist/nano-components/{p-98222c39.system.entry.js → p-ab07c1fa.system.entry.js} +2 -2
  419. package/dist/nano-components/{p-98222c39.system.entry.js.map → p-ab07c1fa.system.entry.js.map} +0 -0
  420. package/dist/nano-components/{p-ab5813a7.js → p-b5c33aff.js} +2 -2
  421. package/dist/nano-components/{p-ab5813a7.js.map → p-b5c33aff.js.map} +0 -0
  422. package/dist/nano-components/p-bc394857.system.entry.js +5 -0
  423. package/dist/nano-components/p-bc394857.system.entry.js.map +1 -0
  424. package/dist/nano-components/{p-ee3fe567.entry.js → p-bce998f2.entry.js} +2 -2
  425. package/dist/nano-components/p-bce998f2.entry.js.map +1 -0
  426. package/dist/nano-components/{p-92f85aaf.system.entry.js → p-bf9aa89d.system.entry.js} +2 -2
  427. package/dist/nano-components/{p-92f85aaf.system.entry.js.map → p-bf9aa89d.system.entry.js.map} +0 -0
  428. package/dist/nano-components/p-c070ffd3.system.entry.js +5 -0
  429. package/dist/nano-components/p-c070ffd3.system.entry.js.map +1 -0
  430. package/dist/nano-components/{p-50514e5e.entry.js → p-c4156fea.entry.js} +2 -2
  431. package/dist/nano-components/{p-50514e5e.entry.js.map → p-c4156fea.entry.js.map} +0 -0
  432. package/dist/nano-components/p-c9a2d24c.entry.js +5 -0
  433. package/dist/nano-components/p-c9a2d24c.entry.js.map +1 -0
  434. package/dist/nano-components/p-d01bd3c3.system.js +5 -0
  435. package/dist/nano-components/p-d01bd3c3.system.js.map +1 -0
  436. package/dist/nano-components/{p-1238f0fc.system.entry.js → p-d0385948.system.entry.js} +2 -2
  437. package/dist/nano-components/{p-1238f0fc.system.entry.js.map → p-d0385948.system.entry.js.map} +0 -0
  438. package/dist/nano-components/{p-b59d2bd5.entry.js → p-d122b1ff.entry.js} +2 -2
  439. package/dist/nano-components/{p-b59d2bd5.entry.js.map → p-d122b1ff.entry.js.map} +0 -0
  440. package/dist/nano-components/{p-394c3c19.entry.js → p-defd4552.entry.js} +2 -2
  441. package/dist/nano-components/{p-394c3c19.entry.js.map → p-defd4552.entry.js.map} +0 -0
  442. package/dist/nano-components/{p-9745d44e.system.js → p-e43ec257.system.js} +2 -2
  443. package/dist/nano-components/p-e43ec257.system.js.map +1 -0
  444. package/dist/nano-components/p-e7140887.system.js +5 -0
  445. package/dist/nano-components/p-e7140887.system.js.map +1 -0
  446. package/dist/nano-components/{p-69439aa1.system.entry.js → p-e817ab4a.system.entry.js} +2 -2
  447. package/dist/nano-components/{p-69439aa1.system.entry.js.map → p-e817ab4a.system.entry.js.map} +0 -0
  448. package/dist/nano-components/{p-22884654.system.entry.js → p-eacf5b5b.system.entry.js} +2 -2
  449. package/dist/nano-components/{p-22884654.system.entry.js.map → p-eacf5b5b.system.entry.js.map} +0 -0
  450. package/dist/nano-components/p-ed336501.entry.js +5 -0
  451. package/dist/nano-components/p-ed336501.entry.js.map +1 -0
  452. package/dist/nano-components/{p-5ae80fd7.js → p-ef7f1e9c.js} +2 -2
  453. package/dist/nano-components/{p-5ae80fd7.js.map → p-ef7f1e9c.js.map} +0 -0
  454. package/dist/nano-components/{p-59b3d24b.system.js → p-f48be9f5.system.js} +2 -2
  455. package/dist/nano-components/{p-59b3d24b.system.js.map → p-f48be9f5.system.js.map} +0 -0
  456. package/dist/nano-components/p-f710c763.system.entry.js +5 -0
  457. package/dist/nano-components/p-f710c763.system.entry.js.map +1 -0
  458. package/dist/nano-components/{p-65c10b3f.entry.js → p-fbe3c89e.entry.js} +2 -2
  459. package/dist/nano-components/{p-65c10b3f.entry.js.map → p-fbe3c89e.entry.js.map} +0 -0
  460. package/dist/nano-components/p-fc3702a0.system.entry.js +5 -0
  461. package/dist/nano-components/p-fc3702a0.system.entry.js.map +1 -0
  462. package/dist/nano-components/{p-ba13bb56.entry.js → p-ffc2063a.entry.js} +2 -2
  463. package/dist/nano-components/{p-ba13bb56.entry.js.map → p-ffc2063a.entry.js.map} +0 -0
  464. package/dist/nano-components/{p-383fda90.system.entry.js → p-fff27907.system.entry.js} +2 -2
  465. package/dist/nano-components/{p-383fda90.system.entry.js.map → p-fff27907.system.entry.js.map} +0 -0
  466. package/dist/types/components/checkbox/checkbox-group.d.ts +12 -1
  467. package/dist/types/components/checkbox/checkbox.d.ts +11 -3
  468. package/dist/types/components/date-input/date-input.d.ts +4 -0
  469. package/dist/types/components/dialog/dialog.d.ts +4 -1
  470. package/dist/types/components/field-validator/field-validator.d.ts +125 -0
  471. package/dist/types/components/file-upload/file-upload.d.ts +8 -0
  472. package/dist/types/components/form-control/form-control.d.ts +2 -0
  473. package/dist/types/components/global-nav/global-nav.d.ts +10 -3
  474. package/dist/types/components/icon/icon.d.ts +1 -1
  475. package/dist/types/components/input/input.d.ts +9 -1
  476. package/dist/types/components/resize-observe/resize-observe.d.ts +0 -1
  477. package/dist/types/components/select/select.d.ts +9 -1
  478. package/dist/types/components/{sticky → sticker}/sticker.d.ts +0 -0
  479. package/dist/types/components.d.ts +198 -7
  480. package/dist/types/utils/store/get-set.d.ts +1 -1
  481. package/docs-json.json +474 -18
  482. package/docs-vscode.json +83 -3
  483. package/package.json +3 -2
  484. package/dist/cjs/component-store-722032a5.js.map +0 -1
  485. package/dist/cjs/form-control-8f530f7d.js.map +0 -1
  486. package/dist/collection/components/sticky/sticker.js.map +0 -1
  487. package/dist/esm/component-store-b6fbfa35.js.map +0 -1
  488. package/dist/esm/form-control-c52b6256.js.map +0 -1
  489. package/dist/esm-es5/component-store-b6fbfa35.js +0 -5
  490. package/dist/esm-es5/component-store-b6fbfa35.js.map +0 -1
  491. package/dist/esm-es5/form-control-c52b6256.js +0 -5
  492. package/dist/esm-es5/form-control-c52b6256.js.map +0 -1
  493. package/dist/esm-es5/popover-7639005b.js.map +0 -1
  494. package/dist/nano-components/p-0618fac6.system.entry.js +0 -5
  495. package/dist/nano-components/p-0618fac6.system.entry.js.map +0 -1
  496. package/dist/nano-components/p-096682d9.system.js +0 -5
  497. package/dist/nano-components/p-096682d9.system.js.map +0 -1
  498. package/dist/nano-components/p-10a6216d.system.entry.js +0 -5
  499. package/dist/nano-components/p-10a6216d.system.entry.js.map +0 -1
  500. package/dist/nano-components/p-173bae15.system.entry.js +0 -5
  501. package/dist/nano-components/p-173bae15.system.entry.js.map +0 -1
  502. package/dist/nano-components/p-178c34e3.js.map +0 -1
  503. package/dist/nano-components/p-3aa1d07d.entry.js.map +0 -1
  504. package/dist/nano-components/p-3c475740.system.entry.js.map +0 -1
  505. package/dist/nano-components/p-4265cf95.system.entry.js +0 -5
  506. package/dist/nano-components/p-4265cf95.system.entry.js.map +0 -1
  507. package/dist/nano-components/p-4ee978ff.entry.js +0 -5
  508. package/dist/nano-components/p-4ee978ff.entry.js.map +0 -1
  509. package/dist/nano-components/p-531d5275.system.entry.js.map +0 -1
  510. package/dist/nano-components/p-5653961d.system.entry.js.map +0 -1
  511. package/dist/nano-components/p-5a0095f9.js +0 -5
  512. package/dist/nano-components/p-5a0095f9.js.map +0 -1
  513. package/dist/nano-components/p-5a315696.entry.js +0 -5
  514. package/dist/nano-components/p-5a315696.entry.js.map +0 -1
  515. package/dist/nano-components/p-5e7c7d3d.entry.js +0 -5
  516. package/dist/nano-components/p-5e7c7d3d.entry.js.map +0 -1
  517. package/dist/nano-components/p-730f60ea.entry.js.map +0 -1
  518. package/dist/nano-components/p-802e1416.system.entry.js +0 -5
  519. package/dist/nano-components/p-802e1416.system.entry.js.map +0 -1
  520. package/dist/nano-components/p-820d9e23.system.entry.js +0 -5
  521. package/dist/nano-components/p-820d9e23.system.entry.js.map +0 -1
  522. package/dist/nano-components/p-829d7f05.system.entry.js +0 -5
  523. package/dist/nano-components/p-829d7f05.system.entry.js.map +0 -1
  524. package/dist/nano-components/p-894d6967.entry.js +0 -5
  525. package/dist/nano-components/p-894d6967.entry.js.map +0 -1
  526. package/dist/nano-components/p-8e5afc61.system.entry.js +0 -5
  527. package/dist/nano-components/p-8e5afc61.system.entry.js.map +0 -1
  528. package/dist/nano-components/p-9745d44e.system.js.map +0 -1
  529. package/dist/nano-components/p-9d35768b.entry.js +0 -5
  530. package/dist/nano-components/p-9d35768b.entry.js.map +0 -1
  531. package/dist/nano-components/p-aaef7cc7.js +0 -5
  532. package/dist/nano-components/p-aaef7cc7.js.map +0 -1
  533. package/dist/nano-components/p-af7abf5e.entry.js +0 -5
  534. package/dist/nano-components/p-af7abf5e.entry.js.map +0 -1
  535. package/dist/nano-components/p-df0897ec.system.js +0 -5
  536. package/dist/nano-components/p-df0897ec.system.js.map +0 -1
  537. package/dist/nano-components/p-e1f46998.system.js +0 -5
  538. package/dist/nano-components/p-e1f46998.system.js.map +0 -1
  539. package/dist/nano-components/p-e7c69d4f.entry.js +0 -5
  540. package/dist/nano-components/p-e7c69d4f.entry.js.map +0 -1
  541. package/dist/nano-components/p-ee3fe567.entry.js.map +0 -1
  542. package/dist/nano-components/p-f3bf942d.entry.js +0 -5
  543. package/dist/nano-components/p-f3bf942d.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/components/menu/menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Event,\n EventEmitter,\n Method,\n h,\n Host,\n Element,\n Prop,\n Listen,\n} from '@stencil/core';\nimport {\n getTextContent,\n getDirectChildren,\n getActiveElement,\n} from '../../utils';\n\nconst CANSHADOW = !!document.head.attachShadow;\n\ntype ValidElement = HTMLNanoNavItemElement | HTMLNanoOptionElement;\ntype NNI = HTMLNanoNavItemElement;\n\n/**\n * Menu element. Commonly wrapped by `nano-dropdown` with `nano-option` and `nano-nav-item` elements nested.\n * Manages focus state / active.\n * @slot - The menu's content; `nano-option`, `nano-nav-item` elements as well as <hr> and more.\n */\n@Component({\n tag: 'nano-menu',\n styleUrl: 'menu.scss',\n shadow: true,\n})\nexport class Menu {\n private ignoreMouseEvents = false;\n private ignoreMouseTimeout: any;\n private menu: HTMLElement;\n private typeToSelect = '';\n private typeToSelectTimeout: any;\n\n @Element() private el: HTMLNanoMenuElement;\n\n // Public API\n\n /** get the focus state of the menu @readonly */\n @Prop()\n get hasFocus() {\n return this._hasFocus;\n }\n private _hasFocus = false;\n\n /** changes the role of the underlying control - sometimes required for semantics */\n @Prop() type: 'menu' | 'listbox' = 'menu';\n\n /** an accessible label */\n @Prop() label: string;\n\n // Events\n\n /** Emitted when the menu gains focus. */\n @Event() nanoFocus: EventEmitter;\n\n /** Emitted when the menu loses focus. */\n @Event() nanoBlur: EventEmitter;\n\n /** Emitted when a menu item is selected. */\n @Event() nanoSelect: EventEmitter<\n HTMLNanoOptionElement | HTMLNanoNavItemElement\n >;\n\n // Public Methods\n\n /** Sets focus on the menu. */\n @Method()\n async setFocus() {\n if (this.menu?.focus) this.menu.focus({ preventScroll: true });\n }\n\n /** Removes focus from the menu. */\n @Method()\n async removeFocus() {\n if (this.menu?.blur) this.menu.blur();\n }\n\n /** Sets the current active item */\n @Method()\n async showActiveElement() {\n if (this.selectedItem)\n this.selectedItem.scrollIntoView({ block: 'nearest' });\n }\n\n /** Removes any active item's state */\n @Method()\n async resetActiveItem() {\n this.getItems\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i) => i.setAttribute('tabindex', '-1'));\n }\n\n // Private methods\n\n get getItems() {\n let items: ValidElement[];\n let opened = this.el.querySelectorAll('nano-nav-item.secondary-open');\n if (opened.length) {\n const ctx = opened[opened.length - 1] as HTMLNanoNavItemElement;\n items = Array.from(ctx.querySelectorAll('nano-nav-item, nano-option'));\n } else {\n items = getDirectChildren(\n this.el,\n 'nano-nav-item, nano-option',\n 'slot'\n ) as ValidElement[];\n }\n return items.filter((el) => !el.disabled && !el.hidden);\n }\n\n get activeItem() {\n const activeElement = getActiveElement();\n return this.getItems.find(\n (i) =>\n i.getAttribute('tabindex') === '0' ||\n i === activeElement ||\n i.classList.contains('has-focus')\n );\n }\n\n get selectedItem() {\n const activeElement = getActiveElement();\n return this.getItems.find((i) => i.selected || i === activeElement);\n }\n\n private async setActiveFocusItem(item?: ValidElement, focus = true) {\n const items = this.getItems;\n let activeItem =\n !item || item.disabled ? items.find((i) => i.selected) || items[0] : item;\n\n items\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i: HTMLNanoOptionElement) =>\n i.setAttribute('tabindex', i === activeItem ? '0' : '-1')\n );\n\n if (!focus) return;\n\n if (activeItem) {\n (activeItem as NNI).setFocus\n ? (activeItem as NNI).setFocus()\n : activeItem.focus();\n } else this.menu.focus();\n }\n\n // Event Handlers\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let found: boolean;\n\n if (kev.key) {\n if (kev.key !== 'Tab') return;\n found =\n getActiveElement() &&\n getActiveElement().closest(this.el.tagName.toLowerCase()) === this.el;\n } else found = !!e.composedPath().find((el) => el === this.el);\n\n if (!found) {\n this.resetActiveItem();\n this._hasFocus = false;\n this.nanoBlur.emit();\n }\n }\n\n private handleFocus = () => {\n this.setActiveFocusItem(this.selectedItem || this.getItems[0]);\n\n this._hasFocus = true;\n this.nanoFocus.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item = target.closest('nano-nav-item');\n\n if (item && !item.disabled) {\n this.nanoSelect.emit(item);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // When keying through the menu, if the mouse happens to be hovering over a menu item and the menu scrolls, the\n // mouseout/mouseover event will fire causing the selection to be different than what the user expects. This gives\n // us a way to temporarily ignore mouse events while the user is interacting with a keyboard.\n clearTimeout(this.ignoreMouseTimeout);\n this.ignoreMouseTimeout = setTimeout(\n () => (this.ignoreMouseEvents = false),\n 500\n );\n this.ignoreMouseEvents = true;\n\n // Make a selection when pressing enter\n switch (event.key) {\n case ' ':\n if (this.activeItem) this.activeItem.click();\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'PageDown':\n case 'PageUp':\n case 'Home':\n case 'End':\n const items = this.getItems;\n const selectedItem = this.activeItem;\n let index = items.indexOf(selectedItem);\n\n if (items.length) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n index++;\n } else if (event.key === 'ArrowUp') {\n index--;\n } else if (event.key === 'Home' || event.key === 'PageUp') {\n index = 0;\n } else if (event.key === 'End' || event.key === 'PageDown') {\n index = items.length - 1;\n }\n\n if (index < 0) index = items.length - 1;\n if (index > items.length - 1) index = 0;\n\n this.setActiveFocusItem(items[index]);\n if (items[index]) items[index].scrollIntoView({ block: 'nearest' });\n return;\n }\n break;\n }\n\n // Handle type-to-search behavior when non-control characters are entered\n if (event.key === ' ' || /^[a-z0-9]+$/i.test(event.key)) {\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = setTimeout(\n () => (this.typeToSelect = ''),\n 750\n );\n this.typeToSelect += event.key;\n\n const items = this.getItems;\n for (const item of items) {\n const slot = item.shadowRoot.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement;\n const label = getTextContent(slot).toLowerCase().trim();\n if (\n label.substring(0, this.typeToSelect.length) === this.typeToSelect\n ) {\n this.setActiveFocusItem(item);\n break;\n }\n }\n }\n };\n\n private handleMouseOver = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item =\n target.closest('nano-nav-item') || target.closest('nano-option');\n\n if (item && !this.ignoreMouseEvents) {\n this.setActiveFocusItem(item);\n }\n };\n\n // Component Lifecycle\n\n render() {\n return (\n <Host\n class={{\n legacy: !CANSHADOW,\n }}\n >\n <div\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onMouseOver={this.handleMouseOver}\n onFocus={this.handleFocus}\n aria-label={this.label ? this.label : undefined}\n role={this.type}\n ref={(el) => (this.menu = el)}\n part=\"base\"\n class={{\n menu: true,\n ['menu--' + this.type]: true,\n 'menu--has-focus': this.hasFocus,\n }}\n tabIndex={-1}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/components/menu/menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Event,\n EventEmitter,\n Method,\n h,\n Host,\n Element,\n Prop,\n Listen,\n} from '@stencil/core';\nimport {\n getTextContent,\n getDirectChildren,\n getActiveElement,\n} from '../../utils';\n\nconst CANSHADOW = !!document.head.attachShadow;\n\ntype ValidElement = HTMLNanoNavItemElement | HTMLNanoOptionElement;\ntype NNI = HTMLNanoNavItemElement;\n\n/**\n * Menu element. Commonly wrapped by `nano-dropdown` with `nano-option` and `nano-nav-item` elements nested.\n * Manages focus state / active.\n * @slot - The menu's content; `nano-option`, `nano-nav-item` elements as well as <hr> and more.\n */\n@Component({\n tag: 'nano-menu',\n styleUrl: 'menu.scss',\n shadow: true,\n})\nexport class Menu {\n private ignoreMouseEvents = false;\n private ignoreMouseTimeout: any;\n private menu: HTMLElement;\n private typeToSelect = '';\n private typeToSelectTimeout: any;\n\n @Element() private el: HTMLNanoMenuElement;\n\n // Public API\n\n /** get the focus state of the menu @readonly */\n @Prop()\n get hasFocus() {\n return this._hasFocus;\n }\n private _hasFocus = false;\n\n /** changes the role of the underlying control - sometimes required for semantics */\n @Prop() type: 'menu' | 'listbox' = 'menu';\n\n /** an accessible label */\n @Prop() label: string;\n\n // Events\n\n /** Emitted when the menu gains focus. */\n @Event() nanoFocus: EventEmitter;\n\n /** Emitted when the menu loses focus. */\n @Event() nanoBlur: EventEmitter;\n\n /** Emitted when a menu item is selected. */\n @Event() nanoSelect: EventEmitter<\n HTMLNanoOptionElement | HTMLNanoNavItemElement\n >;\n\n // Public Methods\n\n /** Sets focus on the menu. */\n @Method()\n async setFocus() {\n if (this.menu?.focus) this.menu.focus({ preventScroll: true });\n }\n\n /** Removes focus from the menu. */\n @Method()\n async removeFocus() {\n if (this.menu?.blur) this.menu.blur();\n }\n\n /** Sets the current active item */\n @Method()\n async showActiveElement() {\n if (this.selectedItem)\n this.selectedItem.scrollIntoView({ block: 'nearest' });\n }\n\n /** Removes any active item's state */\n @Method()\n async resetActiveItem() {\n this.getItems\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i) => i.setAttribute('tabindex', '-1'));\n }\n\n // Private methods\n\n get getItems() {\n let items: ValidElement[];\n let opened = this.el.querySelectorAll('nano-nav-item.secondary-open');\n if (opened.length) {\n const ctx = opened[opened.length - 1] as HTMLNanoNavItemElement;\n items = Array.from(ctx.querySelectorAll('nano-nav-item, nano-option'));\n } else {\n items = getDirectChildren(\n this.el,\n 'nano-nav-item, nano-option',\n 'slot'\n ) as ValidElement[];\n }\n return items.filter((el) => !el.disabled && !el.hidden);\n }\n\n get activeItem() {\n const activeElement = getActiveElement();\n return this.getItems.find(\n (i) =>\n i.getAttribute('tabindex') === '0' ||\n i === activeElement ||\n i.classList.contains('has-focus')\n );\n }\n\n get selectedItem() {\n return this.getItems.find((i) => i.selected);\n }\n\n private async setActiveFocusItem(item?: ValidElement, focus = true) {\n const items = this.getItems;\n let activeItem =\n !item || item.disabled ? items.find((i) => i.selected) || items[0] : item;\n\n items\n .filter((i) => i.tagName.toLowerCase() === 'nano-option')\n .map((i: HTMLNanoOptionElement) =>\n i.setAttribute('tabindex', i === activeItem ? '0' : '-1')\n );\n\n if (!focus) return;\n\n if (activeItem) {\n (activeItem as NNI).setFocus\n ? (activeItem as NNI).setFocus()\n : activeItem.focus();\n } else this.menu.focus();\n }\n\n // Event Handlers\n\n @Listen('mousedown', { target: 'body' })\n @Listen('keydown')\n handleBlur(e: KeyboardEvent | MouseEvent) {\n if (!this.hasFocus) return;\n\n const kev = e as KeyboardEvent;\n let found: boolean;\n\n if (kev.key) {\n if (kev.key !== 'Tab') return;\n found =\n getActiveElement() &&\n getActiveElement().closest(this.el.tagName.toLowerCase()) === this.el;\n } else found = !!e.composedPath().find((el) => el === this.el);\n\n if (!found) {\n this.resetActiveItem();\n this._hasFocus = false;\n this.nanoBlur.emit();\n }\n }\n\n private handleFocus = () => {\n this.setActiveFocusItem(this.selectedItem || this.getItems[0]);\n\n this._hasFocus = true;\n this.nanoFocus.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item = target.closest('nano-nav-item');\n\n if (item && !item.disabled) {\n this.nanoSelect.emit(item);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n // When keying through the menu, if the mouse happens to be hovering over a menu item and the menu scrolls, the\n // mouseout/mouseover event will fire causing the selection to be different than what the user expects. This gives\n // us a way to temporarily ignore mouse events while the user is interacting with a keyboard.\n clearTimeout(this.ignoreMouseTimeout);\n this.ignoreMouseTimeout = setTimeout(\n () => (this.ignoreMouseEvents = false),\n 500\n );\n this.ignoreMouseEvents = true;\n\n // Make a selection when pressing enter\n switch (event.key) {\n case ' ':\n if (this.activeItem) this.activeItem.click();\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'PageDown':\n case 'PageUp':\n case 'Home':\n case 'End':\n const items = this.getItems;\n const selectedItem = this.activeItem;\n let index = items.indexOf(selectedItem);\n\n if (items.length) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n index++;\n } else if (event.key === 'ArrowUp') {\n index--;\n } else if (event.key === 'Home' || event.key === 'PageUp') {\n index = 0;\n } else if (event.key === 'End' || event.key === 'PageDown') {\n index = items.length - 1;\n }\n\n if (index < 0) index = items.length - 1;\n if (index > items.length - 1) index = 0;\n\n this.setActiveFocusItem(items[index]);\n if (items[index]) items[index].scrollIntoView({ block: 'nearest' });\n return;\n }\n break;\n }\n\n // Handle type-to-search behavior when non-control characters are entered\n if (event.key === ' ' || /^[a-z0-9]+$/i.test(event.key)) {\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = setTimeout(\n () => (this.typeToSelect = ''),\n 750\n );\n this.typeToSelect += event.key;\n\n const items = this.getItems;\n for (const item of items) {\n const slot = item.shadowRoot.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement;\n const label = getTextContent(slot).toLowerCase().trim();\n if (\n label.substring(0, this.typeToSelect.length) === this.typeToSelect\n ) {\n this.setActiveFocusItem(item);\n break;\n }\n }\n }\n };\n\n private handleMouseOver = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const item =\n target.closest('nano-nav-item') || target.closest('nano-option');\n\n if (item && !this.ignoreMouseEvents) {\n this.setActiveFocusItem(item);\n }\n };\n\n // Component Lifecycle\n\n render() {\n return (\n <Host\n class={{\n legacy: !CANSHADOW,\n }}\n >\n <div\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onMouseOver={this.handleMouseOver}\n onFocus={this.handleFocus}\n aria-label={this.label ? this.label : undefined}\n role={this.type}\n ref={(el) => (this.menu = el)}\n part=\"base\"\n class={{\n menu: true,\n ['menu--' + this.type]: true,\n 'menu--has-focus': this.hasFocus,\n }}\n tabIndex={-1}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -516,7 +516,7 @@ export class NavItem {
516
516
  "references": {
517
517
  "NavItemEventDetail": {
518
518
  "location": "import",
519
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
519
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
520
520
  }
521
521
  }
522
522
  }
@@ -536,7 +536,7 @@ export class NavItem {
536
536
  "references": {
537
537
  "NavItemEventDetail": {
538
538
  "location": "import",
539
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
539
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
540
540
  }
541
541
  }
542
542
  }
@@ -556,7 +556,7 @@ export class NavItem {
556
556
  "references": {
557
557
  "NavItemEventDetail": {
558
558
  "location": "import",
559
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
559
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
560
560
  }
561
561
  }
562
562
  }
@@ -576,7 +576,7 @@ export class NavItem {
576
576
  "references": {
577
577
  "NavItemEventDetail": {
578
578
  "location": "import",
579
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
579
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
580
580
  }
581
581
  }
582
582
  }
@@ -370,7 +370,7 @@ export class Range {
370
370
  "references": {
371
371
  "Color": {
372
372
  "location": "import",
373
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
373
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
374
374
  }
375
375
  }
376
376
  },
@@ -594,7 +594,7 @@ export class Range {
594
594
  "references": {
595
595
  "RangeValue": {
596
596
  "location": "import",
597
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
597
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
598
598
  }
599
599
  }
600
600
  },
@@ -632,7 +632,7 @@ export class Range {
632
632
  "references": {
633
633
  "RangeChangeEventDetail": {
634
634
  "location": "import",
635
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
635
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
636
636
  }
637
637
  }
638
638
  }
@@ -655,7 +655,7 @@ export class Range {
655
655
  "references": {
656
656
  "StyleEventDetail": {
657
657
  "location": "import",
658
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
658
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
659
659
  }
660
660
  }
661
661
  }
@@ -38,6 +38,8 @@ export class ResizeObserve {
38
38
  });
39
39
  if (hasChanged)
40
40
  this.applyChanges(changedStates);
41
+ else if (!this.classNames.includes('is-ready'))
42
+ this.classNames = ['is-ready'];
41
43
  };
42
44
  }
43
45
  dimensionChanged() {
@@ -84,7 +86,7 @@ export class ResizeObserve {
84
86
  });
85
87
  });
86
88
  });
87
- this.classNames = classNames;
89
+ this.classNames = ['is-ready', ...classNames];
88
90
  this.nanoResizeStateChange.emit(this.toSimpleObj(changes));
89
91
  }
90
92
  toSimpleObj(stateMaps) {
@@ -103,7 +105,7 @@ export class ResizeObserve {
103
105
  this.currentHeight = entry.contentRect.height;
104
106
  }
105
107
  });
106
- this.ro.observe(this.el);
108
+ this.ro.observe(this.host);
107
109
  }
108
110
  connectedCallback() {
109
111
  this.assessChanges = debounce(this.assessChanges, 50);
@@ -113,7 +115,7 @@ export class ResizeObserve {
113
115
  return;
114
116
  if (!this.currentWidth || !this.currentHeight) {
115
117
  readTask(() => {
116
- const { width, height } = this.el.getBoundingClientRect();
118
+ const { width, height } = this.host.getBoundingClientRect();
117
119
  this.currentWidth = width;
118
120
  this.currentHeight = height;
119
121
  });
@@ -128,8 +130,7 @@ export class ResizeObserve {
128
130
  return (h(Host, { class: {
129
131
  [this.classNames.join(' ')]: true,
130
132
  } },
131
- h("div", { ref: (div) => (this.el = div) },
132
- h("slot", null))));
133
+ h("slot", null)));
133
134
  }
134
135
  static get is() { return "nano-resize-observe"; }
135
136
  static get encapsulation() { return "shadow"; }
@@ -176,7 +177,7 @@ export class ResizeObserve {
176
177
  "references": {
177
178
  "ResizeStateChangeEventDetail": {
178
179
  "location": "import",
179
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
180
+ "path": "/builds/LL4gZL7K/0/Digital/nano-components/packages/components/src/interface.d.ts"
180
181
  }
181
182
  }
182
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resize-observe.js","sourceRoot":"","sources":["../../../src/components/resize-observe/resize-observe.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Host,\n State,\n Watch,\n ComponentInterface,\n Event,\n EventEmitter,\n readTask,\n} from '@stencil/core';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { debounce } from '../../utils';\nimport type { ResizeStateChangeEventDetail } from '../../interface';\n\ntype ResizeObserverState = { states?: string[]; applied?: boolean };\ninterface StateMaps {\n h: Map<number, ResizeObserverState>;\n w: Map<number, ResizeObserverState>;\n}\n\n/**\n * A Resize-Observer utility component.\n * Takes a string list of sizes and optional class-names. Adds class-names and fires `nanoResizeStateChange` events when the component reaches those sizes.\n * @slot - Main slot for any content.\n */\n@Component({\n tag: 'nano-resize-observe',\n shadow: true,\n styles: `:host { display: inline-block } div { height: 100%; }`,\n})\nexport class ResizeObserve implements ComponentInterface {\n private ro: ResizeObserver;\n private appliedStates: StateMaps;\n private el: HTMLDivElement;\n\n @Element() host: HTMLNanoResizeObserveElement;\n @State() currentWidth: number;\n @State() currentHeight: number;\n @State() classNames: string[] = [];\n\n /** string list of sizes and optional class-names. Adds class-names and fires nanoResizeStateChange events. Upon hitting breakpoints.\n * Format: `states=\"800w, 300h class1 class2\"` */\n @Prop() states: string;\n\n /** A resize break point is switched on or off */\n @Event() nanoResizeStateChange!: EventEmitter<ResizeStateChangeEventDetail>;\n\n @Watch('currentHeight')\n @Watch('currentWidth')\n dimensionChanged() {\n this.assessChanges();\n }\n\n @Watch('states')\n statesChanged() {\n if (!this.states) return;\n if (!this.ro) this.attachRO();\n\n const toBpDir = (bpDir: string) => {\n const bpDirSpl = bpDir.split(/(\\d+)/).filter((bs) => bs.length);\n return { bp: parseInt(bpDirSpl[0]), dir: bpDirSpl[1] };\n };\n this.appliedStates = { h: new Map(), w: new Map() };\n\n // parse state string\n this.states.split(',').map((st) => {\n st = st.trim();\n if (st.includes(' ')) {\n const [key, ...classes] = st.split(' ');\n const { bp, dir } = toBpDir(key);\n this.appliedStates[dir as keyof StateMaps].set(bp, {\n states: classes,\n applied: false,\n });\n } else {\n const { bp, dir } = toBpDir(st);\n this.appliedStates[dir as keyof StateMaps].set(bp, { applied: false });\n }\n });\n }\n\n private assessChanges = () => {\n if (!this.currentWidth && !this.currentHeight) return;\n const changedStates: StateMaps = { h: new Map(), w: new Map() };\n let hasChanged = false;\n\n Object.keys(this.appliedStates).forEach((dimType) => {\n let dim: number;\n if (dimType === 'h') dim = this.currentHeight;\n else dim = this.currentWidth;\n\n this.appliedStates[dimType].forEach(\n (state: ResizeObserverState, bp: number) => {\n if (dim >= bp && state.applied === false) {\n state.applied = true;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n } else if (dim < bp && state.applied === true) {\n state.applied = false;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n }\n }\n );\n });\n if (hasChanged) this.applyChanges(changedStates);\n };\n\n private applyChanges(changes: StateMaps) {\n let classNames = [...this.classNames];\n Object.keys(changes).forEach((dimType: keyof StateMaps) => {\n changes[dimType].forEach((state) => {\n if (!state.states) return;\n state.states.map((st) => {\n if (state.applied) classNames.push(st);\n else classNames = classNames.filter((cl) => cl !== st);\n });\n });\n });\n this.classNames = classNames;\n this.nanoResizeStateChange.emit(this.toSimpleObj(changes));\n }\n\n private toSimpleObj(stateMaps: StateMaps) {\n const retObj = {};\n Object.keys(stateMaps).forEach((dimType: keyof StateMaps) => {\n stateMaps[dimType].forEach((state: ResizeObserverState, bp: number) => {\n retObj[bp + dimType] = state.applied;\n });\n });\n return retObj;\n }\n\n private attachRO() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.currentWidth = entry.contentRect.width;\n this.currentHeight = entry.contentRect.height;\n }\n });\n this.ro.observe(this.el);\n }\n\n connectedCallback() {\n this.assessChanges = debounce(this.assessChanges, 50);\n }\n\n componentDidLoad() {\n if (!this.states) return;\n if (!this.currentWidth || !this.currentHeight) {\n readTask(() => {\n const { width, height } = this.el.getBoundingClientRect();\n this.currentWidth = width;\n this.currentHeight = height;\n });\n }\n this.statesChanged();\n }\n\n disconnectedCallback() {\n if (this.ro) this.ro.disconnect();\n }\n\n render() {\n return (\n <Host\n class={{\n [this.classNames.join(' ')]: true,\n }}\n >\n <div ref={(div) => (this.el = div)}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"resize-observe.js","sourceRoot":"","sources":["../../../src/components/resize-observe/resize-observe.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n Element,\n Host,\n State,\n Watch,\n ComponentInterface,\n Event,\n EventEmitter,\n readTask,\n} from '@stencil/core';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { debounce } from '../../utils';\nimport type { ResizeStateChangeEventDetail } from '../../interface';\n\ntype ResizeObserverState = { states?: string[]; applied?: boolean };\ninterface StateMaps {\n h: Map<number, ResizeObserverState>;\n w: Map<number, ResizeObserverState>;\n}\n\n/**\n * A Resize-Observer utility component.\n * Takes a string list of sizes and optional class-names. Adds class-names and fires `nanoResizeStateChange` events when the component reaches those sizes.\n * @slot - Main slot for any content.\n */\n@Component({\n tag: 'nano-resize-observe',\n shadow: true,\n styles: `:host { display: inline-block } div { height: 100%; }`,\n})\nexport class ResizeObserve implements ComponentInterface {\n private ro: ResizeObserver;\n private appliedStates: StateMaps;\n\n @Element() host: HTMLNanoResizeObserveElement;\n @State() currentWidth: number;\n @State() currentHeight: number;\n @State() classNames: string[] = [];\n\n /** string list of sizes and optional class-names. Adds class-names and fires nanoResizeStateChange events. Upon hitting breakpoints.\n * Format: `states=\"800w, 300h class1 class2\"` */\n @Prop() states: string;\n\n /** A resize break point is switched on or off */\n @Event() nanoResizeStateChange!: EventEmitter<ResizeStateChangeEventDetail>;\n\n @Watch('currentHeight')\n @Watch('currentWidth')\n dimensionChanged() {\n this.assessChanges();\n }\n\n @Watch('states')\n statesChanged() {\n if (!this.states) return;\n if (!this.ro) this.attachRO();\n\n const toBpDir = (bpDir: string) => {\n const bpDirSpl = bpDir.split(/(\\d+)/).filter((bs) => bs.length);\n return { bp: parseInt(bpDirSpl[0]), dir: bpDirSpl[1] };\n };\n this.appliedStates = { h: new Map(), w: new Map() };\n\n // parse state string\n this.states.split(',').map((st) => {\n st = st.trim();\n if (st.includes(' ')) {\n const [key, ...classes] = st.split(' ');\n const { bp, dir } = toBpDir(key);\n this.appliedStates[dir as keyof StateMaps].set(bp, {\n states: classes,\n applied: false,\n });\n } else {\n const { bp, dir } = toBpDir(st);\n this.appliedStates[dir as keyof StateMaps].set(bp, { applied: false });\n }\n });\n }\n\n private assessChanges = () => {\n if (!this.currentWidth && !this.currentHeight) return;\n const changedStates: StateMaps = { h: new Map(), w: new Map() };\n let hasChanged = false;\n\n Object.keys(this.appliedStates).forEach((dimType) => {\n let dim: number;\n if (dimType === 'h') dim = this.currentHeight;\n else dim = this.currentWidth;\n\n this.appliedStates[dimType].forEach(\n (state: ResizeObserverState, bp: number) => {\n if (dim >= bp && state.applied === false) {\n state.applied = true;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n } else if (dim < bp && state.applied === true) {\n state.applied = false;\n changedStates[dimType].set(bp, state);\n hasChanged = true;\n }\n }\n );\n });\n if (hasChanged) this.applyChanges(changedStates);\n else if (!this.classNames.includes('is-ready'))\n this.classNames = ['is-ready'];\n };\n\n private applyChanges(changes: StateMaps) {\n let classNames = [...this.classNames];\n Object.keys(changes).forEach((dimType: keyof StateMaps) => {\n changes[dimType].forEach((state) => {\n if (!state.states) return;\n state.states.map((st) => {\n if (state.applied) classNames.push(st);\n else classNames = classNames.filter((cl) => cl !== st);\n });\n });\n });\n this.classNames = ['is-ready', ...classNames];\n this.nanoResizeStateChange.emit(this.toSimpleObj(changes));\n }\n\n private toSimpleObj(stateMaps: StateMaps) {\n const retObj = {};\n Object.keys(stateMaps).forEach((dimType: keyof StateMaps) => {\n stateMaps[dimType].forEach((state: ResizeObserverState, bp: number) => {\n retObj[bp + dimType] = state.applied;\n });\n });\n return retObj;\n }\n\n private attachRO() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.currentWidth = entry.contentRect.width;\n this.currentHeight = entry.contentRect.height;\n }\n });\n this.ro.observe(this.host);\n }\n\n connectedCallback() {\n this.assessChanges = debounce(this.assessChanges, 50);\n }\n\n componentDidLoad() {\n if (!this.states) return;\n if (!this.currentWidth || !this.currentHeight) {\n readTask(() => {\n const { width, height } = this.host.getBoundingClientRect();\n this.currentWidth = width;\n this.currentHeight = height;\n });\n }\n this.statesChanged();\n }\n\n disconnectedCallback() {\n if (this.ro) this.ro.disconnect();\n }\n\n render() {\n return (\n <Host\n class={{\n [this.classNames.join(' ')]: true,\n }}\n >\n <slot />\n </Host>\n );\n }\n}\n"]}
@@ -14,6 +14,39 @@
14
14
  opacity: 0.5;
15
15
  }
16
16
 
17
+ .form-ctrl {
18
+ min-width: 100%;
19
+ display: block;
20
+ }
21
+ .form-ctrl.has-helper-end {
22
+ display: -webkit-box;
23
+ display: -ms-flexbox;
24
+ display: flex;
25
+ gap: 1rem;
26
+ opacity: 0;
27
+ }
28
+ .form-ctrl.has-helper-end.is-ready {
29
+ opacity: 1;
30
+ }
31
+ .form-ctrl.has-helper-end .form-ctrl__wrapper {
32
+ -webkit-box-flex: 1;
33
+ -ms-flex: 1 1 100%;
34
+ flex: 1 1 100%;
35
+ }
36
+ .form-ctrl.has-helper-end .form-ctrl__helper-end {
37
+ display: none;
38
+ }
39
+ .form-ctrl.has-helper-end.has-enough-width .form-ctrl__helper-end {
40
+ display: block;
41
+ }
42
+ .form-ctrl.has-helper-end.has-enough-width .form-ctrl__helper {
43
+ display: none;
44
+ }
45
+
46
+ .form-ctrl__wrapper {
47
+ display: block;
48
+ }
49
+
17
50
  label,
18
51
  .form-ctrl__more,
19
52
  .form-ctrl__error,
@@ -64,6 +97,14 @@ label.visually-hide,
64
97
  font-size: 0.8em;
65
98
  opacity: 0.7;
66
99
  }
100
+ .form-ctrl__float-label .form-ctrl__label-charcount {
101
+ opacity: 0;
102
+ -webkit-transition: opacity 0.125s ease-in;
103
+ transition: opacity 0.125s ease-in;
104
+ }
105
+ :host(.has-focus) .form-ctrl__float-label .form-ctrl__label-charcount, :host(.has-value) .form-ctrl__float-label .form-ctrl__label-charcount {
106
+ opacity: 1;
107
+ }
67
108
  .form-ctrl__textarea .form-ctrl__float-label {
68
109
  top: 50%;
69
110
  }
@@ -181,6 +222,16 @@ label.visually-hide,
181
222
  opacity: 0;
182
223
  }
183
224
 
225
+ .form-ctrl__helper-end {
226
+ -webkit-box-flex: 1;
227
+ -ms-flex: 1 1 30%;
228
+ flex: 1 1 30%;
229
+ min-width: 150px;
230
+ font-size: var(--invalid-msg-font-size);
231
+ color: var(--help-msg-color);
232
+ font-style: italic;
233
+ }
234
+
184
235
  .form-ctrl__error {
185
236
  opacity: 0;
186
237
  color: var(--invalid-msg-color);
@@ -372,7 +423,7 @@ label.visually-hide,
372
423
 
373
424
  * @prop --padding-top: defaults to var(--nano-input-padding-top, var(--nano-input-padding, 8px));;
374
425
  * @prop --padding-end: defaults to var(--nano-input-padding-end, var(--nano-input-padding, 8px));
375
- * @prop --padding-bottom: defaults to var(--nano-input-padding-bottom, var(--nano-input-padding, 8px));
426
+ * @prop --padding-bottom: defaults to var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));
376
427
  * @prop --padding-start: defaults to var(--nano-input-padding-start, var(--nano-input-padding, 8px));
377
428
 
378
429
  * @prop --color-invalid: defaults to var(--nano-color-danger-rgb, 239, 65, 53);
@@ -415,7 +466,7 @@ label.visually-hide,
415
466
  --placeholder-opacity: var(--nano-input-placeholder-opacity, 0.5);
416
467
  --padding-top: var(--nano-input-padding-top, var(--nano-input-padding, 8px));
417
468
  --padding-end: var(--nano-input-padding-end, var(--nano-input-padding, 8px));
418
- --padding-bottom: var(--nano-input-padding-bottom, var(--nano-input-padding, 8px));
469
+ --padding-bottom: var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));
419
470
  --padding-start: var(--nano-input-padding-start, var(--nano-input-padding, 8px));
420
471
  --color-invalid: var(--nano-color-danger-rgb, 239, 65, 53);
421
472
  --color--focus-rgb:
@@ -453,7 +504,7 @@ label.visually-hide,
453
504
  width: 100%;
454
505
  padding: 0 !important;
455
506
  font-family: var(--nano-font-family, inherit);
456
- display: inline-block;
507
+ display: block;
457
508
  }
458
509
 
459
510
  :host(.nano-color) {
@@ -661,8 +712,8 @@ select {
661
712
  white-space: inherit;
662
713
  color: inherit;
663
714
  pointer-events: none;
664
- line-height: 2.1em;
665
- min-height: 2.1em;
715
+ line-height: 2.5em;
716
+ min-height: 2.5em;
666
717
  }
667
718
  @supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0) {
668
719
  .select__mask {
@@ -714,7 +765,7 @@ select {
714
765
  padding-top: calc(var(--padding-top) / 2);
715
766
  padding-bottom: 0;
716
767
  min-width: 50px;
717
- max-width: 100%;
768
+ width: 100%;
718
769
  max-height: 100%;
719
770
  -webkit-appearance: none;
720
771
  -moz-appearance: none;
@@ -727,7 +778,7 @@ select {
727
778
  -ms-flex: 0;
728
779
  flex: 0;
729
780
  position: relative;
730
- min-height: calc(2.6em - var(--padding-top));
781
+ min-height: calc(2.5em - var(--padding-top));
731
782
  -webkit-box-sizing: border-box;
732
783
  box-sizing: border-box;
733
784
  }
@@ -828,6 +879,9 @@ select {
828
879
  --color: var(--multi-input-value-text-color);
829
880
  }
830
881
 
882
+ .form-ctrl__float-label {
883
+ width: calc(100% - (1em + (var(--padding-start) * 2)));
884
+ }
831
885
  :host(.has-focus.has-multiple) .form-ctrl__float-label {
832
886
  -webkit-transform: translateY(-110%);
833
887
  transform: translateY(-110%);