mtrl 0.3.7 → 0.3.9
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 +63 -0
- package/dist/components/progress/constants.d.ts +58 -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 +199 -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/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} +34 -82
- package/dist/core/config.d.ts +130 -0
- package/{src/core/dom/attributes.ts → dist/core/dom/attributes.d.ts} +2 -13
- package/dist/core/dom/classes.d.ts +42 -0
- package/dist/core/dom/create.d.ts +124 -0
- package/dist/core/dom/events.d.ts +69 -0
- package/{src/core/dom/index.ts → dist/core/dom/index.d.ts} +1 -5
- 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 +23 -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/validate.d.ts +73 -0
- package/dist/index.cjs +64 -0
- package/dist/index.cjs.map +285 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +53 -14854
- package/dist/index.js.map +285 -0
- package/dist/package.json +39 -0
- package/dist/styles.css +7 -0
- package/package.json +24 -5
- 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 -193
- package/src/components/menu/config.ts +0 -125
- package/src/components/menu/features/anchor.ts +0 -243
- package/src/components/menu/features/controller.ts +0 -1167
- package/src/components/menu/features/index.ts +0 -5
- package/src/components/menu/features/position.ts +0 -353
- package/src/components/menu/menu.ts +0 -119
- package/src/components/menu/types.ts +0 -379
- 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 -317
- 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/classes.ts +0 -132
- package/src/core/dom/create.ts +0 -273
- package/src/core/dom/events.ts +0 -209
- 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 -134
- 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 -248
- 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 -265
- 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,71 +0,0 @@
|
|
|
1
|
-
// src/components/tabs/tabs.ts
|
|
2
|
-
import { pipe } from '../../core/compose';
|
|
3
|
-
import { createBase } from '../../core/compose/component';
|
|
4
|
-
import { withEvents, withLifecycle } from '../../core/compose/features';
|
|
5
|
-
import { withAPI, getApiConfig } from './api';
|
|
6
|
-
import {
|
|
7
|
-
withTabsManagement,
|
|
8
|
-
withScrollable,
|
|
9
|
-
withDivider,
|
|
10
|
-
withIndicator
|
|
11
|
-
} from './features';
|
|
12
|
-
import { createTabsConfig, getTabsElementConfig } from './config';
|
|
13
|
-
import { TabsConfig, TabsComponent } from './types';
|
|
14
|
-
import { addTabStateStyles } from './state';
|
|
15
|
-
import { setupKeyboardNavigation } from './utils';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Creates a new Tabs component following MD3 guidelines
|
|
19
|
-
* @param {TabsConfig} config - Tabs configuration object
|
|
20
|
-
* @returns {TabsComponent} Tabs component instance
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* // Create basic tabs with three items
|
|
24
|
-
* const tabs = createTabs({
|
|
25
|
-
* tabs: [
|
|
26
|
-
* { text: 'Home', value: 'home', state: 'active' },
|
|
27
|
-
* { text: 'Products', value: 'products' },
|
|
28
|
-
* { text: 'About', value: 'about' }
|
|
29
|
-
* ]
|
|
30
|
-
* });
|
|
31
|
-
*
|
|
32
|
-
* // Add tabs to DOM
|
|
33
|
-
* document.body.appendChild(tabs.element);
|
|
34
|
-
*
|
|
35
|
-
* // Listen for tab changes
|
|
36
|
-
* tabs.on('change', (e) => {
|
|
37
|
-
* console.log(`Active tab: ${e.value}`);
|
|
38
|
-
* });
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
const createTabs = (config: TabsConfig = {}): TabsComponent => {
|
|
42
|
-
const baseConfig = createTabsConfig(config);
|
|
43
|
-
|
|
44
|
-
// Add ripple styles for state transitions
|
|
45
|
-
addTabStateStyles();
|
|
46
|
-
|
|
47
|
-
try {
|
|
48
|
-
// Build the tabs component with all features
|
|
49
|
-
const component = pipe(
|
|
50
|
-
createBase,
|
|
51
|
-
withEvents(),
|
|
52
|
-
getTabsElementConfig(baseConfig),
|
|
53
|
-
withScrollable(baseConfig),
|
|
54
|
-
withTabsManagement(baseConfig),
|
|
55
|
-
withDivider(baseConfig),
|
|
56
|
-
withIndicator(baseConfig), // Add indicator feature
|
|
57
|
-
withLifecycle(),
|
|
58
|
-
comp => withAPI(getApiConfig(comp))(comp)
|
|
59
|
-
)(baseConfig);
|
|
60
|
-
|
|
61
|
-
// Set up keyboard navigation
|
|
62
|
-
setupKeyboardNavigation(component);
|
|
63
|
-
|
|
64
|
-
return component;
|
|
65
|
-
} catch (error) {
|
|
66
|
-
console.error('Tabs creation error:', error);
|
|
67
|
-
throw new Error(`Failed to create tabs: ${(error as Error).message}`);
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
export default createTabs;
|
|
@@ -1,461 +0,0 @@
|
|
|
1
|
-
// src/components/tabs/types.ts
|
|
2
|
-
import type { BadgeComponent } from '../badge';
|
|
3
|
-
import { TabIndicator } from './indicator';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Available tabs variants
|
|
7
|
-
*/
|
|
8
|
-
export type TabsVariant = 'primary' | 'secondary';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Available tabs states
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
export type TabStates = 'active' | 'inactive' | 'disabled';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Configuration for the tab indicator
|
|
18
|
-
* @category Components
|
|
19
|
-
*/
|
|
20
|
-
export interface IndicatorConfig {
|
|
21
|
-
/** Height of the indicator in pixels */
|
|
22
|
-
height?: number;
|
|
23
|
-
/**
|
|
24
|
-
* Width strategy for the indicator
|
|
25
|
-
* - 'fixed': Uses a fixed width defined by fixedWidth
|
|
26
|
-
* - 'dynamic': Uses half the tab width
|
|
27
|
-
* - 'content': Uses the text content width
|
|
28
|
-
* - 'auto': Adapts based on variant (primary: text width, secondary: full tab width)
|
|
29
|
-
*/
|
|
30
|
-
widthStrategy?: 'fixed' | 'dynamic' | 'content' | 'auto';
|
|
31
|
-
/** Fixed width in pixels (when using fixed strategy) */
|
|
32
|
-
fixedWidth?: number;
|
|
33
|
-
/** Animation duration in milliseconds */
|
|
34
|
-
animationDuration?: number;
|
|
35
|
-
/** Animation timing function */
|
|
36
|
-
animationTiming?: string;
|
|
37
|
-
/** Custom color for the indicator */
|
|
38
|
-
color?: string;
|
|
39
|
-
/** Tab variant (primary or secondary) */
|
|
40
|
-
variant?: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Tab change event data interface
|
|
45
|
-
* @category Events
|
|
46
|
-
*/
|
|
47
|
-
export interface TabChangeEventData {
|
|
48
|
-
/**
|
|
49
|
-
* The tab component that was activated
|
|
50
|
-
*/
|
|
51
|
-
tab: TabComponent;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* The value of the activated tab
|
|
55
|
-
*/
|
|
56
|
-
value: string;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Configuration interface for a single Tab
|
|
61
|
-
* @category Components
|
|
62
|
-
*/
|
|
63
|
-
export interface TabConfig {
|
|
64
|
-
/**
|
|
65
|
-
* Tab state that determines if it's the active destination
|
|
66
|
-
* @default 'inactive'
|
|
67
|
-
*/
|
|
68
|
-
state?: TabStates | string;
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Whether the tab is initially disabled
|
|
72
|
-
* @default false
|
|
73
|
-
*/
|
|
74
|
-
disabled?: boolean;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Initial tab text content (label)
|
|
78
|
-
* @example 'Home'
|
|
79
|
-
*/
|
|
80
|
-
text?: string;
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Initial tab icon HTML content
|
|
84
|
-
* @example '<svg>...</svg>'
|
|
85
|
-
*/
|
|
86
|
-
icon?: string;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Badge text or value to display (if applicable)
|
|
90
|
-
* @example '5'
|
|
91
|
-
*/
|
|
92
|
-
badge?: string | number;
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Badge configuration object
|
|
96
|
-
* Pass additional options for the badge component
|
|
97
|
-
*/
|
|
98
|
-
badgeConfig?: {
|
|
99
|
-
variant?: string;
|
|
100
|
-
color?: string;
|
|
101
|
-
size?: string;
|
|
102
|
-
position?: string;
|
|
103
|
-
max?: number;
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Icon size in pixels or other CSS units
|
|
108
|
-
* @default '24px'
|
|
109
|
-
*/
|
|
110
|
-
iconSize?: string;
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Additional CSS classes to add to the tab
|
|
114
|
-
* @example 'home-tab main-navigation'
|
|
115
|
-
*/
|
|
116
|
-
class?: string;
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Tab value attribute for identifying the selected tab
|
|
120
|
-
*/
|
|
121
|
-
value?: string;
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Whether to enable ripple effect
|
|
125
|
-
* @default true
|
|
126
|
-
*/
|
|
127
|
-
ripple?: boolean;
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Component prefix for class names
|
|
131
|
-
* @default 'mtrl'
|
|
132
|
-
*/
|
|
133
|
-
prefix?: string;
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Component name used in class generation
|
|
137
|
-
*/
|
|
138
|
-
componentName?: string;
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Ripple effect configuration
|
|
142
|
-
*/
|
|
143
|
-
rippleConfig?: {
|
|
144
|
-
/** Duration of the ripple animation in milliseconds */
|
|
145
|
-
duration?: number;
|
|
146
|
-
/** Timing function for the ripple animation */
|
|
147
|
-
timing?: string;
|
|
148
|
-
/** Opacity values for ripple start and end [start, end] */
|
|
149
|
-
opacity?: [string, string];
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Variant of the tab
|
|
154
|
-
*/
|
|
155
|
-
variant?: string;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Configuration interface for the Tabs component
|
|
160
|
-
* @category Components
|
|
161
|
-
*/
|
|
162
|
-
export interface TabsConfig {
|
|
163
|
-
/**
|
|
164
|
-
* Tabs variant (primary or secondary)
|
|
165
|
-
* @default 'primary'
|
|
166
|
-
*/
|
|
167
|
-
variant?: TabsVariant | string;
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Initial tabs to create
|
|
171
|
-
*/
|
|
172
|
-
tabs?: TabConfig[];
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Whether to show the divider
|
|
176
|
-
* @default true
|
|
177
|
-
*/
|
|
178
|
-
showDivider?: boolean;
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Whether to enable horizontal scrolling
|
|
182
|
-
* @default true
|
|
183
|
-
*/
|
|
184
|
-
scrollable?: boolean;
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Additional CSS classes for the container
|
|
188
|
-
*/
|
|
189
|
-
class?: string;
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Component prefix for class names
|
|
193
|
-
* @default 'mtrl'
|
|
194
|
-
*/
|
|
195
|
-
prefix?: string;
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Event handlers configuration
|
|
199
|
-
*/
|
|
200
|
-
on?: {
|
|
201
|
-
/**
|
|
202
|
-
* Tab change event handler
|
|
203
|
-
*/
|
|
204
|
-
change?: (event: TabChangeEventData) => void;
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Event handlers for other events
|
|
208
|
-
*/
|
|
209
|
-
[key: string]: Function | undefined;
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Tab indicator configuration
|
|
214
|
-
*/
|
|
215
|
-
indicator?: IndicatorConfig;
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Tab indicator height in pixels
|
|
219
|
-
* @deprecated Use indicator.height instead
|
|
220
|
-
*/
|
|
221
|
-
indicatorHeight?: number;
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Tab indicator width strategy
|
|
225
|
-
* @deprecated Use indicator.widthStrategy instead
|
|
226
|
-
*/
|
|
227
|
-
indicatorWidthStrategy?: 'fixed' | 'dynamic' | 'content';
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Icon API interface for managing tab icons
|
|
232
|
-
* @category Components
|
|
233
|
-
*/
|
|
234
|
-
export interface IconAPI {
|
|
235
|
-
/**
|
|
236
|
-
* Sets the icon HTML content
|
|
237
|
-
* @param html - HTML string for the icon
|
|
238
|
-
* @returns The icon API for chaining
|
|
239
|
-
*/
|
|
240
|
-
setIcon: (html: string) => IconAPI;
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Gets the current icon HTML content
|
|
244
|
-
* @returns HTML string for the icon
|
|
245
|
-
*/
|
|
246
|
-
getIcon: () => string;
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Gets the icon DOM element
|
|
250
|
-
* @returns The icon element or null if not present
|
|
251
|
-
*/
|
|
252
|
-
getElement: () => HTMLElement | null;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Text API interface for managing tab text
|
|
257
|
-
* @category Components
|
|
258
|
-
*/
|
|
259
|
-
export interface TextAPI {
|
|
260
|
-
/**
|
|
261
|
-
* Sets the text content
|
|
262
|
-
* @param content - Text content
|
|
263
|
-
* @returns The text API for chaining
|
|
264
|
-
*/
|
|
265
|
-
setText: (content: string) => TextAPI;
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* Gets the current text content
|
|
269
|
-
* @returns Tab text content
|
|
270
|
-
*/
|
|
271
|
-
getText: () => string;
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Gets the text DOM element
|
|
275
|
-
* @returns The text element or null if not present
|
|
276
|
-
*/
|
|
277
|
-
getElement: () => HTMLElement | null;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/**
|
|
281
|
-
* Tab component interface
|
|
282
|
-
* @category Components
|
|
283
|
-
*/
|
|
284
|
-
export interface TabComponent {
|
|
285
|
-
/** The tab's DOM element */
|
|
286
|
-
element: HTMLElement;
|
|
287
|
-
|
|
288
|
-
/** The tab's badge component (if any) */
|
|
289
|
-
badge?: BadgeComponent;
|
|
290
|
-
|
|
291
|
-
/** Gets a class name with the component's prefix */
|
|
292
|
-
getClass: (name: string) => string;
|
|
293
|
-
|
|
294
|
-
/** Gets the tab's value attribute */
|
|
295
|
-
getValue: () => string;
|
|
296
|
-
|
|
297
|
-
/** Sets the tab's value attribute */
|
|
298
|
-
setValue: (value: string) => TabComponent;
|
|
299
|
-
|
|
300
|
-
/** Activates the tab (sets active state) */
|
|
301
|
-
activate: () => TabComponent;
|
|
302
|
-
|
|
303
|
-
/** Deactivates the tab (sets inactive state) */
|
|
304
|
-
deactivate: () => TabComponent;
|
|
305
|
-
|
|
306
|
-
/** Checks if the tab is active */
|
|
307
|
-
isActive: () => boolean;
|
|
308
|
-
|
|
309
|
-
/** Enables the tab (removes disabled attribute) */
|
|
310
|
-
enable: () => TabComponent;
|
|
311
|
-
|
|
312
|
-
/** Disables the tab (adds disabled attribute) */
|
|
313
|
-
disable: () => TabComponent;
|
|
314
|
-
|
|
315
|
-
/** Sets the tab's text content */
|
|
316
|
-
setText: (content: string) => TabComponent;
|
|
317
|
-
|
|
318
|
-
/** Gets the tab's text content */
|
|
319
|
-
getText: () => string;
|
|
320
|
-
|
|
321
|
-
/** Sets the tab's icon */
|
|
322
|
-
setIcon: (icon: string) => TabComponent;
|
|
323
|
-
|
|
324
|
-
/** Gets the tab's icon HTML content */
|
|
325
|
-
getIcon: () => string;
|
|
326
|
-
|
|
327
|
-
/** Sets the tab's badge */
|
|
328
|
-
setBadge: (content: string | number) => TabComponent;
|
|
329
|
-
|
|
330
|
-
/** Gets the tab's badge content */
|
|
331
|
-
getBadge: () => string;
|
|
332
|
-
|
|
333
|
-
/** Shows the tab's badge */
|
|
334
|
-
showBadge: () => TabComponent;
|
|
335
|
-
|
|
336
|
-
/** Hides the tab's badge */
|
|
337
|
-
hideBadge: () => TabComponent;
|
|
338
|
-
|
|
339
|
-
/** Gets the badge component instance */
|
|
340
|
-
getBadgeComponent: () => BadgeComponent | undefined;
|
|
341
|
-
|
|
342
|
-
/** Updates the tab's layout style based on content */
|
|
343
|
-
updateLayoutStyle: () => void;
|
|
344
|
-
|
|
345
|
-
/** Adds an event listener to the tab */
|
|
346
|
-
on: (event: string, handler: Function) => TabComponent;
|
|
347
|
-
|
|
348
|
-
/** Removes an event listener from the tab */
|
|
349
|
-
off: (event: string, handler: Function) => TabComponent;
|
|
350
|
-
|
|
351
|
-
/** Destroys the tab component and cleans up resources */
|
|
352
|
-
destroy: () => void;
|
|
353
|
-
|
|
354
|
-
/** API for managing disabled state */
|
|
355
|
-
disabled?: {
|
|
356
|
-
enable: () => void;
|
|
357
|
-
disable: () => void;
|
|
358
|
-
isDisabled: () => boolean;
|
|
359
|
-
};
|
|
360
|
-
|
|
361
|
-
/** API for managing component lifecycle */
|
|
362
|
-
lifecycle?: {
|
|
363
|
-
destroy: () => void;
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
/**
|
|
368
|
-
* Tabs component interface
|
|
369
|
-
* @category Components
|
|
370
|
-
*/
|
|
371
|
-
export interface TabsComponent {
|
|
372
|
-
/**
|
|
373
|
-
* Container element
|
|
374
|
-
*/
|
|
375
|
-
element: HTMLElement;
|
|
376
|
-
|
|
377
|
-
/**
|
|
378
|
-
* Creates and adds a new tab to the tabs component
|
|
379
|
-
* @param config - Tab configuration
|
|
380
|
-
* @returns The created tab component
|
|
381
|
-
*/
|
|
382
|
-
addTab: (config: TabConfig) => TabComponent;
|
|
383
|
-
|
|
384
|
-
/**
|
|
385
|
-
* Adds a pre-created tab to the tabs component
|
|
386
|
-
* @param tab - Tab component to add
|
|
387
|
-
* @returns Tabs component for chaining
|
|
388
|
-
*/
|
|
389
|
-
add: (tab: TabComponent) => TabsComponent;
|
|
390
|
-
|
|
391
|
-
/**
|
|
392
|
-
* Gets all tabs in the container
|
|
393
|
-
* @returns Array of tab components
|
|
394
|
-
*/
|
|
395
|
-
getTabs: () => TabComponent[];
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* Gets the active tab
|
|
399
|
-
* @returns Active tab or null if none
|
|
400
|
-
*/
|
|
401
|
-
getActiveTab: () => TabComponent | null;
|
|
402
|
-
|
|
403
|
-
/**
|
|
404
|
-
* Gets the indicator component
|
|
405
|
-
* @returns Tab indicator component
|
|
406
|
-
*/
|
|
407
|
-
getIndicator?: () => TabIndicator;
|
|
408
|
-
|
|
409
|
-
/**
|
|
410
|
-
* Sets a tab as active
|
|
411
|
-
* @param tabOrValue - Tab component or tab value
|
|
412
|
-
* @returns Tabs component for chaining
|
|
413
|
-
*/
|
|
414
|
-
setActiveTab: (tabOrValue: TabComponent | string) => TabsComponent;
|
|
415
|
-
|
|
416
|
-
/**
|
|
417
|
-
* Removes a tab from the container
|
|
418
|
-
* @param tabOrValue - Tab component or tab value
|
|
419
|
-
* @returns Tabs component for chaining
|
|
420
|
-
*/
|
|
421
|
-
removeTab: (tabOrValue: TabComponent | string) => TabsComponent;
|
|
422
|
-
|
|
423
|
-
/**
|
|
424
|
-
* Adds an event listener
|
|
425
|
-
* @param event - Event name
|
|
426
|
-
* @param handler - Event handler
|
|
427
|
-
* @returns Tabs component for chaining
|
|
428
|
-
*/
|
|
429
|
-
on: (event: string, handler: Function) => TabsComponent;
|
|
430
|
-
|
|
431
|
-
/**
|
|
432
|
-
* Removes an event listener
|
|
433
|
-
* @param event - Event name
|
|
434
|
-
* @param handler - Event handler
|
|
435
|
-
* @returns Tabs component for chaining
|
|
436
|
-
*/
|
|
437
|
-
off: (event: string, handler: Function) => TabsComponent;
|
|
438
|
-
|
|
439
|
-
/**
|
|
440
|
-
* Emit an event
|
|
441
|
-
* @param event - Event name
|
|
442
|
-
* @param data - Event data
|
|
443
|
-
* @returns Tabs component for chaining
|
|
444
|
-
*/
|
|
445
|
-
emit?: (event: string, data: any) => TabsComponent;
|
|
446
|
-
|
|
447
|
-
/**
|
|
448
|
-
* Destroys the tabs component and all tabs
|
|
449
|
-
*/
|
|
450
|
-
destroy: () => void;
|
|
451
|
-
|
|
452
|
-
/**
|
|
453
|
-
* Tab click event handler
|
|
454
|
-
*/
|
|
455
|
-
handleTabClick: (event: any, tab: TabComponent) => void;
|
|
456
|
-
|
|
457
|
-
/**
|
|
458
|
-
* Scroll container for scrollable tabs
|
|
459
|
-
*/
|
|
460
|
-
scrollContainer?: HTMLElement;
|
|
461
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
// src/components/tabs/utils.ts
|
|
2
|
-
import { TabsComponent, TabComponent } from './types';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Gets the active tab from a component
|
|
6
|
-
* @param component - Component with tabs
|
|
7
|
-
* @returns Active tab or null
|
|
8
|
-
*/
|
|
9
|
-
export function getActiveTab(component: any): TabComponent | null {
|
|
10
|
-
// First try the standard method
|
|
11
|
-
if (typeof component.getActiveTab === 'function') {
|
|
12
|
-
return component.getActiveTab();
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// Fallback: check if component has tabs array
|
|
16
|
-
if (Array.isArray(component.tabs)) {
|
|
17
|
-
return component.tabs.find(tab => tab.isActive && tab.isActive());
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// If all else fails, return null
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Updates tab panels based on active tab
|
|
26
|
-
* @param component - Component with tabs
|
|
27
|
-
*/
|
|
28
|
-
export function updateTabPanels(component: any): void {
|
|
29
|
-
// Get active tab using our helper function
|
|
30
|
-
const activeTab = getActiveTab(component);
|
|
31
|
-
if (!activeTab) return;
|
|
32
|
-
|
|
33
|
-
// Make sure getValue exists
|
|
34
|
-
if (typeof activeTab.getValue !== 'function') return;
|
|
35
|
-
|
|
36
|
-
const activeValue = activeTab.getValue();
|
|
37
|
-
|
|
38
|
-
// Find all tab panels in the document
|
|
39
|
-
const tabPanels = document.querySelectorAll(`[role="tabpanel"]`);
|
|
40
|
-
|
|
41
|
-
tabPanels.forEach(panel => {
|
|
42
|
-
// Get the associated tab value
|
|
43
|
-
const forTab = panel.getAttribute('aria-labelledby')?.replace('tab-', '');
|
|
44
|
-
|
|
45
|
-
if (forTab === activeValue) {
|
|
46
|
-
panel.removeAttribute('hidden');
|
|
47
|
-
panel.setAttribute('tabindex', '0');
|
|
48
|
-
} else {
|
|
49
|
-
panel.setAttribute('hidden', 'true');
|
|
50
|
-
panel.setAttribute('tabindex', '-1');
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Sets up keyboard navigation for tabs
|
|
57
|
-
* @param component - Tabs component
|
|
58
|
-
*/
|
|
59
|
-
export function setupKeyboardNavigation(component: any): void {
|
|
60
|
-
// Skip if element is missing
|
|
61
|
-
if (!component.element) return;
|
|
62
|
-
|
|
63
|
-
component.element.addEventListener('keydown', (event: KeyboardEvent) => {
|
|
64
|
-
// Only handle arrow keys when tabs container has focus
|
|
65
|
-
if (event.target !== event.currentTarget) return;
|
|
66
|
-
|
|
67
|
-
// Skip if getTabs or setActiveTab don't exist
|
|
68
|
-
if (typeof component.getTabs !== 'function' ||
|
|
69
|
-
typeof component.setActiveTab !== 'function') return;
|
|
70
|
-
|
|
71
|
-
const tabs = component.getTabs();
|
|
72
|
-
const currentTab = getActiveTab(component);
|
|
73
|
-
const currentIndex = currentTab ? tabs.indexOf(currentTab) : -1;
|
|
74
|
-
|
|
75
|
-
let newIndex = currentIndex;
|
|
76
|
-
|
|
77
|
-
switch (event.key) {
|
|
78
|
-
case 'ArrowRight':
|
|
79
|
-
case 'ArrowDown':
|
|
80
|
-
newIndex = currentIndex < tabs.length - 1 ? currentIndex + 1 : 0;
|
|
81
|
-
break;
|
|
82
|
-
|
|
83
|
-
case 'ArrowLeft':
|
|
84
|
-
case 'ArrowUp':
|
|
85
|
-
newIndex = currentIndex > 0 ? currentIndex - 1 : tabs.length - 1;
|
|
86
|
-
break;
|
|
87
|
-
|
|
88
|
-
case 'Home':
|
|
89
|
-
newIndex = 0;
|
|
90
|
-
break;
|
|
91
|
-
|
|
92
|
-
case 'End':
|
|
93
|
-
newIndex = tabs.length - 1;
|
|
94
|
-
break;
|
|
95
|
-
|
|
96
|
-
default:
|
|
97
|
-
return; // Don't handle other keys
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// If a new tab should be focused
|
|
101
|
-
if (newIndex !== currentIndex && tabs[newIndex]) {
|
|
102
|
-
event.preventDefault();
|
|
103
|
-
tabs[newIndex].element.focus();
|
|
104
|
-
component.setActiveTab(tabs[newIndex]);
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|