@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
|
@@ -54,3 +54,74 @@ describe('moni-color-field', () => {
|
|
|
54
54
|
expect(text?.nextElementSibling).toBe(label);
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
|
+
|
|
58
|
+
describe('moni-color-field · asociación de etiqueta y formulario', () => {
|
|
59
|
+
it('asocia la etiqueta con el input mediante for/id', async () => {
|
|
60
|
+
const el = document.createElement('moni-color-field') as MoniColorField;
|
|
61
|
+
el.label = 'Color principal';
|
|
62
|
+
document.body.appendChild(el);
|
|
63
|
+
await el.updateComplete;
|
|
64
|
+
|
|
65
|
+
const label = el.shadowRoot?.querySelector('label');
|
|
66
|
+
const text = el.shadowRoot?.querySelector('input[type="text"]');
|
|
67
|
+
expect(label?.getAttribute('for')).toBe('input');
|
|
68
|
+
expect(text?.id).toBe('input');
|
|
69
|
+
el.remove();
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
/*
|
|
73
|
+
* jsdom expone `setFormValue` pero no lo conecta a `FormData`, así que aquí
|
|
74
|
+
* sólo se comprueba que el elemento participa del formulario y que publica su
|
|
75
|
+
* valor. El envío real se verifica en navegador.
|
|
76
|
+
*/
|
|
77
|
+
it('se declara form-associated y publica su valor', async () => {
|
|
78
|
+
const ctor = customElements.get('moni-color-field') as unknown as {
|
|
79
|
+
formAssociated?: boolean;
|
|
80
|
+
};
|
|
81
|
+
expect(ctor.formAssociated).toBe(true);
|
|
82
|
+
|
|
83
|
+
const published: unknown[] = [];
|
|
84
|
+
const originalAttach = HTMLElement.prototype.attachInternals;
|
|
85
|
+
HTMLElement.prototype.attachInternals = function attachInternalsSpy(this: HTMLElement) {
|
|
86
|
+
const internals = originalAttach.call(this);
|
|
87
|
+
const setFormValue = internals.setFormValue.bind(internals);
|
|
88
|
+
internals.setFormValue = (value) => {
|
|
89
|
+
published.push(value);
|
|
90
|
+
setFormValue(value);
|
|
91
|
+
};
|
|
92
|
+
return internals;
|
|
93
|
+
};
|
|
94
|
+
const spied = document.createElement('moni-color-field') as MoniColorField;
|
|
95
|
+
HTMLElement.prototype.attachInternals = originalAttach;
|
|
96
|
+
|
|
97
|
+
spied.value = '#765a1f';
|
|
98
|
+
document.body.appendChild(spied);
|
|
99
|
+
await spied.updateComplete;
|
|
100
|
+
|
|
101
|
+
expect(published).toContain('#765a1f');
|
|
102
|
+
spied.remove();
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it('propaga la elección del selector nativo y emite moni-change', async () => {
|
|
106
|
+
const el = document.createElement('moni-color-field') as MoniColorField;
|
|
107
|
+
el.name = 'c';
|
|
108
|
+
document.body.appendChild(el);
|
|
109
|
+
await el.updateComplete;
|
|
110
|
+
|
|
111
|
+
let emitted: string | undefined;
|
|
112
|
+
el.addEventListener('moni-change', (event) => {
|
|
113
|
+
emitted = (event as CustomEvent<{ value: string }>).detail.value;
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
const colorInput = el.shadowRoot?.querySelector(
|
|
117
|
+
'input[type="color"]'
|
|
118
|
+
) as HTMLInputElement;
|
|
119
|
+
colorInput.value = '#00ff88';
|
|
120
|
+
colorInput.dispatchEvent(new Event('change', { bubbles: true }));
|
|
121
|
+
await el.updateComplete;
|
|
122
|
+
|
|
123
|
+
expect(el.value).toBe('#00ff88');
|
|
124
|
+
expect(emitted).toBe('#00ff88');
|
|
125
|
+
el.remove();
|
|
126
|
+
});
|
|
127
|
+
});
|
|
@@ -10,6 +10,7 @@ import { customElement, property, query } from 'lit/decorators.js';
|
|
|
10
10
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
11
11
|
import { classMap } from 'lit/directives/class-map.js';
|
|
12
12
|
import { MoniElement, sharedStyles, fieldStyles } from './_base/index.js';
|
|
13
|
+
import { emitMoniEvent } from '../utils/event-emitter.js';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Componente Material Design 3 Color Field (Campo de Color).
|
|
@@ -45,6 +46,11 @@ import { MoniElement, sharedStyles, fieldStyles } from './_base/index.js';
|
|
|
45
46
|
* ></moni-color-field>
|
|
46
47
|
* ```
|
|
47
48
|
*
|
|
49
|
+
* @fires moni-input - Burbujea y está compuesto. Se emite mientras se arrastra
|
|
50
|
+
* en el selector nativo. `detail.value` trae el hexadecimal.
|
|
51
|
+
* @fires moni-change - Burbujea y está compuesto. Se emite al confirmar el color.
|
|
52
|
+
* `detail.value` trae el hexadecimal.
|
|
53
|
+
*
|
|
48
54
|
* @csspart field - El contenedor div exterior `.field`.
|
|
49
55
|
* @csspart swatch - El elemento de vista previa de color circular.
|
|
50
56
|
* @csspart input-color - El `<input type="color">` nativo, visualmente oculto.
|
|
@@ -53,6 +59,20 @@ import { MoniElement, sharedStyles, fieldStyles } from './_base/index.js';
|
|
|
53
59
|
*/
|
|
54
60
|
@customElement('moni-color-field')
|
|
55
61
|
export class MoniColorField extends MoniElement {
|
|
62
|
+
/*
|
|
63
|
+
* Los `<input>` internos viven en el Shadow DOM, así que no participan en el
|
|
64
|
+
* formulario del documento por mucho que lleven `name`: el valor nunca
|
|
65
|
+
* llegaba al envío. La asociación se hace con `ElementInternals`, igual que
|
|
66
|
+
* en `moni-text-field`.
|
|
67
|
+
*/
|
|
68
|
+
static formAssociated = true;
|
|
69
|
+
private _internals: ElementInternals;
|
|
70
|
+
|
|
71
|
+
constructor() {
|
|
72
|
+
super();
|
|
73
|
+
this._internals = this.attachInternals();
|
|
74
|
+
}
|
|
75
|
+
|
|
56
76
|
/**
|
|
57
77
|
* El nombre del input, enviado con los datos del formulario.
|
|
58
78
|
* @type {string}
|
|
@@ -138,6 +158,32 @@ export class MoniColorField extends MoniElement {
|
|
|
138
158
|
if (this._colorInput) this._colorInput.disabled = this.disabled;
|
|
139
159
|
if (this._textInput) this._textInput.disabled = this.disabled;
|
|
140
160
|
}
|
|
161
|
+
// Sin condicionar a `changed`: el valor por defecto también tiene que
|
|
162
|
+
// viajar en el envío aunque nadie haya tocado el campo.
|
|
163
|
+
this._internals?.setFormValue?.(this.value);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Propaga la elección del selector nativo.
|
|
168
|
+
*
|
|
169
|
+
* El `<input type="color">` interno no tenía ningún manejador, así que
|
|
170
|
+
* `this.value` nunca cambiaba: la muestra y el texto seguían mostrando el
|
|
171
|
+
* color anterior y el componente no informaba la elección ni por evento ni
|
|
172
|
+
* por formulario. Emite los mismos eventos que `moni-text-field` para que el
|
|
173
|
+
* consumidor no tenga que distinguir entre campos.
|
|
174
|
+
*/
|
|
175
|
+
private _onColorInput(event: Event) {
|
|
176
|
+
const target = event.target as HTMLInputElement;
|
|
177
|
+
this.value = target.value;
|
|
178
|
+
this._internals?.setFormValue?.(this.value);
|
|
179
|
+
emitMoniEvent(this, 'moni-input', { detail: { value: this.value, originalEvent: event } });
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
private _onColorChange(event: Event) {
|
|
183
|
+
const target = event.target as HTMLInputElement;
|
|
184
|
+
this.value = target.value;
|
|
185
|
+
this._internals?.setFormValue?.(this.value);
|
|
186
|
+
emitMoniEvent(this, 'moni-change', { detail: { value: this.value, originalEvent: event } });
|
|
141
187
|
}
|
|
142
188
|
|
|
143
189
|
static override styles = [
|
|
@@ -219,10 +265,12 @@ export class MoniColorField extends MoniElement {
|
|
|
219
265
|
part="color"
|
|
220
266
|
.value=${this.value}
|
|
221
267
|
?disabled=${this.disabled}
|
|
222
|
-
name=${ifDefined(this.name ? `${this.name}-color` : undefined)}
|
|
223
268
|
tabindex="-1"
|
|
269
|
+
@input=${this._onColorInput}
|
|
270
|
+
@change=${this._onColorChange}
|
|
224
271
|
/>
|
|
225
272
|
<input
|
|
273
|
+
id="input"
|
|
226
274
|
type="text"
|
|
227
275
|
part="text"
|
|
228
276
|
readonly
|
|
@@ -233,6 +281,7 @@ export class MoniColorField extends MoniElement {
|
|
|
233
281
|
/>
|
|
234
282
|
${this.label
|
|
235
283
|
? html`<label
|
|
284
|
+
for="input"
|
|
236
285
|
part="label"
|
|
237
286
|
class=${classMap({ active: isActive })}
|
|
238
287
|
>${this.label}</label
|
|
@@ -60,6 +60,22 @@ describe('moni-context-menu (P3.5 — flip)', () => {
|
|
|
60
60
|
expect(menu?.hasAttribute('active')).toBe(true);
|
|
61
61
|
});
|
|
62
62
|
|
|
63
|
+
it('reserva ancho para la superficie y limita la coordenada al viewport', async () => {
|
|
64
|
+
await el.updateComplete;
|
|
65
|
+
parent.dispatchEvent(new MouseEvent('contextmenu', {
|
|
66
|
+
bubbles: true,
|
|
67
|
+
clientX: window.innerWidth + 500,
|
|
68
|
+
clientY: 75
|
|
69
|
+
}));
|
|
70
|
+
await el.updateComplete;
|
|
71
|
+
|
|
72
|
+
const menu = el.shadowRoot?.querySelector('moni-menu');
|
|
73
|
+
const host = el.shadowRoot?.querySelector('.menu-host') as HTMLElement;
|
|
74
|
+
const x = Number(host.style.getPropertyValue('--_x').replace('px', ''));
|
|
75
|
+
expect(menu?.hasAttribute('no-wrap')).toBe(true);
|
|
76
|
+
expect(x).toBeLessThanOrEqual(window.innerWidth - 192 - 8);
|
|
77
|
+
});
|
|
78
|
+
|
|
63
79
|
it('cierra el menú al hacer clic en el documento', async () => {
|
|
64
80
|
await el.updateComplete;
|
|
65
81
|
const menu = el.shadowRoot?.querySelector(
|
|
@@ -117,7 +117,12 @@ export class MoniContextMenu extends MoniElement {
|
|
|
117
117
|
e.preventDefault();
|
|
118
118
|
if (this._target) {
|
|
119
119
|
const rect = this._target.getBoundingClientRect();
|
|
120
|
-
|
|
120
|
+
const menuWidth = Math.min(192, window.innerWidth - 16);
|
|
121
|
+
const globalX = Math.min(
|
|
122
|
+
Math.max(8, e.clientX),
|
|
123
|
+
window.innerWidth - menuWidth - 8
|
|
124
|
+
);
|
|
125
|
+
this._x = globalX - rect.left;
|
|
121
126
|
this._y = e.clientY - rect.top;
|
|
122
127
|
} else {
|
|
123
128
|
this._x = e.clientX;
|
|
@@ -136,7 +141,6 @@ export class MoniContextMenu extends MoniElement {
|
|
|
136
141
|
* colisiona con el borde del Viewport, invirtiendo top/bottom o left/right.
|
|
137
142
|
*/
|
|
138
143
|
private _maybeFlip() {
|
|
139
|
-
if (!this.flip) return;
|
|
140
144
|
const menu = this._menuEl?.shadowRoot?.querySelector('menu') as HTMLElement | null;
|
|
141
145
|
if (!menu) return;
|
|
142
146
|
const rect = menu.getBoundingClientRect();
|
|
@@ -144,6 +148,11 @@ export class MoniContextMenu extends MoniElement {
|
|
|
144
148
|
const vh = window.innerHeight;
|
|
145
149
|
const overflowsBottom = rect.bottom > vh;
|
|
146
150
|
const overflowsRight = rect.right > vw;
|
|
151
|
+
// Context menus must always remain horizontally reachable, regardless of
|
|
152
|
+
// whether placement flipping was requested.
|
|
153
|
+
if (overflowsRight) this._x = Math.max(8, this._x - (rect.right - vw) - 8);
|
|
154
|
+
if (rect.left < 8) this._x += 8 - rect.left;
|
|
155
|
+
if (!this.flip) return;
|
|
147
156
|
if (this.placement === 'bottom' && overflowsBottom) {
|
|
148
157
|
this._resolvedPlacement = 'top';
|
|
149
158
|
} else if (this.placement === 'top' && rect.top < 0) {
|
|
@@ -188,6 +197,8 @@ export class MoniContextMenu extends MoniElement {
|
|
|
188
197
|
position: absolute;
|
|
189
198
|
inset-inline-start: var(--_x, 0);
|
|
190
199
|
inset-block-start: var(--_y, 0);
|
|
200
|
+
inline-size: min(12rem, calc(100vw - 1rem));
|
|
201
|
+
min-inline-size: min(12rem, calc(100vw - 1rem));
|
|
191
202
|
z-index: 200;
|
|
192
203
|
}
|
|
193
204
|
`
|
|
@@ -218,6 +229,7 @@ export class MoniContextMenu extends MoniElement {
|
|
|
218
229
|
>
|
|
219
230
|
<moni-menu
|
|
220
231
|
placement=${effectivePlacement}
|
|
232
|
+
no-wrap
|
|
221
233
|
?active=${this._open}
|
|
222
234
|
>
|
|
223
235
|
<slot></slot>
|
|
@@ -71,11 +71,13 @@ describe('moni-file-field', () => {
|
|
|
71
71
|
expect(trailing).toBeTruthy();
|
|
72
72
|
});
|
|
73
73
|
|
|
74
|
-
it('
|
|
74
|
+
it('muestra button-label como valor visible y mantiene el label elevado', async () => {
|
|
75
75
|
await el.updateComplete;
|
|
76
76
|
const text = el.shadowRoot?.querySelector(
|
|
77
77
|
'input[type="text"]'
|
|
78
78
|
) as HTMLInputElement;
|
|
79
|
-
expect(text.placeholder).toBe('
|
|
79
|
+
expect(text.placeholder).toBe('');
|
|
80
|
+
expect(text.value).toBe('Choose file');
|
|
81
|
+
expect(text.classList.contains('active')).toBe(true);
|
|
80
82
|
});
|
|
81
83
|
});
|
|
@@ -214,7 +214,10 @@ export class MoniFileField extends MoniElement {
|
|
|
214
214
|
* se muestra en su lugar el atributo `label` o un marcador de posición genérico.
|
|
215
215
|
*/
|
|
216
216
|
override render() {
|
|
217
|
-
|
|
217
|
+
// The picker action is meaningful visible content, not a placeholder.
|
|
218
|
+
// Keep the label lifted so it cannot collide with buttonLabel.
|
|
219
|
+
const displayValue = this.value || this.buttonLabel;
|
|
220
|
+
const isActive = Boolean(displayValue);
|
|
218
221
|
const hasLeading = Boolean(this.icon);
|
|
219
222
|
const hasTrailing = Boolean(this.trailingIcon);
|
|
220
223
|
const fieldClasses = {
|
|
@@ -250,8 +253,8 @@ export class MoniFileField extends MoniElement {
|
|
|
250
253
|
type="text"
|
|
251
254
|
part="display"
|
|
252
255
|
readonly
|
|
253
|
-
placeholder
|
|
254
|
-
.value=${
|
|
256
|
+
placeholder=""
|
|
257
|
+
.value=${displayValue}
|
|
255
258
|
?disabled=${this.disabled}
|
|
256
259
|
name=${ifDefined(this.name ? `${this.name}-display` : undefined)}
|
|
257
260
|
class=${isActive ? 'active' : ''}
|
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
2
|
+
import { gsap } from 'gsap';
|
|
2
3
|
import './moni-morph-modal.js';
|
|
4
|
+
import './moni-fab.js';
|
|
5
|
+
import './moni-fab-menu.js';
|
|
3
6
|
import type { MoniMorphModal } from './moni-morph-modal.js';
|
|
4
7
|
|
|
5
8
|
vi.mock('gsap', () => {
|
|
6
9
|
return {
|
|
7
10
|
gsap: {
|
|
8
11
|
registerPlugin: vi.fn(),
|
|
12
|
+
utils: {
|
|
13
|
+
interpolate: vi.fn((_start: unknown, end: unknown) => end)
|
|
14
|
+
},
|
|
9
15
|
set: vi.fn(),
|
|
16
|
+
timeline: vi.fn((config: { onComplete?: () => void } = {}) => {
|
|
17
|
+
const timeline = {
|
|
18
|
+
addLabel: vi.fn(() => timeline),
|
|
19
|
+
to: vi.fn((target: Record<string, unknown>, vars: Record<string, unknown>) => {
|
|
20
|
+
if (typeof vars.onStart === 'function') (vars.onStart as () => void)();
|
|
21
|
+
if (typeof vars.progress === 'number') target.progress = vars.progress;
|
|
22
|
+
if (typeof vars.onUpdate === 'function') (vars.onUpdate as () => void)();
|
|
23
|
+
return timeline;
|
|
24
|
+
})
|
|
25
|
+
};
|
|
26
|
+
queueMicrotask(() => config.onComplete?.());
|
|
27
|
+
return timeline;
|
|
28
|
+
}),
|
|
10
29
|
fromTo: vi.fn(
|
|
11
30
|
(_target: unknown, _from: object, to: { onComplete?: () => void }) => {
|
|
12
31
|
if (to.onComplete) to.onComplete();
|
|
@@ -61,6 +80,7 @@ describe('moni-morph-modal', () => {
|
|
|
61
80
|
target = document.createElement('button');
|
|
62
81
|
target.id = 'test-target';
|
|
63
82
|
target.textContent = 'Open';
|
|
83
|
+
target.getBoundingClientRect = () => new DOMRect(24, 700, 56, 56);
|
|
64
84
|
document.body.appendChild(target);
|
|
65
85
|
|
|
66
86
|
el = document.createElement('moni-morph-modal') as MoniMorphModal;
|
|
@@ -145,6 +165,156 @@ describe('moni-morph-modal', () => {
|
|
|
145
165
|
expect(el.open).toBe(false);
|
|
146
166
|
});
|
|
147
167
|
|
|
168
|
+
it('desenfoca el contenido mientras desaparece al cerrar', async () => {
|
|
169
|
+
el.show();
|
|
170
|
+
await waitForRaf();
|
|
171
|
+
vi.mocked(gsap.fromTo).mockClear();
|
|
172
|
+
|
|
173
|
+
el.hide();
|
|
174
|
+
await waitForRaf();
|
|
175
|
+
|
|
176
|
+
expect(gsap.fromTo).toHaveBeenCalledWith(
|
|
177
|
+
expect.anything(),
|
|
178
|
+
expect.objectContaining({ opacity: 1, filter: 'blur(0px)' }),
|
|
179
|
+
expect.objectContaining({ opacity: 0, filter: 'blur(6px)' })
|
|
180
|
+
);
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
it('recalcula la posición actual del origen al cerrar', async () => {
|
|
184
|
+
el.show();
|
|
185
|
+
await waitForRaf();
|
|
186
|
+
target.getBoundingClientRect = () => new DOMRect(310, 420, 64, 48);
|
|
187
|
+
|
|
188
|
+
el.hide();
|
|
189
|
+
await waitForRaf();
|
|
190
|
+
|
|
191
|
+
const panel = el.shadowRoot?.querySelector('.panel') as HTMLElement;
|
|
192
|
+
expect(gsap.set).toHaveBeenCalledWith(
|
|
193
|
+
panel,
|
|
194
|
+
expect.objectContaining({ x: 310, y: 420 })
|
|
195
|
+
);
|
|
196
|
+
expect(panel.style.width).toBe('64px');
|
|
197
|
+
expect(panel.style.height).toBe('48px');
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
it('desaparece con escala y opacidad cuando el origen ya no existe', async () => {
|
|
201
|
+
el.show();
|
|
202
|
+
await waitForRaf();
|
|
203
|
+
target.remove();
|
|
204
|
+
vi.mocked(gsap.to).mockClear();
|
|
205
|
+
|
|
206
|
+
el.hide();
|
|
207
|
+
await waitForRaf();
|
|
208
|
+
|
|
209
|
+
expect(gsap.to).toHaveBeenCalledWith(
|
|
210
|
+
expect.anything(),
|
|
211
|
+
expect.objectContaining({ autoAlpha: 0, scale: 0.92 })
|
|
212
|
+
);
|
|
213
|
+
expect(el.open).toBe(false);
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
it('captura la superficie interna real de un FAB para el morph', async () => {
|
|
217
|
+
const fab = document.createElement('moni-fab');
|
|
218
|
+
document.body.appendChild(fab);
|
|
219
|
+
await (fab as HTMLElement & { updateComplete: Promise<unknown> }).updateComplete;
|
|
220
|
+
const button = fab.shadowRoot?.querySelector('button') as HTMLButtonElement;
|
|
221
|
+
button.style.backgroundColor = 'rgb(103, 80, 164)';
|
|
222
|
+
button.style.borderRadius = '20px';
|
|
223
|
+
button.style.boxShadow = 'rgba(0, 0, 0, 0.2) 0px 2px 6px';
|
|
224
|
+
button.getBoundingClientRect = () => new DOMRect(280, 640, 56, 56);
|
|
225
|
+
|
|
226
|
+
const state = (el as unknown as {
|
|
227
|
+
_getTargetState: (target: HTMLElement) => {
|
|
228
|
+
rect: DOMRect;
|
|
229
|
+
backgroundColor: string;
|
|
230
|
+
borderRadius: string;
|
|
231
|
+
boxShadow: string;
|
|
232
|
+
};
|
|
233
|
+
})._getTargetState(fab);
|
|
234
|
+
|
|
235
|
+
expect(state.rect.x).toBe(280);
|
|
236
|
+
expect(state.rect.width).toBe(56);
|
|
237
|
+
expect(state.backgroundColor).toBe('rgb(103, 80, 164)');
|
|
238
|
+
expect(state.borderRadius).toBe('20px');
|
|
239
|
+
expect(state.boxShadow).toContain('2px 6px');
|
|
240
|
+
fab.remove();
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
it('captura todo el contenido compuesto del trigger interno de un FAB Menu', async () => {
|
|
244
|
+
const menu = document.createElement('moni-fab-menu') as HTMLElement & {
|
|
245
|
+
icon: string;
|
|
246
|
+
updateComplete: Promise<unknown>;
|
|
247
|
+
};
|
|
248
|
+
menu.icon = 'add';
|
|
249
|
+
document.body.appendChild(menu);
|
|
250
|
+
await menu.updateComplete;
|
|
251
|
+
const trigger = menu.shadowRoot?.querySelector('.trigger') as HTMLElement & { updateComplete: Promise<unknown> };
|
|
252
|
+
await trigger.updateComplete;
|
|
253
|
+
|
|
254
|
+
const visual = (el as unknown as {
|
|
255
|
+
_resolveVisualTarget: (target: HTMLElement) => HTMLElement;
|
|
256
|
+
})._resolveVisualTarget(menu);
|
|
257
|
+
visual.getBoundingClientRect = () => new DOMRect(20, 30, 56, 56);
|
|
258
|
+
const snapshot = (el as unknown as {
|
|
259
|
+
_createTargetSnapshot: (target: HTMLElement, rect: DOMRect) => HTMLElement;
|
|
260
|
+
})._createTargetSnapshot(visual, visual.getBoundingClientRect());
|
|
261
|
+
|
|
262
|
+
expect(snapshot.textContent).toContain('add');
|
|
263
|
+
expect(snapshot.style.width).toBe('56px');
|
|
264
|
+
expect(snapshot.querySelectorAll('*').length).toBeGreaterThan(1);
|
|
265
|
+
expect((snapshot.firstElementChild as HTMLElement).style.backgroundColor).toBe('transparent');
|
|
266
|
+
expect((snapshot.firstElementChild as HTMLElement).style.transform).toBe('none');
|
|
267
|
+
expect((snapshot.firstElementChild as HTMLElement).style.whiteSpace).toBe('nowrap');
|
|
268
|
+
menu.remove();
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
it('carga inmediatamente las imágenes incluidas en el snapshot', () => {
|
|
272
|
+
const card = document.createElement('button');
|
|
273
|
+
const image = document.createElement('img');
|
|
274
|
+
image.loading = 'lazy';
|
|
275
|
+
image.src = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>';
|
|
276
|
+
card.appendChild(image);
|
|
277
|
+
const snapshot = (el as unknown as {
|
|
278
|
+
_createTargetSnapshot: (target: HTMLElement, rect: DOMRect) => HTMLElement;
|
|
279
|
+
})._createTargetSnapshot(card, new DOMRect(0, 0, 240, 140));
|
|
280
|
+
|
|
281
|
+
expect(snapshot.querySelector('img')?.loading).toBe('eager');
|
|
282
|
+
expect(snapshot.querySelector('img')?.decoding).toBe('sync');
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
it('descompone rotación y escala del transform vivo del target', () => {
|
|
286
|
+
const transformed = document.createElement('button');
|
|
287
|
+
transformed.style.transform = 'matrix(1.195128, 0.104587, -0.104587, 1.195128, 80, 0)';
|
|
288
|
+
document.body.appendChild(transformed);
|
|
289
|
+
const state = (el as unknown as {
|
|
290
|
+
_readTransformState: (target: HTMLElement) => { rotation: number; scaleX: number; scaleY: number };
|
|
291
|
+
})._readTransformState(transformed);
|
|
292
|
+
|
|
293
|
+
expect(state.rotation).toBeCloseTo(5, 1);
|
|
294
|
+
expect(state.scaleX).toBeCloseTo(1.2, 1);
|
|
295
|
+
expect(state.scaleY).toBeCloseTo(1.2, 1);
|
|
296
|
+
transformed.remove();
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
it('convierte coordenadas del viewport al canvas transformado', () => {
|
|
300
|
+
const canvas = document.createElement('div');
|
|
301
|
+
canvas.className = 'lab-canvas';
|
|
302
|
+
canvas.style.transform = 'scale(0.5)';
|
|
303
|
+
canvas.getBoundingClientRect = () => new DOMRect(10, 20, 200, 300);
|
|
304
|
+
document.body.appendChild(canvas);
|
|
305
|
+
canvas.appendChild(el);
|
|
306
|
+
|
|
307
|
+
const local = (el as unknown as {
|
|
308
|
+
_toPanelCoordinateRect: (rect: DOMRect) => DOMRect;
|
|
309
|
+
})._toPanelCoordinateRect(new DOMRect(60, 70, 20, 30));
|
|
310
|
+
|
|
311
|
+
expect(local.x).toBe(100);
|
|
312
|
+
expect(local.y).toBe(100);
|
|
313
|
+
expect(local.width).toBe(40);
|
|
314
|
+
expect(local.height).toBe(60);
|
|
315
|
+
canvas.remove();
|
|
316
|
+
});
|
|
317
|
+
|
|
148
318
|
it('alterna el estado open cuando se llama a toggle()', async () => {
|
|
149
319
|
el.toggle();
|
|
150
320
|
await waitForRaf();
|
|
@@ -238,7 +408,7 @@ describe('moni-morph-modal', () => {
|
|
|
238
408
|
getNodes.mockRestore();
|
|
239
409
|
});
|
|
240
410
|
|
|
241
|
-
it('ejecuta
|
|
411
|
+
it('no ejecuta el morph de texto legado al cerrar cuando morph-label es true', async () => {
|
|
242
412
|
(el as unknown as { _hasHeader: boolean })._hasHeader = true;
|
|
243
413
|
el.morphLabel = true;
|
|
244
414
|
await el.updateComplete;
|
|
@@ -254,7 +424,8 @@ describe('moni-morph-modal', () => {
|
|
|
254
424
|
el.hide();
|
|
255
425
|
await waitForRaf();
|
|
256
426
|
|
|
257
|
-
expect(closeSpy).toHaveBeenCalled();
|
|
427
|
+
expect(closeSpy).not.toHaveBeenCalled();
|
|
428
|
+
expect(el.shadowRoot?.querySelector('.morph-text, .morph-icon, .morph-target-snapshot')).toBeNull();
|
|
258
429
|
closeSpy.mockRestore();
|
|
259
430
|
});
|
|
260
431
|
|