exploria-ui-mcp-server 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +194 -0
- package/README.md +242 -0
- package/dist/README.md +633 -0
- package/dist/components/advanced/e_parallax_scrolling/Document.vue +23 -0
- package/dist/components/advanced/e_parallax_scrolling/Using.vue +20 -0
- package/dist/components/advanced/e_parallax_scrolling/img.png +0 -0
- package/dist/components/advanced/e_parallax_scrolling/img_1.png +0 -0
- package/dist/components/advanced/e_parallax_scrolling//350/247/206/345/267/256/346/273/232/345/212/250 +0 -0
- package/dist/components/advanced/e_rolling_follow/Document.vue +21 -0
- package/dist/components/advanced/e_rolling_follow/Using.vue +54 -0
- package/dist/components/advanced/e_virtual_list/ComprehensiveCase.vue +209 -0
- package/dist/components/advanced/e_virtual_list/Document.vue +68 -0
- package/dist/components/advanced/e_virtual_list/DynamicData.vue +42 -0
- package/dist/components/advanced/e_virtual_list/Using.vue +32 -0
- package/dist/components/advanced/e_virtual_list/iconfont/iconfont.css +19 -0
- package/dist/components/advanced/e_virtual_list/iconfont/iconfont.ttf +0 -0
- package/dist/components/advanced/e_virtual_list/iconfont/iconfont.woff +0 -0
- package/dist/components/advanced/e_virtual_list/iconfont/iconfont.woff2 +0 -0
- package/dist/components/advanced/e_virtual_list/img.png +0 -0
- package/dist/components/advanced/e_watermark/AutoSize.vue +89 -0
- package/dist/components/advanced/e_watermark/BasicUsing.vue +9 -0
- package/dist/components/advanced/e_watermark/CustomFont.vue +73 -0
- package/dist/components/advanced/e_watermark/CustomStyle.vue +76 -0
- package/dist/components/advanced/e_watermark/Dense.vue +28 -0
- package/dist/components/advanced/e_watermark/Document.vue +197 -0
- package/dist/components/advanced/e_watermark/HighZIndex.vue +105 -0
- package/dist/components/advanced/e_watermark/ImageWatermark.vue +31 -0
- package/dist/components/advanced/e_watermark/MultiLine.vue +29 -0
- package/dist/components/advanced/e_watermark/OpacityWatermark.vue +73 -0
- package/dist/components/ai/typing_effect/Document.vue +47 -0
- package/dist/components/ai/typing_effect/Using1.vue +189 -0
- package/dist/components/ai/typing_effect/Using2.vue +167 -0
- package/dist/components/basic/e_badge/BasicBadge.vue +31 -0
- package/dist/components/basic/e_badge/Document.vue +137 -0
- package/dist/components/basic/e_badge/DotBadge.vue +35 -0
- package/dist/components/basic/e_badge/MaxBadge.vue +33 -0
- package/dist/components/basic/e_badge/ShowZeroBadge.vue +30 -0
- package/dist/components/basic/e_badge/SizeBadge.vue +29 -0
- package/dist/components/basic/e_badge/TypeBadge.vue +36 -0
- package/dist/components/basic/e_button/CircleButtons.vue +30 -0
- package/dist/components/basic/e_button/DisabledButtons.vue +30 -0
- package/dist/components/basic/e_button/Document.vue +171 -0
- package/dist/components/basic/e_button/LoadingButtons.vue +30 -0
- package/dist/components/basic/e_button/NormalButtons.vue +30 -0
- package/dist/components/basic/e_button/PlainButtons.vue +30 -0
- package/dist/components/basic/e_button/RoundButtons.vue +30 -0
- package/dist/components/basic/e_button/RoundedRectangleButtons.vue +35 -0
- package/dist/components/basic/e_button/SizeButtons.vue +19 -0
- package/dist/components/basic/e_button/Using.vue +89 -0
- package/dist/components/basic/e_card/BasicCard.vue +9 -0
- package/dist/components/basic/e_card/BorderlessCard.vue +8 -0
- package/dist/components/basic/e_card/ComplexContentCard.vue +92 -0
- package/dist/components/basic/e_card/CustomHeaderCard.vue +24 -0
- package/dist/components/basic/e_card/Document.vue +131 -0
- package/dist/components/basic/e_card/FooterCard.vue +12 -0
- package/dist/components/basic/e_card/ShadowCard.vue +30 -0
- package/dist/components/basic/e_card/SizesCard.vue +29 -0
- package/dist/components/basic/e_svg_icon/Document.vue +38 -0
- package/dist/components/basic/e_svg_icon/Using.vue +7 -0
- package/dist/components/basic/e_underline/BaseUsing.vue +13 -0
- package/dist/components/basic/e_underline/Document.vue +27 -0
- package/dist/components/basic/e_underline/ImgUsing.vue +36 -0
- package/dist/components/data/e_calendar/Document.vue +41 -0
- package/dist/components/data/e_calendar/Using.vue +9 -0
- package/dist/components/data/e_calendar//346/227/245/345/216/206 +0 -0
- package/dist/components/data/e_carousel/Document.vue +143 -0
- package/dist/components/data/e_carousel/Using.vue +20 -0
- package/dist/components/data/e_carousel/Using1.vue +23 -0
- package/dist/components/data/e_carousel/Using2.vue +17 -0
- package/dist/components/data/e_carousel/Using3.vue +17 -0
- package/dist/components/data/e_collapse/Document.vue +40 -0
- package/dist/components/data/e_collapse/Using.vue +9 -0
- package/dist/components/data/e_collapse//346/212/230/345/217/240/351/235/242/346/235/277 +0 -0
- package/dist/components/data/e_image/Document.vue +71 -0
- package/dist/components/data/e_image/Using.vue +21 -0
- package/dist/components/data/e_image/img.png +0 -0
- package/dist/components/data/e_list/BasicUsage.vue +18 -0
- package/dist/components/data/e_list/CustomCheckboxUsage.vue +22 -0
- package/dist/components/data/e_list/CustomEmptyDataUsage.vue +38 -0
- package/dist/components/data/e_list/CustomRowUsage.vue +64 -0
- package/dist/components/data/e_list/DividerUsage.vue +20 -0
- package/dist/components/data/e_list/Document.vue +261 -0
- package/dist/components/data/e_list/EmptyDataUsage.vue +3 -0
- package/dist/components/data/e_list/EventUsage.vue +23 -0
- package/dist/components/data/e_list/MultipleSelectUsage.vue +22 -0
- package/dist/components/data/e_list/SingleSelectUsage.vue +21 -0
- package/dist/components/data/e_list/SizeUsage.vue +35 -0
- package/dist/components/data/e_media_viewer/Document.vue +39 -0
- package/dist/components/data/e_media_viewer/Using.vue +30 -0
- package/dist/components/data/e_media_viewer/img.png +0 -0
- package/dist/components/data/e_progress/BasicProgress.vue +21 -0
- package/dist/components/data/e_progress/CircleProgress.vue +23 -0
- package/dist/components/data/e_progress/CustomColorProgress.vue +63 -0
- package/dist/components/data/e_progress/Document.vue +179 -0
- package/dist/components/data/e_progress/IndeterminateProgress.vue +49 -0
- package/dist/components/data/e_progress/ProgressSize.vue +50 -0
- package/dist/components/data/e_progress/ProgressStatus.vue +21 -0
- package/dist/components/data/e_progress/ProgressText.vue +52 -0
- package/dist/components/data/e_rolling_pagination/Document.vue +21 -0
- package/dist/components/data/e_rolling_pagination/Using.vue +33 -0
- package/dist/components/data/e_rolling_pagination//346/273/232/345/212/250/345/210/206/351/241/265 +0 -0
- package/dist/components/data/e_skeleton/Document.vue +26 -0
- package/dist/components/data/e_skeleton/Using.vue +18 -0
- package/dist/components/data/e_skeleton//351/252/250/346/236/266 +0 -0
- package/dist/components/data/e_table/Document.vue +85 -0
- package/dist/components/data/e_table/Using.vue +131 -0
- package/dist/components/data/e_timeline/Document.vue +90 -0
- package/dist/components/data/e_timeline/Using.vue +124 -0
- package/dist/components/feedback/e_dialog/AsyncUsing.vue +30 -0
- package/dist/components/feedback/e_dialog/BaseUsing.vue +15 -0
- package/dist/components/feedback/e_dialog/Document.vue +26 -0
- package/dist/components/feedback/e_drawer/BaseUsing.vue +35 -0
- package/dist/components/feedback/e_drawer/DirectionUsing.vue +93 -0
- package/dist/components/feedback/e_drawer/Document.vue +153 -0
- package/dist/components/feedback/e_drawer/LargeSizeDrawer.vue +29 -0
- package/dist/components/feedback/e_drawer/MediumSizeDrawer.vue +29 -0
- package/dist/components/feedback/e_drawer/SizeUsing.vue +67 -0
- package/dist/components/feedback/e_drawer/SmallSizeDrawer.vue +29 -0
- package/dist/components/feedback/e_message/Document.vue +18 -0
- package/dist/components/feedback/e_message/Using.vue +16 -0
- package/dist/components/feedback/e_message_box/BaseUsing.vue +11 -0
- package/dist/components/feedback/e_message_box/Document.vue +18 -0
- package/dist/components/feedback/e_message_box/intro.md +12 -0
- package/dist/components/feedback/e_notification/AllPositionsNotification.vue +35 -0
- package/dist/components/feedback/e_notification/BasicTypesNotification.vue +47 -0
- package/dist/components/feedback/e_notification/ClickableNotification.vue +18 -0
- package/dist/components/feedback/e_notification/Document.vue +147 -0
- package/dist/components/feedback/e_notification/ManualCloseNotification.vue +17 -0
- package/dist/components/feedback/e_notification/Using.vue +253 -0
- package/dist/components/feedback/e_popover/BasicUsage.vue +51 -0
- package/dist/components/feedback/e_popover/ContextmenuTrigger.vue +27 -0
- package/dist/components/feedback/e_popover/CustomContent.vue +43 -0
- package/dist/components/feedback/e_popover/CustomTrigger.vue +39 -0
- package/dist/components/feedback/e_popover/Document.vue +84 -0
- package/dist/components/feedback/e_popover/HoverTrigger.vue +29 -0
- package/dist/components/feedback/e_popover/SizeVariants.vue +36 -0
- package/dist/components/feedback/e_popover/Using.vue +177 -0
- package/dist/components/feedback/e_tooltip/Document.vue +42 -0
- package/dist/components/feedback/e_tooltip/SizeUsing.vue +28 -0
- package/dist/components/feedback/e_tooltip/Using.vue +44 -0
- package/dist/components/form/e_checkbox/Document.vue +88 -0
- package/dist/components/form/e_checkbox/Using.vue +10 -0
- package/dist/components/form/e_color_picker/Document.vue +55 -0
- package/dist/components/form/e_color_picker/Using.vue +10 -0
- package/dist/components/form/e_condition_group/Document.vue +52 -0
- package/dist/components/form/e_condition_group/Using.vue +165 -0
- package/dist/components/form/e_file_selector/Document.vue +50 -0
- package/dist/components/form/e_file_selector/Using.vue +44 -0
- package/dist/components/form/e_form/BaseUsage.vue +155 -0
- package/dist/components/form/e_form/Document.vue +93 -0
- package/dist/components/form/e_form/LoginForm.vue +150 -0
- package/dist/components/form/e_form/RegisterForm.vue +46 -0
- package/dist/components/form/e_form/iconfont/iconfont.css +67 -0
- package/dist/components/form/e_form/iconfont/iconfont.ttf +0 -0
- package/dist/components/form/e_form/iconfont/iconfont.woff +0 -0
- package/dist/components/form/e_form/iconfont/iconfont.woff2 +0 -0
- package/dist/components/form/e_input/BaseUsage.vue +16 -0
- package/dist/components/form/e_input/Clearable.vue +24 -0
- package/dist/components/form/e_input/Document.vue +111 -0
- package/dist/components/form/e_input/Number.vue +10 -0
- package/dist/components/form/e_input/Password.vue +52 -0
- package/dist/components/form/e_input/iconfont/iconfont.css +67 -0
- package/dist/components/form/e_input/iconfont/iconfont.ttf +0 -0
- package/dist/components/form/e_input/iconfont/iconfont.woff +0 -0
- package/dist/components/form/e_input/iconfont/iconfont.woff2 +0 -0
- package/dist/components/form/e_radio/Document.vue +88 -0
- package/dist/components/form/e_radio/Using.vue +14 -0
- package/dist/components/form/e_select/Document.vue +32 -0
- package/dist/components/form/e_select/Using.vue +24 -0
- package/dist/components/form/e_select//351/200/211/351/241/271/346/241/206 +0 -0
- package/dist/components/form/e_slider/BaseUsage.vue +10 -0
- package/dist/components/form/e_slider/CustomRange.vue +21 -0
- package/dist/components/form/e_slider/Disabled.vue +10 -0
- package/dist/components/form/e_slider/Document.vue +55 -0
- package/dist/components/form/e_slider/ShowValue.vue +10 -0
- package/dist/components/form/e_slider/Sizes.vue +47 -0
- package/dist/components/form/e_time_picker/Document.vue +58 -0
- package/dist/components/form/e_time_picker/Using.vue +13 -0
- package/dist/components/geometry/css_3d/Document.vue +17 -0
- package/dist/components/geometry/css_3d/Using.vue +9 -0
- package/dist/components/layout/e_scroll_x/Document.vue +39 -0
- package/dist/components/layout/e_scroll_x/Using.vue +38 -0
- package/dist/components/navigation/e_dropdown/BasicUsage.vue +64 -0
- package/dist/components/navigation/e_dropdown/Contextmenu.vue +41 -0
- package/dist/components/navigation/e_dropdown/Document.vue +72 -0
- package/dist/components/navigation/e_dropdown/HoverTrigger.vue +66 -0
- package/dist/components/navigation/e_dropdown/NestedDropdown.vue +143 -0
- package/dist/components/navigation/e_tabs/Document.vue +33 -0
- package/dist/components/navigation/e_tabs/Using.vue +40 -0
- package/dist/directives/e_uuid_util/Document.vue +15 -0
- package/dist/directives/e_uuid_util/Using.vue +13 -0
- package/dist/index.js +13708 -0
- package/dist/other/advanced/gsap/BasicUsing.vue +26 -0
- package/dist/other/advanced/gsap/Document.vue +45 -0
- package/dist/other/advanced/gsap/GSAP/345/212/250/347/224/273 +0 -0
- package/dist/other/advanced/gsap/ScrollTrigger.vue +195 -0
- package/dist/other/advanced/gsap/ScrollX.vue +81 -0
- package/dist/other/advanced/gsap/Timeline.vue +30 -0
- package/dist/other/advanced/lottie/BasicUsing.vue +33 -0
- package/dist/other/advanced/lottie/Document.vue +30 -0
- package/dist/other/advanced/lottie/Lottie /345/212/250/347/224/273 +0 -0
- package/dist/other/advanced/rich_text_editor/Document.vue +24 -0
- package/dist/other/advanced/rich_text_editor/RichTextEditor.vue +105 -0
- package/dist/other/advanced/rich_text_editor/wangeditor_style.css +684 -0
- package/dist/other/advanced/sortablejs/Document.vue +32 -0
- package/dist/other/advanced/sortablejs/ShuttleFrame.vue +181 -0
- package/dist/other/advanced/sortablejs/Using.vue +68 -0
- package/dist/other/advanced/sortablejs/iconfont/iconfont.ttf +0 -0
- package/dist/other/advanced/sortablejs/iconfont/iconfont.woff +0 -0
- package/dist/other/advanced/sortablejs/iconfont/iconfont.woff2 +0 -0
- package/dist/other/advanced/spelling/Document.vue +17 -0
- package/dist/other/advanced/spelling/Using.vue +104 -0
- package/dist/other/advanced/svg/BasicUsing.vue +12 -0
- package/dist/other/advanced/svg/Document.vue +24 -0
- package/dist/other/advanced/svg/FeDisplacementMap/FeDisplacementMap.vue +30 -0
- package/dist/other/advanced/svg/FeDisplacementMap/example/Image.vue +41 -0
- package/dist/other/advanced/svg/FeDisplacementMap/example//346/225/205/351/232/234/346/263/242/347/272/271/346/225/210/346/236/234 +0 -0
- package/dist/other/advanced/svg/FeDisplacementMap//344/275/215/347/275/256/346/233/277/346/215/242/346/273/244/351/225/234 +0 -0
- package/dist/other/advanced/svg/FeTurbulence/FeTurbulence.vue +28 -0
- package/dist/other/advanced/svg/FeTurbulence/example/Image.vue +41 -0
- package/dist/other/advanced/svg/FeTurbulence/example//346/225/205/351/232/234/346/263/242/347/272/271/346/225/210/346/236/234 +0 -0
- package/dist/other/advanced/svg/FeTurbulence//346/271/215/346/265/201/346/273/244/351/225/234 +0 -0
- package/dist/other/canvas/base/Document.vue +15 -0
- package/dist/other/canvas/base/Using.vue +125 -0
- package/dist/other/canvas/burrow/Clip.vue +66 -0
- package/dist/other/canvas/burrow/Document.vue +36 -0
- package/dist/other/canvas/burrow/Erase.vue +58 -0
- package/dist/other/canvas/burrow/NonZeroSurroundRule.vue +70 -0
- package/dist/other/canvas/clip/Clip.vue +58 -0
- package/dist/other/canvas/clip/Document.vue +26 -0
- package/dist/other/canvas/definition/Document.vue +26 -0
- package/dist/other/canvas/definition/Using.vue +60 -0
- package/dist/other/echarts/basic/Document.vue +36 -0
- package/dist/other/echarts/basic/Label.vue +98 -0
- package/dist/other/echarts/data_zoom/Document.vue +38 -0
- package/dist/other/echarts/data_zoom/Using.vue +119 -0
- package/dist/other/echarts/data_zoom/img.svg +33 -0
- package/dist/other/echarts/gauge/Document.vue +38 -0
- package/dist/other/echarts/gauge/Gauge.vue +340 -0
- package/dist/other/echarts/gauge//344/273/252/350/241/250/347/233/230 +0 -0
- package/dist/other/echarts/liquidfill/Document.vue +46 -0
- package/dist/other/echarts/liquidfill/Using.vue +239 -0
- package/dist/other/git/sample_set/Document.vue +43 -0
- package/dist/other/git/sample_set/img/img.png +0 -0
- package/dist/other/git/sample_set/img/img_1.png +0 -0
- package/dist/other/git/sample_set/img/img_2.png +0 -0
- package/dist/other/layout/flex/Advanced.vue +104 -0
- package/dist/other/layout/flex/Advanced2.vue +181 -0
- package/dist/other/layout/flex/Base.vue +48 -0
- package/dist/other/layout/flex/Document.vue +57 -0
- package/dist/other/layout/flex/Grid.vue +54 -0
- package/dist/other/layout/flex/Height100.vue +35 -0
- package/dist/other/layout/flex/intro.md +1 -0
- package/dist/other/layout/grid/Base.vue +29 -0
- package/dist/other/layout/grid/Document.vue +54 -0
- package/dist/other/layout/grid/Grid.vue +28 -0
- package/dist/other/layout/grid/Height100.vue +35 -0
- package/dist/other/layout/grid/intro.md +1 -0
- package/dist/other/navigation/new_tab_page/Document.vue +18 -0
- package/dist/other/navigation/new_tab_page/OpenNewTabPage.vue +7 -0
- package/dist/other/navigation/new_tab_page/new-tab-page-demo.html +450 -0
- package/dist/other/network/sse/Document.vue +21 -0
- package/dist/other/network/sse/Using.vue +24 -0
- package/dist/other/network/sse/server/app.ts +62 -0
- package/dist/other/network/sse/server/static/text.md +99 -0
- package/dist/other/network/sse/server/utils/sleep.ts +5 -0
- package/dist/other/observer/mutation_observer/Document.vue +15 -0
- package/dist/other/observer/mutation_observer/Using.vue +46 -0
- package/dist/other/optimize/Document.vue +19 -0
- package/dist/other/optimize/HeavyComp.vue +19 -0
- package/dist/other/optimize/Using.vue +14 -0
- package/dist/other/optimize/useDefer.ts +28 -0
- package/dist/other/svg/base/BasicUsing.vue +12 -0
- package/dist/other/svg/base/Document.vue +24 -0
- package/dist/other/svg/base/FeDisplacementMap/FeDisplacementMap.vue +30 -0
- package/dist/other/svg/base/FeDisplacementMap/example/Image.vue +41 -0
- package/dist/other/svg/base/FeDisplacementMap/example//346/225/205/351/232/234/346/263/242/347/272/271/346/225/210/346/236/234 +0 -0
- package/dist/other/svg/base/FeDisplacementMap//344/275/215/347/275/256/346/233/277/346/215/242/346/273/244/351/225/234 +0 -0
- package/dist/other/svg/base/FeTurbulence/FeTurbulence.vue +28 -0
- package/dist/other/svg/base/FeTurbulence/example/Image.vue +41 -0
- package/dist/other/svg/base/FeTurbulence/example//346/225/205/351/232/234/346/263/242/347/272/271/346/225/210/346/236/234 +0 -0
- package/dist/other/svg/base/FeTurbulence//346/271/215/346/265/201/346/273/244/351/225/234 +0 -0
- package/dist/other/threejs/base/Document.vue +17 -0
- package/dist/other/threejs/base/Using.vue +127 -0
- package/dist/other/threejs/controller_sync/Document.vue +15 -0
- package/dist/other/threejs/controller_sync/Using.vue +347 -0
- package/dist/other/threejs/controller_sync/bone//345/217/214/350/204/232/345/206/205/344/276/247/350/270/242/347/220/203.fbx +0 -0
- package/dist/other/threejs/controller_sync/motion//345/217/214/350/204/232/345/206/205/344/276/247/350/270/242/347/220/203.fbx +0 -0
- package/dist/other/threejs/controller_sync/scene/EnvMapTexture.jpg +0 -0
- package/dist/other/threejs/controller_sync/scene//347/257/256/347/220/203/345/234/272.glb +0 -0
- package/dist/other/threejs/controller_sync/scene//347/276/275/346/257/233/347/220/203/345/234/272.glb +0 -0
- package/dist/other/threejs/phoenix/Document.vue +17 -0
- package/dist/other/threejs/phoenix/Using.vue +79 -0
- package/dist/other/vue/life_cycle/Child.vue +43 -0
- package/dist/other/vue/life_cycle/Document.vue +15 -0
- package/dist/other/vue/life_cycle/Using.vue +16 -0
- package/dist/utils/e_echarts_util/Document.vue +14 -0
- package/dist/utils/e_echarts_util/Using.vue +81 -0
- package/dist/utils/e_image_util/Document.vue +15 -0
- package/dist/utils/e_image_util/Using.vue +24 -0
- package/dist/utils/e_image_util/author_avatar.png +0 -0
- package/dist/utils/e_uuid_util/Document.vue +15 -0
- package/dist/utils/e_uuid_util/Using.vue +13 -0
- package/dist/utils/type_utils/Document.vue +16 -0
- package/dist/utils/type_utils/TupleType.vue +16 -0
- package/package.json +33 -0
- package/public/README.md +633 -0
- package/public/components/advanced/e_parallax_scrolling/Document.vue +23 -0
- package/public/components/advanced/e_parallax_scrolling/Using.vue +20 -0
- package/public/components/advanced/e_parallax_scrolling/img.png +0 -0
- package/public/components/advanced/e_parallax_scrolling/img_1.png +0 -0
- package/public/components/advanced/e_parallax_scrolling//350/247/206/345/267/256/346/273/232/345/212/250 +0 -0
- package/public/components/advanced/e_rolling_follow/Document.vue +21 -0
- package/public/components/advanced/e_rolling_follow/Using.vue +54 -0
- package/public/components/advanced/e_virtual_list/ComprehensiveCase.vue +209 -0
- package/public/components/advanced/e_virtual_list/Document.vue +68 -0
- package/public/components/advanced/e_virtual_list/DynamicData.vue +42 -0
- package/public/components/advanced/e_virtual_list/Using.vue +32 -0
- package/public/components/advanced/e_virtual_list/iconfont/iconfont.css +19 -0
- package/public/components/advanced/e_virtual_list/iconfont/iconfont.ttf +0 -0
- package/public/components/advanced/e_virtual_list/iconfont/iconfont.woff +0 -0
- package/public/components/advanced/e_virtual_list/iconfont/iconfont.woff2 +0 -0
- package/public/components/advanced/e_virtual_list/img.png +0 -0
- package/public/components/advanced/e_watermark/AutoSize.vue +89 -0
- package/public/components/advanced/e_watermark/BasicUsing.vue +9 -0
- package/public/components/advanced/e_watermark/CustomFont.vue +73 -0
- package/public/components/advanced/e_watermark/CustomStyle.vue +76 -0
- package/public/components/advanced/e_watermark/Dense.vue +28 -0
- package/public/components/advanced/e_watermark/Document.vue +197 -0
- package/public/components/advanced/e_watermark/HighZIndex.vue +105 -0
- package/public/components/advanced/e_watermark/ImageWatermark.vue +31 -0
- package/public/components/advanced/e_watermark/MultiLine.vue +29 -0
- package/public/components/advanced/e_watermark/OpacityWatermark.vue +73 -0
- package/public/components/ai/typing_effect/Document.vue +47 -0
- package/public/components/ai/typing_effect/Using1.vue +189 -0
- package/public/components/ai/typing_effect/Using2.vue +167 -0
- package/public/components/basic/e_badge/BasicBadge.vue +31 -0
- package/public/components/basic/e_badge/Document.vue +137 -0
- package/public/components/basic/e_badge/DotBadge.vue +35 -0
- package/public/components/basic/e_badge/MaxBadge.vue +33 -0
- package/public/components/basic/e_badge/ShowZeroBadge.vue +30 -0
- package/public/components/basic/e_badge/SizeBadge.vue +29 -0
- package/public/components/basic/e_badge/TypeBadge.vue +36 -0
- package/public/components/basic/e_button/CircleButtons.vue +30 -0
- package/public/components/basic/e_button/DisabledButtons.vue +30 -0
- package/public/components/basic/e_button/Document.vue +171 -0
- package/public/components/basic/e_button/LoadingButtons.vue +30 -0
- package/public/components/basic/e_button/NormalButtons.vue +30 -0
- package/public/components/basic/e_button/PlainButtons.vue +30 -0
- package/public/components/basic/e_button/RoundButtons.vue +30 -0
- package/public/components/basic/e_button/RoundedRectangleButtons.vue +35 -0
- package/public/components/basic/e_button/SizeButtons.vue +19 -0
- package/public/components/basic/e_button/Using.vue +89 -0
- package/public/components/basic/e_card/BasicCard.vue +9 -0
- package/public/components/basic/e_card/BorderlessCard.vue +8 -0
- package/public/components/basic/e_card/ComplexContentCard.vue +92 -0
- package/public/components/basic/e_card/CustomHeaderCard.vue +24 -0
- package/public/components/basic/e_card/Document.vue +131 -0
- package/public/components/basic/e_card/FooterCard.vue +12 -0
- package/public/components/basic/e_card/ShadowCard.vue +30 -0
- package/public/components/basic/e_card/SizesCard.vue +29 -0
- package/public/components/basic/e_svg_icon/Document.vue +38 -0
- package/public/components/basic/e_svg_icon/Using.vue +7 -0
- package/public/components/basic/e_underline/BaseUsing.vue +13 -0
- package/public/components/basic/e_underline/Document.vue +27 -0
- package/public/components/basic/e_underline/ImgUsing.vue +36 -0
- package/public/components/data/e_calendar/Document.vue +41 -0
- package/public/components/data/e_calendar/Using.vue +9 -0
- package/public/components/data/e_calendar//346/227/245/345/216/206 +0 -0
- package/public/components/data/e_carousel/Document.vue +143 -0
- package/public/components/data/e_carousel/Using.vue +20 -0
- package/public/components/data/e_carousel/Using1.vue +23 -0
- package/public/components/data/e_carousel/Using2.vue +17 -0
- package/public/components/data/e_carousel/Using3.vue +17 -0
- package/public/components/data/e_collapse/Document.vue +40 -0
- package/public/components/data/e_collapse/Using.vue +9 -0
- package/public/components/data/e_collapse//346/212/230/345/217/240/351/235/242/346/235/277 +0 -0
- package/public/components/data/e_image/Document.vue +71 -0
- package/public/components/data/e_image/Using.vue +21 -0
- package/public/components/data/e_image/img.png +0 -0
- package/public/components/data/e_list/BasicUsage.vue +18 -0
- package/public/components/data/e_list/CustomCheckboxUsage.vue +22 -0
- package/public/components/data/e_list/CustomEmptyDataUsage.vue +38 -0
- package/public/components/data/e_list/CustomRowUsage.vue +64 -0
- package/public/components/data/e_list/DividerUsage.vue +20 -0
- package/public/components/data/e_list/Document.vue +261 -0
- package/public/components/data/e_list/EmptyDataUsage.vue +3 -0
- package/public/components/data/e_list/EventUsage.vue +23 -0
- package/public/components/data/e_list/MultipleSelectUsage.vue +22 -0
- package/public/components/data/e_list/SingleSelectUsage.vue +21 -0
- package/public/components/data/e_list/SizeUsage.vue +35 -0
- package/public/components/data/e_media_viewer/Document.vue +39 -0
- package/public/components/data/e_media_viewer/Using.vue +30 -0
- package/public/components/data/e_media_viewer/img.png +0 -0
- package/public/components/data/e_progress/BasicProgress.vue +21 -0
- package/public/components/data/e_progress/CircleProgress.vue +23 -0
- package/public/components/data/e_progress/CustomColorProgress.vue +63 -0
- package/public/components/data/e_progress/Document.vue +179 -0
- package/public/components/data/e_progress/IndeterminateProgress.vue +49 -0
- package/public/components/data/e_progress/ProgressSize.vue +50 -0
- package/public/components/data/e_progress/ProgressStatus.vue +21 -0
- package/public/components/data/e_progress/ProgressText.vue +52 -0
- package/public/components/data/e_rolling_pagination/Document.vue +21 -0
- package/public/components/data/e_rolling_pagination/Using.vue +33 -0
- package/public/components/data/e_rolling_pagination//346/273/232/345/212/250/345/210/206/351/241/265 +0 -0
- package/public/components/data/e_skeleton/Document.vue +26 -0
- package/public/components/data/e_skeleton/Using.vue +18 -0
- package/public/components/data/e_skeleton//351/252/250/346/236/266 +0 -0
- package/public/components/data/e_table/Document.vue +85 -0
- package/public/components/data/e_table/Using.vue +131 -0
- package/public/components/data/e_timeline/Document.vue +90 -0
- package/public/components/data/e_timeline/Using.vue +124 -0
- package/public/components/feedback/e_dialog/AsyncUsing.vue +30 -0
- package/public/components/feedback/e_dialog/BaseUsing.vue +15 -0
- package/public/components/feedback/e_dialog/Document.vue +26 -0
- package/public/components/feedback/e_drawer/BaseUsing.vue +35 -0
- package/public/components/feedback/e_drawer/DirectionUsing.vue +93 -0
- package/public/components/feedback/e_drawer/Document.vue +153 -0
- package/public/components/feedback/e_drawer/LargeSizeDrawer.vue +29 -0
- package/public/components/feedback/e_drawer/MediumSizeDrawer.vue +29 -0
- package/public/components/feedback/e_drawer/SizeUsing.vue +67 -0
- package/public/components/feedback/e_drawer/SmallSizeDrawer.vue +29 -0
- package/public/components/feedback/e_message/Document.vue +18 -0
- package/public/components/feedback/e_message/Using.vue +16 -0
- package/public/components/feedback/e_message_box/BaseUsing.vue +11 -0
- package/public/components/feedback/e_message_box/Document.vue +18 -0
- package/public/components/feedback/e_message_box/intro.md +12 -0
- package/public/components/feedback/e_notification/AllPositionsNotification.vue +35 -0
- package/public/components/feedback/e_notification/BasicTypesNotification.vue +47 -0
- package/public/components/feedback/e_notification/ClickableNotification.vue +18 -0
- package/public/components/feedback/e_notification/Document.vue +147 -0
- package/public/components/feedback/e_notification/ManualCloseNotification.vue +17 -0
- package/public/components/feedback/e_notification/Using.vue +253 -0
- package/public/components/feedback/e_popover/BasicUsage.vue +51 -0
- package/public/components/feedback/e_popover/ContextmenuTrigger.vue +27 -0
- package/public/components/feedback/e_popover/CustomContent.vue +43 -0
- package/public/components/feedback/e_popover/CustomTrigger.vue +39 -0
- package/public/components/feedback/e_popover/Document.vue +84 -0
- package/public/components/feedback/e_popover/HoverTrigger.vue +29 -0
- package/public/components/feedback/e_popover/SizeVariants.vue +36 -0
- package/public/components/feedback/e_popover/Using.vue +177 -0
- package/public/components/feedback/e_tooltip/Document.vue +42 -0
- package/public/components/feedback/e_tooltip/SizeUsing.vue +28 -0
- package/public/components/feedback/e_tooltip/Using.vue +44 -0
- package/public/components/form/e_checkbox/Document.vue +88 -0
- package/public/components/form/e_checkbox/Using.vue +10 -0
- package/public/components/form/e_color_picker/Document.vue +55 -0
- package/public/components/form/e_color_picker/Using.vue +10 -0
- package/public/components/form/e_condition_group/Document.vue +52 -0
- package/public/components/form/e_condition_group/Using.vue +165 -0
- package/public/components/form/e_file_selector/Document.vue +50 -0
- package/public/components/form/e_file_selector/Using.vue +44 -0
- package/public/components/form/e_form/BaseUsage.vue +155 -0
- package/public/components/form/e_form/Document.vue +93 -0
- package/public/components/form/e_form/LoginForm.vue +150 -0
- package/public/components/form/e_form/RegisterForm.vue +46 -0
- package/public/components/form/e_form/iconfont/iconfont.css +67 -0
- package/public/components/form/e_form/iconfont/iconfont.ttf +0 -0
- package/public/components/form/e_form/iconfont/iconfont.woff +0 -0
- package/public/components/form/e_form/iconfont/iconfont.woff2 +0 -0
- package/public/components/form/e_input/BaseUsage.vue +16 -0
- package/public/components/form/e_input/Clearable.vue +24 -0
- package/public/components/form/e_input/Document.vue +111 -0
- package/public/components/form/e_input/Number.vue +10 -0
- package/public/components/form/e_input/Password.vue +52 -0
- package/public/components/form/e_input/iconfont/iconfont.css +67 -0
- package/public/components/form/e_input/iconfont/iconfont.ttf +0 -0
- package/public/components/form/e_input/iconfont/iconfont.woff +0 -0
- package/public/components/form/e_input/iconfont/iconfont.woff2 +0 -0
- package/public/components/form/e_radio/Document.vue +88 -0
- package/public/components/form/e_radio/Using.vue +14 -0
- package/public/components/form/e_select/Document.vue +32 -0
- package/public/components/form/e_select/Using.vue +24 -0
- package/public/components/form/e_select//351/200/211/351/241/271/346/241/206 +0 -0
- package/public/components/form/e_slider/BaseUsage.vue +10 -0
- package/public/components/form/e_slider/CustomRange.vue +21 -0
- package/public/components/form/e_slider/Disabled.vue +10 -0
- package/public/components/form/e_slider/Document.vue +55 -0
- package/public/components/form/e_slider/ShowValue.vue +10 -0
- package/public/components/form/e_slider/Sizes.vue +47 -0
- package/public/components/form/e_time_picker/Document.vue +58 -0
- package/public/components/form/e_time_picker/Using.vue +13 -0
- package/public/components/geometry/css_3d/Document.vue +17 -0
- package/public/components/geometry/css_3d/Using.vue +9 -0
- package/public/components/layout/e_scroll_x/Document.vue +39 -0
- package/public/components/layout/e_scroll_x/Using.vue +38 -0
- package/public/components/navigation/e_dropdown/BasicUsage.vue +64 -0
- package/public/components/navigation/e_dropdown/Contextmenu.vue +41 -0
- package/public/components/navigation/e_dropdown/Document.vue +72 -0
- package/public/components/navigation/e_dropdown/HoverTrigger.vue +66 -0
- package/public/components/navigation/e_dropdown/NestedDropdown.vue +143 -0
- package/public/components/navigation/e_tabs/Document.vue +33 -0
- package/public/components/navigation/e_tabs/Using.vue +40 -0
- package/public/directives/e_uuid_util/Document.vue +15 -0
- package/public/directives/e_uuid_util/Using.vue +13 -0
- package/public/other/advanced/gsap/BasicUsing.vue +26 -0
- package/public/other/advanced/gsap/Document.vue +45 -0
- package/public/other/advanced/gsap/GSAP/345/212/250/347/224/273 +0 -0
- package/public/other/advanced/gsap/ScrollTrigger.vue +195 -0
- package/public/other/advanced/gsap/ScrollX.vue +81 -0
- package/public/other/advanced/gsap/Timeline.vue +30 -0
- package/public/other/advanced/lottie/BasicUsing.vue +33 -0
- package/public/other/advanced/lottie/Document.vue +30 -0
- package/public/other/advanced/lottie/Lottie /345/212/250/347/224/273 +0 -0
- package/public/other/advanced/rich_text_editor/Document.vue +24 -0
- package/public/other/advanced/rich_text_editor/RichTextEditor.vue +105 -0
- package/public/other/advanced/rich_text_editor/wangeditor_style.css +684 -0
- package/public/other/advanced/sortablejs/Document.vue +32 -0
- package/public/other/advanced/sortablejs/ShuttleFrame.vue +181 -0
- package/public/other/advanced/sortablejs/Using.vue +68 -0
- package/public/other/advanced/sortablejs/iconfont/iconfont.ttf +0 -0
- package/public/other/advanced/sortablejs/iconfont/iconfont.woff +0 -0
- package/public/other/advanced/sortablejs/iconfont/iconfont.woff2 +0 -0
- package/public/other/advanced/spelling/Document.vue +17 -0
- package/public/other/advanced/spelling/Using.vue +104 -0
- package/public/other/advanced/svg/BasicUsing.vue +12 -0
- package/public/other/advanced/svg/Document.vue +24 -0
- package/public/other/advanced/svg/FeDisplacementMap/FeDisplacementMap.vue +30 -0
- package/public/other/advanced/svg/FeDisplacementMap/example/Image.vue +41 -0
- package/public/other/advanced/svg/FeDisplacementMap/example//346/225/205/351/232/234/346/263/242/347/272/271/346/225/210/346/236/234 +0 -0
- package/public/other/advanced/svg/FeDisplacementMap//344/275/215/347/275/256/346/233/277/346/215/242/346/273/244/351/225/234 +0 -0
- package/public/other/advanced/svg/FeTurbulence/FeTurbulence.vue +28 -0
- package/public/other/advanced/svg/FeTurbulence/example/Image.vue +41 -0
- package/public/other/advanced/svg/FeTurbulence/example//346/225/205/351/232/234/346/263/242/347/272/271/346/225/210/346/236/234 +0 -0
- package/public/other/advanced/svg/FeTurbulence//346/271/215/346/265/201/346/273/244/351/225/234 +0 -0
- package/public/other/canvas/base/Document.vue +15 -0
- package/public/other/canvas/base/Using.vue +125 -0
- package/public/other/canvas/burrow/Clip.vue +66 -0
- package/public/other/canvas/burrow/Document.vue +36 -0
- package/public/other/canvas/burrow/Erase.vue +58 -0
- package/public/other/canvas/burrow/NonZeroSurroundRule.vue +70 -0
- package/public/other/canvas/clip/Clip.vue +58 -0
- package/public/other/canvas/clip/Document.vue +26 -0
- package/public/other/canvas/definition/Document.vue +26 -0
- package/public/other/canvas/definition/Using.vue +60 -0
- package/public/other/echarts/basic/Document.vue +36 -0
- package/public/other/echarts/basic/Label.vue +98 -0
- package/public/other/echarts/data_zoom/Document.vue +38 -0
- package/public/other/echarts/data_zoom/Using.vue +119 -0
- package/public/other/echarts/data_zoom/img.svg +33 -0
- package/public/other/echarts/gauge/Document.vue +38 -0
- package/public/other/echarts/gauge/Gauge.vue +340 -0
- package/public/other/echarts/gauge//344/273/252/350/241/250/347/233/230 +0 -0
- package/public/other/echarts/liquidfill/Document.vue +46 -0
- package/public/other/echarts/liquidfill/Using.vue +239 -0
- package/public/other/git/sample_set/Document.vue +43 -0
- package/public/other/git/sample_set/img/img.png +0 -0
- package/public/other/git/sample_set/img/img_1.png +0 -0
- package/public/other/git/sample_set/img/img_2.png +0 -0
- package/public/other/layout/flex/Advanced.vue +104 -0
- package/public/other/layout/flex/Advanced2.vue +181 -0
- package/public/other/layout/flex/Base.vue +48 -0
- package/public/other/layout/flex/Document.vue +57 -0
- package/public/other/layout/flex/Grid.vue +54 -0
- package/public/other/layout/flex/Height100.vue +35 -0
- package/public/other/layout/flex/intro.md +1 -0
- package/public/other/layout/grid/Base.vue +29 -0
- package/public/other/layout/grid/Document.vue +54 -0
- package/public/other/layout/grid/Grid.vue +28 -0
- package/public/other/layout/grid/Height100.vue +35 -0
- package/public/other/layout/grid/intro.md +1 -0
- package/public/other/navigation/new_tab_page/Document.vue +18 -0
- package/public/other/navigation/new_tab_page/OpenNewTabPage.vue +7 -0
- package/public/other/navigation/new_tab_page/new-tab-page-demo.html +450 -0
- package/public/other/network/sse/Document.vue +21 -0
- package/public/other/network/sse/Using.vue +24 -0
- package/public/other/network/sse/server/app.ts +62 -0
- package/public/other/network/sse/server/static/text.md +99 -0
- package/public/other/network/sse/server/utils/sleep.ts +5 -0
- package/public/other/observer/mutation_observer/Document.vue +15 -0
- package/public/other/observer/mutation_observer/Using.vue +46 -0
- package/public/other/optimize/Document.vue +19 -0
- package/public/other/optimize/HeavyComp.vue +19 -0
- package/public/other/optimize/Using.vue +14 -0
- package/public/other/optimize/useDefer.ts +28 -0
- package/public/other/svg/base/BasicUsing.vue +12 -0
- package/public/other/svg/base/Document.vue +24 -0
- package/public/other/svg/base/FeDisplacementMap/FeDisplacementMap.vue +30 -0
- package/public/other/svg/base/FeDisplacementMap/example/Image.vue +41 -0
- package/public/other/svg/base/FeDisplacementMap/example//346/225/205/351/232/234/346/263/242/347/272/271/346/225/210/346/236/234 +0 -0
- package/public/other/svg/base/FeDisplacementMap//344/275/215/347/275/256/346/233/277/346/215/242/346/273/244/351/225/234 +0 -0
- package/public/other/svg/base/FeTurbulence/FeTurbulence.vue +28 -0
- package/public/other/svg/base/FeTurbulence/example/Image.vue +41 -0
- package/public/other/svg/base/FeTurbulence/example//346/225/205/351/232/234/346/263/242/347/272/271/346/225/210/346/236/234 +0 -0
- package/public/other/svg/base/FeTurbulence//346/271/215/346/265/201/346/273/244/351/225/234 +0 -0
- package/public/other/threejs/base/Document.vue +17 -0
- package/public/other/threejs/base/Using.vue +127 -0
- package/public/other/threejs/controller_sync/Document.vue +15 -0
- package/public/other/threejs/controller_sync/Using.vue +347 -0
- package/public/other/threejs/controller_sync/bone//345/217/214/350/204/232/345/206/205/344/276/247/350/270/242/347/220/203.fbx +0 -0
- package/public/other/threejs/controller_sync/motion//345/217/214/350/204/232/345/206/205/344/276/247/350/270/242/347/220/203.fbx +0 -0
- package/public/other/threejs/controller_sync/scene/EnvMapTexture.jpg +0 -0
- package/public/other/threejs/controller_sync/scene//347/257/256/347/220/203/345/234/272.glb +0 -0
- package/public/other/threejs/controller_sync/scene//347/276/275/346/257/233/347/220/203/345/234/272.glb +0 -0
- package/public/other/threejs/phoenix/Document.vue +17 -0
- package/public/other/threejs/phoenix/Using.vue +79 -0
- package/public/other/vue/life_cycle/Child.vue +43 -0
- package/public/other/vue/life_cycle/Document.vue +15 -0
- package/public/other/vue/life_cycle/Using.vue +16 -0
- package/public/utils/e_echarts_util/Document.vue +14 -0
- package/public/utils/e_echarts_util/Using.vue +81 -0
- package/public/utils/e_image_util/Document.vue +15 -0
- package/public/utils/e_image_util/Using.vue +24 -0
- package/public/utils/e_image_util/author_avatar.png +0 -0
- package/public/utils/e_uuid_util/Document.vue +15 -0
- package/public/utils/e_uuid_util/Using.vue +13 -0
- package/public/utils/type_utils/Document.vue +16 -0
- package/public/utils/type_utils/TupleType.vue +16 -0
package/dist/README.md
ADDED
|
@@ -0,0 +1,633 @@
|
|
|
1
|
+
# Exploria UI
|
|
2
|
+
|
|
3
|
+
## 项目简介
|
|
4
|
+
|
|
5
|
+
🚀 下一代 Vue 3.6 + Vite UI 组件库,基于 OXC 工具链构建,采用 **Monorepo 架构**,提供丰富的组件、插件、工具和指令,满足各类业务场景需求。
|
|
6
|
+
|
|
7
|
+
### 核心特性
|
|
8
|
+
|
|
9
|
+
- **完整生态**:包含组件集、插件集、工具集和指令集四大核心模块
|
|
10
|
+
- **组件丰富**:覆盖多种业务场景,提供高质量 UI 组件
|
|
11
|
+
- **易用性强**:API 设计对齐 Element Plus,零学习成本
|
|
12
|
+
- **类型安全**:TypeScript 全量类型支持
|
|
13
|
+
- **性能优异**:基于 Vue 3.6 和 Vite 构建,加载速度快
|
|
14
|
+
- **现代工具链**:集成 OXC 工具链,提供极速的代码检查和格式化
|
|
15
|
+
|
|
16
|
+
### 架构说明
|
|
17
|
+
|
|
18
|
+
本项目采用 **Monorepo 架构**,通过 pnpm 工作区管理多个包,实现代码复用、统一构建和版本管理。核心代码位于 `packages/exploria-ui/` 目录,示例应用位于 `src/` 目录,便于组件库开发和演示。
|
|
19
|
+
|
|
20
|
+
### 主要开发者
|
|
21
|
+
|
|
22
|
+
**作者:liketype** - 本组件库的核心开发者,微信号:yywd479
|
|
23
|
+
|
|
24
|
+
## 技术栈
|
|
25
|
+
|
|
26
|
+
| 类别 | 技术栈 | 说明 |
|
|
27
|
+
| ------------ | ------------------ | ----------------------------------- |
|
|
28
|
+
| **框架** | Vue 3.6 | 最新 Composition API + 性能优化 |
|
|
29
|
+
| **构建工具** | Vite | 极速的前端构建工具 |
|
|
30
|
+
| **开发语言** | TypeScript | 类型安全的 JavaScript 超集 |
|
|
31
|
+
| **样式方案** | SCSS + Animate.css | 强大的 CSS 预处理器 + 动画库 |
|
|
32
|
+
| **工具链** | OXC | Rust 编写的极速代码检查和格式化工具 |
|
|
33
|
+
|
|
34
|
+
## 核心架构
|
|
35
|
+
|
|
36
|
+
Exploria UI 组件库由五个核心部分构成,形成完整的 UI 解决方案:
|
|
37
|
+
|
|
38
|
+
### 1. 组件集
|
|
39
|
+
|
|
40
|
+
组件集是 Exploria UI 的核心,包含丰富的 UI 组件,按功能划分为多个模块:
|
|
41
|
+
|
|
42
|
+
- **基础组件**:按钮、图标、下划线、卡片、数字角标等基础 UI 元素
|
|
43
|
+
- **数据组件**:表格、列表、轮播图等数据展示组件
|
|
44
|
+
- **表单组件**:输入框、选择器、复选框等表单控件
|
|
45
|
+
- **反馈组件**:对话框、消息提示、通知等用户反馈组件
|
|
46
|
+
- **布局组件**:容器、分割线、滚动条等布局元素
|
|
47
|
+
- **导航组件**:标签页、下拉菜单等导航组件
|
|
48
|
+
- **高级组件**:虚拟列表、水印、滚动视差等高级功能组件
|
|
49
|
+
- **3D组件**:立方体等 3D 可视化组件
|
|
50
|
+
|
|
51
|
+
### 5. MCP Server
|
|
52
|
+
|
|
53
|
+
MCP (Model Context Protocol) Server 是 Exploria UI 组件库的 AI 辅助服务,允许 AI 工具访问组件库的文档和 API 信息,帮助开发者更好地使用组件库。
|
|
54
|
+
|
|
55
|
+
#### 功能特性
|
|
56
|
+
|
|
57
|
+
- **AI 辅助开发**:让 AI 工具能够获取最新的组件文档和 API 信息
|
|
58
|
+
- **实时文档访问**:AI 工具可以通过 MCP Server 实时获取组件库的最新文档
|
|
59
|
+
- **标准化 API**:提供统一的 API 接口,支持多种 AI 工具集成
|
|
60
|
+
- **简单易用**:配置简单,易于集成到各种开发环境
|
|
61
|
+
|
|
62
|
+
#### 快速开始
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# 启动 MCP Server 开发模式
|
|
66
|
+
pnpm run mcp:dev
|
|
67
|
+
|
|
68
|
+
# 构建 MCP Server
|
|
69
|
+
pnpm run mcp:build
|
|
70
|
+
|
|
71
|
+
# 启动生产模式的 MCP Server
|
|
72
|
+
pnpm run mcp:start
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
#### 配置和使用
|
|
76
|
+
|
|
77
|
+
1. **启动 MCP Server**:使用上述命令启动 MCP Server
|
|
78
|
+
2. **访问配置页面**:在浏览器中打开文档网站,点击顶部导航栏的 "MCP Server" 选项
|
|
79
|
+
3. **配置服务器地址**:在配置页面中输入 MCP Server 地址(默认:http://localhost:3000)
|
|
80
|
+
4. **测试连接**:点击 "测试连接" 按钮,确保 MCP Server 运行正常
|
|
81
|
+
5. **保存配置**:点击 "保存配置" 按钮保存设置
|
|
82
|
+
6. **配置 AI 工具**:根据您使用的 AI 工具,添加 MCP Server 地址
|
|
83
|
+
|
|
84
|
+
#### API 端点
|
|
85
|
+
|
|
86
|
+
- **GET /health**:健康检查
|
|
87
|
+
- **POST /mcp/query**:处理 AI 工具的查询请求
|
|
88
|
+
- **GET /mcp/components**:获取组件列表
|
|
89
|
+
- **GET /mcp/components/:name**:获取单个组件详情
|
|
90
|
+
|
|
91
|
+
#### 示例提问
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
# 向 AI 工具提问
|
|
95
|
+
"Exploria UI 的 EButton 组件有哪些属性?"
|
|
96
|
+
"如何使用 Exploria UI 的 EDialog 组件?"
|
|
97
|
+
"Exploria UI 的表单组件有哪些?"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### 样式系统
|
|
101
|
+
|
|
102
|
+
组件集内置完整的样式系统,分为主题系统和尺寸系统两大核心子系统:
|
|
103
|
+
|
|
104
|
+
##### 主题系统(状态系统)
|
|
105
|
+
|
|
106
|
+
主题系统定义了组件库的视觉风格和色彩方案,主要包含:
|
|
107
|
+
|
|
108
|
+
- **主色调**:primaryColor
|
|
109
|
+
- **次要色**:secondaryColor
|
|
110
|
+
- **背景色**:backgroundColor
|
|
111
|
+
- **文字色**:textColor
|
|
112
|
+
- **边框色**:borderColor
|
|
113
|
+
- **状态色**:successColor、warningColor、errorColor
|
|
114
|
+
|
|
115
|
+
##### 尺寸系统
|
|
116
|
+
|
|
117
|
+
尺寸系统定义了组件库的空间关系和视觉层次,主要包含:
|
|
118
|
+
|
|
119
|
+
- **字体大小**:基础字体大小、小字体、大字体
|
|
120
|
+
- **间距系统**:基础间距、小间距、大间距
|
|
121
|
+
- **圆角系统**:基础圆角、小圆角、大圆角
|
|
122
|
+
- **阴影系统**:基础阴影、浅阴影、深阴影
|
|
123
|
+
|
|
124
|
+
##### 样式文件组织
|
|
125
|
+
|
|
126
|
+
基础样式文件位于 `components/style/base/` 目录下,包含:
|
|
127
|
+
`colors.scss`、`background-colors.scss`、`border-colors.scss`、`font-sizes.scss` 等。
|
|
128
|
+
|
|
129
|
+
组件样式采用 SCSS 编写,使用 BEM 命名规范,通过 var 变量形式与基础样式的变量进行关联,确保样式的一致性和可维护性。
|
|
130
|
+
|
|
131
|
+
组件样式文件位于 `components/style/components/` 目录下,每个组件对应一个独立的样式文件,如:
|
|
132
|
+
`e-button.scss`、`e-input.scss`、`e-dialog.scss` 等。
|
|
133
|
+
|
|
134
|
+
### 2. 主题定制功能
|
|
135
|
+
|
|
136
|
+
Exploria UI 提供了强大的主题定制功能,支持实时调整主题变量并预览效果。主题定制功能位于 `src/views/ThemeCustomization/` 目录下,包含以下特性:
|
|
137
|
+
|
|
138
|
+
- **实时预览**:修改主题变量后实时更新预览效果
|
|
139
|
+
- **双系统设计**:清晰分离主题系统和尺寸系统,便于管理和定制
|
|
140
|
+
- **完整的变量覆盖**:支持自定义所有核心主题和尺寸变量
|
|
141
|
+
- **一键重置**:快速恢复默认主题配置
|
|
142
|
+
|
|
143
|
+
#### 主题定制使用方法
|
|
144
|
+
|
|
145
|
+
1. 进入主题定制页面:在示例应用中导航到「主题定制」页面
|
|
146
|
+
2. 调整主题变量:在左侧表单中修改主题系统或尺寸系统的变量值
|
|
147
|
+
3. 实时预览效果:右侧实时显示修改后的组件样式
|
|
148
|
+
4. 重置主题:点击「重置主题」按钮恢复默认配置
|
|
149
|
+
|
|
150
|
+
#### 主题变量示例
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// 主题系统示例
|
|
154
|
+
primaryColor: '#409eff', // 主色调
|
|
155
|
+
secondaryColor: '#6c757d', // 次要色
|
|
156
|
+
backgroundColor: '#ffffff', // 背景色
|
|
157
|
+
textColor: '#303133', // 文字色
|
|
158
|
+
|
|
159
|
+
// 尺寸系统示例
|
|
160
|
+
fontSizeBase: '14px', // 基础字体大小
|
|
161
|
+
spacingBase: '16px', // 基础间距
|
|
162
|
+
borderRadiusBase: '4px', // 基础圆角
|
|
163
|
+
boxShadowBase: '0 2px 12px 0 rgba(0, 0, 0, 0.1)', // 基础阴影
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 3. 插件集
|
|
167
|
+
|
|
168
|
+
插件集提供可扩展的功能模块,用于增强组件库的能力:
|
|
169
|
+
|
|
170
|
+
- **SVG 精灵构建器**:自动构建 SVG 精灵图,优化图标加载
|
|
171
|
+
- **图片预加载构建器**:预加载图片资源,提升用户体验
|
|
172
|
+
- **SVG 兼容修复**:解决 SVG 在不同浏览器的兼容问题
|
|
173
|
+
|
|
174
|
+
### 4. 工具集
|
|
175
|
+
|
|
176
|
+
工具集包含各类实用工具函数,简化开发流程:
|
|
177
|
+
|
|
178
|
+
- **DOM 操作工具**:便捷的 DOM 操作方法
|
|
179
|
+
- **动画工具**:基于 Animate.css 的动画封装
|
|
180
|
+
- **图表工具**:ECharts 图表的封装和扩展
|
|
181
|
+
- **事件总线**:全局事件管理
|
|
182
|
+
- **本地存储工具**:增强的 localStorage 操作
|
|
183
|
+
- **时间工具**:日期时间格式化和计算
|
|
184
|
+
- **UUID 工具**:生成唯一标识符
|
|
185
|
+
- **图片工具**:图片处理和优化
|
|
186
|
+
- **Three.js 工具**:3D 渲染相关工具
|
|
187
|
+
|
|
188
|
+
### 5. 指令集
|
|
189
|
+
|
|
190
|
+
指令集提供实用的 Vue 自定义指令,扩展 Vue 的能力:
|
|
191
|
+
|
|
192
|
+
- **拖拽指令**:实现元素拖拽功能
|
|
193
|
+
- **尺寸观察指令**:监听元素尺寸变化
|
|
194
|
+
- **滑入动画指令**:元素进入视口时的动画效果
|
|
195
|
+
|
|
196
|
+
## 快速开始
|
|
197
|
+
|
|
198
|
+
### 前置要求
|
|
199
|
+
|
|
200
|
+
- **Node.js**: `>= 20.x`
|
|
201
|
+
- **pnpm**: `>= 10.x`
|
|
202
|
+
|
|
203
|
+
### 安装依赖
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
pnpm install
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### 开发模式
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
pnpm run dev
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
访问 `http://localhost:5173` 查看应用。
|
|
216
|
+
|
|
217
|
+
### 生产构建
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# 构建生产版本
|
|
221
|
+
pnpm run build
|
|
222
|
+
|
|
223
|
+
# 预览生产构建
|
|
224
|
+
pnpm run preview
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 代码质量
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# 代码检查
|
|
231
|
+
pnpm run lint
|
|
232
|
+
|
|
233
|
+
# 代码格式化
|
|
234
|
+
pnpm run format
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## 测试
|
|
238
|
+
|
|
239
|
+
### 测试框架
|
|
240
|
+
|
|
241
|
+
项目使用 [Vitest](https://vitest.dev/) 作为测试框架,提供极速的单元测试体验。
|
|
242
|
+
|
|
243
|
+
### 测试命令
|
|
244
|
+
|
|
245
|
+
#### 运行所有测试
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
pnpm test
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
#### 监视模式运行测试
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
pnpm test:watch
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### 测试文件结构
|
|
258
|
+
|
|
259
|
+
测试文件采用以下命名规范和目录结构:
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
└── components/
|
|
263
|
+
└── basic/
|
|
264
|
+
└── EButton/
|
|
265
|
+
├── EButton.other # 组件文件
|
|
266
|
+
└── __tests__/ # 测试目录(双下划线包裹,符合行业标准)
|
|
267
|
+
└── EButton.spec.ts # 测试文件(.spec.ts 后缀)
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### 测试执行前置条件
|
|
271
|
+
|
|
272
|
+
1. **安装依赖**:确保已执行 `pnpm install` 安装所有依赖
|
|
273
|
+
2. **环境要求**:Node.js >= 20.x,pnpm >= 10.x
|
|
274
|
+
3. **组件结构**:被测试组件需按照标准目录结构组织
|
|
275
|
+
|
|
276
|
+
### 测试结果解读
|
|
277
|
+
|
|
278
|
+
运行测试后,你会看到类似以下的输出:
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
RUN v4.0.18 C:/Users/.../exploria-ui-document
|
|
282
|
+
|
|
283
|
+
✓ packages/exploria-ui/src/components/basic/EButton/__tests__/EButton.spec.ts (4 tests) 39ms
|
|
284
|
+
✓ packages/exploria-ui/src/components/basic/ESvgIcon/__tests__/ESvgIcon.spec.ts (3 tests) 29ms
|
|
285
|
+
↓ packages/exploria-ui/src/components/advanced/EWatermark/__tests__/EWatermark.spec.ts (3 tests | 3 skipped) 10ms
|
|
286
|
+
|
|
287
|
+
Test Files 7 passed | 1 skipped (8)
|
|
288
|
+
Tests 27 passed | 3 skipped (30)
|
|
289
|
+
Start at 23:25:17
|
|
290
|
+
Duration 2.26s
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
#### 结果说明
|
|
294
|
+
|
|
295
|
+
- **Test Files**:测试文件数量,包括通过和跳过的文件
|
|
296
|
+
- **Tests**:测试用例数量,包括通过和跳过的用例
|
|
297
|
+
- **Duration**:测试执行总时长
|
|
298
|
+
- **✓**:测试通过
|
|
299
|
+
- **×**:测试失败
|
|
300
|
+
- **↓**:测试跳过(通常是因为环境限制,如 Canvas API 不可用)
|
|
301
|
+
|
|
302
|
+
### 常见测试问题排查
|
|
303
|
+
|
|
304
|
+
#### 1. 测试文件未被发现
|
|
305
|
+
|
|
306
|
+
**问题**:运行测试时显示 "No test files found"
|
|
307
|
+
|
|
308
|
+
**排查步骤**:
|
|
309
|
+
|
|
310
|
+
- 检查测试文件是否位于 `__tests__` 目录下
|
|
311
|
+
- 检查测试文件是否以 `.spec.ts` 或 `.test.ts` 结尾
|
|
312
|
+
- 检查 `vitest.config.ts` 中的 `include` 配置是否正确
|
|
313
|
+
|
|
314
|
+
#### 2. 组件依赖缺失
|
|
315
|
+
|
|
316
|
+
**问题**:测试运行时出现 "Module not found" 错误
|
|
317
|
+
|
|
318
|
+
**排查步骤**:
|
|
319
|
+
|
|
320
|
+
- 确保已执行 `pnpm install` 安装所有依赖
|
|
321
|
+
- 检查组件导入路径是否正确
|
|
322
|
+
- 检查是否缺少必要的 peer dependencies
|
|
323
|
+
|
|
324
|
+
#### 3. DOM API 不可用
|
|
325
|
+
|
|
326
|
+
**问题**:测试运行时出现 "Cannot read properties of null" 或 DOM API 相关错误
|
|
327
|
+
|
|
328
|
+
**排查步骤**:
|
|
329
|
+
|
|
330
|
+
- 检查测试环境是否配置了 `jsdom`(已在 vitest.config.ts 中配置)
|
|
331
|
+
- 对于 Canvas API 相关错误,考虑在测试中跳过或模拟 Canvas API
|
|
332
|
+
|
|
333
|
+
#### 4. 测试用例失败
|
|
334
|
+
|
|
335
|
+
**问题**:测试用例执行失败
|
|
336
|
+
|
|
337
|
+
**排查步骤**:
|
|
338
|
+
|
|
339
|
+
- 查看测试失败的详细错误信息
|
|
340
|
+
- 检查组件实现是否符合预期
|
|
341
|
+
- 检查测试用例的断言是否正确
|
|
342
|
+
- 考虑使用 `console.log` 调试测试用例
|
|
343
|
+
|
|
344
|
+
### 编写测试用例
|
|
345
|
+
|
|
346
|
+
测试用例应遵循以下原则:
|
|
347
|
+
|
|
348
|
+
1. **测试命名清晰**:测试用例名称应能准确描述测试内容
|
|
349
|
+
2. **测试覆盖全面**:覆盖组件的主要功能和边界情况
|
|
350
|
+
3. **测试独立运行**:每个测试用例应能独立运行,不依赖其他测试
|
|
351
|
+
4. **测试断言明确**:使用清晰的断言语句,便于理解测试意图
|
|
352
|
+
|
|
353
|
+
#### 测试用例示例
|
|
354
|
+
|
|
355
|
+
```typescript
|
|
356
|
+
import { mount } from '@other/test-index';
|
|
357
|
+
import EButton from '../EButton.other';
|
|
358
|
+
|
|
359
|
+
describe('EButton', () => {
|
|
360
|
+
it('should render correctly', () => {
|
|
361
|
+
const wrapper = mount(EButton, {
|
|
362
|
+
slots: {
|
|
363
|
+
default: 'Button',
|
|
364
|
+
},
|
|
365
|
+
});
|
|
366
|
+
expect(wrapper.text()).toBe('Button');
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
it('should handle click event', async () => {
|
|
370
|
+
const handleClick = vi.fn();
|
|
371
|
+
const wrapper = mount(EButton, {
|
|
372
|
+
slots: {
|
|
373
|
+
default: 'Button',
|
|
374
|
+
},
|
|
375
|
+
props: {
|
|
376
|
+
onClick: handleClick,
|
|
377
|
+
},
|
|
378
|
+
});
|
|
379
|
+
await wrapper.trigger('click');
|
|
380
|
+
expect(handleClick).toHaveBeenCalled();
|
|
381
|
+
});
|
|
382
|
+
});
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### 测试最佳实践
|
|
386
|
+
|
|
387
|
+
1. **优先测试公共 API**:测试组件的公共接口,而非内部实现细节
|
|
388
|
+
2. **使用快照测试**:对于 UI 组件,考虑使用快照测试确保 UI 一致性
|
|
389
|
+
3. **模拟外部依赖**:对于外部依赖(如 API 调用),使用模拟(mock)避免测试依赖外部服务
|
|
390
|
+
4. **保持测试简洁**:每个测试用例应只测试一个功能点
|
|
391
|
+
5. **定期运行测试**:在开发过程中定期运行测试,确保代码质量
|
|
392
|
+
|
|
393
|
+
## 项目结构
|
|
394
|
+
|
|
395
|
+
### 根目录结构
|
|
396
|
+
|
|
397
|
+
**Monorepo 架构**的核心结构如下:
|
|
398
|
+
|
|
399
|
+
```
|
|
400
|
+
exploria-ui-document/
|
|
401
|
+
├── .cursor/ # Cursor 编辑器配置
|
|
402
|
+
├── .idea/ # IDE 配置文件
|
|
403
|
+
├── .trae/ # Trae AI 相关配置
|
|
404
|
+
│ ├── rules/ # 项目规则配置
|
|
405
|
+
│ └── skills/ # 设计技巧和最佳实践集合
|
|
406
|
+
│ ├── logicflow-instance/ # LogicFlow 实例设计技巧
|
|
407
|
+
│ └── logicflow-node-resize/ # LogicFlow 节点缩放技巧
|
|
408
|
+
├── dist/ # 示例应用构建输出目录
|
|
409
|
+
├── node_modules/ # 项目依赖包
|
|
410
|
+
├── packages/ # 【Monorepo核心】包目录,管理多个子包
|
|
411
|
+
│ └── exploria-ui/ # Exploria UI 组件库核心包
|
|
412
|
+
├── public/ # 静态资源目录
|
|
413
|
+
├── src/ # 示例应用源码,用于组件库演示
|
|
414
|
+
├── 设计稿件/ # 设计稿目录
|
|
415
|
+
├── .gitignore # Git 忽略配置
|
|
416
|
+
├── index.html # 示例应用入口文件
|
|
417
|
+
├── LICENSE # 项目许可证
|
|
418
|
+
├── oxfmtrc.json # OXC 格式化配置
|
|
419
|
+
├── oxlintrc.json # OXC 代码检查配置
|
|
420
|
+
├── package.json # 根项目配置
|
|
421
|
+
├── pnpm-lock.yaml # pnpm 依赖锁定文件
|
|
422
|
+
├── pnpm-workspace.yaml # 【Monorepo核心】pnpm 工作区配置文件
|
|
423
|
+
├── README.md # 项目主文档
|
|
424
|
+
├── tsconfig.json # TypeScript 配置
|
|
425
|
+
├── vite.config.ts # Vite 配置
|
|
426
|
+
├── vitest.config.ts # Vitest 测试配置
|
|
427
|
+
└── 一键更新网站.bat # 网站更新脚本
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
### 核心目录说明
|
|
431
|
+
|
|
432
|
+
#### 1. packages/exploria-ui/(组件库核心)
|
|
433
|
+
|
|
434
|
+
```
|
|
435
|
+
packages/exploria-ui/
|
|
436
|
+
├── dist/ # 组件库构建输出目录
|
|
437
|
+
│ ├── components/ # 组件构建输出
|
|
438
|
+
│ ├── directives/ # 指令构建输出
|
|
439
|
+
│ ├── plugins/ # 插件构建输出
|
|
440
|
+
│ ├── utils/ # 工具构建输出
|
|
441
|
+
│ └── index.css # 样式输出
|
|
442
|
+
├── scripts/ # 构建脚本目录
|
|
443
|
+
├── src/ # 组件库源代码
|
|
444
|
+
│ ├── components/ # 组件集
|
|
445
|
+
│ ├── directives/ # 指令集
|
|
446
|
+
│ ├── plugins/ # 插件集
|
|
447
|
+
│ └── utils/ # 工具集
|
|
448
|
+
├── package.json # 组件库配置
|
|
449
|
+
├── README.md # 组件库文档
|
|
450
|
+
├── tsconfig.json # 组件库 TypeScript 配置
|
|
451
|
+
└── vite.config.ts # 组件库 Vite 配置
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
#### 2. src/(示例应用)
|
|
455
|
+
|
|
456
|
+
示例应用用于演示组件库的使用,包含各种组件的示例代码和文档。
|
|
457
|
+
|
|
458
|
+
#### 3. .trae/skills/(设计技巧)
|
|
459
|
+
|
|
460
|
+
该目录包含项目的设计技巧和最佳实践,每个技巧以独立目录形式存在,包含详细的使用说明和示例代码。
|
|
461
|
+
|
|
462
|
+
##### 现有技巧
|
|
463
|
+
|
|
464
|
+
- **logicflow-instance**:LogicFlow 实例设计技巧,涵盖实例创建、数据管理、渲染优化等内容
|
|
465
|
+
- **logicflow-node-resize**:LogicFlow 节点缩放技巧,提供可复用的节点缩放配置和实现方案,支持矩形、椭圆、菱形和HTML节点的缩放功能
|
|
466
|
+
|
|
467
|
+
##### 技巧格式
|
|
468
|
+
|
|
469
|
+
每个技巧目录包含一个 `SKILL.md` 文件,内容包括:
|
|
470
|
+
|
|
471
|
+
- 功能介绍
|
|
472
|
+
- 触发条件
|
|
473
|
+
- 核心概念
|
|
474
|
+
- 使用方法
|
|
475
|
+
- 设计技巧
|
|
476
|
+
- 注意事项
|
|
477
|
+
- 扩展建议
|
|
478
|
+
- 最佳实践
|
|
479
|
+
- 常见问题与解决方案
|
|
480
|
+
|
|
481
|
+
### 组件库构建输出结构
|
|
482
|
+
|
|
483
|
+
组件库构建后生成的 `dist` 目录结构如下:
|
|
484
|
+
|
|
485
|
+
```
|
|
486
|
+
dist/
|
|
487
|
+
├── components/ # 组件集
|
|
488
|
+
│ ├── advanced/ # 高级组件(虚拟列表、水印等)
|
|
489
|
+
│ ├── basic/ # 基础组件(按钮、图标等)
|
|
490
|
+
│ ├── data/ # 数据组件(表格、轮播图等)
|
|
491
|
+
│ ├── feedback/ # 反馈组件(对话框、消息提示等)
|
|
492
|
+
│ ├── form/ # 表单组件(输入框、选择器等)
|
|
493
|
+
│ ├── geometry/ # 几何组件
|
|
494
|
+
│ ├── hooks/ # 组件钩子函数
|
|
495
|
+
│ ├── layout/ # 布局组件
|
|
496
|
+
│ └── navigation/ # 导航组件(标签页等)
|
|
497
|
+
├── directives/ # 指令集
|
|
498
|
+
├── plugins/ # 插件集
|
|
499
|
+
├── utils/ # 工具集
|
|
500
|
+
└── index.css # 全局样式
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
## 组件库开发
|
|
504
|
+
|
|
505
|
+
### 进入组件库目录
|
|
506
|
+
|
|
507
|
+
```bash
|
|
508
|
+
cd packages/exploria-ui
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### 构建组件库
|
|
512
|
+
|
|
513
|
+
```bash
|
|
514
|
+
# 带监听模式构建组件库(包含组件、指令、工具函数)
|
|
515
|
+
pnpm run build:watch
|
|
516
|
+
|
|
517
|
+
# 带监听模式构建插件
|
|
518
|
+
pnpm run build:plugins:watch
|
|
519
|
+
|
|
520
|
+
# 类型检查
|
|
521
|
+
pnpm run type-check
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### 发布组件库
|
|
525
|
+
|
|
526
|
+
```bash
|
|
527
|
+
pnpm run pub
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
## 配置说明
|
|
531
|
+
|
|
532
|
+
### OXC 配置
|
|
533
|
+
|
|
534
|
+
- **oxfmtrc.json**:OXC 代码格式化配置,用于统一代码风格
|
|
535
|
+
- **oxlintrc.json**:OXC 代码检查配置,用于保证代码质量
|
|
536
|
+
|
|
537
|
+
### TypeScript 配置
|
|
538
|
+
|
|
539
|
+
- **tsconfig.json**:项目 TypeScript 配置,支持 Vue 3 组件类型检查
|
|
540
|
+
|
|
541
|
+
### Vite 配置
|
|
542
|
+
|
|
543
|
+
- **vite.config.ts**:Vite 构建配置,包含组件库构建和示例应用构建配置
|
|
544
|
+
|
|
545
|
+
## CSS 命名规范
|
|
546
|
+
|
|
547
|
+
本项目采用 BEM (Block, Element, Modifier) 命名规范来组织 CSS 代码,特别是选择题相关组件。BEM 命名规范可以使 CSS 代码更加结构化、可维护和可扩展。
|
|
548
|
+
|
|
549
|
+
### BEM 命名格式
|
|
550
|
+
|
|
551
|
+
```css
|
|
552
|
+
/* Block */
|
|
553
|
+
.e-<component-name>
|
|
554
|
+
|
|
555
|
+
/* Element */
|
|
556
|
+
.e-<component-name>__<element-name>
|
|
557
|
+
|
|
558
|
+
/* Modifier */
|
|
559
|
+
.e-<component-name>--<modifier-name>
|
|
560
|
+
.e-<component-name>__<element-name>--<modifier-name>
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
### SCSS 语法规范
|
|
564
|
+
|
|
565
|
+
在 SCSS 环境下,BEM 修饰符必须使用全写形式,禁止使用嵌套的 `&--modifier` 写法。这种写法有利于代码定位和维护。
|
|
566
|
+
|
|
567
|
+
#### 禁止的写法
|
|
568
|
+
|
|
569
|
+
```scss
|
|
570
|
+
// 禁止:嵌套的BEM修饰符
|
|
571
|
+
.e-checkbox {
|
|
572
|
+
&--checked {
|
|
573
|
+
/* 选中状态样式 */
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
#### 推荐的写法
|
|
579
|
+
|
|
580
|
+
```scss
|
|
581
|
+
// 推荐:全写的BEM选择器
|
|
582
|
+
.e-checkbox {
|
|
583
|
+
/* 根元素样式 */
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
/* 复选框选中状态 */
|
|
587
|
+
.e-checkbox--checked {
|
|
588
|
+
/* 选中状态样式 */
|
|
589
|
+
}
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
### 选择题组件 BEM 命名示例
|
|
593
|
+
|
|
594
|
+
- **复选框组件**:`.e-checkbox`
|
|
595
|
+
- **复选框图标**:`.e-checkbox__icon`
|
|
596
|
+
- **复选框标签**:`.e-checkbox__label`
|
|
597
|
+
- **复选框选中状态**:`.e-checkbox--checked`
|
|
598
|
+
- **复选框禁用状态**:`.e-checkbox--disabled`
|
|
599
|
+
- **单选框组件**:`.e-radio`
|
|
600
|
+
- **单选框图标**:`.e-radio__icon`
|
|
601
|
+
- **单选框标签**:`.e-radio__label`
|
|
602
|
+
- **单选框选中状态**:`.e-radio--checked`
|
|
603
|
+
|
|
604
|
+
## 浏览器支持
|
|
605
|
+
|
|
606
|
+
| 浏览器 | 最低版本 |
|
|
607
|
+
| ------- | -------- |
|
|
608
|
+
| Chrome | 90+ |
|
|
609
|
+
| Firefox | 88+ |
|
|
610
|
+
| Safari | 15+ |
|
|
611
|
+
| Edge | 90+ |
|
|
612
|
+
|
|
613
|
+
## 贡献指南
|
|
614
|
+
|
|
615
|
+
欢迎提交 Issue 和 Pull Request!请遵循以下规范:
|
|
616
|
+
|
|
617
|
+
1. **代码规范**:遵循 OXC 配置
|
|
618
|
+
2. **提交信息**:使用 [Conventional Commits](https://www.conventionalcommits.org/zh-hans/)
|
|
619
|
+
3. **组件开发**:参考现有组件的目录结构
|
|
620
|
+
4. **文档更新**:同步更新相关文档
|
|
621
|
+
|
|
622
|
+
## 许可证
|
|
623
|
+
|
|
624
|
+
本项目基于 [MIT License](LICENSE) 开源。
|
|
625
|
+
|
|
626
|
+
## 联系方式
|
|
627
|
+
|
|
628
|
+
- **作者:liketype** - 微信号:yywd479
|
|
629
|
+
- 项目地址:<https://gitee.com/exploria-team/exploria-ui-example.git>
|
|
630
|
+
|
|
631
|
+
---
|
|
632
|
+
|
|
633
|
+
Built with ❤️ using Vue 3.6 + Vite + OXC
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import DemoBox from '@/components/DemoBox/DemoBox.vue';
|
|
3
|
+
import Using from './Using.vue';
|
|
4
|
+
import UsingRaw from './Using.vue?raw';
|
|
5
|
+
import PageLayout from '@/components/PageLayout.vue';
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<PageLayout>
|
|
10
|
+
<DemoBox title="介绍">
|
|
11
|
+
<h2>EParallaxScrolling 视差滚动</h2>
|
|
12
|
+
<p>
|
|
13
|
+
视差滚动组件用于在滚动页面时展示不同元素的不同滚动速度,提升用户体验。
|
|
14
|
+
</p>
|
|
15
|
+
</DemoBox>
|
|
16
|
+
<DemoBox :code="UsingRaw" title="基本用法">
|
|
17
|
+
<Using />
|
|
18
|
+
<template #description>
|
|
19
|
+
按钮有五种类型:主按钮、次按钮、虚线按钮、文本按钮和链接按钮。主按钮在同一个操作区域最多出现一次。
|
|
20
|
+
</template>
|
|
21
|
+
</DemoBox>
|
|
22
|
+
</PageLayout>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { EParallaxScrolling } from 'exploria-ui';
|
|
3
|
+
|
|
4
|
+
const imgList = [
|
|
5
|
+
new URL('./img.png', import.meta.url).pathname,
|
|
6
|
+
new URL('./img.png', import.meta.url).pathname,
|
|
7
|
+
new URL('./img_1.png', import.meta.url).pathname,
|
|
8
|
+
new URL('./img.png', import.meta.url).pathname,
|
|
9
|
+
];
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<template>
|
|
13
|
+
<EParallaxScrolling :img-list="imgList" />
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<style scoped lang="scss">
|
|
17
|
+
.parallax-scrolling {
|
|
18
|
+
height: 300px;
|
|
19
|
+
}
|
|
20
|
+
</style>
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import DemoBox from '@/components/DemoBox/DemoBox.vue';
|
|
3
|
+
import Using from './Using.vue';
|
|
4
|
+
import UsingRaw from './Using.vue?raw';
|
|
5
|
+
import PageLayout from '@/components/PageLayout.vue';
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<PageLayout>
|
|
10
|
+
<DemoBox title="介绍">
|
|
11
|
+
<h2>ERollingFollow 滚动跟随</h2>
|
|
12
|
+
<p>滚动跟随组件用于在滚动页面时,某个元素跟随滚动而滚动。</p>
|
|
13
|
+
</DemoBox>
|
|
14
|
+
<DemoBox :code="UsingRaw" title="基本用法">
|
|
15
|
+
<Using />
|
|
16
|
+
<template #description>
|
|
17
|
+
按钮有五种类型:主按钮、次按钮、虚线按钮、文本按钮和链接按钮。主按钮在同一个操作区域最多出现一次。
|
|
18
|
+
</template>
|
|
19
|
+
</DemoBox>
|
|
20
|
+
</PageLayout>
|
|
21
|
+
</template>
|