@lion/ui 0.19.1 → 0.20.0-menu-system.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 (348) hide show
  1. package/collapsible.js +1 -0
  2. package/components/button/src/LionButton.js +4 -0
  3. package/components/button/test-suites/LionButton.suite.js +1 -0
  4. package/components/calendar/src/LionCalendar.js +3 -1
  5. package/components/calendar/test/lion-calendar.test.js +47 -67
  6. package/components/collapsible/src/DisclosureMixin.js +313 -0
  7. package/components/collapsible/test-suites/DisclosureMixin.suite.js +30 -0
  8. package/components/collapsible/types/DisclosureMixinTypes.ts +48 -0
  9. package/components/combobox/test/lion-combobox.test.js +1 -0
  10. package/components/form-core/src/form-group/FormGroupMixin.js +7 -0
  11. package/components/form-core/src/registration/FormRegistrarMixin.js +11 -0
  12. package/components/form-core/test/FormControlMixin.test.js +1 -0
  13. package/components/form-core/test/validate/Validator.test.js +2 -0
  14. package/components/form-core/test-suites/ValidateMixin.suite.js +2 -0
  15. package/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.js +1 -0
  16. package/components/input-datepicker/src/localizeNamespaceLoader.js +1 -0
  17. package/components/input-datepicker/test/lion-input-datepicker.test.js +9 -19
  18. package/components/input-email/src/LionInputEmail.js +0 -2
  19. package/components/input-email/test/lion-input-email.test.js +0 -6
  20. package/components/input-file/src/validators.js +1 -31
  21. package/components/input-file/test/FileValidators.test.js +0 -31
  22. package/components/input-file/translations/bg.js +0 -1
  23. package/components/input-file/translations/cs.js +0 -1
  24. package/components/input-file/translations/de.js +0 -2
  25. package/components/input-file/translations/en.js +0 -1
  26. package/components/input-file/translations/es.js +0 -1
  27. package/components/input-file/translations/fr.js +0 -1
  28. package/components/input-file/translations/hu.js +0 -1
  29. package/components/input-file/translations/id.js +0 -1
  30. package/components/input-file/translations/it.js +0 -1
  31. package/components/input-file/translations/nl.js +0 -1
  32. package/components/input-file/translations/pl.js +0 -1
  33. package/components/input-file/translations/ro.js +0 -1
  34. package/components/input-file/translations/ru.js +0 -1
  35. package/components/input-file/translations/sk.js +0 -1
  36. package/components/input-file/translations/uk.js +0 -1
  37. package/components/input-file/translations/zh.js +0 -1
  38. package/components/input-tel/src/LionInputTel.js +1 -1
  39. package/components/input-tel/test-suites/LionInputTel.suite.js +0 -7
  40. package/components/localize/test/date/formatDate.test.js +1 -0
  41. package/components/menu/CHANGELOG.md +37 -0
  42. package/components/menu/README.md +335 -0
  43. package/components/menu/index.js +2 -0
  44. package/components/menu/lion-menu-overlay.js +3 -0
  45. package/components/menu/lion-menu.js +3 -0
  46. package/components/menu/lion-spinbutton.js +3 -0
  47. package/components/menu/lion-toolbar.js +3 -0
  48. package/components/menu/lion-tree.js +3 -0
  49. package/components/menu/package.json +46 -0
  50. package/components/menu/requirements.temp.md +12 -0
  51. package/components/menu/src/InteractiveListMixin.js +840 -0
  52. package/components/menu/src/LionMenu.js +250 -0
  53. package/components/menu/src/LionMenuHybrid.js +46 -0
  54. package/components/menu/src/LionMenuOverlay.js +155 -0
  55. package/components/menu/src/LionSpinbutton.js +213 -0
  56. package/components/menu/src/LionToolbar.js +94 -0
  57. package/components/menu/src/LionTree.js +52 -0
  58. package/components/menu/src/MoreButtonMenuMixin.js +278 -0
  59. package/components/menu/src/MultiLevelListMixin.js +311 -0
  60. package/components/menu/src/utils/isInView.js +26 -0
  61. package/components/menu/src/utils/listItemInteractions.js +124 -0
  62. package/components/menu/test/InteractiveListMixin.test.js +3 -0
  63. package/components/menu/test/MoreButtonMenuMixin.test.js +4 -0
  64. package/components/menu/test/MultiLevelListMixin.test.js +3 -0
  65. package/components/menu/test/lion-menu-hybrid.test.js +3 -0
  66. package/components/menu/test/lion-menu.test.js +11 -0
  67. package/components/menu/test/lion-toolbar.test.js +8 -0
  68. package/components/menu/test/lion-tree.test.js +7 -0
  69. package/components/menu/test-helpers/mimicKeyPress.js +9 -0
  70. package/components/menu/test-suites/InteractiveListMixin.suite.js +454 -0
  71. package/components/menu/test-suites/LionMenu.suite.js +113 -0
  72. package/components/menu/test-suites/LionMenuHybrid.suite.js +583 -0
  73. package/components/menu/test-suites/MoreButtonMenuMixin.suite.js +372 -0
  74. package/components/menu/test-suites/MultiLevelListMixin.suite.js +303 -0
  75. package/components/menu/types/InteractiveListMixinTypes.d.ts +84 -0
  76. package/components/navigation-bar/README.md +1 -0
  77. package/components/navigation-bar/src/LionNavigationBar.js +439 -0
  78. package/components/navigation-bar/src/types.js +41 -0
  79. package/components/overlays/NEXT.md +49 -0
  80. package/components/overlays/src/OverlayController.js +278 -110
  81. package/components/overlays/src/OverlayMixin.js +58 -11
  82. package/components/overlays/src/OverlaysManager.js +2 -2
  83. package/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js +9 -41
  84. package/components/overlays/src/utils/adopt-styles.js +3 -2
  85. package/components/overlays/src/utils/get-focusable-elements.js +4 -0
  86. package/components/overlays/src/utils/is-equal-config.js +10 -6
  87. package/components/overlays/test/OverlayController.test.js +127 -14
  88. package/components/overlays/test/utils-tests/is-equal-config.test.js +1 -1
  89. package/components/overlays/test/withHoverInteraction.test.js +0 -28
  90. package/components/overlays/test-suites/OverlayMixin.suite.js +8 -8
  91. package/components/overlays/types/ArrowMixinTypes.ts +3 -1
  92. package/components/overlays/types/OverlayConfig.ts +20 -5
  93. package/components/overlays/types/OverlayMixinTypes.ts +2 -0
  94. package/components/select-rich/test/lion-select-rich.test.js +3 -0
  95. package/custom-elements.json +30458 -17734
  96. package/dist-types/components/button/src/LionButton.d.ts +1 -0
  97. package/dist-types/components/button/src/LionButton.d.ts.map +1 -1
  98. package/dist-types/components/button/test-suites/LionButton.suite.d.ts.map +1 -1
  99. package/dist-types/components/calendar/src/LionCalendar.d.ts.map +1 -1
  100. package/dist-types/components/calendar/test/lion-calendar.test.d.ts.map +1 -1
  101. package/dist-types/components/collapsible/src/DisclosureMixin.d.ts +3 -0
  102. package/dist-types/components/collapsible/src/DisclosureMixin.d.ts.map +1 -0
  103. package/dist-types/components/collapsible/test-suites/DisclosureMixin.suite.d.ts +2 -0
  104. package/dist-types/components/collapsible/test-suites/DisclosureMixin.suite.d.ts.map +1 -0
  105. package/dist-types/components/collapsible/types/DisclosureMixinTypes.d.ts +24 -0
  106. package/dist-types/components/collapsible/types/DisclosureMixinTypes.d.ts.map +1 -0
  107. package/dist-types/components/combobox/src/LionCombobox.d.ts +1 -1
  108. package/dist-types/components/dialog/src/LionDialog.d.ts +6 -2
  109. package/dist-types/components/dialog/src/LionDialog.d.ts.map +1 -1
  110. package/dist-types/components/form-core/src/form-group/FormGroupMixin.d.ts.map +1 -1
  111. package/dist-types/components/form-core/src/registration/FormRegistrarMixin.d.ts.map +1 -1
  112. package/dist-types/components/form-core/test-suites/ValidateMixin.suite.d.ts.map +1 -1
  113. package/dist-types/components/form-core/test-suites/ValidateMixinFeedbackPart.suite.d.ts.map +1 -1
  114. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +1 -1
  115. package/dist-types/components/input-datepicker/src/localizeNamespaceLoader.d.ts.map +1 -1
  116. package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts.map +1 -1
  117. package/dist-types/components/input-email/src/LionInputEmail.d.ts.map +1 -1
  118. package/dist-types/components/input-file/src/validators.d.ts +0 -11
  119. package/dist-types/components/input-file/src/validators.d.ts.map +1 -1
  120. package/dist-types/components/input-file/translations/bg-BG.d.ts +0 -1
  121. package/dist-types/components/input-file/translations/bg.d.ts +0 -1
  122. package/dist-types/components/input-file/translations/cs-CZ.d.ts +0 -1
  123. package/dist-types/components/input-file/translations/cs.d.ts +0 -1
  124. package/dist-types/components/input-file/translations/de-DE.d.ts +0 -1
  125. package/dist-types/components/input-file/translations/de.d.ts +0 -1
  126. package/dist-types/components/input-file/translations/en-AU.d.ts +0 -1
  127. package/dist-types/components/input-file/translations/en-GB.d.ts +0 -1
  128. package/dist-types/components/input-file/translations/en-PH.d.ts +0 -1
  129. package/dist-types/components/input-file/translations/en-US.d.ts +0 -1
  130. package/dist-types/components/input-file/translations/en.d.ts +0 -1
  131. package/dist-types/components/input-file/translations/es-ES.d.ts +0 -1
  132. package/dist-types/components/input-file/translations/es.d.ts +0 -1
  133. package/dist-types/components/input-file/translations/fr-BE.d.ts +0 -1
  134. package/dist-types/components/input-file/translations/fr-FR.d.ts +0 -1
  135. package/dist-types/components/input-file/translations/fr.d.ts +0 -1
  136. package/dist-types/components/input-file/translations/hu-HU.d.ts +0 -1
  137. package/dist-types/components/input-file/translations/hu.d.ts +0 -1
  138. package/dist-types/components/input-file/translations/id-ID.d.ts +0 -1
  139. package/dist-types/components/input-file/translations/id.d.ts +0 -1
  140. package/dist-types/components/input-file/translations/it-IT.d.ts +0 -1
  141. package/dist-types/components/input-file/translations/it.d.ts +0 -1
  142. package/dist-types/components/input-file/translations/nl-BE.d.ts +0 -1
  143. package/dist-types/components/input-file/translations/nl-NL.d.ts +0 -1
  144. package/dist-types/components/input-file/translations/nl.d.ts +0 -1
  145. package/dist-types/components/input-file/translations/pl-PL.d.ts +0 -1
  146. package/dist-types/components/input-file/translations/pl.d.ts +0 -1
  147. package/dist-types/components/input-file/translations/ro-RO.d.ts +0 -1
  148. package/dist-types/components/input-file/translations/ro.d.ts +0 -1
  149. package/dist-types/components/input-file/translations/ru-RU.d.ts +0 -1
  150. package/dist-types/components/input-file/translations/ru.d.ts +0 -1
  151. package/dist-types/components/input-file/translations/sk-SK.d.ts +0 -1
  152. package/dist-types/components/input-file/translations/sk.d.ts +0 -1
  153. package/dist-types/components/input-file/translations/uk-UA.d.ts +0 -1
  154. package/dist-types/components/input-file/translations/uk.d.ts +0 -1
  155. package/dist-types/components/input-file/translations/zh-CN.d.ts +0 -1
  156. package/dist-types/components/input-file/translations/zh.d.ts +0 -1
  157. package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
  158. package/dist-types/components/input-tel/test-suites/LionInputTel.suite.d.ts.map +1 -1
  159. package/dist-types/components/menu/index.d.ts +3 -0
  160. package/dist-types/components/menu/index.d.ts.map +1 -0
  161. package/dist-types/components/menu/lion-menu-overlay.d.ts +2 -0
  162. package/dist-types/components/menu/lion-menu-overlay.d.ts.map +1 -0
  163. package/dist-types/components/menu/lion-menu.d.ts +2 -0
  164. package/dist-types/components/menu/lion-menu.d.ts.map +1 -0
  165. package/dist-types/components/menu/lion-spinbutton.d.ts +2 -0
  166. package/dist-types/components/menu/lion-spinbutton.d.ts.map +1 -0
  167. package/dist-types/components/menu/lion-toolbar.d.ts +2 -0
  168. package/dist-types/components/menu/lion-toolbar.d.ts.map +1 -0
  169. package/dist-types/components/menu/lion-tree.d.ts +2 -0
  170. package/dist-types/components/menu/lion-tree.d.ts.map +1 -0
  171. package/dist-types/components/menu/src/InteractiveListMixin.d.ts +617 -0
  172. package/dist-types/components/menu/src/InteractiveListMixin.d.ts.map +1 -0
  173. package/dist-types/components/menu/src/LionMenu.d.ts +635 -0
  174. package/dist-types/components/menu/src/LionMenu.d.ts.map +1 -0
  175. package/dist-types/components/menu/src/LionMenuHybrid.d.ts +19 -0
  176. package/dist-types/components/menu/src/LionMenuHybrid.d.ts.map +1 -0
  177. package/dist-types/components/menu/src/LionMenuOverlay.d.ts +1015 -0
  178. package/dist-types/components/menu/src/LionMenuOverlay.d.ts.map +1 -0
  179. package/dist-types/components/menu/src/LionSpinbutton.d.ts +58 -0
  180. package/dist-types/components/menu/src/LionSpinbutton.d.ts.map +1 -0
  181. package/dist-types/components/menu/src/LionToolbar.d.ts +8 -0
  182. package/dist-types/components/menu/src/LionToolbar.d.ts.map +1 -0
  183. package/dist-types/components/menu/src/LionTree.d.ts +447 -0
  184. package/dist-types/components/menu/src/LionTree.d.ts.map +1 -0
  185. package/dist-types/components/menu/src/MoreButtonMenuMixin.d.ts +39 -0
  186. package/dist-types/components/menu/src/MoreButtonMenuMixin.d.ts.map +1 -0
  187. package/dist-types/components/menu/src/MultiLevelListMixin.d.ts +503 -0
  188. package/dist-types/components/menu/src/MultiLevelListMixin.d.ts.map +1 -0
  189. package/dist-types/components/menu/src/utils/isInView.d.ts +9 -0
  190. package/dist-types/components/menu/src/utils/isInView.d.ts.map +1 -0
  191. package/dist-types/components/menu/src/utils/listItemInteractions.d.ts +48 -0
  192. package/dist-types/components/menu/src/utils/listItemInteractions.d.ts.map +1 -0
  193. package/dist-types/components/menu/test/InteractiveListMixin.test.d.ts +2 -0
  194. package/dist-types/components/menu/test/InteractiveListMixin.test.d.ts.map +1 -0
  195. package/dist-types/components/menu/test/MoreButtonMenuMixin.test.d.ts +2 -0
  196. package/dist-types/components/menu/test/MoreButtonMenuMixin.test.d.ts.map +1 -0
  197. package/dist-types/components/menu/test/MultiLevelListMixin.test.d.ts +2 -0
  198. package/dist-types/components/menu/test/MultiLevelListMixin.test.d.ts.map +1 -0
  199. package/dist-types/components/menu/test/lion-menu-hybrid.test.d.ts +2 -0
  200. package/dist-types/components/menu/test/lion-menu-hybrid.test.d.ts.map +1 -0
  201. package/dist-types/components/menu/test/lion-menu.test.d.ts +2 -0
  202. package/dist-types/components/menu/test/lion-menu.test.d.ts.map +1 -0
  203. package/dist-types/components/menu/test/lion-toolbar.test.d.ts +2 -0
  204. package/dist-types/components/menu/test/lion-toolbar.test.d.ts.map +1 -0
  205. package/dist-types/components/menu/test/lion-tree.test.d.ts +2 -0
  206. package/dist-types/components/menu/test/lion-tree.test.d.ts.map +1 -0
  207. package/dist-types/components/menu/test-helpers/mimicKeyPress.d.ts +7 -0
  208. package/dist-types/components/menu/test-helpers/mimicKeyPress.d.ts.map +1 -0
  209. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts +14 -0
  210. package/dist-types/components/menu/test-suites/InteractiveListMixin.suite.d.ts.map +1 -0
  211. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts +9 -0
  212. package/dist-types/components/menu/test-suites/LionMenu.suite.d.ts.map +1 -0
  213. package/dist-types/components/menu/test-suites/LionMenuHybrid.suite.d.ts +5 -0
  214. package/dist-types/components/menu/test-suites/LionMenuHybrid.suite.d.ts.map +1 -0
  215. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts +14 -0
  216. package/dist-types/components/menu/test-suites/MoreButtonMenuMixin.suite.d.ts.map +1 -0
  217. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts +11 -0
  218. package/dist-types/components/menu/test-suites/MultiLevelListMixin.suite.d.ts.map +1 -0
  219. package/dist-types/components/navigation-bar/src/LionNavigationBar.d.ts +238 -0
  220. package/dist-types/components/navigation-bar/src/LionNavigationBar.d.ts.map +1 -0
  221. package/dist-types/components/navigation-bar/src/types.d.ts +85 -0
  222. package/dist-types/components/navigation-bar/src/types.d.ts.map +1 -0
  223. package/dist-types/components/overlays/src/OverlayController.d.ts +24 -12
  224. package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
  225. package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
  226. package/dist-types/components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.d.ts.map +1 -1
  227. package/dist-types/components/overlays/src/utils/get-focusable-elements.d.ts.map +1 -1
  228. package/dist-types/components/overlays/src/utils/is-equal-config.d.ts.map +1 -1
  229. package/dist-types/components/overlays/types/ArrowMixinTypes.d.ts.map +1 -1
  230. package/dist-types/components/overlays/types/OverlayConfig.d.ts +12 -2
  231. package/dist-types/components/overlays/types/OverlayConfig.d.ts.map +1 -1
  232. package/dist-types/components/overlays/types/OverlayMixinTypes.d.ts +1 -0
  233. package/dist-types/components/overlays/types/OverlayMixinTypes.d.ts.map +1 -1
  234. package/dist-types/components/select-rich/src/LionSelectRich.d.ts +11 -3
  235. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  236. package/dist-types/components/tooltip/src/LionTooltip.d.ts +1 -1
  237. package/dist-types/exports/define/lion-item.d.ts +2 -0
  238. package/dist-types/exports/define/lion-item.d.ts.map +1 -0
  239. package/dist-types/exports/define/lion-menu-overlay.d.ts +2 -0
  240. package/dist-types/exports/define/lion-menu-overlay.d.ts.map +1 -0
  241. package/dist-types/exports/define/lion-menu.d.ts +2 -0
  242. package/dist-types/exports/define/lion-menu.d.ts.map +1 -0
  243. package/dist-types/exports/define/lion-navigation-bar.d.ts +2 -0
  244. package/dist-types/exports/define/lion-navigation-bar.d.ts.map +1 -0
  245. package/dist-types/exports/define/lion-toolbar.d.ts +2 -0
  246. package/dist-types/exports/define/lion-toolbar.d.ts.map +1 -0
  247. package/dist-types/exports/define/lion-tree.d.ts +2 -0
  248. package/dist-types/exports/define/lion-tree.d.ts.map +1 -0
  249. package/dist-types/exports/input-file.d.ts +1 -1
  250. package/dist-types/exports/menu-test-suites.d.ts +4 -0
  251. package/dist-types/exports/menu-test-suites.d.ts.map +1 -0
  252. package/dist-types/exports/menu.d.ts +7 -0
  253. package/dist-types/exports/menu.d.ts.map +1 -0
  254. package/dist-types/exports/navigation-bar.d.ts +2 -0
  255. package/dist-types/exports/navigation-bar.d.ts.map +1 -0
  256. package/dist-types/exports/overlays.d.ts +3 -0
  257. package/dist-types/exports/overlays.d.ts.map +1 -1
  258. package/dist-types/tsconfig.tsbuildinfo +1 -1
  259. package/docs/components/checkbox-group/overview.md +2 -2
  260. package/docs/components/collapsible/overview.md +1 -1
  261. package/docs/components/combobox/api-table.md +21 -8
  262. package/docs/components/combobox/overview.md +1 -1
  263. package/docs/components/combobox/use-cases.md +1 -1
  264. package/docs/components/dialog/api-table.md +31 -6
  265. package/docs/components/dialog/overview.md +1 -1
  266. package/docs/components/fieldset/overview.md +5 -5
  267. package/docs/components/form/overview.md +3 -3
  268. package/docs/components/form/use-cases.md +2 -2
  269. package/docs/components/icon/use-cases.md +1 -1
  270. package/docs/components/input/overview.md +1 -1
  271. package/docs/components/input-amount/overview.md +3 -3
  272. package/docs/components/input-date/overview.md +3 -3
  273. package/docs/components/input-datepicker/api-table.md +21 -4
  274. package/docs/components/input-datepicker/overview.md +5 -5
  275. package/docs/components/input-email/api-table.md +1 -1
  276. package/docs/components/input-email/overview.md +2 -2
  277. package/docs/components/input-file/overview.md +1 -1
  278. package/docs/components/input-file/use-cases.md +0 -18
  279. package/docs/components/input-iban/overview.md +2 -2
  280. package/docs/components/input-range/overview.md +2 -2
  281. package/docs/components/input-stepper/overview.md +1 -1
  282. package/docs/components/input-tel/api-table.md +1 -1
  283. package/docs/components/input-tel/overview.md +1 -1
  284. package/docs/components/input-tel/use-cases.md +6 -6
  285. package/docs/components/input-tel-dropdown/api-table.md +1 -1
  286. package/docs/components/input-tel-dropdown/overview.md +1 -1
  287. package/docs/components/listbox/use-cases.md +1 -1
  288. package/docs/components/menu/api-table.md +460 -0
  289. package/docs/components/menu/applyMenuDemoStyles.js +173 -0
  290. package/docs/components/menu/extensions.md +262 -0
  291. package/docs/components/menu/index.md +13 -0
  292. package/docs/components/menu/overview.md +422 -0
  293. package/docs/components/menu/use-cases.md +77 -0
  294. package/docs/components/radio-group/overview.md +3 -3
  295. package/docs/components/select/use-cases.md +1 -1
  296. package/docs/components/select-rich/api-table.md +21 -5
  297. package/docs/components/select-rich/use-cases.md +2 -2
  298. package/docs/components/tabs/examples.md +1 -1
  299. package/docs/components/tooltip/api-table.md +36 -11
  300. package/docs/components/tooltip/use-cases.md +1 -34
  301. package/docs/fundamentals/index.md +4 -4
  302. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  303. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  304. package/docs/fundamentals/rationales/accessibility.md +1 -1
  305. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  306. package/docs/fundamentals/systems/core/overview.md +1 -1
  307. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  308. package/docs/fundamentals/systems/form/model-value.md +1 -1
  309. package/docs/fundamentals/systems/form/overview.md +28 -28
  310. package/docs/fundamentals/systems/form/validate.md +2 -2
  311. package/docs/fundamentals/systems/localize/overview.md +4 -4
  312. package/docs/fundamentals/systems/overlays/api-table.md +36 -34
  313. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  314. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  315. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  316. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  317. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  318. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  319. package/docs/guides/how-to/create-a-form.md +4 -4
  320. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  321. package/docs/guides/how-to/index.md +1 -1
  322. package/docs/guides/index.md +8 -8
  323. package/docs/guides/principles/index.md +5 -5
  324. package/docs/guides/principles/styling.md +1 -1
  325. package/exports/collapsible.js +1 -0
  326. package/exports/define/lion-item.js +3 -0
  327. package/exports/define/lion-menu-overlay.js +3 -0
  328. package/exports/define/lion-menu.js +3 -0
  329. package/exports/define/lion-navigation-bar.js +3 -0
  330. package/exports/define/lion-toolbar.js +3 -0
  331. package/exports/define/lion-tree.js +3 -0
  332. package/exports/input-file.js +1 -5
  333. package/exports/menu-test-suites.js +4 -0
  334. package/exports/menu.js +7 -0
  335. package/exports/navigation-bar.js +1 -0
  336. package/exports/overlays.js +6 -0
  337. package/input-file.js +1 -5
  338. package/menu-test-suites.js +4 -0
  339. package/menu.js +7 -0
  340. package/navigation-bar.js +1 -0
  341. package/overlays.js +6 -0
  342. package/package.json +2 -2
  343. package/components/calendar/test-suites/LionCalendar.suite.js +0 -79
  344. package/components/input-datepicker/test-suites/LionInputDatepicker.suite.js +0 -35
  345. package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts +0 -5
  346. package/dist-types/components/calendar/test-suites/LionCalendar.suite.d.ts.map +0 -1
  347. package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts +0 -7
  348. package/dist-types/components/input-datepicker/test-suites/LionInputDatepicker.suite.d.ts.map +0 -1
@@ -19,7 +19,7 @@ Manages their position on the screen relative to other elements, including other
19
19
 
20
20
  Its purpose is to make it easy to use our Overlay System declaratively. It can be easily extended where needed, to override event listeners and more.
21
21
 
22
- See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/components/tooltip/overview.md) for example Web Component implementations using the Overlay System.
22
+ See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/components/tooltip/overview.md) for example Web Component implementations using the Overlay System.
23
23
 
24
24
  ## Features
25
25
 
@@ -31,9 +31,9 @@ See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](htt
31
31
  - lion-overlay web component:
32
32
  - Show content when clicking the invoker
33
33
  - Have a `.config` object to set or update the OverlayController's configuration
34
- - [**OverlaysManager**](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/systems/overlays/use-cases.md#overlaysmanager), a global repository keeping track of all different types of overlays
35
- - [**OverlayController**](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/systems/overlays/use-cases.md#overlaycontroller), a single controller class for handling overlays
36
- - [**OverlayMixin**](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/systems/overlays/use-cases.md#overlaymixin), a mixin that can be used to create webcomponents that use the OverlayController under the hood
34
+ - [**OverlaysManager**](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/systems/overlays/use-cases.md#overlaysmanager), a global repository keeping track of all different types of overlays
35
+ - [**OverlayController**](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/systems/overlays/use-cases.md#overlaycontroller), a single controller class for handling overlays
36
+ - [**OverlayMixin**](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/systems/overlays/use-cases.md#overlaymixin), a mixin that can be used to create webcomponents that use the OverlayController under the hood
37
37
 
38
38
  Usually you will use `lion-dialog` (or `lion-tooltip` if this makes more sense).
39
39
 
@@ -123,4 +123,4 @@ class MyOverlayComponent extends OverlayMixin(LitElement) {
123
123
 
124
124
  ## Rationales
125
125
 
126
- Please check the [system rationals](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/systems/overlays/rationale.md) folder, where we go more in-depth.
126
+ Please check the [system rationals](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/systems/overlays/rationale.md) folder, where we go more in-depth.
@@ -34,7 +34,7 @@ The overlay system allows to create different types of overlays like dialogs, to
34
34
  It's designed to be highly flexible, while still delivering sensible defaults.
35
35
  On top of this, the system was built having accessibility in mind.
36
36
 
37
- For a detailed rationale, please consult [Rationale](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/systems/overlays/rationale.md).
37
+ For a detailed rationale, please consult [Rationale](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/systems/overlays/rationale.md).
38
38
 
39
39
  ```js preview-story
40
40
  export const main = () => html`
@@ -82,7 +82,7 @@ Global refers to overlays where the content is positioned in a global root node
82
82
 
83
83
  Overlays can be configured in many ways to suit your needs. We go in-depth into each option in the Overlay System - Configuration chapter.
84
84
 
85
- We also export a few [preset configuration objects](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/systems/overlays/configuration.md).
85
+ We also export a few [preset configuration objects](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/systems/overlays/configuration.md).
86
86
 
87
87
  - withModalDialogConfig
88
88
  - withDropdownConfig
@@ -22,7 +22,7 @@ Therefore, they may not have the same quality standards as our other packages.
22
22
 
23
23
  | Package | Description |
24
24
  | -------------------------------------- | ----------------------- |
25
- | [sb-action-logger](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/tools/helpers/action-logger.md) | Storybook action logger |
25
+ | [sb-action-logger](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/tools/helpers/action-logger.md) | Storybook action logger |
26
26
 
27
27
  ## Installation
28
28
 
@@ -22,7 +22,7 @@ Primarily useful if two major version of a package with a singleton is used.
22
22
  npm i --save singleton-manager
23
23
  ```
24
24
 
25
- ⚠️ You need to make SURE that only ONE version of `singleton-manager` is installed. For how see [Non Goals](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/tools/singleton-manager/#non-goals).
25
+ ⚠️ You need to make SURE that only ONE version of `singleton-manager` is installed. For how see [Non Goals](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/tools/singleton-manager/#non-goals).
26
26
 
27
27
  ### Example Singleton Users
28
28
 
@@ -172,7 +172,7 @@ Steps to reproduce:
172
172
  1. Page A click on block
173
173
  2. Page B => "Blocked: false" (even when hitting the refresh button)
174
174
 
175
- ➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/tools/singleton-manager/example-fail/index.md). <br>
175
+ ➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/tools/singleton-manager/example-fail/index.md). <br>
176
176
  ➡️ See [the code](https://github.com/ing-bank/lion/tree/master/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js).
177
177
 
178
178
  ---
@@ -215,7 +215,7 @@ See it in action
215
215
  npm run start:singleton
216
216
  ```
217
217
 
218
- ➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/tools/singleton-manager/example-success/index.md). <br>
218
+ ➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/tools/singleton-manager/example-success/index.md). <br>
219
219
  ➡️ See [the code](https://github.com/ing-bank/lion/tree/master/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js).
220
220
 
221
221
  ---
@@ -256,7 +256,7 @@ See it in action
256
256
  npm run start:singleton-complex
257
257
  ```
258
258
 
259
- ➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/tools/singleton-manager/example-complex/index.md). <br>
259
+ ➡️ See [it on the example page](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/tools/singleton-manager/example-complex/index.md). <br>
260
260
  ➡️ See [the code](https://github.com/ing-bank/lion/tree/master/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js).
261
261
 
262
262
  ---
@@ -87,9 +87,9 @@ if (!customElements.get('dummy-slider')) {
87
87
  }
88
88
  ```
89
89
 
90
- Custom Fields can be created in just a few steps. All you need is an interaction element (like for instance a slider, a listbox or a combobox) and connect it to the [LionField](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/components/input/overview.md).
90
+ Custom Fields can be created in just a few steps. All you need is an interaction element (like for instance a slider, a listbox or a combobox) and connect it to the [LionField](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/components/input/overview.md).
91
91
 
92
- > In case you want to extend a native element, follow [Extend a native Input](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/how-to/extend-a-native-input.md).
92
+ > In case you want to extend a native element, follow [Extend a native Input](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/how-to/extend-a-native-input.md).
93
93
 
94
94
  ## A) an interaction element
95
95
 
@@ -138,7 +138,7 @@ export const createAnInteractiveElement = () => {
138
138
  ## B) your LionField extension
139
139
 
140
140
  Now we want to integrate the slider in our form system to enrich the user interface, get
141
- validation support and all other [benefits of LionField](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/components/input/overview.md).
141
+ validation support and all other [benefits of LionField](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/components/input/overview.md).
142
142
  We start by creating a component `<slider-field>` that extends from `LionField`.
143
143
  Then we follow the steps below:
144
144
 
@@ -151,7 +151,7 @@ Then we follow the steps below:
151
151
 
152
152
  The `user-input-changed` event is listened to by the FormatMixin: it should be regarded as the
153
153
  equivalent of the `input` event of the platform, but for custom built interaction elements.
154
- You now synchronized [modelValue](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/systems/form/model-value.md), which can be regarded as
154
+ You now synchronized [modelValue](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/systems/form/model-value.md), which can be regarded as
155
155
  the glue to integrate all other functionality like parsing/formatting/serializing, validating,
156
156
  tracking interaction states etc.
157
157
 
@@ -159,7 +159,7 @@ Then we follow the steps below:
159
159
  > because those properties will lose their reactivity (they won't be considered anymore in the
160
160
  > update loop of LitElement).
161
161
  > Whenever a .modelValue/.formattedValue/.serializedValue needs to be computed, use
162
- > [parser/formatter/serializer](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/systems/form/formatting-and-parsing.md)
162
+ > [parser/formatter/serializer](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/systems/form/formatting-and-parsing.md)
163
163
 
164
164
  Implement with the following code:
165
165
 
@@ -39,7 +39,7 @@ Large or complex forms might need to be split up into multiple files. This compo
39
39
 
40
40
  In the latter case: make sure that your components don't have a shadow root. This can be achieved by rendering into Light DOM. The form registration mechanism relies on light dom by design: as soon as you do start to use shadow roots, you will notice that your form components won't register themselves anymore to their parents.
41
41
 
42
- > Today, rendering to light dom is the only way to [stay accessible](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/fundamentals/rationales/accessibility.md#shadow-roots-and-accessibility).
42
+ > Today, rendering to light dom is the only way to [stay accessible](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/fundamentals/rationales/accessibility.md#shadow-roots-and-accessibility).
43
43
 
44
44
  ### Example of a component that renders into Light DOM
45
45
 
@@ -86,7 +86,7 @@ Extending form components is not recommended for Application Developers: it shou
86
86
  This team will add the styling and default configuration needed to make it fit the particular Design System.
87
87
 
88
88
  With the toolbox provided by the team that creates your Design System, you should be able to build all your forms. Only if you have a really good reason, look into
89
- [exceptional cases](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/how-to/#exceptional-cases) below.
89
+ [exceptional cases](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/how-to/#exceptional-cases) below.
90
90
 
91
91
  ### Exceptional cases
92
92
 
@@ -94,8 +94,8 @@ If the form component you need is still missing, you have two options:
94
94
 
95
95
  - is it a generic primitive that should be part of Lion? Request it in [Lion discussions](https://github.com/ing-bank/lion/discussions)
96
96
  - is it a non generic component that is unique to your app?
97
- - follow [create a custom field](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/how-to/create-a-custom-field.md)
98
- - follow [extend a native input](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/how-to/extend-a-native-input.md)
97
+ - follow [create a custom field](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/how-to/create-a-custom-field.md)
98
+ - follow [extend a native input](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/how-to/extend-a-native-input.md)
99
99
 
100
100
  It's also possible to extend other components, like LionListbox or LionCombobox. You need to be aware that you're building on top of protected apis.
101
101
  Changing/overriding functionality is only recommended if the source code in `form-core` is fully understood.
@@ -23,9 +23,9 @@ import '../../fundamentals/systems/form/assets/h-output.js';
23
23
  loadDefaultFeedbackMessages();
24
24
  ```
25
25
 
26
- Input fields can be created by extending [LionInput](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/components/input/overview.md).
26
+ Input fields can be created by extending [LionInput](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/components/input/overview.md).
27
27
 
28
- > In case you want to wrap a custom form element, follow [Create a custom Field](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/how-to/create-a-custom-field.md).
28
+ > In case you want to wrap a custom form element, follow [Create a custom Field](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/how-to/create-a-custom-field.md).
29
29
 
30
30
  For this tutorial, we create an input that wraps native `input[type=datetime-local]`.
31
31
  This is as simple as adding a type:
@@ -22,4 +22,4 @@ Whether you're just getting started with Lion, building your first form, extendi
22
22
  - Build custom form fields tailored to your needs
23
23
  - Follow proven patterns and best practices used by the Lion community
24
24
 
25
- If you can't find what you're looking for, check out our [Fundamentals](../../fundamentals/) section for deeper conceptual knowledge, or visit our [Components](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/components) documentation for detailed API references.
25
+ If you can't find what you're looking for, check out our [Fundamentals](../../fundamentals/) section for deeper conceptual knowledge, or visit our [Components](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/components) documentation for detailed API references.
@@ -22,9 +22,9 @@ Developers consuming our web components inside an application (not extending the
22
22
  `Application Developers` are only allowed to interact with `public` properties and methods.
23
23
  Can be abbreviated as `AD`. Sometimes also called `Consuming Developer`.
24
24
 
25
- - [Definitions and Terms](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/definitions-and-terms.md)
26
- - [Styling](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/styling.md)
27
- - [Scoped Elements](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/scoped-elements.md)
25
+ - [Definitions and Terms](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/definitions-and-terms.md)
26
+ - [Styling](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/styling.md)
27
+ - [Scoped Elements](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/scoped-elements.md)
28
28
 
29
29
  ## Extending Developer
30
30
 
@@ -32,13 +32,13 @@ Developers extending our web components, for instance: `class MaterialInput exte
32
32
 
33
33
  Especially for subclassers we have some extra documentation:
34
34
 
35
- - [Subclasser APIs](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/subclasser-apis.md)
36
- - [Extend documentation](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/blog/extending-documentation.md)
35
+ - [Subclasser APIs](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/subclasser-apis.md)
36
+ - [Extend documentation](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/blog/extending-documentation.md)
37
37
 
38
38
  ## How To
39
39
 
40
40
  Next to that we have some specific "How To" documentations.
41
41
 
42
- - [Get started](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/how-to/get-started.md)
43
- - [Create a custom field](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/how-to/create-a-custom-field.md)
44
- - [Extend a native input](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/how-to/extend-a-native-input.md)
42
+ - [Get started](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/how-to/get-started.md)
43
+ - [Create a custom field](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/how-to/create-a-custom-field.md)
44
+ - [Extend a native input](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/how-to/extend-a-native-input.md)
@@ -22,9 +22,9 @@ Developers consuming our web components inside an application (not extending the
22
22
  `Application Developers` are only allowed to interact with `public` properties and methods.
23
23
  Can be abbreviated as `AD`. Sometimes also called `Consuming Developer`.
24
24
 
25
- - [Definitions and Terms](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/definitions-and-terms.md)
26
- - [Styling](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/styling.md)
27
- - [Scoped Elements](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/scoped-elements.md)
25
+ - [Definitions and Terms](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/definitions-and-terms.md)
26
+ - [Styling](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/styling.md)
27
+ - [Scoped Elements](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/scoped-elements.md)
28
28
 
29
29
  ## Extending Developer
30
30
 
@@ -32,5 +32,5 @@ Developers extending our web components, for instance: `class MaterialInput exte
32
32
 
33
33
  Especially for subclassers we have some extra documentation:
34
34
 
35
- - [Subclasser APIs](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/subclasser-apis.md)
36
- - [Extend documentation](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/blog/extending-documentation.md)
35
+ - [Subclasser APIs](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/subclasser-apis.md)
36
+ - [Extend documentation](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/blog/extending-documentation.md)
@@ -30,7 +30,7 @@ Examples for both categories can be found below:
30
30
  - Accessibility examples:
31
31
  - Content (for instance a caption in a table) can be `visually hidden`: it will be
32
32
  readable by screen readers, but invisible for end users.
33
- - When an html table is used, we allow [subclassers](https://github.com/ing-bank/lion/blob/cd55aa9f7e8788a564bf2574fd907a5cb88503dd/docs/guides/principles/subclasser-apis.md) to override the display property (`table-cell`) to `flex`. By putting the proper accessible roles (`role="cell"`) in the markup, we guarantee our markup stays accessible.
33
+ - When an html table is used, we allow [subclassers](https://github.com/ing-bank/lion/blob/1241fa4b6c829b69fe5a03627fc26455f87663bb/docs/guides/principles/subclasser-apis.md) to override the display property (`table-cell`) to `flex`. By putting the proper accessible roles (`role="cell"`) in the markup, we guarantee our markup stays accessible.
34
34
 
35
35
  Although Lion components try to stay as unbiased as possible with regard to styling, defaults will be needed. In these cases we try to follow the platform as much as possible. If the platform doesn't provide defaults, the largest common denominator across existing UI systems is taken as a lead.
36
36
 
@@ -1 +1,2 @@
1
1
  export { LionCollapsible } from '../components/collapsible/src/LionCollapsible.js';
2
+ // export { DisclosureMixin } from '../components/collapsible/src/DisclosureMixin.js';
@@ -0,0 +1,3 @@
1
+ import { LionItem } from '../menu.js';
2
+
3
+ customElements.define('lion-item', LionItem);
@@ -0,0 +1,3 @@
1
+ import { LionMenuOverlay } from '../menu.js';
2
+
3
+ customElements.define('lion-menu-overlay', LionMenuOverlay);
@@ -0,0 +1,3 @@
1
+ import { LionMenu } from '../menu.js';
2
+
3
+ customElements.define('lion-menu', LionMenu);
@@ -0,0 +1,3 @@
1
+ import { LionNavigationBar } from '../navigation-bar.js';
2
+
3
+ customElements.define('lion-navigation-bar', LionNavigationBar);
@@ -0,0 +1,3 @@
1
+ import { LionToolbar } from '../menu.js';
2
+
3
+ customElements.define('lion-toolbar', LionToolbar);
@@ -0,0 +1,3 @@
1
+ import { LionTree } from '../menu.js';
2
+
3
+ customElements.define('lion-tree', LionTree);
@@ -1,7 +1,3 @@
1
1
  export { LionInputFile } from '../components/input-file/src/LionInputFile.js';
2
2
  export { LionSelectedFileList } from '../components/input-file/src/LionSelectedFileList.js';
3
- export {
4
- IsAcceptedFile,
5
- DuplicateFileNames,
6
- MaxFileCount,
7
- } from '../components/input-file/src/validators.js';
3
+ export { IsAcceptedFile, DuplicateFileNames } from '../components/input-file/src/validators.js';
@@ -0,0 +1,4 @@
1
+ /* eslint-disable import/no-relative-packages */
2
+ export { runInteractiveListMixinSuite } from '../components/menu/test-suites/InteractiveListMixin.suite.js';
3
+ export { runMultiLevelListMixinSuite } from '../components/menu/test-suites/MultiLevelListMixin.suite.js';
4
+ export { runLionMenuHybridSuite } from '../components/menu/test-suites/LionMenuHybrid.suite.js';
@@ -0,0 +1,7 @@
1
+ /* eslint-disable import/no-relative-packages */
2
+ export { LionMenu } from '../components/menu/src/LionMenu.js';
3
+ export { LionMenuOverlay } from '../components/menu/src/LionMenuOverlay.js';
4
+ export { LionTree } from '../components/menu/src/LionTree.js';
5
+ export { LionToolbar } from '../components/menu/src/LionToolbar.js';
6
+ export { LionItem, LionMenuitem } from '../components/menu/src/InteractiveListMixin.js';
7
+ export { LionMenuHybrid } from '../components/menu/src/LionMenuHybrid.js';
@@ -0,0 +1 @@
1
+ export { LionNavigationBar } from '../components/navigation-bar/src/LionNavigationBar.js';
@@ -9,6 +9,8 @@ export { withModalDialogConfig } from '../components/overlays/src/configurations
9
9
  export { withDropdownConfig } from '../components/overlays/src/configurations/withDropdownConfig.js';
10
10
  export { withTooltipConfig } from '../components/overlays/src/configurations/withTooltipConfig.js';
11
11
  export { withPopoverConfig } from '../components/overlays/src/configurations/withPopoverConfig.js';
12
+ export { withClickInteraction } from '../components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js';
13
+ export { withHoverInteraction } from '../components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js';
12
14
 
13
15
  export { deepContains } from '../components/overlays/src/utils/deep-contains.js';
14
16
  // re-export via this entrypoint for backwards compatibility
@@ -20,3 +22,7 @@ export {
20
22
  } from '../components/overlays/src/utils/inert-siblings.js';
21
23
 
22
24
  export { overlays } from '../components/overlays/src/singleton.js';
25
+
26
+ /**
27
+ * @typedef {import('../components/overlays/types/OverlayConfig.js').OverlayConfig} OverlayConfig
28
+ */
package/input-file.js CHANGED
@@ -1,7 +1,3 @@
1
1
  export { LionInputFile } from './components/input-file/src/LionInputFile.js';
2
2
  export { LionSelectedFileList } from './components/input-file/src/LionSelectedFileList.js';
3
- export {
4
- IsAcceptedFile,
5
- DuplicateFileNames,
6
- MaxFileCount,
7
- } from './components/input-file/src/validators.js';
3
+ export { IsAcceptedFile, DuplicateFileNames } from './components/input-file/src/validators.js';
@@ -0,0 +1,4 @@
1
+ /* eslint-disable import/no-relative-packages */
2
+ export { runInteractiveListMixinSuite } from './components/menu/test-suites/InteractiveListMixin.suite.js';
3
+ export { runMultiLevelListMixinSuite } from './components/menu/test-suites/MultiLevelListMixin.suite.js';
4
+ export { runLionMenuHybridSuite } from './components/menu/test-suites/LionMenuHybrid.suite.js';
package/menu.js ADDED
@@ -0,0 +1,7 @@
1
+ /* eslint-disable import/no-relative-packages */
2
+ export { LionMenu } from './components/menu/src/LionMenu.js';
3
+ export { LionMenuOverlay } from './components/menu/src/LionMenuOverlay.js';
4
+ export { LionTree } from './components/menu/src/LionTree.js';
5
+ export { LionToolbar } from './components/menu/src/LionToolbar.js';
6
+ export { LionItem, LionMenuitem } from './components/menu/src/InteractiveListMixin.js';
7
+ export { LionMenuHybrid } from './components/menu/src/LionMenuHybrid.js';
@@ -0,0 +1 @@
1
+ export { LionNavigationBar } from './components/navigation-bar/src/LionNavigationBar.js';
package/overlays.js CHANGED
@@ -7,6 +7,8 @@ export { withModalDialogConfig } from './components/overlays/src/configurations/
7
7
  export { withDropdownConfig } from './components/overlays/src/configurations/withDropdownConfig.js';
8
8
  export { withTooltipConfig } from './components/overlays/src/configurations/withTooltipConfig.js';
9
9
  export { withPopoverConfig } from './components/overlays/src/configurations/withPopoverConfig.js';
10
+ export { withClickInteraction } from './components/overlays/src/configurations/visibility-trigger-partials/withClickInteraction.js';
11
+ export { withHoverInteraction } from './components/overlays/src/configurations/visibility-trigger-partials/withHoverInteraction.js';
10
12
  export { deepContains } from './components/overlays/src/utils/deep-contains.js';
11
13
  // re-export via this entrypoint for backwards compatibility
12
14
  export { getDeepActiveElement } from './components/core/src/getDeepActiveElement.js';
@@ -16,3 +18,7 @@ export {
16
18
  setSiblingsInert,
17
19
  } from './components/overlays/src/utils/inert-siblings.js';
18
20
  export { overlays } from './components/overlays/src/singleton.js';
21
+
22
+ /**
23
+ * @typedef {import('../components/overlays/types/OverlayConfig.js').OverlayConfig} OverlayConfig
24
+ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lion/ui",
3
- "version": "0.19.1",
3
+ "version": "0.20.0-menu-system.0",
4
4
  "description": "A package of extendable web components",
5
5
  "license": "MIT",
6
6
  "author": "ing-bank",
@@ -68,7 +68,7 @@
68
68
  "@open-wc/scoped-elements": "^3.0.6",
69
69
  "@popperjs/core": "^2.11.8",
70
70
  "autosize": "^6.0.0",
71
- "awesome-phonenumber": "^7.8.0",
71
+ "awesome-phonenumber": "^6.4.0",
72
72
  "ibantools": "^4.3.9",
73
73
  "lit": "^3.1.2",
74
74
  "singleton-manager": "^1.8.0"
@@ -1,79 +0,0 @@
1
- import { LionCalendar } from '@lion/ui/calendar.js';
2
- import { expect, html, fixture, waitUntil, unsafeStatic, defineCE } from '@open-wc/testing';
3
- import sinon from 'sinon';
4
- import '@lion/ui/define/lion-calendar.js';
5
- import { sendKeys } from '@web/test-runner-commands';
6
-
7
- export function runCalendarSuite({ klass = LionCalendar } = {}) {
8
- const tagStringCalendar = defineCE(class extends klass {});
9
- const tagCalendar = unsafeStatic(tagStringCalendar);
10
-
11
- it('should fire keyboard press events on keyup and not on keydown', async () => {
12
- /**
13
- * This test covers a corner case where `keydown`, `keyup`, and `focus` events happen across different elements.
14
- *
15
- * Setup:
16
- * - There is a dialog invoker button that has a keyup handler.
17
- * - The dialog invoker button gets focused (important!) and then opens the dialog on click.
18
- * - The dialog contains lion-calendar.
19
- * - When a date is selected, the dialog closes.
20
- *
21
- * Expected behavior:
22
- * - The dialog invoker button's `keyup` handler should not run when a date is selected in the calendar.
23
- *
24
- * The problem:
25
- * - Pressing Enter on a date is handled by `keydown` inside `lion-calendar`.
26
- * - The dialog then closes on `user-selected-date-changed` event.
27
- * - The browser automatically returns focus to the previously focused element (the dialog invoker button).
28
- * - The keyup event then fires on the now-focused dialog invoker button, triggering its keyup
29
- * handler unexpectedly.
30
- *
31
- * Fix being verified:
32
- * - Fire `user-selected-date-changed` on `keyup` instead of `keydown`.
33
- * - This prevents the dialog invoker button from receiving and handling that `keyup` after the dialog closes.
34
- */
35
-
36
- /** @type {HTMLElement} */
37
- let el;
38
- const keyUpSpy = sinon.spy();
39
- const getDialogEl = () => el.querySelector('dialog');
40
- const openDialogButtonClickHandler = () => getDialogEl()?.showModal();
41
- const userSelectedDateChangedHandler = () => getDialogEl()?.close();
42
-
43
- el = await fixture(html`
44
- <div>
45
- <button
46
- @keyup="${keyUpSpy}"
47
- @click="${openDialogButtonClickHandler}"
48
- >
49
- Open Dialog
50
- </button>
51
- <dialog>
52
- <${tagCalendar}
53
- .selectedDate="${new Date('2000/10/12')}"
54
- @user-selected-date-changed="${userSelectedDateChangedHandler}"
55
- >
56
- </${tagCalendar}>
57
- </dialog>
58
- </div>
59
- `);
60
-
61
- const openDialogButton = el.querySelector('button');
62
- const calendarEl = /** @type {LionCalendar} */ (el.querySelector(tagStringCalendar));
63
- await calendarEl?.updateComplete;
64
-
65
- openDialogButton?.focus();
66
- openDialogButton?.click();
67
- /**
68
- * @returns {HTMLElement | null | undefined}
69
- */
70
- const getSelectedDateEl = () =>
71
- calendarEl?.shadowRoot?.querySelector('.calendar__day-button[selected]');
72
- await waitUntil(getSelectedDateEl);
73
- getSelectedDateEl()?.focus();
74
- await sendKeys({ press: 'ArrowLeft' });
75
- await sendKeys({ press: 'Enter' });
76
-
77
- expect(keyUpSpy.called).to.equal(false);
78
- });
79
- }
@@ -1,35 +0,0 @@
1
- import { expect, html, fixture, waitUntil, unsafeStatic } from '@open-wc/testing';
2
- import { sendKeys } from '@web/test-runner-commands';
3
-
4
- /** @typedef {import('@lion/ui/input-datepicker.js').LionInputDatepicker} LionInputDatepicker */
5
-
6
- export function runDatepickerSuite({
7
- datepickerTagName = 'lion-input-datepicker',
8
- calendarTagName = 'lion-calendar',
9
- } = {}) {
10
- const tag = unsafeStatic(datepickerTagName);
11
-
12
- it('should not reopen the datepicker popup when the date is selected by keyboard', async () => {
13
- /** @type {LionInputDatepicker} */
14
- const el = await fixture(html`<${tag} .modelValue="${new Date('2018/05/30')}"></${tag}>`);
15
- await el.updateComplete;
16
-
17
- // @ts-ignore
18
- const openDatepickerButton = el._invokerNode;
19
- openDatepickerButton?.focus();
20
- openDatepickerButton?.click();
21
- /**
22
- * @returns {HTMLElement | null | undefined}
23
- */
24
- const getSelectedDateEl = () =>
25
- el?.shadowRoot
26
- ?.querySelector(calendarTagName)
27
- ?.shadowRoot?.querySelector('.calendar__day-button[selected]');
28
- await waitUntil(getSelectedDateEl);
29
- getSelectedDateEl()?.focus();
30
- await sendKeys({ press: 'ArrowLeft' });
31
- await sendKeys({ press: 'Enter' });
32
-
33
- expect(el.opened).to.be.false;
34
- });
35
- }
@@ -1,5 +0,0 @@
1
- export function runCalendarSuite({ klass }?: {
2
- klass?: typeof LionCalendar | undefined;
3
- }): void;
4
- import { LionCalendar } from "../../../exports/calendar.js";
5
- //# sourceMappingURL=LionCalendar.suite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LionCalendar.suite.d.ts","sourceRoot":"","sources":["../../../../components/calendar/test-suites/LionCalendar.suite.js"],"names":[],"mappings":"AAMA;;SAwEC"}
@@ -1,7 +0,0 @@
1
- /** @typedef {import('@lion/ui/input-datepicker.js').LionInputDatepicker} LionInputDatepicker */
2
- export function runDatepickerSuite({ datepickerTagName, calendarTagName, }?: {
3
- datepickerTagName?: string | undefined;
4
- calendarTagName?: string | undefined;
5
- }): void;
6
- export type LionInputDatepicker = import('@lion/ui/input-datepicker.js').LionInputDatepicker;
7
- //# sourceMappingURL=LionInputDatepicker.suite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LionInputDatepicker.suite.d.ts","sourceRoot":"","sources":["../../../../components/input-datepicker/test-suites/LionInputDatepicker.suite.js"],"names":[],"mappings":"AAGA,gGAAgG;AAEhG;;;SA6BC;kCA/Ba,OAAO,8BAA8B,EAAE,mBAAmB"}