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,131 +0,0 @@
|
|
|
1
|
-
// src/core/state/lifecycle.ts
|
|
2
|
-
|
|
3
|
-
import { createEmitter, Emitter } from './emitter';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Component managers that can be managed by the lifecycle
|
|
7
|
-
*/
|
|
8
|
-
export interface LifecycleManagers {
|
|
9
|
-
events?: {
|
|
10
|
-
destroy: () => void;
|
|
11
|
-
};
|
|
12
|
-
text?: {
|
|
13
|
-
getElement: () => HTMLElement | null;
|
|
14
|
-
};
|
|
15
|
-
icon?: {
|
|
16
|
-
getElement: () => HTMLElement | null;
|
|
17
|
-
};
|
|
18
|
-
[key: string]: any;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Lifecycle manager interface
|
|
23
|
-
*/
|
|
24
|
-
export interface LifecycleManager {
|
|
25
|
-
/**
|
|
26
|
-
* Registers a handler for mount event
|
|
27
|
-
* @param handler - Function to call when component is mounted
|
|
28
|
-
* @returns Unsubscribe function
|
|
29
|
-
*/
|
|
30
|
-
onMount: (handler: () => void) => () => void;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Registers a handler for unmount event
|
|
34
|
-
* @param handler - Function to call when component is unmounted
|
|
35
|
-
* @returns Unsubscribe function
|
|
36
|
-
*/
|
|
37
|
-
onUnmount: (handler: () => void) => () => void;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Mounts the component
|
|
41
|
-
*/
|
|
42
|
-
mount: () => void;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Unmounts the component
|
|
46
|
-
*/
|
|
47
|
-
unmount: () => void;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Checks if component is mounted
|
|
51
|
-
* @returns true if mounted
|
|
52
|
-
*/
|
|
53
|
-
isMounted: () => boolean;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Destroys the component
|
|
57
|
-
*/
|
|
58
|
-
destroy: () => void;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Creates a lifecycle manager for a component
|
|
63
|
-
*
|
|
64
|
-
* @param element - Component's DOM element
|
|
65
|
-
* @param managers - Optional component managers to integrate with lifecycle
|
|
66
|
-
* @returns Lifecycle manager interface
|
|
67
|
-
*/
|
|
68
|
-
export const createLifecycle = (
|
|
69
|
-
element: HTMLElement,
|
|
70
|
-
managers: LifecycleManagers = {}
|
|
71
|
-
): LifecycleManager => {
|
|
72
|
-
let mounted = false;
|
|
73
|
-
const emitter: Emitter = createEmitter();
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
// Mount/Unmount state management
|
|
77
|
-
onMount: (handler: () => void) => emitter.on('mount', handler),
|
|
78
|
-
onUnmount: (handler: () => void) => emitter.on('unmount', handler),
|
|
79
|
-
|
|
80
|
-
mount: () => {
|
|
81
|
-
if (!mounted) {
|
|
82
|
-
mounted = true;
|
|
83
|
-
emitter.emit('mount');
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
unmount: () => {
|
|
88
|
-
if (mounted) {
|
|
89
|
-
mounted = false;
|
|
90
|
-
emitter.emit('unmount');
|
|
91
|
-
emitter.clear();
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
isMounted: () => mounted,
|
|
96
|
-
|
|
97
|
-
// Cleanup and destruction
|
|
98
|
-
destroy() {
|
|
99
|
-
// First trigger unmount
|
|
100
|
-
if (mounted) {
|
|
101
|
-
this.unmount();
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Clean up all event listeners
|
|
105
|
-
if (managers.events) {
|
|
106
|
-
managers.events.destroy();
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Clean up text element
|
|
110
|
-
if (managers.text) {
|
|
111
|
-
const textElement = managers.text.getElement();
|
|
112
|
-
if (textElement) {
|
|
113
|
-
textElement.remove();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Clean up icon element
|
|
118
|
-
if (managers.icon) {
|
|
119
|
-
const iconElement = managers.icon.getElement();
|
|
120
|
-
if (iconElement) {
|
|
121
|
-
iconElement.remove();
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
// Remove the main element
|
|
126
|
-
if (element) {
|
|
127
|
-
element.remove();
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
};
|
package/src/core/state/store.ts
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
// src/core/state/store.ts
|
|
2
|
-
|
|
3
|
-
import { createEmitter, Emitter } from './emitter';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* State store options
|
|
7
|
-
*/
|
|
8
|
-
export interface StoreOptions<T> {
|
|
9
|
-
/**
|
|
10
|
-
* Middleware functions that process state changes
|
|
11
|
-
*/
|
|
12
|
-
middleware?: Array<(newState: T, oldState: T) => T>;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* State selector function type
|
|
17
|
-
*/
|
|
18
|
-
export type Selector<T, R> = (state: T) => R;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* State computation function type for derived state
|
|
22
|
-
*/
|
|
23
|
-
export type Computation<T, R> = (state: T) => R;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* State updater function type
|
|
27
|
-
*/
|
|
28
|
-
export type Updater<T> = (state: T) => T;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* State store interface
|
|
32
|
-
*/
|
|
33
|
-
export interface Store<T> {
|
|
34
|
-
/**
|
|
35
|
-
* Gets current state including derived values
|
|
36
|
-
* @returns Current state
|
|
37
|
-
*/
|
|
38
|
-
getState: () => T;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Updates state
|
|
42
|
-
* @param update - State update object or updater function
|
|
43
|
-
*/
|
|
44
|
-
setState: (update: Partial<T> | Updater<T>) => void;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Subscribes to state changes
|
|
48
|
-
* @param listener - Change listener
|
|
49
|
-
* @returns Unsubscribe function
|
|
50
|
-
*/
|
|
51
|
-
subscribe: (listener: (state: T, oldState: T) => void) => () => void;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Creates a derived state value
|
|
55
|
-
* @param key - Derived state key
|
|
56
|
-
* @param computation - Function to compute derived value
|
|
57
|
-
* @returns Function to remove derived state
|
|
58
|
-
*/
|
|
59
|
-
derive: <K extends string, R>(key: K, computation: Computation<T, R>) => () => void;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Selects a specific slice of state
|
|
63
|
-
* @param selector - State selector function
|
|
64
|
-
* @returns Selected state
|
|
65
|
-
*/
|
|
66
|
-
select: <R>(selector: Selector<T, R>) => R;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Resets state to initial values
|
|
70
|
-
*/
|
|
71
|
-
reset: () => void;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Creates a state store with support for derived state and middleware
|
|
76
|
-
*
|
|
77
|
-
* @param initialState - Initial state object
|
|
78
|
-
* @param options - Store options
|
|
79
|
-
* @returns State store interface
|
|
80
|
-
*/
|
|
81
|
-
export const createStore = <T extends Record<string, any>>(
|
|
82
|
-
initialState: T = {} as T,
|
|
83
|
-
options: StoreOptions<T> = {}
|
|
84
|
-
): Store<T> => {
|
|
85
|
-
let state = { ...initialState };
|
|
86
|
-
const emitter: Emitter = createEmitter();
|
|
87
|
-
const derivedStates = new Map<string, Computation<T, any>>();
|
|
88
|
-
const middleware = options.middleware || [];
|
|
89
|
-
|
|
90
|
-
const notifyListeners = (newState: T, oldState: T): void => {
|
|
91
|
-
emitter.emit('change', newState, oldState);
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
const applyMiddleware = (newState: T, oldState: T): T => {
|
|
95
|
-
return middleware.reduce((state, fn) => fn(state, oldState), newState);
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
return {
|
|
99
|
-
/**
|
|
100
|
-
* Gets current state including derived values
|
|
101
|
-
* @returns Current state
|
|
102
|
-
*/
|
|
103
|
-
getState: (): T => {
|
|
104
|
-
const derivedValues: Record<string, any> = {};
|
|
105
|
-
derivedStates.forEach((compute, key) => {
|
|
106
|
-
derivedValues[key] = compute(state);
|
|
107
|
-
});
|
|
108
|
-
return { ...state, ...derivedValues };
|
|
109
|
-
},
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Updates state
|
|
113
|
-
* @param update - State update object or updater function
|
|
114
|
-
*/
|
|
115
|
-
setState: (update: Partial<T> | Updater<T>): void => {
|
|
116
|
-
const oldState = { ...state };
|
|
117
|
-
const newState = typeof update === 'function'
|
|
118
|
-
? update(state)
|
|
119
|
-
: { ...state, ...update };
|
|
120
|
-
|
|
121
|
-
state = applyMiddleware(newState as T, oldState);
|
|
122
|
-
notifyListeners(state, oldState);
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Subscribes to state changes
|
|
127
|
-
* @param listener - Change listener
|
|
128
|
-
* @returns Unsubscribe function
|
|
129
|
-
*/
|
|
130
|
-
subscribe: (listener: (state: T, oldState: T) => void): (() => void) =>
|
|
131
|
-
emitter.on('change', listener),
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Creates a derived state value
|
|
135
|
-
* @param key - Derived state key
|
|
136
|
-
* @param computation - Function to compute derived value
|
|
137
|
-
* @returns Function to remove derived state
|
|
138
|
-
*/
|
|
139
|
-
derive: <K extends string, R>(key: K, computation: Computation<T, R>): (() => void) => {
|
|
140
|
-
derivedStates.set(key, computation);
|
|
141
|
-
return () => {
|
|
142
|
-
derivedStates.delete(key);
|
|
143
|
-
};
|
|
144
|
-
},
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Selects a specific slice of state
|
|
148
|
-
* @param selector - State selector function
|
|
149
|
-
* @returns Selected state
|
|
150
|
-
*/
|
|
151
|
-
select: <R>(selector: Selector<T, R>): R => selector(state),
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Resets state to initial values
|
|
155
|
-
*/
|
|
156
|
-
reset: (): void => {
|
|
157
|
-
state = { ...initialState };
|
|
158
|
-
notifyListeners(state, {} as T);
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Example middleware that logs state changes
|
|
165
|
-
*
|
|
166
|
-
* @param newState - New state after change
|
|
167
|
-
* @param oldState - Previous state before change
|
|
168
|
-
* @returns Processed state (unchanged in this middleware)
|
|
169
|
-
*/
|
|
170
|
-
export const loggingMiddleware = <T extends Record<string, any>>(newState: T, oldState: T): T => {
|
|
171
|
-
console.log('State change:', {
|
|
172
|
-
old: oldState,
|
|
173
|
-
new: newState,
|
|
174
|
-
diff: Object.keys(newState).reduce((acc, key) => {
|
|
175
|
-
if (newState[key] !== oldState[key]) {
|
|
176
|
-
acc[key] = { from: oldState[key], to: newState[key] };
|
|
177
|
-
}
|
|
178
|
-
return acc;
|
|
179
|
-
}, {} as Record<string, { from: any; to: any }>)
|
|
180
|
-
});
|
|
181
|
-
return newState;
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Creates a derived state selector for filtering objects
|
|
186
|
-
*
|
|
187
|
-
* @param predicate - Filter predicate function
|
|
188
|
-
* @returns Computation function for derived state
|
|
189
|
-
*/
|
|
190
|
-
export const deriveFiltered = <T>(predicate: (value: any, key: string) => boolean) =>
|
|
191
|
-
(state: Record<string, T>): Record<string, T> =>
|
|
192
|
-
Object.keys(state).reduce((acc, key) => {
|
|
193
|
-
if (predicate(state[key], key)) {
|
|
194
|
-
acc[key] = state[key];
|
|
195
|
-
}
|
|
196
|
-
return acc;
|
|
197
|
-
}, {} as Record<string, T>);
|
package/src/core/utils/index.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
// src/core/utils/index.ts
|
|
2
|
-
|
|
3
|
-
export { isObject, byString } from './object';
|
|
4
|
-
export { normalizeEvent, hasTouchSupport, TOUCH_CONFIG, PASSIVE_EVENTS } from './mobile';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Normalizes class names by handling various input formats
|
|
8
|
-
* @param {...(string|string[])} classes - Classes to normalize
|
|
9
|
-
* @returns {string[]} Array of unique, non-empty class names
|
|
10
|
-
*/
|
|
11
|
-
export const normalizeClasses = (...classes: (string | string[])[]): string[] => {
|
|
12
|
-
return [...new Set(
|
|
13
|
-
classes
|
|
14
|
-
.flat()
|
|
15
|
-
.reduce((acc: string[], cls) => {
|
|
16
|
-
if (typeof cls === 'string') {
|
|
17
|
-
// Split space-separated classes and add them individually
|
|
18
|
-
acc.push(...cls.split(/\s+/));
|
|
19
|
-
}
|
|
20
|
-
return acc;
|
|
21
|
-
}, [])
|
|
22
|
-
.filter(Boolean) // Remove empty strings
|
|
23
|
-
)];
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Creates a transformer that only runs if a condition is met
|
|
28
|
-
* @param {Function} predicate - Condition to check
|
|
29
|
-
* @param {Function} transformer - Transformer to run if condition is true
|
|
30
|
-
* @returns {Function} Conditional transformer
|
|
31
|
-
*/
|
|
32
|
-
export const when = <T, C>(
|
|
33
|
-
predicate: (obj: T, context: C) => boolean,
|
|
34
|
-
transformer: (obj: T, context: C) => T
|
|
35
|
-
) =>
|
|
36
|
-
(obj: T, context: C): T =>
|
|
37
|
-
predicate(obj, context) ? transformer(obj, context) : obj;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Joins class names, filtering out falsy values
|
|
41
|
-
* @param {...(string | undefined | null | false)} classes - Class names to join
|
|
42
|
-
* @returns {string} Joined class names
|
|
43
|
-
*/
|
|
44
|
-
export const classNames = (...classes: (string | undefined | null | false)[]): string =>
|
|
45
|
-
classes.filter(Boolean).join(' ');
|
package/src/core/utils/mobile.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
// src/core/utils/mobile.ts
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Mobile device detection and capability checks
|
|
5
|
-
* This provides a centralized way to handle mobile-specific features and behaviors
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Interface for normalized event properties
|
|
10
|
-
*/
|
|
11
|
-
export interface NormalizedEvent {
|
|
12
|
-
clientX: number;
|
|
13
|
-
clientY: number;
|
|
14
|
-
pageX: number;
|
|
15
|
-
pageY: number;
|
|
16
|
-
target: EventTarget;
|
|
17
|
-
preventDefault: () => void;
|
|
18
|
-
stopPropagation: () => void;
|
|
19
|
-
type: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Detects if the current device is likely a mobile device
|
|
24
|
-
* Uses a combination of user agent and screen size checks for reliability
|
|
25
|
-
*/
|
|
26
|
-
export const isMobileDevice = (): boolean => {
|
|
27
|
-
const userAgent = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
|
|
28
|
-
navigator.userAgent
|
|
29
|
-
);
|
|
30
|
-
const screenSize = window.innerWidth <= 768;
|
|
31
|
-
return userAgent || screenSize;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Options for passive event listeners
|
|
36
|
-
*/
|
|
37
|
-
export const PASSIVE_EVENTS: AddEventListenerOptions = { passive: true };
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Configuration constants for mobile interactions
|
|
41
|
-
* Following WCAG guidelines and touch interaction best practices
|
|
42
|
-
*/
|
|
43
|
-
export const TOUCH_CONFIG = {
|
|
44
|
-
TARGET_SIZE: 44, // Minimum touch target size in pixels (WCAG standard)
|
|
45
|
-
FEEDBACK_DURATION: 200, // Duration of touch feedback animation in ms
|
|
46
|
-
TAP_THRESHOLD: 250, // Maximum duration for a touch to be considered a tap
|
|
47
|
-
SWIPE_THRESHOLD: 50 // Minimum distance for a touch to be considered a swipe
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Accessibility-minded touch target sizes
|
|
52
|
-
* Based on WCAG guidelines for touch targets
|
|
53
|
-
*/
|
|
54
|
-
export const TOUCH_TARGETS = {
|
|
55
|
-
MINIMUM: 44, // Minimum recommended size in pixels
|
|
56
|
-
COMFORTABLE: 48, // Comfortable touch target size
|
|
57
|
-
LARGE: 56 // Large touch target for primary actions
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Detects if the current device supports touch events
|
|
62
|
-
*/
|
|
63
|
-
export const hasTouchSupport = (): boolean => {
|
|
64
|
-
return 'ontouchstart' in window || navigator.maxTouchPoints > 0;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Normalizes both mouse and touch events into a consistent format
|
|
69
|
-
* This allows components to handle interactions uniformly
|
|
70
|
-
*/
|
|
71
|
-
export const normalizeEvent = (event: Event): NormalizedEvent => {
|
|
72
|
-
if ('touches' in event && event.touches.length > 0) {
|
|
73
|
-
const touch = event.touches[0];
|
|
74
|
-
return {
|
|
75
|
-
clientX: touch.clientX,
|
|
76
|
-
clientY: touch.clientY,
|
|
77
|
-
pageX: touch.pageX,
|
|
78
|
-
pageY: touch.pageY,
|
|
79
|
-
target: event.target as EventTarget,
|
|
80
|
-
preventDefault: () => event.preventDefault(),
|
|
81
|
-
stopPropagation: () => event.stopPropagation(),
|
|
82
|
-
type: event.type
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// For mouse events
|
|
87
|
-
const mouseEvent = event as MouseEvent;
|
|
88
|
-
return {
|
|
89
|
-
clientX: mouseEvent.clientX,
|
|
90
|
-
clientY: mouseEvent.clientY,
|
|
91
|
-
pageX: mouseEvent.pageX,
|
|
92
|
-
pageY: mouseEvent.pageY,
|
|
93
|
-
target: mouseEvent.target as EventTarget,
|
|
94
|
-
preventDefault: () => mouseEvent.preventDefault(),
|
|
95
|
-
stopPropagation: () => mouseEvent.stopPropagation(),
|
|
96
|
-
type: mouseEvent.type
|
|
97
|
-
};
|
|
98
|
-
};
|
package/src/core/utils/object.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// src/core/utils/object.ts
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Checks if a value is a plain object
|
|
5
|
-
* @param value - The value to check
|
|
6
|
-
* @returns true if the value is a plain object
|
|
7
|
-
*/
|
|
8
|
-
export const isObject = (value: unknown): value is Record<string, any> => {
|
|
9
|
-
return Boolean(
|
|
10
|
-
value &&
|
|
11
|
-
typeof value === 'object' &&
|
|
12
|
-
Object.getPrototypeOf(value) === Object.getPrototypeOf({})
|
|
13
|
-
);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Accesses a nested property of an object using a string path
|
|
18
|
-
* @param obj - The object to traverse
|
|
19
|
-
* @param path - The property path (e.g. 'user.address.street')
|
|
20
|
-
* @returns The value at the specified path or undefined if not found
|
|
21
|
-
*/
|
|
22
|
-
export const byString = <T extends Record<string, any>, R = any>(obj: T, path: string): R | undefined => {
|
|
23
|
-
// Convert indexes to properties
|
|
24
|
-
const normalizedPath = path.replace(/\[(\w+)\]/g, '.$1');
|
|
25
|
-
// Strip a leading dot
|
|
26
|
-
const cleanPath = normalizedPath.replace(/^\./, '');
|
|
27
|
-
const keys = cleanPath.split('.');
|
|
28
|
-
|
|
29
|
-
let result: any = obj;
|
|
30
|
-
|
|
31
|
-
for (let i = 0, n = keys.length; i < n; ++i) {
|
|
32
|
-
const key = keys[i];
|
|
33
|
-
if (key in result) {
|
|
34
|
-
result = result[key];
|
|
35
|
-
} else {
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return result as R;
|
|
41
|
-
};
|