@moni-labs/moni-ui 0.4.4 → 0.4.6
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/README.md +3 -3
- package/custom-elements.json +4670 -16030
- package/dist/browser/moni-ui.iife.min.js +848 -117
- package/dist/browser/moni-ui.iife.min.js.br +0 -0
- package/dist/browser/moni-ui.iife.min.js.gz +0 -0
- package/dist/browser/moni-ui.iife.min.js.map +1 -1
- package/dist/browser/moni-ui.min.js +3138 -1813
- package/dist/browser/moni-ui.min.js.br +0 -0
- package/dist/browser/moni-ui.min.js.gz +0 -0
- package/dist/browser/moni-ui.min.js.map +1 -1
- package/dist/cdn/components/moni-button-group.js +5 -3
- package/dist/cdn/components/moni-button.js +2 -2
- package/dist/cdn/components/moni-carousel.js +1 -1
- package/dist/cdn/components/moni-color-field.js +9 -6
- package/dist/cdn/components/moni-context-menu.js +4 -1
- package/dist/cdn/components/moni-file-field.js +9 -9
- package/dist/cdn/components/moni-morph-modal.js +2 -2
- package/dist/cdn/components/moni-nav.js +5 -5
- package/dist/cdn/components/moni-select.js +2 -0
- package/dist/cdn/components/moni-side-sheet.js +18 -6
- package/dist/cdn/components/moni-snackbar.js +15 -2
- package/dist/cdn/components/moni-stepper.js +1 -1
- package/dist/cdn/components/moni-text-field.js +2 -0
- package/dist/cdn/components/moni-textarea.js +2 -0
- package/dist/cdn/components/moni-toolbar.js +3 -1
- package/dist/cdn/components/moni-tooltip.js +60 -4
- package/dist/cdn/importmap.json +98 -98
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +8 -0
- package/dist/components/moni-button-group.d.ts.map +1 -1
- package/dist/components/moni-button-group.js +15 -4
- package/dist/components/moni-button.js +2 -2
- package/dist/components/moni-carousel.d.ts +2 -0
- package/dist/components/moni-carousel.d.ts.map +1 -1
- package/dist/components/moni-carousel.js +18 -0
- package/dist/components/moni-color-field.d.ts +19 -0
- package/dist/components/moni-color-field.d.ts.map +1 -1
- package/dist/components/moni-color-field.js +43 -2
- package/dist/components/moni-context-menu.d.ts.map +1 -1
- package/dist/components/moni-context-menu.js +14 -3
- package/dist/components/moni-file-field.d.ts.map +1 -1
- package/dist/components/moni-file-field.js +6 -3
- package/dist/components/moni-morph-modal.d.ts +21 -0
- package/dist/components/moni-morph-modal.d.ts.map +1 -1
- package/dist/components/moni-morph-modal.js +574 -52
- package/dist/components/moni-nav.d.ts.map +1 -1
- package/dist/components/moni-nav.js +4 -3
- package/dist/components/moni-select-option.d.ts.map +1 -1
- package/dist/components/moni-select-option.js +19 -0
- package/dist/components/moni-select.d.ts.map +1 -1
- package/dist/components/moni-select.js +2 -0
- package/dist/components/moni-side-sheet.d.ts +5 -0
- package/dist/components/moni-side-sheet.d.ts.map +1 -1
- package/dist/components/moni-side-sheet.js +48 -17
- package/dist/components/moni-snackbar.d.ts +1 -0
- package/dist/components/moni-snackbar.d.ts.map +1 -1
- package/dist/components/moni-snackbar.js +21 -1
- package/dist/components/moni-stepper.d.ts.map +1 -1
- package/dist/components/moni-stepper.js +4 -0
- package/dist/components/moni-text-field.d.ts.map +1 -1
- package/dist/components/moni-text-field.js +2 -0
- package/dist/components/moni-textarea.d.ts.map +1 -1
- package/dist/components/moni-textarea.js +2 -0
- package/dist/components/moni-toolbar.d.ts.map +1 -1
- package/dist/components/moni-toolbar.js +3 -1
- package/dist/components/moni-tooltip.d.ts +11 -2
- package/dist/components/moni-tooltip.d.ts.map +1 -1
- package/dist/components/moni-tooltip.js +195 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/docs/COMPONENTS.md +10 -0
- package/docs/LLM-GUIDE.md +107 -0
- package/docs/PUBLISHING.md +31 -0
- package/docs/README.md +64 -0
- package/docs/api.json +6178 -0
- package/docs/assets/moni-app-bar/elevated--false.png +0 -0
- package/docs/assets/moni-app-bar/elevated--true.png +0 -0
- package/docs/assets/moni-app-bar/placement--bottom.png +0 -0
- package/docs/assets/moni-app-bar/placement--top.png +0 -0
- package/docs/assets/moni-app-bar/size--default.png +0 -0
- package/docs/assets/moni-app-bar/size--prominent.png +0 -0
- package/docs/assets/moni-app-bar/subtitle--default.png +0 -0
- package/docs/assets/moni-app-bar/title--default.png +0 -0
- package/docs/assets/moni-app-bar/variant--floating.png +0 -0
- package/docs/assets/moni-app-bar/variant--standard.png +0 -0
- package/docs/assets/moni-badge/border--false.png +0 -0
- package/docs/assets/moni-badge/border--true.png +0 -0
- package/docs/assets/moni-badge/color--error.png +0 -0
- package/docs/assets/moni-badge/color--primary.png +0 -0
- package/docs/assets/moni-badge/color--secondary.png +0 -0
- package/docs/assets/moni-badge/color--tertiary.png +0 -0
- package/docs/assets/moni-badge/inline--false.png +0 -0
- package/docs/assets/moni-badge/inline--true.png +0 -0
- package/docs/assets/moni-badge/position--bottom.png +0 -0
- package/docs/assets/moni-badge/position--empty.png +0 -0
- package/docs/assets/moni-badge/position--left.png +0 -0
- package/docs/assets/moni-badge/position--none.png +0 -0
- package/docs/assets/moni-badge/position--right.png +0 -0
- package/docs/assets/moni-badge/position--top.png +0 -0
- package/docs/assets/moni-badge/shape--circle.png +0 -0
- package/docs/assets/moni-badge/shape--empty.png +0 -0
- package/docs/assets/moni-badge/shape--min.png +0 -0
- package/docs/assets/moni-badge/shape--square.png +0 -0
- package/docs/assets/moni-badge/value--default.png +0 -0
- package/docs/assets/moni-bottom-sheet/expandedHeight--default.png +0 -0
- package/docs/assets/moni-bottom-sheet/handle--false.png +0 -0
- package/docs/assets/moni-bottom-sheet/handle--true.png +0 -0
- package/docs/assets/moni-bottom-sheet/maxWidth--default.png +0 -0
- package/docs/assets/moni-bottom-sheet/modal--false.png +0 -0
- package/docs/assets/moni-bottom-sheet/modal--true.png +0 -0
- package/docs/assets/moni-bottom-sheet/open--true.png +0 -0
- package/docs/assets/moni-bottom-sheet/positioning--absolute.png +0 -0
- package/docs/assets/moni-bottom-sheet/positioning--body.png +0 -0
- package/docs/assets/moni-bottom-sheet/positioning--fixed.png +0 -0
- package/docs/assets/moni-bottom-sheet/positioning--static.png +0 -0
- package/docs/assets/moni-bottom-sheet/size--auto.png +0 -0
- package/docs/assets/moni-bottom-sheet/size--large.png +0 -0
- package/docs/assets/moni-bottom-sheet/size--medium.png +0 -0
- package/docs/assets/moni-bottom-sheet/size--small.png +0 -0
- package/docs/assets/moni-bottom-sheet/title--default.png +0 -0
- package/docs/assets/moni-button/active--false.png +0 -0
- package/docs/assets/moni-button/active--true.png +0 -0
- package/docs/assets/moni-button/disabled--false.png +0 -0
- package/docs/assets/moni-button/disabled--true.png +0 -0
- package/docs/assets/moni-button/href--default.png +0 -0
- package/docs/assets/moni-button/icon--default.png +0 -0
- package/docs/assets/moni-button/iconTrailing--default.png +0 -0
- package/docs/assets/moni-button/loading--false.png +0 -0
- package/docs/assets/moni-button/loading--true.png +0 -0
- package/docs/assets/moni-button/shape--bottom-round-flat.png +0 -0
- package/docs/assets/moni-button/shape--bottom-round.png +0 -0
- package/docs/assets/moni-button/shape--circle.png +0 -0
- package/docs/assets/moni-button/shape--inner-round.png +0 -0
- package/docs/assets/moni-button/shape--left-round-flat.png +0 -0
- package/docs/assets/moni-button/shape--left-round.png +0 -0
- package/docs/assets/moni-button/shape--no-round.png +0 -0
- package/docs/assets/moni-button/shape--right-round-flat.png +0 -0
- package/docs/assets/moni-button/shape--right-round.png +0 -0
- package/docs/assets/moni-button/shape--round.png +0 -0
- package/docs/assets/moni-button/shape--square.png +0 -0
- package/docs/assets/moni-button/shape--top-round-flat.png +0 -0
- package/docs/assets/moni-button/shape--top-round.png +0 -0
- package/docs/assets/moni-button/size--extra.png +0 -0
- package/docs/assets/moni-button/size--large.png +0 -0
- package/docs/assets/moni-button/size--medium.png +0 -0
- package/docs/assets/moni-button/size--small.png +0 -0
- package/docs/assets/moni-button/size--xlarge.png +0 -0
- package/docs/assets/moni-button/size--xsmall.png +0 -0
- package/docs/assets/moni-button/type--button.png +0 -0
- package/docs/assets/moni-button/type--reset.png +0 -0
- package/docs/assets/moni-button/type--submit.png +0 -0
- package/docs/assets/moni-button/variant--elevated.png +0 -0
- package/docs/assets/moni-button/variant--error.png +0 -0
- package/docs/assets/moni-button/variant--fill.png +0 -0
- package/docs/assets/moni-button/variant--filled.png +0 -0
- package/docs/assets/moni-button/variant--outlined.png +0 -0
- package/docs/assets/moni-button/variant--text.png +0 -0
- package/docs/assets/moni-button/variant--tonal.png +0 -0
- package/docs/assets/moni-button-group/gap--default.png +0 -0
- package/docs/assets/moni-button-group/label--default.png +0 -0
- package/docs/assets/moni-button-group/labelledBy--default.png +0 -0
- package/docs/assets/moni-button-group/multi--false.png +0 -0
- package/docs/assets/moni-button-group/multi--true.png +0 -0
- package/docs/assets/moni-button-group/resizing--fixed.png +0 -0
- package/docs/assets/moni-button-group/resizing--flexible.png +0 -0
- package/docs/assets/moni-button-group/role--group.png +0 -0
- package/docs/assets/moni-button-group/role--radiogroup.png +0 -0
- package/docs/assets/moni-button-group/role--toolbar.png +0 -0
- package/docs/assets/moni-button-group/selectionRequired--false.png +0 -0
- package/docs/assets/moni-button-group/selectionRequired--true.png +0 -0
- package/docs/assets/moni-button-group/shape--round.png +0 -0
- package/docs/assets/moni-button-group/shape--square.png +0 -0
- package/docs/assets/moni-button-group/size--extra.png +0 -0
- package/docs/assets/moni-button-group/size--large.png +0 -0
- package/docs/assets/moni-button-group/size--medium.png +0 -0
- package/docs/assets/moni-button-group/size--small.png +0 -0
- package/docs/assets/moni-button-group/size--xlarge.png +0 -0
- package/docs/assets/moni-button-group/size--xsmall.png +0 -0
- package/docs/assets/moni-button-group/variant--connected.png +0 -0
- package/docs/assets/moni-button-group/variant--standard.png +0 -0
- package/docs/assets/moni-button-segment/checked--false.png +0 -0
- package/docs/assets/moni-button-segment/checked--true.png +0 -0
- package/docs/assets/moni-button-segment/disabled--false.png +0 -0
- package/docs/assets/moni-button-segment/disabled--true.png +0 -0
- package/docs/assets/moni-button-segment/hideCheck--false.png +0 -0
- package/docs/assets/moni-button-segment/hideCheck--true.png +0 -0
- package/docs/assets/moni-button-segment/position--first.png +0 -0
- package/docs/assets/moni-button-segment/position--last.png +0 -0
- package/docs/assets/moni-button-segment/position--middle.png +0 -0
- package/docs/assets/moni-button-segment/position--solo.png +0 -0
- package/docs/assets/moni-button-segment/size--extra.png +0 -0
- package/docs/assets/moni-button-segment/size--large.png +0 -0
- package/docs/assets/moni-button-segment/size--medium.png +0 -0
- package/docs/assets/moni-button-segment/size--small.png +0 -0
- package/docs/assets/moni-button-segment/size--xlarge.png +0 -0
- package/docs/assets/moni-button-segment/size--xsmall.png +0 -0
- package/docs/assets/moni-button-segment/value--default.png +0 -0
- package/docs/assets/moni-card/clickable--false.png +0 -0
- package/docs/assets/moni-card/clickable--true.png +0 -0
- package/docs/assets/moni-card/disabled--false.png +0 -0
- package/docs/assets/moni-card/disabled--true.png +0 -0
- package/docs/assets/moni-card/draggable--false.png +0 -0
- package/docs/assets/moni-card/draggable--true.png +0 -0
- package/docs/assets/moni-card/variant--elevated.png +0 -0
- package/docs/assets/moni-card/variant--filled.png +0 -0
- package/docs/assets/moni-card/variant--outlined.png +0 -0
- package/docs/assets/moni-carousel/auto--false.png +0 -0
- package/docs/assets/moni-carousel/auto--true.png +0 -0
- package/docs/assets/moni-carousel/autoplay--false.png +0 -0
- package/docs/assets/moni-carousel/autoplay--true.png +0 -0
- package/docs/assets/moni-carousel/autoplayInterval--default.png +0 -0
- package/docs/assets/moni-carousel/borderRadius--default.png +0 -0
- package/docs/assets/moni-carousel/gap--default.png +0 -0
- package/docs/assets/moni-carousel/headerText--default.png +0 -0
- package/docs/assets/moni-carousel/hideNav--false.png +0 -0
- package/docs/assets/moni-carousel/hideNav--true.png +0 -0
- package/docs/assets/moni-carousel/infinite--false.png +0 -0
- package/docs/assets/moni-carousel/infinite--true.png +0 -0
- package/docs/assets/moni-carousel/items--default.png +0 -0
- package/docs/assets/moni-carousel/largeWidth--default.png +0 -0
- package/docs/assets/moni-carousel/layout--hero.png +0 -0
- package/docs/assets/moni-carousel/layout--multi-browse.png +0 -0
- package/docs/assets/moni-carousel/layout--uncontained.png +0 -0
- package/docs/assets/moni-carousel/mediumWidth--default.png +0 -0
- package/docs/assets/moni-carousel/padding--default.png +0 -0
- package/docs/assets/moni-carousel/showAll--false.png +0 -0
- package/docs/assets/moni-carousel/showAll--true.png +0 -0
- package/docs/assets/moni-carousel/showAllText--default.png +0 -0
- package/docs/assets/moni-carousel/smallWidth--default.png +0 -0
- package/docs/assets/moni-checkbox/checked--false.png +0 -0
- package/docs/assets/moni-checkbox/checked--true.png +0 -0
- package/docs/assets/moni-checkbox/checkedIcon--default.png +0 -0
- package/docs/assets/moni-checkbox/disabled--false.png +0 -0
- package/docs/assets/moni-checkbox/disabled--true.png +0 -0
- package/docs/assets/moni-checkbox/label--default.png +0 -0
- package/docs/assets/moni-checkbox/name--default.png +0 -0
- package/docs/assets/moni-checkbox/size--extra.png +0 -0
- package/docs/assets/moni-checkbox/size--large.png +0 -0
- package/docs/assets/moni-checkbox/size--medium.png +0 -0
- package/docs/assets/moni-checkbox/size--small.png +0 -0
- package/docs/assets/moni-checkbox/uncheckedIcon--default.png +0 -0
- package/docs/assets/moni-checkbox/value--default.png +0 -0
- package/docs/assets/moni-chip/disabled--false.png +0 -0
- package/docs/assets/moni-chip/disabled--true.png +0 -0
- package/docs/assets/moni-chip/icon--default.png +0 -0
- package/docs/assets/moni-chip/loading--false.png +0 -0
- package/docs/assets/moni-chip/loading--true.png +0 -0
- package/docs/assets/moni-chip/removable--false.png +0 -0
- package/docs/assets/moni-chip/removable--true.png +0 -0
- package/docs/assets/moni-chip/selected--false.png +0 -0
- package/docs/assets/moni-chip/selected--true.png +0 -0
- package/docs/assets/moni-chip/shape--bottom-round.png +0 -0
- package/docs/assets/moni-chip/shape--circle.png +0 -0
- package/docs/assets/moni-chip/shape--left-round.png +0 -0
- package/docs/assets/moni-chip/shape--no-round.png +0 -0
- package/docs/assets/moni-chip/shape--right-round.png +0 -0
- package/docs/assets/moni-chip/shape--round.png +0 -0
- package/docs/assets/moni-chip/shape--square.png +0 -0
- package/docs/assets/moni-chip/shape--top-round.png +0 -0
- package/docs/assets/moni-chip/size--large.png +0 -0
- package/docs/assets/moni-chip/size--medium.png +0 -0
- package/docs/assets/moni-chip/size--small.png +0 -0
- package/docs/assets/moni-chip/variant--assist.png +0 -0
- package/docs/assets/moni-chip/variant--fill.png +0 -0
- package/docs/assets/moni-chip/variant--filter.png +0 -0
- package/docs/assets/moni-chip/variant--input.png +0 -0
- package/docs/assets/moni-chip/variant--outlined.png +0 -0
- package/docs/assets/moni-chip/variant--suggestion.png +0 -0
- package/docs/assets/moni-color-field/disabled--false.png +0 -0
- package/docs/assets/moni-color-field/disabled--true.png +0 -0
- package/docs/assets/moni-color-field/error--false.png +0 -0
- package/docs/assets/moni-color-field/error--true.png +0 -0
- package/docs/assets/moni-color-field/errorText--default.png +0 -0
- package/docs/assets/moni-color-field/helper--default.png +0 -0
- package/docs/assets/moni-color-field/label--default.png +0 -0
- package/docs/assets/moni-color-field/name--default.png +0 -0
- package/docs/assets/moni-color-field/shape--no-round.png +0 -0
- package/docs/assets/moni-color-field/shape--round.png +0 -0
- package/docs/assets/moni-color-field/shape--square.png +0 -0
- package/docs/assets/moni-color-field/size--extra.png +0 -0
- package/docs/assets/moni-color-field/size--large.png +0 -0
- package/docs/assets/moni-color-field/size--medium.png +0 -0
- package/docs/assets/moni-color-field/size--small.png +0 -0
- package/docs/assets/moni-color-field/value--default.png +0 -0
- package/docs/assets/moni-color-field/variant--filled.png +0 -0
- package/docs/assets/moni-color-field/variant--outlined.png +0 -0
- package/docs/assets/moni-context-menu/flip--false.png +0 -0
- package/docs/assets/moni-context-menu/flip--true.png +0 -0
- package/docs/assets/moni-context-menu/placement--bottom.png +0 -0
- package/docs/assets/moni-context-menu/placement--left.png +0 -0
- package/docs/assets/moni-context-menu/placement--right.png +0 -0
- package/docs/assets/moni-context-menu/placement--top.png +0 -0
- package/docs/assets/moni-dialog/modal--false.png +0 -0
- package/docs/assets/moni-dialog/modal--true.png +0 -0
- package/docs/assets/moni-dialog/open--true.png +0 -0
- package/docs/assets/moni-dialog/side--bottom.png +0 -0
- package/docs/assets/moni-dialog/side--center.png +0 -0
- package/docs/assets/moni-dialog/side--left.png +0 -0
- package/docs/assets/moni-dialog/side--max.png +0 -0
- package/docs/assets/moni-dialog/side--right.png +0 -0
- package/docs/assets/moni-dialog/side--top.png +0 -0
- package/docs/assets/moni-dialog/size--large.png +0 -0
- package/docs/assets/moni-dialog/size--medium.png +0 -0
- package/docs/assets/moni-dialog/size--small.png +0 -0
- package/docs/assets/moni-dialog/title--default.png +0 -0
- package/docs/assets/moni-divider/inset--leading.png +0 -0
- package/docs/assets/moni-divider/inset--middle.png +0 -0
- package/docs/assets/moni-divider/inset--none.png +0 -0
- package/docs/assets/moni-expansion/open--false.png +0 -0
- package/docs/assets/moni-expansion/open--true.png +0 -0
- package/docs/assets/moni-expansion/title--default.png +0 -0
- package/docs/assets/moni-fab/accessibleLabel--default.png +0 -0
- package/docs/assets/moni-fab/color--default.png +0 -0
- package/docs/assets/moni-fab/disabled--false.png +0 -0
- package/docs/assets/moni-fab/disabled--true.png +0 -0
- package/docs/assets/moni-fab/expanded--false.png +0 -0
- package/docs/assets/moni-fab/expanded--true.png +0 -0
- package/docs/assets/moni-fab/extended--false.png +0 -0
- package/docs/assets/moni-fab/extended--true.png +0 -0
- package/docs/assets/moni-fab/icon--default.png +0 -0
- package/docs/assets/moni-fab/label--default.png +0 -0
- package/docs/assets/moni-fab/name--default.png +0 -0
- package/docs/assets/moni-fab/position--default.png +0 -0
- package/docs/assets/moni-fab/shape--circle.png +0 -0
- package/docs/assets/moni-fab/shape--rounded.png +0 -0
- package/docs/assets/moni-fab/size--default.png +0 -0
- package/docs/assets/moni-fab/type--button.png +0 -0
- package/docs/assets/moni-fab/type--reset.png +0 -0
- package/docs/assets/moni-fab/type--submit.png +0 -0
- package/docs/assets/moni-fab/value--default.png +0 -0
- package/docs/assets/moni-fab-menu/closeIcon--default.png +0 -0
- package/docs/assets/moni-fab-menu/closeLabel--default.png +0 -0
- package/docs/assets/moni-fab-menu/color--default.png +0 -0
- package/docs/assets/moni-fab-menu/direction--default.png +0 -0
- package/docs/assets/moni-fab-menu/disabled--false.png +0 -0
- package/docs/assets/moni-fab-menu/disabled--true.png +0 -0
- package/docs/assets/moni-fab-menu/icon--default.png +0 -0
- package/docs/assets/moni-fab-menu/label--default.png +0 -0
- package/docs/assets/moni-fab-menu/open--false.png +0 -0
- package/docs/assets/moni-fab-menu/open--true.png +0 -0
- package/docs/assets/moni-fab-menu/position--default.png +0 -0
- package/docs/assets/moni-fab-menu/shape--circle.png +0 -0
- package/docs/assets/moni-fab-menu/shape--rounded.png +0 -0
- package/docs/assets/moni-fab-menu/size--default.png +0 -0
- package/docs/assets/moni-file-field/accept--default.png +0 -0
- package/docs/assets/moni-file-field/buttonLabel--default.png +0 -0
- package/docs/assets/moni-file-field/disabled--false.png +0 -0
- package/docs/assets/moni-file-field/disabled--true.png +0 -0
- package/docs/assets/moni-file-field/error--false.png +0 -0
- package/docs/assets/moni-file-field/error--true.png +0 -0
- package/docs/assets/moni-file-field/errorText--default.png +0 -0
- package/docs/assets/moni-file-field/helper--default.png +0 -0
- package/docs/assets/moni-file-field/icon--default.png +0 -0
- package/docs/assets/moni-file-field/label--default.png +0 -0
- package/docs/assets/moni-file-field/multiple--false.png +0 -0
- package/docs/assets/moni-file-field/multiple--true.png +0 -0
- package/docs/assets/moni-file-field/name--default.png +0 -0
- package/docs/assets/moni-file-field/shape--no-round.png +0 -0
- package/docs/assets/moni-file-field/shape--round.png +0 -0
- package/docs/assets/moni-file-field/shape--square.png +0 -0
- package/docs/assets/moni-file-field/size--extra.png +0 -0
- package/docs/assets/moni-file-field/size--large.png +0 -0
- package/docs/assets/moni-file-field/size--medium.png +0 -0
- package/docs/assets/moni-file-field/size--small.png +0 -0
- package/docs/assets/moni-file-field/trailingIcon--default.png +0 -0
- package/docs/assets/moni-file-field/value--default.png +0 -0
- package/docs/assets/moni-file-field/variant--filled.png +0 -0
- package/docs/assets/moni-file-field/variant--outlined.png +0 -0
- package/docs/assets/moni-icon/filled--false.png +0 -0
- package/docs/assets/moni-icon/filled--true.png +0 -0
- package/docs/assets/moni-icon/name--default.png +0 -0
- package/docs/assets/moni-icon/size--extra.png +0 -0
- package/docs/assets/moni-icon/size--large.png +0 -0
- package/docs/assets/moni-icon/size--medium.png +0 -0
- package/docs/assets/moni-icon/size--small.png +0 -0
- package/docs/assets/moni-icon/size--tiny.png +0 -0
- package/docs/assets/moni-list/rounded--false.png +0 -0
- package/docs/assets/moni-list/rounded--true.png +0 -0
- package/docs/assets/moni-list/variant--border.png +0 -0
- package/docs/assets/moni-list/variant--empty.png +0 -0
- package/docs/assets/moni-list-item/active--false.png +0 -0
- package/docs/assets/moni-list-item/active--true.png +0 -0
- package/docs/assets/moni-list-item/avatar--default.png +0 -0
- package/docs/assets/moni-list-item/disabled--false.png +0 -0
- package/docs/assets/moni-list-item/disabled--true.png +0 -0
- package/docs/assets/moni-list-item/href--default.png +0 -0
- package/docs/assets/moni-list-item/icon--default.png +0 -0
- package/docs/assets/moni-list-item/lines--default.png +0 -0
- package/docs/assets/moni-list-item/trailingIcon--default.png +0 -0
- package/docs/assets/moni-loading-indicator/variant--contained.png +0 -0
- package/docs/assets/moni-loading-indicator/variant--uncontained.png +0 -0
- package/docs/assets/moni-menu/active--true.png +0 -0
- package/docs/assets/moni-menu/flip--false.png +0 -0
- package/docs/assets/moni-menu/flip--true.png +0 -0
- package/docs/assets/moni-menu/noWrap--false.png +0 -0
- package/docs/assets/moni-menu/noWrap--true.png +0 -0
- package/docs/assets/moni-menu/placement--bottom.png +0 -0
- package/docs/assets/moni-menu/placement--left.png +0 -0
- package/docs/assets/moni-menu/placement--max.png +0 -0
- package/docs/assets/moni-menu/placement--min.png +0 -0
- package/docs/assets/moni-menu/placement--right.png +0 -0
- package/docs/assets/moni-menu/placement--top.png +0 -0
- package/docs/assets/moni-menu/space--extra-space.png +0 -0
- package/docs/assets/moni-menu/space--large-space.png +0 -0
- package/docs/assets/moni-menu/space--medium-space.png +0 -0
- package/docs/assets/moni-menu/space--no-space.png +0 -0
- package/docs/assets/moni-menu/space--small-space.png +0 -0
- package/docs/assets/moni-menu/space--space.png +0 -0
- package/docs/assets/moni-menu-item/active--false.png +0 -0
- package/docs/assets/moni-menu-item/active--true.png +0 -0
- package/docs/assets/moni-menu-item/disabled--false.png +0 -0
- package/docs/assets/moni-menu-item/disabled--true.png +0 -0
- package/docs/assets/moni-menu-item/icon--default.png +0 -0
- package/docs/assets/moni-menu-item/label--default.png +0 -0
- package/docs/assets/moni-morph-modal/autoSize--false.png +0 -0
- package/docs/assets/moni-morph-modal/autoSize--true.png +0 -0
- package/docs/assets/moni-morph-modal/expandedHeight--default.png +0 -0
- package/docs/assets/moni-morph-modal/expandedWidth--default.png +0 -0
- package/docs/assets/moni-morph-modal/hasBackdrop--false.png +0 -0
- package/docs/assets/moni-morph-modal/hasBackdrop--true.png +0 -0
- package/docs/assets/moni-morph-modal/modal--false.png +0 -0
- package/docs/assets/moni-morph-modal/modal--true.png +0 -0
- package/docs/assets/moni-morph-modal/open--true.png +0 -0
- package/docs/assets/moni-morph-modal/placement--default.png +0 -0
- package/docs/assets/moni-morph-modal/showCloseButton--false.png +0 -0
- package/docs/assets/moni-morph-modal/showCloseButton--true.png +0 -0
- package/docs/assets/moni-nav/layout--auto.png +0 -0
- package/docs/assets/moni-nav/layout--horizontal.png +0 -0
- package/docs/assets/moni-nav/layout--vertical.png +0 -0
- package/docs/assets/moni-nav/modal--false.png +0 -0
- package/docs/assets/moni-nav/modal--true.png +0 -0
- package/docs/assets/moni-nav/open--false.png +0 -0
- package/docs/assets/moni-nav/open--true.png +0 -0
- package/docs/assets/moni-nav/placement--bottom.png +0 -0
- package/docs/assets/moni-nav/placement--left.png +0 -0
- package/docs/assets/moni-nav/placement--right.png +0 -0
- package/docs/assets/moni-nav/placement--top.png +0 -0
- package/docs/assets/moni-nav/variant--drawer.png +0 -0
- package/docs/assets/moni-nav/variant--rail.png +0 -0
- package/docs/assets/moni-nav-item/active--false.png +0 -0
- package/docs/assets/moni-nav-item/active--true.png +0 -0
- package/docs/assets/moni-nav-item/href--default.png +0 -0
- package/docs/assets/moni-nav-item/icon--default.png +0 -0
- package/docs/assets/moni-nav-item/label--default.png +0 -0
- package/docs/assets/moni-nav-item/layout--default.png +0 -0
- package/docs/assets/moni-nav-item/placement--default.png +0 -0
- package/docs/assets/moni-nav-item/variant--default.png +0 -0
- package/docs/assets/moni-progress/bufferValue--default.png +0 -0
- package/docs/assets/moni-progress/indeterminate--false.png +0 -0
- package/docs/assets/moni-progress/indeterminate--true.png +0 -0
- package/docs/assets/moni-progress/label--default.png +0 -0
- package/docs/assets/moni-progress/max--default.png +0 -0
- package/docs/assets/moni-progress/mode--default.png +0 -0
- package/docs/assets/moni-progress/size--default.png +0 -0
- package/docs/assets/moni-progress/stopIndicator--false.png +0 -0
- package/docs/assets/moni-progress/stopIndicator--true.png +0 -0
- package/docs/assets/moni-progress/value--default.png +0 -0
- package/docs/assets/moni-progress/variant--default.png +0 -0
- package/docs/assets/moni-progress/waveTransition--false.png +0 -0
- package/docs/assets/moni-progress/waveTransition--true.png +0 -0
- package/docs/assets/moni-radio/checked--false.png +0 -0
- package/docs/assets/moni-radio/checked--true.png +0 -0
- package/docs/assets/moni-radio/checkedIcon--default.png +0 -0
- package/docs/assets/moni-radio/disabled--false.png +0 -0
- package/docs/assets/moni-radio/disabled--true.png +0 -0
- package/docs/assets/moni-radio/iconContainer--circle.png +0 -0
- package/docs/assets/moni-radio/iconContainer--none.png +0 -0
- package/docs/assets/moni-radio/label--default.png +0 -0
- package/docs/assets/moni-radio/name--default.png +0 -0
- package/docs/assets/moni-radio/size--extra.png +0 -0
- package/docs/assets/moni-radio/size--large.png +0 -0
- package/docs/assets/moni-radio/size--medium.png +0 -0
- package/docs/assets/moni-radio/size--small.png +0 -0
- package/docs/assets/moni-radio/uncheckedIcon--default.png +0 -0
- package/docs/assets/moni-radio/value--default.png +0 -0
- package/docs/assets/moni-ripple/active--false.png +0 -0
- package/docs/assets/moni-ripple/active--true.png +0 -0
- package/docs/assets/moni-ripple/color--primary.png +0 -0
- package/docs/assets/moni-ripple/color--secondary.png +0 -0
- package/docs/assets/moni-ripple/color--surface.png +0 -0
- package/docs/assets/moni-ripple/speed--fast.png +0 -0
- package/docs/assets/moni-ripple/speed--normal.png +0 -0
- package/docs/assets/moni-ripple/speed--slow.png +0 -0
- package/docs/assets/moni-ripple/x--default.png +0 -0
- package/docs/assets/moni-ripple/y--default.png +0 -0
- package/docs/assets/moni-segmented-button/gap--default.png +0 -0
- package/docs/assets/moni-segmented-button/hideCheck--false.png +0 -0
- package/docs/assets/moni-segmented-button/hideCheck--true.png +0 -0
- package/docs/assets/moni-segmented-button/multi--false.png +0 -0
- package/docs/assets/moni-segmented-button/multi--true.png +0 -0
- package/docs/assets/moni-segmented-button/name--default.png +0 -0
- package/docs/assets/moni-segmented-button/size--extra.png +0 -0
- package/docs/assets/moni-segmented-button/size--large.png +0 -0
- package/docs/assets/moni-segmented-button/size--medium.png +0 -0
- package/docs/assets/moni-segmented-button/size--small.png +0 -0
- package/docs/assets/moni-segmented-button/size--xlarge.png +0 -0
- package/docs/assets/moni-segmented-button/size--xsmall.png +0 -0
- package/docs/assets/moni-select/clearable--false.png +0 -0
- package/docs/assets/moni-select/clearable--true.png +0 -0
- package/docs/assets/moni-select/disabled--false.png +0 -0
- package/docs/assets/moni-select/disabled--true.png +0 -0
- package/docs/assets/moni-select/dropdownMaxHeight--default.png +0 -0
- package/docs/assets/moni-select/dropdownWidth--default.png +0 -0
- package/docs/assets/moni-select/error--false.png +0 -0
- package/docs/assets/moni-select/error--true.png +0 -0
- package/docs/assets/moni-select/errorText--default.png +0 -0
- package/docs/assets/moni-select/helper--default.png +0 -0
- package/docs/assets/moni-select/icon--default.png +0 -0
- package/docs/assets/moni-select/label--default.png +0 -0
- package/docs/assets/moni-select/loading--false.png +0 -0
- package/docs/assets/moni-select/loading--true.png +0 -0
- package/docs/assets/moni-select/name--default.png +0 -0
- package/docs/assets/moni-select/placeholder--default.png +0 -0
- package/docs/assets/moni-select/placement--auto.png +0 -0
- package/docs/assets/moni-select/placement--bottom.png +0 -0
- package/docs/assets/moni-select/placement--left.png +0 -0
- package/docs/assets/moni-select/placement--right.png +0 -0
- package/docs/assets/moni-select/placement--top.png +0 -0
- package/docs/assets/moni-select/positioning--absolute.png +0 -0
- package/docs/assets/moni-select/positioning--body.png +0 -0
- package/docs/assets/moni-select/positioning--fixed.png +0 -0
- package/docs/assets/moni-select/searchable--false.png +0 -0
- package/docs/assets/moni-select/searchable--true.png +0 -0
- package/docs/assets/moni-select/shape--no-round.png +0 -0
- package/docs/assets/moni-select/shape--round.png +0 -0
- package/docs/assets/moni-select/shape--square.png +0 -0
- package/docs/assets/moni-select/sheet--false.png +0 -0
- package/docs/assets/moni-select/sheet--true.png +0 -0
- package/docs/assets/moni-select/size--extra.png +0 -0
- package/docs/assets/moni-select/size--large.png +0 -0
- package/docs/assets/moni-select/size--medium.png +0 -0
- package/docs/assets/moni-select/size--small.png +0 -0
- package/docs/assets/moni-select/trailingIcon--default.png +0 -0
- package/docs/assets/moni-select/value--default.png +0 -0
- package/docs/assets/moni-select/variant--filled.png +0 -0
- package/docs/assets/moni-select/variant--outlined.png +0 -0
- package/docs/assets/moni-select-option/disabled--false.png +0 -0
- package/docs/assets/moni-select-option/disabled--true.png +0 -0
- package/docs/assets/moni-select-option/group--default.png +0 -0
- package/docs/assets/moni-select-option/label--default.png +0 -0
- package/docs/assets/moni-select-option/selected--false.png +0 -0
- package/docs/assets/moni-select-option/selected--true.png +0 -0
- package/docs/assets/moni-select-option/value--default.png +0 -0
- package/docs/assets/moni-shape/border--false.png +0 -0
- package/docs/assets/moni-shape/border--true.png +0 -0
- package/docs/assets/moni-shape/color--primary.png +0 -0
- package/docs/assets/moni-shape/color--secondary.png +0 -0
- package/docs/assets/moni-shape/color--surface.png +0 -0
- package/docs/assets/moni-shape/color--tertiary.png +0 -0
- package/docs/assets/moni-shape/duration--default.png +0 -0
- package/docs/assets/moni-shape/easing--default.png +0 -0
- package/docs/assets/moni-shape/name--empty.png +0 -0
- package/docs/assets/moni-shape/shadow--false.png +0 -0
- package/docs/assets/moni-shape/shadow--true.png +0 -0
- package/docs/assets/moni-shape/shapeRadius--default.png +0 -0
- package/docs/assets/moni-shape/size--extra.png +0 -0
- package/docs/assets/moni-shape/size--large.png +0 -0
- package/docs/assets/moni-shape/size--medium.png +0 -0
- package/docs/assets/moni-shape/size--small.png +0 -0
- package/docs/assets/moni-shape/type--default.png +0 -0
- package/docs/assets/moni-side-sheet/detached--false.png +0 -0
- package/docs/assets/moni-side-sheet/detached--true.png +0 -0
- package/docs/assets/moni-side-sheet/expandedWidth--default.png +0 -0
- package/docs/assets/moni-side-sheet/hideClose--false.png +0 -0
- package/docs/assets/moni-side-sheet/hideClose--true.png +0 -0
- package/docs/assets/moni-side-sheet/maxWidth--default.png +0 -0
- package/docs/assets/moni-side-sheet/modal--false.png +0 -0
- package/docs/assets/moni-side-sheet/modal--true.png +0 -0
- package/docs/assets/moni-side-sheet/noBorder--false.png +0 -0
- package/docs/assets/moni-side-sheet/noBorder--true.png +0 -0
- package/docs/assets/moni-side-sheet/open--true.png +0 -0
- package/docs/assets/moni-side-sheet/showBack--false.png +0 -0
- package/docs/assets/moni-side-sheet/showBack--true.png +0 -0
- package/docs/assets/moni-side-sheet/side--left.png +0 -0
- package/docs/assets/moni-side-sheet/side--right.png +0 -0
- package/docs/assets/moni-side-sheet/title--default.png +0 -0
- package/docs/assets/moni-side-sheet/withHandle--false.png +0 -0
- package/docs/assets/moni-side-sheet/withHandle--true.png +0 -0
- package/docs/assets/moni-slider/disabled--false.png +0 -0
- package/docs/assets/moni-slider/disabled--true.png +0 -0
- package/docs/assets/moni-slider/indicator--false.png +0 -0
- package/docs/assets/moni-slider/indicator--true.png +0 -0
- package/docs/assets/moni-slider/indicatorPlacement--bottom.png +0 -0
- package/docs/assets/moni-slider/indicatorPlacement--top.png +0 -0
- package/docs/assets/moni-slider/insetIcon--default.png +0 -0
- package/docs/assets/moni-slider/isVertical--false.png +0 -0
- package/docs/assets/moni-slider/isVertical--true.png +0 -0
- package/docs/assets/moni-slider/max--default.png +0 -0
- package/docs/assets/moni-slider/min--default.png +0 -0
- package/docs/assets/moni-slider/name--default.png +0 -0
- package/docs/assets/moni-slider/range--false.png +0 -0
- package/docs/assets/moni-slider/range--true.png +0 -0
- package/docs/assets/moni-slider/size--extra.png +0 -0
- package/docs/assets/moni-slider/size--large.png +0 -0
- package/docs/assets/moni-slider/size--medium.png +0 -0
- package/docs/assets/moni-slider/size--small.png +0 -0
- package/docs/assets/moni-slider/size--tiny.png +0 -0
- package/docs/assets/moni-slider/step--default.png +0 -0
- package/docs/assets/moni-slider/tickInterval--default.png +0 -0
- package/docs/assets/moni-slider/ticks--false.png +0 -0
- package/docs/assets/moni-slider/ticks--true.png +0 -0
- package/docs/assets/moni-snackbar/action--default.png +0 -0
- package/docs/assets/moni-snackbar/active--true.png +0 -0
- package/docs/assets/moni-snackbar/maxLines--default.png +0 -0
- package/docs/assets/moni-snackbar/placement--bottom.png +0 -0
- package/docs/assets/moni-snackbar/placement--top.png +0 -0
- package/docs/assets/moni-snackbar/text--default.png +0 -0
- package/docs/assets/moni-split-button/gap--default.png +0 -0
- package/docs/assets/moni-split-button/size--extra.png +0 -0
- package/docs/assets/moni-split-button/size--large.png +0 -0
- package/docs/assets/moni-split-button/size--medium.png +0 -0
- package/docs/assets/moni-split-button/size--small.png +0 -0
- package/docs/assets/moni-split-button/size--xlarge.png +0 -0
- package/docs/assets/moni-split-button/size--xsmall.png +0 -0
- package/docs/assets/moni-split-button/variant--elevated.png +0 -0
- package/docs/assets/moni-split-button/variant--filled.png +0 -0
- package/docs/assets/moni-split-button/variant--outlined.png +0 -0
- package/docs/assets/moni-split-button/variant--tonal.png +0 -0
- package/docs/assets/moni-step/active--false.png +0 -0
- package/docs/assets/moni-step/active--true.png +0 -0
- package/docs/assets/moni-step/completed--false.png +0 -0
- package/docs/assets/moni-step/completed--true.png +0 -0
- package/docs/assets/moni-step/description--default.png +0 -0
- package/docs/assets/moni-step/icon--default.png +0 -0
- package/docs/assets/moni-step/index--default.png +0 -0
- package/docs/assets/moni-step/orientation--horizontal.png +0 -0
- package/docs/assets/moni-step/orientation--vertical.png +0 -0
- package/docs/assets/moni-step/title--default.png +0 -0
- package/docs/assets/moni-stepper/current--default.png +0 -0
- package/docs/assets/moni-stepper/orientation--horizontal.png +0 -0
- package/docs/assets/moni-stepper/orientation--vertical.png +0 -0
- package/docs/assets/moni-switch/checked--false.png +0 -0
- package/docs/assets/moni-switch/checked--true.png +0 -0
- package/docs/assets/moni-switch/checkedIcon--default.png +0 -0
- package/docs/assets/moni-switch/disabled--false.png +0 -0
- package/docs/assets/moni-switch/disabled--true.png +0 -0
- package/docs/assets/moni-switch/icon--false.png +0 -0
- package/docs/assets/moni-switch/icon--true.png +0 -0
- package/docs/assets/moni-switch/label--default.png +0 -0
- package/docs/assets/moni-switch/name--default.png +0 -0
- package/docs/assets/moni-switch/uncheckedIcon--default.png +0 -0
- package/docs/assets/moni-switch/value--default.png +0 -0
- package/docs/assets/moni-tab/active--false.png +0 -0
- package/docs/assets/moni-tab/active--true.png +0 -0
- package/docs/assets/moni-tab/href--default.png +0 -0
- package/docs/assets/moni-tab/icon--default.png +0 -0
- package/docs/assets/moni-tab/label--default.png +0 -0
- package/docs/assets/moni-tabs/align--center.png +0 -0
- package/docs/assets/moni-tabs/align--default.png +0 -0
- package/docs/assets/moni-tabs/align--left.png +0 -0
- package/docs/assets/moni-tabs/align--right.png +0 -0
- package/docs/assets/moni-tabs/indicatorSize--default.png +0 -0
- package/docs/assets/moni-tabs/indicatorSize--max.png +0 -0
- package/docs/assets/moni-tabs/indicatorSize--min.png +0 -0
- package/docs/assets/moni-tabs/mode--primary.png +0 -0
- package/docs/assets/moni-tabs/mode--secondary.png +0 -0
- package/docs/assets/moni-tabs/scrollable--false.png +0 -0
- package/docs/assets/moni-tabs/scrollable--true.png +0 -0
- package/docs/assets/moni-tabs/vertical--false.png +0 -0
- package/docs/assets/moni-tabs/vertical--true.png +0 -0
- package/docs/assets/moni-text-field/disabled--false.png +0 -0
- package/docs/assets/moni-text-field/disabled--true.png +0 -0
- package/docs/assets/moni-text-field/error--false.png +0 -0
- package/docs/assets/moni-text-field/error--true.png +0 -0
- package/docs/assets/moni-text-field/errorText--default.png +0 -0
- package/docs/assets/moni-text-field/helper--default.png +0 -0
- package/docs/assets/moni-text-field/icon--default.png +0 -0
- package/docs/assets/moni-text-field/label--default.png +0 -0
- package/docs/assets/moni-text-field/loading--false.png +0 -0
- package/docs/assets/moni-text-field/loading--true.png +0 -0
- package/docs/assets/moni-text-field/mask--default.png +0 -0
- package/docs/assets/moni-text-field/maskAlias--default.png +0 -0
- package/docs/assets/moni-text-field/maskOptions--default.png +0 -0
- package/docs/assets/moni-text-field/name--default.png +0 -0
- package/docs/assets/moni-text-field/placeholder--default.png +0 -0
- package/docs/assets/moni-text-field/prefix--default.png +0 -0
- package/docs/assets/moni-text-field/shape--no-round.png +0 -0
- package/docs/assets/moni-text-field/shape--round.png +0 -0
- package/docs/assets/moni-text-field/size--extra.png +0 -0
- package/docs/assets/moni-text-field/size--large.png +0 -0
- package/docs/assets/moni-text-field/size--medium.png +0 -0
- package/docs/assets/moni-text-field/size--small.png +0 -0
- package/docs/assets/moni-text-field/suffix--default.png +0 -0
- package/docs/assets/moni-text-field/suffixButtonIcon--default.png +0 -0
- package/docs/assets/moni-text-field/suffixButtonLabel--default.png +0 -0
- package/docs/assets/moni-text-field/trailingIcon--default.png +0 -0
- package/docs/assets/moni-text-field/type--email.png +0 -0
- package/docs/assets/moni-text-field/type--number.png +0 -0
- package/docs/assets/moni-text-field/type--password.png +0 -0
- package/docs/assets/moni-text-field/type--search.png +0 -0
- package/docs/assets/moni-text-field/type--tel.png +0 -0
- package/docs/assets/moni-text-field/type--text.png +0 -0
- package/docs/assets/moni-text-field/type--url.png +0 -0
- package/docs/assets/moni-text-field/value--default.png +0 -0
- package/docs/assets/moni-text-field/variant--filled.png +0 -0
- package/docs/assets/moni-text-field/variant--outlined.png +0 -0
- package/docs/assets/moni-text-field/variant--underlined.png +0 -0
- package/docs/assets/moni-textarea/autosize--false.png +0 -0
- package/docs/assets/moni-textarea/autosize--true.png +0 -0
- package/docs/assets/moni-textarea/disabled--false.png +0 -0
- package/docs/assets/moni-textarea/disabled--true.png +0 -0
- package/docs/assets/moni-textarea/error--false.png +0 -0
- package/docs/assets/moni-textarea/error--true.png +0 -0
- package/docs/assets/moni-textarea/errorText--default.png +0 -0
- package/docs/assets/moni-textarea/helper--default.png +0 -0
- package/docs/assets/moni-textarea/icon--default.png +0 -0
- package/docs/assets/moni-textarea/label--default.png +0 -0
- package/docs/assets/moni-textarea/loading--false.png +0 -0
- package/docs/assets/moni-textarea/loading--true.png +0 -0
- package/docs/assets/moni-textarea/maxRows--default.png +0 -0
- package/docs/assets/moni-textarea/maxlength--default.png +0 -0
- package/docs/assets/moni-textarea/name--default.png +0 -0
- package/docs/assets/moni-textarea/noCounter--false.png +0 -0
- package/docs/assets/moni-textarea/noCounter--true.png +0 -0
- package/docs/assets/moni-textarea/placeholder--default.png +0 -0
- package/docs/assets/moni-textarea/prefix--default.png +0 -0
- package/docs/assets/moni-textarea/rows--default.png +0 -0
- package/docs/assets/moni-textarea/shape--no-round.png +0 -0
- package/docs/assets/moni-textarea/shape--round.png +0 -0
- package/docs/assets/moni-textarea/shape--square.png +0 -0
- package/docs/assets/moni-textarea/size--extra.png +0 -0
- package/docs/assets/moni-textarea/size--large.png +0 -0
- package/docs/assets/moni-textarea/size--medium.png +0 -0
- package/docs/assets/moni-textarea/size--small.png +0 -0
- package/docs/assets/moni-textarea/suffix--default.png +0 -0
- package/docs/assets/moni-textarea/trailingIcon--default.png +0 -0
- package/docs/assets/moni-textarea/value--default.png +0 -0
- package/docs/assets/moni-textarea/variant--filled.png +0 -0
- package/docs/assets/moni-textarea/variant--outlined.png +0 -0
- package/docs/assets/moni-time-picker/hideHeadline--false.png +0 -0
- package/docs/assets/moni-time-picker/hideHeadline--true.png +0 -0
- package/docs/assets/moni-time-picker/hideModeToggle--false.png +0 -0
- package/docs/assets/moni-time-picker/hideModeToggle--true.png +0 -0
- package/docs/assets/moni-time-picker/hourLabel--default.png +0 -0
- package/docs/assets/moni-time-picker/minuteLabel--default.png +0 -0
- package/docs/assets/moni-time-picker/mode--dial.png +0 -0
- package/docs/assets/moni-time-picker/mode--input.png +0 -0
- package/docs/assets/moni-time-picker/orientation--auto.png +0 -0
- package/docs/assets/moni-time-picker/orientation--horizontal.png +0 -0
- package/docs/assets/moni-time-picker/orientation--vertical.png +0 -0
- package/docs/assets/moni-time-picker/use24Hour--false.png +0 -0
- package/docs/assets/moni-time-picker/use24Hour--true.png +0 -0
- package/docs/assets/moni-time-picker/value--default.png +0 -0
- package/docs/assets/moni-toolbar/scrolled--false.png +0 -0
- package/docs/assets/moni-toolbar/scrolled--true.png +0 -0
- package/docs/assets/moni-toolbar/title--default.png +0 -0
- package/docs/assets/moni-toolbar/type--floating.png +0 -0
- package/docs/assets/moni-toolbar/type--standard.png +0 -0
- package/docs/assets/moni-tooltip/position--bottom-end.png +0 -0
- package/docs/assets/moni-tooltip/position--bottom-start.png +0 -0
- package/docs/assets/moni-tooltip/position--bottom.png +0 -0
- package/docs/assets/moni-tooltip/position--left.png +0 -0
- package/docs/assets/moni-tooltip/position--right.png +0 -0
- package/docs/assets/moni-tooltip/position--top-end.png +0 -0
- package/docs/assets/moni-tooltip/position--top-start.png +0 -0
- package/docs/assets/moni-tooltip/position--top.png +0 -0
- package/docs/assets/moni-tooltip/rich--false.png +0 -0
- package/docs/assets/moni-tooltip/rich--true.png +0 -0
- package/docs/assets/moni-tooltip/rotateWithTarget--false.png +0 -0
- package/docs/assets/moni-tooltip/rotateWithTarget--true.png +0 -0
- package/docs/assets/moni-tooltip/size--empty.png +0 -0
- package/docs/assets/moni-tooltip/size--large.png +0 -0
- package/docs/assets/moni-tooltip/size--medium.png +0 -0
- package/docs/assets/moni-tooltip/size--small.png +0 -0
- package/docs/assets/moni-tooltip/text--default.png +0 -0
- package/docs/assets/moni-typography/as--default.png +0 -0
- package/docs/assets/moni-typography/size--large.png +0 -0
- package/docs/assets/moni-typography/size--medium.png +0 -0
- package/docs/assets/moni-typography/size--small.png +0 -0
- package/docs/assets/moni-typography/text--default.png +0 -0
- package/docs/assets/moni-typography/variant--body.png +0 -0
- package/docs/assets/moni-typography/variant--display.png +0 -0
- package/docs/assets/moni-typography/variant--headline.png +0 -0
- package/docs/assets/moni-typography/variant--label.png +0 -0
- package/docs/assets/moni-typography/variant--title.png +0 -0
- package/docs/components/app-bar.md +192 -0
- package/docs/components/badge.md +207 -0
- package/docs/components/bottom-sheet.md +220 -0
- package/docs/components/button-group.md +207 -0
- package/docs/components/button-segment.md +171 -0
- package/docs/components/button.md +277 -0
- package/docs/components/card.md +181 -0
- package/docs/components/carousel.md +275 -0
- package/docs/components/checkbox.md +196 -0
- package/docs/components/chip.md +222 -0
- package/docs/components/color-field.md +195 -0
- package/docs/components/context-menu.md +132 -0
- package/docs/components/dialog.md +193 -0
- package/docs/components/divider.md +123 -0
- package/docs/components/expansion.md +130 -0
- package/docs/components/fab-menu.md +162 -0
- package/docs/components/fab.md +202 -0
- package/docs/components/file-field.md +244 -0
- package/docs/components/icon.md +156 -0
- package/docs/components/list-item.md +189 -0
- package/docs/components/list.md +121 -0
- package/docs/components/loading-indicator.md +124 -0
- package/docs/components/menu-item.md +131 -0
- package/docs/components/menu.md +181 -0
- package/docs/components/morph-modal.md +183 -0
- package/docs/components/nav-item.md +169 -0
- package/docs/components/nav.md +172 -0
- package/docs/components/progress.md +172 -0
- package/docs/components/radio.md +200 -0
- package/docs/components/ripple.md +177 -0
- package/docs/components/segmented-button.md +145 -0
- package/docs/components/select-option.md +148 -0
- package/docs/components/select.md +332 -0
- package/docs/components/shape.md +169 -0
- package/docs/components/side-sheet.md +218 -0
- package/docs/components/slider.md +240 -0
- package/docs/components/snackbar.md +167 -0
- package/docs/components/split-button.md +148 -0
- package/docs/components/step.md +169 -0
- package/docs/components/stepper.md +121 -0
- package/docs/components/switch.md +198 -0
- package/docs/components/tab.md +133 -0
- package/docs/components/tabs.md +163 -0
- package/docs/components/text-field.md +321 -0
- package/docs/components/textarea.md +290 -0
- package/docs/components/time-picker.md +184 -0
- package/docs/components/toolbar.md +142 -0
- package/docs/components/tooltip.md +184 -0
- package/docs/components/typography.md +148 -0
- package/docs/llms.txt +53 -0
- package/package.json +6 -1
- package/src/components/index.test.ts +24 -0
- package/src/components/index.ts +8 -1
- package/src/components/moni-button-group.test.ts +15 -1
- package/src/components/moni-button-group.ts +19 -4
- package/src/components/moni-button.test.ts +8 -2
- package/src/components/moni-button.ts +2 -2
- package/src/components/moni-carousel.test.ts +15 -1
- package/src/components/moni-carousel.ts +19 -2
- package/src/components/moni-color-field.test.ts +71 -0
- package/src/components/moni-color-field.ts +50 -1
- package/src/components/moni-context-menu.test.ts +16 -0
- package/src/components/moni-context-menu.ts +14 -2
- package/src/components/moni-file-field.test.ts +4 -2
- package/src/components/moni-file-field.ts +6 -3
- package/src/components/moni-morph-modal.test.ts +173 -2
- package/src/components/moni-morph-modal.ts +622 -55
- package/src/components/moni-nav.ts +6 -3
- package/src/components/moni-select-option.ts +19 -0
- package/src/components/moni-select.test.ts +16 -0
- package/src/components/moni-select.ts +2 -0
- package/src/components/moni-side-sheet.test.ts +39 -2
- package/src/components/moni-side-sheet.ts +49 -17
- package/src/components/moni-snackbar.test.ts +16 -0
- package/src/components/moni-snackbar.ts +24 -1
- package/src/components/moni-stepper.ts +4 -0
- package/src/components/moni-text-field.test.ts +25 -0
- package/src/components/moni-text-field.ts +2 -0
- package/src/components/moni-textarea.test.ts +16 -0
- package/src/components/moni-textarea.ts +2 -0
- package/src/components/moni-toolbar.test.ts +6 -3
- package/src/components/moni-toolbar.ts +4 -2
- package/src/components/moni-tooltip.test.ts +77 -3
- package/src/components/moni-tooltip.ts +194 -3
- package/src/index.ts +8 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Tooltip
|
|
2
|
+
|
|
3
|
+
Componente Material Design 3 Tooltip (Información sobre herramientas).
|
|
4
|
+
|
|
5
|
+
Los tooltips proporcionan etiquetas de texto contextual o contenido enriquecido que aparecen cuando
|
|
6
|
+
los usuarios pasan el cursor por encima, enfocan o tocan un elemento. Muestran información
|
|
7
|
+
complementaria que ayuda a los usuarios a entender los elementos de la interfaz sin
|
|
8
|
+
ocupar permanentemente espacio en la pantalla.
|
|
9
|
+
|
|
10
|
+
**Referencia a la especificación M3:** `m3-docs/components/tooltips/specs.md`
|
|
11
|
+
|
|
12
|
+
**Tipos:**
|
|
13
|
+
- **Plain** (por defecto) — Etiqueta solo de texto para descripciones simples (máx. 1 línea).
|
|
14
|
+
- **Rich** (atributo `rich`) — Contenido HTML que incluye texto formateado,
|
|
15
|
+
enlaces e iconos. Los tooltips enriquecidos pueden contener múltiples líneas y enlaces de acción.
|
|
16
|
+
|
|
17
|
+
**Ubicaciones (Placements):**
|
|
18
|
+
- `top` (por defecto), `top-start`, `top-end`
|
|
19
|
+
- `bottom`, `bottom-start`, `bottom-end`
|
|
20
|
+
|
|
21
|
+
**Mecanismo de activación (Trigger):**
|
|
22
|
+
El tooltip usa `position: absolute` dentro del elemento padre. El padre
|
|
23
|
+
debe tener `position: relative` (establecido automáticamente vía `connectedCallback`).
|
|
24
|
+
Los eventos hover/focus en el padre activan los selectores CSS `:hover` y
|
|
25
|
+
`:focus-within` del tooltip, los cuales impulsan la transición de mostrar/ocultar.
|
|
26
|
+
|
|
27
|
+
**Accesibilidad:**
|
|
28
|
+
- El tooltip tiene `role="tooltip"`.
|
|
29
|
+
- Para accesibilidad por teclado, el padre debe tener `aria-describedby`
|
|
30
|
+
apuntando al atributo `id` del tooltip. El componente expone un
|
|
31
|
+
getter `tooltipId` para este propósito.
|
|
32
|
+
- La tecla `Escape` cierra los tooltips enriquecidos.
|
|
33
|
+
|
|
34
|
+
- Tag: `moni-tooltip`
|
|
35
|
+
- Clase: `MoniTooltip`
|
|
36
|
+
- Fuente: `src/components/moni-tooltip.ts`
|
|
37
|
+
|
|
38
|
+
## Cuándo usarlo
|
|
39
|
+
|
|
40
|
+
Usa `moni-tooltip` cuando la interfaz necesite el patrón que describe este componente. Antes de elegirlo, revisa sus estados, contenido permitido y comportamiento accesible; las capturas del final muestran el resultado real de cada variante.
|
|
41
|
+
|
|
42
|
+
## Uso básico
|
|
43
|
+
|
|
44
|
+
```html
|
|
45
|
+
<!-- Tooltip simple (Plain) -->
|
|
46
|
+
<button aria-describedby="save-tip">
|
|
47
|
+
Guardar
|
|
48
|
+
<moni-tooltip id="save-tip" text="Ctrl+S"></moni-tooltip>
|
|
49
|
+
</button>
|
|
50
|
+
|
|
51
|
+
<!-- Tooltip enriquecido (Rich) -->
|
|
52
|
+
<button>
|
|
53
|
+
Filtrar
|
|
54
|
+
<moni-tooltip rich position="bottom">
|
|
55
|
+
<strong>Filtrar por fecha</strong>
|
|
56
|
+
<p>Selecciona un rango de fechas para filtrar resultados.</p>
|
|
57
|
+
</moni-tooltip>
|
|
58
|
+
</button>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Ejemplo práctico con Tailwind CSS v4
|
|
62
|
+
|
|
63
|
+
Tailwind controla composición, ancho, espaciado y responsividad alrededor del Web Component. Moni UI conserva el aspecto interno mediante Shadow DOM y design tokens.
|
|
64
|
+
|
|
65
|
+
```html
|
|
66
|
+
<div class="mx-auto flex w-full max-w-md flex-col gap-4 p-6">
|
|
67
|
+
<moni-tooltip><moni-button icon="info" aria-label="Más información"></moni-button></moni-tooltip>
|
|
68
|
+
</div>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
No necesitas un plugin de Tailwind. En tu CSS v4 importa ambas capas una sola vez:
|
|
72
|
+
|
|
73
|
+
```css
|
|
74
|
+
@import "tailwindcss";
|
|
75
|
+
@import "@moni-labs/moni-ui/styles";
|
|
76
|
+
|
|
77
|
+
@theme {
|
|
78
|
+
--font-sans: Inter, ui-sans-serif, system-ui, sans-serif;
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Las utilities aplicadas directamente al tag afectan su caja anfitriona. No uses selectores Tailwind para asumir acceso al DOM interno; personaliza únicamente con los CSS Parts y Custom Properties públicos enumerados más abajo.
|
|
83
|
+
|
|
84
|
+
## Recomendaciones
|
|
85
|
+
|
|
86
|
+
- Usa `moni-tooltip` para su propósito semántico; no lo sustituyas por un `div` estilizado.
|
|
87
|
+
- Aplica Tailwind al layout exterior. Para el interior del Shadow DOM usa las variables CSS y `::part()` documentados.
|
|
88
|
+
- Prueba los estados claro, oscuro, foco por teclado, deshabilitado y viewport móvil antes de publicar.
|
|
89
|
+
|
|
90
|
+
## Propiedades y atributos
|
|
91
|
+
|
|
92
|
+
| Atributo | Propiedad | Tipo | Default | Descripción |
|
|
93
|
+
|---|---|---|---|---|
|
|
94
|
+
| `text` | `text` | `string` | `''` | Contenido de texto simple para mostrar. Utilizado cuando `rich` es falso. |
|
|
95
|
+
| `position` | `position` | `'top' \| 'top-start' \| 'top-end' \| 'bottom' \| 'bottom-start' \| 'bottom-end' \| 'left' \| 'right'` | `'top'` | Ubicación preferida relativa al ancla/activador. |
|
|
96
|
+
| `rotate-with-target` | `rotateWithTarget` | `boolean` | `false` | Si está activo, el tooltip conserva el ángulo visual del trigger. |
|
|
97
|
+
| `size` | `size` | `'' \| 'small' \| 'medium' \| 'large'` | `''` | Mapeo de tamaño opcional (usado por hojas de estilo internas para escalar fuente/relleno). |
|
|
98
|
+
| `rich` | `rich` | `boolean` | `false` | Si es true, cambia al modo de Tooltip Enriquecido (permite HTML/componentes en el slot por defecto). |
|
|
99
|
+
|
|
100
|
+
## Slots
|
|
101
|
+
|
|
102
|
+
- `default`: Contenido enriquecido para el cuerpo del tooltip (solo usado cuando `rich=true`).
|
|
103
|
+
|
|
104
|
+
## Eventos
|
|
105
|
+
|
|
106
|
+
No declara eventos propios.
|
|
107
|
+
|
|
108
|
+
## Métodos públicos
|
|
109
|
+
|
|
110
|
+
No expone métodos públicos adicionales.
|
|
111
|
+
|
|
112
|
+
## CSS Parts
|
|
113
|
+
|
|
114
|
+
- `tooltip`: Parte interna personalizable.
|
|
115
|
+
|
|
116
|
+
## CSS Custom Properties consumidas
|
|
117
|
+
|
|
118
|
+
- `--_anchor-name`
|
|
119
|
+
- `--_space`
|
|
120
|
+
- `--_tooltip-origin-x`
|
|
121
|
+
- `--_tooltip-origin-y`
|
|
122
|
+
- `--_tooltip-target-rotation`
|
|
123
|
+
- `--font`
|
|
124
|
+
- `--inverse-on-surface`
|
|
125
|
+
- `--inverse-surface`
|
|
126
|
+
- `--speed2`
|
|
127
|
+
|
|
128
|
+
## Referencia visual por variable
|
|
129
|
+
|
|
130
|
+
Cada imagen se genera con el componente real: cambia solo la variable indicada y mantiene estable el resto del escenario. Úsala para comparar estados, no como sustituto de la API.
|
|
131
|
+
|
|
132
|
+
### `text`
|
|
133
|
+
|
|
134
|
+
Contenido de texto simple para mostrar. Utilizado cuando `rich` es falso.
|
|
135
|
+
|
|
136
|
+

|
|
137
|
+
|
|
138
|
+
### `position`
|
|
139
|
+
|
|
140
|
+
Ubicación preferida relativa al ancla/activador.
|
|
141
|
+
|
|
142
|
+

|
|
143
|
+
|
|
144
|
+

|
|
145
|
+
|
|
146
|
+

|
|
147
|
+
|
|
148
|
+

|
|
149
|
+
|
|
150
|
+

|
|
151
|
+
|
|
152
|
+

|
|
153
|
+
|
|
154
|
+

|
|
155
|
+
|
|
156
|
+

|
|
157
|
+
|
|
158
|
+
### `rotate-with-target`
|
|
159
|
+
|
|
160
|
+
Si está activo, el tooltip conserva el ángulo visual del trigger.
|
|
161
|
+
|
|
162
|
+

|
|
163
|
+
|
|
164
|
+

|
|
165
|
+
|
|
166
|
+
### `size`
|
|
167
|
+
|
|
168
|
+
Mapeo de tamaño opcional (usado por hojas de estilo internas para escalar fuente/relleno).
|
|
169
|
+
|
|
170
|
+

|
|
171
|
+
|
|
172
|
+

|
|
173
|
+
|
|
174
|
+

|
|
175
|
+
|
|
176
|
+

|
|
177
|
+
|
|
178
|
+
### `rich`
|
|
179
|
+
|
|
180
|
+
Si es true, cambia al modo de Tooltip Enriquecido (permite HTML/componentes en el slot por defecto).
|
|
181
|
+
|
|
182
|
+

|
|
183
|
+
|
|
184
|
+

|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Typography
|
|
2
|
+
|
|
3
|
+
Componente Material Design 3 Typography (Tipografía).
|
|
4
|
+
|
|
5
|
+
Un componente de texto especializado que aplica la escala tipográfica M3. Asegura
|
|
6
|
+
que la tipografía sea consistente, accesible y correctamente estilizada en toda la
|
|
7
|
+
aplicación sin requerir clases CSS manuales.
|
|
8
|
+
|
|
9
|
+
**Categorías de Escala Tipográfica:**
|
|
10
|
+
- `display`: El texto más grande en la pantalla, reservado para texto corto e importante
|
|
11
|
+
o números. Funciona mejor en pantallas grandes. (Renderiza `<h1>` por defecto).
|
|
12
|
+
- `headline`: Texto de alto énfasis para encabezados primarios de página/sección.
|
|
13
|
+
(Renderiza `<h2>` por defecto).
|
|
14
|
+
- `title`: Texto de énfasis medio utilizado para encabezados de diálogos o títulos
|
|
15
|
+
de sección más pequeños. (Renderiza `<h3>` por defecto).
|
|
16
|
+
- `body`: Texto de párrafo estándar utilizado para contenido largo.
|
|
17
|
+
(Renderiza `<p>` por defecto).
|
|
18
|
+
- `label`: Texto pequeño y utilitario usado para botones, leyendas y elementos
|
|
19
|
+
de formulario. (Renderiza `<label>` por defecto).
|
|
20
|
+
|
|
21
|
+
Cada categoría soporta tres tamaños: `large`, `medium` y `small`.
|
|
22
|
+
|
|
23
|
+
**Etiquetas Semánticas:**
|
|
24
|
+
El componente selecciona automáticamente una etiqueta semántica HTML apropiada basada en
|
|
25
|
+
la variante. Puedes sobrescribir esto explícitamente configurando el atributo `as`
|
|
26
|
+
(ej., para renderizar un estilo `headline` pero usando una etiqueta `<span>` por razones
|
|
27
|
+
de SEO o estructurales).
|
|
28
|
+
|
|
29
|
+
- Tag: `moni-typography`
|
|
30
|
+
- Clase: `MoniTypography`
|
|
31
|
+
- Fuente: `src/components/moni-typography.ts`
|
|
32
|
+
|
|
33
|
+
## Cuándo usarlo
|
|
34
|
+
|
|
35
|
+
Usa `moni-typography` cuando la interfaz necesite el patrón que describe este componente. Antes de elegirlo, revisa sus estados, contenido permitido y comportamiento accesible; las capturas del final muestran el resultado real de cada variante.
|
|
36
|
+
|
|
37
|
+
## Uso básico
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<!-- Renderiza un <h1> con estilos display-large -->
|
|
41
|
+
<moni-typography variant="display" size="large">Texto Héroe</moni-typography>
|
|
42
|
+
|
|
43
|
+
<!-- Renderiza un <p> con estilos body-medium -->
|
|
44
|
+
<moni-typography variant="body">Texto de párrafo estándar.</moni-typography>
|
|
45
|
+
|
|
46
|
+
<!-- Sobrescribiendo la etiqueta semántica -->
|
|
47
|
+
<moni-typography variant="title" as="span">Título en línea</moni-typography>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Ejemplo práctico con Tailwind CSS v4
|
|
51
|
+
|
|
52
|
+
Tailwind controla composición, ancho, espaciado y responsividad alrededor del Web Component. Moni UI conserva el aspecto interno mediante Shadow DOM y design tokens.
|
|
53
|
+
|
|
54
|
+
```html
|
|
55
|
+
<div class="mx-auto flex w-full max-w-md flex-col gap-4 p-6">
|
|
56
|
+
<moni-typography></moni-typography>
|
|
57
|
+
</div>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
No necesitas un plugin de Tailwind. En tu CSS v4 importa ambas capas una sola vez:
|
|
61
|
+
|
|
62
|
+
```css
|
|
63
|
+
@import "tailwindcss";
|
|
64
|
+
@import "@moni-labs/moni-ui/styles";
|
|
65
|
+
|
|
66
|
+
@theme {
|
|
67
|
+
--font-sans: Inter, ui-sans-serif, system-ui, sans-serif;
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Las utilities aplicadas directamente al tag afectan su caja anfitriona. No uses selectores Tailwind para asumir acceso al DOM interno; personaliza únicamente con los CSS Parts y Custom Properties públicos enumerados más abajo.
|
|
72
|
+
|
|
73
|
+
## Recomendaciones
|
|
74
|
+
|
|
75
|
+
- Usa `moni-typography` para su propósito semántico; no lo sustituyas por un `div` estilizado.
|
|
76
|
+
- Aplica Tailwind al layout exterior. Para el interior del Shadow DOM usa las variables CSS y `::part()` documentados.
|
|
77
|
+
- Prueba los estados claro, oscuro, foco por teclado, deshabilitado y viewport móvil antes de publicar.
|
|
78
|
+
|
|
79
|
+
## Propiedades y atributos
|
|
80
|
+
|
|
81
|
+
| Atributo | Propiedad | Tipo | Default | Descripción |
|
|
82
|
+
|---|---|---|---|---|
|
|
83
|
+
| `variant` | `variant` | `'display' \| 'headline' \| 'title' \| 'body' \| 'label'` | `'body'` | La categoría de la escala tipográfica M3 a aplicar. Dicta la lógica base de font-family, line-height, weight, y letter-spacing. |
|
|
84
|
+
| `size` | `size` | `'large' \| 'medium' \| 'small'` | `'medium'` | El tamaño dentro de la categoría de variante elegida. |
|
|
85
|
+
| `as` | `as` | `string \| null` | `null` | Sobrescribe la etiqueta semántica HTML por defecto (ej. 'h1', 'p', 'span') que se asigna automáticamente basándose en la variante (`variant`). |
|
|
86
|
+
| `text` | `text` | `string` | `''` | Contenido de texto simple opcional. Típicamente usarías el slot por defecto en su lugar. |
|
|
87
|
+
|
|
88
|
+
## Slots
|
|
89
|
+
|
|
90
|
+
- `default`: El contenido de texto a mostrar.
|
|
91
|
+
|
|
92
|
+
## Eventos
|
|
93
|
+
|
|
94
|
+
No declara eventos propios.
|
|
95
|
+
|
|
96
|
+
## Métodos públicos
|
|
97
|
+
|
|
98
|
+
No expone métodos públicos adicionales.
|
|
99
|
+
|
|
100
|
+
## CSS Parts
|
|
101
|
+
|
|
102
|
+
- `text`: Parte interna personalizable.
|
|
103
|
+
|
|
104
|
+
## CSS Custom Properties consumidas
|
|
105
|
+
|
|
106
|
+
- `--font`
|
|
107
|
+
|
|
108
|
+
## Referencia visual por variable
|
|
109
|
+
|
|
110
|
+
Cada imagen se genera con el componente real: cambia solo la variable indicada y mantiene estable el resto del escenario. Úsala para comparar estados, no como sustituto de la API.
|
|
111
|
+
|
|
112
|
+
### `variant`
|
|
113
|
+
|
|
114
|
+
La categoría de la escala tipográfica M3 a aplicar.
|
|
115
|
+
Dicta la lógica base de font-family, line-height, weight, y letter-spacing.
|
|
116
|
+
|
|
117
|
+

|
|
118
|
+
|
|
119
|
+

|
|
120
|
+
|
|
121
|
+

|
|
122
|
+
|
|
123
|
+

|
|
124
|
+
|
|
125
|
+

|
|
126
|
+
|
|
127
|
+
### `size`
|
|
128
|
+
|
|
129
|
+
El tamaño dentro de la categoría de variante elegida.
|
|
130
|
+
|
|
131
|
+

|
|
132
|
+
|
|
133
|
+

|
|
134
|
+
|
|
135
|
+

|
|
136
|
+
|
|
137
|
+
### `as`
|
|
138
|
+
|
|
139
|
+
Sobrescribe la etiqueta semántica HTML por defecto (ej. 'h1', 'p', 'span')
|
|
140
|
+
que se asigna automáticamente basándose en la variante (`variant`).
|
|
141
|
+
|
|
142
|
+

|
|
143
|
+
|
|
144
|
+
### `text`
|
|
145
|
+
|
|
146
|
+
Contenido de texto simple opcional. Típicamente usarías el slot por defecto en su lugar.
|
|
147
|
+
|
|
148
|
+

|
package/docs/llms.txt
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# @moni-labs/moni-ui — índice para LLM
|
|
2
|
+
|
|
3
|
+
Biblioteca de 49 Web Components Material Design 3 Expressive. Importa `@moni-labs/moni-ui` y `@moni-labs/moni-ui/styles`. Consulta una ficha antes de generar markup.
|
|
4
|
+
|
|
5
|
+
- moni-app-bar: docs/components/app-bar.md — Componente Material Design 3 App Bar.
|
|
6
|
+
- moni-badge: docs/components/badge.md — Componente Material Design 3 Badge.
|
|
7
|
+
- moni-bottom-sheet: docs/components/bottom-sheet.md — Componente Material Design 3 Bottom Sheet.
|
|
8
|
+
- moni-button: docs/components/button.md — Componente Material Design 3 Button.
|
|
9
|
+
- moni-button-group: docs/components/button-group.md — Componente Material Design 3 Button Group.
|
|
10
|
+
- moni-button-segment: docs/components/button-segment.md — Componente Material Design 3 Segmented Button (Heredado).
|
|
11
|
+
- moni-card: docs/components/card.md — Componente Material Design 3 Card.
|
|
12
|
+
- moni-carousel: docs/components/carousel.md — Componente Material Design 3 Expressive Carousel.
|
|
13
|
+
- moni-checkbox: docs/components/checkbox.md — Componente Material Design 3 Checkbox.
|
|
14
|
+
- moni-chip: docs/components/chip.md — Componente Material Design 3 Chip.
|
|
15
|
+
- moni-color-field: docs/components/color-field.md — Componente Material Design 3 Color Field (Campo de Color).
|
|
16
|
+
- moni-context-menu: docs/components/context-menu.md — Componente Material Design 3 Context Menu (Menú Contextual).
|
|
17
|
+
- moni-dialog: docs/components/dialog.md — Componente Material Design 3 Dialog (Diálogo).
|
|
18
|
+
- moni-divider: docs/components/divider.md — Componente Material Design 3 Divider (Separador).
|
|
19
|
+
- moni-expansion: docs/components/expansion.md — Componente Material Design 3 Expansion panel (Panel de expansión).
|
|
20
|
+
- moni-fab: docs/components/fab.md — Material 3 Expressive floating action button.
|
|
21
|
+
- moni-fab-menu: docs/components/fab-menu.md — Accessible Material 3 Expressive FAB menu / speed dial.
|
|
22
|
+
- moni-file-field: docs/components/file-field.md — Componente Material Design 3 File Field (Campo de Archivo).
|
|
23
|
+
- moni-icon: docs/components/icon.md — Componente de icono solo visual que utiliza la fuente variable Material Symbols.
|
|
24
|
+
- moni-list: docs/components/list.md — Componente Material Design 3 List (Lista).
|
|
25
|
+
- moni-list-item: docs/components/list-item.md — Componente Material Design 3 List Item (Elemento de Lista).
|
|
26
|
+
- moni-loading-indicator: docs/components/loading-indicator.md — Componente Material Design 3 Loading Indicator (Indicador de carga).
|
|
27
|
+
- moni-menu: docs/components/menu.md — Componente Material Design 3 Menu (Menú).
|
|
28
|
+
- moni-menu-item: docs/components/menu-item.md — Componente Material Design 3 Menu Item (Elemento de Menú).
|
|
29
|
+
- moni-morph-modal: docs/components/morph-modal.md — Componente moni-morph-modal de Moni UI.
|
|
30
|
+
- moni-nav: docs/components/nav.md — Componente contenedor de Navegación Material Design 3.
|
|
31
|
+
- moni-nav-item: docs/components/nav-item.md — Componente Material Design 3 Navigation Item (Elemento de Navegación).
|
|
32
|
+
- moni-progress: docs/components/progress.md — Material 3 Expressive progress indicator.
|
|
33
|
+
- moni-radio: docs/components/radio.md — Componente Material Design 3 Radio Button (Botón de Opción).
|
|
34
|
+
- moni-ripple: docs/components/ripple.md — Componente de decoración de onda (ripple) puramente visual.
|
|
35
|
+
- moni-segmented-button: docs/components/segmented-button.md — Componente Material Design 3 Segmented Button (Botón Segmentado) (Heredado).
|
|
36
|
+
- moni-select: docs/components/select.md — Componente Material Design 3 Select (Menú Desplegable).
|
|
37
|
+
- moni-select-option: docs/components/select-option.md — Componente Material Design 3 Select Option (Opción de Selección).
|
|
38
|
+
- moni-shape: docs/components/shape.md — Material 3 Expressive shape with built-in polygon morphing.
|
|
39
|
+
- moni-side-sheet: docs/components/side-sheet.md — Componente Material Design 3 Side Sheet (Hoja o panel lateral).
|
|
40
|
+
- moni-slider: docs/components/slider.md — Componente Material Design 3 Slider (Control deslizante).
|
|
41
|
+
- moni-snackbar: docs/components/snackbar.md — Componente Material Design 3 Snackbar (Barra de notificaciones).
|
|
42
|
+
- moni-split-button: docs/components/split-button.md — Componente Material Design 3 Split Button (Botón dividido).
|
|
43
|
+
- moni-step: docs/components/step.md — Componente Material Design 3 Step (Paso).
|
|
44
|
+
- moni-stepper: docs/components/stepper.md — Componente Material Design 3 Stepper (Pasos/Progresión).
|
|
45
|
+
- moni-switch: docs/components/switch.md — Componente Material Design 3 Switch (Interruptor).
|
|
46
|
+
- moni-tab: docs/components/tab.md — Componente Material Design 3 Tab (Pestaña).
|
|
47
|
+
- moni-tabs: docs/components/tabs.md — Componente Material Design 3 Tabs container (Contenedor de pestañas).
|
|
48
|
+
- moni-text-field: docs/components/text-field.md — Componente Material Design 3 Text Field (Campo de texto).
|
|
49
|
+
- moni-textarea: docs/components/textarea.md — Componente Material Design 3 Textarea (Área de texto).
|
|
50
|
+
- moni-time-picker: docs/components/time-picker.md — Componente Material Design 3 Time Picker (Selector de hora).
|
|
51
|
+
- moni-toolbar: docs/components/toolbar.md — Componente Material Design 3 Top App Bar (Barra de herramientas superior).
|
|
52
|
+
- moni-tooltip: docs/components/tooltip.md — Componente Material Design 3 Tooltip (Información sobre herramientas).
|
|
53
|
+
- moni-typography: docs/components/typography.md — Componente Material Design 3 Typography (Tipografía).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moni-labs/moni-ui",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Design system unificado para Moni — Material Design 3 Expressive, mobile-first.",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"files": [
|
|
45
45
|
"dist",
|
|
46
46
|
"src",
|
|
47
|
+
"docs",
|
|
47
48
|
"custom-elements.json",
|
|
48
49
|
"README.md",
|
|
49
50
|
"package.json"
|
|
@@ -77,6 +78,10 @@
|
|
|
77
78
|
},
|
|
78
79
|
"scripts": {
|
|
79
80
|
"build": "node scripts/build.js",
|
|
81
|
+
"docs": "node scripts/generate-docs.mjs",
|
|
82
|
+
"docs:capture": "node scripts/capture-docs.mjs",
|
|
83
|
+
"docs:all": "npm run build && npm run docs && npm run docs:capture",
|
|
84
|
+
"docs:check": "node scripts/generate-docs.mjs --check",
|
|
80
85
|
"analyze": "custom-elements-manifest analyze",
|
|
81
86
|
"test": "vitest run",
|
|
82
87
|
"test:verbose": "vitest run --reporter=verbose",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import './index.js';
|
|
3
|
+
|
|
4
|
+
const publicElements = [
|
|
5
|
+
'moni-app-bar', 'moni-badge', 'moni-bottom-sheet', 'moni-button',
|
|
6
|
+
'moni-button-group', 'moni-button-segment', 'moni-card', 'moni-carousel',
|
|
7
|
+
'moni-checkbox', 'moni-chip', 'moni-color-field', 'moni-context-menu',
|
|
8
|
+
'moni-dialog', 'moni-divider', 'moni-expansion', 'moni-fab', 'moni-fab-menu',
|
|
9
|
+
'moni-file-field', 'moni-icon', 'moni-list', 'moni-list-item',
|
|
10
|
+
'moni-loading-indicator', 'moni-menu', 'moni-menu-item', 'moni-morph-modal',
|
|
11
|
+
'moni-nav', 'moni-nav-item', 'moni-progress', 'moni-radio', 'moni-ripple',
|
|
12
|
+
'moni-segmented-button', 'moni-select', 'moni-select-option', 'moni-shape',
|
|
13
|
+
'moni-side-sheet', 'moni-slider', 'moni-snackbar', 'moni-split-button',
|
|
14
|
+
'moni-step', 'moni-stepper', 'moni-switch', 'moni-tab', 'moni-tabs',
|
|
15
|
+
'moni-text-field', 'moni-textarea', 'moni-time-picker', 'moni-toolbar',
|
|
16
|
+
'moni-tooltip', 'moni-typography'
|
|
17
|
+
] as const;
|
|
18
|
+
|
|
19
|
+
describe('full component entry', () => {
|
|
20
|
+
it('registers every documented public custom element', () => {
|
|
21
|
+
expect(publicElements).toHaveLength(49);
|
|
22
|
+
for (const tag of publicElements) expect(customElements.get(tag), tag).toBeDefined();
|
|
23
|
+
});
|
|
24
|
+
});
|
package/src/components/index.ts
CHANGED
|
@@ -8,18 +8,24 @@
|
|
|
8
8
|
// Auto-registra todos los Web Components de Moni UI.
|
|
9
9
|
// Importar este archivo define cada elemento personalizado <moni-*>.
|
|
10
10
|
|
|
11
|
+
export { MoniAppBar } from './moni-app-bar.js';
|
|
11
12
|
export { MoniBadge } from './moni-badge.js';
|
|
12
13
|
export { MoniBottomSheet } from './moni-bottom-sheet.js';
|
|
13
14
|
export { MoniButton } from './moni-button.js';
|
|
15
|
+
export { MoniCard } from './moni-card.js';
|
|
14
16
|
export { MoniCheckbox } from './moni-checkbox.js';
|
|
15
17
|
export { MoniChip } from './moni-chip.js';
|
|
16
18
|
export { MoniColorField } from './moni-color-field.js';
|
|
17
19
|
export { MoniContextMenu } from './moni-context-menu.js';
|
|
18
20
|
export { MoniDialog } from './moni-dialog.js';
|
|
21
|
+
export { MoniDivider } from './moni-divider.js';
|
|
19
22
|
export { MoniExpansion } from './moni-expansion.js';
|
|
20
23
|
export { MoniFab } from './moni-fab.js';
|
|
21
24
|
export { MoniFabMenu } from './moni-fab-menu.js';
|
|
22
25
|
export { MoniFileField } from './moni-file-field.js';
|
|
26
|
+
export { MoniIcon } from './moni-icon.js';
|
|
27
|
+
export { MoniList } from './moni-list.js';
|
|
28
|
+
export { MoniListItem } from './moni-list-item.js';
|
|
23
29
|
export { MoniMenu } from './moni-menu.js';
|
|
24
30
|
export { MoniMenuItem } from './moni-menu-item.js';
|
|
25
31
|
export { MoniNav } from './moni-nav.js';
|
|
@@ -39,8 +45,10 @@ export { MoniTabs } from './moni-tabs.js';
|
|
|
39
45
|
export { MoniTextarea } from './moni-textarea.js';
|
|
40
46
|
export { MoniTextField } from './moni-text-field.js';
|
|
41
47
|
export { MoniTimePicker } from './moni-time-picker.js';
|
|
48
|
+
export { MoniToolbar } from './moni-toolbar.js';
|
|
42
49
|
export { MoniSideSheet } from './moni-side-sheet.js';
|
|
43
50
|
export { MoniTooltip } from './moni-tooltip.js';
|
|
51
|
+
export { MoniTypography } from './moni-typography.js';
|
|
44
52
|
export { MoniButtonGroup } from './moni-button-group.js';
|
|
45
53
|
export { MoniSplitButton } from './moni-split-button.js';
|
|
46
54
|
export { MoniButtonSegment } from './moni-button-segment.js';
|
|
@@ -49,4 +57,3 @@ export { MoniLoadingIndicator } from './moni-loading-indicator.js';
|
|
|
49
57
|
export { MoniMorphModal } from './moni-morph-modal.js';
|
|
50
58
|
export { MoniCarousel } from './moni-carousel.js';
|
|
51
59
|
export { MoniShape } from './moni-shape.js';
|
|
52
|
-
|
|
@@ -155,7 +155,7 @@ describe('moni-button-group', () => {
|
|
|
155
155
|
.map((style: any) => style?.cssText ?? '')
|
|
156
156
|
.join(' ');
|
|
157
157
|
expect(cssText).toContain("[variant='connected']) ::slotted(moni-button)");
|
|
158
|
-
expect(cssText).toContain('flex: 1 1 0');
|
|
158
|
+
expect(cssText).toContain('flex: var(--_moni-group-flex-grow, 1) 1 0');
|
|
159
159
|
expect(cssText).toContain('--moni-button-inline-size: 100%');
|
|
160
160
|
});
|
|
161
161
|
|
|
@@ -198,6 +198,20 @@ describe('moni-button-group', () => {
|
|
|
198
198
|
expect(buttons[1].getAttribute('data-group-adjacent-selected')).toBe('shared');
|
|
199
199
|
});
|
|
200
200
|
|
|
201
|
+
it('expande toda la superficie del activo en modo flexible y reduce los demás por igual', async () => {
|
|
202
|
+
group.resizing = 'flexible';
|
|
203
|
+
const buttons = Array.from({ length: 3 }, () => document.createElement('moni-button') as MoniButton);
|
|
204
|
+
group.append(...buttons);
|
|
205
|
+
await group.updateComplete;
|
|
206
|
+
buttons[0].active = true;
|
|
207
|
+
await buttons[0].updateComplete;
|
|
208
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
209
|
+
|
|
210
|
+
expect(buttons[0].style.getPropertyValue('--_moni-group-flex-grow')).toBe('1.24');
|
|
211
|
+
expect(buttons[1].style.getPropertyValue('--_moni-group-flex-grow')).toBe('0.88');
|
|
212
|
+
expect(buttons[2].style.getPropertyValue('--_moni-group-flex-grow')).toBe('0.88');
|
|
213
|
+
});
|
|
214
|
+
|
|
201
215
|
it('renderiza role="group" en el contenedor por defecto (accesibilidad M3)', async () => {
|
|
202
216
|
await group.updateComplete;
|
|
203
217
|
const container = group.shadowRoot?.querySelector('[part="container"]');
|
|
@@ -191,9 +191,11 @@ export class MoniButtonGroup extends MoniElement {
|
|
|
191
191
|
:host([variant='connected']) ::slotted(moni-button),
|
|
192
192
|
:host([variant='connected']) ::slotted(moni-icon-button),
|
|
193
193
|
:host([resizing='flexible']) ::slotted(moni-button) {
|
|
194
|
-
flex: 1 1 0;
|
|
194
|
+
flex: var(--_moni-group-flex-grow, 1) 1 0;
|
|
195
|
+
transition: flex-grow 450ms cubic-bezier(0.2, 0, 0, 1);
|
|
195
196
|
}
|
|
196
|
-
:host([variant='connected']) ::slotted(moni-button)
|
|
197
|
+
:host([variant='connected']) ::slotted(moni-button),
|
|
198
|
+
:host([variant='standard'][resizing='flexible']) ::slotted(moni-button) {
|
|
197
199
|
--moni-button-inline-size: 100%;
|
|
198
200
|
min-inline-size: 0;
|
|
199
201
|
}
|
|
@@ -261,7 +263,7 @@ export class MoniButtonGroup extends MoniElement {
|
|
|
261
263
|
*/
|
|
262
264
|
protected override updated(changedProperties: Map<string | number | symbol, unknown>) {
|
|
263
265
|
super.updated(changedProperties);
|
|
264
|
-
if (changedProperties.has('variant') || changedProperties.has('size') || changedProperties.has('gap') || changedProperties.has('shape')) {
|
|
266
|
+
if (changedProperties.has('variant') || changedProperties.has('size') || changedProperties.has('gap') || changedProperties.has('shape') || changedProperties.has('resizing')) {
|
|
265
267
|
this.updateChildren();
|
|
266
268
|
}
|
|
267
269
|
}
|
|
@@ -286,7 +288,10 @@ export class MoniButtonGroup extends MoniElement {
|
|
|
286
288
|
* selections remain visually balanced instead of collapsing one neighbour. */
|
|
287
289
|
private updateSelectionNeighbors() {
|
|
288
290
|
const buttons = this.getButtons();
|
|
289
|
-
buttons.forEach((button) =>
|
|
291
|
+
buttons.forEach((button) => {
|
|
292
|
+
button.removeAttribute('data-group-adjacent-selected');
|
|
293
|
+
button.style.removeProperty('--_moni-group-flex-grow');
|
|
294
|
+
});
|
|
290
295
|
if (this.variant !== 'standard') return;
|
|
291
296
|
|
|
292
297
|
const selected = buttons.filter((button) => button.hasAttribute('active'));
|
|
@@ -294,6 +299,16 @@ export class MoniButtonGroup extends MoniElement {
|
|
|
294
299
|
const unselected = buttons.filter((button) => !button.hasAttribute('active'));
|
|
295
300
|
const weight = unselected.length === 1 ? 'sole' : 'shared';
|
|
296
301
|
unselected.forEach((button) => button.setAttribute('data-group-adjacent-selected', weight));
|
|
302
|
+
|
|
303
|
+
if (this.resizing === 'flexible' && unselected.length > 0) {
|
|
304
|
+
const activeWeight = 1.24;
|
|
305
|
+
const inactiveWeight = Math.max(
|
|
306
|
+
0.6,
|
|
307
|
+
(buttons.length - selected.length * activeWeight) / unselected.length
|
|
308
|
+
);
|
|
309
|
+
selected.forEach((button) => button.style.setProperty('--_moni-group-flex-grow', String(activeWeight)));
|
|
310
|
+
unselected.forEach((button) => button.style.setProperty('--_moni-group-flex-grow', String(inactiveWeight)));
|
|
311
|
+
}
|
|
297
312
|
}
|
|
298
313
|
|
|
299
314
|
private getGapValue(gap: string): string {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
2
|
-
import './moni-button.js';
|
|
3
|
-
import type { MoniButton } from './moni-button.js';
|
|
2
|
+
import { MoniButton } from './moni-button.js';
|
|
4
3
|
|
|
5
4
|
describe('moni-button', () => {
|
|
6
5
|
let el: MoniButton;
|
|
@@ -151,6 +150,13 @@ describe('moni-button', () => {
|
|
|
151
150
|
expect(button.disabled).toBe(true);
|
|
152
151
|
});
|
|
153
152
|
|
|
153
|
+
it('usa la altura visual del tamaño como ancho de los botones circle', () => {
|
|
154
|
+
const cssText = String(MoniButton.styles).replace(/\s+/g, '');
|
|
155
|
+
expect(cssText).toContain(
|
|
156
|
+
'inline-size:var(--moni-button-height,var(--_button-visual-height))'
|
|
157
|
+
);
|
|
158
|
+
});
|
|
159
|
+
|
|
154
160
|
it('registra una advertencia de obsolescencia cuando se usa size="extra" (usar size="xlarge" según M3)', async () => {
|
|
155
161
|
(el.constructor as any)._deprecationWarned = false;
|
|
156
162
|
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
@@ -286,8 +286,8 @@ export class MoniButton extends MoniElement {
|
|
|
286
286
|
.button.circle {
|
|
287
287
|
padding: 0 !important;
|
|
288
288
|
border-radius: 50%;
|
|
289
|
-
inline-size: var(--moni-button-height,
|
|
290
|
-
min-inline-size: var(--moni-button-height,
|
|
289
|
+
inline-size: var(--moni-button-height, var(--_button-visual-height));
|
|
290
|
+
min-inline-size: var(--moni-button-height, var(--_button-visual-height));
|
|
291
291
|
aspect-ratio: 1;
|
|
292
292
|
}
|
|
293
293
|
.button.round.icon-only {
|
|
@@ -195,6 +195,20 @@ describe('moni-carousel', () => {
|
|
|
195
195
|
testEl.remove();
|
|
196
196
|
});
|
|
197
197
|
|
|
198
|
+
it('normaliza propiedades numéricas asignadas como strings por frameworks', async () => {
|
|
199
|
+
const testEl = document.createElement('moni-carousel') as MoniCarousel;
|
|
200
|
+
(testEl as unknown as { gap: string }).gap = '12';
|
|
201
|
+
(testEl as unknown as { padding: string }).padding = '8';
|
|
202
|
+
document.body.appendChild(testEl);
|
|
203
|
+
await testEl.updateComplete;
|
|
204
|
+
|
|
205
|
+
expect(testEl.gap).toBe(12);
|
|
206
|
+
expect(testEl.padding).toBe(8);
|
|
207
|
+
expect(testEl.itemSize).toBe(testEl.computedLayout.largeItemWidth + 12);
|
|
208
|
+
|
|
209
|
+
testEl.remove();
|
|
210
|
+
});
|
|
211
|
+
|
|
198
212
|
it('proporciona suficiente ancho de desplazamiento para alcanzar el último elemento (regresión de Firefox)', async () => {
|
|
199
213
|
const testEl = document.createElement('moni-carousel') as MoniCarousel;
|
|
200
214
|
testEl.items = Array.from({ length: 10 }, (_, i) => ({
|
|
@@ -235,4 +249,4 @@ describe('moni-carousel', () => {
|
|
|
235
249
|
|
|
236
250
|
testEl.remove();
|
|
237
251
|
});
|
|
238
|
-
});
|
|
252
|
+
});
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @contributors Moni Labs & Contributors
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { html, css } from 'lit';
|
|
8
|
+
import { html, css, type PropertyValues } from 'lit';
|
|
9
9
|
import { customElement, property, query, state, queryAll } from 'lit/decorators.js';
|
|
10
10
|
import { MoniElement, sharedStyles } from './_base/index.js';
|
|
11
11
|
import { emitMoniEvent } from '../utils/event-emitter.js';
|
|
@@ -84,6 +84,23 @@ export interface CarouselItem {
|
|
|
84
84
|
*/
|
|
85
85
|
@customElement('moni-carousel')
|
|
86
86
|
export class MoniCarousel extends MoniElement {
|
|
87
|
+
protected override willUpdate(changedProperties: PropertyValues<this>) {
|
|
88
|
+
super.willUpdate(changedProperties);
|
|
89
|
+
// Frameworks commonly assign static custom-element attributes as string
|
|
90
|
+
// properties, bypassing Lit's attribute converter. Normalize before the
|
|
91
|
+
// layout math so `184 + "12"` never becomes the coordinate `18412`.
|
|
92
|
+
const numericProperties = [
|
|
93
|
+
'largeWidth', 'mediumWidth', 'smallWidth', 'gap', 'padding',
|
|
94
|
+
'borderRadius', 'autoplayInterval'
|
|
95
|
+
] as const;
|
|
96
|
+
for (const key of numericProperties) {
|
|
97
|
+
const value = this[key] as unknown;
|
|
98
|
+
if (typeof value !== 'string') continue;
|
|
99
|
+
const normalized = Number(value);
|
|
100
|
+
if (Number.isFinite(normalized)) this[key] = normalized;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
87
104
|
/**
|
|
88
105
|
* Array de elementos a mostrar en el carrusel.
|
|
89
106
|
* Cada elemento requiere al menos `title` e `img`. El opcional `href` renderiza la tarjeta como un enlace.
|
|
@@ -1935,4 +1952,4 @@ declare global {
|
|
|
1935
1952
|
interface HTMLElementTagNameMap {
|
|
1936
1953
|
'moni-carousel': MoniCarousel;
|
|
1937
1954
|
}
|
|
1938
|
-
}
|
|
1955
|
+
}
|