mtrl 0.3.8 → 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 +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/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 -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,221 +0,0 @@
|
|
|
1
|
-
// src/components/tabs/api.ts
|
|
2
|
-
import { TabsComponent, TabComponent, TabConfig } from './types';
|
|
3
|
-
import { createTab } from './tab';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* API options for a Tabs component
|
|
7
|
-
*/
|
|
8
|
-
interface ApiOptions {
|
|
9
|
-
/** The component's lifecycle API */
|
|
10
|
-
lifecycle: {
|
|
11
|
-
destroy: () => void;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Component with required elements and methods
|
|
17
|
-
*/
|
|
18
|
-
interface ComponentWithElements {
|
|
19
|
-
/** The DOM element */
|
|
20
|
-
element: HTMLElement;
|
|
21
|
-
/** Array of tab components */
|
|
22
|
-
tabs: TabComponent[];
|
|
23
|
-
/** Container for tabs */
|
|
24
|
-
tabsContainer: HTMLElement;
|
|
25
|
-
/** Tab click handler */
|
|
26
|
-
handleTabClick: (event: Event, tab: TabComponent) => void;
|
|
27
|
-
/** Scroll container (optional) */
|
|
28
|
-
scrollContainer?: HTMLElement;
|
|
29
|
-
/** Class name helper */
|
|
30
|
-
getClass: (name: string) => string;
|
|
31
|
-
/** Event subscription (optional) */
|
|
32
|
-
on?: (event: string, handler: Function) => any;
|
|
33
|
-
/** Event unsubscription (optional) */
|
|
34
|
-
off?: (event: string, handler: Function) => any;
|
|
35
|
-
/** Event emission (optional) */
|
|
36
|
-
emit?: (event: string, data: any) => any;
|
|
37
|
-
/** Component configuration */
|
|
38
|
-
config: Record<string, any>;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Enhances a tabs component with API methods
|
|
43
|
-
* @param {ApiOptions} options - API configuration options
|
|
44
|
-
* @returns {Function} Higher-order function that adds API methods to component
|
|
45
|
-
*/
|
|
46
|
-
export const withAPI = ({ lifecycle }: ApiOptions) =>
|
|
47
|
-
(component: ComponentWithElements): TabsComponent => ({
|
|
48
|
-
...component as any,
|
|
49
|
-
element: component.element,
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Creates and adds a new tab
|
|
53
|
-
*/
|
|
54
|
-
addTab(config: TabConfig) {
|
|
55
|
-
// Create a merged config that inherits from tabs component
|
|
56
|
-
const mergedConfig = {
|
|
57
|
-
...config,
|
|
58
|
-
prefix: component.config.prefix,
|
|
59
|
-
variant: config.variant || component.config.variant
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
// Ensure value is set if not provided
|
|
63
|
-
if (mergedConfig.value === undefined) {
|
|
64
|
-
mergedConfig.value = ''; // Default empty value
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Create the tab
|
|
68
|
-
const tab = createTab(mergedConfig);
|
|
69
|
-
|
|
70
|
-
// Add to internal tabs array
|
|
71
|
-
component.tabs.push(tab);
|
|
72
|
-
|
|
73
|
-
// Add to DOM
|
|
74
|
-
const targetContainer = component.tabsContainer;
|
|
75
|
-
targetContainer.appendChild(tab.element);
|
|
76
|
-
|
|
77
|
-
// Add click handler with robust event handling
|
|
78
|
-
if (tab.on && typeof tab.on === 'function') {
|
|
79
|
-
tab.on('click', (event) => component.handleTabClick(event, tab));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// Add direct DOM event handler as a fallback
|
|
83
|
-
tab.element.addEventListener('click', (event) => {
|
|
84
|
-
component.handleTabClick(event, tab);
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
return tab;
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Adds a pre-created tab
|
|
92
|
-
*/
|
|
93
|
-
add(tab: TabComponent) {
|
|
94
|
-
component.tabs.push(tab);
|
|
95
|
-
|
|
96
|
-
// Add tab to DOM
|
|
97
|
-
const targetContainer = component.tabsContainer;
|
|
98
|
-
targetContainer.appendChild(tab.element);
|
|
99
|
-
|
|
100
|
-
// Add click handler via API and direct DOM event
|
|
101
|
-
if (tab.on && typeof tab.on === 'function') {
|
|
102
|
-
tab.on('click', (event) => component.handleTabClick(event, tab));
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
tab.element.addEventListener('click', (event) => {
|
|
106
|
-
component.handleTabClick(event, tab);
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
return this;
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Gets all tabs
|
|
114
|
-
*/
|
|
115
|
-
getTabs() {
|
|
116
|
-
return [...component.tabs];
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Gets the active tab
|
|
121
|
-
*/
|
|
122
|
-
getActiveTab() {
|
|
123
|
-
return component.tabs.find(tab => tab.isActive()) || null;
|
|
124
|
-
},
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Sets a tab as active
|
|
128
|
-
*/
|
|
129
|
-
setActiveTab(tabOrValue: TabComponent | string) {
|
|
130
|
-
const targetTab = typeof tabOrValue === 'string'
|
|
131
|
-
? component.tabs.find(tab => tab.getValue() === tabOrValue)
|
|
132
|
-
: tabOrValue;
|
|
133
|
-
|
|
134
|
-
if (!targetTab) return this;
|
|
135
|
-
|
|
136
|
-
// Deactivate all tabs first
|
|
137
|
-
component.tabs.forEach(tab => tab.deactivate());
|
|
138
|
-
|
|
139
|
-
// Activate the target tab
|
|
140
|
-
targetTab.activate();
|
|
141
|
-
|
|
142
|
-
// Emit change event
|
|
143
|
-
if (component.emit) {
|
|
144
|
-
component.emit('change', {
|
|
145
|
-
tab: targetTab,
|
|
146
|
-
value: targetTab.getValue()
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return this;
|
|
151
|
-
},
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Removes a tab
|
|
155
|
-
*/
|
|
156
|
-
removeTab(tabOrValue: TabComponent | string) {
|
|
157
|
-
const targetTab = typeof tabOrValue === 'string'
|
|
158
|
-
? component.tabs.find(tab => tab.getValue() === tabOrValue)
|
|
159
|
-
: tabOrValue;
|
|
160
|
-
|
|
161
|
-
if (!targetTab) return this;
|
|
162
|
-
|
|
163
|
-
// Remove from array
|
|
164
|
-
const index = component.tabs.indexOf(targetTab);
|
|
165
|
-
if (index !== -1) {
|
|
166
|
-
component.tabs.splice(index, 1);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Clean up tab and remove from DOM
|
|
170
|
-
if (targetTab.element.parentNode) {
|
|
171
|
-
targetTab.element.parentNode.removeChild(targetTab.element);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
targetTab.destroy();
|
|
175
|
-
|
|
176
|
-
return this;
|
|
177
|
-
},
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Adds an event listener
|
|
181
|
-
*/
|
|
182
|
-
on(event: string, handler: Function) {
|
|
183
|
-
if (component.on) {
|
|
184
|
-
component.on(event, handler);
|
|
185
|
-
}
|
|
186
|
-
return this;
|
|
187
|
-
},
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Removes an event listener
|
|
191
|
-
*/
|
|
192
|
-
off(event: string, handler: Function) {
|
|
193
|
-
if (component.off) {
|
|
194
|
-
component.off(event, handler);
|
|
195
|
-
}
|
|
196
|
-
return this;
|
|
197
|
-
},
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Destroys the tabs component
|
|
201
|
-
*/
|
|
202
|
-
destroy() {
|
|
203
|
-
// Clean up all tabs first
|
|
204
|
-
component.tabs.forEach(tab => tab.destroy());
|
|
205
|
-
component.tabs.length = 0;
|
|
206
|
-
|
|
207
|
-
// Then destroy container
|
|
208
|
-
lifecycle.destroy();
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Creates API configuration for the Tabs component
|
|
214
|
-
* @param {Object} comp - Component with lifecycle feature
|
|
215
|
-
* @returns {Object} API configuration object
|
|
216
|
-
*/
|
|
217
|
-
export const getApiConfig = (comp) => ({
|
|
218
|
-
lifecycle: {
|
|
219
|
-
destroy: () => comp.lifecycle.destroy()
|
|
220
|
-
}
|
|
221
|
-
});
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
// src/components/tabs/config.ts
|
|
2
|
-
import {
|
|
3
|
-
createComponentConfig,
|
|
4
|
-
createElementConfig,
|
|
5
|
-
BaseComponentConfig
|
|
6
|
-
} from '../../core/config/component-config';
|
|
7
|
-
import { withElement } from '../../core/compose/component';
|
|
8
|
-
import { TabConfig } from './types';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Default configuration for a Tab
|
|
12
|
-
*/
|
|
13
|
-
export const defaultTabConfig: TabConfig = {
|
|
14
|
-
state: 'inactive',
|
|
15
|
-
componentName: 'tab',
|
|
16
|
-
ripple: true
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Default configuration for the Tabs component
|
|
21
|
-
*/
|
|
22
|
-
export const defaultTabsConfig = {
|
|
23
|
-
variant: 'primary',
|
|
24
|
-
scrollable: true,
|
|
25
|
-
showDivider: true,
|
|
26
|
-
componentName: 'tabs'
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export const createTabsConfig = (config = {}) =>
|
|
30
|
-
createComponentConfig(defaultTabsConfig, config, 'tabs');
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Creates the base configuration for a Tab
|
|
34
|
-
* @param {TabConfig} config - User provided configuration
|
|
35
|
-
* @returns {TabConfig} Complete configuration with defaults applied
|
|
36
|
-
*/
|
|
37
|
-
export const createTabConfig = (config: TabConfig = {}): TabConfig =>
|
|
38
|
-
createComponentConfig(defaultTabConfig, config, 'tab') as TabConfig;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
export const getTabsElementConfig = (config) => {
|
|
42
|
-
const elementConfig = {
|
|
43
|
-
tag: 'div',
|
|
44
|
-
attrs: {
|
|
45
|
-
role: 'tablist',
|
|
46
|
-
'aria-orientation': 'horizontal'
|
|
47
|
-
},
|
|
48
|
-
className: [
|
|
49
|
-
`${config.prefix}-tabs`,
|
|
50
|
-
`${config.prefix}-tabs--${config.variant || 'primary'}`,
|
|
51
|
-
config.class
|
|
52
|
-
]
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
return (component) => withElement(elementConfig)(component);
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Creates API configuration for the Tab component
|
|
60
|
-
* @param {Object} comp - Component with disabled and lifecycle features
|
|
61
|
-
* @returns {Object} API configuration object
|
|
62
|
-
*/
|
|
63
|
-
export const getTabApiConfig = (comp) => ({
|
|
64
|
-
disabled: {
|
|
65
|
-
enable: () => comp.disabled.enable(),
|
|
66
|
-
disable: () => comp.disabled.disable(),
|
|
67
|
-
isDisabled: () => comp.disabled.isDisabled && comp.disabled.isDisabled()
|
|
68
|
-
},
|
|
69
|
-
lifecycle: {
|
|
70
|
-
destroy: () => comp.lifecycle.destroy()
|
|
71
|
-
},
|
|
72
|
-
button: comp.button
|
|
73
|
-
});
|
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
// src/components/tabs/features.ts
|
|
2
|
-
import { createTab } from './tab';
|
|
3
|
-
import { TabConfig, TabComponent } from './types';
|
|
4
|
-
import { BaseComponent } from '../../core/compose/component';
|
|
5
|
-
import { updateTabPanels, getActiveTab } from './utils';
|
|
6
|
-
import { createTabIndicator, TabIndicator } from './indicator';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Configuration for tabs management feature
|
|
10
|
-
*/
|
|
11
|
-
export interface TabsManagementConfig {
|
|
12
|
-
/** Initial tabs to create */
|
|
13
|
-
tabs?: TabConfig[];
|
|
14
|
-
/** Tab variant */
|
|
15
|
-
variant?: string;
|
|
16
|
-
/** Component prefix */
|
|
17
|
-
prefix?: string;
|
|
18
|
-
/** Other configuration properties */
|
|
19
|
-
[key: string]: any;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Component with tabs management capabilities
|
|
24
|
-
*/
|
|
25
|
-
export interface TabsManagementComponent {
|
|
26
|
-
/** Array of tab components */
|
|
27
|
-
tabs: TabComponent[];
|
|
28
|
-
|
|
29
|
-
/** Target container for tabs */
|
|
30
|
-
tabsContainer: HTMLElement;
|
|
31
|
-
|
|
32
|
-
/** Tab click handler */
|
|
33
|
-
handleTabClick: (event: Event, tab: TabComponent) => void;
|
|
34
|
-
|
|
35
|
-
/** Get all tabs */
|
|
36
|
-
getTabs?: () => TabComponent[];
|
|
37
|
-
|
|
38
|
-
/** Get the active tab */
|
|
39
|
-
getActiveTab?: () => TabComponent | null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Adds tabs management capabilities to a component
|
|
44
|
-
* @param {TabsManagementConfig} config - Tabs configuration
|
|
45
|
-
* @returns {Function} Component enhancer with tabs management
|
|
46
|
-
*/
|
|
47
|
-
export const withTabsManagement = <T extends TabsManagementConfig>(config: T) =>
|
|
48
|
-
<C extends any>(component: C): C & TabsManagementComponent => {
|
|
49
|
-
const tabs: TabComponent[] = [];
|
|
50
|
-
|
|
51
|
-
// Store the target container for tabs
|
|
52
|
-
const tabsContainer = component.scrollContainer || component.element;
|
|
53
|
-
|
|
54
|
-
// Create initial tabs if provided in config
|
|
55
|
-
if (Array.isArray(config.tabs)) {
|
|
56
|
-
config.tabs.forEach(tabConfig => {
|
|
57
|
-
// Create a merged config that inherits from tabs component
|
|
58
|
-
const mergedConfig = {
|
|
59
|
-
...tabConfig,
|
|
60
|
-
prefix: config.prefix,
|
|
61
|
-
variant: tabConfig.variant || config.variant
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// Create the tab
|
|
65
|
-
const tab = createTab(mergedConfig);
|
|
66
|
-
|
|
67
|
-
// Add to internal tabs array
|
|
68
|
-
tabs.push(tab);
|
|
69
|
-
|
|
70
|
-
// Add to DOM
|
|
71
|
-
tabsContainer.appendChild(tab.element);
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Gets all tabs
|
|
77
|
-
*/
|
|
78
|
-
const getTabs = () => {
|
|
79
|
-
return [...tabs];
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Gets the active tab
|
|
84
|
-
*/
|
|
85
|
-
const getActiveTab = () => {
|
|
86
|
-
return tabs.find(tab => tab.isActive()) || null;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Handles tab click events
|
|
91
|
-
*/
|
|
92
|
-
const handleTabClick = (event: any, tab: TabComponent) => {
|
|
93
|
-
// Check if event is a DOM event with preventDefault
|
|
94
|
-
if (event && typeof event.preventDefault === 'function') {
|
|
95
|
-
event.preventDefault();
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// Skip if tab is disabled
|
|
99
|
-
if (tab.disabled && tab.disabled.isDisabled && tab.disabled.isDisabled()) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Deactivate all tabs first
|
|
104
|
-
tabs.forEach(t => t.deactivate());
|
|
105
|
-
|
|
106
|
-
// Activate the clicked tab
|
|
107
|
-
tab.activate();
|
|
108
|
-
|
|
109
|
-
// Get the tab value
|
|
110
|
-
const value = tab.getValue();
|
|
111
|
-
|
|
112
|
-
// Update tab panels
|
|
113
|
-
updateTabPanels({
|
|
114
|
-
tabs,
|
|
115
|
-
getActiveTab: () => tabs.find(t => t.isActive()) || null
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// Emit change event if component has emit method
|
|
119
|
-
if (typeof component['emit'] === 'function') {
|
|
120
|
-
component['emit']('change', {
|
|
121
|
-
tab,
|
|
122
|
-
value
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
// Add click handlers to existing tabs
|
|
128
|
-
tabs.forEach(tab => {
|
|
129
|
-
// Add event listener directly and via API if available
|
|
130
|
-
if (tab.on && typeof tab.on === 'function') {
|
|
131
|
-
tab.on('click', (event) => handleTabClick(event, tab));
|
|
132
|
-
}
|
|
133
|
-
// Also add direct DOM event listener as a fallback
|
|
134
|
-
tab.element.addEventListener('click', (event) => handleTabClick(event, tab));
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
return {
|
|
138
|
-
...component,
|
|
139
|
-
tabs,
|
|
140
|
-
tabsContainer,
|
|
141
|
-
handleTabClick,
|
|
142
|
-
getTabs,
|
|
143
|
-
getActiveTab
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Configuration for scrollable feature
|
|
149
|
-
*/
|
|
150
|
-
export interface ScrollableConfig {
|
|
151
|
-
/** Whether tabs are scrollable horizontally */
|
|
152
|
-
scrollable?: boolean;
|
|
153
|
-
/** Other configuration properties */
|
|
154
|
-
[key: string]: any;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Component with scrollable capabilities
|
|
159
|
-
*/
|
|
160
|
-
export interface ScrollableComponent {
|
|
161
|
-
/** Scroll container element */
|
|
162
|
-
scrollContainer?: HTMLElement;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Adds scrollable capabilities to a component
|
|
167
|
-
* @param {ScrollableConfig} config - Scrollable configuration
|
|
168
|
-
* @returns {Function} Component enhancer with scrollable container
|
|
169
|
-
*/
|
|
170
|
-
export const withScrollable = <T extends ScrollableConfig>(config: T) =>
|
|
171
|
-
<C extends any>(component: C): C & ScrollableComponent => {
|
|
172
|
-
// Skip if scrollable is explicitly false
|
|
173
|
-
if (config.scrollable === false) {
|
|
174
|
-
return component as C & ScrollableComponent;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
// Add scrollable class
|
|
178
|
-
component.element.classList.add(`${component.getClass('tabs')}--scrollable`);
|
|
179
|
-
|
|
180
|
-
// Create container for tabs that can scroll
|
|
181
|
-
const scrollContainer = document.createElement('div');
|
|
182
|
-
scrollContainer.className = `${component.getClass('tabs')}-scroll`;
|
|
183
|
-
|
|
184
|
-
// Move any existing children to scroll container
|
|
185
|
-
while (component.element.firstChild) {
|
|
186
|
-
scrollContainer.appendChild(component.element.firstChild);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// Add scroll container to the main element
|
|
190
|
-
component.element.appendChild(scrollContainer);
|
|
191
|
-
|
|
192
|
-
return {
|
|
193
|
-
...component,
|
|
194
|
-
scrollContainer
|
|
195
|
-
};
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Configuration for divider feature
|
|
200
|
-
*/
|
|
201
|
-
export interface DividerConfig {
|
|
202
|
-
/** Whether to show a divider below the tabs */
|
|
203
|
-
showDivider?: boolean;
|
|
204
|
-
/** Other configuration properties */
|
|
205
|
-
[key: string]: any;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Adds a divider to a component
|
|
210
|
-
* @param {DividerConfig} config - Divider configuration
|
|
211
|
-
* @returns {Function} Component enhancer with divider
|
|
212
|
-
*/
|
|
213
|
-
export const withDivider = <T extends DividerConfig>(config: T) =>
|
|
214
|
-
<C extends any>(component: C): C => {
|
|
215
|
-
// Skip if divider is explicitly disabled
|
|
216
|
-
if (config.showDivider === false) {
|
|
217
|
-
return component;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// Create the divider element
|
|
221
|
-
const divider = document.createElement('div');
|
|
222
|
-
divider.className = `${component.getClass('tabs')}-divider`;
|
|
223
|
-
|
|
224
|
-
// Add the divider to the main element
|
|
225
|
-
component.element.appendChild(divider);
|
|
226
|
-
|
|
227
|
-
return component;
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Configuration for indicator feature
|
|
232
|
-
*/
|
|
233
|
-
export interface IndicatorFeatureConfig {
|
|
234
|
-
/** Component prefix */
|
|
235
|
-
prefix?: string;
|
|
236
|
-
/** Width strategy for the indicator */
|
|
237
|
-
widthStrategy?: 'fixed' | 'dynamic' | 'content';
|
|
238
|
-
/** Height of the indicator in pixels */
|
|
239
|
-
height?: number;
|
|
240
|
-
/** Fixed width in pixels (when using fixed strategy) */
|
|
241
|
-
fixedWidth?: number;
|
|
242
|
-
/** Animation duration in milliseconds */
|
|
243
|
-
animationDuration?: number;
|
|
244
|
-
/** Animation timing function */
|
|
245
|
-
animationTiming?: string;
|
|
246
|
-
/** Custom color for the indicator */
|
|
247
|
-
color?: string;
|
|
248
|
-
/** Legacy height property */
|
|
249
|
-
indicatorHeight?: number;
|
|
250
|
-
/** Legacy width strategy property */
|
|
251
|
-
indicatorWidthStrategy?: 'fixed' | 'dynamic' | 'content';
|
|
252
|
-
/** Indicator configuration object */
|
|
253
|
-
indicator?: {
|
|
254
|
-
widthStrategy?: 'fixed' | 'dynamic' | 'content';
|
|
255
|
-
height?: number;
|
|
256
|
-
fixedWidth?: number;
|
|
257
|
-
animationDuration?: number;
|
|
258
|
-
animationTiming?: string;
|
|
259
|
-
color?: string;
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Component with indicator capability
|
|
265
|
-
*/
|
|
266
|
-
export interface IndicatorComponent {
|
|
267
|
-
/** The indicator instance */
|
|
268
|
-
indicator: TabIndicator;
|
|
269
|
-
/** Get the indicator instance */
|
|
270
|
-
getIndicator: () => TabIndicator;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Enhances a component with tab indicator functionality
|
|
275
|
-
* @param config - Indicator configuration
|
|
276
|
-
* @returns Component enhancer with indicator functionality
|
|
277
|
-
*/
|
|
278
|
-
export const withIndicator = <T extends IndicatorFeatureConfig>(config: T) =>
|
|
279
|
-
<C extends any>(component: C): C & IndicatorComponent => {
|
|
280
|
-
// Create indicator with proper config
|
|
281
|
-
const indicatorConfig = config.indicator || {};
|
|
282
|
-
const indicator: TabIndicator = createTabIndicator({
|
|
283
|
-
prefix: config.prefix,
|
|
284
|
-
// Support both new and legacy config
|
|
285
|
-
widthStrategy: indicatorConfig.widthStrategy || config.indicatorWidthStrategy || 'auto', // Changed default to 'auto'
|
|
286
|
-
height: indicatorConfig.height || config.indicatorHeight || 3,
|
|
287
|
-
fixedWidth: indicatorConfig.fixedWidth || 40,
|
|
288
|
-
animationDuration: indicatorConfig.animationDuration || 250,
|
|
289
|
-
animationTiming: indicatorConfig.animationTiming || 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
290
|
-
color: indicatorConfig.color,
|
|
291
|
-
// Pass the tabs variant to the indicator
|
|
292
|
-
variant: config.variant || 'primary'
|
|
293
|
-
});
|
|
294
|
-
|
|
295
|
-
// Find the scroll container and add the indicator to it
|
|
296
|
-
const scrollContainer = component.scrollContainer || component.element;
|
|
297
|
-
if (!scrollContainer) {
|
|
298
|
-
console.error('No scroll container found - cannot add indicator');
|
|
299
|
-
throw new Error('Failed to create tabs: No scroll container found');
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
// Add the indicator to the scroll container
|
|
303
|
-
scrollContainer.appendChild(indicator.element);
|
|
304
|
-
|
|
305
|
-
// Store the original handlers to enhance
|
|
306
|
-
const originalHandleTabClick = component.handleTabClick;
|
|
307
|
-
|
|
308
|
-
// Replace tab click handler to ensure indicator updates
|
|
309
|
-
component.handleTabClick = function(event, tab) {
|
|
310
|
-
// Skip if tab is disabled
|
|
311
|
-
if (tab.disabled && tab.disabled.isDisabled && tab.disabled.isDisabled()) {
|
|
312
|
-
return;
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// Call original handler
|
|
316
|
-
originalHandleTabClick.call(this, event, tab);
|
|
317
|
-
|
|
318
|
-
// Move indicator with a slight delay to ensure DOM updates
|
|
319
|
-
setTimeout(() => {
|
|
320
|
-
indicator.moveToTab(tab);
|
|
321
|
-
}, 10);
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
// Position indicator on initial active tab
|
|
325
|
-
setTimeout(() => {
|
|
326
|
-
const activeTab = component.tabs.find(tab => tab.isActive());
|
|
327
|
-
if (activeTab) {
|
|
328
|
-
indicator.moveToTab(activeTab, true);
|
|
329
|
-
}
|
|
330
|
-
}, 50);
|
|
331
|
-
|
|
332
|
-
// Add scroll event handling
|
|
333
|
-
const scrollHandler = () => {
|
|
334
|
-
const activeTab = component.tabs.find(tab => tab.isActive());
|
|
335
|
-
if (activeTab) {
|
|
336
|
-
indicator.moveToTab(activeTab, true);
|
|
337
|
-
}
|
|
338
|
-
};
|
|
339
|
-
|
|
340
|
-
if (scrollContainer) {
|
|
341
|
-
scrollContainer.addEventListener('scroll', scrollHandler);
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
// Watch for window resize to update indicator
|
|
345
|
-
const resizeObserver = new ResizeObserver(() => {
|
|
346
|
-
const activeTab = component.tabs.find(tab => tab.isActive());
|
|
347
|
-
if (activeTab) {
|
|
348
|
-
indicator.moveToTab(activeTab, true);
|
|
349
|
-
}
|
|
350
|
-
});
|
|
351
|
-
|
|
352
|
-
resizeObserver.observe(scrollContainer);
|
|
353
|
-
|
|
354
|
-
// Add MutationObserver to detect tab state changes
|
|
355
|
-
const mutationObserver = new MutationObserver((mutations) => {
|
|
356
|
-
for (const mutation of mutations) {
|
|
357
|
-
if (mutation.type === 'attributes' &&
|
|
358
|
-
mutation.attributeName === 'class' &&
|
|
359
|
-
(mutation.target as HTMLElement).classList.contains(`${config.prefix}-tab--active`)) {
|
|
360
|
-
// Find the corresponding tab component
|
|
361
|
-
const tabElement = mutation.target as HTMLElement;
|
|
362
|
-
const activeTab = component.tabs.find(tab => tab.element === tabElement);
|
|
363
|
-
if (activeTab) {
|
|
364
|
-
indicator.moveToTab(activeTab);
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
|
|
370
|
-
// Observe all tabs for class changes
|
|
371
|
-
if (Array.isArray(component.tabs)) {
|
|
372
|
-
component.tabs.forEach(tab => {
|
|
373
|
-
if (tab.element) {
|
|
374
|
-
mutationObserver.observe(tab.element, { attributes: true });
|
|
375
|
-
}
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
// Enhance component's destroy method
|
|
380
|
-
const originalDestroy = component.destroy || (() => {});
|
|
381
|
-
|
|
382
|
-
// Override destroy to clean up resources
|
|
383
|
-
(component as any).destroy = function() {
|
|
384
|
-
indicator.destroy();
|
|
385
|
-
resizeObserver.disconnect();
|
|
386
|
-
mutationObserver.disconnect();
|
|
387
|
-
|
|
388
|
-
if (scrollContainer) {
|
|
389
|
-
scrollContainer.removeEventListener('scroll', scrollHandler);
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
// Call original destroy if it exists
|
|
393
|
-
if (typeof originalDestroy === 'function') {
|
|
394
|
-
originalDestroy.call(this);
|
|
395
|
-
}
|
|
396
|
-
};
|
|
397
|
-
|
|
398
|
-
return {
|
|
399
|
-
...component,
|
|
400
|
-
indicator,
|
|
401
|
-
getIndicator: () => indicator
|
|
402
|
-
};
|
|
403
|
-
};
|