mtrl 0.3.8 → 0.4.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.
- package/dist/LICENSE +21 -0
- package/dist/README.md +324 -0
- package/dist/components/badge/api.d.ts +48 -0
- package/{src/components/badge/badge.ts → dist/components/badge/badge.d.ts} +14 -57
- package/dist/components/badge/config.d.ts +79 -0
- package/dist/components/badge/constants.d.ts +35 -0
- package/dist/components/badge/features.d.ts +36 -0
- package/dist/components/badge/index.d.ts +8 -0
- package/dist/components/badge/types.d.ts +256 -0
- package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +12 -0
- package/dist/components/bottom-app-bar/config.d.ts +16 -0
- package/dist/components/bottom-app-bar/constants.d.ts +22 -0
- package/{src/components/bottom-app-bar/index.ts → dist/components/bottom-app-bar/index.d.ts} +0 -9
- package/dist/components/bottom-app-bar/types.d.ts +96 -0
- package/dist/components/button/api.d.ts +47 -0
- package/dist/components/button/button.d.ts +25 -0
- package/dist/components/button/config.d.ts +59 -0
- package/dist/components/button/constants.d.ts +43 -0
- package/dist/components/button/index.d.ts +6 -0
- package/dist/components/button/types.d.ts +265 -0
- package/dist/components/card/api.d.ts +11 -0
- package/{src/components/card/card.ts → dist/components/card/card.d.ts} +10 -58
- package/dist/components/card/config.d.ts +105 -0
- package/dist/components/card/constants.d.ts +85 -0
- package/dist/components/card/content.d.ts +92 -0
- package/dist/components/card/features.d.ts +131 -0
- package/{src/components/card/index.ts → dist/components/card/index.d.ts} +13 -74
- package/dist/components/card/types.d.ts +471 -0
- package/dist/components/carousel/api.d.ts +33 -0
- package/dist/components/carousel/carousel.d.ts +75 -0
- package/dist/components/carousel/config.d.ts +45 -0
- package/dist/components/carousel/constants.d.ts +165 -0
- package/dist/components/carousel/features/drag.d.ts +8 -0
- package/{src/components/carousel/features/index.ts → dist/components/carousel/features/index.d.ts} +1 -4
- package/dist/components/carousel/features/slides.d.ts +8 -0
- package/{src/components/carousel/index.ts → dist/components/carousel/index.d.ts} +10 -29
- package/dist/components/carousel/types.d.ts +276 -0
- package/dist/components/checkbox/api.d.ts +7 -0
- package/dist/components/checkbox/checkbox.d.ts +65 -0
- package/dist/components/checkbox/config.d.ts +44 -0
- package/dist/components/checkbox/constants.d.ts +63 -0
- package/{src/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +8 -25
- package/dist/components/checkbox/types.d.ts +242 -0
- package/dist/components/chips/api.d.ts +49 -0
- package/dist/components/chips/chip/api.d.ts +23 -0
- package/dist/components/chips/chip/chip.d.ts +8 -0
- package/dist/components/chips/chip/config.d.ts +57 -0
- package/dist/components/chips/chip/constants.d.ts +38 -0
- package/dist/components/chips/chip/index.d.ts +2 -0
- package/dist/components/chips/chip/types.d.ts +11 -0
- package/dist/components/chips/chips.d.ts +17 -0
- package/dist/components/chips/config.d.ts +67 -0
- package/dist/components/chips/constants.d.ts +46 -0
- package/dist/components/chips/features/chip-items.d.ts +8 -0
- package/dist/components/chips/features/container.d.ts +8 -0
- package/dist/components/chips/features/controller.d.ts +9 -0
- package/{src/components/chips/features/index.ts → dist/components/chips/features/index.d.ts} +1 -2
- package/dist/components/chips/features/label.d.ts +8 -0
- package/dist/components/chips/index.d.ts +4 -0
- package/dist/components/chips/schema.d.ts +34 -0
- package/dist/components/chips/types.d.ts +398 -0
- package/dist/components/datepicker/api.d.ts +9 -0
- package/dist/components/datepicker/config.d.ts +79 -0
- package/dist/components/datepicker/constants.d.ts +97 -0
- package/dist/components/datepicker/datepicker.d.ts +8 -0
- package/dist/components/datepicker/index.d.ts +3 -0
- package/dist/components/datepicker/render.d.ts +43 -0
- package/dist/components/datepicker/types.d.ts +321 -0
- package/dist/components/datepicker/utils.d.ts +84 -0
- package/dist/components/dialog/api.d.ts +59 -0
- package/dist/components/dialog/config.d.ts +91 -0
- package/dist/components/dialog/constants.d.ts +116 -0
- package/{src/components/dialog/dialog.ts → dist/components/dialog/dialog.d.ts} +16 -69
- package/dist/components/dialog/features.d.ts +37 -0
- package/dist/components/dialog/index.d.ts +14 -0
- package/dist/components/dialog/types.d.ts +483 -0
- package/dist/components/divider/config.d.ts +143 -0
- package/dist/components/divider/constants.d.ts +45 -0
- package/{src/components/divider/divider.ts → dist/components/divider/divider.d.ts} +9 -37
- package/dist/components/divider/features.d.ts +50 -0
- package/{src/components/divider/index.ts → dist/components/divider/index.d.ts} +6 -12
- package/dist/components/divider/types.d.ts +124 -0
- package/dist/components/extended-fab/api.d.ts +83 -0
- package/dist/components/extended-fab/config.d.ts +75 -0
- package/dist/components/extended-fab/constants.d.ts +82 -0
- package/dist/components/extended-fab/extended-fab.d.ts +61 -0
- package/{src/components/extended-fab/index.ts → dist/components/extended-fab/index.d.ts} +6 -15
- package/dist/components/extended-fab/types.d.ts +703 -0
- package/dist/components/fab/api.d.ts +64 -0
- package/dist/components/fab/config.d.ts +71 -0
- package/dist/components/fab/constants.d.ts +75 -0
- package/{src/components/fab/fab.ts → dist/components/fab/fab.d.ts} +10 -46
- package/{src/components/fab/index.ts → dist/components/fab/index.d.ts} +6 -15
- package/dist/components/fab/types.d.ts +577 -0
- package/dist/components/index.d.ts +76 -0
- package/dist/components/list/api.d.ts +106 -0
- package/dist/components/list/config.d.ts +61 -0
- package/dist/components/list/constants.d.ts +76 -0
- package/dist/components/list/features/index.d.ts +2 -0
- package/dist/components/list/features/listmanager.d.ts +9 -0
- package/dist/components/list/features/selection.d.ts +9 -0
- package/dist/components/list/index.d.ts +12 -0
- package/dist/components/list/list.d.ts +11 -0
- package/dist/components/list/types.d.ts +294 -0
- package/dist/components/menu/api.d.ts +58 -0
- package/dist/components/menu/config.d.ts +78 -0
- package/dist/components/menu/constants.d.ts +106 -0
- package/dist/components/menu/features/controller.d.ts +10 -0
- package/dist/components/menu/features/index.d.ts +6 -0
- package/dist/components/menu/features/keyboard.d.ts +26 -0
- package/dist/components/menu/features/opener.d.ts +10 -0
- package/dist/components/menu/features/position.d.ts +18 -0
- package/dist/components/menu/features/submenu.d.ts +10 -0
- package/{src/components/menu/index.ts → dist/components/menu/index.d.ts} +11 -27
- package/dist/components/menu/menu.d.ts +29 -0
- package/dist/components/menu/types.d.ts +338 -0
- package/dist/components/navigation/api.d.ts +8 -0
- package/dist/components/navigation/config.d.ts +34 -0
- package/dist/components/navigation/constants.d.ts +137 -0
- package/dist/components/navigation/features/controller.d.ts +30 -0
- package/dist/components/navigation/features/items.d.ts +32 -0
- package/dist/components/navigation/index.d.ts +3 -0
- package/dist/components/navigation/nav-item.d.ts +30 -0
- package/dist/components/navigation/navigation.d.ts +8 -0
- package/dist/components/navigation/system/core.d.ts +72 -0
- package/dist/components/navigation/system/events.d.ts +35 -0
- package/dist/components/navigation/system/index.d.ts +10 -0
- package/dist/components/navigation/system/mobile.d.ts +52 -0
- package/dist/components/navigation/system/state.d.ts +22 -0
- package/dist/components/navigation/system/types.d.ts +305 -0
- package/dist/components/navigation/types.d.ts +216 -0
- package/dist/components/progress/api.d.ts +46 -0
- package/dist/components/progress/config.d.ts +72 -0
- package/dist/components/progress/constants.d.ts +139 -0
- package/dist/components/progress/features/canvas.d.ts +32 -0
- package/dist/components/progress/features/circular.d.ts +9 -0
- package/dist/components/progress/features/index.d.ts +8 -0
- package/dist/components/progress/features/linear.d.ts +9 -0
- package/dist/components/progress/features/resize-observer.d.ts +5 -0
- package/dist/components/progress/features/state.d.ts +38 -0
- package/dist/components/progress/features.d.ts +40 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/progress.d.ts +24 -0
- package/dist/components/progress/types.d.ts +272 -0
- package/dist/components/radios/api.d.ts +37 -0
- package/dist/components/radios/config.d.ts +42 -0
- package/dist/components/radios/constants.d.ts +114 -0
- package/dist/components/radios/index.d.ts +3 -0
- package/dist/components/radios/radio.d.ts +8 -0
- package/dist/components/radios/radios.d.ts +8 -0
- package/dist/components/radios/types.d.ts +189 -0
- package/dist/components/search/api.d.ts +55 -0
- package/dist/components/search/config.d.ts +73 -0
- package/dist/components/search/constants.d.ts +128 -0
- package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
- package/dist/components/search/features/search.d.ts +7 -0
- package/dist/components/search/features/states.d.ts +8 -0
- package/dist/components/search/features/structure.d.ts +7 -0
- package/dist/components/search/index.d.ts +3 -0
- package/dist/components/search/search.d.ts +8 -0
- package/dist/components/search/types.d.ts +132 -0
- package/dist/components/segmented-button/config.d.ts +65 -0
- package/dist/components/segmented-button/constants.d.ts +85 -0
- package/dist/components/segmented-button/index.d.ts +4 -0
- package/dist/components/segmented-button/segment.d.ts +15 -0
- package/dist/components/segmented-button/segmented-button.d.ts +49 -0
- package/dist/components/segmented-button/types.d.ts +257 -0
- package/dist/components/select/api.d.ts +8 -0
- package/dist/components/select/config.d.ts +18 -0
- package/dist/components/select/constants.d.ts +113 -0
- package/dist/components/select/features.d.ts +13 -0
- package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
- package/dist/components/select/select.d.ts +36 -0
- package/dist/components/select/types.d.ts +302 -0
- package/dist/components/sheet/api.d.ts +37 -0
- package/dist/components/sheet/config.d.ts +42 -0
- package/dist/components/sheet/constants.d.ts +136 -0
- package/dist/components/sheet/features/content.d.ts +6 -0
- package/dist/components/sheet/features/gestures.d.ts +6 -0
- package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
- package/dist/components/sheet/features/position.d.ts +7 -0
- package/dist/components/sheet/features/state.d.ts +6 -0
- package/dist/components/sheet/features/title.d.ts +6 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/sheet.d.ts +8 -0
- package/dist/components/sheet/types.d.ts +250 -0
- package/dist/components/slider/api.d.ts +57 -0
- package/dist/components/slider/config.d.ts +75 -0
- package/dist/components/slider/constants.d.ts +138 -0
- package/dist/components/slider/features/controller.d.ts +9 -0
- package/dist/components/slider/features/handlers.d.ts +25 -0
- package/dist/components/slider/features/index.d.ts +3 -0
- package/dist/components/slider/features/range.d.ts +8 -0
- package/dist/components/slider/features/states.d.ts +9 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/schema.d.ts +108 -0
- package/dist/components/slider/slider.d.ts +18 -0
- package/dist/components/slider/types.d.ts +170 -0
- package/dist/components/snackbar/api.d.ts +7 -0
- package/dist/components/snackbar/config.d.ts +55 -0
- package/dist/components/snackbar/constants.d.ts +88 -0
- package/dist/components/snackbar/features.d.ts +13 -0
- package/dist/components/snackbar/index.d.ts +3 -0
- package/dist/components/snackbar/position.d.ts +15 -0
- package/dist/components/snackbar/queue.d.ts +7 -0
- package/dist/components/snackbar/snackbar.d.ts +8 -0
- package/dist/components/snackbar/types.d.ts +172 -0
- package/dist/components/switch/api.d.ts +7 -0
- package/dist/components/switch/config.d.ts +34 -0
- package/dist/components/switch/constants.d.ts +88 -0
- package/dist/components/switch/features.d.ts +59 -0
- package/dist/components/switch/index.d.ts +4 -0
- package/dist/components/switch/switch.d.ts +8 -0
- package/dist/components/switch/types.d.ts +131 -0
- package/dist/components/tabs/api.d.ts +52 -0
- package/dist/components/tabs/config.d.ts +39 -0
- package/dist/components/tabs/constants.d.ts +142 -0
- package/dist/components/tabs/features.d.ts +133 -0
- package/dist/components/tabs/index.d.ts +11 -0
- package/dist/components/tabs/indicator.d.ts +49 -0
- package/dist/components/tabs/responsive.d.ts +38 -0
- package/dist/components/tabs/scroll-indicators.d.ts +18 -0
- package/dist/components/tabs/state.d.ts +53 -0
- package/dist/components/tabs/tab-api.d.ts +43 -0
- package/dist/components/tabs/tab.d.ts +7 -0
- package/dist/components/tabs/tabs.d.ts +27 -0
- package/dist/components/tabs/types.d.ts +390 -0
- package/dist/components/tabs/utils.d.ts +17 -0
- package/dist/components/textfield/api.d.ts +8 -0
- package/dist/components/textfield/config.d.ts +34 -0
- package/dist/components/textfield/constants.d.ts +148 -0
- package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
- package/dist/components/textfield/features/leading-icon.d.ts +55 -0
- package/dist/components/textfield/features/placement.d.ts +28 -0
- package/dist/components/textfield/features/prefix-text.d.ts +54 -0
- package/dist/components/textfield/features/suffix-text.d.ts +54 -0
- package/dist/components/textfield/features/supporting-text.d.ts +59 -0
- package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
- package/dist/components/textfield/index.d.ts +3 -0
- package/dist/components/textfield/textfield.d.ts +36 -0
- package/dist/components/textfield/types.d.ts +217 -0
- package/dist/components/timepicker/api.d.ts +24 -0
- package/dist/components/timepicker/clockdial.d.ts +34 -0
- package/dist/components/timepicker/config.d.ts +75 -0
- package/dist/components/timepicker/constants.d.ts +266 -0
- package/dist/components/timepicker/index.d.ts +4 -0
- package/dist/components/timepicker/render.d.ts +9 -0
- package/dist/components/timepicker/timepicker.d.ts +8 -0
- package/dist/components/timepicker/types.d.ts +284 -0
- package/dist/components/timepicker/utils.d.ts +74 -0
- package/dist/components/tooltip/api.d.ts +18 -0
- package/dist/components/tooltip/config.d.ts +38 -0
- package/dist/components/tooltip/constants.d.ts +108 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/tooltip.d.ts +8 -0
- package/dist/components/tooltip/types.d.ts +188 -0
- package/dist/components/top-app-bar/config.d.ts +16 -0
- package/dist/components/top-app-bar/constants.d.ts +74 -0
- package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
- package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
- package/dist/components/top-app-bar/types.d.ts +118 -0
- package/dist/constants.d.ts +30 -0
- package/dist/core/canvas/index.d.ts +5 -0
- package/dist/core/canvas/resize.d.ts +14 -0
- package/dist/core/collection/adapters/base.d.ts +47 -0
- package/dist/core/collection/adapters/route.d.ts +149 -0
- package/dist/core/collection/collection.d.ts +131 -0
- package/dist/core/collection/index.d.ts +10 -0
- package/dist/core/collection/list-manager/config.d.ts +29 -0
- package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
- package/dist/core/collection/list-manager/index.d.ts +61 -0
- package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
- package/dist/core/collection/list-manager/renderer.d.ts +31 -0
- package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
- package/dist/core/collection/list-manager/state.d.ts +60 -0
- package/dist/core/collection/list-manager/types.d.ts +361 -0
- package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
- package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
- package/dist/core/compose/base.d.ts +31 -0
- package/dist/core/compose/component.d.ts +61 -0
- package/dist/core/compose/features/badge.d.ts +43 -0
- package/dist/core/compose/features/checkable.d.ts +59 -0
- package/dist/core/compose/features/constants.d.ts +45 -0
- package/dist/core/compose/features/debounce.d.ts +84 -0
- package/dist/core/compose/features/disabled.d.ts +47 -0
- package/dist/core/compose/features/events.d.ts +37 -0
- package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
- package/dist/core/compose/features/gestures/pan.d.ts +108 -0
- package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
- package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
- package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
- package/dist/core/compose/features/gestures/tap.d.ts +79 -0
- package/dist/core/compose/features/gestures.d.ts +86 -0
- package/dist/core/compose/features/icon.d.ts +71 -0
- package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
- package/dist/core/compose/features/input.d.ts +71 -0
- package/dist/core/compose/features/lifecycle.d.ts +61 -0
- package/dist/core/compose/features/position.d.ts +51 -0
- package/dist/core/compose/features/ripple.d.ts +61 -0
- package/dist/core/compose/features/size.d.ts +17 -0
- package/dist/core/compose/features/style.d.ts +16 -0
- package/dist/core/compose/features/text.d.ts +63 -0
- package/dist/core/compose/features/textinput.d.ts +93 -0
- package/dist/core/compose/features/textlabel.d.ts +57 -0
- package/dist/core/compose/features/throttle.d.ts +75 -0
- package/dist/core/compose/features/track.d.ts +42 -0
- package/dist/core/compose/features/variant.d.ts +17 -0
- package/dist/core/compose/features/withEvents.d.ts +45 -0
- package/dist/core/compose/index.d.ts +17 -0
- package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
- package/dist/core/compose/utils/type-guards.d.ts +27 -0
- package/dist/core/composition/features/dom.d.ts +19 -0
- package/dist/core/composition/features/icon.d.ts +45 -0
- package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
- package/dist/core/composition/features/label.d.ts +49 -0
- package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
- package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
- package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +35 -83
- package/dist/core/config.d.ts +130 -0
- package/dist/core/dom/attributes.d.ts +20 -0
- package/dist/core/dom/classes.d.ts +52 -0
- package/dist/core/dom/create.d.ts +154 -0
- package/dist/core/dom/events.d.ts +69 -0
- package/dist/core/dom/index.d.ts +6 -0
- package/dist/core/dom/utils.d.ts +42 -0
- package/dist/core/gestures/index.d.ts +12 -0
- package/dist/core/gestures/longpress.d.ts +23 -0
- package/dist/core/gestures/manager.d.ts +14 -0
- package/dist/core/gestures/pan.d.ts +12 -0
- package/dist/core/gestures/pinch.d.ts +14 -0
- package/dist/core/gestures/rotate.d.ts +14 -0
- package/dist/core/gestures/swipe.d.ts +20 -0
- package/dist/core/gestures/tap.d.ts +12 -0
- package/dist/core/gestures/types.d.ts +320 -0
- package/dist/core/gestures/utils.d.ts +57 -0
- package/dist/core/index.d.ts +29 -0
- package/dist/core/layout/array.d.ts +15 -0
- package/dist/core/layout/config.d.ts +32 -0
- package/dist/core/layout/create.d.ts +14 -0
- package/dist/core/layout/index.d.ts +13 -0
- package/dist/core/layout/jsx.d.ts +13 -0
- package/dist/core/layout/object.d.ts +14 -0
- package/dist/core/layout/processor.d.ts +28 -0
- package/dist/core/layout/result.d.ts +12 -0
- package/dist/core/layout/template.d.ts +12 -0
- package/dist/core/layout/types.d.ts +137 -0
- package/dist/core/layout/utils.d.ts +38 -0
- package/dist/core/state/disabled.d.ts +32 -0
- package/dist/core/state/emitter.d.ts +40 -0
- package/dist/core/state/events.d.ts +36 -0
- package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
- package/dist/core/state/lifecycle.d.ts +57 -0
- package/dist/core/state/store.d.ts +82 -0
- package/dist/core/utils/background.d.ts +40 -0
- package/dist/core/utils/index.d.ts +18 -0
- package/dist/core/utils/mobile.d.ts +54 -0
- package/dist/core/utils/object.d.ts +13 -0
- package/dist/core/utils/performance.d.ts +79 -0
- package/dist/core/utils/theme.d.ts +38 -0
- package/dist/core/utils/validate.d.ts +73 -0
- package/dist/index.cjs +64 -0
- package/dist/index.cjs.map +291 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +53 -14854
- package/dist/index.js.map +291 -0
- package/dist/package.json +39 -0
- package/dist/styles.css +7 -0
- package/package.json +23 -4
- package/.env +0 -15
- package/.typedocignore +0 -11
- package/CONTRIBUTING.md +0 -218
- package/DOCS.md +0 -153
- package/TESTING.md +0 -214
- package/git-user-stats.js +0 -545
- package/index.ts +0 -10
- package/src/components/badge/api.ts +0 -313
- package/src/components/badge/config.ts +0 -153
- package/src/components/badge/features.ts +0 -194
- package/src/components/badge/index.ts +0 -90
- package/src/components/badge/types.ts +0 -279
- package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
- package/src/components/bottom-app-bar/config.ts +0 -29
- package/src/components/bottom-app-bar/types.ts +0 -114
- package/src/components/button/api.ts +0 -172
- package/src/components/button/button.ts +0 -112
- package/src/components/button/config.ts +0 -96
- package/src/components/button/index.ts +0 -37
- package/src/components/button/types.ts +0 -290
- package/src/components/card/api.ts +0 -222
- package/src/components/card/config.ts +0 -304
- package/src/components/card/content.ts +0 -343
- package/src/components/card/features.ts +0 -407
- package/src/components/card/types.ts +0 -497
- package/src/components/carousel/api.ts +0 -147
- package/src/components/carousel/carousel.ts +0 -242
- package/src/components/carousel/config.ts +0 -91
- package/src/components/carousel/constants.ts +0 -181
- package/src/components/carousel/features/drag.ts +0 -388
- package/src/components/carousel/features/slides.ts +0 -682
- package/src/components/carousel/types.ts +0 -327
- package/src/components/checkbox/api.ts +0 -82
- package/src/components/checkbox/checkbox.ts +0 -142
- package/src/components/checkbox/config.ts +0 -89
- package/src/components/checkbox/types.ts +0 -342
- package/src/components/chips/api.ts +0 -194
- package/src/components/chips/chip/api.ts +0 -233
- package/src/components/chips/chip/chip.ts +0 -131
- package/src/components/chips/chip/config.ts +0 -91
- package/src/components/chips/chip/index.ts +0 -3
- package/src/components/chips/chips.md +0 -481
- package/src/components/chips/chips.ts +0 -75
- package/src/components/chips/config.ts +0 -109
- package/src/components/chips/constants.ts +0 -61
- package/src/components/chips/features/chip-items.ts +0 -33
- package/src/components/chips/features/container.ts +0 -77
- package/src/components/chips/features/controller.ts +0 -448
- package/src/components/chips/features/label.ts +0 -108
- package/src/components/chips/index.ts +0 -11
- package/src/components/chips/schema.ts +0 -61
- package/src/components/chips/types.ts +0 -469
- package/src/components/datepicker/api.ts +0 -265
- package/src/components/datepicker/config.ts +0 -141
- package/src/components/datepicker/datepicker.ts +0 -341
- package/src/components/datepicker/index.ts +0 -12
- package/src/components/datepicker/render.ts +0 -450
- package/src/components/datepicker/types.ts +0 -397
- package/src/components/datepicker/utils.ts +0 -289
- package/src/components/dialog/api.ts +0 -317
- package/src/components/dialog/config.ts +0 -116
- package/src/components/dialog/features.ts +0 -907
- package/src/components/dialog/index.ts +0 -141
- package/src/components/dialog/types.ts +0 -553
- package/src/components/divider/config.ts +0 -165
- package/src/components/divider/features.ts +0 -233
- package/src/components/divider/types.ts +0 -132
- package/src/components/extended-fab/api.ts +0 -193
- package/src/components/extended-fab/config.ts +0 -140
- package/src/components/extended-fab/extended-fab.ts +0 -153
- package/src/components/extended-fab/types.ts +0 -749
- package/src/components/fab/api.ts +0 -137
- package/src/components/fab/config.ts +0 -121
- package/src/components/fab/types.ts +0 -615
- package/src/components/list/api.ts +0 -82
- package/src/components/list/config.ts +0 -63
- package/src/components/list/features.ts +0 -229
- package/src/components/list/index.ts +0 -67
- package/src/components/list/list-item.ts +0 -163
- package/src/components/list/list.ts +0 -108
- package/src/components/list/types.ts +0 -396
- package/src/components/list/utils.ts +0 -98
- package/src/components/menu/api.ts +0 -230
- package/src/components/menu/config.ts +0 -127
- package/src/components/menu/features/anchor.ts +0 -394
- package/src/components/menu/features/controller.ts +0 -1423
- package/src/components/menu/features/index.ts +0 -13
- package/src/components/menu/features/position.ts +0 -353
- package/src/components/menu/menu.ts +0 -121
- package/src/components/menu/types.ts +0 -392
- package/src/components/navigation/api.ts +0 -142
- package/src/components/navigation/config.ts +0 -73
- package/src/components/navigation/features/controller.ts +0 -273
- package/src/components/navigation/features/items.ts +0 -353
- package/src/components/navigation/index.ts +0 -11
- package/src/components/navigation/nav-item.ts +0 -196
- package/src/components/navigation/navigation.ts +0 -115
- package/src/components/navigation/system/core.ts +0 -302
- package/src/components/navigation/system/events.ts +0 -240
- package/src/components/navigation/system/index.ts +0 -184
- package/src/components/navigation/system/mobile.ts +0 -278
- package/src/components/navigation/system/state.ts +0 -77
- package/src/components/navigation/system/types.ts +0 -364
- package/src/components/navigation/types.ts +0 -292
- package/src/components/progress/api.ts +0 -178
- package/src/components/progress/config.ts +0 -122
- package/src/components/progress/index.ts +0 -4
- package/src/components/progress/progress.ts +0 -159
- package/src/components/progress/types.ts +0 -255
- package/src/components/radios/api.ts +0 -125
- package/src/components/radios/config.ts +0 -59
- package/src/components/radios/constants.ts +0 -19
- package/src/components/radios/index.ts +0 -3
- package/src/components/radios/radio.ts +0 -292
- package/src/components/radios/radios.ts +0 -43
- package/src/components/radios/types.ts +0 -219
- package/src/components/search/api.ts +0 -203
- package/src/components/search/config.ts +0 -86
- package/src/components/search/features/search.ts +0 -717
- package/src/components/search/features/states.ts +0 -169
- package/src/components/search/features/structure.ts +0 -197
- package/src/components/search/index.ts +0 -7
- package/src/components/search/search.ts +0 -52
- package/src/components/search/types.ts +0 -175
- package/src/components/segmented-button/config.ts +0 -119
- package/src/components/segmented-button/index.ts +0 -4
- package/src/components/segmented-button/segment.ts +0 -108
- package/src/components/segmented-button/segmented-button.ts +0 -361
- package/src/components/segmented-button/types.ts +0 -306
- package/src/components/select/api.ts +0 -78
- package/src/components/select/config.ts +0 -76
- package/src/components/select/features.ts +0 -331
- package/src/components/select/select.ts +0 -73
- package/src/components/select/types.ts +0 -355
- package/src/components/sheet/api.ts +0 -96
- package/src/components/sheet/config.ts +0 -65
- package/src/components/sheet/features/content.ts +0 -51
- package/src/components/sheet/features/gestures.ts +0 -177
- package/src/components/sheet/features/position.ts +0 -41
- package/src/components/sheet/features/state.ts +0 -116
- package/src/components/sheet/features/title.ts +0 -86
- package/src/components/sheet/index.ts +0 -12
- package/src/components/sheet/sheet.ts +0 -56
- package/src/components/sheet/types.ts +0 -294
- package/src/components/slider/accessibility.md +0 -59
- package/src/components/slider/api.ts +0 -192
- package/src/components/slider/config.ts +0 -118
- package/src/components/slider/features/controller.ts +0 -737
- package/src/components/slider/features/handlers.ts +0 -497
- package/src/components/slider/features/index.ts +0 -5
- package/src/components/slider/features/range.ts +0 -104
- package/src/components/slider/features/states.ts +0 -195
- package/src/components/slider/index.ts +0 -17
- package/src/components/slider/schema.ts +0 -141
- package/src/components/slider/slider.ts +0 -76
- package/src/components/slider/types.ts +0 -223
- package/src/components/snackbar/api.ts +0 -162
- package/src/components/snackbar/config.ts +0 -61
- package/src/components/snackbar/features.ts +0 -76
- package/src/components/snackbar/index.ts +0 -9
- package/src/components/snackbar/position.ts +0 -79
- package/src/components/snackbar/queue.ts +0 -76
- package/src/components/snackbar/snackbar.ts +0 -60
- package/src/components/snackbar/types.ts +0 -159
- package/src/components/switch/api.ts +0 -93
- package/src/components/switch/config.ts +0 -56
- package/src/components/switch/features.ts +0 -198
- package/src/components/switch/index.ts +0 -8
- package/src/components/switch/switch.ts +0 -52
- package/src/components/switch/types.ts +0 -168
- package/src/components/tabs/api.ts +0 -221
- package/src/components/tabs/config.ts +0 -73
- package/src/components/tabs/features.ts +0 -403
- package/src/components/tabs/index.ts +0 -46
- package/src/components/tabs/indicator.ts +0 -285
- package/src/components/tabs/responsive.ts +0 -144
- package/src/components/tabs/scroll-indicators.ts +0 -149
- package/src/components/tabs/state.ts +0 -186
- package/src/components/tabs/tab-api.ts +0 -266
- package/src/components/tabs/tab.ts +0 -267
- package/src/components/tabs/tabs.ts +0 -71
- package/src/components/tabs/types.ts +0 -461
- package/src/components/tabs/utils.ts +0 -107
- package/src/components/textfield/api.ts +0 -197
- package/src/components/textfield/config.ts +0 -52
- package/src/components/textfield/features/leading-icon.ts +0 -127
- package/src/components/textfield/features/placement.ts +0 -149
- package/src/components/textfield/features/prefix-text.ts +0 -107
- package/src/components/textfield/features/suffix-text.ts +0 -100
- package/src/components/textfield/features/supporting-text.ts +0 -113
- package/src/components/textfield/features/trailing-icon.ts +0 -108
- package/src/components/textfield/index.ts +0 -9
- package/src/components/textfield/textfield.ts +0 -92
- package/src/components/textfield/types.ts +0 -265
- package/src/components/timepicker/README.md +0 -277
- package/src/components/timepicker/api.ts +0 -632
- package/src/components/timepicker/clockdial.ts +0 -479
- package/src/components/timepicker/config.ts +0 -228
- package/src/components/timepicker/index.ts +0 -3
- package/src/components/timepicker/render.ts +0 -613
- package/src/components/timepicker/timepicker.ts +0 -117
- package/src/components/timepicker/types.ts +0 -336
- package/src/components/timepicker/utils.ts +0 -241
- package/src/components/tooltip/api.ts +0 -415
- package/src/components/tooltip/config.ts +0 -80
- package/src/components/tooltip/index.ts +0 -12
- package/src/components/tooltip/tooltip.ts +0 -60
- package/src/components/tooltip/types.ts +0 -223
- package/src/components/top-app-bar/config.ts +0 -83
- package/src/components/top-app-bar/top-app-bar.ts +0 -316
- package/src/components/top-app-bar/types.ts +0 -140
- package/src/core/build/constants.ts +0 -48
- package/src/core/build/icon.ts +0 -137
- package/src/core/build/ripple.ts +0 -193
- package/src/core/build/text.ts +0 -91
- package/src/core/collection/adapters/base.ts +0 -62
- package/src/core/collection/adapters/route.ts +0 -201
- package/src/core/collection/collection.ts +0 -300
- package/src/core/collection/index.ts +0 -57
- package/src/core/collection/list-manager.ts +0 -333
- package/src/core/compose/base.ts +0 -43
- package/src/core/compose/component.ts +0 -255
- package/src/core/compose/features/badge.ts +0 -79
- package/src/core/compose/features/checkable.ts +0 -155
- package/src/core/compose/features/disabled.ts +0 -116
- package/src/core/compose/features/events.ts +0 -65
- package/src/core/compose/features/icon.ts +0 -71
- package/src/core/compose/features/input.ts +0 -174
- package/src/core/compose/features/lifecycle.ts +0 -139
- package/src/core/compose/features/position.ts +0 -94
- package/src/core/compose/features/ripple.ts +0 -58
- package/src/core/compose/features/size.ts +0 -29
- package/src/core/compose/features/style.ts +0 -31
- package/src/core/compose/features/text.ts +0 -44
- package/src/core/compose/features/textinput.ts +0 -238
- package/src/core/compose/features/textlabel.ts +0 -113
- package/src/core/compose/features/track.ts +0 -84
- package/src/core/compose/features/variant.ts +0 -29
- package/src/core/compose/features/withEvents.ts +0 -137
- package/src/core/compose/index.ts +0 -54
- package/src/core/composition/features/dom.ts +0 -45
- package/src/core/composition/features/icon.ts +0 -131
- package/src/core/composition/features/label.ts +0 -155
- package/src/core/config.ts +0 -211
- package/src/core/dom/attributes.ts +0 -33
- package/src/core/dom/classes.ts +0 -132
- package/src/core/dom/create.ts +0 -273
- package/src/core/dom/events.ts +0 -209
- package/src/core/dom/index.ts +0 -10
- package/src/core/dom/utils.ts +0 -97
- package/src/core/index.ts +0 -111
- package/src/core/layout/README.md +0 -715
- package/src/core/layout/array.ts +0 -180
- package/src/core/layout/config.ts +0 -193
- package/src/core/layout/create.ts +0 -54
- package/src/core/layout/index.ts +0 -36
- package/src/core/layout/object.ts +0 -123
- package/src/core/layout/processor.ts +0 -106
- package/src/core/layout/result.ts +0 -84
- package/src/core/layout/types.ts +0 -180
- package/src/core/layout/utils.ts +0 -144
- package/src/core/state/disabled.ts +0 -81
- package/src/core/state/emitter.ts +0 -94
- package/src/core/state/events.ts +0 -88
- package/src/core/state/lifecycle.ts +0 -131
- package/src/core/state/store.ts +0 -197
- package/src/core/utils/index.ts +0 -45
- package/src/core/utils/mobile.ts +0 -98
- package/src/core/utils/object.ts +0 -41
- package/src/core/utils/validate.ts +0 -234
- package/src/index.ts +0 -90
- package/src/styles/abstract/_base.scss +0 -2
- package/src/styles/abstract/_config.scss +0 -28
- package/src/styles/abstract/_functions.scss +0 -124
- package/src/styles/abstract/_mixins.scss +0 -352
- package/src/styles/abstract/_theme.scss +0 -269
- package/src/styles/abstract/_variables.scss +0 -305
- package/src/styles/base/_reset.scss +0 -86
- package/src/styles/base/_typography.scss +0 -155
- package/src/styles/components/_badge.scss +0 -182
- package/src/styles/components/_bottom-app-bar.scss +0 -103
- package/src/styles/components/_button.scss +0 -224
- package/src/styles/components/_card.scss +0 -401
- package/src/styles/components/_carousel.scss +0 -645
- package/src/styles/components/_checkbox.scss +0 -231
- package/src/styles/components/_chips.scss +0 -638
- package/src/styles/components/_datepicker.scss +0 -358
- package/src/styles/components/_dialog.scss +0 -259
- package/src/styles/components/_divider.scss +0 -57
- package/src/styles/components/_extended-fab.scss +0 -267
- package/src/styles/components/_fab.scss +0 -225
- package/src/styles/components/_list.scss +0 -248
- package/src/styles/components/_menu.scss +0 -242
- package/src/styles/components/_navigation-mobile.scss +0 -244
- package/src/styles/components/_navigation-system.scss +0 -151
- package/src/styles/components/_navigation.scss +0 -407
- package/src/styles/components/_progress.scss +0 -151
- package/src/styles/components/_radios.scss +0 -187
- package/src/styles/components/_search.scss +0 -306
- package/src/styles/components/_segmented-button.scss +0 -227
- package/src/styles/components/_select.scss +0 -272
- package/src/styles/components/_sheet.scss +0 -236
- package/src/styles/components/_slider.scss +0 -489
- package/src/styles/components/_snackbar.scss +0 -211
- package/src/styles/components/_switch.scss +0 -298
- package/src/styles/components/_tabs.scss +0 -416
- package/src/styles/components/_textfield.scss +0 -773
- package/src/styles/components/_timepicker.scss +0 -451
- package/src/styles/components/_tooltip.scss +0 -241
- package/src/styles/components/_top-app-bar.scss +0 -225
- package/src/styles/main.scss +0 -175
- package/src/styles/themes/_autumn.scss +0 -105
- package/src/styles/themes/_base-theme.scss +0 -85
- package/src/styles/themes/_baseline.scss +0 -173
- package/src/styles/themes/_bluekhaki.scss +0 -125
- package/src/styles/themes/_brownbeige.scss +0 -125
- package/src/styles/themes/_browngreen.scss +0 -125
- package/src/styles/themes/_forest.scss +0 -77
- package/src/styles/themes/_greenbeige.scss +0 -125
- package/src/styles/themes/_index.scss +0 -6
- package/src/styles/themes/_material.scss +0 -125
- package/src/styles/themes/_ocean.scss +0 -77
- package/src/styles/themes/_sageivory.scss +0 -125
- package/src/styles/themes/_spring.scss +0 -77
- package/src/styles/themes/_summer.scss +0 -87
- package/src/styles/themes/_sunset.scss +0 -60
- package/src/styles/themes/_tealcaramel.scss +0 -125
- package/src/styles/themes/_winter.scss +0 -77
- package/src/styles/utilities/_colors.scss +0 -154
- package/src/styles/utilities/_flexbox.scss +0 -194
- package/src/styles/utilities/_layout.scss +0 -665
- package/src/styles/utilities/_ripple.scss +0 -79
- package/src/styles/utilities/_spacing.scss +0 -139
- package/src/styles/utilities/_typography.scss +0 -178
- package/src/styles/utilities/_visibility.scss +0 -142
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { MenuConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Default configuration for the Menu component
|
|
4
|
+
* These values will be used when not explicitly specified by the user.
|
|
5
|
+
*
|
|
6
|
+
* @category Components
|
|
7
|
+
*/
|
|
8
|
+
export declare const defaultConfig: Partial<MenuConfig>;
|
|
9
|
+
/**
|
|
10
|
+
* Creates the base configuration for Menu component by merging user-provided
|
|
11
|
+
* config with default values.
|
|
12
|
+
*
|
|
13
|
+
* @param {MenuConfig} config - User provided configuration
|
|
14
|
+
* @returns {MenuConfig} Complete configuration with defaults applied
|
|
15
|
+
* @category Components
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export declare const createBaseConfig: (config: MenuConfig) => MenuConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Generates element configuration for the Menu component.
|
|
21
|
+
* This function creates the necessary attributes and configuration
|
|
22
|
+
* for the DOM element creation process.
|
|
23
|
+
*
|
|
24
|
+
* @param {MenuConfig} config - Menu configuration
|
|
25
|
+
* @returns {Object} Element configuration object for withElement
|
|
26
|
+
* @category Components
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export declare const getElementConfig: (config: MenuConfig) => {
|
|
30
|
+
tag: string;
|
|
31
|
+
componentName: string;
|
|
32
|
+
attributes: Record<string, any>;
|
|
33
|
+
className: string[];
|
|
34
|
+
rawClass: string | string[];
|
|
35
|
+
html: string;
|
|
36
|
+
text: string;
|
|
37
|
+
forwardEvents: Record<string, boolean | ((component: any, event: Event) => boolean)>;
|
|
38
|
+
interactive: boolean;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Creates API configuration for the Menu component.
|
|
42
|
+
* This connects the core component features to the public API.
|
|
43
|
+
*
|
|
44
|
+
* @param {Object} component - Component with menu features
|
|
45
|
+
* @returns {Object} API configuration object
|
|
46
|
+
* @category Components
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export declare const getApiConfig: (component: any) => {
|
|
50
|
+
menu: {
|
|
51
|
+
open: (event: any, interactionType: any) => any;
|
|
52
|
+
close: (event: any, restoreFocus: any, skipAnimation: any) => any;
|
|
53
|
+
toggle: (event: any, interactionType: any) => any;
|
|
54
|
+
isOpen: () => any;
|
|
55
|
+
setItems: (items: any) => any;
|
|
56
|
+
getItems: () => any;
|
|
57
|
+
setPosition: (position: any) => any;
|
|
58
|
+
getPosition: () => any;
|
|
59
|
+
setSelected: (itemId: any) => any;
|
|
60
|
+
getSelected: () => any;
|
|
61
|
+
};
|
|
62
|
+
opener: {
|
|
63
|
+
setOpener: (opener: any) => any;
|
|
64
|
+
getOpener: () => any;
|
|
65
|
+
};
|
|
66
|
+
submenu: {
|
|
67
|
+
hasOpenSubmenu: () => any;
|
|
68
|
+
closeAllSubmenus: () => any;
|
|
69
|
+
};
|
|
70
|
+
events: {
|
|
71
|
+
on: (event: any, handler: any) => any;
|
|
72
|
+
off: (event: any, handler: any) => any;
|
|
73
|
+
};
|
|
74
|
+
lifecycle: {
|
|
75
|
+
destroy: () => any;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
export default defaultConfig;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Menu position options for alignment relative to opener element
|
|
3
|
+
*/
|
|
4
|
+
export declare const MENU_POSITION: {
|
|
5
|
+
/** Places menu below the opener, aligned to left edge */
|
|
6
|
+
readonly BOTTOM_START: "bottom-start";
|
|
7
|
+
/** Places menu below the opener, centered */
|
|
8
|
+
readonly BOTTOM: "bottom";
|
|
9
|
+
/** Places menu below the opener, aligned to right edge */
|
|
10
|
+
readonly BOTTOM_END: "bottom-end";
|
|
11
|
+
/** Places menu above the opener, aligned to left edge */
|
|
12
|
+
readonly TOP_START: "top-start";
|
|
13
|
+
/** Places menu above the opener, centered */
|
|
14
|
+
readonly TOP: "top";
|
|
15
|
+
/** Places menu above the opener, aligned to right edge */
|
|
16
|
+
readonly TOP_END: "top-end";
|
|
17
|
+
/** Places menu to the right of the opener, aligned to top edge */
|
|
18
|
+
readonly RIGHT_START: "right-start";
|
|
19
|
+
/** Places menu to the right of the opener, centered */
|
|
20
|
+
readonly RIGHT: "right";
|
|
21
|
+
/** Places menu to the right of the opener, aligned to bottom edge */
|
|
22
|
+
readonly RIGHT_END: "right-end";
|
|
23
|
+
/** Places menu to the left of the opener, aligned to top edge */
|
|
24
|
+
readonly LEFT_START: "left-start";
|
|
25
|
+
/** Places menu to the left of the opener, centered */
|
|
26
|
+
readonly LEFT: "left";
|
|
27
|
+
/** Places menu to the left of the opener, aligned to bottom edge */
|
|
28
|
+
readonly LEFT_END: "left-end";
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Default configuration values for menus
|
|
32
|
+
*/
|
|
33
|
+
export declare const MENU_DEFAULTS: {
|
|
34
|
+
/** Default menu position */
|
|
35
|
+
readonly POSITION: "bottom-start";
|
|
36
|
+
/** Default offset from the opener (in pixels) */
|
|
37
|
+
readonly OFFSET: 0;
|
|
38
|
+
/** Close menu when an item is selected */
|
|
39
|
+
readonly CLOSE_ON_SELECT: true;
|
|
40
|
+
/** Close menu when clicking outside */
|
|
41
|
+
readonly CLOSE_ON_CLICK_OUTSIDE: true;
|
|
42
|
+
/** Close menu when escape key is pressed */
|
|
43
|
+
readonly CLOSE_ON_ESCAPE: true;
|
|
44
|
+
/** Open submenus on hover */
|
|
45
|
+
readonly OPEN_SUBMENU_ON_HOVER: true;
|
|
46
|
+
/** Automatically flip menu position to stay in viewport */
|
|
47
|
+
readonly AUTO_FLIP: true;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Interaction types for menu opening/closing
|
|
51
|
+
*/
|
|
52
|
+
export declare const MENU_INTERACTION_TYPES: {
|
|
53
|
+
/** Interaction via mouse or touch */
|
|
54
|
+
readonly MOUSE: "mouse";
|
|
55
|
+
/** Interaction via keyboard */
|
|
56
|
+
readonly KEYBOARD: "keyboard";
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Menu item types
|
|
60
|
+
*/
|
|
61
|
+
export declare const MENU_ITEM_TYPES: {
|
|
62
|
+
/** Standard interactive menu item */
|
|
63
|
+
readonly ITEM: "item";
|
|
64
|
+
/** Non-interactive dividing line */
|
|
65
|
+
readonly DIVIDER: "divider";
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Menu event names
|
|
69
|
+
*/
|
|
70
|
+
export declare const MENU_EVENTS: {
|
|
71
|
+
/** Fired when the menu is opened */
|
|
72
|
+
readonly OPEN: "open";
|
|
73
|
+
/** Fired when the menu is closed */
|
|
74
|
+
readonly CLOSE: "close";
|
|
75
|
+
/** Fired when a menu item is selected */
|
|
76
|
+
readonly SELECT: "select";
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* CSS classes for menu elements
|
|
80
|
+
*/
|
|
81
|
+
export declare const MENU_CLASSES: {
|
|
82
|
+
/** Menu container */
|
|
83
|
+
readonly CONTAINER: "menu";
|
|
84
|
+
/** Visible menu */
|
|
85
|
+
readonly VISIBLE: "menu--visible";
|
|
86
|
+
/** Menu inner container */
|
|
87
|
+
readonly INNER: "menu__inner";
|
|
88
|
+
/** Individual menu item */
|
|
89
|
+
readonly ITEM: "menu__item";
|
|
90
|
+
/** Disabled menu item */
|
|
91
|
+
readonly ITEM_DISABLED: "menu__item--disabled";
|
|
92
|
+
/** Selected menu item */
|
|
93
|
+
readonly ITEM_SELECTED: "menu__item--selected";
|
|
94
|
+
/** Menu item with submenu */
|
|
95
|
+
readonly ITEM_HAS_SUBMENU: "menu__item--has-submenu";
|
|
96
|
+
/** Divider */
|
|
97
|
+
readonly DIVIDER: "menu__divider";
|
|
98
|
+
/** Item icon */
|
|
99
|
+
readonly ITEM_ICON: "menu__item-icon";
|
|
100
|
+
/** Item text */
|
|
101
|
+
readonly ITEM_TEXT: "menu__item-text";
|
|
102
|
+
/** Item keyboard shortcut */
|
|
103
|
+
readonly ITEM_SHORTCUT: "menu__item-shortcut";
|
|
104
|
+
/** Submenu indicator */
|
|
105
|
+
readonly SUBMENU_INDICATOR: "menu__submenu-indicator";
|
|
106
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MenuConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Adds controller functionality to the menu component
|
|
4
|
+
* Manages state, rendering, positioning, and event handling
|
|
5
|
+
*
|
|
6
|
+
* @param config - Menu configuration
|
|
7
|
+
* @returns Component enhancer with menu controller functionality
|
|
8
|
+
*/
|
|
9
|
+
declare const withController: (config: MenuConfig) => (component: any) => any;
|
|
10
|
+
export default withController;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import withController from './controller';
|
|
2
|
+
import withOpener from './opener';
|
|
3
|
+
import withPosition from './position';
|
|
4
|
+
import withKeyboard from './keyboard';
|
|
5
|
+
import withSubmenu from './submenu';
|
|
6
|
+
export { withController, withOpener, withPosition, withKeyboard, withSubmenu };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MenuItem } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Keyboard navigation handler for menus
|
|
4
|
+
* Manages focus management and keyboard interactions for accessibility
|
|
5
|
+
*/
|
|
6
|
+
export declare const createKeyboardNavigation: (component: any) => {
|
|
7
|
+
handleInitialFocus: (menuElement: HTMLElement, interactionType: "keyboard" | "mouse") => void;
|
|
8
|
+
handleMenuKeydown: (e: KeyboardEvent, state: any, actions: {
|
|
9
|
+
closeMenu: (event: Event, restoreFocus?: boolean) => void;
|
|
10
|
+
closeSubmenu: (level: number) => void;
|
|
11
|
+
findItemById: (id: string) => MenuItem | null;
|
|
12
|
+
handleSubmenuClick: (item: MenuItem, index: number, itemElement: HTMLElement) => void;
|
|
13
|
+
handleNestedSubmenuClick: (item: MenuItem, index: number, itemElement: HTMLElement) => void;
|
|
14
|
+
}) => void;
|
|
15
|
+
setupKeyboardHandlers: (menuElement: HTMLElement, state: any, actions: any) => void;
|
|
16
|
+
isTabNavigationActive: () => boolean;
|
|
17
|
+
getFocusableElements: () => HTMLElement[];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Adds keyboard navigation functionality to the menu component
|
|
21
|
+
*
|
|
22
|
+
* @param config - Menu configuration
|
|
23
|
+
* @returns Component enhancer with keyboard navigation functionality
|
|
24
|
+
*/
|
|
25
|
+
declare const withKeyboard: (config: any) => (component: any) => any;
|
|
26
|
+
export default withKeyboard;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MenuConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Adds opener functionality to menu component
|
|
4
|
+
* Manages the relationship between menu and its opener element
|
|
5
|
+
*
|
|
6
|
+
* @param config - Menu configuration
|
|
7
|
+
* @returns Component enhancer with opener management functionality
|
|
8
|
+
*/
|
|
9
|
+
declare const withOpener: (config: MenuConfig) => (component: any) => any;
|
|
10
|
+
export default withOpener;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MenuConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Menu position helper
|
|
4
|
+
* Provides functions for positioning menus and submenus
|
|
5
|
+
*/
|
|
6
|
+
export declare const createPositioner: (component: any, config: MenuConfig) => {
|
|
7
|
+
positionMenu: (openerElement: HTMLElement) => void;
|
|
8
|
+
positionSubmenu: (submenuElement: HTMLElement, parentItemElement: HTMLElement, level?: number) => void;
|
|
9
|
+
positionElement: (menuElement: HTMLElement, openerElement: HTMLElement, preferredPosition: string, isSubmenu?: boolean) => void;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Adds positioning functionality to the menu component
|
|
13
|
+
*
|
|
14
|
+
* @param config - Menu configuration options
|
|
15
|
+
* @returns Component enhancer with positioning functionality
|
|
16
|
+
*/
|
|
17
|
+
declare const withPosition: (config: MenuConfig) => (component: any) => any;
|
|
18
|
+
export default withPosition;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MenuConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Adds submenu functionality to the menu component
|
|
4
|
+
* Manages creation, positioning, and interaction with nested submenus
|
|
5
|
+
*
|
|
6
|
+
* @param config - Menu configuration
|
|
7
|
+
* @returns Component enhancer with submenu functionality
|
|
8
|
+
*/
|
|
9
|
+
declare const withSubmenu: (config: MenuConfig) => (component: any) => any;
|
|
10
|
+
export default withSubmenu;
|
|
@@ -1,44 +1,28 @@
|
|
|
1
|
-
// src/components/menu/index.ts
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Menu component module
|
|
5
|
-
*
|
|
3
|
+
*
|
|
6
4
|
* The Menu component provides a Material Design 3 compliant dropdown menu
|
|
7
5
|
* system with support for nested menus, keyboard navigation, and accessibility.
|
|
8
|
-
*
|
|
6
|
+
*
|
|
9
7
|
* @module components/menu
|
|
10
8
|
* @category Components
|
|
11
9
|
*/
|
|
12
|
-
|
|
13
|
-
// Export main component factory
|
|
14
10
|
export { default } from './menu';
|
|
15
|
-
|
|
16
|
-
// Export types and interfaces
|
|
17
|
-
export type {
|
|
18
|
-
MenuConfig,
|
|
19
|
-
MenuComponent,
|
|
20
|
-
MenuItem,
|
|
21
|
-
MenuDivider,
|
|
22
|
-
MenuContent,
|
|
23
|
-
MenuEvent,
|
|
24
|
-
MenuSelectEvent,
|
|
25
|
-
MenuPosition
|
|
26
|
-
} from './types';
|
|
27
|
-
|
|
11
|
+
export type { MenuConfig, MenuComponent, MenuItem, MenuDivider, MenuContent, MenuEvent, MenuSelectEvent, MenuPosition } from './types';
|
|
28
12
|
/**
|
|
29
13
|
* Constants for menu position values - use these instead of string literals
|
|
30
14
|
* for better code completion and type safety.
|
|
31
|
-
*
|
|
15
|
+
*
|
|
32
16
|
* @example
|
|
33
17
|
* import { createMenu, MENU_POSITION } from 'mtrl';
|
|
34
|
-
*
|
|
35
|
-
* // Create a menu positioned at the bottom-right of its
|
|
36
|
-
* const menu = createMenu({
|
|
37
|
-
*
|
|
18
|
+
*
|
|
19
|
+
* // Create a menu positioned at the bottom-right of its opener
|
|
20
|
+
* const menu = createMenu({
|
|
21
|
+
* opener: '#dropdown-button',
|
|
38
22
|
* items: [...],
|
|
39
|
-
* position: MENU_POSITION.BOTTOM_END
|
|
23
|
+
* position: MENU_POSITION.BOTTOM_END
|
|
40
24
|
* });
|
|
41
|
-
*
|
|
25
|
+
*
|
|
42
26
|
* @category Components
|
|
43
27
|
*/
|
|
44
|
-
export { MENU_POSITION } from './
|
|
28
|
+
export { MENU_POSITION, MENU_DEFAULTS, MENU_INTERACTION_TYPES, MENU_ITEM_TYPES, MENU_EVENTS, MENU_CLASSES } from './constants';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { MenuConfig, MenuComponent } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a new Menu component with the specified configuration.
|
|
4
|
+
*
|
|
5
|
+
* The Menu component implements the Material Design 3 menu specifications,
|
|
6
|
+
* providing a flexible dropdown menu system with support for nested menus,
|
|
7
|
+
* keyboard navigation, and ARIA accessibility.
|
|
8
|
+
*
|
|
9
|
+
* Menus are built using a functional composition pattern, applying various
|
|
10
|
+
* features through the pipe function for a modular architecture.
|
|
11
|
+
*
|
|
12
|
+
* The menu element is not added to the DOM until it's opened, and it's removed
|
|
13
|
+
* from the DOM when closed, following best practices for dropdown menus.
|
|
14
|
+
*
|
|
15
|
+
* @param {MenuConfig} config - Configuration options for the menu
|
|
16
|
+
* This must include an opener element or selector, and an array of menu items.
|
|
17
|
+
* See {@link MenuConfig} for all available options.
|
|
18
|
+
*
|
|
19
|
+
* @returns {MenuComponent} A fully configured menu component instance with
|
|
20
|
+
* all requested features applied. The returned component has methods for
|
|
21
|
+
* menu manipulation, event handling, and lifecycle management.
|
|
22
|
+
*
|
|
23
|
+
* @throws {Error} Throws an error if menu creation fails or if required
|
|
24
|
+
* configuration (like opener) is missing.
|
|
25
|
+
*
|
|
26
|
+
* @category Components
|
|
27
|
+
*/
|
|
28
|
+
declare const createMenu: (config: MenuConfig) => MenuComponent;
|
|
29
|
+
export default createMenu;
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Menu position options
|
|
3
|
+
* Controls where the menu will appear relative to its opener element
|
|
4
|
+
*
|
|
5
|
+
* @category Components
|
|
6
|
+
*/
|
|
7
|
+
export declare const MENU_POSITION: {
|
|
8
|
+
/** Places menu below the opener, aligned to left edge */
|
|
9
|
+
readonly BOTTOM_START: "bottom-start";
|
|
10
|
+
/** Places menu below the opener, centered */
|
|
11
|
+
readonly BOTTOM: "bottom";
|
|
12
|
+
/** Places menu below the opener, aligned to right edge */
|
|
13
|
+
readonly BOTTOM_END: "bottom-end";
|
|
14
|
+
/** Places menu above the opener, aligned to left edge */
|
|
15
|
+
readonly TOP_START: "top-start";
|
|
16
|
+
/** Places menu above the opener, centered */
|
|
17
|
+
readonly TOP: "top";
|
|
18
|
+
/** Places menu above the opener, aligned to right edge */
|
|
19
|
+
readonly TOP_END: "top-end";
|
|
20
|
+
/** Places menu to the right of the opener, aligned to top edge */
|
|
21
|
+
readonly RIGHT_START: "right-start";
|
|
22
|
+
/** Places menu to the right of the opener, centered */
|
|
23
|
+
readonly RIGHT: "right";
|
|
24
|
+
/** Places menu to the right of the opener, aligned to bottom edge */
|
|
25
|
+
readonly RIGHT_END: "right-end";
|
|
26
|
+
/** Places menu to the left of the opener, aligned to top edge */
|
|
27
|
+
readonly LEFT_START: "left-start";
|
|
28
|
+
/** Places menu to the left of the opener, centered */
|
|
29
|
+
readonly LEFT: "left";
|
|
30
|
+
/** Places menu to the left of the opener, aligned to bottom edge */
|
|
31
|
+
readonly LEFT_END: "left-end";
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Position options for the menu
|
|
35
|
+
*
|
|
36
|
+
* @category Components
|
|
37
|
+
*/
|
|
38
|
+
export type MenuPosition = typeof MENU_POSITION[keyof typeof MENU_POSITION];
|
|
39
|
+
/**
|
|
40
|
+
* Configuration interface for a menu item
|
|
41
|
+
*
|
|
42
|
+
* @category Components
|
|
43
|
+
*/
|
|
44
|
+
export interface MenuItem {
|
|
45
|
+
/**
|
|
46
|
+
* Unique ID for the menu item
|
|
47
|
+
* Required for accessibility and event handling
|
|
48
|
+
*/
|
|
49
|
+
id: string;
|
|
50
|
+
/**
|
|
51
|
+
* Display text for the menu item
|
|
52
|
+
*/
|
|
53
|
+
text: string;
|
|
54
|
+
/**
|
|
55
|
+
* Optional icon to display before the text
|
|
56
|
+
* Accepts HTML string (typically SVG)
|
|
57
|
+
*/
|
|
58
|
+
icon?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Optional keyboard shortcut hint to display
|
|
61
|
+
* Shown at the end of the menu item
|
|
62
|
+
*/
|
|
63
|
+
shortcut?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the menu item is disabled
|
|
66
|
+
* Disabled items cannot be clicked but remain visible
|
|
67
|
+
*/
|
|
68
|
+
disabled?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Whether this item has a submenu
|
|
71
|
+
* If true, the item will show an indicator and can open a nested menu
|
|
72
|
+
*/
|
|
73
|
+
hasSubmenu?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Optional array of submenu items
|
|
76
|
+
* Only used when hasSubmenu is true
|
|
77
|
+
*/
|
|
78
|
+
submenu?: MenuItem[];
|
|
79
|
+
/**
|
|
80
|
+
* Additional data to associate with the menu item
|
|
81
|
+
* This can be used for custom behavior in click handlers
|
|
82
|
+
*/
|
|
83
|
+
data?: any;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Menu item type for dividers
|
|
87
|
+
*
|
|
88
|
+
* @category Components
|
|
89
|
+
*/
|
|
90
|
+
export interface MenuDivider {
|
|
91
|
+
/**
|
|
92
|
+
* Type must be 'divider' to differentiate from regular menu items
|
|
93
|
+
*/
|
|
94
|
+
type: 'divider';
|
|
95
|
+
/**
|
|
96
|
+
* Optional ID for the divider (for accessibility)
|
|
97
|
+
*/
|
|
98
|
+
id?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Combined type for menu content items (regular items or dividers)
|
|
102
|
+
*
|
|
103
|
+
* @category Components
|
|
104
|
+
*/
|
|
105
|
+
export type MenuContent = MenuItem | MenuDivider;
|
|
106
|
+
/**
|
|
107
|
+
* Configuration interface for the Menu component
|
|
108
|
+
*
|
|
109
|
+
* @category Components
|
|
110
|
+
*/
|
|
111
|
+
export interface MenuConfig {
|
|
112
|
+
/**
|
|
113
|
+
* Element to which the menu will be openered
|
|
114
|
+
* Can be an HTML element, a CSS selector string, or a component with an element property
|
|
115
|
+
*/
|
|
116
|
+
opener: HTMLElement | string | {
|
|
117
|
+
element: HTMLElement;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Array of menu items and dividers to display
|
|
121
|
+
*/
|
|
122
|
+
items: MenuContent[];
|
|
123
|
+
/**
|
|
124
|
+
* Position of the menu relative to the opener
|
|
125
|
+
* @default 'bottom-start'
|
|
126
|
+
*/
|
|
127
|
+
position?: MenuPosition;
|
|
128
|
+
/**
|
|
129
|
+
* Whether the menu should close when an item is clicked
|
|
130
|
+
* @default true
|
|
131
|
+
*/
|
|
132
|
+
closeOnSelect?: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Whether the menu should close when the user clicks outside
|
|
135
|
+
* @default true
|
|
136
|
+
*/
|
|
137
|
+
closeOnClickOutside?: boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Whether the menu should close when the escape key is pressed
|
|
140
|
+
* @default true
|
|
141
|
+
*/
|
|
142
|
+
closeOnEscape?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Whether submenus should open on hover
|
|
145
|
+
* @default true
|
|
146
|
+
*/
|
|
147
|
+
openSubmenuOnHover?: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Optional width for the menu (in CSS units)
|
|
150
|
+
* If not provided, menu will size to its content
|
|
151
|
+
*/
|
|
152
|
+
width?: string;
|
|
153
|
+
/**
|
|
154
|
+
* Optional maximum height for the menu (in CSS units)
|
|
155
|
+
* If content exceeds this height, the menu will scroll
|
|
156
|
+
*/
|
|
157
|
+
maxHeight?: string;
|
|
158
|
+
/**
|
|
159
|
+
* Optional offset from the opener (in pixels)
|
|
160
|
+
* @default 8
|
|
161
|
+
*/
|
|
162
|
+
offset?: number;
|
|
163
|
+
/**
|
|
164
|
+
* Whether the menu should automatically flip position to stay in viewport
|
|
165
|
+
* @default true
|
|
166
|
+
*/
|
|
167
|
+
autoFlip?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Whether the menu is initially visible
|
|
170
|
+
* @default false
|
|
171
|
+
*/
|
|
172
|
+
visible?: boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Additional CSS classes to add to the menu
|
|
175
|
+
*/
|
|
176
|
+
class?: string;
|
|
177
|
+
/**
|
|
178
|
+
* Component prefix for CSS class names
|
|
179
|
+
* @default 'mtrl'
|
|
180
|
+
*/
|
|
181
|
+
prefix?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Component name used in CSS class generation
|
|
184
|
+
* @default 'menu'
|
|
185
|
+
*/
|
|
186
|
+
componentName?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Event handlers for the menu
|
|
189
|
+
*/
|
|
190
|
+
on?: {
|
|
191
|
+
/**
|
|
192
|
+
* Called when the menu is opened
|
|
193
|
+
*/
|
|
194
|
+
open?: (event: MenuEvent) => void;
|
|
195
|
+
/**
|
|
196
|
+
* Called when the menu is closed
|
|
197
|
+
*/
|
|
198
|
+
close?: (event: MenuEvent) => void;
|
|
199
|
+
/**
|
|
200
|
+
* Called when a menu item is selected
|
|
201
|
+
*/
|
|
202
|
+
select?: (event: MenuSelectEvent) => void;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Menu event interface
|
|
207
|
+
*
|
|
208
|
+
* @category Components
|
|
209
|
+
*/
|
|
210
|
+
export interface MenuEvent {
|
|
211
|
+
/** The menu component that triggered the event */
|
|
212
|
+
menu: MenuComponent;
|
|
213
|
+
/** Original DOM event if available */
|
|
214
|
+
originalEvent?: Event;
|
|
215
|
+
/** Function to prevent default behavior */
|
|
216
|
+
preventDefault: () => void;
|
|
217
|
+
/** Whether default behavior was prevented */
|
|
218
|
+
defaultPrevented: boolean;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Menu selection event interface
|
|
222
|
+
*
|
|
223
|
+
* @category Components
|
|
224
|
+
*/
|
|
225
|
+
export interface MenuSelectEvent extends MenuEvent {
|
|
226
|
+
/** The selected menu item */
|
|
227
|
+
item: MenuItem;
|
|
228
|
+
/** ID of the selected menu item */
|
|
229
|
+
itemId: string;
|
|
230
|
+
/** Data associated with the menu item (if any) */
|
|
231
|
+
itemData?: any;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Menu component interface
|
|
235
|
+
*
|
|
236
|
+
* @category Components
|
|
237
|
+
*/
|
|
238
|
+
export interface MenuComponent {
|
|
239
|
+
/** The menu's root DOM element */
|
|
240
|
+
element: HTMLElement;
|
|
241
|
+
/**
|
|
242
|
+
* Opens the menu
|
|
243
|
+
* @param event - Optional event that triggered the open
|
|
244
|
+
* @param interactionType - The type of interaction that triggered the open ('mouse' or 'keyboard')
|
|
245
|
+
* @returns The menu component for chaining
|
|
246
|
+
*/
|
|
247
|
+
open: (event?: Event, interactionType?: 'mouse' | 'keyboard') => MenuComponent;
|
|
248
|
+
/**
|
|
249
|
+
* Closes the menu
|
|
250
|
+
* @param event - Optional event that triggered the close
|
|
251
|
+
* @returns The menu component for chaining
|
|
252
|
+
*/
|
|
253
|
+
close: (event?: Event) => MenuComponent;
|
|
254
|
+
/**
|
|
255
|
+
* Toggles the menu's open state
|
|
256
|
+
* @param event - Optional event that triggered the toggle
|
|
257
|
+
* @returns The menu component for chaining
|
|
258
|
+
*/
|
|
259
|
+
toggle: (event?: Event) => MenuComponent;
|
|
260
|
+
/**
|
|
261
|
+
* Checks if the menu is currently open
|
|
262
|
+
* @returns True if the menu is open
|
|
263
|
+
*/
|
|
264
|
+
isOpen: () => boolean;
|
|
265
|
+
/**
|
|
266
|
+
* Updates the menu items
|
|
267
|
+
* @param items - New array of menu items and dividers
|
|
268
|
+
* @returns The menu component for chaining
|
|
269
|
+
*/
|
|
270
|
+
setItems: (items: MenuContent[]) => MenuComponent;
|
|
271
|
+
/**
|
|
272
|
+
* Gets the current menu items
|
|
273
|
+
* @returns Array of current menu items and dividers
|
|
274
|
+
*/
|
|
275
|
+
getItems: () => MenuContent[];
|
|
276
|
+
/**
|
|
277
|
+
* Updates the menu's opener element
|
|
278
|
+
* @param opener - New opener element or selector
|
|
279
|
+
* @returns The menu component for chaining
|
|
280
|
+
*/
|
|
281
|
+
setOpener: (opener: HTMLElement | string) => MenuComponent;
|
|
282
|
+
/**
|
|
283
|
+
* Gets the current opener element
|
|
284
|
+
* @returns Current opener element
|
|
285
|
+
*/
|
|
286
|
+
getOpener: () => HTMLElement;
|
|
287
|
+
/**
|
|
288
|
+
* Updates the menu's position
|
|
289
|
+
* @param position - New position value
|
|
290
|
+
* @returns The menu component for chaining
|
|
291
|
+
*/
|
|
292
|
+
setPosition: (position: MenuPosition) => MenuComponent;
|
|
293
|
+
/**
|
|
294
|
+
* Gets the current menu position
|
|
295
|
+
* @returns Current position
|
|
296
|
+
*/
|
|
297
|
+
getPosition: () => MenuPosition;
|
|
298
|
+
/**
|
|
299
|
+
* Sets the selected menu item
|
|
300
|
+
* @param itemId - ID of the menu item to mark as selected
|
|
301
|
+
* @returns The menu component for chaining
|
|
302
|
+
*/
|
|
303
|
+
setSelected: (itemId: string) => MenuComponent;
|
|
304
|
+
/**
|
|
305
|
+
* Gets the currently selected menu item's ID
|
|
306
|
+
* @returns ID of the selected menu item or null if none is selected
|
|
307
|
+
*/
|
|
308
|
+
getSelected: () => string | null;
|
|
309
|
+
/**
|
|
310
|
+
* Adds an event listener to the menu
|
|
311
|
+
* @param event - Event name ('open', 'close', 'select')
|
|
312
|
+
* @param handler - Event handler function
|
|
313
|
+
* @returns The menu component for chaining
|
|
314
|
+
*/
|
|
315
|
+
on: <T extends keyof MenuEvents>(event: T, handler: MenuEvents[T]) => MenuComponent;
|
|
316
|
+
/**
|
|
317
|
+
* Removes an event listener from the menu
|
|
318
|
+
* @param event - Event name
|
|
319
|
+
* @param handler - Event handler function
|
|
320
|
+
* @returns The menu component for chaining
|
|
321
|
+
*/
|
|
322
|
+
off: <T extends keyof MenuEvents>(event: T, handler: MenuEvents[T]) => MenuComponent;
|
|
323
|
+
/**
|
|
324
|
+
* Destroys the menu component and cleans up resources
|
|
325
|
+
*/
|
|
326
|
+
destroy: () => void;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Menu events interface for type-checking
|
|
330
|
+
*
|
|
331
|
+
* @category Components
|
|
332
|
+
* @internal
|
|
333
|
+
*/
|
|
334
|
+
export interface MenuEvents {
|
|
335
|
+
'open': (event: MenuEvent) => void;
|
|
336
|
+
'close': (event: MenuEvent) => void;
|
|
337
|
+
'select': (event: MenuSelectEvent) => void;
|
|
338
|
+
}
|