mtrl 0.3.8 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LICENSE +21 -0
- package/dist/README.md +324 -0
- package/dist/components/badge/api.d.ts +48 -0
- package/{src/components/badge/badge.ts → dist/components/badge/badge.d.ts} +14 -57
- package/dist/components/badge/config.d.ts +79 -0
- package/dist/components/badge/constants.d.ts +35 -0
- package/dist/components/badge/features.d.ts +36 -0
- package/dist/components/badge/index.d.ts +8 -0
- package/dist/components/badge/types.d.ts +256 -0
- package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +12 -0
- package/dist/components/bottom-app-bar/config.d.ts +16 -0
- package/dist/components/bottom-app-bar/constants.d.ts +22 -0
- package/{src/components/bottom-app-bar/index.ts → dist/components/bottom-app-bar/index.d.ts} +0 -9
- package/dist/components/bottom-app-bar/types.d.ts +96 -0
- package/dist/components/button/api.d.ts +47 -0
- package/dist/components/button/button.d.ts +25 -0
- package/dist/components/button/config.d.ts +59 -0
- package/dist/components/button/constants.d.ts +43 -0
- package/dist/components/button/index.d.ts +6 -0
- package/dist/components/button/types.d.ts +265 -0
- package/dist/components/card/api.d.ts +11 -0
- package/{src/components/card/card.ts → dist/components/card/card.d.ts} +10 -58
- package/dist/components/card/config.d.ts +105 -0
- package/dist/components/card/constants.d.ts +85 -0
- package/dist/components/card/content.d.ts +92 -0
- package/dist/components/card/features.d.ts +131 -0
- package/{src/components/card/index.ts → dist/components/card/index.d.ts} +13 -74
- package/dist/components/card/types.d.ts +471 -0
- package/dist/components/carousel/api.d.ts +33 -0
- package/dist/components/carousel/carousel.d.ts +75 -0
- package/dist/components/carousel/config.d.ts +45 -0
- package/dist/components/carousel/constants.d.ts +165 -0
- package/dist/components/carousel/features/drag.d.ts +8 -0
- package/{src/components/carousel/features/index.ts → dist/components/carousel/features/index.d.ts} +1 -4
- package/dist/components/carousel/features/slides.d.ts +8 -0
- package/{src/components/carousel/index.ts → dist/components/carousel/index.d.ts} +10 -29
- package/dist/components/carousel/types.d.ts +276 -0
- package/dist/components/checkbox/api.d.ts +7 -0
- package/dist/components/checkbox/checkbox.d.ts +65 -0
- package/dist/components/checkbox/config.d.ts +44 -0
- package/dist/components/checkbox/constants.d.ts +63 -0
- package/{src/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +8 -25
- package/dist/components/checkbox/types.d.ts +242 -0
- package/dist/components/chips/api.d.ts +49 -0
- package/dist/components/chips/chip/api.d.ts +23 -0
- package/dist/components/chips/chip/chip.d.ts +8 -0
- package/dist/components/chips/chip/config.d.ts +57 -0
- package/dist/components/chips/chip/constants.d.ts +38 -0
- package/dist/components/chips/chip/index.d.ts +2 -0
- package/dist/components/chips/chip/types.d.ts +11 -0
- package/dist/components/chips/chips.d.ts +17 -0
- package/dist/components/chips/config.d.ts +67 -0
- package/dist/components/chips/constants.d.ts +46 -0
- package/dist/components/chips/features/chip-items.d.ts +8 -0
- package/dist/components/chips/features/container.d.ts +8 -0
- package/dist/components/chips/features/controller.d.ts +9 -0
- package/{src/components/chips/features/index.ts → dist/components/chips/features/index.d.ts} +1 -2
- package/dist/components/chips/features/label.d.ts +8 -0
- package/dist/components/chips/index.d.ts +4 -0
- package/dist/components/chips/schema.d.ts +34 -0
- package/dist/components/chips/types.d.ts +398 -0
- package/dist/components/datepicker/api.d.ts +9 -0
- package/dist/components/datepicker/config.d.ts +79 -0
- package/dist/components/datepicker/constants.d.ts +97 -0
- package/dist/components/datepicker/datepicker.d.ts +8 -0
- package/dist/components/datepicker/index.d.ts +3 -0
- package/dist/components/datepicker/render.d.ts +43 -0
- package/dist/components/datepicker/types.d.ts +321 -0
- package/dist/components/datepicker/utils.d.ts +84 -0
- package/dist/components/dialog/api.d.ts +59 -0
- package/dist/components/dialog/config.d.ts +91 -0
- package/dist/components/dialog/constants.d.ts +116 -0
- package/{src/components/dialog/dialog.ts → dist/components/dialog/dialog.d.ts} +16 -69
- package/dist/components/dialog/features.d.ts +37 -0
- package/dist/components/dialog/index.d.ts +14 -0
- package/dist/components/dialog/types.d.ts +483 -0
- package/dist/components/divider/config.d.ts +143 -0
- package/dist/components/divider/constants.d.ts +45 -0
- package/{src/components/divider/divider.ts → dist/components/divider/divider.d.ts} +9 -37
- package/dist/components/divider/features.d.ts +50 -0
- package/{src/components/divider/index.ts → dist/components/divider/index.d.ts} +6 -12
- package/dist/components/divider/types.d.ts +124 -0
- package/dist/components/extended-fab/api.d.ts +83 -0
- package/dist/components/extended-fab/config.d.ts +75 -0
- package/dist/components/extended-fab/constants.d.ts +82 -0
- package/dist/components/extended-fab/extended-fab.d.ts +61 -0
- package/{src/components/extended-fab/index.ts → dist/components/extended-fab/index.d.ts} +6 -15
- package/dist/components/extended-fab/types.d.ts +703 -0
- package/dist/components/fab/api.d.ts +64 -0
- package/dist/components/fab/config.d.ts +71 -0
- package/dist/components/fab/constants.d.ts +75 -0
- package/{src/components/fab/fab.ts → dist/components/fab/fab.d.ts} +10 -46
- package/{src/components/fab/index.ts → dist/components/fab/index.d.ts} +6 -15
- package/dist/components/fab/types.d.ts +577 -0
- package/dist/components/index.d.ts +76 -0
- package/dist/components/list/api.d.ts +106 -0
- package/dist/components/list/config.d.ts +61 -0
- package/dist/components/list/constants.d.ts +76 -0
- package/dist/components/list/features/index.d.ts +2 -0
- package/dist/components/list/features/listmanager.d.ts +9 -0
- package/dist/components/list/features/selection.d.ts +9 -0
- package/dist/components/list/index.d.ts +12 -0
- package/dist/components/list/list.d.ts +11 -0
- package/dist/components/list/types.d.ts +294 -0
- package/dist/components/menu/api.d.ts +58 -0
- package/dist/components/menu/config.d.ts +78 -0
- package/dist/components/menu/constants.d.ts +106 -0
- package/dist/components/menu/features/controller.d.ts +10 -0
- package/dist/components/menu/features/index.d.ts +6 -0
- package/dist/components/menu/features/keyboard.d.ts +26 -0
- package/dist/components/menu/features/opener.d.ts +10 -0
- package/dist/components/menu/features/position.d.ts +18 -0
- package/dist/components/menu/features/submenu.d.ts +10 -0
- package/{src/components/menu/index.ts → dist/components/menu/index.d.ts} +11 -27
- package/dist/components/menu/menu.d.ts +29 -0
- package/dist/components/menu/types.d.ts +338 -0
- package/dist/components/navigation/api.d.ts +8 -0
- package/dist/components/navigation/config.d.ts +34 -0
- package/dist/components/navigation/constants.d.ts +137 -0
- package/dist/components/navigation/features/controller.d.ts +30 -0
- package/dist/components/navigation/features/items.d.ts +32 -0
- package/dist/components/navigation/index.d.ts +3 -0
- package/dist/components/navigation/nav-item.d.ts +30 -0
- package/dist/components/navigation/navigation.d.ts +8 -0
- package/dist/components/navigation/system/core.d.ts +72 -0
- package/dist/components/navigation/system/events.d.ts +35 -0
- package/dist/components/navigation/system/index.d.ts +10 -0
- package/dist/components/navigation/system/mobile.d.ts +52 -0
- package/dist/components/navigation/system/state.d.ts +22 -0
- package/dist/components/navigation/system/types.d.ts +305 -0
- package/dist/components/navigation/types.d.ts +216 -0
- package/dist/components/progress/api.d.ts +46 -0
- package/dist/components/progress/config.d.ts +72 -0
- package/dist/components/progress/constants.d.ts +139 -0
- package/dist/components/progress/features/canvas.d.ts +32 -0
- package/dist/components/progress/features/circular.d.ts +9 -0
- package/dist/components/progress/features/index.d.ts +8 -0
- package/dist/components/progress/features/linear.d.ts +9 -0
- package/dist/components/progress/features/resize-observer.d.ts +5 -0
- package/dist/components/progress/features/state.d.ts +38 -0
- package/dist/components/progress/features.d.ts +40 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/progress.d.ts +24 -0
- package/dist/components/progress/types.d.ts +272 -0
- package/dist/components/radios/api.d.ts +37 -0
- package/dist/components/radios/config.d.ts +42 -0
- package/dist/components/radios/constants.d.ts +114 -0
- package/dist/components/radios/index.d.ts +3 -0
- package/dist/components/radios/radio.d.ts +8 -0
- package/dist/components/radios/radios.d.ts +8 -0
- package/dist/components/radios/types.d.ts +189 -0
- package/dist/components/search/api.d.ts +55 -0
- package/dist/components/search/config.d.ts +73 -0
- package/dist/components/search/constants.d.ts +128 -0
- package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
- package/dist/components/search/features/search.d.ts +7 -0
- package/dist/components/search/features/states.d.ts +8 -0
- package/dist/components/search/features/structure.d.ts +7 -0
- package/dist/components/search/index.d.ts +3 -0
- package/dist/components/search/search.d.ts +8 -0
- package/dist/components/search/types.d.ts +132 -0
- package/dist/components/segmented-button/config.d.ts +65 -0
- package/dist/components/segmented-button/constants.d.ts +85 -0
- package/dist/components/segmented-button/index.d.ts +4 -0
- package/dist/components/segmented-button/segment.d.ts +15 -0
- package/dist/components/segmented-button/segmented-button.d.ts +49 -0
- package/dist/components/segmented-button/types.d.ts +257 -0
- package/dist/components/select/api.d.ts +8 -0
- package/dist/components/select/config.d.ts +18 -0
- package/dist/components/select/constants.d.ts +113 -0
- package/dist/components/select/features.d.ts +13 -0
- package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
- package/dist/components/select/select.d.ts +36 -0
- package/dist/components/select/types.d.ts +302 -0
- package/dist/components/sheet/api.d.ts +37 -0
- package/dist/components/sheet/config.d.ts +42 -0
- package/dist/components/sheet/constants.d.ts +136 -0
- package/dist/components/sheet/features/content.d.ts +6 -0
- package/dist/components/sheet/features/gestures.d.ts +6 -0
- package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
- package/dist/components/sheet/features/position.d.ts +7 -0
- package/dist/components/sheet/features/state.d.ts +6 -0
- package/dist/components/sheet/features/title.d.ts +6 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/sheet.d.ts +8 -0
- package/dist/components/sheet/types.d.ts +250 -0
- package/dist/components/slider/api.d.ts +57 -0
- package/dist/components/slider/config.d.ts +75 -0
- package/dist/components/slider/constants.d.ts +138 -0
- package/dist/components/slider/features/controller.d.ts +9 -0
- package/dist/components/slider/features/handlers.d.ts +25 -0
- package/dist/components/slider/features/index.d.ts +3 -0
- package/dist/components/slider/features/range.d.ts +8 -0
- package/dist/components/slider/features/states.d.ts +9 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/schema.d.ts +108 -0
- package/dist/components/slider/slider.d.ts +18 -0
- package/dist/components/slider/types.d.ts +170 -0
- package/dist/components/snackbar/api.d.ts +7 -0
- package/dist/components/snackbar/config.d.ts +55 -0
- package/dist/components/snackbar/constants.d.ts +88 -0
- package/dist/components/snackbar/features.d.ts +13 -0
- package/dist/components/snackbar/index.d.ts +3 -0
- package/dist/components/snackbar/position.d.ts +15 -0
- package/dist/components/snackbar/queue.d.ts +7 -0
- package/dist/components/snackbar/snackbar.d.ts +8 -0
- package/dist/components/snackbar/types.d.ts +172 -0
- package/dist/components/switch/api.d.ts +7 -0
- package/dist/components/switch/config.d.ts +34 -0
- package/dist/components/switch/constants.d.ts +88 -0
- package/dist/components/switch/features.d.ts +59 -0
- package/dist/components/switch/index.d.ts +4 -0
- package/dist/components/switch/switch.d.ts +8 -0
- package/dist/components/switch/types.d.ts +131 -0
- package/dist/components/tabs/api.d.ts +52 -0
- package/dist/components/tabs/config.d.ts +39 -0
- package/dist/components/tabs/constants.d.ts +142 -0
- package/dist/components/tabs/features.d.ts +133 -0
- package/dist/components/tabs/index.d.ts +11 -0
- package/dist/components/tabs/indicator.d.ts +49 -0
- package/dist/components/tabs/responsive.d.ts +38 -0
- package/dist/components/tabs/scroll-indicators.d.ts +18 -0
- package/dist/components/tabs/state.d.ts +53 -0
- package/dist/components/tabs/tab-api.d.ts +43 -0
- package/dist/components/tabs/tab.d.ts +7 -0
- package/dist/components/tabs/tabs.d.ts +27 -0
- package/dist/components/tabs/types.d.ts +390 -0
- package/dist/components/tabs/utils.d.ts +17 -0
- package/dist/components/textfield/api.d.ts +8 -0
- package/dist/components/textfield/config.d.ts +34 -0
- package/dist/components/textfield/constants.d.ts +148 -0
- package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
- package/dist/components/textfield/features/leading-icon.d.ts +55 -0
- package/dist/components/textfield/features/placement.d.ts +28 -0
- package/dist/components/textfield/features/prefix-text.d.ts +54 -0
- package/dist/components/textfield/features/suffix-text.d.ts +54 -0
- package/dist/components/textfield/features/supporting-text.d.ts +59 -0
- package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
- package/dist/components/textfield/index.d.ts +3 -0
- package/dist/components/textfield/textfield.d.ts +36 -0
- package/dist/components/textfield/types.d.ts +217 -0
- package/dist/components/timepicker/api.d.ts +24 -0
- package/dist/components/timepicker/clockdial.d.ts +34 -0
- package/dist/components/timepicker/config.d.ts +75 -0
- package/dist/components/timepicker/constants.d.ts +266 -0
- package/dist/components/timepicker/index.d.ts +4 -0
- package/dist/components/timepicker/render.d.ts +9 -0
- package/dist/components/timepicker/timepicker.d.ts +8 -0
- package/dist/components/timepicker/types.d.ts +284 -0
- package/dist/components/timepicker/utils.d.ts +74 -0
- package/dist/components/tooltip/api.d.ts +18 -0
- package/dist/components/tooltip/config.d.ts +38 -0
- package/dist/components/tooltip/constants.d.ts +108 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/tooltip.d.ts +8 -0
- package/dist/components/tooltip/types.d.ts +188 -0
- package/dist/components/top-app-bar/config.d.ts +16 -0
- package/dist/components/top-app-bar/constants.d.ts +74 -0
- package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
- package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
- package/dist/components/top-app-bar/types.d.ts +118 -0
- package/dist/constants.d.ts +30 -0
- package/dist/core/canvas/index.d.ts +5 -0
- package/dist/core/canvas/resize.d.ts +14 -0
- package/dist/core/collection/adapters/base.d.ts +47 -0
- package/dist/core/collection/adapters/route.d.ts +149 -0
- package/dist/core/collection/collection.d.ts +131 -0
- package/dist/core/collection/index.d.ts +10 -0
- package/dist/core/collection/list-manager/config.d.ts +29 -0
- package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
- package/dist/core/collection/list-manager/index.d.ts +61 -0
- package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
- package/dist/core/collection/list-manager/renderer.d.ts +31 -0
- package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
- package/dist/core/collection/list-manager/state.d.ts +60 -0
- package/dist/core/collection/list-manager/types.d.ts +361 -0
- package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
- package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
- package/dist/core/compose/base.d.ts +31 -0
- package/dist/core/compose/component.d.ts +61 -0
- package/dist/core/compose/features/badge.d.ts +43 -0
- package/dist/core/compose/features/checkable.d.ts +59 -0
- package/dist/core/compose/features/constants.d.ts +45 -0
- package/dist/core/compose/features/debounce.d.ts +84 -0
- package/dist/core/compose/features/disabled.d.ts +47 -0
- package/dist/core/compose/features/events.d.ts +37 -0
- package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
- package/dist/core/compose/features/gestures/pan.d.ts +108 -0
- package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
- package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
- package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
- package/dist/core/compose/features/gestures/tap.d.ts +79 -0
- package/dist/core/compose/features/gestures.d.ts +86 -0
- package/dist/core/compose/features/icon.d.ts +71 -0
- package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
- package/dist/core/compose/features/input.d.ts +71 -0
- package/dist/core/compose/features/lifecycle.d.ts +61 -0
- package/dist/core/compose/features/position.d.ts +51 -0
- package/dist/core/compose/features/ripple.d.ts +61 -0
- package/dist/core/compose/features/size.d.ts +17 -0
- package/dist/core/compose/features/style.d.ts +16 -0
- package/dist/core/compose/features/text.d.ts +63 -0
- package/dist/core/compose/features/textinput.d.ts +93 -0
- package/dist/core/compose/features/textlabel.d.ts +57 -0
- package/dist/core/compose/features/throttle.d.ts +75 -0
- package/dist/core/compose/features/track.d.ts +42 -0
- package/dist/core/compose/features/variant.d.ts +17 -0
- package/dist/core/compose/features/withEvents.d.ts +45 -0
- package/dist/core/compose/index.d.ts +17 -0
- package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
- package/dist/core/compose/utils/type-guards.d.ts +27 -0
- package/dist/core/composition/features/dom.d.ts +19 -0
- package/dist/core/composition/features/icon.d.ts +45 -0
- package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
- package/dist/core/composition/features/label.d.ts +49 -0
- package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
- package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
- package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +35 -83
- package/dist/core/config.d.ts +130 -0
- package/dist/core/dom/attributes.d.ts +20 -0
- package/dist/core/dom/classes.d.ts +52 -0
- package/dist/core/dom/create.d.ts +154 -0
- package/dist/core/dom/events.d.ts +69 -0
- package/dist/core/dom/index.d.ts +6 -0
- package/dist/core/dom/utils.d.ts +42 -0
- package/dist/core/gestures/index.d.ts +12 -0
- package/dist/core/gestures/longpress.d.ts +23 -0
- package/dist/core/gestures/manager.d.ts +14 -0
- package/dist/core/gestures/pan.d.ts +12 -0
- package/dist/core/gestures/pinch.d.ts +14 -0
- package/dist/core/gestures/rotate.d.ts +14 -0
- package/dist/core/gestures/swipe.d.ts +20 -0
- package/dist/core/gestures/tap.d.ts +12 -0
- package/dist/core/gestures/types.d.ts +320 -0
- package/dist/core/gestures/utils.d.ts +57 -0
- package/dist/core/index.d.ts +29 -0
- package/dist/core/layout/array.d.ts +15 -0
- package/dist/core/layout/config.d.ts +32 -0
- package/dist/core/layout/create.d.ts +14 -0
- package/dist/core/layout/index.d.ts +13 -0
- package/dist/core/layout/jsx.d.ts +13 -0
- package/dist/core/layout/object.d.ts +14 -0
- package/dist/core/layout/processor.d.ts +28 -0
- package/dist/core/layout/result.d.ts +12 -0
- package/dist/core/layout/template.d.ts +12 -0
- package/dist/core/layout/types.d.ts +137 -0
- package/dist/core/layout/utils.d.ts +38 -0
- package/dist/core/state/disabled.d.ts +32 -0
- package/dist/core/state/emitter.d.ts +40 -0
- package/dist/core/state/events.d.ts +36 -0
- package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
- package/dist/core/state/lifecycle.d.ts +57 -0
- package/dist/core/state/store.d.ts +82 -0
- package/dist/core/utils/background.d.ts +40 -0
- package/dist/core/utils/index.d.ts +18 -0
- package/dist/core/utils/mobile.d.ts +54 -0
- package/dist/core/utils/object.d.ts +13 -0
- package/dist/core/utils/performance.d.ts +79 -0
- package/dist/core/utils/theme.d.ts +38 -0
- package/dist/core/utils/validate.d.ts +73 -0
- package/dist/index.cjs +64 -0
- package/dist/index.cjs.map +291 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +53 -14854
- package/dist/index.js.map +291 -0
- package/dist/package.json +39 -0
- package/dist/styles.css +7 -0
- package/package.json +23 -4
- package/.env +0 -15
- package/.typedocignore +0 -11
- package/CONTRIBUTING.md +0 -218
- package/DOCS.md +0 -153
- package/TESTING.md +0 -214
- package/git-user-stats.js +0 -545
- package/index.ts +0 -10
- package/src/components/badge/api.ts +0 -313
- package/src/components/badge/config.ts +0 -153
- package/src/components/badge/features.ts +0 -194
- package/src/components/badge/index.ts +0 -90
- package/src/components/badge/types.ts +0 -279
- package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
- package/src/components/bottom-app-bar/config.ts +0 -29
- package/src/components/bottom-app-bar/types.ts +0 -114
- package/src/components/button/api.ts +0 -172
- package/src/components/button/button.ts +0 -112
- package/src/components/button/config.ts +0 -96
- package/src/components/button/index.ts +0 -37
- package/src/components/button/types.ts +0 -290
- package/src/components/card/api.ts +0 -222
- package/src/components/card/config.ts +0 -304
- package/src/components/card/content.ts +0 -343
- package/src/components/card/features.ts +0 -407
- package/src/components/card/types.ts +0 -497
- package/src/components/carousel/api.ts +0 -147
- package/src/components/carousel/carousel.ts +0 -242
- package/src/components/carousel/config.ts +0 -91
- package/src/components/carousel/constants.ts +0 -181
- package/src/components/carousel/features/drag.ts +0 -388
- package/src/components/carousel/features/slides.ts +0 -682
- package/src/components/carousel/types.ts +0 -327
- package/src/components/checkbox/api.ts +0 -82
- package/src/components/checkbox/checkbox.ts +0 -142
- package/src/components/checkbox/config.ts +0 -89
- package/src/components/checkbox/types.ts +0 -342
- package/src/components/chips/api.ts +0 -194
- package/src/components/chips/chip/api.ts +0 -233
- package/src/components/chips/chip/chip.ts +0 -131
- package/src/components/chips/chip/config.ts +0 -91
- package/src/components/chips/chip/index.ts +0 -3
- package/src/components/chips/chips.md +0 -481
- package/src/components/chips/chips.ts +0 -75
- package/src/components/chips/config.ts +0 -109
- package/src/components/chips/constants.ts +0 -61
- package/src/components/chips/features/chip-items.ts +0 -33
- package/src/components/chips/features/container.ts +0 -77
- package/src/components/chips/features/controller.ts +0 -448
- package/src/components/chips/features/label.ts +0 -108
- package/src/components/chips/index.ts +0 -11
- package/src/components/chips/schema.ts +0 -61
- package/src/components/chips/types.ts +0 -469
- package/src/components/datepicker/api.ts +0 -265
- package/src/components/datepicker/config.ts +0 -141
- package/src/components/datepicker/datepicker.ts +0 -341
- package/src/components/datepicker/index.ts +0 -12
- package/src/components/datepicker/render.ts +0 -450
- package/src/components/datepicker/types.ts +0 -397
- package/src/components/datepicker/utils.ts +0 -289
- package/src/components/dialog/api.ts +0 -317
- package/src/components/dialog/config.ts +0 -116
- package/src/components/dialog/features.ts +0 -907
- package/src/components/dialog/index.ts +0 -141
- package/src/components/dialog/types.ts +0 -553
- package/src/components/divider/config.ts +0 -165
- package/src/components/divider/features.ts +0 -233
- package/src/components/divider/types.ts +0 -132
- package/src/components/extended-fab/api.ts +0 -193
- package/src/components/extended-fab/config.ts +0 -140
- package/src/components/extended-fab/extended-fab.ts +0 -153
- package/src/components/extended-fab/types.ts +0 -749
- package/src/components/fab/api.ts +0 -137
- package/src/components/fab/config.ts +0 -121
- package/src/components/fab/types.ts +0 -615
- package/src/components/list/api.ts +0 -82
- package/src/components/list/config.ts +0 -63
- package/src/components/list/features.ts +0 -229
- package/src/components/list/index.ts +0 -67
- package/src/components/list/list-item.ts +0 -163
- package/src/components/list/list.ts +0 -108
- package/src/components/list/types.ts +0 -396
- package/src/components/list/utils.ts +0 -98
- package/src/components/menu/api.ts +0 -230
- package/src/components/menu/config.ts +0 -127
- package/src/components/menu/features/anchor.ts +0 -394
- package/src/components/menu/features/controller.ts +0 -1423
- package/src/components/menu/features/index.ts +0 -13
- package/src/components/menu/features/position.ts +0 -353
- package/src/components/menu/menu.ts +0 -121
- package/src/components/menu/types.ts +0 -392
- package/src/components/navigation/api.ts +0 -142
- package/src/components/navigation/config.ts +0 -73
- package/src/components/navigation/features/controller.ts +0 -273
- package/src/components/navigation/features/items.ts +0 -353
- package/src/components/navigation/index.ts +0 -11
- package/src/components/navigation/nav-item.ts +0 -196
- package/src/components/navigation/navigation.ts +0 -115
- package/src/components/navigation/system/core.ts +0 -302
- package/src/components/navigation/system/events.ts +0 -240
- package/src/components/navigation/system/index.ts +0 -184
- package/src/components/navigation/system/mobile.ts +0 -278
- package/src/components/navigation/system/state.ts +0 -77
- package/src/components/navigation/system/types.ts +0 -364
- package/src/components/navigation/types.ts +0 -292
- package/src/components/progress/api.ts +0 -178
- package/src/components/progress/config.ts +0 -122
- package/src/components/progress/index.ts +0 -4
- package/src/components/progress/progress.ts +0 -159
- package/src/components/progress/types.ts +0 -255
- package/src/components/radios/api.ts +0 -125
- package/src/components/radios/config.ts +0 -59
- package/src/components/radios/constants.ts +0 -19
- package/src/components/radios/index.ts +0 -3
- package/src/components/radios/radio.ts +0 -292
- package/src/components/radios/radios.ts +0 -43
- package/src/components/radios/types.ts +0 -219
- package/src/components/search/api.ts +0 -203
- package/src/components/search/config.ts +0 -86
- package/src/components/search/features/search.ts +0 -717
- package/src/components/search/features/states.ts +0 -169
- package/src/components/search/features/structure.ts +0 -197
- package/src/components/search/index.ts +0 -7
- package/src/components/search/search.ts +0 -52
- package/src/components/search/types.ts +0 -175
- package/src/components/segmented-button/config.ts +0 -119
- package/src/components/segmented-button/index.ts +0 -4
- package/src/components/segmented-button/segment.ts +0 -108
- package/src/components/segmented-button/segmented-button.ts +0 -361
- package/src/components/segmented-button/types.ts +0 -306
- package/src/components/select/api.ts +0 -78
- package/src/components/select/config.ts +0 -76
- package/src/components/select/features.ts +0 -331
- package/src/components/select/select.ts +0 -73
- package/src/components/select/types.ts +0 -355
- package/src/components/sheet/api.ts +0 -96
- package/src/components/sheet/config.ts +0 -65
- package/src/components/sheet/features/content.ts +0 -51
- package/src/components/sheet/features/gestures.ts +0 -177
- package/src/components/sheet/features/position.ts +0 -41
- package/src/components/sheet/features/state.ts +0 -116
- package/src/components/sheet/features/title.ts +0 -86
- package/src/components/sheet/index.ts +0 -12
- package/src/components/sheet/sheet.ts +0 -56
- package/src/components/sheet/types.ts +0 -294
- package/src/components/slider/accessibility.md +0 -59
- package/src/components/slider/api.ts +0 -192
- package/src/components/slider/config.ts +0 -118
- package/src/components/slider/features/controller.ts +0 -737
- package/src/components/slider/features/handlers.ts +0 -497
- package/src/components/slider/features/index.ts +0 -5
- package/src/components/slider/features/range.ts +0 -104
- package/src/components/slider/features/states.ts +0 -195
- package/src/components/slider/index.ts +0 -17
- package/src/components/slider/schema.ts +0 -141
- package/src/components/slider/slider.ts +0 -76
- package/src/components/slider/types.ts +0 -223
- package/src/components/snackbar/api.ts +0 -162
- package/src/components/snackbar/config.ts +0 -61
- package/src/components/snackbar/features.ts +0 -76
- package/src/components/snackbar/index.ts +0 -9
- package/src/components/snackbar/position.ts +0 -79
- package/src/components/snackbar/queue.ts +0 -76
- package/src/components/snackbar/snackbar.ts +0 -60
- package/src/components/snackbar/types.ts +0 -159
- package/src/components/switch/api.ts +0 -93
- package/src/components/switch/config.ts +0 -56
- package/src/components/switch/features.ts +0 -198
- package/src/components/switch/index.ts +0 -8
- package/src/components/switch/switch.ts +0 -52
- package/src/components/switch/types.ts +0 -168
- package/src/components/tabs/api.ts +0 -221
- package/src/components/tabs/config.ts +0 -73
- package/src/components/tabs/features.ts +0 -403
- package/src/components/tabs/index.ts +0 -46
- package/src/components/tabs/indicator.ts +0 -285
- package/src/components/tabs/responsive.ts +0 -144
- package/src/components/tabs/scroll-indicators.ts +0 -149
- package/src/components/tabs/state.ts +0 -186
- package/src/components/tabs/tab-api.ts +0 -266
- package/src/components/tabs/tab.ts +0 -267
- package/src/components/tabs/tabs.ts +0 -71
- package/src/components/tabs/types.ts +0 -461
- package/src/components/tabs/utils.ts +0 -107
- package/src/components/textfield/api.ts +0 -197
- package/src/components/textfield/config.ts +0 -52
- package/src/components/textfield/features/leading-icon.ts +0 -127
- package/src/components/textfield/features/placement.ts +0 -149
- package/src/components/textfield/features/prefix-text.ts +0 -107
- package/src/components/textfield/features/suffix-text.ts +0 -100
- package/src/components/textfield/features/supporting-text.ts +0 -113
- package/src/components/textfield/features/trailing-icon.ts +0 -108
- package/src/components/textfield/index.ts +0 -9
- package/src/components/textfield/textfield.ts +0 -92
- package/src/components/textfield/types.ts +0 -265
- package/src/components/timepicker/README.md +0 -277
- package/src/components/timepicker/api.ts +0 -632
- package/src/components/timepicker/clockdial.ts +0 -479
- package/src/components/timepicker/config.ts +0 -228
- package/src/components/timepicker/index.ts +0 -3
- package/src/components/timepicker/render.ts +0 -613
- package/src/components/timepicker/timepicker.ts +0 -117
- package/src/components/timepicker/types.ts +0 -336
- package/src/components/timepicker/utils.ts +0 -241
- package/src/components/tooltip/api.ts +0 -415
- package/src/components/tooltip/config.ts +0 -80
- package/src/components/tooltip/index.ts +0 -12
- package/src/components/tooltip/tooltip.ts +0 -60
- package/src/components/tooltip/types.ts +0 -223
- package/src/components/top-app-bar/config.ts +0 -83
- package/src/components/top-app-bar/top-app-bar.ts +0 -316
- package/src/components/top-app-bar/types.ts +0 -140
- package/src/core/build/constants.ts +0 -48
- package/src/core/build/icon.ts +0 -137
- package/src/core/build/ripple.ts +0 -193
- package/src/core/build/text.ts +0 -91
- package/src/core/collection/adapters/base.ts +0 -62
- package/src/core/collection/adapters/route.ts +0 -201
- package/src/core/collection/collection.ts +0 -300
- package/src/core/collection/index.ts +0 -57
- package/src/core/collection/list-manager.ts +0 -333
- package/src/core/compose/base.ts +0 -43
- package/src/core/compose/component.ts +0 -255
- package/src/core/compose/features/badge.ts +0 -79
- package/src/core/compose/features/checkable.ts +0 -155
- package/src/core/compose/features/disabled.ts +0 -116
- package/src/core/compose/features/events.ts +0 -65
- package/src/core/compose/features/icon.ts +0 -71
- package/src/core/compose/features/input.ts +0 -174
- package/src/core/compose/features/lifecycle.ts +0 -139
- package/src/core/compose/features/position.ts +0 -94
- package/src/core/compose/features/ripple.ts +0 -58
- package/src/core/compose/features/size.ts +0 -29
- package/src/core/compose/features/style.ts +0 -31
- package/src/core/compose/features/text.ts +0 -44
- package/src/core/compose/features/textinput.ts +0 -238
- package/src/core/compose/features/textlabel.ts +0 -113
- package/src/core/compose/features/track.ts +0 -84
- package/src/core/compose/features/variant.ts +0 -29
- package/src/core/compose/features/withEvents.ts +0 -137
- package/src/core/compose/index.ts +0 -54
- package/src/core/composition/features/dom.ts +0 -45
- package/src/core/composition/features/icon.ts +0 -131
- package/src/core/composition/features/label.ts +0 -155
- package/src/core/config.ts +0 -211
- package/src/core/dom/attributes.ts +0 -33
- package/src/core/dom/classes.ts +0 -132
- package/src/core/dom/create.ts +0 -273
- package/src/core/dom/events.ts +0 -209
- package/src/core/dom/index.ts +0 -10
- package/src/core/dom/utils.ts +0 -97
- package/src/core/index.ts +0 -111
- package/src/core/layout/README.md +0 -715
- package/src/core/layout/array.ts +0 -180
- package/src/core/layout/config.ts +0 -193
- package/src/core/layout/create.ts +0 -54
- package/src/core/layout/index.ts +0 -36
- package/src/core/layout/object.ts +0 -123
- package/src/core/layout/processor.ts +0 -106
- package/src/core/layout/result.ts +0 -84
- package/src/core/layout/types.ts +0 -180
- package/src/core/layout/utils.ts +0 -144
- package/src/core/state/disabled.ts +0 -81
- package/src/core/state/emitter.ts +0 -94
- package/src/core/state/events.ts +0 -88
- package/src/core/state/lifecycle.ts +0 -131
- package/src/core/state/store.ts +0 -197
- package/src/core/utils/index.ts +0 -45
- package/src/core/utils/mobile.ts +0 -98
- package/src/core/utils/object.ts +0 -41
- package/src/core/utils/validate.ts +0 -234
- package/src/index.ts +0 -90
- package/src/styles/abstract/_base.scss +0 -2
- package/src/styles/abstract/_config.scss +0 -28
- package/src/styles/abstract/_functions.scss +0 -124
- package/src/styles/abstract/_mixins.scss +0 -352
- package/src/styles/abstract/_theme.scss +0 -269
- package/src/styles/abstract/_variables.scss +0 -305
- package/src/styles/base/_reset.scss +0 -86
- package/src/styles/base/_typography.scss +0 -155
- package/src/styles/components/_badge.scss +0 -182
- package/src/styles/components/_bottom-app-bar.scss +0 -103
- package/src/styles/components/_button.scss +0 -224
- package/src/styles/components/_card.scss +0 -401
- package/src/styles/components/_carousel.scss +0 -645
- package/src/styles/components/_checkbox.scss +0 -231
- package/src/styles/components/_chips.scss +0 -638
- package/src/styles/components/_datepicker.scss +0 -358
- package/src/styles/components/_dialog.scss +0 -259
- package/src/styles/components/_divider.scss +0 -57
- package/src/styles/components/_extended-fab.scss +0 -267
- package/src/styles/components/_fab.scss +0 -225
- package/src/styles/components/_list.scss +0 -248
- package/src/styles/components/_menu.scss +0 -242
- package/src/styles/components/_navigation-mobile.scss +0 -244
- package/src/styles/components/_navigation-system.scss +0 -151
- package/src/styles/components/_navigation.scss +0 -407
- package/src/styles/components/_progress.scss +0 -151
- package/src/styles/components/_radios.scss +0 -187
- package/src/styles/components/_search.scss +0 -306
- package/src/styles/components/_segmented-button.scss +0 -227
- package/src/styles/components/_select.scss +0 -272
- package/src/styles/components/_sheet.scss +0 -236
- package/src/styles/components/_slider.scss +0 -489
- package/src/styles/components/_snackbar.scss +0 -211
- package/src/styles/components/_switch.scss +0 -298
- package/src/styles/components/_tabs.scss +0 -416
- package/src/styles/components/_textfield.scss +0 -773
- package/src/styles/components/_timepicker.scss +0 -451
- package/src/styles/components/_tooltip.scss +0 -241
- package/src/styles/components/_top-app-bar.scss +0 -225
- package/src/styles/main.scss +0 -175
- package/src/styles/themes/_autumn.scss +0 -105
- package/src/styles/themes/_base-theme.scss +0 -85
- package/src/styles/themes/_baseline.scss +0 -173
- package/src/styles/themes/_bluekhaki.scss +0 -125
- package/src/styles/themes/_brownbeige.scss +0 -125
- package/src/styles/themes/_browngreen.scss +0 -125
- package/src/styles/themes/_forest.scss +0 -77
- package/src/styles/themes/_greenbeige.scss +0 -125
- package/src/styles/themes/_index.scss +0 -6
- package/src/styles/themes/_material.scss +0 -125
- package/src/styles/themes/_ocean.scss +0 -77
- package/src/styles/themes/_sageivory.scss +0 -125
- package/src/styles/themes/_spring.scss +0 -77
- package/src/styles/themes/_summer.scss +0 -87
- package/src/styles/themes/_sunset.scss +0 -60
- package/src/styles/themes/_tealcaramel.scss +0 -125
- package/src/styles/themes/_winter.scss +0 -77
- package/src/styles/utilities/_colors.scss +0 -154
- package/src/styles/utilities/_flexbox.scss +0 -194
- package/src/styles/utilities/_layout.scss +0 -665
- package/src/styles/utilities/_ripple.scss +0 -79
- package/src/styles/utilities/_spacing.scss +0 -139
- package/src/styles/utilities/_typography.scss +0 -178
- package/src/styles/utilities/_visibility.scss +0 -142
|
@@ -1,481 +0,0 @@
|
|
|
1
|
-
# MTRL Chips Component
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The Chips component is a lightweight, composable UI element used to represent discrete information, such as attributes, selections, filters, or user input. This TypeScript implementation provides a comprehensive API with zero dependencies, focusing on performance, accessibility, and extensibility.
|
|
6
|
-
|
|
7
|
-
## Features
|
|
8
|
-
|
|
9
|
-
- **Multiple Variants**: Filled, outlined, elevated, assist, filter, input, and suggestion chips
|
|
10
|
-
- **Selection Support**: Single or multi-select modes with clear API for selection management
|
|
11
|
-
- **Layout Options**: Horizontal or vertical arrangement with optional scrolling
|
|
12
|
-
- **Icon Support**: Leading and trailing icons with customizable click handlers
|
|
13
|
-
- **Keyboard Navigation**: Full accessibility support with keyboard controls
|
|
14
|
-
- **Type Safety**: Comprehensive TypeScript interfaces for improved developer experience
|
|
15
|
-
- **Zero Dependencies**: Built with vanilla TypeScript for minimal bundle size
|
|
16
|
-
- **Composition-based Architecture**: Functional composition for extensibility
|
|
17
|
-
- **Accessibility**: ARIA attributes and keyboard support built-in
|
|
18
|
-
|
|
19
|
-
## Installation
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
# Using npm
|
|
23
|
-
npm install mtrl
|
|
24
|
-
|
|
25
|
-
# Using yarn
|
|
26
|
-
yarn add mtrl
|
|
27
|
-
|
|
28
|
-
# Using bun
|
|
29
|
-
bun add mtrl
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Basic Usage
|
|
33
|
-
|
|
34
|
-
### Single Chip
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
import { createChip } from 'mtrl';
|
|
38
|
-
|
|
39
|
-
// Create a basic chip
|
|
40
|
-
const basicChip = createChip({
|
|
41
|
-
text: 'Basic Chip',
|
|
42
|
-
variant: 'filled'
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
// Add to DOM
|
|
46
|
-
document.querySelector('.container').appendChild(basicChip.element);
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### Chips Container
|
|
50
|
-
|
|
51
|
-
```typescript
|
|
52
|
-
import { createChips } from 'mtrl';
|
|
53
|
-
|
|
54
|
-
// Create a chips container with multiple chips
|
|
55
|
-
const filterChips = createChips({
|
|
56
|
-
multiSelect: true,
|
|
57
|
-
label: 'Categories',
|
|
58
|
-
chips: [
|
|
59
|
-
{ text: 'JavaScript', variant: 'filter', value: 'js' },
|
|
60
|
-
{ text: 'TypeScript', variant: 'filter', value: 'ts' },
|
|
61
|
-
{ text: 'HTML', variant: 'filter', value: 'html' },
|
|
62
|
-
{ text: 'CSS', variant: 'filter', value: 'css' }
|
|
63
|
-
],
|
|
64
|
-
onChange: (selectedValues) => {
|
|
65
|
-
console.log('Selected categories:', selectedValues);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
// Add to DOM
|
|
70
|
-
document.querySelector('.filters').appendChild(filterChips.element);
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Component API
|
|
74
|
-
|
|
75
|
-
### Chip Configuration
|
|
76
|
-
|
|
77
|
-
```typescript
|
|
78
|
-
interface ChipConfig {
|
|
79
|
-
variant?: 'filled' | 'outlined' | 'elevated' | 'assist' | 'filter' | 'input' | 'suggestion';
|
|
80
|
-
disabled?: boolean;
|
|
81
|
-
selected?: boolean;
|
|
82
|
-
text?: string;
|
|
83
|
-
icon?: string;
|
|
84
|
-
leadingIcon?: string;
|
|
85
|
-
trailingIcon?: string;
|
|
86
|
-
class?: string;
|
|
87
|
-
value?: string;
|
|
88
|
-
ripple?: boolean;
|
|
89
|
-
selectable?: boolean;
|
|
90
|
-
onTrailingIconClick?: (chip: ChipComponent) => void;
|
|
91
|
-
onSelect?: (chip: ChipComponent) => void;
|
|
92
|
-
onChange?: (selected: boolean, chip: ChipComponent) => void;
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### Chips Configuration
|
|
97
|
-
|
|
98
|
-
```typescript
|
|
99
|
-
interface ChipsConfig {
|
|
100
|
-
chips?: ChipConfig[];
|
|
101
|
-
scrollable?: boolean;
|
|
102
|
-
vertical?: boolean;
|
|
103
|
-
class?: string;
|
|
104
|
-
selector?: string | null;
|
|
105
|
-
multiSelect?: boolean;
|
|
106
|
-
onChange?: (selectedValues: (string | null)[], changedValue: string | null) => void;
|
|
107
|
-
label?: string;
|
|
108
|
-
labelPosition?: 'start' | 'end';
|
|
109
|
-
}
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Chip Variants
|
|
113
|
-
|
|
114
|
-
| Variant | Description |
|
|
115
|
-
|---------|-------------|
|
|
116
|
-
| `filled` | Standard chip with solid background color (default) |
|
|
117
|
-
| `outlined` | Transparent background with outlined border |
|
|
118
|
-
| `elevated` | Chip with subtle shadow effect |
|
|
119
|
-
| `assist` | For suggesting actions to the user |
|
|
120
|
-
| `filter` | For filtering content with selection behavior |
|
|
121
|
-
| `input` | Represents user input in form fields |
|
|
122
|
-
| `suggestion` | For presenting options and suggestions |
|
|
123
|
-
|
|
124
|
-
## Chip API Methods
|
|
125
|
-
|
|
126
|
-
### Content Management
|
|
127
|
-
|
|
128
|
-
| Method | Description |
|
|
129
|
-
|--------|-------------|
|
|
130
|
-
| `setText(content)` | Sets the chip's text content |
|
|
131
|
-
| `getText()` | Gets the chip's text content |
|
|
132
|
-
| `setIcon(html)` | Sets the chip's leading icon |
|
|
133
|
-
| `getIcon()` | Gets the chip's leading icon HTML |
|
|
134
|
-
| `setLeadingIcon(html)` | Sets the chip's leading icon |
|
|
135
|
-
| `setTrailingIcon(html, onClick?)` | Sets the chip's trailing icon with optional click handler |
|
|
136
|
-
|
|
137
|
-
### State Management
|
|
138
|
-
|
|
139
|
-
| Method | Description |
|
|
140
|
-
|--------|-------------|
|
|
141
|
-
| `setValue(value)` | Sets the chip's value attribute |
|
|
142
|
-
| `getValue()` | Gets the chip's value attribute |
|
|
143
|
-
| `isSelected()` | Checks if the chip is selected |
|
|
144
|
-
| `setSelected(selected)` | Sets the chip's selected state |
|
|
145
|
-
| `toggleSelected()` | Toggles the chip's selected state |
|
|
146
|
-
| `isDisabled()` | Checks if the chip is disabled |
|
|
147
|
-
| `enable()` | Enables the chip |
|
|
148
|
-
| `disable()` | Disables the chip |
|
|
149
|
-
|
|
150
|
-
### Event Handling
|
|
151
|
-
|
|
152
|
-
| Method | Description |
|
|
153
|
-
|--------|-------------|
|
|
154
|
-
| `on(event, handler)` | Adds an event listener |
|
|
155
|
-
| `off(event, handler)` | Removes an event listener |
|
|
156
|
-
|
|
157
|
-
### Lifecycle
|
|
158
|
-
|
|
159
|
-
| Method | Description |
|
|
160
|
-
|--------|-------------|
|
|
161
|
-
| `destroy()` | Cleans up the chip and removes it from the DOM |
|
|
162
|
-
|
|
163
|
-
## Chips Container API Methods
|
|
164
|
-
|
|
165
|
-
### Chip Management
|
|
166
|
-
|
|
167
|
-
| Method | Description |
|
|
168
|
-
|--------|-------------|
|
|
169
|
-
| `addChip(chipConfig)` | Adds a new chip to the container |
|
|
170
|
-
| `removeChip(chipOrIndex)` | Removes a chip by instance or index |
|
|
171
|
-
| `getChips()` | Gets all chip instances |
|
|
172
|
-
| `scrollToChip(chipOrIndex)` | Scrolls to make a specific chip visible |
|
|
173
|
-
|
|
174
|
-
### Selection Management
|
|
175
|
-
|
|
176
|
-
| Method | Description |
|
|
177
|
-
|--------|-------------|
|
|
178
|
-
| `getSelectedChips()` | Gets currently selected chip instances |
|
|
179
|
-
| `getSelectedValues()` | Gets values of selected chips |
|
|
180
|
-
| `selectByValue(values, triggerEvent?)` | Selects chips by their values |
|
|
181
|
-
| `clearSelection()` | Clears all selections |
|
|
182
|
-
|
|
183
|
-
### Layout Management
|
|
184
|
-
|
|
185
|
-
| Method | Description |
|
|
186
|
-
|--------|-------------|
|
|
187
|
-
| `setScrollable(isScrollable)` | Sets the scrollable state |
|
|
188
|
-
| `setVertical(isVertical)` | Sets the vertical layout state |
|
|
189
|
-
|
|
190
|
-
### Label Management
|
|
191
|
-
|
|
192
|
-
| Method | Description |
|
|
193
|
-
|--------|-------------|
|
|
194
|
-
| `setLabel(text)` | Sets the label text |
|
|
195
|
-
| `getLabel()` | Gets the label text |
|
|
196
|
-
| `setLabelPosition(position)` | Sets the label position ('start' or 'end') |
|
|
197
|
-
| `getLabelPosition()` | Gets the label position |
|
|
198
|
-
|
|
199
|
-
### Other Methods
|
|
200
|
-
|
|
201
|
-
| Method | Description |
|
|
202
|
-
|--------|-------------|
|
|
203
|
-
| `enableKeyboardNavigation()` | Enables keyboard navigation between chips |
|
|
204
|
-
| `on(event, handler)` | Adds an event listener |
|
|
205
|
-
| `off(event, handler)` | Removes an event listener |
|
|
206
|
-
| `destroy()` | Destroys the chips container and all contained chips |
|
|
207
|
-
|
|
208
|
-
## Events
|
|
209
|
-
|
|
210
|
-
### Chip Events
|
|
211
|
-
|
|
212
|
-
| Event | Description |
|
|
213
|
-
|-------|-------------|
|
|
214
|
-
| `change` | Fired when chip selection state changes |
|
|
215
|
-
| `select` | Fired when a chip is selected |
|
|
216
|
-
| `deselect` | Fired when a chip is deselected |
|
|
217
|
-
| `remove` | Fired when a chip is about to be removed |
|
|
218
|
-
|
|
219
|
-
### Chips Container Events
|
|
220
|
-
|
|
221
|
-
| Event | Description |
|
|
222
|
-
|-------|-------------|
|
|
223
|
-
| `change` | Fired when any chip selection changes |
|
|
224
|
-
| `add` | Fired when a chip is added to the container |
|
|
225
|
-
| `remove` | Fired when a chip is removed from the container |
|
|
226
|
-
|
|
227
|
-
## Advanced Examples
|
|
228
|
-
|
|
229
|
-
### Filter Chips with Icons
|
|
230
|
-
|
|
231
|
-
```typescript
|
|
232
|
-
import { createChips } from 'mtrl';
|
|
233
|
-
|
|
234
|
-
const filterChips = createChips({
|
|
235
|
-
multiSelect: true,
|
|
236
|
-
scrollable: true,
|
|
237
|
-
label: 'Filter by:',
|
|
238
|
-
chips: [
|
|
239
|
-
{
|
|
240
|
-
text: 'Completed',
|
|
241
|
-
variant: 'filter',
|
|
242
|
-
value: 'completed',
|
|
243
|
-
leadingIcon: '<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>'
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
text: 'In Progress',
|
|
247
|
-
variant: 'filter',
|
|
248
|
-
value: 'in-progress',
|
|
249
|
-
leadingIcon: '<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/><path fill="currentColor" d="M12 5v7l5 5-1.41 1.41L10.59 13H7V11h3.59l3-3H12z"/></svg>'
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
text: 'Pending',
|
|
253
|
-
variant: 'filter',
|
|
254
|
-
value: 'pending',
|
|
255
|
-
leadingIcon: '<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/><path fill="currentColor" d="M7 12h10v2H7z"/></svg>'
|
|
256
|
-
}
|
|
257
|
-
],
|
|
258
|
-
onChange: (selectedValues) => {
|
|
259
|
-
console.log('Selected filters:', selectedValues);
|
|
260
|
-
updateTaskList(selectedValues);
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
document.querySelector('.filters-container').appendChild(filterChips.element);
|
|
265
|
-
|
|
266
|
-
// Pre-select certain values
|
|
267
|
-
filterChips.selectByValue(['completed', 'in-progress']);
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
### Input Chips for Email Tags
|
|
271
|
-
|
|
272
|
-
```typescript
|
|
273
|
-
import { createChips } from 'mtrl';
|
|
274
|
-
|
|
275
|
-
const emailChips = createChips({
|
|
276
|
-
chips: [],
|
|
277
|
-
label: 'Recipients:',
|
|
278
|
-
onChange: (values) => {
|
|
279
|
-
document.querySelector('#recipients-input').value = values.join(',');
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
|
|
283
|
-
// Add to form
|
|
284
|
-
const emailForm = document.querySelector('.email-form');
|
|
285
|
-
emailForm.insertBefore(emailChips.element, emailForm.firstChild);
|
|
286
|
-
|
|
287
|
-
// Handle input for adding emails
|
|
288
|
-
const input = document.querySelector('#email-input');
|
|
289
|
-
input.addEventListener('keydown', (e) => {
|
|
290
|
-
if (e.key === 'Enter' || e.key === ',') {
|
|
291
|
-
e.preventDefault();
|
|
292
|
-
|
|
293
|
-
const email = input.value.trim().replace(',', '');
|
|
294
|
-
if (validateEmail(email)) {
|
|
295
|
-
emailChips.addChip({
|
|
296
|
-
text: email,
|
|
297
|
-
variant: 'input',
|
|
298
|
-
value: email,
|
|
299
|
-
trailingIcon: '<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>',
|
|
300
|
-
onTrailingIconClick: (chip) => {
|
|
301
|
-
emailChips.removeChip(chip);
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
input.value = '';
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
});
|
|
308
|
-
|
|
309
|
-
function validateEmail(email) {
|
|
310
|
-
return /\S+@\S+\.\S+/.test(email);
|
|
311
|
-
}
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
### Theme Selector with Single Selection
|
|
315
|
-
|
|
316
|
-
```typescript
|
|
317
|
-
import { createChips } from 'mtrl';
|
|
318
|
-
|
|
319
|
-
const themeChips = createChips({
|
|
320
|
-
multiSelect: false, // Single selection mode
|
|
321
|
-
label: 'Select theme:',
|
|
322
|
-
chips: [
|
|
323
|
-
{
|
|
324
|
-
text: 'Light Theme',
|
|
325
|
-
variant: 'filter',
|
|
326
|
-
value: 'light',
|
|
327
|
-
selected: true // Pre-select Light theme
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
text: 'Dark Theme',
|
|
331
|
-
variant: 'filter',
|
|
332
|
-
value: 'dark'
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
text: 'System Theme',
|
|
336
|
-
variant: 'filter',
|
|
337
|
-
value: 'system'
|
|
338
|
-
}
|
|
339
|
-
],
|
|
340
|
-
onChange: (selectedValues) => {
|
|
341
|
-
if (selectedValues.length > 0) {
|
|
342
|
-
applyTheme(selectedValues[0]);
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
|
|
347
|
-
document.querySelector('.theme-settings').appendChild(themeChips.element);
|
|
348
|
-
|
|
349
|
-
function applyTheme(theme) {
|
|
350
|
-
document.documentElement.setAttribute('data-theme', theme);
|
|
351
|
-
localStorage.setItem('theme', theme);
|
|
352
|
-
}
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
### Vertical Layout with Category Groups
|
|
356
|
-
|
|
357
|
-
```typescript
|
|
358
|
-
import { createChips } from 'mtrl';
|
|
359
|
-
|
|
360
|
-
const categoryChips = createChips({
|
|
361
|
-
vertical: true,
|
|
362
|
-
multiSelect: true,
|
|
363
|
-
label: 'Categories:',
|
|
364
|
-
labelPosition: 'start',
|
|
365
|
-
chips: [
|
|
366
|
-
{ text: 'Technology', variant: 'filter', value: 'tech' },
|
|
367
|
-
{ text: 'Science', variant: 'filter', value: 'science' },
|
|
368
|
-
{ text: 'Health', variant: 'filter', value: 'health' },
|
|
369
|
-
{ text: 'Business', variant: 'filter', value: 'business' },
|
|
370
|
-
{ text: 'Entertainment', variant: 'filter', value: 'entertainment' },
|
|
371
|
-
{ text: 'Sports', variant: 'filter', value: 'sports' },
|
|
372
|
-
{ text: 'Politics', variant: 'filter', value: 'politics' },
|
|
373
|
-
{ text: 'Travel', variant: 'filter', value: 'travel' }
|
|
374
|
-
],
|
|
375
|
-
onChange: (selectedValues) => {
|
|
376
|
-
updateArticlesList(selectedValues);
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
|
|
380
|
-
document.querySelector('.sidebar-filters').appendChild(categoryChips.element);
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
### Dynamic Chip Creation and Removal
|
|
384
|
-
|
|
385
|
-
```typescript
|
|
386
|
-
import { createChips } from 'mtrl';
|
|
387
|
-
|
|
388
|
-
// Create empty chips container
|
|
389
|
-
const dynamicChips = createChips({
|
|
390
|
-
scrollable: true,
|
|
391
|
-
label: 'Tags:',
|
|
392
|
-
onChange: (selectedValues) => {
|
|
393
|
-
console.log('Selected tags:', selectedValues);
|
|
394
|
-
}
|
|
395
|
-
});
|
|
396
|
-
|
|
397
|
-
document.querySelector('.tags-container').appendChild(dynamicChips.element);
|
|
398
|
-
|
|
399
|
-
// Add new tag button
|
|
400
|
-
document.querySelector('#add-tag').addEventListener('click', () => {
|
|
401
|
-
const tagInput = document.querySelector('#tag-input');
|
|
402
|
-
const tagText = tagInput.value.trim();
|
|
403
|
-
|
|
404
|
-
if (tagText) {
|
|
405
|
-
dynamicChips.addChip({
|
|
406
|
-
text: tagText,
|
|
407
|
-
variant: 'input',
|
|
408
|
-
value: tagText.toLowerCase().replace(/\s+/g, '-'),
|
|
409
|
-
trailingIcon: '<svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>',
|
|
410
|
-
onTrailingIconClick: (chip) => {
|
|
411
|
-
if (confirm(`Remove tag "${chip.getText()}"?`)) {
|
|
412
|
-
dynamicChips.removeChip(chip);
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
});
|
|
416
|
-
|
|
417
|
-
tagInput.value = '';
|
|
418
|
-
}
|
|
419
|
-
});
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
## Accessibility
|
|
423
|
-
|
|
424
|
-
The MTRL Chips component is built with accessibility in mind:
|
|
425
|
-
|
|
426
|
-
- **ARIA Attributes**: Proper `aria-selected`, `aria-disabled`, and `aria-multiselectable` attributes
|
|
427
|
-
- **Keyboard Navigation**: Navigate between chips using arrow keys, select with Space/Enter
|
|
428
|
-
- **Focus Management**: Visible focus indicators and proper focus handling
|
|
429
|
-
- **Semantic Structure**: Appropriate roles and accessible names
|
|
430
|
-
- **Screen Reader Support**: Meaningful announcements for selection changes
|
|
431
|
-
|
|
432
|
-
## Technical Architecture
|
|
433
|
-
|
|
434
|
-
The MTRL Chips component follows a functional composition pattern:
|
|
435
|
-
|
|
436
|
-
1. **Base Component**: Core structure with element creation
|
|
437
|
-
2. **Feature Enhancement**: Functional mixins that add specific capabilities
|
|
438
|
-
3. **DOM Generation**: Creates the actual DOM elements from the structure
|
|
439
|
-
4. **Controller**: Manages state, events, and behavior
|
|
440
|
-
5. **Lifecycle Management**: Handles component lifecycle events
|
|
441
|
-
6. **Public API**: Exposes a clean, consistent interface
|
|
442
|
-
|
|
443
|
-
This architecture enables:
|
|
444
|
-
- Efficient code reuse and maintainability
|
|
445
|
-
- Clear separation of concerns
|
|
446
|
-
- Extensibility through composition
|
|
447
|
-
- Predictable behavior and clean API surface
|
|
448
|
-
|
|
449
|
-
## CSS Customization
|
|
450
|
-
|
|
451
|
-
MTRL Chips use BEM-style class naming for easy styling. Primary classes:
|
|
452
|
-
|
|
453
|
-
```
|
|
454
|
-
.mtrl-chip /* Base chip class */
|
|
455
|
-
.mtrl-chip--{variant} /* Variant classes */
|
|
456
|
-
.mtrl-chip--selected /* Selected state */
|
|
457
|
-
.mtrl-chip--disabled /* Disabled state */
|
|
458
|
-
.mtrl-chip-content /* Content container */
|
|
459
|
-
.mtrl-chip-text /* Text element */
|
|
460
|
-
.mtrl-chip-leading-icon /* Leading icon */
|
|
461
|
-
.mtrl-chip-trailing-icon /* Trailing icon */
|
|
462
|
-
|
|
463
|
-
.mtrl-chips /* Chips container */
|
|
464
|
-
.mtrl-chips--scrollable /* Scrollable state */
|
|
465
|
-
.mtrl-chips--vertical /* Vertical layout */
|
|
466
|
-
.mtrl-chips-container /* Inner container */
|
|
467
|
-
.mtrl-chips-label /* Label element */
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
## Browser Support
|
|
471
|
-
|
|
472
|
-
This component supports all modern browsers that implement ES6+ standards:
|
|
473
|
-
|
|
474
|
-
- Chrome (latest)
|
|
475
|
-
- Firefox (latest)
|
|
476
|
-
- Safari (latest)
|
|
477
|
-
- Edge (latest)
|
|
478
|
-
|
|
479
|
-
## License
|
|
480
|
-
|
|
481
|
-
MTRL is licensed under the MIT License.
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
// src/components/chips/chips.ts
|
|
2
|
-
import { pipe } from '../../core/compose/pipe';
|
|
3
|
-
import { createBase } from '../../core/compose/component';
|
|
4
|
-
import { withEvents, withLifecycle } from '../../core/compose/features';
|
|
5
|
-
import { withLayout, withIcon, withLabel, withDom } from '../../core/composition/features';
|
|
6
|
-
import {
|
|
7
|
-
withContainer,
|
|
8
|
-
withChipItems,
|
|
9
|
-
withController,
|
|
10
|
-
withLabel
|
|
11
|
-
} from './features';
|
|
12
|
-
import { withAPI } from './api';
|
|
13
|
-
import { ChipsConfig, ChipsComponent } from './types';
|
|
14
|
-
import { createBaseConfig, getApiConfig } from './config';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Creates a chips container for grouping related chips
|
|
18
|
-
*
|
|
19
|
-
* Chips follows a clear architectural pattern:
|
|
20
|
-
* 1. Structure definition - Describes the DOM structure declaratively
|
|
21
|
-
* 2. Feature enhancement - Adds specific capabilities (container, items, etc.)
|
|
22
|
-
* 3. DOM creation - Turns the structure into actual DOM elements
|
|
23
|
-
* 4. Controller - Manages behavior, events, and UI rendering
|
|
24
|
-
* 5. Lifecycle - Handles component lifecycle events
|
|
25
|
-
* 6. Public API - Exposes a clean, consistent API
|
|
26
|
-
*
|
|
27
|
-
* @param {ChipsConfig} config - Chips configuration object
|
|
28
|
-
* @returns {ChipsComponent} Chips component instance
|
|
29
|
-
*/
|
|
30
|
-
const createChips = (config: ChipsConfig = {}): ChipsComponent => {
|
|
31
|
-
// Process configuration with defaults
|
|
32
|
-
const baseConfig = createBaseConfig(config);
|
|
33
|
-
|
|
34
|
-
try {
|
|
35
|
-
// Create the component by composing features in a specific order
|
|
36
|
-
const component = pipe(
|
|
37
|
-
// Base component with event system
|
|
38
|
-
createBase,
|
|
39
|
-
withEvents(),
|
|
40
|
-
withLayout(baseConfig),
|
|
41
|
-
withContainer(baseConfig),
|
|
42
|
-
withLabel(baseConfig),
|
|
43
|
-
withChipItems(baseConfig),
|
|
44
|
-
|
|
45
|
-
// Now create the actual DOM elements from the complete structure
|
|
46
|
-
withDom(),
|
|
47
|
-
|
|
48
|
-
// Add state management and behavior
|
|
49
|
-
withController(baseConfig),
|
|
50
|
-
withLifecycle()
|
|
51
|
-
)(baseConfig);
|
|
52
|
-
|
|
53
|
-
// Generate the API configuration based on the enhanced component
|
|
54
|
-
const apiOptions = getApiConfig(component);
|
|
55
|
-
|
|
56
|
-
// Apply the public API layer
|
|
57
|
-
const chips = withAPI(apiOptions)(component);
|
|
58
|
-
|
|
59
|
-
// Register event handlers from config for convenience
|
|
60
|
-
if (baseConfig.on && typeof chips.on === 'function') {
|
|
61
|
-
Object.entries(baseConfig.on).forEach(([event, handler]) => {
|
|
62
|
-
if (typeof handler === 'function') {
|
|
63
|
-
chips.on(event, handler);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return chips;
|
|
69
|
-
} catch (error) {
|
|
70
|
-
console.error('Chips creation error:', error);
|
|
71
|
-
throw new Error(`Failed to create chip: ${(error as Error).message}`);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
export default createChips;
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
// src/components/chips/config.ts
|
|
2
|
-
import {
|
|
3
|
-
createComponentConfig,
|
|
4
|
-
createElementConfig
|
|
5
|
-
} from '../../core/config/component-config';
|
|
6
|
-
import { ChipsConfig } from './types';
|
|
7
|
-
import { createChipsSchema } from './schema';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Default configuration for the Chips component
|
|
11
|
-
*/
|
|
12
|
-
export const defaultConfig: ChipsConfig = {
|
|
13
|
-
chips: [],
|
|
14
|
-
scrollable: false,
|
|
15
|
-
vertical: false,
|
|
16
|
-
multiSelect: false,
|
|
17
|
-
onChange: null,
|
|
18
|
-
selector: null,
|
|
19
|
-
labelPosition: 'start'
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Creates the base configuration for Chips component
|
|
24
|
-
* @param {ChipsConfig} config - User provided configuration
|
|
25
|
-
* @returns {ChipsConfig} Complete configuration with defaults applied
|
|
26
|
-
*/
|
|
27
|
-
export const createBaseConfig = (config: ChipsConfig = {}): ChipsConfig => {
|
|
28
|
-
// Create the base config with defaults applied
|
|
29
|
-
const baseConfig = createComponentConfig(defaultConfig, config, 'chips') as ChipsConfig;
|
|
30
|
-
|
|
31
|
-
// Create a basic component object for structure generation
|
|
32
|
-
const baseComponent = {
|
|
33
|
-
componentName: 'chips',
|
|
34
|
-
config: baseConfig,
|
|
35
|
-
getClass: (className) => {
|
|
36
|
-
const prefix = baseConfig.prefix || 'mtrl';
|
|
37
|
-
return className ? `${prefix}-${className}` : prefix;
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
// Add the structure definition to the config
|
|
42
|
-
baseConfig.schema = createChipsSchema(baseComponent, baseConfig);
|
|
43
|
-
|
|
44
|
-
return baseConfig;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Generates element configuration for the Chips component
|
|
49
|
-
* @param {ChipsConfig} config - Chips configuration
|
|
50
|
-
* @returns {Object} Element configuration object for withElement
|
|
51
|
-
*/
|
|
52
|
-
export const getElementConfig = (config: ChipsConfig) =>
|
|
53
|
-
createElementConfig(config, {
|
|
54
|
-
tag: 'div',
|
|
55
|
-
attrs: {
|
|
56
|
-
tabindex: '0',
|
|
57
|
-
role: 'group',
|
|
58
|
-
'aria-multiselectable': config.multiSelect === true ? 'true' : 'false'
|
|
59
|
-
},
|
|
60
|
-
className: [
|
|
61
|
-
config.class
|
|
62
|
-
].filter(Boolean)
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Creates API configuration for the Chips component
|
|
67
|
-
* @param {Object} comp - Component with chips features
|
|
68
|
-
* @returns {Object} API configuration object
|
|
69
|
-
*/
|
|
70
|
-
export const getApiConfig = (comp) => ({
|
|
71
|
-
chips: {
|
|
72
|
-
addChip: function(chipConfig) {
|
|
73
|
-
if (comp.chips && typeof comp.chips.addChip === 'function') {
|
|
74
|
-
return comp.chips.addChip(chipConfig);
|
|
75
|
-
}
|
|
76
|
-
return null;
|
|
77
|
-
},
|
|
78
|
-
removeChip: (chipOrIndex) => comp.chips?.removeChip?.(chipOrIndex),
|
|
79
|
-
getChips: () => comp.chips?.getChips?.() ?? [],
|
|
80
|
-
getSelectedChips: () => comp.chips?.getSelectedChips?.() ?? [],
|
|
81
|
-
getSelectedValues: () => comp.chips?.getSelectedValues?.() ?? [],
|
|
82
|
-
selectByValue: (values) => comp.chips?.selectByValue?.(values),
|
|
83
|
-
clearSelection: () => comp.chips?.clearSelection?.(),
|
|
84
|
-
scrollToChip: (chipOrIndex) => comp.chips?.scrollToChip?.(chipOrIndex)
|
|
85
|
-
},
|
|
86
|
-
layout: {
|
|
87
|
-
setScrollable: (isScrollable) => comp.layout?.setScrollable?.(isScrollable),
|
|
88
|
-
isScrollable: () => comp.layout?.isScrollable?.() ?? false,
|
|
89
|
-
setVertical: (isVertical) => comp.layout?.setVertical?.(isVertical),
|
|
90
|
-
isVertical: () => comp.layout?.isVertical?.() ?? false
|
|
91
|
-
},
|
|
92
|
-
label: {
|
|
93
|
-
setText: (t) => comp.label?.setText?.(t),
|
|
94
|
-
getText: () => comp.label?.getText?.() ?? '',
|
|
95
|
-
setPosition: (p) => comp.label?.setPosition?.(p),
|
|
96
|
-
getPosition: () => comp.label?.getPosition?.() ?? 'start'
|
|
97
|
-
},
|
|
98
|
-
keyboard: {
|
|
99
|
-
enableKeyboardNavigation: () => comp.keyboard?.enable?.(),
|
|
100
|
-
disableKeyboardNavigation: () => comp.keyboard?.disable?.()
|
|
101
|
-
},
|
|
102
|
-
events: {
|
|
103
|
-
on: (e, h) => comp.on?.(e, h),
|
|
104
|
-
off: (e, h) => comp.off?.(e, h)
|
|
105
|
-
},
|
|
106
|
-
lifecycle: {
|
|
107
|
-
destroy: () => comp.lifecycle?.destroy?.()
|
|
108
|
-
}
|
|
109
|
-
});
|