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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mtrl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "A functional TypeScript/JavaScript component library with composable architecture based on Material Design 3",
|
|
5
5
|
"author": "floor",
|
|
6
6
|
"license": "MIT License",
|
|
@@ -20,7 +20,20 @@
|
|
|
20
20
|
"type-safe"
|
|
21
21
|
],
|
|
22
22
|
"type": "module",
|
|
23
|
-
"main": "index.
|
|
23
|
+
"main": "./dist/index.cjs",
|
|
24
|
+
"module": "./dist/index.js",
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"import": "./dist/index.js",
|
|
29
|
+
"require": "./dist/index.cjs",
|
|
30
|
+
"types": "./dist/index.d.ts"
|
|
31
|
+
},
|
|
32
|
+
"./styles": "./dist/styles.css"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist"
|
|
36
|
+
],
|
|
24
37
|
"scripts": {
|
|
25
38
|
"start": "bun run server.js",
|
|
26
39
|
"dev": "bun --watch server.js",
|
|
@@ -30,7 +43,8 @@
|
|
|
30
43
|
"build:js": "bun build demo/main.js --outfile=demo/dist/bundle.js --format=esm",
|
|
31
44
|
"build:css": "sass src/styles/main.scss:demo/dist/styles.css --style=compressed",
|
|
32
45
|
"build": "bun run build:js && bun run build:css",
|
|
33
|
-
"build:
|
|
46
|
+
"build:lib": "bun run build.ts",
|
|
47
|
+
"prepublishOnly": "bun run build:lib",
|
|
34
48
|
"test": "bun test",
|
|
35
49
|
"test:watch": "bun test --watch",
|
|
36
50
|
"test:coverage": "bun test --coverage",
|
|
@@ -39,7 +53,12 @@
|
|
|
39
53
|
"docs:js": "typedoc --options typedoc.simple.json",
|
|
40
54
|
"docs:alt": "bun generate-docs.js",
|
|
41
55
|
"docs:serve": "bun run --bun serve docs",
|
|
42
|
-
"docs:fix-errors": "tsc --noEmit --allowJs --skipLibCheck"
|
|
56
|
+
"docs:fix-errors": "tsc --noEmit --allowJs --skipLibCheck",
|
|
57
|
+
"ts:check": "tsc --noEmit --skipLibCheck",
|
|
58
|
+
"ts:next-error": "bun scripts/next-ts-error.ts",
|
|
59
|
+
"ts:fix": "bun scripts/fix-typescript.ts",
|
|
60
|
+
"ts:fix-file": "bun scripts/fix-typescript.ts",
|
|
61
|
+
"ts:fix-next": "bun scripts/fix-next-error.ts"
|
|
43
62
|
},
|
|
44
63
|
"repository": {
|
|
45
64
|
"type": "git",
|
package/.env
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Application settings
|
|
2
|
-
NODE_ENV=development
|
|
3
|
-
PORT=4000
|
|
4
|
-
# Compression settings
|
|
5
|
-
COMPRESSION_ENABLED=false
|
|
6
|
-
# Cache settings (shorter for development)
|
|
7
|
-
CACHE_STATIC_FILES=0 # No caching in development
|
|
8
|
-
CACHE_CSS_FILES=0
|
|
9
|
-
CACHE_PUBLIC_FILES=0
|
|
10
|
-
# Security settings
|
|
11
|
-
ENABLE_CORS=true
|
|
12
|
-
CORS_ORIGIN=*
|
|
13
|
-
# Application specific settings
|
|
14
|
-
APP_TITLE=MTRL Playground (DEV)
|
|
15
|
-
DEBUG_LEVEL=debug
|
package/.typedocignore
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Ignore files with TypeScript errors
|
|
2
|
-
src/components/snackbar/api.ts
|
|
3
|
-
src/components/snackbar/config.ts
|
|
4
|
-
src/components/snackbar/features.ts
|
|
5
|
-
src/components/snackbar/index.ts
|
|
6
|
-
src/components/snackbar/position.ts
|
|
7
|
-
src/components/snackbar/queue.ts
|
|
8
|
-
src/components/snackbar/snackbar.ts
|
|
9
|
-
src/components/chip/chip-set.ts
|
|
10
|
-
src/components/chip/chip.ts
|
|
11
|
-
src/components/menu/features/items-manager.ts
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
# Contributing to mtrl
|
|
2
|
-
|
|
3
|
-
Thank you for your interest in contributing to mtrl! This document provides guidelines and instructions for contributing to this lightweight, TypeScript-focused UI component library.
|
|
4
|
-
|
|
5
|
-
## Why Contribute?
|
|
6
|
-
|
|
7
|
-
mtrl aims to be a modern, flexible UI component library with:
|
|
8
|
-
|
|
9
|
-
- Zero dependencies (except Bun for development)
|
|
10
|
-
- TypeScript-first codebase
|
|
11
|
-
- Lightweight, tree-shakable components
|
|
12
|
-
- Simple and extensible API
|
|
13
|
-
- Excellent documentation
|
|
14
|
-
|
|
15
|
-
By contributing to mtrl, you'll help create a lean alternative to heavier frameworks while gaining experience with modern TypeScript patterns and component design.
|
|
16
|
-
|
|
17
|
-
## Getting Started
|
|
18
|
-
|
|
19
|
-
### Development Environment
|
|
20
|
-
|
|
21
|
-
1. **Fork and clone the repository**:
|
|
22
|
-
```bash
|
|
23
|
-
git clone https://github.com/YOUR-USERNAME/mtrl.git
|
|
24
|
-
cd mtrl
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
2. **Install dependencies**:
|
|
28
|
-
```bash
|
|
29
|
-
bun install
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### Testing Your Components with mtrl.app
|
|
33
|
-
|
|
34
|
-
mtrl uses a separate repository called mtrl.app (https://mtrl.app) for showcasing and testing components. There are two ways to test your components:
|
|
35
|
-
|
|
36
|
-
1. **Build and link locally**:
|
|
37
|
-
```bash
|
|
38
|
-
# In the mtrl repository
|
|
39
|
-
bun run build
|
|
40
|
-
|
|
41
|
-
# Clone the mtrl.app repository
|
|
42
|
-
git clone https://github.com/YOUR-USERNAME/mtrl.app.git
|
|
43
|
-
cd mtrl.app
|
|
44
|
-
|
|
45
|
-
# Install dependencies and link to your local mtrl build
|
|
46
|
-
bun install
|
|
47
|
-
bun link ../path/to/your/mtrl
|
|
48
|
-
|
|
49
|
-
# Start the showcase server
|
|
50
|
-
bun run dev
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
2. **Use the official showcase site**:
|
|
54
|
-
Visit https://mtrl.app to see official examples and documentation.
|
|
55
|
-
|
|
56
|
-
## Contribution Workflow
|
|
57
|
-
|
|
58
|
-
1. **Pick an issue or feature** - Start with issues labeled `good-first-issue` or `help-wanted`.
|
|
59
|
-
|
|
60
|
-
2. **Create a branch** - Name your branch based on what you're working on:
|
|
61
|
-
```bash
|
|
62
|
-
git checkout -b feature/button-improvements
|
|
63
|
-
# or
|
|
64
|
-
git checkout -b fix/textfield-validation
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
3. **Make your changes** - Follow the coding standards and guidelines below.
|
|
68
|
-
|
|
69
|
-
4. **Test your changes** - Use the playground app to test your components in real-time.
|
|
70
|
-
|
|
71
|
-
5. **Submit a pull request** - Include a detailed description of your changes and reference any related issues.
|
|
72
|
-
|
|
73
|
-
## Development Guidelines
|
|
74
|
-
|
|
75
|
-
### Component Structure
|
|
76
|
-
|
|
77
|
-
mtrl components follow a consistent pattern:
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
80
|
-
// src/components/mycomponent/index.ts
|
|
81
|
-
export { createMyComponent } from './mycomponent';
|
|
82
|
-
export type { MyComponentOptions } from './types';
|
|
83
|
-
|
|
84
|
-
// src/components/mycomponent/types.ts
|
|
85
|
-
export interface MyComponentOptions {
|
|
86
|
-
text?: string;
|
|
87
|
-
onClick?: (event: MouseEvent) => void;
|
|
88
|
-
// other options...
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// src/components/mycomponent/mycomponent.ts
|
|
92
|
-
import { createElement } from '../../core/dom/create';
|
|
93
|
-
import { createLifecycle } from '../../core/state/lifecycle';
|
|
94
|
-
import type { MyComponentOptions } from './types';
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Creates a new MyComponent instance
|
|
98
|
-
* @param options - Configuration options for MyComponent
|
|
99
|
-
* @returns The MyComponent instance
|
|
100
|
-
*/
|
|
101
|
-
export const createMyComponent = (options: MyComponentOptions = {}) => {
|
|
102
|
-
// Create DOM elements
|
|
103
|
-
const element = createElement({...});
|
|
104
|
-
|
|
105
|
-
// Setup state and features
|
|
106
|
-
const lifecycle = createLifecycle(element);
|
|
107
|
-
|
|
108
|
-
// Return component API
|
|
109
|
-
return {
|
|
110
|
-
element,
|
|
111
|
-
// Other public methods...
|
|
112
|
-
destroy() {
|
|
113
|
-
lifecycle.destroy();
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
};
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### Using mtrl.app for Development
|
|
120
|
-
|
|
121
|
-
The mtrl.app showcase application is the best way to develop and test your components:
|
|
122
|
-
|
|
123
|
-
1. Clone the mtrl.app repository alongside your mtrl clone.
|
|
124
|
-
2. Create a new view file in `src/client/content/components/` for your component.
|
|
125
|
-
3. Add the route in `src/client/core/navigation.ts` of the mtrl.app repository.
|
|
126
|
-
4. Implement different variants and states for testing.
|
|
127
|
-
5. Run the showcase server with `bun run dev` in the mtrl.app directory.
|
|
128
|
-
|
|
129
|
-
This separation of the library code (mtrl) and the showcase app (mtrl.app) keeps the core library clean while providing a rich development environment.
|
|
130
|
-
|
|
131
|
-
### TypeScript Standards
|
|
132
|
-
|
|
133
|
-
- Use TypeScript's type system to create clear interfaces and types
|
|
134
|
-
- Export types and interfaces separately from implementations
|
|
135
|
-
- Use strict typing and avoid `any` when possible
|
|
136
|
-
- Prefer interfaces for public APIs and type aliases for complex types
|
|
137
|
-
- Add proper return types to all functions
|
|
138
|
-
|
|
139
|
-
### Coding Standards
|
|
140
|
-
|
|
141
|
-
- Add file path as a comment on the first line of each file
|
|
142
|
-
- Use functional programming principles when possible
|
|
143
|
-
- Use consistent naming conventions:
|
|
144
|
-
- Factory functions should be named `createXyz`
|
|
145
|
-
- Utilities should use clear, descriptive names
|
|
146
|
-
- Interfaces should be named in PascalCase (e.g., `ButtonOptions`)
|
|
147
|
-
- Write TypeDoc comments for all public functions and types
|
|
148
|
-
|
|
149
|
-
### CSS/SCSS Guidelines
|
|
150
|
-
|
|
151
|
-
- Use BEM-style naming: `mtrl-component__element--modifier`
|
|
152
|
-
- Keep specificity low
|
|
153
|
-
- Use CSS variables for theming
|
|
154
|
-
- Organize styles in the `src/components/*/styles.scss` file
|
|
155
|
-
|
|
156
|
-
## Pull Request Process
|
|
157
|
-
|
|
158
|
-
1. Ensure your code follows the style guidelines
|
|
159
|
-
2. Update documentation as needed
|
|
160
|
-
3. Include a clear description of the changes
|
|
161
|
-
4. Reference any issues that are being addressed
|
|
162
|
-
5. Wait for review and address any feedback
|
|
163
|
-
|
|
164
|
-
## Testing
|
|
165
|
-
|
|
166
|
-
Please add appropriate tests for your changes:
|
|
167
|
-
|
|
168
|
-
```typescript
|
|
169
|
-
// Example test structure
|
|
170
|
-
describe('myComponent', () => {
|
|
171
|
-
it('should render correctly', () => {
|
|
172
|
-
// Test code
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
it('should handle user interaction', () => {
|
|
176
|
-
// Test code
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Documentation
|
|
182
|
-
|
|
183
|
-
Documentation is crucial for this project:
|
|
184
|
-
|
|
185
|
-
- Add TypeDoc comments for all public API methods and types
|
|
186
|
-
- Comment the file path at the top of each file
|
|
187
|
-
- Update the component's README.md (if applicable)
|
|
188
|
-
- Consider adding example code in the playground
|
|
189
|
-
|
|
190
|
-
Example of proper TypeDoc:
|
|
191
|
-
|
|
192
|
-
```typescript
|
|
193
|
-
/**
|
|
194
|
-
* Creates a button element with specified options
|
|
195
|
-
*
|
|
196
|
-
* @param options - The button configuration options
|
|
197
|
-
* @returns A button component instance
|
|
198
|
-
* @example
|
|
199
|
-
* ```ts
|
|
200
|
-
* const button = createButton({ text: 'Click me', variant: 'primary' });
|
|
201
|
-
* document.body.appendChild(button.element);
|
|
202
|
-
* ```
|
|
203
|
-
*/
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
## Community and Communication
|
|
207
|
-
|
|
208
|
-
- Submit issues for bugs or feature requests
|
|
209
|
-
- Join the discussion on existing issues
|
|
210
|
-
- Be respectful and constructive in communications
|
|
211
|
-
|
|
212
|
-
## License
|
|
213
|
-
|
|
214
|
-
By contributing to mtrl, you agree that your contributions will be licensed under the project's MIT License.
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
Thank you for contributing to mtrl! Your efforts help make this library better for everyone.
|
package/DOCS.md
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
# TypeDoc Installation and Usage Guide for mtrl
|
|
2
|
-
|
|
3
|
-
This guide will help you set up and use TypeDoc with your mtrl library.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
To install TypeDoc and its dependencies:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# Using Bun
|
|
11
|
-
bun add -D typedoc
|
|
12
|
-
|
|
13
|
-
# Using npm
|
|
14
|
-
npm install --save-dev typedoc
|
|
15
|
-
|
|
16
|
-
# Using yarn
|
|
17
|
-
yarn add --dev typedoc
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Configuration
|
|
21
|
-
|
|
22
|
-
TypeDoc is configured via the `typedoc.json` file at the root of your project. This configuration specifies input files, output directory, theming options, and more.
|
|
23
|
-
|
|
24
|
-
## Generating Documentation
|
|
25
|
-
|
|
26
|
-
To generate documentation:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
# Using the npm script
|
|
30
|
-
bun run docs
|
|
31
|
-
|
|
32
|
-
# Or directly
|
|
33
|
-
bun typedoc
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Serving Documentation Locally
|
|
37
|
-
|
|
38
|
-
To view the generated documentation in your browser:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
# Using the npm script
|
|
42
|
-
bun run docs:serve
|
|
43
|
-
|
|
44
|
-
# Or directly
|
|
45
|
-
bun run --bun serve docs
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Then open your browser to http://localhost:8080
|
|
49
|
-
|
|
50
|
-
## Documentation Structure
|
|
51
|
-
|
|
52
|
-
TypeDoc generates a structured representation of your codebase:
|
|
53
|
-
|
|
54
|
-
- **Modules**: File-based organization of your code
|
|
55
|
-
- **Classes/Interfaces**: Object definitions and their members
|
|
56
|
-
- **Functions**: Standalone functions
|
|
57
|
-
- **Type aliases**: Custom type definitions
|
|
58
|
-
- **Variables**: Exported variables
|
|
59
|
-
|
|
60
|
-
## JSDoc Tips for Better Documentation
|
|
61
|
-
|
|
62
|
-
TypeDoc uses JSDoc comments to generate documentation. Here are some tips for writing effective comments:
|
|
63
|
-
|
|
64
|
-
### Basic Comment Structure
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
/**
|
|
68
|
-
* Description of the function
|
|
69
|
-
* @param paramName Description of the parameter
|
|
70
|
-
* @returns Description of the return value
|
|
71
|
-
*/
|
|
72
|
-
function myFunction(paramName: string): number {
|
|
73
|
-
// Implementation
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Common JSDoc Tags
|
|
78
|
-
|
|
79
|
-
- `@param {type} name - Description` - Describes a function parameter
|
|
80
|
-
- `@returns {type} Description` - Describes the return value
|
|
81
|
-
- `@example` - Provides an example of usage
|
|
82
|
-
- `@see` - References related documentation
|
|
83
|
-
- `@deprecated` - Marks an element as deprecated
|
|
84
|
-
- `@since version` - Indicates when the element was added
|
|
85
|
-
- `@category name` - Organizes documentation into categories
|
|
86
|
-
|
|
87
|
-
### Categories
|
|
88
|
-
|
|
89
|
-
Use the `@category` tag to organize your mtrl components and utilities:
|
|
90
|
-
|
|
91
|
-
```typescript
|
|
92
|
-
/**
|
|
93
|
-
* @category Components
|
|
94
|
-
*/
|
|
95
|
-
export interface ButtonConfig {
|
|
96
|
-
// ...
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* @category Core
|
|
101
|
-
*/
|
|
102
|
-
export const pipe = (...fns) => (initialValue) => {
|
|
103
|
-
// ...
|
|
104
|
-
}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## Customizing the Theme
|
|
108
|
-
|
|
109
|
-
If you want to customize the default theme, you can create a custom theme:
|
|
110
|
-
|
|
111
|
-
1. Create a `typedoc-theme` directory
|
|
112
|
-
2. Copy the default theme files from the TypeDoc package
|
|
113
|
-
3. Modify the files as needed
|
|
114
|
-
4. Update the `typedoc.json` file to use your custom theme:
|
|
115
|
-
|
|
116
|
-
```json
|
|
117
|
-
{
|
|
118
|
-
"theme": "./typedoc-theme"
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Continuous Integration
|
|
123
|
-
|
|
124
|
-
To automatically generate documentation on each commit or release:
|
|
125
|
-
|
|
126
|
-
1. Add a script to your CI workflow (GitHub Actions, etc.)
|
|
127
|
-
2. Generate the docs and deploy them to GitHub Pages or another hosting service
|
|
128
|
-
|
|
129
|
-
Example GitHub Actions workflow:
|
|
130
|
-
|
|
131
|
-
```yaml
|
|
132
|
-
name: Generate Docs
|
|
133
|
-
|
|
134
|
-
on:
|
|
135
|
-
push:
|
|
136
|
-
branches: [main]
|
|
137
|
-
|
|
138
|
-
jobs:
|
|
139
|
-
build:
|
|
140
|
-
runs-on: ubuntu-latest
|
|
141
|
-
steps:
|
|
142
|
-
- uses: actions/checkout@v3
|
|
143
|
-
- uses: oven-sh/setup-bun@v1
|
|
144
|
-
- name: Install dependencies
|
|
145
|
-
run: bun install
|
|
146
|
-
- name: Generate docs
|
|
147
|
-
run: bun run docs
|
|
148
|
-
- name: Deploy to GitHub Pages
|
|
149
|
-
uses: JamesIves/github-pages-deploy-action@4.1.4
|
|
150
|
-
with:
|
|
151
|
-
branch: gh-pages
|
|
152
|
-
folder: docs
|
|
153
|
-
```
|
package/TESTING.md
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
# Testing mtrl Components
|
|
2
|
-
|
|
3
|
-
This document provides guidelines for writing and running tests for the mtrl library. We use Bun's built-in test runner for fast, efficient testing.
|
|
4
|
-
|
|
5
|
-
## Running Tests
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# Run all tests
|
|
9
|
-
bun test
|
|
10
|
-
|
|
11
|
-
# Run tests in watch mode (re-runs tests when files change)
|
|
12
|
-
bun test --watch
|
|
13
|
-
|
|
14
|
-
# Run tests with coverage report
|
|
15
|
-
bun test --coverage
|
|
16
|
-
|
|
17
|
-
# Run tests with UI
|
|
18
|
-
bun test --watch --ui
|
|
19
|
-
|
|
20
|
-
# Run specific test file or pattern
|
|
21
|
-
bun test test/components/button.test.ts
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Test Structure
|
|
25
|
-
|
|
26
|
-
Tests are organized to mirror the source code structure:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
test/
|
|
30
|
-
├── setup.ts # Global test setup and DOM mocking
|
|
31
|
-
├── components/ # Component tests
|
|
32
|
-
│ ├── button.test.ts
|
|
33
|
-
│ ├── textfield.test.ts
|
|
34
|
-
│ └── ...
|
|
35
|
-
└── core/ # Core functionality tests
|
|
36
|
-
├── dom.classes.test.ts
|
|
37
|
-
├── dom.attributes.test.ts
|
|
38
|
-
├── dom.events.test.ts
|
|
39
|
-
├── utils.normalize.test.ts
|
|
40
|
-
├── utils.object.test.ts
|
|
41
|
-
├── emitter.test.ts
|
|
42
|
-
├── ripple.test.ts
|
|
43
|
-
└── state.store.test.ts
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Writing Tests
|
|
47
|
-
|
|
48
|
-
When writing tests for mtrl components, follow these guidelines:
|
|
49
|
-
|
|
50
|
-
### 1. Test Component Creation
|
|
51
|
-
|
|
52
|
-
Always verify that components are created correctly with default options:
|
|
53
|
-
|
|
54
|
-
```typescript
|
|
55
|
-
test('should create a component element', () => {
|
|
56
|
-
const component = createComponent();
|
|
57
|
-
expect(component.element).toBeDefined();
|
|
58
|
-
expect(component.element.tagName).toBe('DIV');
|
|
59
|
-
expect(component.element.className).toContain('mtrl-component');
|
|
60
|
-
});
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 2. Test Configuration Options
|
|
64
|
-
|
|
65
|
-
Test that configuration options properly affect the component:
|
|
66
|
-
|
|
67
|
-
```typescript
|
|
68
|
-
test('should apply variant class', () => {
|
|
69
|
-
const variant = 'filled';
|
|
70
|
-
const component = createComponent({
|
|
71
|
-
variant
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
expect(component.element.className).toContain(`mtrl-component--${variant}`);
|
|
75
|
-
});
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### 3. Test Events
|
|
79
|
-
|
|
80
|
-
Verify that events are properly emitted and handled:
|
|
81
|
-
|
|
82
|
-
```typescript
|
|
83
|
-
test('should handle click events', () => {
|
|
84
|
-
const component = createComponent();
|
|
85
|
-
const handleClick = mock(() => {});
|
|
86
|
-
|
|
87
|
-
component.on('click', handleClick);
|
|
88
|
-
|
|
89
|
-
// Simulate event
|
|
90
|
-
const event = new Event('click');
|
|
91
|
-
component.element.dispatchEvent(event);
|
|
92
|
-
|
|
93
|
-
expect(handleClick).toHaveBeenCalled();
|
|
94
|
-
});
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### 4. Test State Changes
|
|
98
|
-
|
|
99
|
-
Test component state changes through its API:
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
test('should support disabled state', () => {
|
|
103
|
-
const component = createComponent();
|
|
104
|
-
|
|
105
|
-
// Initially not disabled
|
|
106
|
-
expect(component.disabled.isDisabled()).toBe(false);
|
|
107
|
-
|
|
108
|
-
// Disable
|
|
109
|
-
component.disable();
|
|
110
|
-
expect(component.disabled.isDisabled()).toBe(true);
|
|
111
|
-
expect(component.element.classList.contains('mtrl-component--disabled')).toBe(true);
|
|
112
|
-
|
|
113
|
-
// Enable
|
|
114
|
-
component.enable();
|
|
115
|
-
expect(component.disabled.isDisabled()).toBe(false);
|
|
116
|
-
expect(component.element.classList.contains('mtrl-component--disabled')).toBe(false);
|
|
117
|
-
});
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## JSDOM Setup
|
|
121
|
-
|
|
122
|
-
We use JSDOM to create a DOM environment for component tests. Each test file that requires DOM manipulation should include the proper JSDOM setup:
|
|
123
|
-
|
|
124
|
-
```typescript
|
|
125
|
-
// Setup jsdom environment
|
|
126
|
-
let dom: JSDOM;
|
|
127
|
-
let window: Window;
|
|
128
|
-
let document: Document;
|
|
129
|
-
let originalGlobalDocument: any;
|
|
130
|
-
let originalGlobalWindow: any;
|
|
131
|
-
|
|
132
|
-
beforeAll(() => {
|
|
133
|
-
// Create a new JSDOM instance
|
|
134
|
-
dom = new JSDOM('<!DOCTYPE html><html><body></body></html>', {
|
|
135
|
-
url: 'http://localhost/',
|
|
136
|
-
pretendToBeVisual: true
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
// Get window and document from jsdom
|
|
140
|
-
window = dom.window;
|
|
141
|
-
document = window.document;
|
|
142
|
-
|
|
143
|
-
// Store original globals
|
|
144
|
-
originalGlobalDocument = global.document;
|
|
145
|
-
originalGlobalWindow = global.window;
|
|
146
|
-
|
|
147
|
-
// Set globals to use jsdom
|
|
148
|
-
global.document = document;
|
|
149
|
-
global.window = window;
|
|
150
|
-
global.Element = window.Element;
|
|
151
|
-
global.HTMLElement = window.HTMLElement;
|
|
152
|
-
global.Event = window.Event;
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
afterAll(() => {
|
|
156
|
-
// Restore original globals
|
|
157
|
-
global.document = originalGlobalDocument;
|
|
158
|
-
global.window = originalGlobalWindow;
|
|
159
|
-
|
|
160
|
-
// Clean up jsdom
|
|
161
|
-
window.close();
|
|
162
|
-
});
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
## Component Testing Approach
|
|
166
|
-
|
|
167
|
-
For most component tests, we use a mock implementation approach that creates components with the same interface as the real components, but with simplified internals. This approach:
|
|
168
|
-
|
|
169
|
-
1. Avoids circular dependency issues in tests
|
|
170
|
-
2. Makes tests faster and more isolated
|
|
171
|
-
3. Allows testing component interfaces without implementation details
|
|
172
|
-
4. Provides better control over the test environment
|
|
173
|
-
|
|
174
|
-
A typical mock component setup might look like:
|
|
175
|
-
|
|
176
|
-
```typescript
|
|
177
|
-
const createMockComponent = (config: ComponentConfig = {}): ComponentInterface => {
|
|
178
|
-
// Create base elements
|
|
179
|
-
const element = document.createElement('div');
|
|
180
|
-
element.className = 'mtrl-component';
|
|
181
|
-
|
|
182
|
-
// Apply configuration
|
|
183
|
-
if (config.variant) {
|
|
184
|
-
element.classList.add(`mtrl-component--${config.variant}`);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// Event tracking
|
|
188
|
-
const eventHandlers: Record<string, Function[]> = {};
|
|
189
|
-
|
|
190
|
-
// Return component interface
|
|
191
|
-
return {
|
|
192
|
-
element,
|
|
193
|
-
|
|
194
|
-
// Component methods matching the real component API
|
|
195
|
-
setValue(value: string) {
|
|
196
|
-
element.setAttribute('value', value);
|
|
197
|
-
return this;
|
|
198
|
-
},
|
|
199
|
-
|
|
200
|
-
getValue() {
|
|
201
|
-
return element.getAttribute('value') || '';
|
|
202
|
-
},
|
|
203
|
-
|
|
204
|
-
on(event: string, handler: Function) {
|
|
205
|
-
if (!eventHandlers[event]) eventHandlers[event] = [];
|
|
206
|
-
eventHandlers[event].push(handler);
|
|
207
|
-
element.addEventListener(event, handler as EventListener);
|
|
208
|
-
return this;
|
|
209
|
-
},
|
|
210
|
-
|
|
211
|
-
// Additional methods as needed...
|
|
212
|
-
};
|
|
213
|
-
};
|
|
214
|
-
```
|