mtrl 0.3.7 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LICENSE +21 -0
- package/dist/README.md +324 -0
- package/dist/components/badge/api.d.ts +48 -0
- package/{src/components/badge/badge.ts → dist/components/badge/badge.d.ts} +14 -57
- package/dist/components/badge/config.d.ts +79 -0
- package/dist/components/badge/constants.d.ts +35 -0
- package/dist/components/badge/features.d.ts +36 -0
- package/dist/components/badge/index.d.ts +8 -0
- package/dist/components/badge/types.d.ts +256 -0
- package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +12 -0
- package/dist/components/bottom-app-bar/config.d.ts +16 -0
- package/dist/components/bottom-app-bar/constants.d.ts +22 -0
- package/{src/components/bottom-app-bar/index.ts → dist/components/bottom-app-bar/index.d.ts} +0 -9
- package/dist/components/bottom-app-bar/types.d.ts +96 -0
- package/dist/components/button/api.d.ts +47 -0
- package/dist/components/button/button.d.ts +25 -0
- package/dist/components/button/config.d.ts +59 -0
- package/dist/components/button/constants.d.ts +43 -0
- package/dist/components/button/index.d.ts +6 -0
- package/dist/components/button/types.d.ts +265 -0
- package/dist/components/card/api.d.ts +11 -0
- package/{src/components/card/card.ts → dist/components/card/card.d.ts} +10 -58
- package/dist/components/card/config.d.ts +105 -0
- package/dist/components/card/constants.d.ts +85 -0
- package/dist/components/card/content.d.ts +92 -0
- package/dist/components/card/features.d.ts +131 -0
- package/{src/components/card/index.ts → dist/components/card/index.d.ts} +13 -74
- package/dist/components/card/types.d.ts +471 -0
- package/dist/components/carousel/api.d.ts +33 -0
- package/dist/components/carousel/carousel.d.ts +75 -0
- package/dist/components/carousel/config.d.ts +45 -0
- package/dist/components/carousel/constants.d.ts +165 -0
- package/dist/components/carousel/features/drag.d.ts +8 -0
- package/{src/components/carousel/features/index.ts → dist/components/carousel/features/index.d.ts} +1 -4
- package/dist/components/carousel/features/slides.d.ts +8 -0
- package/{src/components/carousel/index.ts → dist/components/carousel/index.d.ts} +10 -29
- package/dist/components/carousel/types.d.ts +276 -0
- package/dist/components/checkbox/api.d.ts +7 -0
- package/dist/components/checkbox/checkbox.d.ts +65 -0
- package/dist/components/checkbox/config.d.ts +44 -0
- package/dist/components/checkbox/constants.d.ts +63 -0
- package/{src/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +8 -25
- package/dist/components/checkbox/types.d.ts +242 -0
- package/dist/components/chips/api.d.ts +49 -0
- package/dist/components/chips/chip/api.d.ts +23 -0
- package/dist/components/chips/chip/chip.d.ts +8 -0
- package/dist/components/chips/chip/config.d.ts +57 -0
- package/dist/components/chips/chip/constants.d.ts +38 -0
- package/dist/components/chips/chip/index.d.ts +2 -0
- package/dist/components/chips/chip/types.d.ts +11 -0
- package/dist/components/chips/chips.d.ts +17 -0
- package/dist/components/chips/config.d.ts +67 -0
- package/dist/components/chips/constants.d.ts +46 -0
- package/dist/components/chips/features/chip-items.d.ts +8 -0
- package/dist/components/chips/features/container.d.ts +8 -0
- package/dist/components/chips/features/controller.d.ts +9 -0
- package/{src/components/chips/features/index.ts → dist/components/chips/features/index.d.ts} +1 -2
- package/dist/components/chips/features/label.d.ts +8 -0
- package/dist/components/chips/index.d.ts +4 -0
- package/dist/components/chips/schema.d.ts +34 -0
- package/dist/components/chips/types.d.ts +398 -0
- package/dist/components/datepicker/api.d.ts +9 -0
- package/dist/components/datepicker/config.d.ts +79 -0
- package/dist/components/datepicker/constants.d.ts +97 -0
- package/dist/components/datepicker/datepicker.d.ts +8 -0
- package/dist/components/datepicker/index.d.ts +3 -0
- package/dist/components/datepicker/render.d.ts +43 -0
- package/dist/components/datepicker/types.d.ts +321 -0
- package/dist/components/datepicker/utils.d.ts +84 -0
- package/dist/components/dialog/api.d.ts +59 -0
- package/dist/components/dialog/config.d.ts +91 -0
- package/dist/components/dialog/constants.d.ts +116 -0
- package/{src/components/dialog/dialog.ts → dist/components/dialog/dialog.d.ts} +16 -69
- package/dist/components/dialog/features.d.ts +37 -0
- package/dist/components/dialog/index.d.ts +14 -0
- package/dist/components/dialog/types.d.ts +483 -0
- package/dist/components/divider/config.d.ts +143 -0
- package/dist/components/divider/constants.d.ts +45 -0
- package/{src/components/divider/divider.ts → dist/components/divider/divider.d.ts} +9 -37
- package/dist/components/divider/features.d.ts +50 -0
- package/{src/components/divider/index.ts → dist/components/divider/index.d.ts} +6 -12
- package/dist/components/divider/types.d.ts +124 -0
- package/dist/components/extended-fab/api.d.ts +83 -0
- package/dist/components/extended-fab/config.d.ts +75 -0
- package/dist/components/extended-fab/constants.d.ts +82 -0
- package/dist/components/extended-fab/extended-fab.d.ts +61 -0
- package/{src/components/extended-fab/index.ts → dist/components/extended-fab/index.d.ts} +6 -15
- package/dist/components/extended-fab/types.d.ts +703 -0
- package/dist/components/fab/api.d.ts +64 -0
- package/dist/components/fab/config.d.ts +71 -0
- package/dist/components/fab/constants.d.ts +75 -0
- package/{src/components/fab/fab.ts → dist/components/fab/fab.d.ts} +10 -46
- package/{src/components/fab/index.ts → dist/components/fab/index.d.ts} +6 -15
- package/dist/components/fab/types.d.ts +577 -0
- package/dist/components/index.d.ts +76 -0
- package/dist/components/list/api.d.ts +106 -0
- package/dist/components/list/config.d.ts +61 -0
- package/dist/components/list/constants.d.ts +76 -0
- package/dist/components/list/features/index.d.ts +2 -0
- package/dist/components/list/features/listmanager.d.ts +9 -0
- package/dist/components/list/features/selection.d.ts +9 -0
- package/dist/components/list/index.d.ts +12 -0
- package/dist/components/list/list.d.ts +11 -0
- package/dist/components/list/types.d.ts +294 -0
- package/dist/components/menu/api.d.ts +58 -0
- package/dist/components/menu/config.d.ts +78 -0
- package/dist/components/menu/constants.d.ts +106 -0
- package/dist/components/menu/features/controller.d.ts +10 -0
- package/dist/components/menu/features/index.d.ts +6 -0
- package/dist/components/menu/features/keyboard.d.ts +26 -0
- package/dist/components/menu/features/opener.d.ts +10 -0
- package/dist/components/menu/features/position.d.ts +18 -0
- package/dist/components/menu/features/submenu.d.ts +10 -0
- package/{src/components/menu/index.ts → dist/components/menu/index.d.ts} +11 -27
- package/dist/components/menu/menu.d.ts +29 -0
- package/dist/components/menu/types.d.ts +338 -0
- package/dist/components/navigation/api.d.ts +8 -0
- package/dist/components/navigation/config.d.ts +34 -0
- package/dist/components/navigation/constants.d.ts +137 -0
- package/dist/components/navigation/features/controller.d.ts +30 -0
- package/dist/components/navigation/features/items.d.ts +32 -0
- package/dist/components/navigation/index.d.ts +3 -0
- package/dist/components/navigation/nav-item.d.ts +30 -0
- package/dist/components/navigation/navigation.d.ts +8 -0
- package/dist/components/navigation/system/core.d.ts +72 -0
- package/dist/components/navigation/system/events.d.ts +35 -0
- package/dist/components/navigation/system/index.d.ts +10 -0
- package/dist/components/navigation/system/mobile.d.ts +52 -0
- package/dist/components/navigation/system/state.d.ts +22 -0
- package/dist/components/navigation/system/types.d.ts +305 -0
- package/dist/components/navigation/types.d.ts +216 -0
- package/dist/components/progress/api.d.ts +46 -0
- package/dist/components/progress/config.d.ts +63 -0
- package/dist/components/progress/constants.d.ts +58 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/progress.d.ts +24 -0
- package/dist/components/progress/types.d.ts +199 -0
- package/dist/components/radios/api.d.ts +37 -0
- package/dist/components/radios/config.d.ts +42 -0
- package/dist/components/radios/constants.d.ts +114 -0
- package/dist/components/radios/index.d.ts +3 -0
- package/dist/components/radios/radio.d.ts +8 -0
- package/dist/components/radios/radios.d.ts +8 -0
- package/dist/components/radios/types.d.ts +189 -0
- package/dist/components/search/api.d.ts +55 -0
- package/dist/components/search/config.d.ts +73 -0
- package/dist/components/search/constants.d.ts +128 -0
- package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
- package/dist/components/search/features/search.d.ts +7 -0
- package/dist/components/search/features/states.d.ts +8 -0
- package/dist/components/search/features/structure.d.ts +7 -0
- package/dist/components/search/index.d.ts +3 -0
- package/dist/components/search/search.d.ts +8 -0
- package/dist/components/search/types.d.ts +132 -0
- package/dist/components/segmented-button/config.d.ts +65 -0
- package/dist/components/segmented-button/constants.d.ts +85 -0
- package/dist/components/segmented-button/index.d.ts +4 -0
- package/dist/components/segmented-button/segment.d.ts +15 -0
- package/dist/components/segmented-button/segmented-button.d.ts +49 -0
- package/dist/components/segmented-button/types.d.ts +257 -0
- package/dist/components/select/api.d.ts +8 -0
- package/dist/components/select/config.d.ts +18 -0
- package/dist/components/select/constants.d.ts +113 -0
- package/dist/components/select/features.d.ts +13 -0
- package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
- package/dist/components/select/select.d.ts +36 -0
- package/dist/components/select/types.d.ts +302 -0
- package/dist/components/sheet/api.d.ts +37 -0
- package/dist/components/sheet/config.d.ts +42 -0
- package/dist/components/sheet/constants.d.ts +136 -0
- package/dist/components/sheet/features/content.d.ts +6 -0
- package/dist/components/sheet/features/gestures.d.ts +6 -0
- package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
- package/dist/components/sheet/features/position.d.ts +7 -0
- package/dist/components/sheet/features/state.d.ts +6 -0
- package/dist/components/sheet/features/title.d.ts +6 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/sheet.d.ts +8 -0
- package/dist/components/sheet/types.d.ts +250 -0
- package/dist/components/slider/api.d.ts +57 -0
- package/dist/components/slider/config.d.ts +75 -0
- package/dist/components/slider/constants.d.ts +138 -0
- package/dist/components/slider/features/controller.d.ts +9 -0
- package/dist/components/slider/features/handlers.d.ts +25 -0
- package/dist/components/slider/features/index.d.ts +3 -0
- package/dist/components/slider/features/range.d.ts +8 -0
- package/dist/components/slider/features/states.d.ts +9 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/schema.d.ts +108 -0
- package/dist/components/slider/slider.d.ts +18 -0
- package/dist/components/slider/types.d.ts +170 -0
- package/dist/components/snackbar/api.d.ts +7 -0
- package/dist/components/snackbar/config.d.ts +55 -0
- package/dist/components/snackbar/constants.d.ts +88 -0
- package/dist/components/snackbar/features.d.ts +13 -0
- package/dist/components/snackbar/index.d.ts +3 -0
- package/dist/components/snackbar/position.d.ts +15 -0
- package/dist/components/snackbar/queue.d.ts +7 -0
- package/dist/components/snackbar/snackbar.d.ts +8 -0
- package/dist/components/snackbar/types.d.ts +172 -0
- package/dist/components/switch/api.d.ts +7 -0
- package/dist/components/switch/config.d.ts +34 -0
- package/dist/components/switch/constants.d.ts +88 -0
- package/dist/components/switch/features.d.ts +59 -0
- package/dist/components/switch/index.d.ts +4 -0
- package/dist/components/switch/switch.d.ts +8 -0
- package/dist/components/switch/types.d.ts +131 -0
- package/dist/components/tabs/api.d.ts +52 -0
- package/dist/components/tabs/config.d.ts +39 -0
- package/dist/components/tabs/constants.d.ts +142 -0
- package/dist/components/tabs/features.d.ts +133 -0
- package/dist/components/tabs/index.d.ts +11 -0
- package/dist/components/tabs/indicator.d.ts +49 -0
- package/dist/components/tabs/responsive.d.ts +38 -0
- package/dist/components/tabs/scroll-indicators.d.ts +18 -0
- package/dist/components/tabs/state.d.ts +53 -0
- package/dist/components/tabs/tab-api.d.ts +43 -0
- package/dist/components/tabs/tab.d.ts +7 -0
- package/dist/components/tabs/tabs.d.ts +27 -0
- package/dist/components/tabs/types.d.ts +390 -0
- package/dist/components/tabs/utils.d.ts +17 -0
- package/dist/components/textfield/api.d.ts +8 -0
- package/dist/components/textfield/config.d.ts +34 -0
- package/dist/components/textfield/constants.d.ts +148 -0
- package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
- package/dist/components/textfield/features/leading-icon.d.ts +55 -0
- package/dist/components/textfield/features/placement.d.ts +28 -0
- package/dist/components/textfield/features/prefix-text.d.ts +54 -0
- package/dist/components/textfield/features/suffix-text.d.ts +54 -0
- package/dist/components/textfield/features/supporting-text.d.ts +59 -0
- package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
- package/dist/components/textfield/index.d.ts +3 -0
- package/dist/components/textfield/textfield.d.ts +36 -0
- package/dist/components/textfield/types.d.ts +217 -0
- package/dist/components/timepicker/api.d.ts +24 -0
- package/dist/components/timepicker/clockdial.d.ts +34 -0
- package/dist/components/timepicker/config.d.ts +75 -0
- package/dist/components/timepicker/constants.d.ts +266 -0
- package/dist/components/timepicker/index.d.ts +4 -0
- package/dist/components/timepicker/render.d.ts +9 -0
- package/dist/components/timepicker/timepicker.d.ts +8 -0
- package/dist/components/timepicker/types.d.ts +284 -0
- package/dist/components/timepicker/utils.d.ts +74 -0
- package/dist/components/tooltip/api.d.ts +18 -0
- package/dist/components/tooltip/config.d.ts +38 -0
- package/dist/components/tooltip/constants.d.ts +108 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/tooltip.d.ts +8 -0
- package/dist/components/tooltip/types.d.ts +188 -0
- package/dist/components/top-app-bar/config.d.ts +16 -0
- package/dist/components/top-app-bar/constants.d.ts +74 -0
- package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
- package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
- package/dist/components/top-app-bar/types.d.ts +118 -0
- package/dist/constants.d.ts +30 -0
- package/dist/core/collection/adapters/base.d.ts +47 -0
- package/dist/core/collection/adapters/route.d.ts +149 -0
- package/dist/core/collection/collection.d.ts +131 -0
- package/dist/core/collection/index.d.ts +10 -0
- package/dist/core/collection/list-manager/config.d.ts +29 -0
- package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
- package/dist/core/collection/list-manager/index.d.ts +61 -0
- package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
- package/dist/core/collection/list-manager/renderer.d.ts +31 -0
- package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
- package/dist/core/collection/list-manager/state.d.ts +60 -0
- package/dist/core/collection/list-manager/types.d.ts +361 -0
- package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
- package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
- package/dist/core/compose/base.d.ts +31 -0
- package/dist/core/compose/component.d.ts +61 -0
- package/dist/core/compose/features/badge.d.ts +43 -0
- package/dist/core/compose/features/checkable.d.ts +59 -0
- package/dist/core/compose/features/constants.d.ts +45 -0
- package/dist/core/compose/features/debounce.d.ts +84 -0
- package/dist/core/compose/features/disabled.d.ts +47 -0
- package/dist/core/compose/features/events.d.ts +37 -0
- package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
- package/dist/core/compose/features/gestures/pan.d.ts +108 -0
- package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
- package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
- package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
- package/dist/core/compose/features/gestures/tap.d.ts +79 -0
- package/dist/core/compose/features/gestures.d.ts +86 -0
- package/dist/core/compose/features/icon.d.ts +71 -0
- package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
- package/dist/core/compose/features/input.d.ts +71 -0
- package/dist/core/compose/features/lifecycle.d.ts +61 -0
- package/dist/core/compose/features/position.d.ts +51 -0
- package/dist/core/compose/features/ripple.d.ts +61 -0
- package/dist/core/compose/features/size.d.ts +17 -0
- package/dist/core/compose/features/style.d.ts +16 -0
- package/dist/core/compose/features/text.d.ts +63 -0
- package/dist/core/compose/features/textinput.d.ts +93 -0
- package/dist/core/compose/features/textlabel.d.ts +57 -0
- package/dist/core/compose/features/throttle.d.ts +75 -0
- package/dist/core/compose/features/track.d.ts +42 -0
- package/dist/core/compose/features/variant.d.ts +17 -0
- package/dist/core/compose/features/withEvents.d.ts +45 -0
- package/dist/core/compose/index.d.ts +17 -0
- package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
- package/dist/core/compose/utils/type-guards.d.ts +27 -0
- package/dist/core/composition/features/dom.d.ts +19 -0
- package/dist/core/composition/features/icon.d.ts +45 -0
- package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
- package/dist/core/composition/features/label.d.ts +49 -0
- package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
- package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
- package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +34 -82
- package/dist/core/config.d.ts +130 -0
- package/{src/core/dom/attributes.ts → dist/core/dom/attributes.d.ts} +2 -13
- package/dist/core/dom/classes.d.ts +42 -0
- package/dist/core/dom/create.d.ts +124 -0
- package/dist/core/dom/events.d.ts +69 -0
- package/{src/core/dom/index.ts → dist/core/dom/index.d.ts} +1 -5
- package/dist/core/dom/utils.d.ts +42 -0
- package/dist/core/gestures/index.d.ts +12 -0
- package/dist/core/gestures/longpress.d.ts +23 -0
- package/dist/core/gestures/manager.d.ts +14 -0
- package/dist/core/gestures/pan.d.ts +12 -0
- package/dist/core/gestures/pinch.d.ts +14 -0
- package/dist/core/gestures/rotate.d.ts +14 -0
- package/dist/core/gestures/swipe.d.ts +20 -0
- package/dist/core/gestures/tap.d.ts +12 -0
- package/dist/core/gestures/types.d.ts +320 -0
- package/dist/core/gestures/utils.d.ts +57 -0
- package/dist/core/index.d.ts +29 -0
- package/dist/core/layout/array.d.ts +15 -0
- package/dist/core/layout/config.d.ts +32 -0
- package/dist/core/layout/create.d.ts +14 -0
- package/dist/core/layout/index.d.ts +13 -0
- package/dist/core/layout/jsx.d.ts +13 -0
- package/dist/core/layout/object.d.ts +14 -0
- package/dist/core/layout/processor.d.ts +28 -0
- package/dist/core/layout/result.d.ts +12 -0
- package/dist/core/layout/template.d.ts +12 -0
- package/dist/core/layout/types.d.ts +137 -0
- package/dist/core/layout/utils.d.ts +38 -0
- package/dist/core/state/disabled.d.ts +32 -0
- package/dist/core/state/emitter.d.ts +40 -0
- package/dist/core/state/events.d.ts +36 -0
- package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
- package/dist/core/state/lifecycle.d.ts +57 -0
- package/dist/core/state/store.d.ts +82 -0
- package/dist/core/utils/background.d.ts +40 -0
- package/dist/core/utils/index.d.ts +23 -0
- package/dist/core/utils/mobile.d.ts +54 -0
- package/dist/core/utils/object.d.ts +13 -0
- package/dist/core/utils/performance.d.ts +79 -0
- package/dist/core/utils/validate.d.ts +73 -0
- package/dist/index.cjs +64 -0
- package/dist/index.cjs.map +285 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +53 -14854
- package/dist/index.js.map +285 -0
- package/dist/package.json +39 -0
- package/dist/styles.css +7 -0
- package/package.json +24 -5
- package/.env +0 -15
- package/.typedocignore +0 -11
- package/CONTRIBUTING.md +0 -218
- package/DOCS.md +0 -153
- package/TESTING.md +0 -214
- package/git-user-stats.js +0 -545
- package/index.ts +0 -10
- package/src/components/badge/api.ts +0 -313
- package/src/components/badge/config.ts +0 -153
- package/src/components/badge/features.ts +0 -194
- package/src/components/badge/index.ts +0 -90
- package/src/components/badge/types.ts +0 -279
- package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
- package/src/components/bottom-app-bar/config.ts +0 -29
- package/src/components/bottom-app-bar/types.ts +0 -114
- package/src/components/button/api.ts +0 -172
- package/src/components/button/button.ts +0 -112
- package/src/components/button/config.ts +0 -96
- package/src/components/button/index.ts +0 -37
- package/src/components/button/types.ts +0 -290
- package/src/components/card/api.ts +0 -222
- package/src/components/card/config.ts +0 -304
- package/src/components/card/content.ts +0 -343
- package/src/components/card/features.ts +0 -407
- package/src/components/card/types.ts +0 -497
- package/src/components/carousel/api.ts +0 -147
- package/src/components/carousel/carousel.ts +0 -242
- package/src/components/carousel/config.ts +0 -91
- package/src/components/carousel/constants.ts +0 -181
- package/src/components/carousel/features/drag.ts +0 -388
- package/src/components/carousel/features/slides.ts +0 -682
- package/src/components/carousel/types.ts +0 -327
- package/src/components/checkbox/api.ts +0 -82
- package/src/components/checkbox/checkbox.ts +0 -142
- package/src/components/checkbox/config.ts +0 -89
- package/src/components/checkbox/types.ts +0 -342
- package/src/components/chips/api.ts +0 -194
- package/src/components/chips/chip/api.ts +0 -233
- package/src/components/chips/chip/chip.ts +0 -131
- package/src/components/chips/chip/config.ts +0 -91
- package/src/components/chips/chip/index.ts +0 -3
- package/src/components/chips/chips.md +0 -481
- package/src/components/chips/chips.ts +0 -75
- package/src/components/chips/config.ts +0 -109
- package/src/components/chips/constants.ts +0 -61
- package/src/components/chips/features/chip-items.ts +0 -33
- package/src/components/chips/features/container.ts +0 -77
- package/src/components/chips/features/controller.ts +0 -448
- package/src/components/chips/features/label.ts +0 -108
- package/src/components/chips/index.ts +0 -11
- package/src/components/chips/schema.ts +0 -61
- package/src/components/chips/types.ts +0 -469
- package/src/components/datepicker/api.ts +0 -265
- package/src/components/datepicker/config.ts +0 -141
- package/src/components/datepicker/datepicker.ts +0 -341
- package/src/components/datepicker/index.ts +0 -12
- package/src/components/datepicker/render.ts +0 -450
- package/src/components/datepicker/types.ts +0 -397
- package/src/components/datepicker/utils.ts +0 -289
- package/src/components/dialog/api.ts +0 -317
- package/src/components/dialog/config.ts +0 -116
- package/src/components/dialog/features.ts +0 -907
- package/src/components/dialog/index.ts +0 -141
- package/src/components/dialog/types.ts +0 -553
- package/src/components/divider/config.ts +0 -165
- package/src/components/divider/features.ts +0 -233
- package/src/components/divider/types.ts +0 -132
- package/src/components/extended-fab/api.ts +0 -193
- package/src/components/extended-fab/config.ts +0 -140
- package/src/components/extended-fab/extended-fab.ts +0 -153
- package/src/components/extended-fab/types.ts +0 -749
- package/src/components/fab/api.ts +0 -137
- package/src/components/fab/config.ts +0 -121
- package/src/components/fab/types.ts +0 -615
- package/src/components/list/api.ts +0 -82
- package/src/components/list/config.ts +0 -63
- package/src/components/list/features.ts +0 -229
- package/src/components/list/index.ts +0 -67
- package/src/components/list/list-item.ts +0 -163
- package/src/components/list/list.ts +0 -108
- package/src/components/list/types.ts +0 -396
- package/src/components/list/utils.ts +0 -98
- package/src/components/menu/api.ts +0 -193
- package/src/components/menu/config.ts +0 -125
- package/src/components/menu/features/anchor.ts +0 -243
- package/src/components/menu/features/controller.ts +0 -1167
- package/src/components/menu/features/index.ts +0 -5
- package/src/components/menu/features/position.ts +0 -353
- package/src/components/menu/menu.ts +0 -119
- package/src/components/menu/types.ts +0 -379
- package/src/components/navigation/api.ts +0 -142
- package/src/components/navigation/config.ts +0 -73
- package/src/components/navigation/features/controller.ts +0 -273
- package/src/components/navigation/features/items.ts +0 -353
- package/src/components/navigation/index.ts +0 -11
- package/src/components/navigation/nav-item.ts +0 -196
- package/src/components/navigation/navigation.ts +0 -115
- package/src/components/navigation/system/core.ts +0 -302
- package/src/components/navigation/system/events.ts +0 -240
- package/src/components/navigation/system/index.ts +0 -184
- package/src/components/navigation/system/mobile.ts +0 -278
- package/src/components/navigation/system/state.ts +0 -77
- package/src/components/navigation/system/types.ts +0 -364
- package/src/components/navigation/types.ts +0 -292
- package/src/components/progress/api.ts +0 -178
- package/src/components/progress/config.ts +0 -122
- package/src/components/progress/index.ts +0 -4
- package/src/components/progress/progress.ts +0 -159
- package/src/components/progress/types.ts +0 -255
- package/src/components/radios/api.ts +0 -125
- package/src/components/radios/config.ts +0 -59
- package/src/components/radios/constants.ts +0 -19
- package/src/components/radios/index.ts +0 -3
- package/src/components/radios/radio.ts +0 -292
- package/src/components/radios/radios.ts +0 -43
- package/src/components/radios/types.ts +0 -219
- package/src/components/search/api.ts +0 -203
- package/src/components/search/config.ts +0 -86
- package/src/components/search/features/search.ts +0 -717
- package/src/components/search/features/states.ts +0 -169
- package/src/components/search/features/structure.ts +0 -197
- package/src/components/search/index.ts +0 -7
- package/src/components/search/search.ts +0 -52
- package/src/components/search/types.ts +0 -175
- package/src/components/segmented-button/config.ts +0 -119
- package/src/components/segmented-button/index.ts +0 -4
- package/src/components/segmented-button/segment.ts +0 -108
- package/src/components/segmented-button/segmented-button.ts +0 -361
- package/src/components/segmented-button/types.ts +0 -306
- package/src/components/select/api.ts +0 -78
- package/src/components/select/config.ts +0 -76
- package/src/components/select/features.ts +0 -317
- package/src/components/select/select.ts +0 -73
- package/src/components/select/types.ts +0 -355
- package/src/components/sheet/api.ts +0 -96
- package/src/components/sheet/config.ts +0 -65
- package/src/components/sheet/features/content.ts +0 -51
- package/src/components/sheet/features/gestures.ts +0 -177
- package/src/components/sheet/features/position.ts +0 -41
- package/src/components/sheet/features/state.ts +0 -116
- package/src/components/sheet/features/title.ts +0 -86
- package/src/components/sheet/index.ts +0 -12
- package/src/components/sheet/sheet.ts +0 -56
- package/src/components/sheet/types.ts +0 -294
- package/src/components/slider/accessibility.md +0 -59
- package/src/components/slider/api.ts +0 -192
- package/src/components/slider/config.ts +0 -118
- package/src/components/slider/features/controller.ts +0 -737
- package/src/components/slider/features/handlers.ts +0 -497
- package/src/components/slider/features/index.ts +0 -5
- package/src/components/slider/features/range.ts +0 -104
- package/src/components/slider/features/states.ts +0 -195
- package/src/components/slider/index.ts +0 -17
- package/src/components/slider/schema.ts +0 -141
- package/src/components/slider/slider.ts +0 -76
- package/src/components/slider/types.ts +0 -223
- package/src/components/snackbar/api.ts +0 -162
- package/src/components/snackbar/config.ts +0 -61
- package/src/components/snackbar/features.ts +0 -76
- package/src/components/snackbar/index.ts +0 -9
- package/src/components/snackbar/position.ts +0 -79
- package/src/components/snackbar/queue.ts +0 -76
- package/src/components/snackbar/snackbar.ts +0 -60
- package/src/components/snackbar/types.ts +0 -159
- package/src/components/switch/api.ts +0 -93
- package/src/components/switch/config.ts +0 -56
- package/src/components/switch/features.ts +0 -198
- package/src/components/switch/index.ts +0 -8
- package/src/components/switch/switch.ts +0 -52
- package/src/components/switch/types.ts +0 -168
- package/src/components/tabs/api.ts +0 -221
- package/src/components/tabs/config.ts +0 -73
- package/src/components/tabs/features.ts +0 -403
- package/src/components/tabs/index.ts +0 -46
- package/src/components/tabs/indicator.ts +0 -285
- package/src/components/tabs/responsive.ts +0 -144
- package/src/components/tabs/scroll-indicators.ts +0 -149
- package/src/components/tabs/state.ts +0 -186
- package/src/components/tabs/tab-api.ts +0 -266
- package/src/components/tabs/tab.ts +0 -267
- package/src/components/tabs/tabs.ts +0 -71
- package/src/components/tabs/types.ts +0 -461
- package/src/components/tabs/utils.ts +0 -107
- package/src/components/textfield/api.ts +0 -197
- package/src/components/textfield/config.ts +0 -52
- package/src/components/textfield/features/leading-icon.ts +0 -127
- package/src/components/textfield/features/placement.ts +0 -149
- package/src/components/textfield/features/prefix-text.ts +0 -107
- package/src/components/textfield/features/suffix-text.ts +0 -100
- package/src/components/textfield/features/supporting-text.ts +0 -113
- package/src/components/textfield/features/trailing-icon.ts +0 -108
- package/src/components/textfield/index.ts +0 -9
- package/src/components/textfield/textfield.ts +0 -92
- package/src/components/textfield/types.ts +0 -265
- package/src/components/timepicker/README.md +0 -277
- package/src/components/timepicker/api.ts +0 -632
- package/src/components/timepicker/clockdial.ts +0 -479
- package/src/components/timepicker/config.ts +0 -228
- package/src/components/timepicker/index.ts +0 -3
- package/src/components/timepicker/render.ts +0 -613
- package/src/components/timepicker/timepicker.ts +0 -117
- package/src/components/timepicker/types.ts +0 -336
- package/src/components/timepicker/utils.ts +0 -241
- package/src/components/tooltip/api.ts +0 -415
- package/src/components/tooltip/config.ts +0 -80
- package/src/components/tooltip/index.ts +0 -12
- package/src/components/tooltip/tooltip.ts +0 -60
- package/src/components/tooltip/types.ts +0 -223
- package/src/components/top-app-bar/config.ts +0 -83
- package/src/components/top-app-bar/top-app-bar.ts +0 -316
- package/src/components/top-app-bar/types.ts +0 -140
- package/src/core/build/constants.ts +0 -48
- package/src/core/build/icon.ts +0 -137
- package/src/core/build/ripple.ts +0 -193
- package/src/core/build/text.ts +0 -91
- package/src/core/collection/adapters/base.ts +0 -62
- package/src/core/collection/adapters/route.ts +0 -201
- package/src/core/collection/collection.ts +0 -300
- package/src/core/collection/index.ts +0 -57
- package/src/core/collection/list-manager.ts +0 -333
- package/src/core/compose/base.ts +0 -43
- package/src/core/compose/component.ts +0 -255
- package/src/core/compose/features/badge.ts +0 -79
- package/src/core/compose/features/checkable.ts +0 -155
- package/src/core/compose/features/disabled.ts +0 -116
- package/src/core/compose/features/events.ts +0 -65
- package/src/core/compose/features/icon.ts +0 -71
- package/src/core/compose/features/input.ts +0 -174
- package/src/core/compose/features/lifecycle.ts +0 -139
- package/src/core/compose/features/position.ts +0 -94
- package/src/core/compose/features/ripple.ts +0 -58
- package/src/core/compose/features/size.ts +0 -29
- package/src/core/compose/features/style.ts +0 -31
- package/src/core/compose/features/text.ts +0 -44
- package/src/core/compose/features/textinput.ts +0 -238
- package/src/core/compose/features/textlabel.ts +0 -113
- package/src/core/compose/features/track.ts +0 -84
- package/src/core/compose/features/variant.ts +0 -29
- package/src/core/compose/features/withEvents.ts +0 -137
- package/src/core/compose/index.ts +0 -54
- package/src/core/composition/features/dom.ts +0 -45
- package/src/core/composition/features/icon.ts +0 -131
- package/src/core/composition/features/label.ts +0 -155
- package/src/core/config.ts +0 -211
- package/src/core/dom/classes.ts +0 -132
- package/src/core/dom/create.ts +0 -273
- package/src/core/dom/events.ts +0 -209
- package/src/core/dom/utils.ts +0 -97
- package/src/core/index.ts +0 -111
- package/src/core/layout/README.md +0 -715
- package/src/core/layout/array.ts +0 -180
- package/src/core/layout/config.ts +0 -193
- package/src/core/layout/create.ts +0 -54
- package/src/core/layout/index.ts +0 -36
- package/src/core/layout/object.ts +0 -123
- package/src/core/layout/processor.ts +0 -106
- package/src/core/layout/result.ts +0 -84
- package/src/core/layout/types.ts +0 -180
- package/src/core/layout/utils.ts +0 -144
- package/src/core/state/disabled.ts +0 -81
- package/src/core/state/emitter.ts +0 -94
- package/src/core/state/events.ts +0 -88
- package/src/core/state/lifecycle.ts +0 -131
- package/src/core/state/store.ts +0 -197
- package/src/core/utils/index.ts +0 -45
- package/src/core/utils/mobile.ts +0 -98
- package/src/core/utils/object.ts +0 -41
- package/src/core/utils/validate.ts +0 -234
- package/src/index.ts +0 -134
- package/src/styles/abstract/_base.scss +0 -2
- package/src/styles/abstract/_config.scss +0 -28
- package/src/styles/abstract/_functions.scss +0 -124
- package/src/styles/abstract/_mixins.scss +0 -352
- package/src/styles/abstract/_theme.scss +0 -269
- package/src/styles/abstract/_variables.scss +0 -305
- package/src/styles/base/_reset.scss +0 -86
- package/src/styles/base/_typography.scss +0 -155
- package/src/styles/components/_badge.scss +0 -182
- package/src/styles/components/_bottom-app-bar.scss +0 -103
- package/src/styles/components/_button.scss +0 -224
- package/src/styles/components/_card.scss +0 -401
- package/src/styles/components/_carousel.scss +0 -645
- package/src/styles/components/_checkbox.scss +0 -231
- package/src/styles/components/_chips.scss +0 -638
- package/src/styles/components/_datepicker.scss +0 -358
- package/src/styles/components/_dialog.scss +0 -259
- package/src/styles/components/_divider.scss +0 -57
- package/src/styles/components/_extended-fab.scss +0 -267
- package/src/styles/components/_fab.scss +0 -225
- package/src/styles/components/_list.scss +0 -248
- package/src/styles/components/_menu.scss +0 -248
- package/src/styles/components/_navigation-mobile.scss +0 -244
- package/src/styles/components/_navigation-system.scss +0 -151
- package/src/styles/components/_navigation.scss +0 -407
- package/src/styles/components/_progress.scss +0 -151
- package/src/styles/components/_radios.scss +0 -187
- package/src/styles/components/_search.scss +0 -306
- package/src/styles/components/_segmented-button.scss +0 -227
- package/src/styles/components/_select.scss +0 -265
- package/src/styles/components/_sheet.scss +0 -236
- package/src/styles/components/_slider.scss +0 -489
- package/src/styles/components/_snackbar.scss +0 -211
- package/src/styles/components/_switch.scss +0 -298
- package/src/styles/components/_tabs.scss +0 -416
- package/src/styles/components/_textfield.scss +0 -773
- package/src/styles/components/_timepicker.scss +0 -451
- package/src/styles/components/_tooltip.scss +0 -241
- package/src/styles/components/_top-app-bar.scss +0 -225
- package/src/styles/main.scss +0 -175
- package/src/styles/themes/_autumn.scss +0 -105
- package/src/styles/themes/_base-theme.scss +0 -85
- package/src/styles/themes/_baseline.scss +0 -173
- package/src/styles/themes/_bluekhaki.scss +0 -125
- package/src/styles/themes/_brownbeige.scss +0 -125
- package/src/styles/themes/_browngreen.scss +0 -125
- package/src/styles/themes/_forest.scss +0 -77
- package/src/styles/themes/_greenbeige.scss +0 -125
- package/src/styles/themes/_index.scss +0 -6
- package/src/styles/themes/_material.scss +0 -125
- package/src/styles/themes/_ocean.scss +0 -77
- package/src/styles/themes/_sageivory.scss +0 -125
- package/src/styles/themes/_spring.scss +0 -77
- package/src/styles/themes/_summer.scss +0 -87
- package/src/styles/themes/_sunset.scss +0 -60
- package/src/styles/themes/_tealcaramel.scss +0 -125
- package/src/styles/themes/_winter.scss +0 -77
- package/src/styles/utilities/_colors.scss +0 -154
- package/src/styles/utilities/_flexbox.scss +0 -194
- package/src/styles/utilities/_layout.scss +0 -665
- package/src/styles/utilities/_ripple.scss +0 -79
- package/src/styles/utilities/_spacing.scss +0 -139
- package/src/styles/utilities/_typography.scss +0 -178
- package/src/styles/utilities/_visibility.scss +0 -142
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/layout/template
|
|
3
|
+
* @description Template literal-based layout creation without compilation requirements
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Tagged template function for creating layouts
|
|
7
|
+
*/
|
|
8
|
+
export declare function html(strings: TemplateStringsArray, ...values: any[]): any;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a layout from a template literal
|
|
11
|
+
*/
|
|
12
|
+
export declare function createTemplateLayout(templateResult: any[], parentElement?: HTMLElement | null): import("./types").LayoutResult;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/layout
|
|
3
|
+
* @description Type definitions for layout creation system
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Layout configuration options
|
|
7
|
+
*/
|
|
8
|
+
export interface LayoutConfig {
|
|
9
|
+
/** Base layout type */
|
|
10
|
+
type?: 'stack' | 'row' | 'grid' | string;
|
|
11
|
+
/** Spacing between elements */
|
|
12
|
+
gap?: number | string;
|
|
13
|
+
/** Additional CSS classes */
|
|
14
|
+
class?: string;
|
|
15
|
+
/** Alignment of items along the cross axis */
|
|
16
|
+
align?: 'start' | 'center' | 'end' | 'stretch';
|
|
17
|
+
/** Alignment of items along the main axis */
|
|
18
|
+
justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
|
|
19
|
+
/** Whether and how items should wrap */
|
|
20
|
+
wrap?: boolean | 'reverse' | 'nowrap';
|
|
21
|
+
/** Whether row items should stack vertically on mobile */
|
|
22
|
+
mobileStack?: boolean;
|
|
23
|
+
/** Whether row items should scroll horizontally on mobile */
|
|
24
|
+
mobileScroll?: boolean;
|
|
25
|
+
/** Number of columns or automatic sizing method */
|
|
26
|
+
columns?: number | 'auto-fit' | 'auto-fill';
|
|
27
|
+
/** Minimum item width for grid layouts */
|
|
28
|
+
minWidth?: string | number;
|
|
29
|
+
/** Whether to use dense packing algorithm for grid */
|
|
30
|
+
dense?: boolean;
|
|
31
|
+
/** Whether grid items should adjust height automatically */
|
|
32
|
+
autoHeight?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Configuration for individual layout items
|
|
36
|
+
*/
|
|
37
|
+
export interface LayoutItemConfig {
|
|
38
|
+
/** Column width in a 12-column grid */
|
|
39
|
+
width?: number;
|
|
40
|
+
/** Width on small screens */
|
|
41
|
+
sm?: number;
|
|
42
|
+
/** Width on medium screens */
|
|
43
|
+
md?: number;
|
|
44
|
+
/** Width on large screens */
|
|
45
|
+
lg?: number;
|
|
46
|
+
/** Width on extra-large screens */
|
|
47
|
+
xl?: number;
|
|
48
|
+
/** Number of grid columns to span */
|
|
49
|
+
span?: number;
|
|
50
|
+
/** Number of grid rows to span */
|
|
51
|
+
rowSpan?: number;
|
|
52
|
+
/** Display order */
|
|
53
|
+
order?: number | 'first' | 'last';
|
|
54
|
+
/** Self-alignment within container */
|
|
55
|
+
align?: 'start' | 'center' | 'end' | 'stretch';
|
|
56
|
+
/** Whether item should automatically size */
|
|
57
|
+
auto?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Interface for component-like objects
|
|
61
|
+
*/
|
|
62
|
+
export interface ComponentLike {
|
|
63
|
+
/** DOM element reference */
|
|
64
|
+
element: HTMLElement;
|
|
65
|
+
/** Optional method to clean up resources */
|
|
66
|
+
destroy?: () => void;
|
|
67
|
+
/** Allow additional properties */
|
|
68
|
+
[key: string]: any;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Extended options for element creation
|
|
72
|
+
*/
|
|
73
|
+
export interface ElementOptions extends Record<string, any> {
|
|
74
|
+
/** Layout configuration for the element */
|
|
75
|
+
layout?: LayoutConfig;
|
|
76
|
+
/** Layout item configuration */
|
|
77
|
+
layoutItem?: LayoutItemConfig;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Definition for a single element in the layout
|
|
81
|
+
*/
|
|
82
|
+
export interface ElementDefinition {
|
|
83
|
+
/** Optional name to reference the element */
|
|
84
|
+
name?: string;
|
|
85
|
+
/** Creator function that produces an HTMLElement or ComponentLike */
|
|
86
|
+
creator?: (options?: Record<string, any>) => HTMLElement | ComponentLike;
|
|
87
|
+
/** Options to pass to the creator function */
|
|
88
|
+
options?: ElementOptions;
|
|
89
|
+
/** Child elements to create and attach */
|
|
90
|
+
children?: Record<string, ElementDefinition>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Schema for layout creation
|
|
94
|
+
*/
|
|
95
|
+
export interface Schema {
|
|
96
|
+
/** Root element definition */
|
|
97
|
+
element?: ElementDefinition;
|
|
98
|
+
/** Additional elements */
|
|
99
|
+
[key: string]: ElementDefinition | undefined;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Options for layout creation
|
|
103
|
+
*/
|
|
104
|
+
export interface LayoutOptions {
|
|
105
|
+
/** Default creator function to use if not specified in schema */
|
|
106
|
+
creator?: (options?: Record<string, any>) => HTMLElement | ComponentLike;
|
|
107
|
+
/** Whether to apply CSS class prefix @default true */
|
|
108
|
+
prefix?: boolean;
|
|
109
|
+
/** Additional options */
|
|
110
|
+
[key: string]: any;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Result object returned after creating a layout
|
|
114
|
+
*/
|
|
115
|
+
export interface LayoutResult {
|
|
116
|
+
/** The raw layout object with all components */
|
|
117
|
+
layout: Record<string, any>;
|
|
118
|
+
/** Reference to the root element for convenience */
|
|
119
|
+
element: HTMLElement | ComponentLike;
|
|
120
|
+
/** Flattened component map */
|
|
121
|
+
component: Record<string, any>;
|
|
122
|
+
/**
|
|
123
|
+
* Gets a component by name
|
|
124
|
+
* @param name - Component name
|
|
125
|
+
* @returns Component if found, null otherwise
|
|
126
|
+
*/
|
|
127
|
+
get(name: string): any;
|
|
128
|
+
/**
|
|
129
|
+
* Gets all components in a flattened map
|
|
130
|
+
* @returns Object with all components
|
|
131
|
+
*/
|
|
132
|
+
getAll(): Record<string, any>;
|
|
133
|
+
/**
|
|
134
|
+
* Destroys the layout, cleaning up all components
|
|
135
|
+
*/
|
|
136
|
+
destroy(): void;
|
|
137
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/layout
|
|
3
|
+
* @description Utility functions for layout creation
|
|
4
|
+
*/
|
|
5
|
+
import { ComponentLike } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Checks if a value is a component object (has an element property)
|
|
8
|
+
*
|
|
9
|
+
* @param value - Value to check
|
|
10
|
+
* @returns True if the value is a component-like object
|
|
11
|
+
*/
|
|
12
|
+
export declare function isComponent(value: any): value is ComponentLike;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a document fragment for faster DOM operations
|
|
15
|
+
*
|
|
16
|
+
* @returns New DocumentFragment
|
|
17
|
+
*/
|
|
18
|
+
export declare function createFragment(): DocumentFragment;
|
|
19
|
+
/**
|
|
20
|
+
* Normalizes class values into an array of strings
|
|
21
|
+
*/
|
|
22
|
+
export declare function normalizeClasses(...classes: (string | string[])[]): string[];
|
|
23
|
+
/**
|
|
24
|
+
* Processes className options to add prefix if needed
|
|
25
|
+
*
|
|
26
|
+
* @param options - Element options
|
|
27
|
+
* @param skipPrefix - Whether to skip adding prefixes
|
|
28
|
+
* @param useBEM - Whether to respect BEM naming conventions
|
|
29
|
+
* @returns Updated options with prefixed classNames
|
|
30
|
+
*/
|
|
31
|
+
export declare function processClassNames(options: Record<string, any>, skipPrefix?: boolean, useBEM?: boolean): Record<string, any>;
|
|
32
|
+
/**
|
|
33
|
+
* Flattens a nested layout into a simple object with element and component references
|
|
34
|
+
*
|
|
35
|
+
* @param layout - Layout object
|
|
36
|
+
* @returns Flattened layout with all elements and components
|
|
37
|
+
*/
|
|
38
|
+
export declare function flattenLayout(layout: Record<string, any>): Record<string, any>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disabled state manager interface
|
|
3
|
+
*/
|
|
4
|
+
export interface DisabledState {
|
|
5
|
+
/**
|
|
6
|
+
* Enables the element
|
|
7
|
+
* @returns DisabledState instance for chaining
|
|
8
|
+
*/
|
|
9
|
+
enable(): DisabledState;
|
|
10
|
+
/**
|
|
11
|
+
* Disables the element
|
|
12
|
+
* @returns DisabledState instance for chaining
|
|
13
|
+
*/
|
|
14
|
+
disable(): DisabledState;
|
|
15
|
+
/**
|
|
16
|
+
* Toggles the disabled state
|
|
17
|
+
* @returns DisabledState instance for chaining
|
|
18
|
+
*/
|
|
19
|
+
toggle(): DisabledState;
|
|
20
|
+
/**
|
|
21
|
+
* Checks if the element is disabled
|
|
22
|
+
* @returns true if disabled
|
|
23
|
+
*/
|
|
24
|
+
isDisabled(): boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Creates a controller for managing the disabled state of an element
|
|
28
|
+
*
|
|
29
|
+
* @param element - The element to control
|
|
30
|
+
* @returns Disabled state controller
|
|
31
|
+
*/
|
|
32
|
+
export declare const createDisabled: (element: HTMLElement) => DisabledState;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/state
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Type definition for event callback functions
|
|
6
|
+
*/
|
|
7
|
+
export type EventCallback = (...args: any[]) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Interface for the event emitter
|
|
10
|
+
*/
|
|
11
|
+
export interface Emitter {
|
|
12
|
+
/**
|
|
13
|
+
* Subscribe to an event
|
|
14
|
+
* @param event - Event name
|
|
15
|
+
* @param callback - Event handler
|
|
16
|
+
* @returns Unsubscribe function
|
|
17
|
+
*/
|
|
18
|
+
on(event: string, callback: EventCallback): () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Unsubscribe from an event
|
|
21
|
+
* @param event - Event name
|
|
22
|
+
* @param callback - Event handler to remove
|
|
23
|
+
*/
|
|
24
|
+
off(event: string, callback: EventCallback): void;
|
|
25
|
+
/**
|
|
26
|
+
* Emit an event
|
|
27
|
+
* @param event - Event name
|
|
28
|
+
* @param args - Event arguments
|
|
29
|
+
*/
|
|
30
|
+
emit(event: string, ...args: any[]): void;
|
|
31
|
+
/**
|
|
32
|
+
* Clear all event listeners
|
|
33
|
+
*/
|
|
34
|
+
clear(): void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Creates an event emitter with subscription management
|
|
38
|
+
* @returns Event emitter interface
|
|
39
|
+
*/
|
|
40
|
+
export declare const createEmitter: () => Emitter;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event manager interface for handling component events
|
|
3
|
+
*/
|
|
4
|
+
export interface EventManagerState {
|
|
5
|
+
/**
|
|
6
|
+
* Adds an event listener
|
|
7
|
+
* @param event - Event name
|
|
8
|
+
* @param handler - Event handler
|
|
9
|
+
* @returns EventManagerState instance for chaining
|
|
10
|
+
*/
|
|
11
|
+
on: (event: string, handler: (...args: any[]) => void) => EventManagerState;
|
|
12
|
+
/**
|
|
13
|
+
* Removes an event listener
|
|
14
|
+
* @param event - Event name
|
|
15
|
+
* @param handler - Event handler
|
|
16
|
+
* @returns EventManagerState instance for chaining
|
|
17
|
+
*/
|
|
18
|
+
off: (event: string, handler: (...args: any[]) => void) => EventManagerState;
|
|
19
|
+
/**
|
|
20
|
+
* Removes all event listeners and cleans up
|
|
21
|
+
*/
|
|
22
|
+
destroy: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* Gets all active handlers
|
|
25
|
+
* @returns Map of event names to handlers
|
|
26
|
+
*/
|
|
27
|
+
getHandlers: () => Map<(...args: any[]) => void, string>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates an event manager for a component
|
|
31
|
+
* Simple event handling mechanism for components
|
|
32
|
+
*
|
|
33
|
+
* @param element - Component's DOM element
|
|
34
|
+
* @returns Event manager interface
|
|
35
|
+
*/
|
|
36
|
+
export declare const createEventManager: (element: HTMLElement) => EventManagerState;
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
// src/core/state/index.ts
|
|
2
|
-
|
|
3
1
|
export { createEmitter } from './emitter';
|
|
4
2
|
export type { Emitter, EventCallback } from './emitter';
|
|
5
|
-
|
|
6
3
|
export { createStore, loggingMiddleware, deriveFiltered } from './store';
|
|
7
4
|
export type { Store, StoreOptions, Selector, Computation, Updater } from './store';
|
|
8
|
-
|
|
9
5
|
export { createLifecycle } from './lifecycle';
|
|
10
6
|
export type { LifecycleManager, LifecycleManagers } from './lifecycle';
|
|
11
|
-
|
|
12
7
|
export { createDisabled } from './disabled';
|
|
13
8
|
export type { DisabledState } from './disabled';
|
|
14
|
-
|
|
15
9
|
export { createEventManager } from './events';
|
|
16
|
-
export type { EventManagerState } from './events';
|
|
10
|
+
export type { EventManagerState } from './events';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component managers that can be managed by the lifecycle
|
|
3
|
+
*/
|
|
4
|
+
export interface LifecycleManagers {
|
|
5
|
+
events?: {
|
|
6
|
+
destroy: () => void;
|
|
7
|
+
};
|
|
8
|
+
text?: {
|
|
9
|
+
getElement: () => HTMLElement | null;
|
|
10
|
+
};
|
|
11
|
+
icon?: {
|
|
12
|
+
getElement: () => HTMLElement | null;
|
|
13
|
+
};
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Lifecycle manager interface
|
|
18
|
+
*/
|
|
19
|
+
export interface LifecycleManager {
|
|
20
|
+
/**
|
|
21
|
+
* Registers a handler for mount event
|
|
22
|
+
* @param handler - Function to call when component is mounted
|
|
23
|
+
* @returns Unsubscribe function
|
|
24
|
+
*/
|
|
25
|
+
onMount: (handler: () => void) => () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Registers a handler for unmount event
|
|
28
|
+
* @param handler - Function to call when component is unmounted
|
|
29
|
+
* @returns Unsubscribe function
|
|
30
|
+
*/
|
|
31
|
+
onUnmount: (handler: () => void) => () => void;
|
|
32
|
+
/**
|
|
33
|
+
* Mounts the component
|
|
34
|
+
*/
|
|
35
|
+
mount: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Unmounts the component
|
|
38
|
+
*/
|
|
39
|
+
unmount: () => void;
|
|
40
|
+
/**
|
|
41
|
+
* Checks if component is mounted
|
|
42
|
+
* @returns true if mounted
|
|
43
|
+
*/
|
|
44
|
+
isMounted: () => boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Destroys the component
|
|
47
|
+
*/
|
|
48
|
+
destroy: () => void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates a lifecycle manager for a component
|
|
52
|
+
*
|
|
53
|
+
* @param element - Component's DOM element
|
|
54
|
+
* @param managers - Optional component managers to integrate with lifecycle
|
|
55
|
+
* @returns Lifecycle manager interface
|
|
56
|
+
*/
|
|
57
|
+
export declare const createLifecycle: (element: HTMLElement, managers?: LifecycleManagers) => LifecycleManager;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State store options
|
|
3
|
+
*/
|
|
4
|
+
export interface StoreOptions<T> {
|
|
5
|
+
/**
|
|
6
|
+
* Middleware functions that process state changes
|
|
7
|
+
*/
|
|
8
|
+
middleware?: Array<(newState: T, oldState: T) => T>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* State selector function type
|
|
12
|
+
*/
|
|
13
|
+
export type Selector<T, R> = (state: T) => R;
|
|
14
|
+
/**
|
|
15
|
+
* State computation function type for derived state
|
|
16
|
+
*/
|
|
17
|
+
export type Computation<T, R> = (state: T) => R;
|
|
18
|
+
/**
|
|
19
|
+
* State updater function type
|
|
20
|
+
*/
|
|
21
|
+
export type Updater<T> = (state: T) => T;
|
|
22
|
+
/**
|
|
23
|
+
* State store interface
|
|
24
|
+
*/
|
|
25
|
+
export interface Store<T> {
|
|
26
|
+
/**
|
|
27
|
+
* Gets current state including derived values
|
|
28
|
+
* @returns Current state
|
|
29
|
+
*/
|
|
30
|
+
getState: () => T;
|
|
31
|
+
/**
|
|
32
|
+
* Updates state
|
|
33
|
+
* @param update - State update object or updater function
|
|
34
|
+
*/
|
|
35
|
+
setState: (update: Partial<T> | Updater<T>) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Subscribes to state changes
|
|
38
|
+
* @param listener - Change listener
|
|
39
|
+
* @returns Unsubscribe function
|
|
40
|
+
*/
|
|
41
|
+
subscribe: (listener: (state: T, oldState: T) => void) => () => void;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a derived state value
|
|
44
|
+
* @param key - Derived state key
|
|
45
|
+
* @param computation - Function to compute derived value
|
|
46
|
+
* @returns Function to remove derived state
|
|
47
|
+
*/
|
|
48
|
+
derive: <K extends string, R>(key: K, computation: Computation<T, R>) => () => void;
|
|
49
|
+
/**
|
|
50
|
+
* Selects a specific slice of state
|
|
51
|
+
* @param selector - State selector function
|
|
52
|
+
* @returns Selected state
|
|
53
|
+
*/
|
|
54
|
+
select: <R>(selector: Selector<T, R>) => R;
|
|
55
|
+
/**
|
|
56
|
+
* Resets state to initial values
|
|
57
|
+
*/
|
|
58
|
+
reset: () => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Creates a state store with support for derived state and middleware
|
|
62
|
+
*
|
|
63
|
+
* @param initialState - Initial state object
|
|
64
|
+
* @param options - Store options
|
|
65
|
+
* @returns State store interface
|
|
66
|
+
*/
|
|
67
|
+
export declare const createStore: <T extends Record<string, any>>(initialState?: T, options?: StoreOptions<T>) => Store<T>;
|
|
68
|
+
/**
|
|
69
|
+
* Example middleware that logs state changes
|
|
70
|
+
*
|
|
71
|
+
* @param newState - New state after change
|
|
72
|
+
* @param oldState - Previous state before change
|
|
73
|
+
* @returns Processed state (unchanged in this middleware)
|
|
74
|
+
*/
|
|
75
|
+
export declare const loggingMiddleware: <T extends Record<string, any>>(newState: T, oldState: T) => T;
|
|
76
|
+
/**
|
|
77
|
+
* Creates a derived state selector for filtering objects
|
|
78
|
+
*
|
|
79
|
+
* @param predicate - Filter predicate function
|
|
80
|
+
* @returns Computation function for derived state
|
|
81
|
+
*/
|
|
82
|
+
export declare const deriveFiltered: <T>(predicate: (value: any, key: string) => boolean) => (state: Record<string, T>) => Record<string, T>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result interface for background color lookup
|
|
3
|
+
*/
|
|
4
|
+
export interface BackgroundResult {
|
|
5
|
+
/** The computed background color value */
|
|
6
|
+
color: string;
|
|
7
|
+
/** The element from which the color was obtained */
|
|
8
|
+
element: HTMLElement | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Gets the computed background color of an element or its ancestors.
|
|
12
|
+
* Recursively traverses the DOM tree upward until it finds a non-transparent background.
|
|
13
|
+
* Resolves CSS variables if used in background color.
|
|
14
|
+
*
|
|
15
|
+
* @param {HTMLElement} element - The starting element to check
|
|
16
|
+
* @param {number} [maxDepth=20] - Maximum number of parent levels to check
|
|
17
|
+
* @returns {BackgroundResult} Object containing the color and source element
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Get the inherited background color and its source element
|
|
21
|
+
* const { color, element: sourceElement } = getInheritedBackground(myElement);
|
|
22
|
+
* console.log(color); // 'rgb(255, 255, 255)' or '#1c2526' for dark mode
|
|
23
|
+
*
|
|
24
|
+
* // Observe the source element for changes
|
|
25
|
+
* if (sourceElement) {
|
|
26
|
+
* const observer = new MutationObserver(() => {
|
|
27
|
+
* const { color } = getInheritedBackground(myElement);
|
|
28
|
+
* myElement.style.backgroundColor = color;
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* observer.observe(sourceElement, { attributes: true, attributeFilter: ['style', 'class'] });
|
|
32
|
+
* }
|
|
33
|
+
*/
|
|
34
|
+
export declare const getInheritedBackground: (element: HTMLElement, maxDepth?: number) => BackgroundResult;
|
|
35
|
+
/**
|
|
36
|
+
* For backwards compatibility
|
|
37
|
+
* @deprecated Use getInheritedBackground instead
|
|
38
|
+
*/
|
|
39
|
+
export declare const getInheritedBG: (element: HTMLElement, maxDepth?: number) => string;
|
|
40
|
+
export default getInheritedBackground;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export { isObject, byString } from './object';
|
|
2
|
+
export { normalizeEvent, hasTouchSupport, TOUCH_CONFIG, PASSIVE_EVENTS } from './mobile';
|
|
3
|
+
export { getInheritedBackground } from './background';
|
|
4
|
+
export { throttle, debounce, once } from './performance';
|
|
5
|
+
/**
|
|
6
|
+
* Normalizes class names by handling various input formats
|
|
7
|
+
* @param {...(string|string[])} classes - Classes to normalize
|
|
8
|
+
* @returns {string[]} Array of unique, non-empty class names
|
|
9
|
+
*/
|
|
10
|
+
export declare const normalizeClasses: (...classes: (string | string[])[]) => string[];
|
|
11
|
+
/**
|
|
12
|
+
* Creates a transformer that only runs if a condition is met
|
|
13
|
+
* @param {Function} predicate - Condition to check
|
|
14
|
+
* @param {Function} transformer - Transformer to run if condition is true
|
|
15
|
+
* @returns {Function} Conditional transformer
|
|
16
|
+
*/
|
|
17
|
+
export declare const when: <T, C>(predicate: (obj: T, context: C) => boolean, transformer: (obj: T, context: C) => T) => (obj: T, context: C) => T;
|
|
18
|
+
/**
|
|
19
|
+
* Joins class names, filtering out falsy values
|
|
20
|
+
* @param {...(string | undefined | null | false)} classes - Class names to join
|
|
21
|
+
* @returns {string} Joined class names
|
|
22
|
+
*/
|
|
23
|
+
export declare const classNames: (...classes: (string | undefined | null | false)[]) => string;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mobile device detection and capability checks
|
|
3
|
+
* This provides a centralized way to handle mobile-specific features and behaviors
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Interface for normalized event properties
|
|
7
|
+
*/
|
|
8
|
+
export interface NormalizedEvent {
|
|
9
|
+
clientX: number;
|
|
10
|
+
clientY: number;
|
|
11
|
+
pageX: number;
|
|
12
|
+
pageY: number;
|
|
13
|
+
target: EventTarget;
|
|
14
|
+
preventDefault: () => void;
|
|
15
|
+
stopPropagation: () => void;
|
|
16
|
+
type: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Detects if the current device is likely a mobile device
|
|
20
|
+
* Uses a combination of user agent and screen size checks for reliability
|
|
21
|
+
*/
|
|
22
|
+
export declare const isMobileDevice: () => boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Options for passive event listeners
|
|
25
|
+
*/
|
|
26
|
+
export declare const PASSIVE_EVENTS: AddEventListenerOptions;
|
|
27
|
+
/**
|
|
28
|
+
* Configuration constants for mobile interactions
|
|
29
|
+
* Following WCAG guidelines and touch interaction best practices
|
|
30
|
+
*/
|
|
31
|
+
export declare const TOUCH_CONFIG: {
|
|
32
|
+
TARGET_SIZE: number;
|
|
33
|
+
FEEDBACK_DURATION: number;
|
|
34
|
+
TAP_THRESHOLD: number;
|
|
35
|
+
SWIPE_THRESHOLD: number;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Accessibility-minded touch target sizes
|
|
39
|
+
* Based on WCAG guidelines for touch targets
|
|
40
|
+
*/
|
|
41
|
+
export declare const TOUCH_TARGETS: {
|
|
42
|
+
MINIMUM: number;
|
|
43
|
+
COMFORTABLE: number;
|
|
44
|
+
LARGE: number;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Detects if the current device supports touch events
|
|
48
|
+
*/
|
|
49
|
+
export declare const hasTouchSupport: () => boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Normalizes both mouse and touch events into a consistent format
|
|
52
|
+
* This allows components to handle interactions uniformly
|
|
53
|
+
*/
|
|
54
|
+
export declare const normalizeEvent: (event: Event) => NormalizedEvent;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if a value is a plain object
|
|
3
|
+
* @param value - The value to check
|
|
4
|
+
* @returns true if the value is a plain object
|
|
5
|
+
*/
|
|
6
|
+
export declare const isObject: (value: unknown) => value is Record<string, any>;
|
|
7
|
+
/**
|
|
8
|
+
* Accesses a nested property of an object using a string path
|
|
9
|
+
* @param obj - The object to traverse
|
|
10
|
+
* @param path - The property path (e.g. 'user.address.street')
|
|
11
|
+
* @returns The value at the specified path or undefined if not found
|
|
12
|
+
*/
|
|
13
|
+
export declare const byString: <T extends Record<string, any>, R = any>(obj: T, path: string) => R | undefined;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/utils/performance
|
|
3
|
+
* @description Performance utilities for optimizing high-frequency event handlers
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Creates a throttled function that only invokes the provided function
|
|
7
|
+
* at most once per every specified wait milliseconds.
|
|
8
|
+
*
|
|
9
|
+
* Throttling ensures that the function executes at a regular interval,
|
|
10
|
+
* which is useful for limiting the rate of execution for expensive operations.
|
|
11
|
+
*
|
|
12
|
+
* @param {Function} fn - The function to throttle
|
|
13
|
+
* @param {number} wait - The number of milliseconds to throttle invocations to
|
|
14
|
+
* @param {Object} options - Configuration options
|
|
15
|
+
* @param {boolean} options.leading - Specify invoking on the leading edge of the timeout (default: true)
|
|
16
|
+
* @param {boolean} options.trailing - Specify invoking on the trailing edge of the timeout (default: true)
|
|
17
|
+
* @returns {Function} The throttled function
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Throttle scroll handler to execute at most once every 100ms
|
|
21
|
+
* const throttledScroll = throttle((e) => {
|
|
22
|
+
* updateScrollPosition(window.scrollY);
|
|
23
|
+
* }, 100);
|
|
24
|
+
*
|
|
25
|
+
* window.addEventListener('scroll', throttledScroll);
|
|
26
|
+
*/
|
|
27
|
+
export declare const throttle: <T extends (...args: any[]) => any>(fn: T, wait: number, options?: {
|
|
28
|
+
leading?: boolean;
|
|
29
|
+
trailing?: boolean;
|
|
30
|
+
}) => ((...args: Parameters<T>) => void);
|
|
31
|
+
/**
|
|
32
|
+
* Creates a debounced function that delays invoking the provided function
|
|
33
|
+
* until after the specified wait milliseconds have elapsed since the last time
|
|
34
|
+
* it was invoked.
|
|
35
|
+
*
|
|
36
|
+
* Debouncing groups multiple sequential calls into a single execution at the end,
|
|
37
|
+
* which is useful for handling rapid-fire events like resize or input.
|
|
38
|
+
*
|
|
39
|
+
* @param {Function} fn - The function to debounce
|
|
40
|
+
* @param {number} wait - The number of milliseconds to delay
|
|
41
|
+
* @param {Object} options - Configuration options
|
|
42
|
+
* @param {boolean} options.leading - Specify invoking on the leading edge of the timeout (default: false)
|
|
43
|
+
* @param {boolean} options.maxWait - Maximum time function can be delayed before execution in milliseconds
|
|
44
|
+
* @returns {Function} The debounced function
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* // Debounced search that executes 300ms after the user stops typing
|
|
48
|
+
* const debouncedSearch = debounce((query) => {
|
|
49
|
+
* performSearch(query);
|
|
50
|
+
* }, 300);
|
|
51
|
+
*
|
|
52
|
+
* searchInput.addEventListener('input', (e) => {
|
|
53
|
+
* debouncedSearch(e.target.value);
|
|
54
|
+
* });
|
|
55
|
+
*/
|
|
56
|
+
export declare const debounce: <T extends (...args: any[]) => any>(fn: T, wait: number, options?: {
|
|
57
|
+
leading?: boolean;
|
|
58
|
+
maxWait?: number;
|
|
59
|
+
}) => ((...args: Parameters<T>) => void);
|
|
60
|
+
/**
|
|
61
|
+
* Creates a function that is restricted to invoking the provided function once.
|
|
62
|
+
* Repeat calls to the function return the value of the first invocation.
|
|
63
|
+
*
|
|
64
|
+
* @param {Function} fn - The function to restrict
|
|
65
|
+
* @returns {Function} The restricted function
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* // Initialize app only once
|
|
69
|
+
* const initApp = once(() => {
|
|
70
|
+
* console.log('App initialized');
|
|
71
|
+
* setupEventListeners();
|
|
72
|
+
* loadInitialData();
|
|
73
|
+
* });
|
|
74
|
+
*
|
|
75
|
+
* // Can be called multiple times, but executes only once
|
|
76
|
+
* button1.addEventListener('click', initApp);
|
|
77
|
+
* button2.addEventListener('click', initApp);
|
|
78
|
+
*/
|
|
79
|
+
export declare const once: <T extends (...args: any[]) => any>(fn: T) => ((...args: Parameters<T>) => ReturnType<T>);
|