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,172 +0,0 @@
|
|
|
1
|
-
// src/components/button/api.ts
|
|
2
|
-
import { ButtonComponent } from './types';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* API configuration options for button component
|
|
6
|
-
* @category Components
|
|
7
|
-
* @internal
|
|
8
|
-
*/
|
|
9
|
-
interface ApiOptions {
|
|
10
|
-
disabled: {
|
|
11
|
-
enable: () => void;
|
|
12
|
-
disable: () => void;
|
|
13
|
-
};
|
|
14
|
-
lifecycle: {
|
|
15
|
-
destroy: () => void;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Component with required elements and methods for API enhancement
|
|
21
|
-
* @category Components
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
interface ComponentWithElements {
|
|
25
|
-
element: HTMLElement;
|
|
26
|
-
text: {
|
|
27
|
-
setText: (content: string) => any;
|
|
28
|
-
getText: () => string;
|
|
29
|
-
getElement: () => HTMLElement | null;
|
|
30
|
-
};
|
|
31
|
-
icon: {
|
|
32
|
-
setIcon: (html: string) => any;
|
|
33
|
-
getIcon: () => string;
|
|
34
|
-
getElement: () => HTMLElement | null;
|
|
35
|
-
};
|
|
36
|
-
getClass: (name: string) => string;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Enhances a button component with API methods.
|
|
41
|
-
* This follows the higher-order function pattern to add public API methods
|
|
42
|
-
* to the component, making them available to the end user.
|
|
43
|
-
*
|
|
44
|
-
* @param {ApiOptions} options - API configuration options
|
|
45
|
-
* @returns {Function} Higher-order function that adds API methods to component
|
|
46
|
-
* @category Components
|
|
47
|
-
* @internal This is an internal utility for the Button component
|
|
48
|
-
*/
|
|
49
|
-
export const withAPI = ({ disabled, lifecycle }: ApiOptions) =>
|
|
50
|
-
(component: ComponentWithElements): ButtonComponent => ({
|
|
51
|
-
...component as any,
|
|
52
|
-
element: component.element as HTMLButtonElement,
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Gets the button's value attribute
|
|
56
|
-
* @returns Current value of the button
|
|
57
|
-
*/
|
|
58
|
-
getValue: () => component.element.value,
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Sets the button's value attribute
|
|
62
|
-
* @param value - New value to set
|
|
63
|
-
* @returns Button component for method chaining
|
|
64
|
-
*/
|
|
65
|
-
setValue(value: string) {
|
|
66
|
-
component.element.value = value;
|
|
67
|
-
return this;
|
|
68
|
-
},
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Enables the button, making it interactive
|
|
72
|
-
* @returns Button component for method chaining
|
|
73
|
-
*/
|
|
74
|
-
enable() {
|
|
75
|
-
disabled.enable();
|
|
76
|
-
return this;
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Disables the button, making it non-interactive
|
|
81
|
-
* @returns Button component for method chaining
|
|
82
|
-
*/
|
|
83
|
-
disable() {
|
|
84
|
-
disabled.disable();
|
|
85
|
-
return this;
|
|
86
|
-
},
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Sets the button's text content
|
|
90
|
-
* @param content - Text content to display
|
|
91
|
-
* @returns Button component for method chaining
|
|
92
|
-
*/
|
|
93
|
-
setText(content: string) {
|
|
94
|
-
component.text.setText(content);
|
|
95
|
-
this.updateCircularStyle();
|
|
96
|
-
return this;
|
|
97
|
-
},
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Gets the button's current text content
|
|
101
|
-
* @returns Current text content
|
|
102
|
-
*/
|
|
103
|
-
getText() {
|
|
104
|
-
return component.text.getText();
|
|
105
|
-
},
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Sets the button's icon HTML content
|
|
109
|
-
* @param icon - HTML string for the icon
|
|
110
|
-
* @returns Button component for method chaining
|
|
111
|
-
*/
|
|
112
|
-
setIcon(icon: string) {
|
|
113
|
-
component.icon.setIcon(icon);
|
|
114
|
-
this.updateCircularStyle();
|
|
115
|
-
return this;
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Gets the button's current icon HTML content
|
|
120
|
-
* @returns Current icon HTML
|
|
121
|
-
*/
|
|
122
|
-
getIcon() {
|
|
123
|
-
return component.icon.getIcon();
|
|
124
|
-
},
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Sets the active state of the button
|
|
128
|
-
* Used to visually indicate the button's active state, such as when it has a menu open
|
|
129
|
-
*
|
|
130
|
-
* @param active - Whether the button should appear active
|
|
131
|
-
* @returns Button component for method chaining
|
|
132
|
-
*/
|
|
133
|
-
setActive(active: boolean) {
|
|
134
|
-
if (active) {
|
|
135
|
-
component.element.classList.add(`${component.getClass('button')}--active`);
|
|
136
|
-
} else {
|
|
137
|
-
component.element.classList.remove(`${component.getClass('button')}--active`);
|
|
138
|
-
}
|
|
139
|
-
return this;
|
|
140
|
-
},
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Sets the button's aria-label attribute for accessibility
|
|
144
|
-
* @param label - Accessible label text
|
|
145
|
-
* @returns Button component for method chaining
|
|
146
|
-
*/
|
|
147
|
-
setAriaLabel(label: string) {
|
|
148
|
-
component.element.setAttribute('aria-label', label);
|
|
149
|
-
return this;
|
|
150
|
-
},
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Destroys the button component and cleans up resources
|
|
154
|
-
*/
|
|
155
|
-
destroy() {
|
|
156
|
-
lifecycle.destroy();
|
|
157
|
-
},
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Updates the button's circular style based on content.
|
|
161
|
-
* If the button has an icon but no text, it will be styled as circular.
|
|
162
|
-
* @internal
|
|
163
|
-
*/
|
|
164
|
-
updateCircularStyle() {
|
|
165
|
-
const hasText = component.text.getElement();
|
|
166
|
-
if (!hasText && component.icon.getElement()) {
|
|
167
|
-
component.element.classList.add(`${component.getClass('button')}--circular`);
|
|
168
|
-
} else {
|
|
169
|
-
component.element.classList.remove(`${component.getClass('button')}--circular`);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
});
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
// src/components/button/button.ts
|
|
2
|
-
import { PREFIX } from '../../core/config';
|
|
3
|
-
import { pipe } from '../../core/compose';
|
|
4
|
-
import { createBase, withElement } from '../../core/compose/component';
|
|
5
|
-
import {
|
|
6
|
-
withEvents,
|
|
7
|
-
withText,
|
|
8
|
-
withIcon,
|
|
9
|
-
withVariant,
|
|
10
|
-
withRipple,
|
|
11
|
-
withDisabled,
|
|
12
|
-
withLifecycle
|
|
13
|
-
} from '../../core/compose/features';
|
|
14
|
-
import { withAPI } from './api';
|
|
15
|
-
import { ButtonConfig } from './types';
|
|
16
|
-
import { createBaseConfig, getElementConfig, getApiConfig } from './config';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Creates a new Button component with the specified configuration.
|
|
20
|
-
*
|
|
21
|
-
* The Button component implements the Material Design 3 Button component guidelines
|
|
22
|
-
* with support for different variants, states, and features. It follows accessibility
|
|
23
|
-
* best practices and provides a rich API for state management.
|
|
24
|
-
*
|
|
25
|
-
* The Button component is created using a functional composition pattern,
|
|
26
|
-
* applying various features through the pipe function. This approach allows
|
|
27
|
-
* for flexible and modular component construction.
|
|
28
|
-
*
|
|
29
|
-
* @param {ButtonConfig} config - Configuration options for the button
|
|
30
|
-
* This can include text content, icon options, variant styling, disabled state,
|
|
31
|
-
* and other button properties. See {@link ButtonConfig} for available options.
|
|
32
|
-
*
|
|
33
|
-
* @returns {ButtonComponent} A fully configured button component instance with
|
|
34
|
-
* all requested features applied. The returned component has methods for
|
|
35
|
-
* manipulation, event handling, and lifecycle management.
|
|
36
|
-
*
|
|
37
|
-
* @throws {Error} Throws an error if button creation fails for any reason
|
|
38
|
-
*
|
|
39
|
-
* @category Components
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* // Create a simple text button
|
|
43
|
-
* const textButton = createButton({ text: 'Click me' });
|
|
44
|
-
* document.body.appendChild(textButton.element);
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* // Create a filled button with an icon
|
|
48
|
-
* const primaryButton = createButton({
|
|
49
|
-
* text: 'Submit',
|
|
50
|
-
* variant: 'filled',
|
|
51
|
-
* icon: '<svg>...</svg>'
|
|
52
|
-
* });
|
|
53
|
-
*
|
|
54
|
-
* // Add a click event handler
|
|
55
|
-
* primaryButton.on('click', () => {
|
|
56
|
-
* console.log('Button clicked');
|
|
57
|
-
* });
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* // Create an outlined button with event handling
|
|
61
|
-
* const submitButton = createButton({
|
|
62
|
-
* text: 'Save',
|
|
63
|
-
* variant: 'outlined'
|
|
64
|
-
* });
|
|
65
|
-
*
|
|
66
|
-
* submitButton.on('click', async () => {
|
|
67
|
-
* submitButton.disable(); // Disable during async operation
|
|
68
|
-
* await saveData();
|
|
69
|
-
* submitButton.enable(); // Re-enable when done
|
|
70
|
-
* });
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* // Create an icon-only button (circular)
|
|
74
|
-
* const iconButton = createButton({
|
|
75
|
-
* icon: '<svg>...</svg>',
|
|
76
|
-
* ariaLabel: 'Add to favorites', // Important for accessibility
|
|
77
|
-
* variant: 'filled'
|
|
78
|
-
* });
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
* // Create a disabled button
|
|
82
|
-
* const disabledButton = createButton({
|
|
83
|
-
* text: 'Not available',
|
|
84
|
-
* disabled: true
|
|
85
|
-
* });
|
|
86
|
-
*
|
|
87
|
-
* // Later, enable the button when available
|
|
88
|
-
* disabledButton.enable();
|
|
89
|
-
*/
|
|
90
|
-
const createButton = (config: ButtonConfig = {}) => {
|
|
91
|
-
const baseConfig = createBaseConfig(config);
|
|
92
|
-
try {
|
|
93
|
-
const button = pipe(
|
|
94
|
-
createBase,
|
|
95
|
-
withEvents(),
|
|
96
|
-
withElement(getElementConfig(baseConfig)),
|
|
97
|
-
withVariant(baseConfig),
|
|
98
|
-
withText(baseConfig),
|
|
99
|
-
withIcon(baseConfig),
|
|
100
|
-
withDisabled(baseConfig),
|
|
101
|
-
withRipple(baseConfig),
|
|
102
|
-
withLifecycle(),
|
|
103
|
-
comp => withAPI(getApiConfig(comp))(comp)
|
|
104
|
-
)(baseConfig);
|
|
105
|
-
return button;
|
|
106
|
-
} catch (error) {
|
|
107
|
-
console.error('Button creation error:', error);
|
|
108
|
-
throw new Error(`Failed to create button: ${(error as Error).message}`);
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
export default createButton;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
// src/components/button/config.ts
|
|
2
|
-
import {
|
|
3
|
-
createComponentConfig,
|
|
4
|
-
createElementConfig,
|
|
5
|
-
BaseComponentConfig
|
|
6
|
-
} from '../../core/config/component-config';
|
|
7
|
-
import { ButtonConfig } from './types';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Default configuration for the Button component.
|
|
11
|
-
* These values will be used when not explicitly specified by the user.
|
|
12
|
-
*
|
|
13
|
-
* @category Components
|
|
14
|
-
*/
|
|
15
|
-
export const defaultConfig: ButtonConfig = {
|
|
16
|
-
variant: 'filled',
|
|
17
|
-
type: 'button'
|
|
18
|
-
// Don't set disabled: false as default - it should be undefined by default
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Creates the base configuration for Button component by merging user-provided
|
|
23
|
-
* config with default values.
|
|
24
|
-
*
|
|
25
|
-
* @param {ButtonConfig} config - User provided configuration
|
|
26
|
-
* @returns {ButtonConfig} Complete configuration with defaults applied
|
|
27
|
-
* @category Components
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
export const createBaseConfig = (config: ButtonConfig = {}): ButtonConfig =>
|
|
31
|
-
createComponentConfig(defaultConfig, config, 'button') as ButtonConfig;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Generates element configuration for the Button component.
|
|
35
|
-
* This function creates the necessary attributes and configuration
|
|
36
|
-
* for the DOM element creation process.
|
|
37
|
-
*
|
|
38
|
-
* @param {ButtonConfig} config - Button configuration
|
|
39
|
-
* @returns {Object} Element configuration object for withElement
|
|
40
|
-
* @category Components
|
|
41
|
-
* @internal
|
|
42
|
-
*/
|
|
43
|
-
export const getElementConfig = (config: ButtonConfig) => {
|
|
44
|
-
// Create the attributes object
|
|
45
|
-
const attrs: Record<string, any> = {
|
|
46
|
-
type: config.type || 'button'
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
// Only add disabled attribute if it's explicitly true
|
|
50
|
-
if (config.disabled === true) {
|
|
51
|
-
attrs.disabled = true;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Add value attribute only if it exists
|
|
55
|
-
if (config.value !== undefined) {
|
|
56
|
-
attrs.value = config.value;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Add aria-label attribute for accessibility
|
|
60
|
-
if (config.ariaLabel) {
|
|
61
|
-
attrs['aria-label'] = config.ariaLabel;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return createElementConfig(config, {
|
|
65
|
-
tag: 'button',
|
|
66
|
-
attrs,
|
|
67
|
-
className: config.class,
|
|
68
|
-
forwardEvents: {
|
|
69
|
-
click: (component) => !component.element.disabled,
|
|
70
|
-
focus: true,
|
|
71
|
-
blur: true
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Creates API configuration for the Button component.
|
|
78
|
-
* This connects the core component features (like disabled state)
|
|
79
|
-
* to the public API methods exposed to users.
|
|
80
|
-
*
|
|
81
|
-
* @param {Object} comp - Component with disabled and lifecycle features
|
|
82
|
-
* @returns {Object} API configuration object
|
|
83
|
-
* @category Components
|
|
84
|
-
* @internal
|
|
85
|
-
*/
|
|
86
|
-
export const getApiConfig = (comp) => ({
|
|
87
|
-
disabled: {
|
|
88
|
-
enable: () => comp.disabled.enable(),
|
|
89
|
-
disable: () => comp.disabled.disable()
|
|
90
|
-
},
|
|
91
|
-
lifecycle: {
|
|
92
|
-
destroy: () => comp.lifecycle.destroy()
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
export default defaultConfig;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// src/components/button/index.ts
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Button component module
|
|
5
|
-
* @module components/button
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export { default } from './button'
|
|
9
|
-
export { ButtonConfig, ButtonComponent, ButtonVariant } from './types'
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Constants for button variants - use these instead of string literals
|
|
13
|
-
* for better code completion and type safety.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* import { createButton, BUTTON_VARIANTS } from 'mtrl';
|
|
17
|
-
*
|
|
18
|
-
* // Create a filled button
|
|
19
|
-
* const primaryButton = createButton({
|
|
20
|
-
* text: 'Submit',
|
|
21
|
-
* variant: BUTTON_VARIANTS.FILLED
|
|
22
|
-
* });
|
|
23
|
-
*
|
|
24
|
-
* @category Components
|
|
25
|
-
*/
|
|
26
|
-
export const BUTTON_VARIANTS = {
|
|
27
|
-
/** Primary action button with solid background (high emphasis) */
|
|
28
|
-
FILLED: 'filled',
|
|
29
|
-
/** Secondary action button with medium emphasis */
|
|
30
|
-
TONAL: 'tonal',
|
|
31
|
-
/** Button with outline border and transparent background */
|
|
32
|
-
OUTLINED: 'outlined',
|
|
33
|
-
/** Button with slight elevation/shadow */
|
|
34
|
-
ELEVATED: 'elevated',
|
|
35
|
-
/** Button that appears as text without background or border (low emphasis) */
|
|
36
|
-
TEXT: 'text'
|
|
37
|
-
} as const;
|
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
// src/components/button/types.ts
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Button variant types - controls the visual style of the button
|
|
5
|
-
* @category Components
|
|
6
|
-
* @remarks
|
|
7
|
-
* - filled: Primary action button with solid background (high emphasis)
|
|
8
|
-
* - tonal: Secondary action button with medium emphasis
|
|
9
|
-
* - outlined: Button with outline border and transparent background
|
|
10
|
-
* - elevated: Button with slight elevation/shadow
|
|
11
|
-
* - text: Button that appears as text without background or border (low emphasis)
|
|
12
|
-
*/
|
|
13
|
-
export type ButtonVariant = 'filled' | 'tonal' | 'outlined' | 'elevated' | 'text';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Configuration interface for the Button component
|
|
17
|
-
* @category Components
|
|
18
|
-
*/
|
|
19
|
-
export interface ButtonConfig {
|
|
20
|
-
/**
|
|
21
|
-
* Button variant that determines visual styling
|
|
22
|
-
* @default 'filled'
|
|
23
|
-
*/
|
|
24
|
-
variant?: ButtonVariant | string;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Whether the button is initially disabled
|
|
28
|
-
* @default false
|
|
29
|
-
*/
|
|
30
|
-
disabled?: boolean;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Initial button text content
|
|
34
|
-
* @example 'Submit'
|
|
35
|
-
*/
|
|
36
|
-
text?: string;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Initial button icon HTML content
|
|
40
|
-
* @example '<svg>...</svg>'
|
|
41
|
-
*/
|
|
42
|
-
icon?: string;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Icon size in pixels or other CSS units
|
|
46
|
-
* @example '18px'
|
|
47
|
-
*/
|
|
48
|
-
iconSize?: string;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Additional CSS classes to add to the button
|
|
52
|
-
* @example 'form-submit header-action'
|
|
53
|
-
*/
|
|
54
|
-
class?: string;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Button value attribute
|
|
58
|
-
*/
|
|
59
|
-
value?: string;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Button type attribute
|
|
63
|
-
* @default 'button'
|
|
64
|
-
*/
|
|
65
|
-
type?: 'button' | 'submit' | 'reset';
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Whether to enable ripple effect
|
|
69
|
-
* @default true
|
|
70
|
-
*/
|
|
71
|
-
ripple?: boolean;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Component prefix for class names
|
|
75
|
-
* @default 'mtrl'
|
|
76
|
-
*/
|
|
77
|
-
prefix?: string;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Component name used in class generation
|
|
81
|
-
*/
|
|
82
|
-
componentName?: string;
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Ripple effect configuration
|
|
86
|
-
*/
|
|
87
|
-
rippleConfig?: {
|
|
88
|
-
/** Duration of the ripple animation in milliseconds */
|
|
89
|
-
duration?: number;
|
|
90
|
-
/** Timing function for the ripple animation */
|
|
91
|
-
timing?: string;
|
|
92
|
-
/** Opacity values for ripple start and end [start, end] */
|
|
93
|
-
opacity?: [string, string];
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Accessible name for the button (aria-label)
|
|
98
|
-
* Required for icon-only buttons without text
|
|
99
|
-
*/
|
|
100
|
-
ariaLabel?: string;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Icon API interface for managing button icons
|
|
105
|
-
* @category Components
|
|
106
|
-
*/
|
|
107
|
-
export interface IconAPI {
|
|
108
|
-
/**
|
|
109
|
-
* Sets the icon HTML content
|
|
110
|
-
* @param html - HTML string for the icon
|
|
111
|
-
* @returns The icon API for chaining
|
|
112
|
-
*/
|
|
113
|
-
setIcon: (html: string) => IconAPI;
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Gets the current icon HTML content
|
|
117
|
-
* @returns HTML string for the icon
|
|
118
|
-
*/
|
|
119
|
-
getIcon: () => string;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Gets the icon DOM element
|
|
123
|
-
* @returns The icon element or null if not present
|
|
124
|
-
*/
|
|
125
|
-
getElement: () => HTMLElement | null;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Text API interface for managing button text
|
|
130
|
-
* @category Components
|
|
131
|
-
*/
|
|
132
|
-
export interface TextAPI {
|
|
133
|
-
/**
|
|
134
|
-
* Sets the text content
|
|
135
|
-
* @param content - Text content
|
|
136
|
-
* @returns The text API for chaining
|
|
137
|
-
*/
|
|
138
|
-
setText: (content: string) => TextAPI;
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Gets the current text content
|
|
142
|
-
* @returns Button text content
|
|
143
|
-
*/
|
|
144
|
-
getText: () => string;
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Gets the text DOM element
|
|
148
|
-
* @returns The text element or null if not present
|
|
149
|
-
*/
|
|
150
|
-
getElement: () => HTMLElement | null;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Button component interface
|
|
155
|
-
* @category Components
|
|
156
|
-
*/
|
|
157
|
-
export interface ButtonComponent {
|
|
158
|
-
/** The button's DOM element */
|
|
159
|
-
element: HTMLButtonElement;
|
|
160
|
-
|
|
161
|
-
/** API for managing button text */
|
|
162
|
-
text: TextAPI;
|
|
163
|
-
|
|
164
|
-
/** API for managing button icons */
|
|
165
|
-
icon: IconAPI;
|
|
166
|
-
|
|
167
|
-
/** API for managing disabled state */
|
|
168
|
-
disabled: {
|
|
169
|
-
/** Enables the button */
|
|
170
|
-
enable: () => void;
|
|
171
|
-
/** Disables the button */
|
|
172
|
-
disable: () => void;
|
|
173
|
-
/** Checks if the button is disabled */
|
|
174
|
-
isDisabled: () => boolean;
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
/** API for managing component lifecycle */
|
|
178
|
-
lifecycle: {
|
|
179
|
-
/** Destroys the component and cleans up resources */
|
|
180
|
-
destroy: () => void;
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Gets a class name with the component's prefix
|
|
185
|
-
* @param name - Base class name
|
|
186
|
-
* @returns Prefixed class name
|
|
187
|
-
*/
|
|
188
|
-
getClass: (name: string) => string;
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Gets the button's value attribute
|
|
192
|
-
* @returns Button value
|
|
193
|
-
*/
|
|
194
|
-
getValue: () => string;
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Sets the button's value attribute
|
|
198
|
-
* @param value - New value
|
|
199
|
-
* @returns The button component for chaining
|
|
200
|
-
*/
|
|
201
|
-
setValue: (value: string) => ButtonComponent;
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Enables the button (removes disabled attribute)
|
|
205
|
-
* @returns The button component for chaining
|
|
206
|
-
*/
|
|
207
|
-
enable: () => ButtonComponent;
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Disables the button (adds disabled attribute)
|
|
211
|
-
* @returns The button component for chaining
|
|
212
|
-
*/
|
|
213
|
-
disable: () => ButtonComponent;
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Sets the button's text content
|
|
217
|
-
* @param content - Text content
|
|
218
|
-
* @returns The button component for chaining
|
|
219
|
-
*/
|
|
220
|
-
setText: (content: string) => ButtonComponent;
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Gets the button's text content
|
|
224
|
-
* @returns Button text content
|
|
225
|
-
*/
|
|
226
|
-
getText: () => string;
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Sets the button's icon
|
|
230
|
-
* @param icon - Icon HTML content
|
|
231
|
-
* @returns The button component for chaining
|
|
232
|
-
*/
|
|
233
|
-
setIcon: (icon: string) => ButtonComponent;
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Gets the button's icon HTML content
|
|
237
|
-
* @returns Icon HTML
|
|
238
|
-
*/
|
|
239
|
-
getIcon: () => string;
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Destroys the button component and cleans up resources
|
|
243
|
-
*/
|
|
244
|
-
destroy: () => void;
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Updates the button's circular style based on content
|
|
248
|
-
* Internal method used when changing content
|
|
249
|
-
*/
|
|
250
|
-
updateCircularStyle: () => void;
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Sets the active state of the button
|
|
254
|
-
* Used to visually indicate the button's active state, such as when it has a menu open
|
|
255
|
-
*
|
|
256
|
-
* @param active - Whether the button should appear active
|
|
257
|
-
* @returns The button component for chaining
|
|
258
|
-
*/
|
|
259
|
-
setActive: (active: boolean) => ButtonComponent;
|
|
260
|
-
|
|
261
|
-
/**
|
|
262
|
-
* Adds an event listener to the button
|
|
263
|
-
* @param event - Event name ('click', 'focus', etc.)
|
|
264
|
-
* @param handler - Event handler function
|
|
265
|
-
* @returns The button component for chaining
|
|
266
|
-
*/
|
|
267
|
-
on: (event: string, handler: Function) => ButtonComponent;
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Removes an event listener from the button
|
|
271
|
-
* @param event - Event name
|
|
272
|
-
* @param handler - Event handler function
|
|
273
|
-
* @returns The button component for chaining
|
|
274
|
-
*/
|
|
275
|
-
off: (event: string, handler: Function) => ButtonComponent;
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* Adds CSS classes to the button element
|
|
279
|
-
* @param classes - One or more class names to add
|
|
280
|
-
* @returns The button component for chaining
|
|
281
|
-
*/
|
|
282
|
-
addClass: (...classes: string[]) => ButtonComponent;
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Sets the aria-label attribute for accessibility
|
|
286
|
-
* @param label - Aria label text
|
|
287
|
-
* @returns The button component for chaining
|
|
288
|
-
*/
|
|
289
|
-
setAriaLabel: (label: string) => ButtonComponent;
|
|
290
|
-
}
|