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,313 +0,0 @@
|
|
|
1
|
-
// src/components/badge/api.ts
|
|
2
|
-
import { BadgeComponent, BadgeColor, BadgeVariant, BadgePosition } from './types';
|
|
3
|
-
import { formatBadgeLabel } from './config';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* API configuration options for badge component
|
|
7
|
-
* @category Components
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
interface ApiOptions {
|
|
11
|
-
visibility: {
|
|
12
|
-
show: () => void;
|
|
13
|
-
hide: () => void;
|
|
14
|
-
toggle: (visible?: boolean) => void;
|
|
15
|
-
isVisible: () => boolean;
|
|
16
|
-
};
|
|
17
|
-
lifecycle: {
|
|
18
|
-
destroy: () => void;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Component with required elements and methods for API enhancement
|
|
24
|
-
* @category Components
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
|
-
interface ComponentWithElements {
|
|
28
|
-
element: HTMLElement;
|
|
29
|
-
wrapper?: HTMLElement;
|
|
30
|
-
config: {
|
|
31
|
-
max?: number;
|
|
32
|
-
label?: string | number;
|
|
33
|
-
variant?: string;
|
|
34
|
-
};
|
|
35
|
-
getClass: (name: string) => string;
|
|
36
|
-
addClass: (...classes: string[]) => any;
|
|
37
|
-
removeClass: (...classes: string[]) => any;
|
|
38
|
-
on: (event: string, handler: Function) => any;
|
|
39
|
-
off: (event: string, handler: Function) => any;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Common variant constants for internal use
|
|
43
|
-
const VARIANT_SMALL = 'small';
|
|
44
|
-
|
|
45
|
-
// Map of all badge colors for class removal
|
|
46
|
-
const ALL_COLORS = [
|
|
47
|
-
'error', 'primary', 'secondary', 'tertiary', 'success', 'warning', 'info'
|
|
48
|
-
];
|
|
49
|
-
|
|
50
|
-
// Map of all badge variants for class removal
|
|
51
|
-
const ALL_VARIANTS = ['small', 'large'];
|
|
52
|
-
|
|
53
|
-
// Map of all badge positions for class removal
|
|
54
|
-
const ALL_POSITIONS = ['top-right', 'top-left', 'bottom-right', 'bottom-left'];
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Enhances a badge component with API methods.
|
|
58
|
-
* This follows the higher-order function pattern to add public API methods
|
|
59
|
-
* to the component, making them available to the end user.
|
|
60
|
-
*
|
|
61
|
-
* @param {ApiOptions} options - API configuration options
|
|
62
|
-
* @returns {Function} Higher-order function that adds API methods to component
|
|
63
|
-
* @category Components
|
|
64
|
-
* @internal This is an internal utility for the Badge component
|
|
65
|
-
*/
|
|
66
|
-
export const withAPI = ({ visibility, lifecycle }: ApiOptions) =>
|
|
67
|
-
(component: ComponentWithElements): BadgeComponent => ({
|
|
68
|
-
...component as any,
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Sets the badge label
|
|
72
|
-
* @param {string|number} label - Label to display in the badge
|
|
73
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
74
|
-
*/
|
|
75
|
-
setLabel(label: string | number) {
|
|
76
|
-
component.config.label = label;
|
|
77
|
-
|
|
78
|
-
// Small badges (dot variant) don't have text
|
|
79
|
-
if (component.config.variant === VARIANT_SMALL) {
|
|
80
|
-
component.element.textContent = '';
|
|
81
|
-
return this;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// Format the label
|
|
85
|
-
const formattedLabel = formatBadgeLabel(label, component.config.max);
|
|
86
|
-
component.element.textContent = formattedLabel;
|
|
87
|
-
|
|
88
|
-
// Add overflow class if label was truncated
|
|
89
|
-
component.element.classList.remove(`${component.getClass('badge')}--overflow`);
|
|
90
|
-
if (typeof label === 'number' &&
|
|
91
|
-
component.config.max !== undefined &&
|
|
92
|
-
label > component.config.max) {
|
|
93
|
-
component.element.classList.add(`${component.getClass('badge')}--overflow`);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Toggle visibility based on whether label is empty
|
|
97
|
-
if (formattedLabel === '' || formattedLabel === '0') {
|
|
98
|
-
this.hide();
|
|
99
|
-
} else {
|
|
100
|
-
this.show();
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return this;
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Gets the badge label
|
|
108
|
-
* @returns {string} Current badge label
|
|
109
|
-
*/
|
|
110
|
-
getLabel() {
|
|
111
|
-
return component.element.textContent || '';
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Shows the badge
|
|
116
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
117
|
-
*/
|
|
118
|
-
show() {
|
|
119
|
-
visibility.show();
|
|
120
|
-
return this;
|
|
121
|
-
},
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Hides the badge
|
|
125
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
126
|
-
*/
|
|
127
|
-
hide() {
|
|
128
|
-
visibility.hide();
|
|
129
|
-
return this;
|
|
130
|
-
},
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Toggles badge visibility
|
|
134
|
-
* @param {boolean} [visible] - Optional flag to force visibility state
|
|
135
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
136
|
-
*/
|
|
137
|
-
toggle(visible?: boolean) {
|
|
138
|
-
visibility.toggle(visible);
|
|
139
|
-
return this;
|
|
140
|
-
},
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Checks if the badge is visible
|
|
144
|
-
* @returns {boolean} True if badge is visible
|
|
145
|
-
*/
|
|
146
|
-
isVisible() {
|
|
147
|
-
return visibility.isVisible();
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Sets maximum value (after which badge shows max+)
|
|
152
|
-
*
|
|
153
|
-
* @param {number} max - Maximum value to display
|
|
154
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
155
|
-
*/
|
|
156
|
-
setMax(max: number) {
|
|
157
|
-
component.config.max = max;
|
|
158
|
-
|
|
159
|
-
// Apply max formatting if current label exceeds max
|
|
160
|
-
if (component.config.label !== undefined) {
|
|
161
|
-
this.setLabel(component.config.label);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
return this;
|
|
165
|
-
},
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Sets badge color
|
|
169
|
-
* @param {string} color - Color variant to apply
|
|
170
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
171
|
-
*/
|
|
172
|
-
setColor(color: BadgeColor | string) {
|
|
173
|
-
// Remove existing color classes
|
|
174
|
-
ALL_COLORS.forEach(colorName => {
|
|
175
|
-
component.element.classList.remove(`${component.getClass('badge')}--${colorName}`);
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
// Add new color class
|
|
179
|
-
component.element.classList.add(`${component.getClass('badge')}--${color}`);
|
|
180
|
-
return this;
|
|
181
|
-
},
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Sets badge variant
|
|
185
|
-
* @param {string} variant - Variant to apply (small or large)
|
|
186
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
187
|
-
*/
|
|
188
|
-
setVariant(variant: BadgeVariant | string) {
|
|
189
|
-
// Remove existing variant classes
|
|
190
|
-
ALL_VARIANTS.forEach(variantName => {
|
|
191
|
-
component.element.classList.remove(`${component.getClass('badge')}--${variantName}`);
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
// Add new variant class
|
|
195
|
-
component.element.classList.add(`${component.getClass('badge')}--${variant}`);
|
|
196
|
-
|
|
197
|
-
// Update component config
|
|
198
|
-
component.config.variant = variant;
|
|
199
|
-
|
|
200
|
-
// Update accessibility attributes
|
|
201
|
-
if (variant === VARIANT_SMALL) {
|
|
202
|
-
component.element.textContent = '';
|
|
203
|
-
component.element.setAttribute('aria-hidden', 'true');
|
|
204
|
-
} else {
|
|
205
|
-
component.element.setAttribute('role', 'status');
|
|
206
|
-
|
|
207
|
-
// Restore label for large badges
|
|
208
|
-
if (component.config.label !== undefined) {
|
|
209
|
-
this.setLabel(component.config.label);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
return this;
|
|
214
|
-
},
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Sets badge position
|
|
218
|
-
* @param {string} position - Position variant to apply
|
|
219
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
220
|
-
*/
|
|
221
|
-
setPosition(position: BadgePosition | string) {
|
|
222
|
-
// Remove existing position classes
|
|
223
|
-
ALL_POSITIONS.forEach(posName => {
|
|
224
|
-
component.element.classList.remove(`${component.getClass('badge')}--${posName}`);
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
// Add new position class
|
|
228
|
-
component.element.classList.add(`${component.getClass('badge')}--${position}`);
|
|
229
|
-
|
|
230
|
-
return this;
|
|
231
|
-
},
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Attaches badge to a target element
|
|
235
|
-
* @param {HTMLElement} target - Element to attach badge to
|
|
236
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
237
|
-
*/
|
|
238
|
-
attachTo(target: HTMLElement) {
|
|
239
|
-
// If we already have a wrapper, remove the badge from it
|
|
240
|
-
if (component.wrapper && component.wrapper.contains(component.element)) {
|
|
241
|
-
component.wrapper.removeChild(component.element);
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// Create a new wrapper to hold the target and badge
|
|
245
|
-
const wrapper = document.createElement('div');
|
|
246
|
-
wrapper.classList.add(component.getClass('badge-wrapper'));
|
|
247
|
-
wrapper.style.position = 'relative';
|
|
248
|
-
|
|
249
|
-
// Replace the target with the wrapper
|
|
250
|
-
const parent = target.parentNode;
|
|
251
|
-
if (parent) {
|
|
252
|
-
parent.replaceChild(wrapper, target);
|
|
253
|
-
wrapper.appendChild(target);
|
|
254
|
-
wrapper.appendChild(component.element);
|
|
255
|
-
|
|
256
|
-
// Make sure the badge is positioned
|
|
257
|
-
component.element.classList.add(`${component.getClass('badge')}--positioned`);
|
|
258
|
-
|
|
259
|
-
// Save the wrapper reference
|
|
260
|
-
component.wrapper = wrapper;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
return this;
|
|
264
|
-
},
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Makes badge standalone (removes from wrapper)
|
|
268
|
-
* @returns {BadgeComponent} Badge component instance for chaining
|
|
269
|
-
*/
|
|
270
|
-
detach() {
|
|
271
|
-
if (component.wrapper && component.wrapper.contains(component.element)) {
|
|
272
|
-
// Remove the badge from the wrapper
|
|
273
|
-
component.wrapper.removeChild(component.element);
|
|
274
|
-
|
|
275
|
-
// Remove the positioned class
|
|
276
|
-
component.element.classList.remove(`${component.getClass('badge')}--positioned`);
|
|
277
|
-
|
|
278
|
-
// Add the badge to the document body or another container
|
|
279
|
-
document.body.appendChild(component.element);
|
|
280
|
-
|
|
281
|
-
// Clear the wrapper reference
|
|
282
|
-
component.wrapper = undefined;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
return this;
|
|
286
|
-
},
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* Destroys the badge component and cleans up resources
|
|
290
|
-
*/
|
|
291
|
-
destroy() {
|
|
292
|
-
lifecycle.destroy();
|
|
293
|
-
|
|
294
|
-
// If badge is in a wrapper, restore the original DOM structure
|
|
295
|
-
if (component.wrapper) {
|
|
296
|
-
const target = component.wrapper.firstChild as HTMLElement;
|
|
297
|
-
const parent = component.wrapper.parentNode;
|
|
298
|
-
|
|
299
|
-
if (parent && target) {
|
|
300
|
-
parent.replaceChild(target, component.wrapper);
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
|
|
305
|
-
// Forward basic component methods for API consistency
|
|
306
|
-
getClass: component.getClass,
|
|
307
|
-
addClass: component.addClass,
|
|
308
|
-
removeClass: component.removeClass,
|
|
309
|
-
on: component.on,
|
|
310
|
-
off: component.off,
|
|
311
|
-
element: component.element,
|
|
312
|
-
wrapper: component.wrapper
|
|
313
|
-
});
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
// src/components/badge/config.ts
|
|
2
|
-
import {
|
|
3
|
-
createComponentConfig,
|
|
4
|
-
createElementConfig
|
|
5
|
-
} from '../../core/config/component-config';
|
|
6
|
-
import { BadgeConfig } from './types';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Maximum character count for badge labels
|
|
10
|
-
* @category Components
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
export const BADGE_MAX_CHARACTERS = 4;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Default configuration for the Badge component
|
|
17
|
-
* These values will be used when not explicitly specified by the user.
|
|
18
|
-
*
|
|
19
|
-
* @category Components
|
|
20
|
-
*/
|
|
21
|
-
export const defaultConfig: BadgeConfig = {
|
|
22
|
-
/** Default to large badge (with text capability) */
|
|
23
|
-
variant: 'large',
|
|
24
|
-
/** Default to error (red) color */
|
|
25
|
-
color: 'error',
|
|
26
|
-
/** Default to top-right corner positioning */
|
|
27
|
-
position: 'top-right',
|
|
28
|
-
/** Default to empty label */
|
|
29
|
-
label: '',
|
|
30
|
-
/** Default to visible */
|
|
31
|
-
visible: true
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Creates the base configuration for Badge component by merging user-provided
|
|
36
|
-
* config with default values.
|
|
37
|
-
*
|
|
38
|
-
* @param {BadgeConfig} config - User provided configuration
|
|
39
|
-
* @returns {BadgeConfig} Complete configuration with defaults applied
|
|
40
|
-
* @category Components
|
|
41
|
-
* @internal
|
|
42
|
-
*/
|
|
43
|
-
export const createBaseConfig = (config: BadgeConfig = {}): BadgeConfig =>
|
|
44
|
-
createComponentConfig(defaultConfig, config, 'badge') as BadgeConfig;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Generates element configuration for the Badge component.
|
|
48
|
-
* This function creates the necessary attributes and configuration
|
|
49
|
-
* for the DOM element creation process.
|
|
50
|
-
*
|
|
51
|
-
* @param {BadgeConfig} config - Badge configuration
|
|
52
|
-
* @returns {Object} Element configuration object for withElement
|
|
53
|
-
* @category Components
|
|
54
|
-
* @internal
|
|
55
|
-
*/
|
|
56
|
-
export const getElementConfig = (config: BadgeConfig) => {
|
|
57
|
-
// Create the attributes object
|
|
58
|
-
const attrs: Record<string, any> = {};
|
|
59
|
-
|
|
60
|
-
// For large badges, set appropriate ARIA attributes for screen readers
|
|
61
|
-
if (config.variant !== 'small') {
|
|
62
|
-
attrs.role = 'status';
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// Format the label if needed - small badges have no text
|
|
66
|
-
const formattedLabel = config.variant === 'small'
|
|
67
|
-
? ''
|
|
68
|
-
: formatBadgeLabel(config.label || '', config.max);
|
|
69
|
-
|
|
70
|
-
return createElementConfig(config, {
|
|
71
|
-
tag: 'span',
|
|
72
|
-
attrs,
|
|
73
|
-
className: config.class,
|
|
74
|
-
text: formattedLabel // Use the formatted label
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Creates API configuration for the Badge component.
|
|
80
|
-
* This connects the core component features (like visibility)
|
|
81
|
-
* to the public API methods exposed to users.
|
|
82
|
-
*
|
|
83
|
-
* @param {Object} comp - Component with visibility and lifecycle features
|
|
84
|
-
* @returns {Object} API configuration object
|
|
85
|
-
* @category Components
|
|
86
|
-
* @internal
|
|
87
|
-
*/
|
|
88
|
-
export const getApiConfig = (comp) => ({
|
|
89
|
-
visibility: {
|
|
90
|
-
show: () => comp.visibility.show(),
|
|
91
|
-
hide: () => comp.visibility.hide(),
|
|
92
|
-
toggle: (visible?: boolean) => comp.visibility.toggle(visible),
|
|
93
|
-
isVisible: () => comp.visibility.isVisible()
|
|
94
|
-
},
|
|
95
|
-
lifecycle: {
|
|
96
|
-
destroy: () => comp.lifecycle.destroy()
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Format a badge label following Material Design 3 guidelines:
|
|
102
|
-
* - Max 4 characters including "+" for overflow
|
|
103
|
-
* - Add "+" for numeric values exceeding max
|
|
104
|
-
*
|
|
105
|
-
* @param {string|number} label - Original label
|
|
106
|
-
* @param {number} max - Maximum value before using "+"
|
|
107
|
-
* @returns {string} Formatted label that fits within badge constraints
|
|
108
|
-
* @category Components
|
|
109
|
-
* @internal
|
|
110
|
-
*
|
|
111
|
-
* @example
|
|
112
|
-
* formatBadgeLabel(5) // "5"
|
|
113
|
-
* formatBadgeLabel(1250, 999) // "999+"
|
|
114
|
-
* formatBadgeLabel("New") // "New"
|
|
115
|
-
* formatBadgeLabel("VeryLong") // "Very" (truncated)
|
|
116
|
-
*/
|
|
117
|
-
export const formatBadgeLabel = (label: string | number, max?: number): string => {
|
|
118
|
-
// Handle empty or undefined labels
|
|
119
|
-
if (label === undefined || label === null || label === '') {
|
|
120
|
-
return '';
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
let formattedLabel = String(label);
|
|
124
|
-
|
|
125
|
-
const numericLabel = Number(label);
|
|
126
|
-
|
|
127
|
-
// Apply max value formatting for numbers
|
|
128
|
-
if (max !== undefined && !isNaN(numericLabel) && numericLabel > max) {
|
|
129
|
-
formattedLabel = `${max}+`;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// Ensure label doesn't exceed max characters
|
|
133
|
-
if (formattedLabel.length > BADGE_MAX_CHARACTERS) {
|
|
134
|
-
// Try to preserve as much information as possible
|
|
135
|
-
// For large numbers, use abbreviated format with "+"
|
|
136
|
-
const numericValue = Number(label);
|
|
137
|
-
if (!isNaN(numericValue)) {
|
|
138
|
-
if (numericValue >= 1000) {
|
|
139
|
-
formattedLabel = '999+';
|
|
140
|
-
} else {
|
|
141
|
-
// For numbers under 1000 but still too long, truncate
|
|
142
|
-
formattedLabel = formattedLabel.substring(0, BADGE_MAX_CHARACTERS - 1) + '+';
|
|
143
|
-
}
|
|
144
|
-
} else {
|
|
145
|
-
// For non-numeric values, simply truncate
|
|
146
|
-
formattedLabel = formattedLabel.substring(0, BADGE_MAX_CHARACTERS);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return formattedLabel;
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
export default defaultConfig;
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
// src/components/badge/features.ts
|
|
2
|
-
import { BadgeConfig } from './types';
|
|
3
|
-
import { formatBadgeLabel } from './config';
|
|
4
|
-
|
|
5
|
-
// Common badge variants
|
|
6
|
-
const VARIANT_SMALL = 'small';
|
|
7
|
-
const VARIANT_LARGE = 'large';
|
|
8
|
-
|
|
9
|
-
// Common badge colors
|
|
10
|
-
const COLOR_ERROR = 'error';
|
|
11
|
-
|
|
12
|
-
// Common badge positions
|
|
13
|
-
const POSITION_TOP_RIGHT = 'top-right';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Higher-order function that adds visibility control features to a component
|
|
17
|
-
* @returns {Function} Component enhancer with visibility features
|
|
18
|
-
*/
|
|
19
|
-
export const withVisibility = () => component => {
|
|
20
|
-
// Get config values
|
|
21
|
-
const visible = component.config.visible !== false; // Default to true if not specified
|
|
22
|
-
|
|
23
|
-
// Initialize visibility state based on config
|
|
24
|
-
if (!visible) {
|
|
25
|
-
component.element.classList.add(`${component.getClass('badge')}--invisible`);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return {
|
|
29
|
-
...component,
|
|
30
|
-
visibility: {
|
|
31
|
-
/**
|
|
32
|
-
* Shows the badge
|
|
33
|
-
*/
|
|
34
|
-
show() {
|
|
35
|
-
component.element.classList.remove(`${component.getClass('badge')}--invisible`);
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Hides the badge
|
|
40
|
-
*/
|
|
41
|
-
hide() {
|
|
42
|
-
component.element.classList.add(`${component.getClass('badge')}--invisible`);
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Toggles badge visibility
|
|
47
|
-
* @param {boolean} [visible] - Optional flag to force visibility state
|
|
48
|
-
*/
|
|
49
|
-
toggle(visible?: boolean) {
|
|
50
|
-
if (visible === undefined) {
|
|
51
|
-
component.element.classList.toggle(`${component.getClass('badge')}--invisible`);
|
|
52
|
-
} else if (visible) {
|
|
53
|
-
this.show();
|
|
54
|
-
} else {
|
|
55
|
-
this.hide();
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Checks if the badge is visible
|
|
61
|
-
* @returns {boolean} True if badge is visible
|
|
62
|
-
*/
|
|
63
|
-
isVisible() {
|
|
64
|
-
return !component.element.classList.contains(`${component.getClass('badge')}--invisible`);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Higher-order function that adds variant features to a badge component
|
|
72
|
-
* @param {BadgeConfig} config - Badge configuration
|
|
73
|
-
* @returns {Function} Component enhancer with variant features
|
|
74
|
-
*/
|
|
75
|
-
export const withVariant = (config: BadgeConfig) => component => {
|
|
76
|
-
// Get variant from config with fallback to default
|
|
77
|
-
const variant = config.variant || VARIANT_LARGE;
|
|
78
|
-
|
|
79
|
-
// Apply variant class
|
|
80
|
-
component.element.classList.add(`${component.getClass('badge')}--${variant}`);
|
|
81
|
-
|
|
82
|
-
// Small badges (dot variant) don't have text
|
|
83
|
-
if (variant === VARIANT_SMALL) {
|
|
84
|
-
component.element.textContent = '';
|
|
85
|
-
component.element.setAttribute('aria-hidden', 'true');
|
|
86
|
-
} else {
|
|
87
|
-
// Add accessibility for large badges
|
|
88
|
-
component.element.setAttribute('role', 'status');
|
|
89
|
-
|
|
90
|
-
// Set the label if available and variant is large
|
|
91
|
-
if (config.label !== undefined && config.label !== '') {
|
|
92
|
-
// Format the label according to max value
|
|
93
|
-
const formattedLabel = formatBadgeLabel(config.label, config.max);
|
|
94
|
-
component.element.textContent = formattedLabel;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return component;
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Higher-order function that adds color features to a badge component
|
|
103
|
-
* @param {BadgeConfig} config - Badge configuration
|
|
104
|
-
* @returns {Function} Component enhancer with color features
|
|
105
|
-
*/
|
|
106
|
-
export const withColor = (config: BadgeConfig) => component => {
|
|
107
|
-
// Get color from config with fallback to default
|
|
108
|
-
const color = config.color || COLOR_ERROR;
|
|
109
|
-
|
|
110
|
-
// Apply color class
|
|
111
|
-
component.element.classList.add(`${component.getClass('badge')}--${color}`);
|
|
112
|
-
|
|
113
|
-
return component;
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Higher-order function that adds positioning features to a badge component
|
|
118
|
-
* @param {BadgeConfig} config - Badge configuration
|
|
119
|
-
* @returns {Function} Component enhancer with positioning features
|
|
120
|
-
*/
|
|
121
|
-
export const withPosition = (config: BadgeConfig) => component => {
|
|
122
|
-
// Get position from config with fallback to default
|
|
123
|
-
const position = config.position || POSITION_TOP_RIGHT;
|
|
124
|
-
|
|
125
|
-
// Apply position class
|
|
126
|
-
component.element.classList.add(`${component.getClass('badge')}--${position}`);
|
|
127
|
-
|
|
128
|
-
// If there's a target, add positioned class
|
|
129
|
-
if (config.target) {
|
|
130
|
-
component.element.classList.add(`${component.getClass('badge')}--positioned`);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return component;
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Higher-order function that adds max value features to a badge component
|
|
138
|
-
* @param {BadgeConfig} config - Badge configuration
|
|
139
|
-
* @returns {Function} Component enhancer with max value features
|
|
140
|
-
*/
|
|
141
|
-
export const withMax = (config: BadgeConfig) => component => {
|
|
142
|
-
// Skip if no max is defined or for small badges
|
|
143
|
-
if (config.max === undefined || config.variant === VARIANT_SMALL) {
|
|
144
|
-
return component;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Store max value in config for later use
|
|
148
|
-
component.config.max = config.max;
|
|
149
|
-
|
|
150
|
-
// Apply max formatting if needed
|
|
151
|
-
if (config.label !== undefined && config.label !== '') {
|
|
152
|
-
const formattedLabel = formatBadgeLabel(config.label, config.max);
|
|
153
|
-
component.element.textContent = formattedLabel;
|
|
154
|
-
|
|
155
|
-
// Add overflow class if label was truncated
|
|
156
|
-
if (typeof config.label === 'number' && config.label > config.max) {
|
|
157
|
-
component.element.classList.add(`${component.getClass('badge')}--overflow`);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
return component;
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Higher-order function that attaches badge to a target element
|
|
166
|
-
* @param {BadgeConfig} config - Badge configuration
|
|
167
|
-
* @returns {Function} Component enhancer with attachment features
|
|
168
|
-
*/
|
|
169
|
-
export const withAttachment = (config: BadgeConfig) => component => {
|
|
170
|
-
// Skip if no target is provided
|
|
171
|
-
if (!config.target) {
|
|
172
|
-
return component;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Create wrapper to hold the target and badge
|
|
176
|
-
const wrapper = document.createElement('div');
|
|
177
|
-
wrapper.classList.add(component.getClass('badge-wrapper'));
|
|
178
|
-
|
|
179
|
-
// Make sure positioning context is correct
|
|
180
|
-
wrapper.style.position = 'relative';
|
|
181
|
-
|
|
182
|
-
// Replace the target with the wrapper
|
|
183
|
-
const parent = config.target.parentNode;
|
|
184
|
-
if (parent) {
|
|
185
|
-
parent.replaceChild(wrapper, config.target);
|
|
186
|
-
wrapper.appendChild(config.target);
|
|
187
|
-
wrapper.appendChild(component.element);
|
|
188
|
-
|
|
189
|
-
// Save the wrapper reference
|
|
190
|
-
component.wrapper = wrapper;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
return component;
|
|
194
|
-
};
|