mtrl 0.3.8 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LICENSE +21 -0
- package/dist/README.md +324 -0
- package/dist/components/badge/api.d.ts +48 -0
- package/{src/components/badge/badge.ts → dist/components/badge/badge.d.ts} +14 -57
- package/dist/components/badge/config.d.ts +79 -0
- package/dist/components/badge/constants.d.ts +35 -0
- package/dist/components/badge/features.d.ts +36 -0
- package/dist/components/badge/index.d.ts +8 -0
- package/dist/components/badge/types.d.ts +256 -0
- package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +12 -0
- package/dist/components/bottom-app-bar/config.d.ts +16 -0
- package/dist/components/bottom-app-bar/constants.d.ts +22 -0
- package/{src/components/bottom-app-bar/index.ts → dist/components/bottom-app-bar/index.d.ts} +0 -9
- package/dist/components/bottom-app-bar/types.d.ts +96 -0
- package/dist/components/button/api.d.ts +47 -0
- package/dist/components/button/button.d.ts +25 -0
- package/dist/components/button/config.d.ts +59 -0
- package/dist/components/button/constants.d.ts +43 -0
- package/dist/components/button/index.d.ts +6 -0
- package/dist/components/button/types.d.ts +265 -0
- package/dist/components/card/api.d.ts +11 -0
- package/{src/components/card/card.ts → dist/components/card/card.d.ts} +10 -58
- package/dist/components/card/config.d.ts +105 -0
- package/dist/components/card/constants.d.ts +85 -0
- package/dist/components/card/content.d.ts +92 -0
- package/dist/components/card/features.d.ts +131 -0
- package/{src/components/card/index.ts → dist/components/card/index.d.ts} +13 -74
- package/dist/components/card/types.d.ts +471 -0
- package/dist/components/carousel/api.d.ts +33 -0
- package/dist/components/carousel/carousel.d.ts +75 -0
- package/dist/components/carousel/config.d.ts +45 -0
- package/dist/components/carousel/constants.d.ts +165 -0
- package/dist/components/carousel/features/drag.d.ts +8 -0
- package/{src/components/carousel/features/index.ts → dist/components/carousel/features/index.d.ts} +1 -4
- package/dist/components/carousel/features/slides.d.ts +8 -0
- package/{src/components/carousel/index.ts → dist/components/carousel/index.d.ts} +10 -29
- package/dist/components/carousel/types.d.ts +276 -0
- package/dist/components/checkbox/api.d.ts +7 -0
- package/dist/components/checkbox/checkbox.d.ts +65 -0
- package/dist/components/checkbox/config.d.ts +44 -0
- package/dist/components/checkbox/constants.d.ts +63 -0
- package/{src/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +8 -25
- package/dist/components/checkbox/types.d.ts +242 -0
- package/dist/components/chips/api.d.ts +49 -0
- package/dist/components/chips/chip/api.d.ts +23 -0
- package/dist/components/chips/chip/chip.d.ts +8 -0
- package/dist/components/chips/chip/config.d.ts +57 -0
- package/dist/components/chips/chip/constants.d.ts +38 -0
- package/dist/components/chips/chip/index.d.ts +2 -0
- package/dist/components/chips/chip/types.d.ts +11 -0
- package/dist/components/chips/chips.d.ts +17 -0
- package/dist/components/chips/config.d.ts +67 -0
- package/dist/components/chips/constants.d.ts +46 -0
- package/dist/components/chips/features/chip-items.d.ts +8 -0
- package/dist/components/chips/features/container.d.ts +8 -0
- package/dist/components/chips/features/controller.d.ts +9 -0
- package/{src/components/chips/features/index.ts → dist/components/chips/features/index.d.ts} +1 -2
- package/dist/components/chips/features/label.d.ts +8 -0
- package/dist/components/chips/index.d.ts +4 -0
- package/dist/components/chips/schema.d.ts +34 -0
- package/dist/components/chips/types.d.ts +398 -0
- package/dist/components/datepicker/api.d.ts +9 -0
- package/dist/components/datepicker/config.d.ts +79 -0
- package/dist/components/datepicker/constants.d.ts +97 -0
- package/dist/components/datepicker/datepicker.d.ts +8 -0
- package/dist/components/datepicker/index.d.ts +3 -0
- package/dist/components/datepicker/render.d.ts +43 -0
- package/dist/components/datepicker/types.d.ts +321 -0
- package/dist/components/datepicker/utils.d.ts +84 -0
- package/dist/components/dialog/api.d.ts +59 -0
- package/dist/components/dialog/config.d.ts +91 -0
- package/dist/components/dialog/constants.d.ts +116 -0
- package/{src/components/dialog/dialog.ts → dist/components/dialog/dialog.d.ts} +16 -69
- package/dist/components/dialog/features.d.ts +37 -0
- package/dist/components/dialog/index.d.ts +14 -0
- package/dist/components/dialog/types.d.ts +483 -0
- package/dist/components/divider/config.d.ts +143 -0
- package/dist/components/divider/constants.d.ts +45 -0
- package/{src/components/divider/divider.ts → dist/components/divider/divider.d.ts} +9 -37
- package/dist/components/divider/features.d.ts +50 -0
- package/{src/components/divider/index.ts → dist/components/divider/index.d.ts} +6 -12
- package/dist/components/divider/types.d.ts +124 -0
- package/dist/components/extended-fab/api.d.ts +83 -0
- package/dist/components/extended-fab/config.d.ts +75 -0
- package/dist/components/extended-fab/constants.d.ts +82 -0
- package/dist/components/extended-fab/extended-fab.d.ts +61 -0
- package/{src/components/extended-fab/index.ts → dist/components/extended-fab/index.d.ts} +6 -15
- package/dist/components/extended-fab/types.d.ts +703 -0
- package/dist/components/fab/api.d.ts +64 -0
- package/dist/components/fab/config.d.ts +71 -0
- package/dist/components/fab/constants.d.ts +75 -0
- package/{src/components/fab/fab.ts → dist/components/fab/fab.d.ts} +10 -46
- package/{src/components/fab/index.ts → dist/components/fab/index.d.ts} +6 -15
- package/dist/components/fab/types.d.ts +577 -0
- package/dist/components/index.d.ts +76 -0
- package/dist/components/list/api.d.ts +106 -0
- package/dist/components/list/config.d.ts +61 -0
- package/dist/components/list/constants.d.ts +76 -0
- package/dist/components/list/features/index.d.ts +2 -0
- package/dist/components/list/features/listmanager.d.ts +9 -0
- package/dist/components/list/features/selection.d.ts +9 -0
- package/dist/components/list/index.d.ts +12 -0
- package/dist/components/list/list.d.ts +11 -0
- package/dist/components/list/types.d.ts +294 -0
- package/dist/components/menu/api.d.ts +58 -0
- package/dist/components/menu/config.d.ts +78 -0
- package/dist/components/menu/constants.d.ts +106 -0
- package/dist/components/menu/features/controller.d.ts +10 -0
- package/dist/components/menu/features/index.d.ts +6 -0
- package/dist/components/menu/features/keyboard.d.ts +26 -0
- package/dist/components/menu/features/opener.d.ts +10 -0
- package/dist/components/menu/features/position.d.ts +18 -0
- package/dist/components/menu/features/submenu.d.ts +10 -0
- package/{src/components/menu/index.ts → dist/components/menu/index.d.ts} +11 -27
- package/dist/components/menu/menu.d.ts +29 -0
- package/dist/components/menu/types.d.ts +338 -0
- package/dist/components/navigation/api.d.ts +8 -0
- package/dist/components/navigation/config.d.ts +34 -0
- package/dist/components/navigation/constants.d.ts +137 -0
- package/dist/components/navigation/features/controller.d.ts +30 -0
- package/dist/components/navigation/features/items.d.ts +32 -0
- package/dist/components/navigation/index.d.ts +3 -0
- package/dist/components/navigation/nav-item.d.ts +30 -0
- package/dist/components/navigation/navigation.d.ts +8 -0
- package/dist/components/navigation/system/core.d.ts +72 -0
- package/dist/components/navigation/system/events.d.ts +35 -0
- package/dist/components/navigation/system/index.d.ts +10 -0
- package/dist/components/navigation/system/mobile.d.ts +52 -0
- package/dist/components/navigation/system/state.d.ts +22 -0
- package/dist/components/navigation/system/types.d.ts +305 -0
- package/dist/components/navigation/types.d.ts +216 -0
- package/dist/components/progress/api.d.ts +46 -0
- package/dist/components/progress/config.d.ts +63 -0
- package/dist/components/progress/constants.d.ts +58 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/progress.d.ts +24 -0
- package/dist/components/progress/types.d.ts +199 -0
- package/dist/components/radios/api.d.ts +37 -0
- package/dist/components/radios/config.d.ts +42 -0
- package/dist/components/radios/constants.d.ts +114 -0
- package/dist/components/radios/index.d.ts +3 -0
- package/dist/components/radios/radio.d.ts +8 -0
- package/dist/components/radios/radios.d.ts +8 -0
- package/dist/components/radios/types.d.ts +189 -0
- package/dist/components/search/api.d.ts +55 -0
- package/dist/components/search/config.d.ts +73 -0
- package/dist/components/search/constants.d.ts +128 -0
- package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
- package/dist/components/search/features/search.d.ts +7 -0
- package/dist/components/search/features/states.d.ts +8 -0
- package/dist/components/search/features/structure.d.ts +7 -0
- package/dist/components/search/index.d.ts +3 -0
- package/dist/components/search/search.d.ts +8 -0
- package/dist/components/search/types.d.ts +132 -0
- package/dist/components/segmented-button/config.d.ts +65 -0
- package/dist/components/segmented-button/constants.d.ts +85 -0
- package/dist/components/segmented-button/index.d.ts +4 -0
- package/dist/components/segmented-button/segment.d.ts +15 -0
- package/dist/components/segmented-button/segmented-button.d.ts +49 -0
- package/dist/components/segmented-button/types.d.ts +257 -0
- package/dist/components/select/api.d.ts +8 -0
- package/dist/components/select/config.d.ts +18 -0
- package/dist/components/select/constants.d.ts +113 -0
- package/dist/components/select/features.d.ts +13 -0
- package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
- package/dist/components/select/select.d.ts +36 -0
- package/dist/components/select/types.d.ts +302 -0
- package/dist/components/sheet/api.d.ts +37 -0
- package/dist/components/sheet/config.d.ts +42 -0
- package/dist/components/sheet/constants.d.ts +136 -0
- package/dist/components/sheet/features/content.d.ts +6 -0
- package/dist/components/sheet/features/gestures.d.ts +6 -0
- package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
- package/dist/components/sheet/features/position.d.ts +7 -0
- package/dist/components/sheet/features/state.d.ts +6 -0
- package/dist/components/sheet/features/title.d.ts +6 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/sheet.d.ts +8 -0
- package/dist/components/sheet/types.d.ts +250 -0
- package/dist/components/slider/api.d.ts +57 -0
- package/dist/components/slider/config.d.ts +75 -0
- package/dist/components/slider/constants.d.ts +138 -0
- package/dist/components/slider/features/controller.d.ts +9 -0
- package/dist/components/slider/features/handlers.d.ts +25 -0
- package/dist/components/slider/features/index.d.ts +3 -0
- package/dist/components/slider/features/range.d.ts +8 -0
- package/dist/components/slider/features/states.d.ts +9 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/schema.d.ts +108 -0
- package/dist/components/slider/slider.d.ts +18 -0
- package/dist/components/slider/types.d.ts +170 -0
- package/dist/components/snackbar/api.d.ts +7 -0
- package/dist/components/snackbar/config.d.ts +55 -0
- package/dist/components/snackbar/constants.d.ts +88 -0
- package/dist/components/snackbar/features.d.ts +13 -0
- package/dist/components/snackbar/index.d.ts +3 -0
- package/dist/components/snackbar/position.d.ts +15 -0
- package/dist/components/snackbar/queue.d.ts +7 -0
- package/dist/components/snackbar/snackbar.d.ts +8 -0
- package/dist/components/snackbar/types.d.ts +172 -0
- package/dist/components/switch/api.d.ts +7 -0
- package/dist/components/switch/config.d.ts +34 -0
- package/dist/components/switch/constants.d.ts +88 -0
- package/dist/components/switch/features.d.ts +59 -0
- package/dist/components/switch/index.d.ts +4 -0
- package/dist/components/switch/switch.d.ts +8 -0
- package/dist/components/switch/types.d.ts +131 -0
- package/dist/components/tabs/api.d.ts +52 -0
- package/dist/components/tabs/config.d.ts +39 -0
- package/dist/components/tabs/constants.d.ts +142 -0
- package/dist/components/tabs/features.d.ts +133 -0
- package/dist/components/tabs/index.d.ts +11 -0
- package/dist/components/tabs/indicator.d.ts +49 -0
- package/dist/components/tabs/responsive.d.ts +38 -0
- package/dist/components/tabs/scroll-indicators.d.ts +18 -0
- package/dist/components/tabs/state.d.ts +53 -0
- package/dist/components/tabs/tab-api.d.ts +43 -0
- package/dist/components/tabs/tab.d.ts +7 -0
- package/dist/components/tabs/tabs.d.ts +27 -0
- package/dist/components/tabs/types.d.ts +390 -0
- package/dist/components/tabs/utils.d.ts +17 -0
- package/dist/components/textfield/api.d.ts +8 -0
- package/dist/components/textfield/config.d.ts +34 -0
- package/dist/components/textfield/constants.d.ts +148 -0
- package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
- package/dist/components/textfield/features/leading-icon.d.ts +55 -0
- package/dist/components/textfield/features/placement.d.ts +28 -0
- package/dist/components/textfield/features/prefix-text.d.ts +54 -0
- package/dist/components/textfield/features/suffix-text.d.ts +54 -0
- package/dist/components/textfield/features/supporting-text.d.ts +59 -0
- package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
- package/dist/components/textfield/index.d.ts +3 -0
- package/dist/components/textfield/textfield.d.ts +36 -0
- package/dist/components/textfield/types.d.ts +217 -0
- package/dist/components/timepicker/api.d.ts +24 -0
- package/dist/components/timepicker/clockdial.d.ts +34 -0
- package/dist/components/timepicker/config.d.ts +75 -0
- package/dist/components/timepicker/constants.d.ts +266 -0
- package/dist/components/timepicker/index.d.ts +4 -0
- package/dist/components/timepicker/render.d.ts +9 -0
- package/dist/components/timepicker/timepicker.d.ts +8 -0
- package/dist/components/timepicker/types.d.ts +284 -0
- package/dist/components/timepicker/utils.d.ts +74 -0
- package/dist/components/tooltip/api.d.ts +18 -0
- package/dist/components/tooltip/config.d.ts +38 -0
- package/dist/components/tooltip/constants.d.ts +108 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/tooltip.d.ts +8 -0
- package/dist/components/tooltip/types.d.ts +188 -0
- package/dist/components/top-app-bar/config.d.ts +16 -0
- package/dist/components/top-app-bar/constants.d.ts +74 -0
- package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
- package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
- package/dist/components/top-app-bar/types.d.ts +118 -0
- package/dist/constants.d.ts +30 -0
- package/dist/core/collection/adapters/base.d.ts +47 -0
- package/dist/core/collection/adapters/route.d.ts +149 -0
- package/dist/core/collection/collection.d.ts +131 -0
- package/dist/core/collection/index.d.ts +10 -0
- package/dist/core/collection/list-manager/config.d.ts +29 -0
- package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
- package/dist/core/collection/list-manager/index.d.ts +61 -0
- package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
- package/dist/core/collection/list-manager/renderer.d.ts +31 -0
- package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
- package/dist/core/collection/list-manager/state.d.ts +60 -0
- package/dist/core/collection/list-manager/types.d.ts +361 -0
- package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
- package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
- package/dist/core/compose/base.d.ts +31 -0
- package/dist/core/compose/component.d.ts +61 -0
- package/dist/core/compose/features/badge.d.ts +43 -0
- package/dist/core/compose/features/checkable.d.ts +59 -0
- package/dist/core/compose/features/constants.d.ts +45 -0
- package/dist/core/compose/features/debounce.d.ts +84 -0
- package/dist/core/compose/features/disabled.d.ts +47 -0
- package/dist/core/compose/features/events.d.ts +37 -0
- package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
- package/dist/core/compose/features/gestures/pan.d.ts +108 -0
- package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
- package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
- package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
- package/dist/core/compose/features/gestures/tap.d.ts +79 -0
- package/dist/core/compose/features/gestures.d.ts +86 -0
- package/dist/core/compose/features/icon.d.ts +71 -0
- package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
- package/dist/core/compose/features/input.d.ts +71 -0
- package/dist/core/compose/features/lifecycle.d.ts +61 -0
- package/dist/core/compose/features/position.d.ts +51 -0
- package/dist/core/compose/features/ripple.d.ts +61 -0
- package/dist/core/compose/features/size.d.ts +17 -0
- package/dist/core/compose/features/style.d.ts +16 -0
- package/dist/core/compose/features/text.d.ts +63 -0
- package/dist/core/compose/features/textinput.d.ts +93 -0
- package/dist/core/compose/features/textlabel.d.ts +57 -0
- package/dist/core/compose/features/throttle.d.ts +75 -0
- package/dist/core/compose/features/track.d.ts +42 -0
- package/dist/core/compose/features/variant.d.ts +17 -0
- package/dist/core/compose/features/withEvents.d.ts +45 -0
- package/dist/core/compose/index.d.ts +17 -0
- package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
- package/dist/core/compose/utils/type-guards.d.ts +27 -0
- package/dist/core/composition/features/dom.d.ts +19 -0
- package/dist/core/composition/features/icon.d.ts +45 -0
- package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
- package/dist/core/composition/features/label.d.ts +49 -0
- package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
- package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
- package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +34 -82
- package/dist/core/config.d.ts +130 -0
- package/{src/core/dom/attributes.ts → dist/core/dom/attributes.d.ts} +2 -13
- package/dist/core/dom/classes.d.ts +42 -0
- package/dist/core/dom/create.d.ts +124 -0
- package/dist/core/dom/events.d.ts +69 -0
- package/{src/core/dom/index.ts → dist/core/dom/index.d.ts} +1 -5
- package/dist/core/dom/utils.d.ts +42 -0
- package/dist/core/gestures/index.d.ts +12 -0
- package/dist/core/gestures/longpress.d.ts +23 -0
- package/dist/core/gestures/manager.d.ts +14 -0
- package/dist/core/gestures/pan.d.ts +12 -0
- package/dist/core/gestures/pinch.d.ts +14 -0
- package/dist/core/gestures/rotate.d.ts +14 -0
- package/dist/core/gestures/swipe.d.ts +20 -0
- package/dist/core/gestures/tap.d.ts +12 -0
- package/dist/core/gestures/types.d.ts +320 -0
- package/dist/core/gestures/utils.d.ts +57 -0
- package/dist/core/index.d.ts +29 -0
- package/dist/core/layout/array.d.ts +15 -0
- package/dist/core/layout/config.d.ts +32 -0
- package/dist/core/layout/create.d.ts +14 -0
- package/dist/core/layout/index.d.ts +13 -0
- package/dist/core/layout/jsx.d.ts +13 -0
- package/dist/core/layout/object.d.ts +14 -0
- package/dist/core/layout/processor.d.ts +28 -0
- package/dist/core/layout/result.d.ts +12 -0
- package/dist/core/layout/template.d.ts +12 -0
- package/dist/core/layout/types.d.ts +137 -0
- package/dist/core/layout/utils.d.ts +38 -0
- package/dist/core/state/disabled.d.ts +32 -0
- package/dist/core/state/emitter.d.ts +40 -0
- package/dist/core/state/events.d.ts +36 -0
- package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
- package/dist/core/state/lifecycle.d.ts +57 -0
- package/dist/core/state/store.d.ts +82 -0
- package/dist/core/utils/background.d.ts +40 -0
- package/dist/core/utils/index.d.ts +23 -0
- package/dist/core/utils/mobile.d.ts +54 -0
- package/dist/core/utils/object.d.ts +13 -0
- package/dist/core/utils/performance.d.ts +79 -0
- package/dist/core/utils/validate.d.ts +73 -0
- package/dist/index.cjs +64 -0
- package/dist/index.cjs.map +285 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +53 -14854
- package/dist/index.js.map +285 -0
- package/dist/package.json +39 -0
- package/dist/styles.css +7 -0
- package/package.json +23 -4
- package/.env +0 -15
- package/.typedocignore +0 -11
- package/CONTRIBUTING.md +0 -218
- package/DOCS.md +0 -153
- package/TESTING.md +0 -214
- package/git-user-stats.js +0 -545
- package/index.ts +0 -10
- package/src/components/badge/api.ts +0 -313
- package/src/components/badge/config.ts +0 -153
- package/src/components/badge/features.ts +0 -194
- package/src/components/badge/index.ts +0 -90
- package/src/components/badge/types.ts +0 -279
- package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
- package/src/components/bottom-app-bar/config.ts +0 -29
- package/src/components/bottom-app-bar/types.ts +0 -114
- package/src/components/button/api.ts +0 -172
- package/src/components/button/button.ts +0 -112
- package/src/components/button/config.ts +0 -96
- package/src/components/button/index.ts +0 -37
- package/src/components/button/types.ts +0 -290
- package/src/components/card/api.ts +0 -222
- package/src/components/card/config.ts +0 -304
- package/src/components/card/content.ts +0 -343
- package/src/components/card/features.ts +0 -407
- package/src/components/card/types.ts +0 -497
- package/src/components/carousel/api.ts +0 -147
- package/src/components/carousel/carousel.ts +0 -242
- package/src/components/carousel/config.ts +0 -91
- package/src/components/carousel/constants.ts +0 -181
- package/src/components/carousel/features/drag.ts +0 -388
- package/src/components/carousel/features/slides.ts +0 -682
- package/src/components/carousel/types.ts +0 -327
- package/src/components/checkbox/api.ts +0 -82
- package/src/components/checkbox/checkbox.ts +0 -142
- package/src/components/checkbox/config.ts +0 -89
- package/src/components/checkbox/types.ts +0 -342
- package/src/components/chips/api.ts +0 -194
- package/src/components/chips/chip/api.ts +0 -233
- package/src/components/chips/chip/chip.ts +0 -131
- package/src/components/chips/chip/config.ts +0 -91
- package/src/components/chips/chip/index.ts +0 -3
- package/src/components/chips/chips.md +0 -481
- package/src/components/chips/chips.ts +0 -75
- package/src/components/chips/config.ts +0 -109
- package/src/components/chips/constants.ts +0 -61
- package/src/components/chips/features/chip-items.ts +0 -33
- package/src/components/chips/features/container.ts +0 -77
- package/src/components/chips/features/controller.ts +0 -448
- package/src/components/chips/features/label.ts +0 -108
- package/src/components/chips/index.ts +0 -11
- package/src/components/chips/schema.ts +0 -61
- package/src/components/chips/types.ts +0 -469
- package/src/components/datepicker/api.ts +0 -265
- package/src/components/datepicker/config.ts +0 -141
- package/src/components/datepicker/datepicker.ts +0 -341
- package/src/components/datepicker/index.ts +0 -12
- package/src/components/datepicker/render.ts +0 -450
- package/src/components/datepicker/types.ts +0 -397
- package/src/components/datepicker/utils.ts +0 -289
- package/src/components/dialog/api.ts +0 -317
- package/src/components/dialog/config.ts +0 -116
- package/src/components/dialog/features.ts +0 -907
- package/src/components/dialog/index.ts +0 -141
- package/src/components/dialog/types.ts +0 -553
- package/src/components/divider/config.ts +0 -165
- package/src/components/divider/features.ts +0 -233
- package/src/components/divider/types.ts +0 -132
- package/src/components/extended-fab/api.ts +0 -193
- package/src/components/extended-fab/config.ts +0 -140
- package/src/components/extended-fab/extended-fab.ts +0 -153
- package/src/components/extended-fab/types.ts +0 -749
- package/src/components/fab/api.ts +0 -137
- package/src/components/fab/config.ts +0 -121
- package/src/components/fab/types.ts +0 -615
- package/src/components/list/api.ts +0 -82
- package/src/components/list/config.ts +0 -63
- package/src/components/list/features.ts +0 -229
- package/src/components/list/index.ts +0 -67
- package/src/components/list/list-item.ts +0 -163
- package/src/components/list/list.ts +0 -108
- package/src/components/list/types.ts +0 -396
- package/src/components/list/utils.ts +0 -98
- package/src/components/menu/api.ts +0 -230
- package/src/components/menu/config.ts +0 -127
- package/src/components/menu/features/anchor.ts +0 -394
- package/src/components/menu/features/controller.ts +0 -1423
- package/src/components/menu/features/index.ts +0 -13
- package/src/components/menu/features/position.ts +0 -353
- package/src/components/menu/menu.ts +0 -121
- package/src/components/menu/types.ts +0 -392
- package/src/components/navigation/api.ts +0 -142
- package/src/components/navigation/config.ts +0 -73
- package/src/components/navigation/features/controller.ts +0 -273
- package/src/components/navigation/features/items.ts +0 -353
- package/src/components/navigation/index.ts +0 -11
- package/src/components/navigation/nav-item.ts +0 -196
- package/src/components/navigation/navigation.ts +0 -115
- package/src/components/navigation/system/core.ts +0 -302
- package/src/components/navigation/system/events.ts +0 -240
- package/src/components/navigation/system/index.ts +0 -184
- package/src/components/navigation/system/mobile.ts +0 -278
- package/src/components/navigation/system/state.ts +0 -77
- package/src/components/navigation/system/types.ts +0 -364
- package/src/components/navigation/types.ts +0 -292
- package/src/components/progress/api.ts +0 -178
- package/src/components/progress/config.ts +0 -122
- package/src/components/progress/index.ts +0 -4
- package/src/components/progress/progress.ts +0 -159
- package/src/components/progress/types.ts +0 -255
- package/src/components/radios/api.ts +0 -125
- package/src/components/radios/config.ts +0 -59
- package/src/components/radios/constants.ts +0 -19
- package/src/components/radios/index.ts +0 -3
- package/src/components/radios/radio.ts +0 -292
- package/src/components/radios/radios.ts +0 -43
- package/src/components/radios/types.ts +0 -219
- package/src/components/search/api.ts +0 -203
- package/src/components/search/config.ts +0 -86
- package/src/components/search/features/search.ts +0 -717
- package/src/components/search/features/states.ts +0 -169
- package/src/components/search/features/structure.ts +0 -197
- package/src/components/search/index.ts +0 -7
- package/src/components/search/search.ts +0 -52
- package/src/components/search/types.ts +0 -175
- package/src/components/segmented-button/config.ts +0 -119
- package/src/components/segmented-button/index.ts +0 -4
- package/src/components/segmented-button/segment.ts +0 -108
- package/src/components/segmented-button/segmented-button.ts +0 -361
- package/src/components/segmented-button/types.ts +0 -306
- package/src/components/select/api.ts +0 -78
- package/src/components/select/config.ts +0 -76
- package/src/components/select/features.ts +0 -331
- package/src/components/select/select.ts +0 -73
- package/src/components/select/types.ts +0 -355
- package/src/components/sheet/api.ts +0 -96
- package/src/components/sheet/config.ts +0 -65
- package/src/components/sheet/features/content.ts +0 -51
- package/src/components/sheet/features/gestures.ts +0 -177
- package/src/components/sheet/features/position.ts +0 -41
- package/src/components/sheet/features/state.ts +0 -116
- package/src/components/sheet/features/title.ts +0 -86
- package/src/components/sheet/index.ts +0 -12
- package/src/components/sheet/sheet.ts +0 -56
- package/src/components/sheet/types.ts +0 -294
- package/src/components/slider/accessibility.md +0 -59
- package/src/components/slider/api.ts +0 -192
- package/src/components/slider/config.ts +0 -118
- package/src/components/slider/features/controller.ts +0 -737
- package/src/components/slider/features/handlers.ts +0 -497
- package/src/components/slider/features/index.ts +0 -5
- package/src/components/slider/features/range.ts +0 -104
- package/src/components/slider/features/states.ts +0 -195
- package/src/components/slider/index.ts +0 -17
- package/src/components/slider/schema.ts +0 -141
- package/src/components/slider/slider.ts +0 -76
- package/src/components/slider/types.ts +0 -223
- package/src/components/snackbar/api.ts +0 -162
- package/src/components/snackbar/config.ts +0 -61
- package/src/components/snackbar/features.ts +0 -76
- package/src/components/snackbar/index.ts +0 -9
- package/src/components/snackbar/position.ts +0 -79
- package/src/components/snackbar/queue.ts +0 -76
- package/src/components/snackbar/snackbar.ts +0 -60
- package/src/components/snackbar/types.ts +0 -159
- package/src/components/switch/api.ts +0 -93
- package/src/components/switch/config.ts +0 -56
- package/src/components/switch/features.ts +0 -198
- package/src/components/switch/index.ts +0 -8
- package/src/components/switch/switch.ts +0 -52
- package/src/components/switch/types.ts +0 -168
- package/src/components/tabs/api.ts +0 -221
- package/src/components/tabs/config.ts +0 -73
- package/src/components/tabs/features.ts +0 -403
- package/src/components/tabs/index.ts +0 -46
- package/src/components/tabs/indicator.ts +0 -285
- package/src/components/tabs/responsive.ts +0 -144
- package/src/components/tabs/scroll-indicators.ts +0 -149
- package/src/components/tabs/state.ts +0 -186
- package/src/components/tabs/tab-api.ts +0 -266
- package/src/components/tabs/tab.ts +0 -267
- package/src/components/tabs/tabs.ts +0 -71
- package/src/components/tabs/types.ts +0 -461
- package/src/components/tabs/utils.ts +0 -107
- package/src/components/textfield/api.ts +0 -197
- package/src/components/textfield/config.ts +0 -52
- package/src/components/textfield/features/leading-icon.ts +0 -127
- package/src/components/textfield/features/placement.ts +0 -149
- package/src/components/textfield/features/prefix-text.ts +0 -107
- package/src/components/textfield/features/suffix-text.ts +0 -100
- package/src/components/textfield/features/supporting-text.ts +0 -113
- package/src/components/textfield/features/trailing-icon.ts +0 -108
- package/src/components/textfield/index.ts +0 -9
- package/src/components/textfield/textfield.ts +0 -92
- package/src/components/textfield/types.ts +0 -265
- package/src/components/timepicker/README.md +0 -277
- package/src/components/timepicker/api.ts +0 -632
- package/src/components/timepicker/clockdial.ts +0 -479
- package/src/components/timepicker/config.ts +0 -228
- package/src/components/timepicker/index.ts +0 -3
- package/src/components/timepicker/render.ts +0 -613
- package/src/components/timepicker/timepicker.ts +0 -117
- package/src/components/timepicker/types.ts +0 -336
- package/src/components/timepicker/utils.ts +0 -241
- package/src/components/tooltip/api.ts +0 -415
- package/src/components/tooltip/config.ts +0 -80
- package/src/components/tooltip/index.ts +0 -12
- package/src/components/tooltip/tooltip.ts +0 -60
- package/src/components/tooltip/types.ts +0 -223
- package/src/components/top-app-bar/config.ts +0 -83
- package/src/components/top-app-bar/top-app-bar.ts +0 -316
- package/src/components/top-app-bar/types.ts +0 -140
- package/src/core/build/constants.ts +0 -48
- package/src/core/build/icon.ts +0 -137
- package/src/core/build/ripple.ts +0 -193
- package/src/core/build/text.ts +0 -91
- package/src/core/collection/adapters/base.ts +0 -62
- package/src/core/collection/adapters/route.ts +0 -201
- package/src/core/collection/collection.ts +0 -300
- package/src/core/collection/index.ts +0 -57
- package/src/core/collection/list-manager.ts +0 -333
- package/src/core/compose/base.ts +0 -43
- package/src/core/compose/component.ts +0 -255
- package/src/core/compose/features/badge.ts +0 -79
- package/src/core/compose/features/checkable.ts +0 -155
- package/src/core/compose/features/disabled.ts +0 -116
- package/src/core/compose/features/events.ts +0 -65
- package/src/core/compose/features/icon.ts +0 -71
- package/src/core/compose/features/input.ts +0 -174
- package/src/core/compose/features/lifecycle.ts +0 -139
- package/src/core/compose/features/position.ts +0 -94
- package/src/core/compose/features/ripple.ts +0 -58
- package/src/core/compose/features/size.ts +0 -29
- package/src/core/compose/features/style.ts +0 -31
- package/src/core/compose/features/text.ts +0 -44
- package/src/core/compose/features/textinput.ts +0 -238
- package/src/core/compose/features/textlabel.ts +0 -113
- package/src/core/compose/features/track.ts +0 -84
- package/src/core/compose/features/variant.ts +0 -29
- package/src/core/compose/features/withEvents.ts +0 -137
- package/src/core/compose/index.ts +0 -54
- package/src/core/composition/features/dom.ts +0 -45
- package/src/core/composition/features/icon.ts +0 -131
- package/src/core/composition/features/label.ts +0 -155
- package/src/core/config.ts +0 -211
- package/src/core/dom/classes.ts +0 -132
- package/src/core/dom/create.ts +0 -273
- package/src/core/dom/events.ts +0 -209
- package/src/core/dom/utils.ts +0 -97
- package/src/core/index.ts +0 -111
- package/src/core/layout/README.md +0 -715
- package/src/core/layout/array.ts +0 -180
- package/src/core/layout/config.ts +0 -193
- package/src/core/layout/create.ts +0 -54
- package/src/core/layout/index.ts +0 -36
- package/src/core/layout/object.ts +0 -123
- package/src/core/layout/processor.ts +0 -106
- package/src/core/layout/result.ts +0 -84
- package/src/core/layout/types.ts +0 -180
- package/src/core/layout/utils.ts +0 -144
- package/src/core/state/disabled.ts +0 -81
- package/src/core/state/emitter.ts +0 -94
- package/src/core/state/events.ts +0 -88
- package/src/core/state/lifecycle.ts +0 -131
- package/src/core/state/store.ts +0 -197
- package/src/core/utils/index.ts +0 -45
- package/src/core/utils/mobile.ts +0 -98
- package/src/core/utils/object.ts +0 -41
- package/src/core/utils/validate.ts +0 -234
- package/src/index.ts +0 -90
- package/src/styles/abstract/_base.scss +0 -2
- package/src/styles/abstract/_config.scss +0 -28
- package/src/styles/abstract/_functions.scss +0 -124
- package/src/styles/abstract/_mixins.scss +0 -352
- package/src/styles/abstract/_theme.scss +0 -269
- package/src/styles/abstract/_variables.scss +0 -305
- package/src/styles/base/_reset.scss +0 -86
- package/src/styles/base/_typography.scss +0 -155
- package/src/styles/components/_badge.scss +0 -182
- package/src/styles/components/_bottom-app-bar.scss +0 -103
- package/src/styles/components/_button.scss +0 -224
- package/src/styles/components/_card.scss +0 -401
- package/src/styles/components/_carousel.scss +0 -645
- package/src/styles/components/_checkbox.scss +0 -231
- package/src/styles/components/_chips.scss +0 -638
- package/src/styles/components/_datepicker.scss +0 -358
- package/src/styles/components/_dialog.scss +0 -259
- package/src/styles/components/_divider.scss +0 -57
- package/src/styles/components/_extended-fab.scss +0 -267
- package/src/styles/components/_fab.scss +0 -225
- package/src/styles/components/_list.scss +0 -248
- package/src/styles/components/_menu.scss +0 -242
- package/src/styles/components/_navigation-mobile.scss +0 -244
- package/src/styles/components/_navigation-system.scss +0 -151
- package/src/styles/components/_navigation.scss +0 -407
- package/src/styles/components/_progress.scss +0 -151
- package/src/styles/components/_radios.scss +0 -187
- package/src/styles/components/_search.scss +0 -306
- package/src/styles/components/_segmented-button.scss +0 -227
- package/src/styles/components/_select.scss +0 -272
- package/src/styles/components/_sheet.scss +0 -236
- package/src/styles/components/_slider.scss +0 -489
- package/src/styles/components/_snackbar.scss +0 -211
- package/src/styles/components/_switch.scss +0 -298
- package/src/styles/components/_tabs.scss +0 -416
- package/src/styles/components/_textfield.scss +0 -773
- package/src/styles/components/_timepicker.scss +0 -451
- package/src/styles/components/_tooltip.scss +0 -241
- package/src/styles/components/_top-app-bar.scss +0 -225
- package/src/styles/main.scss +0 -175
- package/src/styles/themes/_autumn.scss +0 -105
- package/src/styles/themes/_base-theme.scss +0 -85
- package/src/styles/themes/_baseline.scss +0 -173
- package/src/styles/themes/_bluekhaki.scss +0 -125
- package/src/styles/themes/_brownbeige.scss +0 -125
- package/src/styles/themes/_browngreen.scss +0 -125
- package/src/styles/themes/_forest.scss +0 -77
- package/src/styles/themes/_greenbeige.scss +0 -125
- package/src/styles/themes/_index.scss +0 -6
- package/src/styles/themes/_material.scss +0 -125
- package/src/styles/themes/_ocean.scss +0 -77
- package/src/styles/themes/_sageivory.scss +0 -125
- package/src/styles/themes/_spring.scss +0 -77
- package/src/styles/themes/_summer.scss +0 -87
- package/src/styles/themes/_sunset.scss +0 -60
- package/src/styles/themes/_tealcaramel.scss +0 -125
- package/src/styles/themes/_winter.scss +0 -77
- package/src/styles/utilities/_colors.scss +0 -154
- package/src/styles/utilities/_flexbox.scss +0 -194
- package/src/styles/utilities/_layout.scss +0 -665
- package/src/styles/utilities/_ripple.scss +0 -79
- package/src/styles/utilities/_spacing.scss +0 -139
- package/src/styles/utilities/_typography.scss +0 -178
- package/src/styles/utilities/_visibility.scss +0 -142
package/src/core/layout/array.ts
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
// src/core/layout/array.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module core/layout
|
|
4
|
-
* @description Processor for array-based layout schemas
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { createElement } from '../dom/create';
|
|
8
|
-
import { LayoutResult, LayoutOptions } from './types';
|
|
9
|
-
import { isComponent, createFragment, processClassNames } from './utils';
|
|
10
|
-
import { createLayoutResult } from './result';
|
|
11
|
-
import { createComponentInstance } from './processor';
|
|
12
|
-
import { isObject } from '../utils';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Processes an array-based layout definition
|
|
16
|
-
*
|
|
17
|
-
* @param schema - Array-based layout definition
|
|
18
|
-
* @param parentElement - Optional parent element to attach layout to
|
|
19
|
-
* @param level - Current recursion level
|
|
20
|
-
* @param options - Layout creation options
|
|
21
|
-
* @returns Layout result object
|
|
22
|
-
*/
|
|
23
|
-
export function processArraySchema(
|
|
24
|
-
schema: any[],
|
|
25
|
-
parentElement: HTMLElement | null = null,
|
|
26
|
-
level: number = 0,
|
|
27
|
-
options: LayoutOptions = {}
|
|
28
|
-
): LayoutResult {
|
|
29
|
-
level++;
|
|
30
|
-
const layout = {};
|
|
31
|
-
const components = [];
|
|
32
|
-
const fragment = createFragment();
|
|
33
|
-
let component = null;
|
|
34
|
-
|
|
35
|
-
if (!Array.isArray(schema)) {
|
|
36
|
-
console.error('Schema is not an array!', parentElement, level, schema);
|
|
37
|
-
return createLayoutResult(layout);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// Get default creator function from options or use createElement
|
|
41
|
-
const defaultCreator = options.creator || createElement;
|
|
42
|
-
|
|
43
|
-
for (let i = 0; i < schema.length; i++) {
|
|
44
|
-
const item = schema[i];
|
|
45
|
-
if (!item) continue;
|
|
46
|
-
|
|
47
|
-
// Handle nested arrays recursively
|
|
48
|
-
if (Array.isArray(item)) {
|
|
49
|
-
const container = component || parentElement;
|
|
50
|
-
// Use this function for recursion, not the external processSchema
|
|
51
|
-
const result = processArraySchema(item, container, level, options);
|
|
52
|
-
Object.assign(layout, result.layout);
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Handle different item types
|
|
57
|
-
let creator, name, itemOptions;
|
|
58
|
-
|
|
59
|
-
// Case 1: Item is a function (component creator)
|
|
60
|
-
if (typeof item === 'function') {
|
|
61
|
-
creator = item;
|
|
62
|
-
|
|
63
|
-
// Check next items for name (string) and options (object)
|
|
64
|
-
const nextItem = schema[i+1];
|
|
65
|
-
const afterNextItem = schema[i+2];
|
|
66
|
-
|
|
67
|
-
if (typeof nextItem === 'string') {
|
|
68
|
-
name = nextItem;
|
|
69
|
-
i++; // Skip the name on next iteration
|
|
70
|
-
|
|
71
|
-
// Check if options are provided after the name
|
|
72
|
-
if (isObject(afterNextItem)) {
|
|
73
|
-
itemOptions = afterNextItem;
|
|
74
|
-
i++; // Skip the options on next iteration
|
|
75
|
-
} else {
|
|
76
|
-
itemOptions = {};
|
|
77
|
-
}
|
|
78
|
-
} else if (isObject(nextItem)) {
|
|
79
|
-
// No name provided, just options
|
|
80
|
-
itemOptions = nextItem;
|
|
81
|
-
i++; // Skip the options on next iteration
|
|
82
|
-
} else {
|
|
83
|
-
// No name or options
|
|
84
|
-
itemOptions = {};
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
// Case 2: Item is a string (component name using default creator)
|
|
88
|
-
else if (typeof item === 'string') {
|
|
89
|
-
creator = defaultCreator;
|
|
90
|
-
name = item;
|
|
91
|
-
|
|
92
|
-
// Check next item for options
|
|
93
|
-
const nextItem = schema[i+1];
|
|
94
|
-
if (isObject(nextItem)) {
|
|
95
|
-
itemOptions = nextItem;
|
|
96
|
-
i++; // Skip the options on next iteration
|
|
97
|
-
} else {
|
|
98
|
-
itemOptions = {};
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Default to div if no tag is specified
|
|
102
|
-
if (creator === createElement && !('tag' in itemOptions)) {
|
|
103
|
-
itemOptions.tag = 'div';
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// Case 3: Item is an object (options for default creator with no name)
|
|
107
|
-
else if (isObject(item)) {
|
|
108
|
-
creator = defaultCreator;
|
|
109
|
-
itemOptions = item;
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
// Skip unsupported item types
|
|
113
|
-
console.warn('Skipping unsupported item type:', item);
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Check for additional options object after main options
|
|
118
|
-
const maybeAdditionalOptions = schema[i+1];
|
|
119
|
-
if (isObject(maybeAdditionalOptions) && !Array.isArray(maybeAdditionalOptions) &&
|
|
120
|
-
typeof maybeAdditionalOptions.prefix !== 'undefined') {
|
|
121
|
-
// Merge the additional options into main options
|
|
122
|
-
Object.assign(itemOptions, maybeAdditionalOptions);
|
|
123
|
-
i++; // Skip on next iteration
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// Process options based on prefix setting
|
|
127
|
-
const shouldApplyPrefix =
|
|
128
|
-
// Use item-specific prefix setting if available
|
|
129
|
-
'prefix' in itemOptions ?
|
|
130
|
-
itemOptions.prefix :
|
|
131
|
-
// Otherwise use global options prefix setting (default to true)
|
|
132
|
-
options.prefix !== false;
|
|
133
|
-
|
|
134
|
-
const processedOptions = shouldApplyPrefix ?
|
|
135
|
-
processClassNames(itemOptions) :
|
|
136
|
-
{ ...itemOptions };
|
|
137
|
-
|
|
138
|
-
// Add name to options if needed and not a DOM element tag
|
|
139
|
-
if (name && !('name' in processedOptions) &&
|
|
140
|
-
!(creator === createElement || creator.isElement)) {
|
|
141
|
-
processedOptions.name = name;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
// Create and store component
|
|
145
|
-
component = createComponentInstance(creator, processedOptions, options);
|
|
146
|
-
const element = isComponent(component) ? component.element : component;
|
|
147
|
-
|
|
148
|
-
if (level === 1) layout.element = element;
|
|
149
|
-
if (name) {
|
|
150
|
-
layout[name] = component;
|
|
151
|
-
components.push([name, component]);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// Append to DOM
|
|
155
|
-
if (component) {
|
|
156
|
-
if ('insert' in component && typeof component.insert === 'function') {
|
|
157
|
-
component.insert(fragment);
|
|
158
|
-
} else {
|
|
159
|
-
fragment.appendChild(element);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
if (parentElement) {
|
|
163
|
-
component._container = parentElement;
|
|
164
|
-
|
|
165
|
-
if ('onInserted' in component && typeof component.onInserted === 'function') {
|
|
166
|
-
component.onInserted(parentElement);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// Append fragment to parent in a single operation
|
|
173
|
-
if (parentElement && fragment.hasChildNodes()) {
|
|
174
|
-
const wrapper = isComponent(parentElement) ? parentElement.element : parentElement;
|
|
175
|
-
wrapper.appendChild(fragment);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
layout.components = components;
|
|
179
|
-
return createLayoutResult(layout);
|
|
180
|
-
}
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
// src/core/layout/config.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module core/layout
|
|
4
|
-
* @description Layout configuration utilities
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { addClass, removeClass, hasClass } from '../dom/classes';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Helper function to clean up previous layout classes from an element
|
|
11
|
-
*
|
|
12
|
-
* @param element - Element to clean layout classes from
|
|
13
|
-
*/
|
|
14
|
-
export function cleanupLayoutClasses(element: HTMLElement): void {
|
|
15
|
-
if (!element) return;
|
|
16
|
-
|
|
17
|
-
// Get all classes from the element
|
|
18
|
-
const classList = Array.from(element.classList);
|
|
19
|
-
|
|
20
|
-
// Find and remove layout-related classes
|
|
21
|
-
const layoutClasses = classList.filter(cls =>
|
|
22
|
-
cls.startsWith('layout--') ||
|
|
23
|
-
cls.includes('-layout--')
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
// Remove each layout class
|
|
27
|
-
layoutClasses.forEach(cls => {
|
|
28
|
-
element.classList.remove(cls);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Helper function to get the layout type from element classes
|
|
34
|
-
*
|
|
35
|
-
* @param element - Element to check
|
|
36
|
-
* @returns Layout type if found, empty string otherwise
|
|
37
|
-
*/
|
|
38
|
-
export function getLayoutType(element: HTMLElement): string {
|
|
39
|
-
return hasClass(element, 'layout--stack') ? 'stack' :
|
|
40
|
-
hasClass(element, 'layout--row') ? 'row' :
|
|
41
|
-
hasClass(element, 'layout--grid') ? 'grid' : '';
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Applies layout classes based on the layout configuration
|
|
46
|
-
*
|
|
47
|
-
* @param element - Element to apply layout classes to
|
|
48
|
-
* @param layoutConfig - Layout configuration
|
|
49
|
-
* @param cleanupFirst - Whether to clean up previous layout classes first
|
|
50
|
-
*/
|
|
51
|
-
export function applyLayoutClasses(
|
|
52
|
-
element: HTMLElement,
|
|
53
|
-
layoutConfig: any,
|
|
54
|
-
cleanupFirst: boolean = true
|
|
55
|
-
): void {
|
|
56
|
-
if (!element || !layoutConfig) return;
|
|
57
|
-
|
|
58
|
-
// First remove any existing layout classes to avoid accumulation
|
|
59
|
-
if (cleanupFirst) {
|
|
60
|
-
cleanupLayoutClasses(element);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// Apply base layout type
|
|
64
|
-
if (layoutConfig.type) {
|
|
65
|
-
addClass(element, `layout--${layoutConfig.type}`);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Apply common layout properties
|
|
69
|
-
if (layoutConfig.gap !== undefined) {
|
|
70
|
-
// Get current layout type for prefixed gap class
|
|
71
|
-
const layoutType = layoutConfig.type || getLayoutType(element);
|
|
72
|
-
|
|
73
|
-
if (layoutType) {
|
|
74
|
-
// Add the new gap class
|
|
75
|
-
addClass(element, `layout--${layoutType}-gap-${layoutConfig.gap}`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Apply alignment properties
|
|
80
|
-
if (layoutConfig.align) {
|
|
81
|
-
const layoutType = layoutConfig.type || getLayoutType(element);
|
|
82
|
-
|
|
83
|
-
if (layoutType) {
|
|
84
|
-
addClass(element, `layout--${layoutType}-${layoutConfig.align}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Apply justification
|
|
89
|
-
if (layoutConfig.justify) {
|
|
90
|
-
const layoutType = layoutConfig.type || getLayoutType(element);
|
|
91
|
-
|
|
92
|
-
if (layoutType) {
|
|
93
|
-
addClass(element, `layout--${layoutType}-justify-${layoutConfig.justify}`);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Apply grid-specific properties
|
|
98
|
-
if (layoutConfig.type === 'grid' || getLayoutType(element) === 'grid') {
|
|
99
|
-
// Grid columns
|
|
100
|
-
if (typeof layoutConfig.columns === 'number') {
|
|
101
|
-
addClass(element, `layout--grid-cols-${layoutConfig.columns}`);
|
|
102
|
-
} else if (layoutConfig.columns === 'auto-fill') {
|
|
103
|
-
addClass(element, 'layout--grid-fill');
|
|
104
|
-
} else if (layoutConfig.columns === 'auto-fit') {
|
|
105
|
-
addClass(element, 'layout--grid-cols-auto-fit');
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Other grid properties
|
|
109
|
-
if (layoutConfig.dense) {
|
|
110
|
-
addClass(element, 'layout--grid-dense');
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (layoutConfig.autoHeight) {
|
|
114
|
-
addClass(element, 'layout--grid-auto-height');
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Apply row-specific properties
|
|
119
|
-
if (layoutConfig.type === 'row' || getLayoutType(element) === 'row') {
|
|
120
|
-
// Wrap behavior
|
|
121
|
-
if (layoutConfig.wrap === false || layoutConfig.wrap === 'nowrap') {
|
|
122
|
-
addClass(element, 'layout--row-nowrap');
|
|
123
|
-
} else if (layoutConfig.wrap === 'reverse') {
|
|
124
|
-
addClass(element, 'layout--row-wrap-reverse');
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Mobile responsiveness
|
|
128
|
-
if (layoutConfig.mobileStack) {
|
|
129
|
-
addClass(element, 'layout--row-mobile-stack');
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (layoutConfig.mobileScroll) {
|
|
133
|
-
addClass(element, 'layout--row-mobile-scroll');
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// No masonry, split or sidebar specific properties anymore
|
|
138
|
-
|
|
139
|
-
// Add any additional custom classes
|
|
140
|
-
if (layoutConfig.class) {
|
|
141
|
-
layoutConfig.class.split(' ').filter(Boolean).forEach(cls => {
|
|
142
|
-
// Don't prefix these classes as they're user-defined
|
|
143
|
-
element.classList.add(cls);
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Applies layout item classes based on the configuration
|
|
150
|
-
*
|
|
151
|
-
* @param element - Element to apply layout item classes to
|
|
152
|
-
* @param itemConfig - Layout item configuration
|
|
153
|
-
*/
|
|
154
|
-
export function applyLayoutItemClasses(element: HTMLElement, itemConfig: any): void {
|
|
155
|
-
if (!element || !itemConfig) return;
|
|
156
|
-
|
|
157
|
-
// Add the base layout item class
|
|
158
|
-
addClass(element, 'layout__item');
|
|
159
|
-
|
|
160
|
-
// Add width classes
|
|
161
|
-
if (itemConfig.width && itemConfig.width >= 1 && itemConfig.width <= 12) {
|
|
162
|
-
addClass(element, `layout__item--${itemConfig.width}`);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// Add responsive classes
|
|
166
|
-
if (itemConfig.sm) addClass(element, `layout__item--sm-${itemConfig.sm}`);
|
|
167
|
-
if (itemConfig.md) addClass(element, `layout__item--md-${itemConfig.md}`);
|
|
168
|
-
if (itemConfig.lg) addClass(element, `layout__item--lg-${itemConfig.lg}`);
|
|
169
|
-
if (itemConfig.xl) addClass(element, `layout__item--xl-${itemConfig.xl}`);
|
|
170
|
-
|
|
171
|
-
// Add grid span classes
|
|
172
|
-
if (itemConfig.span) addClass(element, `layout__item--span-${itemConfig.span}`);
|
|
173
|
-
if (itemConfig.rowSpan) addClass(element, `layout__item--row-span-${itemConfig.rowSpan}`);
|
|
174
|
-
|
|
175
|
-
// Add ordering
|
|
176
|
-
if (itemConfig.order) {
|
|
177
|
-
if (typeof itemConfig.order === 'number') {
|
|
178
|
-
addClass(element, `layout__item--order-${itemConfig.order}`);
|
|
179
|
-
} else {
|
|
180
|
-
addClass(element, `layout__item--order-${itemConfig.order}`);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// Add alignment
|
|
185
|
-
if (itemConfig.align) {
|
|
186
|
-
addClass(element, `layout__item--self-${itemConfig.align}`);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
// Add auto class
|
|
190
|
-
if (itemConfig.auto) {
|
|
191
|
-
addClass(element, 'layout__item--auto');
|
|
192
|
-
}
|
|
193
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
// src/core/layout/create.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module core/layout
|
|
4
|
-
* @description Main layout creation functionality
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { Schema, LayoutResult, LayoutOptions } from './types';
|
|
8
|
-
import { processSchema } from './processor';
|
|
9
|
-
import { createLayoutResult } from './result';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Creates a DOM or component layout based on a layout definition
|
|
13
|
-
*
|
|
14
|
-
* @param schema - Layout definition (array-based, object-based, or HTML string)
|
|
15
|
-
* @param parentElement - Optional parent element to attach layout to
|
|
16
|
-
* @param options - Additional options for layout creation
|
|
17
|
-
* @returns Object containing the layout and utility functions
|
|
18
|
-
*/
|
|
19
|
-
export function createLayout(
|
|
20
|
-
schema: Schema | any[] | string | Function,
|
|
21
|
-
parentElement: HTMLElement | null = null,
|
|
22
|
-
options: LayoutOptions = {}
|
|
23
|
-
): LayoutResult {
|
|
24
|
-
// If schema is a function, execute it to get the actual schema
|
|
25
|
-
if (typeof schema === 'function') {
|
|
26
|
-
schema = schema();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Parse HTML string into a layout if needed
|
|
30
|
-
if (typeof schema === 'string') {
|
|
31
|
-
// Create a temporary element to parse HTML
|
|
32
|
-
const template = document.createElement('template');
|
|
33
|
-
template.innerHTML = schema.trim();
|
|
34
|
-
|
|
35
|
-
// Use the parsed DOM structure directly
|
|
36
|
-
const fragment = template.content;
|
|
37
|
-
|
|
38
|
-
if (parentElement && fragment.hasChildNodes()) {
|
|
39
|
-
// Batch DOM operation - append all nodes at once
|
|
40
|
-
parentElement.appendChild(fragment);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Create a basic layout for HTML string
|
|
44
|
-
const layout = {
|
|
45
|
-
element: fragment.firstElementChild as HTMLElement
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
// Create layout result with HTML content
|
|
49
|
-
return createLayoutResult(layout);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Process the schema using our unified processor with options
|
|
53
|
-
return processSchema(schema, parentElement, 0, options);
|
|
54
|
-
}
|
package/src/core/layout/index.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// src/core/layout/index.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module core/layout
|
|
4
|
-
* @description Layout creation system with simplified API
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
// Export essential types
|
|
8
|
-
export type {
|
|
9
|
-
ComponentLike,
|
|
10
|
-
ElementDefinition,
|
|
11
|
-
Schema,
|
|
12
|
-
LayoutResult,
|
|
13
|
-
LayoutOptions,
|
|
14
|
-
LayoutConfig,
|
|
15
|
-
LayoutItemConfig
|
|
16
|
-
} from './types';
|
|
17
|
-
|
|
18
|
-
// Export utility functions
|
|
19
|
-
export { isComponent, processClassNames, flattenLayout } from './utils';
|
|
20
|
-
|
|
21
|
-
// Export core functionality
|
|
22
|
-
export { createLayout } from './create';
|
|
23
|
-
export { createLayoutResult } from './result';
|
|
24
|
-
export { processSchema, createComponentInstance } from './processor';
|
|
25
|
-
|
|
26
|
-
// Export configuration utilities
|
|
27
|
-
export {
|
|
28
|
-
applyLayoutClasses,
|
|
29
|
-
applyLayoutItemClasses,
|
|
30
|
-
getLayoutType,
|
|
31
|
-
cleanupLayoutClasses
|
|
32
|
-
} from './config';
|
|
33
|
-
|
|
34
|
-
// Default export for backward compatibility and simpler usage
|
|
35
|
-
import { createLayout } from './create';
|
|
36
|
-
export default createLayout;
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
// src/core/layout/object.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module core/layout
|
|
4
|
-
* @description Processor for object-based layout schemas
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { createElement } from '../dom/create';
|
|
8
|
-
import { Schema, LayoutResult, LayoutOptions } from './types';
|
|
9
|
-
import { isComponent, createFragment, processClassNames } from './utils';
|
|
10
|
-
import { createLayoutResult } from './result';
|
|
11
|
-
import { createComponentInstance } from './processor';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Processes an object-based layout definition
|
|
15
|
-
*
|
|
16
|
-
* @param schema - Object-based layout definition
|
|
17
|
-
* @param parentElement - Optional parent element to attach layout to
|
|
18
|
-
* @param options - Layout creation options
|
|
19
|
-
* @returns Layout result object
|
|
20
|
-
*/
|
|
21
|
-
export function processObjectSchema(
|
|
22
|
-
schema: Schema,
|
|
23
|
-
parentElement: HTMLElement | null = null,
|
|
24
|
-
options: LayoutOptions = {}
|
|
25
|
-
): LayoutResult {
|
|
26
|
-
const layout = {};
|
|
27
|
-
|
|
28
|
-
// Get default creator function from options or use createElement
|
|
29
|
-
const defaultCreator = options.creator || createElement;
|
|
30
|
-
|
|
31
|
-
// Handle root element creation
|
|
32
|
-
if (schema.element && !parentElement) {
|
|
33
|
-
const elementDef = schema.element;
|
|
34
|
-
const createElementFn = elementDef.creator || defaultCreator;
|
|
35
|
-
|
|
36
|
-
// Process class names based on prefix option
|
|
37
|
-
const elementOptions = elementDef.options || {};
|
|
38
|
-
const processedOptions = options.prefix !== false ?
|
|
39
|
-
processClassNames(elementOptions) :
|
|
40
|
-
{ ...elementOptions };
|
|
41
|
-
|
|
42
|
-
const rootComponent = createComponentInstance(createElementFn, processedOptions, options);
|
|
43
|
-
const rootElement = isComponent(rootComponent) ? rootComponent.element : rootComponent;
|
|
44
|
-
|
|
45
|
-
layout.element = rootComponent;
|
|
46
|
-
if (elementDef.name) layout[elementDef.name] = rootComponent;
|
|
47
|
-
|
|
48
|
-
// Process children
|
|
49
|
-
if (elementDef.children) {
|
|
50
|
-
const fragment = createFragment();
|
|
51
|
-
const childLayouts = [];
|
|
52
|
-
|
|
53
|
-
for (const key in elementDef.children) {
|
|
54
|
-
const childResult = processObjectSchema(
|
|
55
|
-
{ [key]: elementDef.children[key] },
|
|
56
|
-
fragment,
|
|
57
|
-
options
|
|
58
|
-
);
|
|
59
|
-
childLayouts.push(childResult.layout);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
rootElement.appendChild(fragment);
|
|
63
|
-
|
|
64
|
-
// Merge child layouts
|
|
65
|
-
for (const childLayout of childLayouts) {
|
|
66
|
-
Object.assign(layout, childLayout);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return createLayoutResult(layout);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Process normal schema elements
|
|
74
|
-
const fragment = parentElement ? createFragment() : null;
|
|
75
|
-
const childLayouts = [];
|
|
76
|
-
|
|
77
|
-
for (const key in schema) {
|
|
78
|
-
const def = schema[key];
|
|
79
|
-
if (!def) continue;
|
|
80
|
-
|
|
81
|
-
// Use appropriate creator
|
|
82
|
-
const elementCreator = def.creator || defaultCreator;
|
|
83
|
-
|
|
84
|
-
// Process class names based on prefix option
|
|
85
|
-
const elementOptions = def.options || {};
|
|
86
|
-
const shouldApplyPrefix =
|
|
87
|
-
'prefix' in elementOptions ? elementOptions.prefix : options.prefix !== false;
|
|
88
|
-
|
|
89
|
-
const processedOptions = shouldApplyPrefix ?
|
|
90
|
-
processClassNames(elementOptions) :
|
|
91
|
-
{ ...elementOptions };
|
|
92
|
-
|
|
93
|
-
// Create element
|
|
94
|
-
const created = createComponentInstance(elementCreator, processedOptions, options);
|
|
95
|
-
|
|
96
|
-
// Store in layout
|
|
97
|
-
layout[key] = created;
|
|
98
|
-
if (def.name && def.name !== key) layout[def.name] = created;
|
|
99
|
-
|
|
100
|
-
// Handle DOM operations
|
|
101
|
-
const element = isComponent(created) ? created.element : created;
|
|
102
|
-
if (fragment) fragment.appendChild(element);
|
|
103
|
-
|
|
104
|
-
// Process children
|
|
105
|
-
if (def.children) {
|
|
106
|
-
const childResult = processObjectSchema(def.children, element, options);
|
|
107
|
-
childLayouts.push(childResult.layout);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// Append to parent
|
|
112
|
-
if (parentElement && fragment) {
|
|
113
|
-
const parentDom = isComponent(parentElement) ? parentElement.element : parentElement;
|
|
114
|
-
parentDom.appendChild(fragment);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Merge child layouts
|
|
118
|
-
for (const childLayout of childLayouts) {
|
|
119
|
-
Object.assign(layout, childLayout);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return createLayoutResult(layout);
|
|
123
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
// src/core/layout/processor.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module core/layout
|
|
4
|
-
* @description Processor for layout creation
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { Schema, LayoutResult, LayoutOptions } from './types';
|
|
8
|
-
import { isComponent } from './utils';
|
|
9
|
-
import { processArraySchema } from './array';
|
|
10
|
-
import { processObjectSchema } from './object';
|
|
11
|
-
import { isObject } from '../utils';
|
|
12
|
-
import { applyLayoutClasses, applyLayoutItemClasses } from './config';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Creates a component from a constructor or factory function
|
|
16
|
-
*
|
|
17
|
-
* @param Component - Component constructor or factory function
|
|
18
|
-
* @param options - Component creation options
|
|
19
|
-
* @param layoutOptions - Global layout options
|
|
20
|
-
* @returns Created component instance
|
|
21
|
-
*/
|
|
22
|
-
export function createComponentInstance(
|
|
23
|
-
Component: any,
|
|
24
|
-
options: Record<string, any> = {},
|
|
25
|
-
layoutOptions: LayoutOptions = {}
|
|
26
|
-
): any {
|
|
27
|
-
try {
|
|
28
|
-
// Save layout and layoutItem configs before creating component
|
|
29
|
-
const layoutConfig = options.layout;
|
|
30
|
-
const layoutItemConfig = options.layoutItem;
|
|
31
|
-
|
|
32
|
-
// Remove layout and layoutItem from options to prevent them becoming attributes
|
|
33
|
-
const cleanOptions = { ...options };
|
|
34
|
-
delete cleanOptions.layout;
|
|
35
|
-
delete cleanOptions.layoutItem;
|
|
36
|
-
|
|
37
|
-
// Check if Component is a class constructor
|
|
38
|
-
const isClass = typeof Component === 'function' &&
|
|
39
|
-
Component.prototype &&
|
|
40
|
-
Component.prototype.constructor === Component &&
|
|
41
|
-
// Exclude native constructors like Object, Array, etc.
|
|
42
|
-
Object.getPrototypeOf(Component) !== Function.prototype;
|
|
43
|
-
|
|
44
|
-
// Create the component with clean options
|
|
45
|
-
const component = isClass
|
|
46
|
-
? new Component(cleanOptions)
|
|
47
|
-
: Component(cleanOptions);
|
|
48
|
-
|
|
49
|
-
// Apply layout configuration to the created component
|
|
50
|
-
if (component) {
|
|
51
|
-
// Get the actual DOM element
|
|
52
|
-
const element = component.element || (component instanceof HTMLElement ? component : null);
|
|
53
|
-
if (element) {
|
|
54
|
-
// Apply layout classes if layout config exists
|
|
55
|
-
if (layoutConfig) {
|
|
56
|
-
applyLayoutClasses(element, layoutConfig);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Apply layout item classes if layoutItem config exists
|
|
60
|
-
if (layoutItemConfig) {
|
|
61
|
-
applyLayoutItemClasses(element, layoutItemConfig);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return component;
|
|
67
|
-
} catch (error) {
|
|
68
|
-
console.error('Error creating component instance:', error);
|
|
69
|
-
// Return a basic element as fallback
|
|
70
|
-
return document.createElement('div');
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Processes any type of layout definition (array or object)
|
|
76
|
-
*
|
|
77
|
-
* @param schema - Layout schema to process
|
|
78
|
-
* @param parentElement - Parent element to attach to
|
|
79
|
-
* @param level - Current nesting level
|
|
80
|
-
* @param options - Layout creation options
|
|
81
|
-
* @returns Layout result object
|
|
82
|
-
*/
|
|
83
|
-
export function processSchema(
|
|
84
|
-
schema: any,
|
|
85
|
-
parentElement: HTMLElement | null = null,
|
|
86
|
-
level: number = 0,
|
|
87
|
-
options: LayoutOptions = {}
|
|
88
|
-
): LayoutResult {
|
|
89
|
-
// Validate input to provide helpful error messages
|
|
90
|
-
if (!schema) {
|
|
91
|
-
console.warn('Empty schema provided to layout processor');
|
|
92
|
-
return {
|
|
93
|
-
layout: {},
|
|
94
|
-
element: document.createElement('div'),
|
|
95
|
-
component: {},
|
|
96
|
-
get: () => null,
|
|
97
|
-
getAll: () => ({}),
|
|
98
|
-
destroy: () => {}
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Process based on schema type
|
|
103
|
-
return Array.isArray(schema)
|
|
104
|
-
? processArraySchema(schema, parentElement, level, options)
|
|
105
|
-
: processObjectSchema(schema, parentElement, options);
|
|
106
|
-
}
|