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
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
// src/components/navigation/system/events.ts
|
|
2
|
-
|
|
3
|
-
import { NavigationSystemState } from './types';
|
|
4
|
-
import { NavigationItem, NavigationSection } from './types';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Registers rail navigation event handlers
|
|
8
|
-
*
|
|
9
|
-
* @param state - System state
|
|
10
|
-
* @param config - System configuration
|
|
11
|
-
* @param updateDrawerContent - Function to update drawer content
|
|
12
|
-
* @param showDrawer - Function to show the drawer
|
|
13
|
-
* @param hideDrawer - Function to hide the drawer
|
|
14
|
-
* @param systemApi - Reference to the public system API
|
|
15
|
-
*/
|
|
16
|
-
export const registerRailEvents = (
|
|
17
|
-
state: NavigationSystemState,
|
|
18
|
-
config: any,
|
|
19
|
-
updateDrawerContent: (sectionId: string) => void,
|
|
20
|
-
showDrawer: () => void,
|
|
21
|
-
hideDrawer: () => void,
|
|
22
|
-
systemApi: any
|
|
23
|
-
): void => {
|
|
24
|
-
const rail = state.rail;
|
|
25
|
-
if (!rail) return;
|
|
26
|
-
|
|
27
|
-
// Register for change events - will listen for when rail items are clicked
|
|
28
|
-
rail.on('change', (event: any) => {
|
|
29
|
-
// Extract ID from event data
|
|
30
|
-
const id = event?.id;
|
|
31
|
-
|
|
32
|
-
if (!id || state.processingChange) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Check if this is a user action
|
|
37
|
-
const isUserAction = event?.source === 'userAction';
|
|
38
|
-
|
|
39
|
-
// Set processing flag to prevent loops
|
|
40
|
-
state.processingChange = true;
|
|
41
|
-
|
|
42
|
-
// Update active section
|
|
43
|
-
state.activeSection = id;
|
|
44
|
-
|
|
45
|
-
// Handle internally first - update drawer content
|
|
46
|
-
updateDrawerContent(id);
|
|
47
|
-
|
|
48
|
-
// Then notify external handlers
|
|
49
|
-
if (systemApi.onSectionChange && isUserAction) {
|
|
50
|
-
systemApi.onSectionChange(id, { source: isUserAction ? 'userClick' : 'programmatic' });
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Clear the processing flag after a delay
|
|
54
|
-
setTimeout(() => {
|
|
55
|
-
state.processingChange = false;
|
|
56
|
-
}, 50);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
rail.on('mouseover', (event: any) => {
|
|
60
|
-
const id = event?.id;
|
|
61
|
-
|
|
62
|
-
// Set rail mouse state
|
|
63
|
-
state.mouseInRail = true;
|
|
64
|
-
|
|
65
|
-
// Clear any existing hover timer
|
|
66
|
-
clearTimeout(state.hoverTimer as number);
|
|
67
|
-
state.hoverTimer = null;
|
|
68
|
-
|
|
69
|
-
// Only schedule drawer operations if there's an ID
|
|
70
|
-
if (id) {
|
|
71
|
-
// Check if this section has items
|
|
72
|
-
if (state.items[id]?.items?.length > 0) {
|
|
73
|
-
// Has items - schedule drawer opening
|
|
74
|
-
state.hoverTimer = window.setTimeout(() => {
|
|
75
|
-
updateDrawerContent(id);
|
|
76
|
-
}, config.hoverDelay) as unknown as number;
|
|
77
|
-
} else {
|
|
78
|
-
// No items - hide drawer after a delay to prevent flickering
|
|
79
|
-
state.closeTimer = window.setTimeout(() => {
|
|
80
|
-
// Only hide if we're still in the rail but not in the drawer
|
|
81
|
-
if (state.mouseInRail && !state.mouseInDrawer) {
|
|
82
|
-
hideDrawer();
|
|
83
|
-
}
|
|
84
|
-
}, config.hoverDelay) as unknown as number;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
rail.on('mouseenter', () => {
|
|
90
|
-
state.mouseInRail = true;
|
|
91
|
-
|
|
92
|
-
// Clear any pending drawer close timer when entering rail
|
|
93
|
-
clearTimeout(state.closeTimer as number);
|
|
94
|
-
state.closeTimer = null;
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
rail.on('mouseleave', () => {
|
|
98
|
-
state.mouseInRail = false;
|
|
99
|
-
|
|
100
|
-
// Clear any existing hover timer
|
|
101
|
-
clearTimeout(state.hoverTimer as number);
|
|
102
|
-
state.hoverTimer = null;
|
|
103
|
-
|
|
104
|
-
// Only set timer to hide drawer if we're not in drawer either
|
|
105
|
-
if (!state.mouseInDrawer) {
|
|
106
|
-
state.closeTimer = window.setTimeout(() => {
|
|
107
|
-
// Double-check we're still not in rail or drawer before hiding
|
|
108
|
-
if (!state.mouseInRail && !state.mouseInDrawer) {
|
|
109
|
-
hideDrawer();
|
|
110
|
-
}
|
|
111
|
-
}, config.closeDelay) as unknown as number;
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Registers drawer navigation event handlers
|
|
118
|
-
*
|
|
119
|
-
* @param state - System state
|
|
120
|
-
* @param config - System configuration
|
|
121
|
-
* @param hideDrawer - Function to hide the drawer
|
|
122
|
-
* @param systemApi - Reference to the public system API
|
|
123
|
-
*/
|
|
124
|
-
export const registerDrawerEvents = (
|
|
125
|
-
state: NavigationSystemState,
|
|
126
|
-
config: any,
|
|
127
|
-
hideDrawer: () => void,
|
|
128
|
-
systemApi: any
|
|
129
|
-
): void => {
|
|
130
|
-
const drawer = state.drawer;
|
|
131
|
-
if (!drawer) return;
|
|
132
|
-
|
|
133
|
-
// Use the component's native event system
|
|
134
|
-
if (typeof drawer.on === 'function') {
|
|
135
|
-
// Handle item selection
|
|
136
|
-
drawer.on('change', (event: any) => {
|
|
137
|
-
const id = event.id;
|
|
138
|
-
|
|
139
|
-
state.activeSubsection = id;
|
|
140
|
-
|
|
141
|
-
// If configuration specifies to hide drawer on click, do so
|
|
142
|
-
if (config.hideDrawerOnClick) {
|
|
143
|
-
hideDrawer();
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Emit item selection event
|
|
147
|
-
if (systemApi.onItemSelect) {
|
|
148
|
-
systemApi.onItemSelect(event);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
// Handle mouseenter/mouseleave for drawer
|
|
153
|
-
drawer.on('mouseenter', () => {
|
|
154
|
-
state.mouseInDrawer = true;
|
|
155
|
-
|
|
156
|
-
// Clear any hover and close timers
|
|
157
|
-
clearTimeout(state.hoverTimer as number);
|
|
158
|
-
clearTimeout(state.closeTimer as number);
|
|
159
|
-
state.hoverTimer = null;
|
|
160
|
-
state.closeTimer = null;
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
drawer.on('mouseleave', () => {
|
|
164
|
-
state.mouseInDrawer = false;
|
|
165
|
-
|
|
166
|
-
// Only set timer to hide drawer if we're not in rail
|
|
167
|
-
if (!state.mouseInRail) {
|
|
168
|
-
state.closeTimer = window.setTimeout(() => {
|
|
169
|
-
// Double-check we're still not in drawer or rail before hiding
|
|
170
|
-
if (!state.mouseInDrawer && !state.mouseInRail) {
|
|
171
|
-
hideDrawer();
|
|
172
|
-
}
|
|
173
|
-
}, config.closeDelay) as unknown as number;
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Sets up window resize and orientation change handling
|
|
181
|
-
*
|
|
182
|
-
* @param state - System state
|
|
183
|
-
* @param checkMobileState - Function to check and update mobile state
|
|
184
|
-
*/
|
|
185
|
-
export const setupResponsiveHandling = (
|
|
186
|
-
state: NavigationSystemState,
|
|
187
|
-
checkMobileState: () => void
|
|
188
|
-
): void => {
|
|
189
|
-
// Setup responsive behavior
|
|
190
|
-
if (window.ResizeObserver) {
|
|
191
|
-
// Use ResizeObserver for better performance
|
|
192
|
-
state.resizeObserver = new ResizeObserver(() => {
|
|
193
|
-
checkMobileState();
|
|
194
|
-
});
|
|
195
|
-
state.resizeObserver.observe(document.body);
|
|
196
|
-
} else {
|
|
197
|
-
// Fallback to window resize event
|
|
198
|
-
window.addEventListener('resize', checkMobileState);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
// Listen for orientation changes on mobile
|
|
202
|
-
window.addEventListener('orientationchange', () => {
|
|
203
|
-
// Small delay to ensure dimensions have updated
|
|
204
|
-
setTimeout(checkMobileState, 100);
|
|
205
|
-
});
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Cleans up all event handlers and resources
|
|
210
|
-
*
|
|
211
|
-
* @param state - System state
|
|
212
|
-
* @param checkMobileState - Function reference to remove event handlers
|
|
213
|
-
*/
|
|
214
|
-
export const cleanupEvents = (
|
|
215
|
-
state: NavigationSystemState,
|
|
216
|
-
checkMobileState: () => void
|
|
217
|
-
): void => {
|
|
218
|
-
// Clean up resize observer
|
|
219
|
-
if (state.resizeObserver) {
|
|
220
|
-
state.resizeObserver.disconnect();
|
|
221
|
-
state.resizeObserver = null;
|
|
222
|
-
} else {
|
|
223
|
-
window.removeEventListener('resize', checkMobileState);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// Remove orientation change listener
|
|
227
|
-
window.removeEventListener('orientationchange', checkMobileState);
|
|
228
|
-
|
|
229
|
-
// Remove outside click handler
|
|
230
|
-
if (state.outsideClickHandler) {
|
|
231
|
-
const eventType = ('ontouchend' in window) ? 'touchend' : 'click';
|
|
232
|
-
document.removeEventListener(eventType, state.outsideClickHandler);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// Clear timers
|
|
236
|
-
clearTimeout(state.hoverTimer as number);
|
|
237
|
-
clearTimeout(state.closeTimer as number);
|
|
238
|
-
state.hoverTimer = null;
|
|
239
|
-
state.closeTimer = null;
|
|
240
|
-
};
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
// src/components/navigation/system/index.ts
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
NavigationSystemConfig,
|
|
5
|
-
NavigationSystemState,
|
|
6
|
-
NavigationSystem,
|
|
7
|
-
ViewChangeEvent
|
|
8
|
-
} from './types';
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
createInitialState,
|
|
12
|
-
createConfig,
|
|
13
|
-
createMobileConfig
|
|
14
|
-
} from './state';
|
|
15
|
-
|
|
16
|
-
import {
|
|
17
|
-
createRailNavigation,
|
|
18
|
-
createDrawerNavigation,
|
|
19
|
-
updateDrawerContent,
|
|
20
|
-
showDrawer as showDrawerCore,
|
|
21
|
-
hideDrawer as hideDrawerCore,
|
|
22
|
-
isDrawerVisible as isDrawerVisibleCore,
|
|
23
|
-
checkMobileState as checkMobileStateCore,
|
|
24
|
-
cleanupResources,
|
|
25
|
-
navigateTo as navigateToCore
|
|
26
|
-
} from './core';
|
|
27
|
-
|
|
28
|
-
import {
|
|
29
|
-
registerRailEvents,
|
|
30
|
-
registerDrawerEvents,
|
|
31
|
-
setupResponsiveHandling,
|
|
32
|
-
cleanupEvents
|
|
33
|
-
} from './events';
|
|
34
|
-
|
|
35
|
-
import {
|
|
36
|
-
setupMobileMode as setupMobileModeCore,
|
|
37
|
-
teardownMobileMode
|
|
38
|
-
} from './mobile';
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Creates a complete navigation system with synchronized rail and drawer components
|
|
42
|
-
*
|
|
43
|
-
* @param options - System configuration options
|
|
44
|
-
* @returns Navigation system API
|
|
45
|
-
*/
|
|
46
|
-
export const createNavigationSystem = (options: NavigationSystemConfig = {}): NavigationSystem => {
|
|
47
|
-
// Initialize state and configuration
|
|
48
|
-
const state = createInitialState(options);
|
|
49
|
-
const config = createConfig(options);
|
|
50
|
-
const mobileConfig = createMobileConfig(options);
|
|
51
|
-
|
|
52
|
-
// Create system API object with placeholders
|
|
53
|
-
const system: NavigationSystem = {
|
|
54
|
-
initialize: () => system,
|
|
55
|
-
cleanup: () => {},
|
|
56
|
-
navigateTo: () => {},
|
|
57
|
-
getRail: () => state.rail,
|
|
58
|
-
getDrawer: () => state.drawer,
|
|
59
|
-
getActiveSection: () => state.activeSection,
|
|
60
|
-
getActiveSubsection: () => state.activeSubsection,
|
|
61
|
-
showDrawer: () => {},
|
|
62
|
-
hideDrawer: () => {},
|
|
63
|
-
isDrawerVisible: () => false,
|
|
64
|
-
configure: () => system,
|
|
65
|
-
setProcessingChange: () => {},
|
|
66
|
-
isProcessingChange: () => false,
|
|
67
|
-
isMobile: () => state.isMobile,
|
|
68
|
-
checkMobileState: () => {},
|
|
69
|
-
onSectionChange: undefined,
|
|
70
|
-
onItemSelect: undefined,
|
|
71
|
-
onViewChange: undefined
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
// Implementation functions that use the state
|
|
75
|
-
const showDrawer = () => showDrawerCore(state, mobileConfig);
|
|
76
|
-
const hideDrawer = () => hideDrawerCore(state, mobileConfig);
|
|
77
|
-
const isDrawerVisible = () => isDrawerVisibleCore(state);
|
|
78
|
-
|
|
79
|
-
const updateDrawerContentWrapper = (sectionId: string) => {
|
|
80
|
-
updateDrawerContent(state, sectionId, showDrawer, hideDrawer);
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
const setupMobileMode = () => {
|
|
84
|
-
setupMobileModeCore(
|
|
85
|
-
state,
|
|
86
|
-
mobileConfig,
|
|
87
|
-
hideDrawer,
|
|
88
|
-
isDrawerVisible,
|
|
89
|
-
showDrawer
|
|
90
|
-
);
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
const checkMobileState = () => {
|
|
94
|
-
checkMobileStateCore(
|
|
95
|
-
state,
|
|
96
|
-
mobileConfig,
|
|
97
|
-
setupMobileMode,
|
|
98
|
-
() => teardownMobileMode(state, mobileConfig),
|
|
99
|
-
system
|
|
100
|
-
);
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
const navigateTo = (section: string, subsection?: string, silent?: boolean) => {
|
|
104
|
-
navigateToCore(state, section, subsection, silent);
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
// Implementation of the initialize method
|
|
108
|
-
const initialize = (): NavigationSystem => {
|
|
109
|
-
// Create rail component
|
|
110
|
-
state.rail = createRailNavigation(state, config);
|
|
111
|
-
|
|
112
|
-
// Create drawer component
|
|
113
|
-
state.drawer = createDrawerNavigation(state, config);
|
|
114
|
-
|
|
115
|
-
// Register event handlers
|
|
116
|
-
registerRailEvents(state, config, updateDrawerContentWrapper, showDrawer, hideDrawer, system);
|
|
117
|
-
registerDrawerEvents(state, config, hideDrawer, system);
|
|
118
|
-
|
|
119
|
-
// Set up responsive behavior
|
|
120
|
-
setupResponsiveHandling(state, checkMobileState);
|
|
121
|
-
|
|
122
|
-
// Set active section if specified
|
|
123
|
-
if (options.activeSection && state.items[options.activeSection]) {
|
|
124
|
-
state.activeSection = options.activeSection;
|
|
125
|
-
|
|
126
|
-
if (state.rail) {
|
|
127
|
-
state.rail.setActive(options.activeSection);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// Update drawer content without showing it
|
|
131
|
-
updateDrawerContentWrapper(options.activeSection);
|
|
132
|
-
|
|
133
|
-
// Only show drawer if expanded is explicitly true
|
|
134
|
-
if (options.expanded === true) {
|
|
135
|
-
showDrawer();
|
|
136
|
-
} else {
|
|
137
|
-
// Explicitly ensure drawer is hidden
|
|
138
|
-
hideDrawer();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Check initial mobile state
|
|
143
|
-
checkMobileState();
|
|
144
|
-
|
|
145
|
-
return system;
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
// Implementation of the cleanup method
|
|
149
|
-
const cleanup = (): void => {
|
|
150
|
-
cleanupEvents(state, checkMobileState);
|
|
151
|
-
cleanupResources(state);
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
// Configure method implementation
|
|
155
|
-
const configure = (newConfig: Partial<NavigationSystemConfig>): NavigationSystem => {
|
|
156
|
-
Object.assign(options, newConfig);
|
|
157
|
-
Object.assign(config, createConfig({...options, ...newConfig}));
|
|
158
|
-
Object.assign(mobileConfig, createMobileConfig({...options, ...newConfig}));
|
|
159
|
-
return system;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
// Assign implementations to system object
|
|
163
|
-
system.initialize = initialize;
|
|
164
|
-
system.cleanup = cleanup;
|
|
165
|
-
system.navigateTo = navigateTo;
|
|
166
|
-
system.showDrawer = showDrawer;
|
|
167
|
-
system.hideDrawer = hideDrawer;
|
|
168
|
-
system.isDrawerVisible = isDrawerVisible;
|
|
169
|
-
system.configure = configure;
|
|
170
|
-
system.setProcessingChange = (isProcessing: boolean) => {
|
|
171
|
-
state.processingChange = isProcessing;
|
|
172
|
-
};
|
|
173
|
-
system.isProcessingChange = () => state.processingChange;
|
|
174
|
-
system.isMobile = () => state.isMobile;
|
|
175
|
-
system.checkMobileState = checkMobileState;
|
|
176
|
-
|
|
177
|
-
// Return the uninitialized system
|
|
178
|
-
return system;
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
export default createNavigationSystem;
|
|
182
|
-
|
|
183
|
-
// Re-export types for external use
|
|
184
|
-
export * from './types';
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
// src/components/navigation/system/mobile.ts
|
|
2
|
-
|
|
3
|
-
import { NavigationSystemState } from './types';
|
|
4
|
-
import {
|
|
5
|
-
hasTouchSupport,
|
|
6
|
-
normalizeEvent,
|
|
7
|
-
TOUCH_CONFIG,
|
|
8
|
-
TOUCH_TARGETS
|
|
9
|
-
} from '../../../core/utils/mobile';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Creates and appends overlay element for mobile
|
|
13
|
-
*
|
|
14
|
-
* @param state - System state
|
|
15
|
-
* @param mobileConfig - Mobile configuration
|
|
16
|
-
* @param hideDrawer - Function to hide the drawer
|
|
17
|
-
* @returns Overlay element
|
|
18
|
-
*/
|
|
19
|
-
export const createOverlay = (
|
|
20
|
-
state: NavigationSystemState,
|
|
21
|
-
mobileConfig: any,
|
|
22
|
-
hideDrawer: () => void
|
|
23
|
-
): HTMLElement => {
|
|
24
|
-
if (state.overlayElement) return state.overlayElement;
|
|
25
|
-
|
|
26
|
-
state.overlayElement = document.createElement('div');
|
|
27
|
-
state.overlayElement.className = mobileConfig.overlayClass;
|
|
28
|
-
state.overlayElement.setAttribute('aria-hidden', 'true');
|
|
29
|
-
document.body.appendChild(state.overlayElement);
|
|
30
|
-
|
|
31
|
-
state.overlayElement.addEventListener('click', (event) => {
|
|
32
|
-
if (event.target === state.overlayElement) {
|
|
33
|
-
hideDrawer();
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
return state.overlayElement;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Creates and adds close button to the drawer
|
|
42
|
-
*
|
|
43
|
-
* @param state - System state
|
|
44
|
-
* @param mobileConfig - Mobile configuration
|
|
45
|
-
* @param hideDrawer - Function to hide the drawer
|
|
46
|
-
* @returns Close button element
|
|
47
|
-
*/
|
|
48
|
-
export const createCloseButton = (
|
|
49
|
-
state: NavigationSystemState,
|
|
50
|
-
mobileConfig: any,
|
|
51
|
-
hideDrawer: () => void
|
|
52
|
-
): HTMLElement | null => {
|
|
53
|
-
if (!state.drawer || state.closeButtonElement) return null;
|
|
54
|
-
|
|
55
|
-
state.closeButtonElement = document.createElement('button');
|
|
56
|
-
state.closeButtonElement.className = mobileConfig.closeButtonClass;
|
|
57
|
-
state.closeButtonElement.setAttribute('aria-label', 'Close navigation');
|
|
58
|
-
state.closeButtonElement.innerHTML = `
|
|
59
|
-
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
60
|
-
<line x1="18" y1="6" x2="6" y2="18"></line>
|
|
61
|
-
<line x1="6" y1="6" x2="18" y2="18"></line>
|
|
62
|
-
</svg>
|
|
63
|
-
`;
|
|
64
|
-
|
|
65
|
-
// Handle click event
|
|
66
|
-
state.closeButtonElement.addEventListener('click', () => {
|
|
67
|
-
hideDrawer();
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
// Apply touch-friendly styles if needed
|
|
71
|
-
if (hasTouchSupport() && mobileConfig.optimizeForTouch) {
|
|
72
|
-
state.closeButtonElement.style.minWidth = `${TOUCH_TARGETS.COMFORTABLE}px`;
|
|
73
|
-
state.closeButtonElement.style.minHeight = `${TOUCH_TARGETS.COMFORTABLE}px`;
|
|
74
|
-
|
|
75
|
-
// Add touch feedback
|
|
76
|
-
state.closeButtonElement.addEventListener('touchstart', () => {
|
|
77
|
-
state.closeButtonElement.classList.add('active');
|
|
78
|
-
}, { passive: true });
|
|
79
|
-
|
|
80
|
-
state.closeButtonElement.addEventListener('touchend', () => {
|
|
81
|
-
setTimeout(() => {
|
|
82
|
-
state.closeButtonElement.classList.remove('active');
|
|
83
|
-
}, TOUCH_CONFIG.FEEDBACK_DURATION);
|
|
84
|
-
}, { passive: true });
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
state.drawer.element.appendChild(state.closeButtonElement);
|
|
88
|
-
return state.closeButtonElement;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Sets up mobile mode features
|
|
93
|
-
*
|
|
94
|
-
* @param state - System state
|
|
95
|
-
* @param mobileConfig - Mobile configuration
|
|
96
|
-
* @param hideDrawer - Function to hide the drawer
|
|
97
|
-
* @param isDrawerVisible - Function to check if drawer is visible
|
|
98
|
-
*/
|
|
99
|
-
export const setupMobileMode = (
|
|
100
|
-
state: NavigationSystemState,
|
|
101
|
-
mobileConfig: any,
|
|
102
|
-
hideDrawer: () => void,
|
|
103
|
-
isDrawerVisible: () => boolean
|
|
104
|
-
): void => {
|
|
105
|
-
const drawer = state.drawer;
|
|
106
|
-
const rail = state.rail;
|
|
107
|
-
|
|
108
|
-
if (!drawer || !rail) return;
|
|
109
|
-
|
|
110
|
-
// Create mobile UI elements
|
|
111
|
-
createOverlay(state, mobileConfig, hideDrawer);
|
|
112
|
-
createCloseButton(state, mobileConfig, hideDrawer);
|
|
113
|
-
|
|
114
|
-
// Setup outside click handling
|
|
115
|
-
setupOutsideClickHandling(state, mobileConfig, hideDrawer, isDrawerVisible);
|
|
116
|
-
|
|
117
|
-
// Setup touch gestures if enabled
|
|
118
|
-
if (mobileConfig.enableSwipeGestures && hasTouchSupport()) {
|
|
119
|
-
setupTouchGestures(state, hideDrawer, isDrawerVisible);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Hide drawer initially in mobile mode
|
|
123
|
-
hideDrawer();
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Sets up outside click handling for mobile
|
|
128
|
-
*
|
|
129
|
-
* @param state - System state
|
|
130
|
-
* @param mobileConfig - Mobile configuration
|
|
131
|
-
* @param hideDrawer - Function to hide the drawer
|
|
132
|
-
* @param isDrawerVisible - Function to check if drawer is visible
|
|
133
|
-
*/
|
|
134
|
-
export const setupOutsideClickHandling = (
|
|
135
|
-
state: NavigationSystemState,
|
|
136
|
-
mobileConfig: any,
|
|
137
|
-
hideDrawer: () => void,
|
|
138
|
-
isDrawerVisible: () => boolean
|
|
139
|
-
): void => {
|
|
140
|
-
if (!mobileConfig.hideOnClickOutside) return;
|
|
141
|
-
|
|
142
|
-
// Only set up once
|
|
143
|
-
if (state.outsideClickHandlerSet) return;
|
|
144
|
-
state.outsideClickHandlerSet = true;
|
|
145
|
-
|
|
146
|
-
// Use either click or touchend event depending on device capability
|
|
147
|
-
const eventType = hasTouchSupport() ? 'touchend' : 'click';
|
|
148
|
-
|
|
149
|
-
// The handler function
|
|
150
|
-
const handleOutsideClick = (event: Event) => {
|
|
151
|
-
if (!state.isMobile || !isDrawerVisible()) return;
|
|
152
|
-
|
|
153
|
-
const normalizedEvent = normalizeEvent(event);
|
|
154
|
-
const target = normalizedEvent.target as HTMLElement;
|
|
155
|
-
|
|
156
|
-
// Don't close if clicking on drawer, rail, or excluded elements
|
|
157
|
-
if (state.drawer.element.contains(target) ||
|
|
158
|
-
state.rail.element.contains(target)) {
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// Close drawer - it's an outside click/touch
|
|
163
|
-
hideDrawer();
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
// Store handler for cleanup
|
|
167
|
-
state.outsideClickHandler = handleOutsideClick;
|
|
168
|
-
|
|
169
|
-
// Add listener
|
|
170
|
-
document.addEventListener(eventType, handleOutsideClick,
|
|
171
|
-
hasTouchSupport() ? { passive: true } : false);
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Sets up touch gestures for mobile
|
|
176
|
-
*
|
|
177
|
-
* @param state - System state
|
|
178
|
-
* @param hideDrawer - Function to hide the drawer
|
|
179
|
-
* @param isDrawerVisible - Function to check if drawer is visible
|
|
180
|
-
*/
|
|
181
|
-
export const setupTouchGestures = (
|
|
182
|
-
state: NavigationSystemState,
|
|
183
|
-
hideDrawer: () => void,
|
|
184
|
-
isDrawerVisible: () => boolean,
|
|
185
|
-
showDrawer?: () => void
|
|
186
|
-
): void => {
|
|
187
|
-
const drawer = state.drawer;
|
|
188
|
-
const rail = state.rail;
|
|
189
|
-
|
|
190
|
-
if (!drawer || !rail) return;
|
|
191
|
-
|
|
192
|
-
let touchStartX = 0;
|
|
193
|
-
let touchStartY = 0;
|
|
194
|
-
|
|
195
|
-
// Rail swipe right to open drawer
|
|
196
|
-
rail.element.addEventListener('touchstart', (event: TouchEvent) => {
|
|
197
|
-
const touch = event.touches[0];
|
|
198
|
-
touchStartX = touch.clientX;
|
|
199
|
-
touchStartY = touch.clientY;
|
|
200
|
-
}, { passive: true });
|
|
201
|
-
|
|
202
|
-
rail.element.addEventListener('touchmove', (event: TouchEvent) => {
|
|
203
|
-
if (!state.isMobile || isDrawerVisible() || !showDrawer) return;
|
|
204
|
-
|
|
205
|
-
const touch = event.touches[0];
|
|
206
|
-
const deltaX = touch.clientX - touchStartX;
|
|
207
|
-
const deltaY = touch.clientY - touchStartY;
|
|
208
|
-
|
|
209
|
-
// Only consider horizontal swipes
|
|
210
|
-
if (Math.abs(deltaX) > Math.abs(deltaY) &&
|
|
211
|
-
deltaX > TOUCH_CONFIG.SWIPE_THRESHOLD) {
|
|
212
|
-
showDrawer();
|
|
213
|
-
}
|
|
214
|
-
}, { passive: true });
|
|
215
|
-
|
|
216
|
-
// Drawer swipe left to close
|
|
217
|
-
drawer.element.addEventListener('touchstart', (event: TouchEvent) => {
|
|
218
|
-
const touch = event.touches[0];
|
|
219
|
-
touchStartX = touch.clientX;
|
|
220
|
-
touchStartY = touch.clientY;
|
|
221
|
-
}, { passive: true });
|
|
222
|
-
|
|
223
|
-
// Use touchmove with transform for visual feedback
|
|
224
|
-
drawer.element.addEventListener('touchmove', (event: TouchEvent) => {
|
|
225
|
-
if (!state.isMobile || !isDrawerVisible()) return;
|
|
226
|
-
|
|
227
|
-
const touch = event.touches[0];
|
|
228
|
-
const deltaX = touch.clientX - touchStartX;
|
|
229
|
-
|
|
230
|
-
// Only apply transform for leftward swipes
|
|
231
|
-
if (deltaX < 0) {
|
|
232
|
-
// Apply transform with resistance
|
|
233
|
-
drawer.element.style.transform = `translateX(${deltaX / 2}px)`;
|
|
234
|
-
|
|
235
|
-
// Close if threshold reached
|
|
236
|
-
if (deltaX < -TOUCH_CONFIG.SWIPE_THRESHOLD) {
|
|
237
|
-
hideDrawer();
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}, { passive: true });
|
|
241
|
-
|
|
242
|
-
// Reset transforms when touch ends
|
|
243
|
-
drawer.element.addEventListener('touchend', () => {
|
|
244
|
-
if (drawer.element.style.transform) {
|
|
245
|
-
drawer.element.style.transition = 'transform 0.2s ease';
|
|
246
|
-
drawer.element.style.transform = '';
|
|
247
|
-
|
|
248
|
-
setTimeout(() => {
|
|
249
|
-
drawer.element.style.transition = '';
|
|
250
|
-
}, 200);
|
|
251
|
-
}
|
|
252
|
-
}, { passive: true });
|
|
253
|
-
};
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Tears down mobile-specific features
|
|
257
|
-
*
|
|
258
|
-
* @param state - System state
|
|
259
|
-
* @param mobileConfig - Mobile configuration
|
|
260
|
-
*/
|
|
261
|
-
export const teardownMobileMode = (
|
|
262
|
-
state: NavigationSystemState,
|
|
263
|
-
mobileConfig: any
|
|
264
|
-
): void => {
|
|
265
|
-
// Hide overlay
|
|
266
|
-
if (state.overlayElement) {
|
|
267
|
-
state.overlayElement.classList.remove('active');
|
|
268
|
-
state.overlayElement.setAttribute('aria-hidden', 'true');
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
// Hide close button
|
|
272
|
-
if (state.closeButtonElement) {
|
|
273
|
-
state.closeButtonElement.style.display = 'none';
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
// Remove body scroll lock if applied
|
|
277
|
-
document.body.classList.remove(mobileConfig.bodyLockClass);
|
|
278
|
-
};
|