@quicktvui/ai 1.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/README.md +36 -0
- package/index.js +2 -0
- package/package.json +23 -0
- package/postinstall.js +61 -0
- package/rules/.claude/commands/create-component.md +39 -0
- package/rules/.claude/commands/create-page.md +44 -0
- package/rules/.claude/commands/create-project.md +25 -0
- package/rules/.claude/commands/lookup-api.md +28 -0
- package/rules/.claude/commands/lookup-css.md +53 -0
- package/rules/.claude/settings.local.json +11 -0
- package/rules/.clinerules +367 -0
- package/rules/.cursorrules +367 -0
- package/rules/.docs/examples/component/animation/alpha-props.vue +130 -0
- package/rules/.docs/examples/component/animation/alpha.vue +169 -0
- package/rules/.docs/examples/component/animation/animator-props.vue +101 -0
- package/rules/.docs/examples/component/animation/animators-props.vue +145 -0
- package/rules/.docs/examples/component/animation/animators.vue +322 -0
- package/rules/.docs/examples/component/animation/basic.vue +96 -0
- package/rules/.docs/examples/component/animation/interpolator.vue +330 -0
- package/rules/.docs/examples/component/animation/listener.vue +151 -0
- package/rules/.docs/examples/component/animation/repeat.vue +113 -0
- package/rules/.docs/examples/component/animation/rotation-props.vue +148 -0
- package/rules/.docs/examples/component/animation/rotation-xy.vue +255 -0
- package/rules/.docs/examples/component/animation/rotation.vue +188 -0
- package/rules/.docs/examples/component/animation/scale-props.vue +129 -0
- package/rules/.docs/examples/component/animation/scale.vue +169 -0
- package/rules/.docs/examples/component/animation/translation-props.vue +128 -0
- package/rules/.docs/examples/component/animation/translation.vue +169 -0
- package/rules/.docs/examples/component/aside/basic.vue +34 -0
- package/rules/.docs/examples/component/audio-player/basic.vue +104 -0
- package/rules/.docs/examples/component/audio-player/event-global.vue +492 -0
- package/rules/.docs/examples/component/audio-player/event.vue +447 -0
- package/rules/.docs/examples/component/audio-player/player-manager.vue +100 -0
- package/rules/.docs/examples/component/audio-player-service/basic.vue +102 -0
- package/rules/.docs/examples/component/audio-player-service/event-global.vue +488 -0
- package/rules/.docs/examples/component/audio-player-service/event.vue +420 -0
- package/rules/.docs/examples/component/audio-player-service/player-manager.vue +100 -0
- package/rules/.docs/examples/component/button/background.vue +28 -0
- package/rules/.docs/examples/component/button/basic.vue +13 -0
- package/rules/.docs/examples/component/button/border.vue +18 -0
- package/rules/.docs/examples/component/button/custom-content.vue +18 -0
- package/rules/.docs/examples/component/button/custom-icon-style.vue +25 -0
- package/rules/.docs/examples/component/button/custom-icon.vue +19 -0
- package/rules/.docs/examples/component/button/custom-net-icon.vue +20 -0
- package/rules/.docs/examples/component/button/custom-style.vue +17 -0
- package/rules/.docs/examples/component/button/custom-text.vue +23 -0
- package/rules/.docs/examples/component/button/disabled.vue +13 -0
- package/rules/.docs/examples/component/button/round.vue +13 -0
- package/rules/.docs/examples/component/button/size.vue +16 -0
- package/rules/.docs/examples/component/button/square.vue +13 -0
- package/rules/.docs/examples/component/checkbox-group/basic.vue +97 -0
- package/rules/.docs/examples/component/collapse/basic.vue +156 -0
- package/rules/.docs/examples/component/column/basic.vue +15 -0
- package/rules/.docs/examples/component/container/layout-ahm.vue +48 -0
- package/rules/.docs/examples/component/container/layout-ahmf.vue +51 -0
- package/rules/.docs/examples/component/container/layout-am.vue +43 -0
- package/rules/.docs/examples/component/container/layout-ham.vue +48 -0
- package/rules/.docs/examples/component/container/layout-hamf.vue +53 -0
- package/rules/.docs/examples/component/container/layout-hm.vue +43 -0
- package/rules/.docs/examples/component/container/layout-hmf.vue +46 -0
- package/rules/.docs/examples/component/dialog/basic.vue +72 -0
- package/rules/.docs/examples/component/div/background-img.vue +49 -0
- package/rules/.docs/examples/component/div/background.vue +28 -0
- package/rules/.docs/examples/component/div/basic.vue +28 -0
- package/rules/.docs/examples/component/div/border.vue +72 -0
- package/rules/.docs/examples/component/div/click.vue +66 -0
- package/rules/.docs/examples/component/div/focus-background.vue +60 -0
- package/rules/.docs/examples/component/div/focus.vue +58 -0
- package/rules/.docs/examples/component/div/gradient-background.vue +36 -0
- package/rules/.docs/examples/component/footer/basic.vue +34 -0
- package/rules/.docs/examples/component/grid-view/basic.vue +59 -0
- package/rules/.docs/examples/component/grid-view/page.vue +80 -0
- package/rules/.docs/examples/component/grid-view/ref-base.vue +50 -0
- package/rules/.docs/examples/component/grid-view/ref-page.vue +102 -0
- package/rules/.docs/examples/component/header/basic.vue +39 -0
- package/rules/.docs/examples/component/html/alert.vue +28 -0
- package/rules/.docs/examples/component/html/audio.vue +24 -0
- package/rules/.docs/examples/component/html/h.vue +30 -0
- package/rules/.docs/examples/component/html/sound.vue +33 -0
- package/rules/.docs/examples/component/html/video.vue +23 -0
- package/rules/.docs/examples/component/image/assets.vue +40 -0
- package/rules/.docs/examples/component/image/network.vue +36 -0
- package/rules/.docs/examples/component/img/assets.vue +40 -0
- package/rules/.docs/examples/component/img/network.vue +36 -0
- package/rules/.docs/examples/component/indicator-list-view/basic.vue +476 -0
- package/rules/.docs/examples/component/input/basic.vue +26 -0
- package/rules/.docs/examples/component/list-view/basic.vue +58 -0
- package/rules/.docs/examples/component/list-view/ref-basic.vue +33 -0
- package/rules/.docs/examples/component/list-view/ref-operations.vue +58 -0
- package/rules/.docs/examples/component/list-view/ref-page.vue +82 -0
- package/rules/.docs/examples/component/loading/basic.vue +12 -0
- package/rules/.docs/examples/component/lottie/basic.vue +83 -0
- package/rules/.docs/examples/component/lottie/event.vue +126 -0
- package/rules/.docs/examples/component/lottie/local.vue +90 -0
- package/rules/.docs/examples/component/lottie/network.vue +82 -0
- package/rules/.docs/examples/component/main/basic.vue +34 -0
- package/rules/.docs/examples/component/nav-bar/basic.vue +45 -0
- package/rules/.docs/examples/component/p/basic.vue +40 -0
- package/rules/.docs/examples/component/p/gravity.vue +62 -0
- package/rules/.docs/examples/component/player-manager/aspect-ratio.vue +286 -0
- package/rules/.docs/examples/component/player-manager/basic.vue +87 -0
- package/rules/.docs/examples/component/player-manager/control.vue +356 -0
- package/rules/.docs/examples/component/player-manager/custom-player-view.vue +105 -0
- package/rules/.docs/examples/component/player-manager/custom-player.vue +100 -0
- package/rules/.docs/examples/component/player-manager/decode.vue +218 -0
- package/rules/.docs/examples/component/player-manager/definition.vue +199 -0
- package/rules/.docs/examples/component/player-manager/event-global.vue +581 -0
- package/rules/.docs/examples/component/player-manager/event.vue +632 -0
- package/rules/.docs/examples/component/player-manager/image-player.vue +331 -0
- package/rules/.docs/examples/component/player-manager/media-item-interceptor.vue +105 -0
- package/rules/.docs/examples/component/player-manager/media-item-list-interceptor.vue +104 -0
- package/rules/.docs/examples/component/player-manager/media-item-list.vue +268 -0
- package/rules/.docs/examples/component/player-manager/media-source-interceptor.vue +115 -0
- package/rules/.docs/examples/component/player-manager/media-source-list-interceptor.vue +111 -0
- package/rules/.docs/examples/component/player-manager/multi-player.vue +130 -0
- package/rules/.docs/examples/component/player-manager/play-mode.vue +260 -0
- package/rules/.docs/examples/component/player-manager/play-rate.vue +244 -0
- package/rules/.docs/examples/component/player-manager/player-size.vue +119 -0
- package/rules/.docs/examples/component/player-manager/player-view.vue +381 -0
- package/rules/.docs/examples/component/player-manager/post-roll-ad.vue +189 -0
- package/rules/.docs/examples/component/player-manager/previous-roll-ad.vue +172 -0
- package/rules/.docs/examples/component/player-manager/start-position.vue +108 -0
- package/rules/.docs/examples/component/player-manager/text-left-player.vue +306 -0
- package/rules/.docs/examples/component/player-manager/text-right-player.vue +306 -0
- package/rules/.docs/examples/component/player-manager/window.vue +140 -0
- package/rules/.docs/examples/component/poster/basic.vue +144 -0
- package/rules/.docs/examples/component/poster/corner.vue +123 -0
- package/rules/.docs/examples/component/poster/decoration.vue +82 -0
- package/rules/.docs/examples/component/poster/float-title.vue +103 -0
- package/rules/.docs/examples/component/poster/ripple.vue +118 -0
- package/rules/.docs/examples/component/poster/score.vue +108 -0
- package/rules/.docs/examples/component/poster/shadow.vue +113 -0
- package/rules/.docs/examples/component/poster/shimmer.vue +113 -0
- package/rules/.docs/examples/component/poster/sub-title.vue +110 -0
- package/rules/.docs/examples/component/poster/title.vue +106 -0
- package/rules/.docs/examples/component/progress-bar/basic.vue +61 -0
- package/rules/.docs/examples/component/qr-code/basic.vue +16 -0
- package/rules/.docs/examples/component/radio-group/basic.vue +105 -0
- package/rules/.docs/examples/component/rating-bar/basic.vue +152 -0
- package/rules/.docs/examples/component/row/basic.vue +15 -0
- package/rules/.docs/examples/component/seek-bar/bar.vue +49 -0
- package/rules/.docs/examples/component/seek-bar/basic.vue +191 -0
- package/rules/.docs/examples/component/seek-bar/indicator.vue +74 -0
- package/rules/.docs/examples/component/seek-bar/range-mode.vue +130 -0
- package/rules/.docs/examples/component/seek-bar/single-mode.vue +113 -0
- package/rules/.docs/examples/component/seek-bar/step.vue +186 -0
- package/rules/.docs/examples/component/seek-bar/thumb.vue +148 -0
- package/rules/.docs/examples/component/seek-bar/tick-mark.vue +121 -0
- package/rules/.docs/examples/component/switch/basic.vue +26 -0
- package/rules/.docs/examples/component/tabs/basic.vue +109 -0
- package/rules/.docs/examples/component/tabs/custom-tab-item.vue +120 -0
- package/rules/.docs/examples/component/tabs/data.vue +121 -0
- package/rules/.docs/examples/component/tabs/horizontal.vue +118 -0
- package/rules/.docs/examples/component/tabs/item-add.vue +127 -0
- package/rules/.docs/examples/component/tabs/item-custom.vue +132 -0
- package/rules/.docs/examples/component/tabs/item-delete.vue +123 -0
- package/rules/.docs/examples/component/tabs/item-get.vue +124 -0
- package/rules/.docs/examples/component/tabs/item-update.vue +129 -0
- package/rules/.docs/examples/component/tabs/ref-basic.vue +63 -0
- package/rules/.docs/examples/component/tabs/ref-operations.vue +97 -0
- package/rules/.docs/examples/component/tabs/ref-page.vue +89 -0
- package/rules/.docs/examples/component/tabs/section-add.vue +138 -0
- package/rules/.docs/examples/component/tabs/section-delete.vue +126 -0
- package/rules/.docs/examples/component/tabs/section-get.vue +128 -0
- package/rules/.docs/examples/component/tabs/section-update.vue +137 -0
- package/rules/.docs/examples/component/tabs/section-vue.vue +111 -0
- package/rules/.docs/examples/component/tabs/single-tab.vue +112 -0
- package/rules/.docs/examples/component/text/basic.vue +20 -0
- package/rules/.docs/examples/component/text/ellipsize-mode.vue +122 -0
- package/rules/.docs/examples/component/text/gravity.vue +119 -0
- package/rules/.docs/examples/component/video-player/aspect-ratio.vue +242 -0
- package/rules/.docs/examples/component/video-player/basic.vue +82 -0
- package/rules/.docs/examples/component/video-player/control.vue +240 -0
- package/rules/.docs/examples/component/video-player/decode.vue +174 -0
- package/rules/.docs/examples/component/video-player/definition.vue +194 -0
- package/rules/.docs/examples/component/video-player/event-global.vue +89 -0
- package/rules/.docs/examples/component/video-player/event.vue +448 -0
- package/rules/.docs/examples/component/video-player/page.vue +150 -0
- package/rules/.docs/examples/component/video-player/play-mode.vue +220 -0
- package/rules/.docs/examples/component/video-player/play-rate.vue +198 -0
- package/rules/.docs/examples/component/video-player/progress.vue +211 -0
- package/rules/.docs/examples/component/video-player/render.vue +187 -0
- package/rules/.docs/examples/component/video-player/type.vue +133 -0
- package/rules/.docs/examples/component/view/background-img.vue +49 -0
- package/rules/.docs/examples/component/view/background.vue +28 -0
- package/rules/.docs/examples/component/view/basic.vue +28 -0
- package/rules/.docs/examples/component/view/border.vue +72 -0
- package/rules/.docs/examples/component/view/click.vue +66 -0
- package/rules/.docs/examples/component/view/focus-background.vue +60 -0
- package/rules/.docs/examples/component/view/focus.vue +58 -0
- package/rules/.docs/examples/component/view/gradient-background.vue +36 -0
- package/rules/.docs/examples/component/waterfall/basic.vue +167 -0
- package/rules/.docs/examples/component/waterfall/event.vue +154 -0
- package/rules/.docs/examples/component/waterfall/item-add.vue +82 -0
- package/rules/.docs/examples/component/waterfall/item-card-placeholder.vue +67 -0
- package/rules/.docs/examples/component/waterfall/item-card.vue +66 -0
- package/rules/.docs/examples/component/waterfall/item-custom.vue +81 -0
- package/rules/.docs/examples/component/waterfall/item-decoration.vue +63 -0
- package/rules/.docs/examples/component/waterfall/item-delete.vue +90 -0
- package/rules/.docs/examples/component/waterfall/item-get.vue +68 -0
- package/rules/.docs/examples/component/waterfall/item-update.vue +85 -0
- package/rules/.docs/examples/component/waterfall/ref-base.vue +141 -0
- package/rules/.docs/examples/component/waterfall/ref-operations.vue +192 -0
- package/rules/.docs/examples/component/waterfall/section-add.vue +72 -0
- package/rules/.docs/examples/component/waterfall/section-background.vue +94 -0
- package/rules/.docs/examples/component/waterfall/section-blank.vue +62 -0
- package/rules/.docs/examples/component/waterfall/section-card-placeholder.vue +90 -0
- package/rules/.docs/examples/component/waterfall/section-card.vue +83 -0
- package/rules/.docs/examples/component/waterfall/section-custom.vue +68 -0
- package/rules/.docs/examples/component/waterfall/section-decoration.vue +80 -0
- package/rules/.docs/examples/component/waterfall/section-delete.vue +76 -0
- package/rules/.docs/examples/component/waterfall/section-end.vue +91 -0
- package/rules/.docs/examples/component/waterfall/section-get.vue +74 -0
- package/rules/.docs/examples/component/waterfall/section-list.vue +56 -0
- package/rules/.docs/examples/component/waterfall/section-tabs-list.vue +149 -0
- package/rules/.docs/examples/component/waterfall/section-tabs.vue +153 -0
- package/rules/.docs/examples/component/waterfall/section-time.vue +48 -0
- package/rules/.docs/examples/component/waterfall/section-update.vue +118 -0
- package/rules/.docs/examples/component/waterfall/section-vue.vue +81 -0
- package/rules/.docs/examples/component/web-view/basic.vue +54 -0
- package/rules/.docs/examples/component/web-view/js-2-vue.vue +49 -0
- package/rules/.docs/examples/component/web-view/vue-2-js.vue +60 -0
- package/rules/.docs/examples/component/x5-web-view/basic.vue +54 -0
- package/rules/.docs/examples/css/gradient/basic.vue +43 -0
- package/rules/.docs/examples/css/gradient/corner-radii4.vue +86 -0
- package/rules/.docs/examples/css/gradient/corner-radius.vue +86 -0
- package/rules/.docs/examples/css/gradient/orientation.vue +168 -0
- package/rules/.docs/examples/css/gradient/shape.vue +97 -0
- package/rules/.docs/examples/css/gradient/type.vue +83 -0
- package/rules/.docs/examples/guide/router/app.vue +52 -0
- package/rules/.docs/examples/guide/slot/basic.vue +32 -0
- package/rules/.docs/examples/guide/slot/lifecycle.vue +106 -0
- package/rules/.docs/examples/module/action-bar/es-basic.vue +51 -0
- package/rules/.docs/examples/module/action-bar/qt-basic.vue +47 -0
- package/rules/.docs/examples/module/app-list/es-basic.vue +53 -0
- package/rules/.docs/examples/module/app-list/qt-basic.vue +50 -0
- package/rules/.docs/examples/module/audio/es-basic.vue +71 -0
- package/rules/.docs/examples/module/audio/qt-basic.vue +63 -0
- package/rules/.docs/examples/module/brightness/es-basic.vue +118 -0
- package/rules/.docs/examples/module/brightness/qt-basic.vue +115 -0
- package/rules/.docs/examples/module/broadcast/es-basic.vue +340 -0
- package/rules/.docs/examples/module/broadcast/qt-basic.vue +331 -0
- package/rules/.docs/examples/module/content-provider/es-basic.vue +92 -0
- package/rules/.docs/examples/module/content-provider/qt-basic.vue +86 -0
- package/rules/.docs/examples/module/develop/es-basic.vue +45 -0
- package/rules/.docs/examples/module/develop/qt-basic.vue +43 -0
- package/rules/.docs/examples/module/device/es-basic.vue +169 -0
- package/rules/.docs/examples/module/device/qt-basic.vue +166 -0
- package/rules/.docs/examples/module/display/es-basic.vue +45 -0
- package/rules/.docs/examples/module/display/qt-basic.vue +43 -0
- package/rules/.docs/examples/module/download/es-basic.vue +174 -0
- package/rules/.docs/examples/module/download/qt-basic.vue +168 -0
- package/rules/.docs/examples/module/es/es-basic.vue +74 -0
- package/rules/.docs/examples/module/es/qt-basic.vue +74 -0
- package/rules/.docs/examples/module/event-bus/es-emit.vue +31 -0
- package/rules/.docs/examples/module/event-bus/es-off.vue +53 -0
- package/rules/.docs/examples/module/event-bus/es-on.vue +56 -0
- package/rules/.docs/examples/module/event-bus/es-once.vue +47 -0
- package/rules/.docs/examples/module/event-bus/qt-emit.vue +28 -0
- package/rules/.docs/examples/module/event-bus/qt-off.vue +51 -0
- package/rules/.docs/examples/module/event-bus/qt-on.vue +53 -0
- package/rules/.docs/examples/module/event-bus/qt-once.vue +45 -0
- package/rules/.docs/examples/module/file/es-basic.vue +188 -0
- package/rules/.docs/examples/module/iac/es-basic.vue +211 -0
- package/rules/.docs/examples/module/iac/qt-basic.vue +208 -0
- package/rules/.docs/examples/module/key/es-back.vue +32 -0
- package/rules/.docs/examples/module/key/es-dispatch.vue +34 -0
- package/rules/.docs/examples/module/key/es-event.vue +34 -0
- package/rules/.docs/examples/module/local-storage/es-basic.vue +92 -0
- package/rules/.docs/examples/module/local-storage/qt-basic.vue +86 -0
- package/rules/.docs/examples/module/location/es-basic.vue +69 -0
- package/rules/.docs/examples/module/location/qt-basic.vue +67 -0
- package/rules/.docs/examples/module/log/es-basic.vue +45 -0
- package/rules/.docs/examples/module/log/qt-basic.vue +44 -0
- package/rules/.docs/examples/module/network/es-basic.vue +64 -0
- package/rules/.docs/examples/module/network/qt-basic.vue +60 -0
- package/rules/.docs/examples/module/page/es-app-lifecycle.vue +83 -0
- package/rules/.docs/examples/module/page/es-page-lifecycle.vue +80 -0
- package/rules/.docs/examples/module/page/es-page-state.vue +36 -0
- package/rules/.docs/examples/module/permission/es-basic.vue +62 -0
- package/rules/.docs/examples/module/permission/qt-basic.vue +59 -0
- package/rules/.docs/examples/module/plugin/es-basic.vue +71 -0
- package/rules/.docs/examples/module/plugin/qt-basic.vue +69 -0
- package/rules/.docs/examples/module/power/es-basic.vue +45 -0
- package/rules/.docs/examples/module/power/qt-basic.vue +41 -0
- package/rules/.docs/examples/module/runtime/es-basic.vue +42 -0
- package/rules/.docs/examples/module/runtime/qt-basic.vue +40 -0
- package/rules/.docs/examples/module/service/es-basic.vue +34 -0
- package/rules/.docs/examples/module/service/qt-basic.vue +31 -0
- package/rules/.docs/examples/module/share-data/es-basic.vue +266 -0
- package/rules/.docs/examples/module/share-data/qt-basic.vue +259 -0
- package/rules/.docs/examples/module/toast/es-basic.vue +47 -0
- package/rules/.docs/examples/module/toast/qt-basic.vue +44 -0
- package/rules/.docs/examples/module/upload/es-basic.vue +65 -0
- package/rules/.docs/examples/module/upload/qt-basic.vue +63 -0
- package/rules/.docs/examples/module/usb/es-basic.vue +138 -0
- package/rules/.docs/examples/module/usb/qt-basic.vue +135 -0
- package/rules/.docs/examples/module/xlog/es-basic.vue +45 -0
- package/rules/.docs/examples/module/xlog/qt-basic.vue +44 -0
- package/rules/.docs/examples/test/basic.vue +48 -0
- package/rules/.docs/index.md +7 -0
- package/rules/.docs/zh-CN/component/animation/alpha.md +22 -0
- package/rules/.docs/zh-CN/component/animation/animators.md +227 -0
- package/rules/.docs/zh-CN/component/animation/interpolator.md +59 -0
- package/rules/.docs/zh-CN/component/animation/introduction.md +101 -0
- package/rules/.docs/zh-CN/component/animation/listener.md +175 -0
- package/rules/.docs/zh-CN/component/animation/method.md +87 -0
- package/rules/.docs/zh-CN/component/animation/props.md +76 -0
- package/rules/.docs/zh-CN/component/animation/repeat.md +46 -0
- package/rules/.docs/zh-CN/component/animation/rotation-xy.md +17 -0
- package/rules/.docs/zh-CN/component/animation/rotation.md +23 -0
- package/rules/.docs/zh-CN/component/animation/scale.md +24 -0
- package/rules/.docs/zh-CN/component/animation/translation.md +22 -0
- package/rules/.docs/zh-CN/component/app-icon.md +22 -0
- package/rules/.docs/zh-CN/component/aside.md +14 -0
- package/rules/.docs/zh-CN/component/audio-player/basic.md +52 -0
- package/rules/.docs/zh-CN/component/audio-player/installation.md +26 -0
- package/rules/.docs/zh-CN/component/audio-player/introduction.md +12 -0
- package/rules/.docs/zh-CN/component/audio-player/player-manager.md +72 -0
- package/rules/.docs/zh-CN/component/audio-service-player/basic.md +52 -0
- package/rules/.docs/zh-CN/component/audio-service-player/installation.md +26 -0
- package/rules/.docs/zh-CN/component/audio-service-player/introduction.md +13 -0
- package/rules/.docs/zh-CN/component/audio-service-player/player-manager.md +71 -0
- package/rules/.docs/zh-CN/component/button.md +120 -0
- package/rules/.docs/zh-CN/component/card-container.md +24 -0
- package/rules/.docs/zh-CN/component/card.md +17 -0
- package/rules/.docs/zh-CN/component/checkbox-group.md +57 -0
- package/rules/.docs/zh-CN/component/classified-list-view.md +44 -0
- package/rules/.docs/zh-CN/component/collapse.md +45 -0
- package/rules/.docs/zh-CN/component/column.md +26 -0
- package/rules/.docs/zh-CN/component/container.md +81 -0
- package/rules/.docs/zh-CN/component/dialog.md +26 -0
- package/rules/.docs/zh-CN/component/div.md +234 -0
- package/rules/.docs/zh-CN/component/flex-view.md +14 -0
- package/rules/.docs/zh-CN/component/footer.md +14 -0
- package/rules/.docs/zh-CN/component/grid-view.md +221 -0
- package/rules/.docs/zh-CN/component/header.md +15 -0
- package/rules/.docs/zh-CN/component/html/alert.md +14 -0
- package/rules/.docs/zh-CN/component/html/audio.md +37 -0
- package/rules/.docs/zh-CN/component/html/h.md +15 -0
- package/rules/.docs/zh-CN/component/html/installation.md +67 -0
- package/rules/.docs/zh-CN/component/html/introduction.md +10 -0
- package/rules/.docs/zh-CN/component/html/video.md +39 -0
- package/rules/.docs/zh-CN/component/image.md +88 -0
- package/rules/.docs/zh-CN/component/img.md +118 -0
- package/rules/.docs/zh-CN/component/indicator-list-view.md +118 -0
- package/rules/.docs/zh-CN/component/input.md +54 -0
- package/rules/.docs/zh-CN/component/item-store.md +14 -0
- package/rules/.docs/zh-CN/component/item-view.md +14 -0
- package/rules/.docs/zh-CN/component/js-view.md +14 -0
- package/rules/.docs/zh-CN/component/js2vue.md +43 -0
- package/rules/.docs/zh-CN/component/large-list.md +20 -0
- package/rules/.docs/zh-CN/component/li.md +16 -0
- package/rules/.docs/zh-CN/component/list-item.md +34 -0
- package/rules/.docs/zh-CN/component/list-view.md +233 -0
- package/rules/.docs/zh-CN/component/loading.md +22 -0
- package/rules/.docs/zh-CN/component/lottie/assets.md +19 -0
- package/rules/.docs/zh-CN/component/lottie/basic.md +51 -0
- package/rules/.docs/zh-CN/component/lottie/event.md +23 -0
- package/rules/.docs/zh-CN/component/lottie/introduction.md +93 -0
- package/rules/.docs/zh-CN/component/lottie/network.md +12 -0
- package/rules/.docs/zh-CN/component/main.md +14 -0
- package/rules/.docs/zh-CN/component/media-series.md +44 -0
- package/rules/.docs/zh-CN/component/nav-bar.md +51 -0
- package/rules/.docs/zh-CN/component/overview.md +20 -0
- package/rules/.docs/zh-CN/component/p.md +55 -0
- package/rules/.docs/zh-CN/component/play-mark-view.md +25 -0
- package/rules/.docs/zh-CN/component/player/global-event.md +24 -0
- package/rules/.docs/zh-CN/component/player/interceptor.md +48 -0
- package/rules/.docs/zh-CN/component/player/media-player.md +43 -0
- package/rules/.docs/zh-CN/component/player/page-player.md +118 -0
- package/rules/.docs/zh-CN/component/player/player.md +190 -0
- package/rules/.docs/zh-CN/component/player-manager/aspect-ratio.md +51 -0
- package/rules/.docs/zh-CN/component/player-manager/basic.md +69 -0
- package/rules/.docs/zh-CN/component/player-manager/control.md +32 -0
- package/rules/.docs/zh-CN/component/player-manager/custom-control.md +105 -0
- package/rules/.docs/zh-CN/component/player-manager/data-structure.md +29 -0
- package/rules/.docs/zh-CN/component/player-manager/decode.md +46 -0
- package/rules/.docs/zh-CN/component/player-manager/definition.md +85 -0
- package/rules/.docs/zh-CN/component/player-manager/event.md +16 -0
- package/rules/.docs/zh-CN/component/player-manager/global-event.md +304 -0
- package/rules/.docs/zh-CN/component/player-manager/installation.md +33 -0
- package/rules/.docs/zh-CN/component/player-manager/introduction.md +207 -0
- package/rules/.docs/zh-CN/component/player-manager/media-item-interceptor.md +197 -0
- package/rules/.docs/zh-CN/component/player-manager/media-item-list-interceptor.md +189 -0
- package/rules/.docs/zh-CN/component/player-manager/media-item-list.md +31 -0
- package/rules/.docs/zh-CN/component/player-manager/media-source-interceptor.md +166 -0
- package/rules/.docs/zh-CN/component/player-manager/media-source-list-interceptor.md +168 -0
- package/rules/.docs/zh-CN/component/player-manager/mode.md +46 -0
- package/rules/.docs/zh-CN/component/player-manager/multiple-player.md +124 -0
- package/rules/.docs/zh-CN/component/player-manager/player-type.md +38 -0
- package/rules/.docs/zh-CN/component/player-manager/player-view.md +31 -0
- package/rules/.docs/zh-CN/component/player-manager/player.md +73 -0
- package/rules/.docs/zh-CN/component/player-manager/position.md +27 -0
- package/rules/.docs/zh-CN/component/player-manager/rate.md +53 -0
- package/rules/.docs/zh-CN/component/player-manager/size.md +17 -0
- package/rules/.docs/zh-CN/component/player-manager/window.md +65 -0
- package/rules/.docs/zh-CN/component/plugin-view.md +21 -0
- package/rules/.docs/zh-CN/component/poster.md +102 -0
- package/rules/.docs/zh-CN/component/progress-bar.md +347 -0
- package/rules/.docs/zh-CN/component/qr-code.md +23 -0
- package/rules/.docs/zh-CN/component/radio-group.md +57 -0
- package/rules/.docs/zh-CN/component/rating-bar.md +43 -0
- package/rules/.docs/zh-CN/component/replace-child.md +20 -0
- package/rules/.docs/zh-CN/component/ripple-view.md +14 -0
- package/rules/.docs/zh-CN/component/row.md +29 -0
- package/rules/.docs/zh-CN/component/scroll-view.md +21 -0
- package/rules/.docs/zh-CN/component/seek-bar.md +377 -0
- package/rules/.docs/zh-CN/component/surface-view.md +14 -0
- package/rules/.docs/zh-CN/component/swift-list.md +21 -0
- package/rules/.docs/zh-CN/component/swiper-slide.md +18 -0
- package/rules/.docs/zh-CN/component/swiper.md +34 -0
- package/rules/.docs/zh-CN/component/switch.md +37 -0
- package/rules/.docs/zh-CN/component/tabs-view.md +44 -0
- package/rules/.docs/zh-CN/component/tabs.md +286 -0
- package/rules/.docs/zh-CN/component/test.md +58 -0
- package/rules/.docs/zh-CN/component/text.md +115 -0
- package/rules/.docs/zh-CN/component/transition-img.md +22 -0
- package/rules/.docs/zh-CN/component/ul.md +83 -0
- package/rules/.docs/zh-CN/component/video-player/aspect-ratio.md +49 -0
- package/rules/.docs/zh-CN/component/video-player/basic.md +55 -0
- package/rules/.docs/zh-CN/component/video-player/control.md +23 -0
- package/rules/.docs/zh-CN/component/video-player/decode.md +46 -0
- package/rules/.docs/zh-CN/component/video-player/definition.md +85 -0
- package/rules/.docs/zh-CN/component/video-player/event.md +16 -0
- package/rules/.docs/zh-CN/component/video-player/global-event.md +268 -0
- package/rules/.docs/zh-CN/component/video-player/installation.md +33 -0
- package/rules/.docs/zh-CN/component/video-player/introduction.md +18 -0
- package/rules/.docs/zh-CN/component/video-player/mode.md +50 -0
- package/rules/.docs/zh-CN/component/video-player/progress.md +51 -0
- package/rules/.docs/zh-CN/component/video-player/rate.md +53 -0
- package/rules/.docs/zh-CN/component/video-player/render.md +47 -0
- package/rules/.docs/zh-CN/component/video-player/type.md +32 -0
- package/rules/.docs/zh-CN/component/view-pager.md +14 -0
- package/rules/.docs/zh-CN/component/view.md +234 -0
- package/rules/.docs/zh-CN/component/virtual-dom.md +4 -0
- package/rules/.docs/zh-CN/component/virtual.md +8 -0
- package/rules/.docs/zh-CN/component/vue-section.md +29 -0
- package/rules/.docs/zh-CN/component/vue2js.md +47 -0
- package/rules/.docs/zh-CN/component/waterfall.md +447 -0
- package/rules/.docs/zh-CN/component/web-view.md +100 -0
- package/rules/.docs/zh-CN/component/x5web-view.md +100 -0
- package/rules/.docs/zh-CN/cooperation/index.md +6 -0
- package/rules/.docs/zh-CN/css/color/gradient.md +111 -0
- package/rules/.docs/zh-CN/css/color/hsl.md +11 -0
- package/rules/.docs/zh-CN/css/color/name.md +151 -0
- package/rules/.docs/zh-CN/css/color/rgb.md +16 -0
- package/rules/.docs/zh-CN/css/color/transparent.md +9 -0
- package/rules/.docs/zh-CN/css/layout/align-items.md +13 -0
- package/rules/.docs/zh-CN/css/layout/align-self.md +12 -0
- package/rules/.docs/zh-CN/css/layout/background-position-x.md +12 -0
- package/rules/.docs/zh-CN/css/layout/background-position-y.md +12 -0
- package/rules/.docs/zh-CN/css/layout/background-size.md +12 -0
- package/rules/.docs/zh-CN/css/layout/collapsable.md +13 -0
- package/rules/.docs/zh-CN/css/layout/display.md +12 -0
- package/rules/.docs/zh-CN/css/layout/flex-basis.md +12 -0
- package/rules/.docs/zh-CN/css/layout/flex-direction.md +15 -0
- package/rules/.docs/zh-CN/css/layout/flex-grow.md +15 -0
- package/rules/.docs/zh-CN/css/layout/flex-shrink.md +12 -0
- package/rules/.docs/zh-CN/css/layout/flex-wrap.md +12 -0
- package/rules/.docs/zh-CN/css/layout/flex.md +12 -0
- package/rules/.docs/zh-CN/css/layout/height.md +12 -0
- package/rules/.docs/zh-CN/css/layout/justify-content.md +12 -0
- package/rules/.docs/zh-CN/css/layout/left.md +13 -0
- package/rules/.docs/zh-CN/css/layout/line-height.md +12 -0
- package/rules/.docs/zh-CN/css/layout/margin-bottom.md +12 -0
- package/rules/.docs/zh-CN/css/layout/margin-horizontal.md +12 -0
- package/rules/.docs/zh-CN/css/layout/margin-left.md +12 -0
- package/rules/.docs/zh-CN/css/layout/margin-right.md +12 -0
- package/rules/.docs/zh-CN/css/layout/margin-top.md +12 -0
- package/rules/.docs/zh-CN/css/layout/margin-vertical.md +12 -0
- package/rules/.docs/zh-CN/css/layout/margin.md +12 -0
- package/rules/.docs/zh-CN/css/layout/max-height.md +10 -0
- package/rules/.docs/zh-CN/css/layout/max-width.md +10 -0
- package/rules/.docs/zh-CN/css/layout/min-height.md +10 -0
- package/rules/.docs/zh-CN/css/layout/min-width.md +10 -0
- package/rules/.docs/zh-CN/css/layout/overflow.md +12 -0
- package/rules/.docs/zh-CN/css/layout/padding-bottom.md +12 -0
- package/rules/.docs/zh-CN/css/layout/padding-horizontal.md +12 -0
- package/rules/.docs/zh-CN/css/layout/padding-left.md +12 -0
- package/rules/.docs/zh-CN/css/layout/padding-right.md +12 -0
- package/rules/.docs/zh-CN/css/layout/padding-top.md +12 -0
- package/rules/.docs/zh-CN/css/layout/padding-vertical.md +12 -0
- package/rules/.docs/zh-CN/css/layout/padding.md +12 -0
- package/rules/.docs/zh-CN/css/layout/position.md +14 -0
- package/rules/.docs/zh-CN/css/layout/right.md +13 -0
- package/rules/.docs/zh-CN/css/layout/text-align.md +12 -0
- package/rules/.docs/zh-CN/css/layout/top.md +12 -0
- package/rules/.docs/zh-CN/css/layout/width.md +12 -0
- package/rules/.docs/zh-CN/css/layout/z-index.md +12 -0
- package/rules/.docs/zh-CN/css/overview.md +8 -0
- package/rules/.docs/zh-CN/css/style/background-color.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-bottom-color.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-bottom-left-radius.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-bottom-right-radius.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-bottom-width.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-color.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-left-color.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-left-width.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-radius.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-right-color.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-right-width.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-style.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-top-color.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-top-left-radius.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-top-right-radius.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-top-width.md +10 -0
- package/rules/.docs/zh-CN/css/style/border-width.md +10 -0
- package/rules/.docs/zh-CN/css/style/box-shadow.md +10 -0
- package/rules/.docs/zh-CN/css/style/color.md +10 -0
- package/rules/.docs/zh-CN/css/style/font-family.md +10 -0
- package/rules/.docs/zh-CN/css/style/font-size.md +10 -0
- package/rules/.docs/zh-CN/css/style/font-style.md +10 -0
- package/rules/.docs/zh-CN/css/style/font-weight.md +10 -0
- package/rules/.docs/zh-CN/css/style/letter-spacing.md +10 -0
- package/rules/.docs/zh-CN/css/style/opacity.md +10 -0
- package/rules/.docs/zh-CN/css/style/text-decoration-color.md +10 -0
- package/rules/.docs/zh-CN/css/style/text-decoration-line.md +10 -0
- package/rules/.docs/zh-CN/css/style/text-decoration.md +12 -0
- package/rules/.docs/zh-CN/css/style/tint-color.md +10 -0
- package/rules/.docs/zh-CN/css/style/visibility.md +10 -0
- package/rules/.docs/zh-CN/guide/basic/appendix.md +35 -0
- package/rules/.docs/zh-CN/guide/basic/dev-debug.md +94 -0
- package/rules/.docs/zh-CN/guide/basic/dev-tools.md +22 -0
- package/rules/.docs/zh-CN/guide/basic/installation.md +144 -0
- package/rules/.docs/zh-CN/guide/basic/language.md +10 -0
- package/rules/.docs/zh-CN/guide/basic/package-manager.md +8 -0
- package/rules/.docs/zh-CN/guide/basic/quick-start.md +150 -0
- package/rules/.docs/zh-CN/guide/changelog.md +20 -0
- package/rules/.docs/zh-CN/guide/commit-examples.md +90 -0
- package/rules/.docs/zh-CN/guide/compile/obfuscator.md +56 -0
- package/rules/.docs/zh-CN/guide/compile/pack.md +8 -0
- package/rules/.docs/zh-CN/guide/compile/resource.md +96 -0
- package/rules/.docs/zh-CN/guide/compile/split-chunks.md +66 -0
- package/rules/.docs/zh-CN/guide/dark-mode.md +84 -0
- package/rules/.docs/zh-CN/guide/design.md +34 -0
- package/rules/.docs/zh-CN/guide/dev-faq.md +41 -0
- package/rules/.docs/zh-CN/guide/dev-guide.md +55 -0
- package/rules/.docs/zh-CN/guide/device/ch.md +18 -0
- package/rules/.docs/zh-CN/guide/device/haier.md +12 -0
- package/rules/.docs/zh-CN/guide/device/hisense.md +24 -0
- package/rules/.docs/zh-CN/guide/device/huawei.md +16 -0
- package/rules/.docs/zh-CN/guide/device/konka.md +12 -0
- package/rules/.docs/zh-CN/guide/device/le.md +19 -0
- package/rules/.docs/zh-CN/guide/device/skyworth.md +25 -0
- package/rules/.docs/zh-CN/guide/device/tcl.md +21 -0
- package/rules/.docs/zh-CN/guide/device/tencent.md +24 -0
- package/rules/.docs/zh-CN/guide/device/tmall.md +18 -0
- package/rules/.docs/zh-CN/guide/device/xiaomi.md +46 -0
- package/rules/.docs/zh-CN/guide/faq/dev-faq.md +100 -0
- package/rules/.docs/zh-CN/guide/faq/develop-faq.md +39 -0
- package/rules/.docs/zh-CN/guide/faq/launch-params-faq.md +119 -0
- package/rules/.docs/zh-CN/guide/faq/layout-style-faq.md +66 -0
- package/rules/.docs/zh-CN/guide/focus/auto-focus.md +94 -0
- package/rules/.docs/zh-CN/guide/focus/basic.md +133 -0
- package/rules/.docs/zh-CN/guide/focus/debug-tool.md +40 -0
- package/rules/.docs/zh-CN/guide/focus/focus-method.md +317 -0
- package/rules/.docs/zh-CN/guide/focus/list-auto-focus.md +94 -0
- package/rules/.docs/zh-CN/guide/focus/request-focus.md +10 -0
- package/rules/.docs/zh-CN/guide/interaction/click.md +39 -0
- package/rules/.docs/zh-CN/guide/interaction/focus.md +44 -0
- package/rules/.docs/zh-CN/guide/key/back.md +65 -0
- package/rules/.docs/zh-CN/guide/key/dispatch-key-event.md +41 -0
- package/rules/.docs/zh-CN/guide/key/key-event.md +87 -0
- package/rules/.docs/zh-CN/guide/layout/adapter.md +33 -0
- package/rules/.docs/zh-CN/guide/layout/layout.md +42 -0
- package/rules/.docs/zh-CN/guide/layout/style.md +64 -0
- package/rules/.docs/zh-CN/guide/layout/theming.md +154 -0
- package/rules/.docs/zh-CN/guide/migration.md +25 -0
- package/rules/.docs/zh-CN/guide/namespace.md +69 -0
- package/rules/.docs/zh-CN/guide/nav.md +73 -0
- package/rules/.docs/zh-CN/guide/network/axios.md +47 -0
- package/rules/.docs/zh-CN/guide/network/fetch.md +70 -0
- package/rules/.docs/zh-CN/guide/network/websocket.md +107 -0
- package/rules/.docs/zh-CN/guide/node/install.md +179 -0
- package/rules/.docs/zh-CN/guide/npm/install.md +74 -0
- package/rules/.docs/zh-CN/guide/overview.md +41 -0
- package/rules/.docs/zh-CN/guide/page/application-lifecycle.md +37 -0
- package/rules/.docs/zh-CN/guide/page/lifecycle.md +32 -0
- package/rules/.docs/zh-CN/guide/page/page-lifecycle.md +35 -0
- package/rules/.docs/zh-CN/guide/page/page-state.md +31 -0
- package/rules/.docs/zh-CN/guide/page/type.md +49 -0
- package/rules/.docs/zh-CN/guide/publish/hub.md +31 -0
- package/rules/.docs/zh-CN/guide/publish/release-apk.md +51 -0
- package/rules/.docs/zh-CN/guide/publish/release-rpk.md +45 -0
- package/rules/.docs/zh-CN/guide/router/async.md +25 -0
- package/rules/.docs/zh-CN/guide/router/entry.md +60 -0
- package/rules/.docs/zh-CN/guide/router/error.md +25 -0
- package/rules/.docs/zh-CN/guide/router/install.md +70 -0
- package/rules/.docs/zh-CN/guide/router/introduction.md +35 -0
- package/rules/.docs/zh-CN/guide/router/launch.md +88 -0
- package/rules/.docs/zh-CN/guide/router/limit.md +33 -0
- package/rules/.docs/zh-CN/guide/router/native.md +104 -0
- package/rules/.docs/zh-CN/guide/router/result.md +42 -0
- package/rules/.docs/zh-CN/guide/sfc-component/async-component.md +88 -0
- package/rules/.docs/zh-CN/guide/sfc-component/native-component.md +127 -0
- package/rules/.docs/zh-CN/guide/slot/develop.md +42 -0
- package/rules/.docs/zh-CN/guide/slot/install.md +59 -0
- package/rules/.docs/zh-CN/guide/slot/introduction.md +45 -0
- package/rules/.docs/zh-CN/guide/slot/lifecycle.md +18 -0
- package/rules/.docs/zh-CN/guide/slot/project.md +22 -0
- package/rules/.docs/zh-CN/guide/test.md +8 -0
- package/rules/.docs/zh-CN/guide/theming.md +254 -0
- package/rules/.docs/zh-CN/guide/translation.md +39 -0
- package/rules/.docs/zh-CN/index.md +9 -0
- package/rules/.docs/zh-CN/module/action-bar.md +32 -0
- package/rules/.docs/zh-CN/module/app-list.md +57 -0
- package/rules/.docs/zh-CN/module/audio.md +45 -0
- package/rules/.docs/zh-CN/module/brightness.md +33 -0
- package/rules/.docs/zh-CN/module/broadcast.md +77 -0
- package/rules/.docs/zh-CN/module/content-provider.md +64 -0
- package/rules/.docs/zh-CN/module/develop.md +45 -0
- package/rules/.docs/zh-CN/module/device.md +108 -0
- package/rules/.docs/zh-CN/module/display.md +33 -0
- package/rules/.docs/zh-CN/module/download.md +97 -0
- package/rules/.docs/zh-CN/module/es.md +74 -0
- package/rules/.docs/zh-CN/module/event-bus.md +68 -0
- package/rules/.docs/zh-CN/module/file.md +62 -0
- package/rules/.docs/zh-CN/module/iac.md +51 -0
- package/rules/.docs/zh-CN/module/local-storage.md +35 -0
- package/rules/.docs/zh-CN/module/location.md +48 -0
- package/rules/.docs/zh-CN/module/log.md +52 -0
- package/rules/.docs/zh-CN/module/network.md +77 -0
- package/rules/.docs/zh-CN/module/overview.md +10 -0
- package/rules/.docs/zh-CN/module/permission.md +42 -0
- package/rules/.docs/zh-CN/module/plugin.md +38 -0
- package/rules/.docs/zh-CN/module/power.md +51 -0
- package/rules/.docs/zh-CN/module/runtime.md +41 -0
- package/rules/.docs/zh-CN/module/service.md +33 -0
- package/rules/.docs/zh-CN/module/share-data.md +85 -0
- package/rules/.docs/zh-CN/module/toast.md +30 -0
- package/rules/.docs/zh-CN/module/upload.md +53 -0
- package/rules/.docs/zh-CN/module/usb.md +52 -0
- package/rules/.docs/zh-CN/module/xlog.md +48 -0
- package/rules/.docs/zh-CN/resource/runtime.md +88 -0
- package/rules/.docs/zh-CN/resource/test-flight.md +27 -0
- package/rules/.docs/zh-CN/runtime/runtime.md +81 -0
- package/rules/.docs/zh-CN/runtime/test-flight.md +23 -0
- package/rules/.docs/zh-CN/sample/ai-dev.md +250 -0
- package/rules/.docs/zh-CN/sample/api-demo.md +26 -0
- package/rules/.docs/zh-CN/sample/app-list.md +12 -0
- package/rules/.docs/zh-CN/sample/hello-tv.md +98 -0
- package/rules/.docs/zh-CN/sdk/cus_component.md +249 -0
- package/rules/.docs/zh-CN/sdk/cus_module.md +163 -0
- package/rules/.docs/zh-CN/sdk/cus_splash.md +97 -0
- package/rules/.docs/zh-CN/sdk/empty.md +0 -0
- package/rules/.docs/zh-CN/sdk/first_implementation.md +15 -0
- package/rules/.docs/zh-CN/sdk/first_init.md +13 -0
- package/rules/.docs/zh-CN/sdk/first_start_app.md +4 -0
- package/rules/.docs/zh-CN/sdk/light-card.md +116 -0
- package/rules/.docs/zh-CN/sdk/overview.md +5 -0
- package/rules/.docs/zh-CN/tool/api/overview.md +103 -0
- package/rules/.docs/zh-CN/tool/cli/adb.md +32 -0
- package/rules/.docs/zh-CN/tool/cli/build.md +14 -0
- package/rules/.docs/zh-CN/tool/cli/clean.md +12 -0
- package/rules/.docs/zh-CN/tool/cli/config.md +37 -0
- package/rules/.docs/zh-CN/tool/cli/create.md +28 -0
- package/rules/.docs/zh-CN/tool/cli/debug.md +30 -0
- package/rules/.docs/zh-CN/tool/cli/info.md +14 -0
- package/rules/.docs/zh-CN/tool/cli/installation.md +12 -0
- package/rules/.docs/zh-CN/tool/cli/introduction.md +26 -0
- package/rules/.docs/zh-CN/tool/cli/logcat.md +10 -0
- package/rules/.docs/zh-CN/tool/cli/migrate.md +12 -0
- package/rules/.docs/zh-CN/tool/cli/pack.md +14 -0
- package/rules/.docs/zh-CN/tool/cli/preview.md +18 -0
- package/rules/.docs/zh-CN/tool/cli/publish.md +12 -0
- package/rules/.docs/zh-CN/tool/cli/setup.md +58 -0
- package/rules/.docs/zh-CN/tool/cli/start.md +54 -0
- package/rules/.docs/zh-CN/tool/cli/test.md +22 -0
- package/rules/.docs/zh-CN/tool/cli/upgrade.md +12 -0
- package/rules/.github/copilot-instructions.md +456 -0
- package/rules/.windsurfrules +367 -0
- package/rules/AGENTS.md +456 -0
- package/rules/AI_HANDOFF.md +376 -0
- package/rules/CLAUDE.md +836 -0
- package/rules/GEMINI.md +463 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
# QuickTVUI AI 集成 - 工作交接文档
|
|
2
|
+
|
|
3
|
+
> 本文档记录了为 QuickTVUI 框架搭建 AI 辅助开发体系的完整过程,供后续 AI 接手改进。
|
|
4
|
+
|
|
5
|
+
## 🔴 核心准则:权威来源与严禁幻觉 (CRITICAL)
|
|
6
|
+
|
|
7
|
+
**AI 在生成任何代码前,必须严格参考以下权威来源,严禁凭空想象任何组件名、属性名或 API。这是所有开发工作的唯一依据。**
|
|
8
|
+
|
|
9
|
+
1. **本地文档 (PRIMARY)**:项目根目录下的 `.docs/` 文件夹。包含所有组件、CSS、原生模块的详细 MD 文档。**AI 必须在生成代码前使用 `grep_search` 或 `read_file` 检索 `.docs/` 目录中的相关内容。**
|
|
10
|
+
2. **官方文档**:https://quicktvui.com (包含约 390 个详细文档)
|
|
11
|
+
3. **核心库示例**:https://github.com/quicktvui/quicktvui.git (Core library + samples)
|
|
12
|
+
4. **跨平台框架示例**:https://github.com/quicktvui/es-vue3.git (Cross-platform framework + samples)
|
|
13
|
+
5. **最佳实践应用**:https://github.com/quicktvui/hellotv.git (Complete video app)
|
|
14
|
+
|
|
15
|
+
**要求:**
|
|
16
|
+
- **检索与能力验证优先**:在实现任何功能(如“视频播放”)前,必须先在 `.docs/` 目录中检索相关文档,验证组件是否支持该功能。切勿想当然!**例如:`qt-web-view` 绝对不支持视频播放,视频播放必须使用框架提供的专用视频组件和管理器(如 `es-video-player` 和 `es-player-manager`)。**
|
|
17
|
+
- **非浏览器与无 HTML 环境**:**本框架绝对不支持标准 HTML 标签(如 `p`, `img`, `a`, `ul`, `li`, `h1` 等),严禁在模板中使用!绝对不支持 `window`、`document` (DOM) 对象或任何 DOM 操作 API。必须使用框架专属标签(如 `qt-text`, `qt-image`)和 Vue `ref`。**
|
|
18
|
+
- **严禁自造标签**:如 `qt-web` 是错的,官方示例中是 `qt-web-view`。
|
|
19
|
+
- **严禁自造 API**:如 `onBack` 是错的,必须是 `onBackPressed`。
|
|
20
|
+
- **参考优先**:遇到不确定的组件用法,必须先在上述仓库中搜索同名组件的实际用法。
|
|
21
|
+
|
|
22
|
+
## 🔥 核心架构避坑指南 (ARCHITECTURAL GOTCHAS)
|
|
23
|
+
|
|
24
|
+
AI 在编写业务逻辑时,极易带入传统 Web 开发习惯导致严重报错,**必须牢记以下框架特性**:
|
|
25
|
+
|
|
26
|
+
1. **视频/音频播放架构**:
|
|
27
|
+
* **绝对禁止**使用 HTML5 `<video>`、`<audio>` 或 `qt-web-view` 播放媒体。
|
|
28
|
+
* **最佳实践**:必须优先使用 **`es-player-manager`**(播放管理器)配合 `es-video-player` 或 `es-audio-player`。`es-player-manager` 负责处理窗口切换(全屏/小窗)、播放列表、焦点逻辑和生命周期,单用底层 player 会导致大量底层逻辑缺失。
|
|
29
|
+
2. **长列表组件 (`qt-list-view`, `qt-grid-view`, `qt-waterfall`)**:
|
|
30
|
+
* 必须设置 `listenBoundEvent="true"` 并监听 `@item-bind`。
|
|
31
|
+
* 列表的加载更多模版 `type` **必须**是 `1002`,底线提示 `type` **必须**是 `1003`。
|
|
32
|
+
3. **零 HTML 与 零 DOM 环境**:
|
|
33
|
+
* **这不是浏览器!** 底层是 Hippy 渲染的 Android Native View。
|
|
34
|
+
* **禁用标签**:`<p>`, `<img>`, `<ul>`, `<li>`, `<a>`, `<h1>`, `<button>` 等标准 HTML 标签**全部禁用**。只允许使用 `div`, `span` 或 `qt-` 开头的专属标签。
|
|
35
|
+
* **禁用 API**:没有 `window`, `document`, `e.preventDefault()`, `alert()`。本地存储必须用 `useESLocalStorage()`,提示必须用 `useESToast()`。
|
|
36
|
+
4. **CSS 严格子集**:
|
|
37
|
+
* 不支持任何 CSS 简写(例如 `margin: 10px` 必崩,必须写 `margin-top: 10px; margin-left: 10px;`)。
|
|
38
|
+
* 不支持 `auto`,不支持 `%`。所有组件**必须显式定义宽高**(`width` / `height` 赋明确的 px 值)。
|
|
39
|
+
|
|
40
|
+
## 快速创建项目 (Scaffolding)
|
|
41
|
+
|
|
42
|
+
当用户要求创建全新的 QuickTVUI 快应用项目时,AI **必须**严格遵循以下流程(切勿凭空生成目录和文件):
|
|
43
|
+
1. **获取模板**:`git clone https://github.com/quicktvui/quicktvui-template.git <项目名>`
|
|
44
|
+
2. **清理 Git**:`cd <项目名> && rm -rf .git`
|
|
45
|
+
3. **更新配置**:读取 `package.json`,修改 `name` 为目标项目名称,重置 `version` 为 `1.0.0`。
|
|
46
|
+
4. **安装依赖**:`yarn install`(推荐)。
|
|
47
|
+
5. **初始化提示**:提醒用户启动服务前,需确认是否已安装全局 CLI `npm install -g @quicktvui/cli@latest` 并执行了 `qui setup` 配置环境(详见 https://quicktvui.com/zh-CN/guide/basic/quick-start.html)。
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 一、项目背景
|
|
52
|
+
|
|
53
|
+
QuickTVUI 是基于 Vue 3 的 Android TV/大屏端 UI 框架,运行在 Hippy-based 快应用运行环境上。
|
|
54
|
+
|
|
55
|
+
**重要说明**:
|
|
56
|
+
|
|
57
|
+
- 文档仓库:https://github.com/quicktvui/quicktvui-next.git(本仓库)
|
|
58
|
+
- 文档位置:`docs/` 目录下,约 390 个 md 文档文件
|
|
59
|
+
- **只使用 MD 文档作为知识来源,不使用本仓库的代码**(packages/ 目录下的源码不参考)
|
|
60
|
+
|
|
61
|
+
## 二、目标
|
|
62
|
+
|
|
63
|
+
让 AI 工具(Claude Code、Codex、Gemini、Cursor、Copilot、Windsurf、Cline)能够:
|
|
64
|
+
|
|
65
|
+
1. 自动理解 QuickTVUI 框架的核心概念和约束
|
|
66
|
+
2. 生成符合框架规范的 Vue 代码(焦点系统、CSS 子集、TV 交互)
|
|
67
|
+
3. 所有配置文件自包含、可移植,拷贝到任何 QuickTVUI 应用项目即可使用
|
|
68
|
+
|
|
69
|
+
## 三、已创建的文件清单
|
|
70
|
+
|
|
71
|
+
### AI 指令文件(各工具自动加载)
|
|
72
|
+
|
|
73
|
+
| 文件 | 适用工具 | 说明 |
|
|
74
|
+
| --------------------------------- | ------------------------------------- | ------------------------------------ |
|
|
75
|
+
| `CLAUDE.md` | Claude Code | 最详细版本,含完整组件 API、代码模板 |
|
|
76
|
+
| `AGENTS.md` | OpenAI Codex / Gemini(Android Studio) | 英文精简版 |
|
|
77
|
+
| `GEMINI.md` | Gemini CLI / Gemini Code Assist | 基于 AGENTS.md |
|
|
78
|
+
| `.cursorrules` | Cursor IDE | 精简版规则 |
|
|
79
|
+
| `.github/copilot-instructions.md` | GitHub Copilot | 基于 AGENTS.md |
|
|
80
|
+
| `.windsurfrules` | Windsurf (Codeium) | 基于 AGENTS.md |
|
|
81
|
+
| `.clinerules` | Cline | 基于 AGENTS.md |
|
|
82
|
+
|
|
83
|
+
### Claude Code Skills(快捷指令)
|
|
84
|
+
|
|
85
|
+
| 文件 | 触发命令 | 功能 |
|
|
86
|
+
| -------------------------------------- | ------------------- | ---------------------- |
|
|
87
|
+
| `.claude/commands/create-page.md` | `/create-page` | 创建符合规范的 TV 页面 |
|
|
88
|
+
| `.claude/commands/create-component.md` | `/create-component` | 按框架规范创建新组件 |
|
|
89
|
+
| `.claude/commands/lookup-api.md` | `/lookup-api` | 查询组件 API |
|
|
90
|
+
| `.claude/commands/lookup-css.md` | `/lookup-css` | 查询 CSS 属性及限制 |
|
|
91
|
+
|
|
92
|
+
## 四、知识来源
|
|
93
|
+
|
|
94
|
+
所有 AI 指令文件的内容提炼自以下来源:
|
|
95
|
+
|
|
96
|
+
### 本仓库 MD 文档(约 390 个文件)
|
|
97
|
+
|
|
98
|
+
**文档仓库**:https://github.com/quicktvui/quicktvui-next.git
|
|
99
|
+
|
|
100
|
+
**重要**:只使用此仓库 `docs/` 目录下的 MD 文档,不使用 `packages/` 目录下的源码。
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
docs/zh-CN/
|
|
104
|
+
├── component/ # ~155 个组件文档(button.md, waterfall.md 等)
|
|
105
|
+
├── guide/ # ~100 个开发指南
|
|
106
|
+
│ ├── focus/ # 焦点系统(basic, auto-focus, request-focus, focus-method, list-auto-focus)
|
|
107
|
+
│ ├── layout/ # 布局(layout, style, adapter)
|
|
108
|
+
│ ├── page/ # 页面生命周期
|
|
109
|
+
│ ├── key/ # 按键事件
|
|
110
|
+
│ ├── router/ # 路由
|
|
111
|
+
│ └── ...
|
|
112
|
+
├── css/ # ~40 个 CSS 属性文档
|
|
113
|
+
│ ├── layout/ # 布局属性
|
|
114
|
+
│ ├── style/ # 样式属性
|
|
115
|
+
│ └── color/ # 颜色格式
|
|
116
|
+
├── module/ # ~30 个原生模块文档
|
|
117
|
+
├── tool/ # CLI 工具文档
|
|
118
|
+
└── sdk/ # SDK 集成文档
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 外部代码仓库(供 AI 参考实际代码风格)
|
|
122
|
+
|
|
123
|
+
**重要**:这 3 个仓库用于参考实际的 Vue 代码风格和最佳实践,不是文档来源。
|
|
124
|
+
|
|
125
|
+
- https://github.com/quicktvui/quicktvui.git — 核心库 + sample 示例
|
|
126
|
+
- https://github.com/quicktvui/es-vue3.git — 跨平台框架 + sample 示例
|
|
127
|
+
- https://github.com/quicktvui/hellotv.git — 完整视频应用(最佳实践)
|
|
128
|
+
|
|
129
|
+
### 用户提供的权威 CSS 属性列表
|
|
130
|
+
|
|
131
|
+
CSS 属性列表由框架作者直接提供,优先级高于文档推断。已嵌入所有 AI 指令文件中。
|
|
132
|
+
|
|
133
|
+
## 五、设计决策与原因
|
|
134
|
+
|
|
135
|
+
### 1. 自包含 vs 引用本地文档路径
|
|
136
|
+
|
|
137
|
+
最初版本引用了 `docs/zh-CN/component/<name>.md` 等本地路径,但这些路径只存在于框架源码仓库中,不存在于用户的应用项目中。
|
|
138
|
+
|
|
139
|
+
**最终方案**:所有 AI 指令文件完全自包含,将核心知识直接嵌入文件内容,不依赖任何本地文件路径。用户只需将文件拷贝到自己的项目根目录即可使用。
|
|
140
|
+
|
|
141
|
+
### 2. 分层详略
|
|
142
|
+
|
|
143
|
+
- `CLAUDE.md`:最详细(~400 行),包含完整组件 API 表格、代码模板、所有原生模块
|
|
144
|
+
- `AGENTS.md`:英文精简版(~190 行),覆盖核心概念,作为其他工具配置的基础模板
|
|
145
|
+
- `.cursorrules`:最精简(~80 行),只保留关键规则和属性列表
|
|
146
|
+
|
|
147
|
+
原因:不同 AI 工具对指令文件的 token 预算不同,Claude Code 支持较长上下文,Cursor 则需要更紧凑。
|
|
148
|
+
|
|
149
|
+
### 3. 英文 vs 中文
|
|
150
|
+
|
|
151
|
+
- `CLAUDE.md`:中文(框架用户主要是中文开发者,Claude 中文理解能力强)
|
|
152
|
+
- `AGENTS.md` 及衍生文件:英文(Codex/Gemini 等工具对英文指令效果更稳定)
|
|
153
|
+
|
|
154
|
+
### 4. CSS 属性使用 camelCase
|
|
155
|
+
|
|
156
|
+
框架的 CSS 属性名使用 camelCase(如 `focusBackgroundColor`),不是标准 Web 的 kebab-case(如 `focus-background-color`)。所有文件和代码模板中统一使用 camelCase。
|
|
157
|
+
|
|
158
|
+
## 六、从文档中提取的核心知识点
|
|
159
|
+
|
|
160
|
+
### 焦点系统(从 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/guide/focus/` 提取)
|
|
161
|
+
|
|
162
|
+
- 基础属性:`focusable`, `focusScale`, `enableFocusBorder`, `autofocus`, `requestFocus`
|
|
163
|
+
- CSS 扩展:`focusBackgroundColor`, `focusColor`, `selectColor`, `enableBlackBorder` 等
|
|
164
|
+
- 方向控制:`nextFocusName`, `blockFocusDirections`, `descendantFocusability`
|
|
165
|
+
- 列表焦点:`autofocusPosition`, `focusMemory`
|
|
166
|
+
- 状态继承:`duplicateParentState`, `showOnState`
|
|
167
|
+
|
|
168
|
+
### CSS 约束(从 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/css/` + 用户提供列表)
|
|
169
|
+
|
|
170
|
+
- **CRITICAL: NO `auto` sizing**. All elements MUST have explicit `px` values.
|
|
171
|
+
- **CRITICAL: NO `alert()`**. Use `useESToast().showToast()` instead.
|
|
172
|
+
- **CRITICAL: NO `e.preventDefault()`** or `e.stopPropagation()`. These do not exist in the native event system.
|
|
173
|
+
- **CRITICAL: NO `window` or `document` (DOM) objects**. The runtime is not a browser.
|
|
174
|
+
- **CRITICAL: Static styles MUST be in `<style>` (kebab-case), Dynamic styles MUST be in `:style` attributes.**
|
|
175
|
+
- **CRITICAL: NO `-webkit-font-smoothing: antialiased;`**. This is not supported.
|
|
176
|
+
- **CRITICAL: ONLY use `div` and `span` for standard tags.** Do NOT use `p`, `h1-h6`, `section`, etc.
|
|
177
|
+
- 只支持 px 单位(不支持 %、auto、vh/vw/rem/em)
|
|
178
|
+
- 不支持 CSS 简写(如 `margin: 5px 10px` 必须拆写)
|
|
179
|
+
- 不支持 CSS 变量、`!important`
|
|
180
|
+
- 默认 flexbox 布局,默认 `flex-direction: column`
|
|
181
|
+
- 所有元素必须显式指定 width 和 height
|
|
182
|
+
- 支持的属性:布局、背景、边框、阴影、文字、图片、焦点态、输入(共 80+ 个属性)
|
|
183
|
+
|
|
184
|
+
### 页面生命周期(从 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/guide/page/` 提取)
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
onESCreate(params) → onESStart() → onESResume() → onESPause() → onESStop() → onESDestroy()
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
- 只有在 routes.ts 中声明的组件才是 Page,子组件不能监听生命周期
|
|
191
|
+
- 生命周期方法不能用 `async`
|
|
192
|
+
|
|
193
|
+
### 路由系统(从 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/guide/router/` 提取)
|
|
194
|
+
|
|
195
|
+
- `createESRouter({ main, error, limit, routes })`
|
|
196
|
+
- `useESRouter()` → `router.push()`, `router.back()`
|
|
197
|
+
- 路由参数通过 `onESCreate(params)` 接收
|
|
198
|
+
|
|
199
|
+
### 按键事件(从 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/guide/key/` 提取)
|
|
200
|
+
|
|
201
|
+
- 在 `setup()` 中定义 `onKeyDown`, `onKeyUp`, `onBackPressed`,必须在 `return` 中导出
|
|
202
|
+
- 常用键值:DPAD_UP(19), DOWN(20), LEFT(21), RIGHT(22), CENTER(23), ENTER(66), BACK(4)
|
|
203
|
+
|
|
204
|
+
### 组件 API(从 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/component/` 提取)
|
|
205
|
+
|
|
206
|
+
已提取详细 API 的组件:
|
|
207
|
+
|
|
208
|
+
- `qt-button`:text, size, focusable, focusScale, disabled, round, icon, gradientBackground
|
|
209
|
+
- `qt-text`:text, fontSize, textColor, focusColor, gravity, lines, duplicateParentState
|
|
210
|
+
- `qt-image`:src, focusable, enableFade, fadeDuration, resizeMode
|
|
211
|
+
- `qt-input`:hintText, textColor, textSize, strokeWidth, strokeColor
|
|
212
|
+
- `qt-waterfall`:enablePlaceholder, blockFocusDirections, autofocusPosition, 事件(onScroll, onItemClick, onItemFocused)
|
|
213
|
+
|
|
214
|
+
其他组件(已列出但未详细展开):qt-card, qt-tabs, qt-seek-bar, qt-dialog, qt-list-view, qt-grid-view, qt-scroll-view, qt-row, qt-column, qt-animation 等
|
|
215
|
+
|
|
216
|
+
### 原生模块(从 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/module/` 提取)
|
|
217
|
+
|
|
218
|
+
- `useESLocalStorage()`:putString/getString, putInt/getInt, putBoolean/getBoolean
|
|
219
|
+
- `useESToast()`:showToast, showLongToast, showShortToast
|
|
220
|
+
- `useESDevice()`:getScreenWidth, getScreenHeight, getIPAddress
|
|
221
|
+
- `useESNetwork()`:isNetworkConnected, getActiveNetworkInfo, addListener
|
|
222
|
+
- `useESAudio()`:getStreamMusicVolume, setStreamVolume, setStreamMute
|
|
223
|
+
- `useESEventBus()`:on, once, emit, off
|
|
224
|
+
- `useESBrightness()`:getScreenBrightness, changeScreenBrightness
|
|
225
|
+
|
|
226
|
+
## 七、已知缺陷与限制
|
|
227
|
+
|
|
228
|
+
### 1. 组件 API 覆盖不完整
|
|
229
|
+
|
|
230
|
+
当前 `CLAUDE.md` 只详细展开了 5 个组件的 API(qt-button, qt-text, qt-image, qt-input, qt-waterfall),但框架实际有 100+ 个组件。其他组件只在表格中列出了名称和用途,没有详细的属性、事件、方法说明。
|
|
231
|
+
|
|
232
|
+
**影响**:AI 在使用 qt-card, qt-tabs, qt-seek-bar 等组件时可能生成不准确的代码。
|
|
233
|
+
|
|
234
|
+
**改进方向**:逐步补充更多组件的详细 API(从 `docs/zh-CN/component/` 中提取)。
|
|
235
|
+
|
|
236
|
+
### 2. CSS 属性列表未与文档交叉验证
|
|
237
|
+
|
|
238
|
+
当前使用的 CSS 属性列表是用户直接提供的,未与 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/css/` 中的所有文档文件逐一对照验证。可能存在:
|
|
239
|
+
|
|
240
|
+
- 文档中有说明但列表中遗漏的属性
|
|
241
|
+
- 列表中有但文档未详细说明的属性
|
|
242
|
+
- 属性的取值范围、默认值等细节信息缺失
|
|
243
|
+
|
|
244
|
+
**改进方向**:编写脚本自动提取所有 CSS 文档中的属性定义,与用户列表合并校验。
|
|
245
|
+
|
|
246
|
+
### 3. 代码模板较少
|
|
247
|
+
|
|
248
|
+
当前只有 1 个完整的页面模板(最小 TV 页面),缺少:
|
|
249
|
+
|
|
250
|
+
- 列表页模板(qt-waterfall / qt-list-view)
|
|
251
|
+
- 详情页模板(带返回键处理)
|
|
252
|
+
- 弹窗模板(qt-dialog)
|
|
253
|
+
- 表单页模板(qt-input + 焦点管理)
|
|
254
|
+
- 视频播放页模板
|
|
255
|
+
|
|
256
|
+
**改进方向**:从 https://github.com/quicktvui/hellotv.git 仓库中提取典型页面作为模板。
|
|
257
|
+
|
|
258
|
+
### 4. Skills 功能有限
|
|
259
|
+
|
|
260
|
+
当前 4 个 Skills 都是查询型或脚手架型,缺少:
|
|
261
|
+
|
|
262
|
+
- 调试辅助(如 `/debug-focus` 生成焦点可视化代码)
|
|
263
|
+
- 代码检查(如 `/check-css` 检查是否使用了不支持的属性)
|
|
264
|
+
- 迁移辅助(如 `/migrate-from-web` 将标准 Vue 代码转换为 QuickTVUI 代码)
|
|
265
|
+
|
|
266
|
+
### 5. 无动态文档查询能力
|
|
267
|
+
|
|
268
|
+
所有知识都静态嵌入在 AI 指令文件中,当框架文档更新时,需要手动重新提取和更新。
|
|
269
|
+
|
|
270
|
+
**改进方向**:构建 MCP Server,让 AI 能动态查询最新文档内容。
|
|
271
|
+
|
|
272
|
+
## 八、后续改进建议
|
|
273
|
+
|
|
274
|
+
### 短期改进(1-2 周)
|
|
275
|
+
|
|
276
|
+
1. **补充高频组件 API**
|
|
277
|
+
- 优先补充:qt-card, qt-tabs, qt-list-view, qt-grid-view, qt-seek-bar, qt-dialog
|
|
278
|
+
- 从 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/component/` 中提取完整的属性表、事件列表、方法说明
|
|
279
|
+
- 更新到 `CLAUDE.md` 和 `AGENTS.md`
|
|
280
|
+
|
|
281
|
+
2. **添加更多代码模板**
|
|
282
|
+
- 列表页模板(包含 qt-waterfall 的完整用法)
|
|
283
|
+
- 详情页模板(包含参数接收、返回键处理)
|
|
284
|
+
- 弹窗模板(全局弹窗 vs 路由弹窗)
|
|
285
|
+
- 嵌入到 Skills 或 CLAUDE.md 的"代码模板"章节
|
|
286
|
+
|
|
287
|
+
3. **创建实用 Skills**
|
|
288
|
+
- `/debug-focus`:生成焦点调试代码(显示当前焦点元素、焦点路径)
|
|
289
|
+
- `/check-css`:检查代码中是否使用了不支持的 CSS 属性
|
|
290
|
+
- `/fix-focus`:自动为页面添加基础焦点配置
|
|
291
|
+
|
|
292
|
+
### 中期改进(1-2 个月)
|
|
293
|
+
|
|
294
|
+
4. **CSS 属性完整性验证**
|
|
295
|
+
- 编写脚本遍历 https://github.com/quicktvui/quicktvui-next.git `docs/zh-CN/css/` 所有文档
|
|
296
|
+
- 提取每个属性的:支持的值、默认值、示例、注意事项
|
|
297
|
+
- 与用户提供的列表交叉验证,生成完整的 CSS 属性字典
|
|
298
|
+
- 考虑将详细的 CSS 字典作为独立文件(如 `CSS_REFERENCE.md`)
|
|
299
|
+
|
|
300
|
+
5. **构建 MCP Server**
|
|
301
|
+
- 实现 `search_component(name)` 工具:动态查询组件文档
|
|
302
|
+
- 实现 `search_css(property)` 工具:动态查询 CSS 属性
|
|
303
|
+
- 实现 `search_guide(topic)` 工具:动态查询开发指南
|
|
304
|
+
- 让 AI 能实时获取最新文档,而不依赖静态嵌入的知识
|
|
305
|
+
|
|
306
|
+
6. **自动化同步机制**
|
|
307
|
+
- 监听 `docs/zh-CN/` 目录变化
|
|
308
|
+
- 文档更新时自动重新提取知识,更新 AI 指令文件
|
|
309
|
+
- 生成变更日志,通知用户哪些知识点发生了变化
|
|
310
|
+
|
|
311
|
+
### 长期改进(3+ 个月)
|
|
312
|
+
|
|
313
|
+
7. **多语言支持**
|
|
314
|
+
- 当前只有中文(CLAUDE.md)和英文(AGENTS.md)
|
|
315
|
+
- 考虑添加日文、韩文版本(如果框架有国际化需求)
|
|
316
|
+
|
|
317
|
+
8. **AI 代码审查 Skill**
|
|
318
|
+
- `/review-code`:检查代码是否符合框架最佳实践
|
|
319
|
+
- 检查项:焦点配置完整性、CSS 属性合规性、生命周期使用正确性、按键事件处理
|
|
320
|
+
|
|
321
|
+
9. **交互式学习模式**
|
|
322
|
+
- `/learn-focus`:交互式教程,逐步引导用户理解焦点系统
|
|
323
|
+
- `/learn-css`:交互式 CSS 属性查询和示例生成
|
|
324
|
+
|
|
325
|
+
10. **与 hellotv 项目深度集成**
|
|
326
|
+
- 从 https://github.com/quicktvui/hellotv.git 提取真实业务场景的代码片段
|
|
327
|
+
- 作为"最佳实践"嵌入 AI 指令文件
|
|
328
|
+
- 让 AI 能参考真实项目的代码风格和架构模式
|
|
329
|
+
|
|
330
|
+
## 九、使用方法
|
|
331
|
+
|
|
332
|
+
### 对于框架用户(应用开发者)
|
|
333
|
+
|
|
334
|
+
1. 将以下文件拷贝到你的 QuickTVUI 应用项目根目录:
|
|
335
|
+
- `CLAUDE.md`(如果使用 Claude Code)
|
|
336
|
+
- `AGENTS.md`(如果使用 OpenAI Codex)
|
|
337
|
+
- `GEMINI.md`(如果使用 Gemini)
|
|
338
|
+
- `.cursorrules`(如果使用 Cursor)
|
|
339
|
+
- `.github/copilot-instructions.md`(如果使用 GitHub Copilot)
|
|
340
|
+
- `.windsurfrules`(如果使用 Windsurf)
|
|
341
|
+
- `.clinerules`(如果使用 Cline)
|
|
342
|
+
- `.claude/commands/`(如果使用 Claude Code,拷贝整个目录)
|
|
343
|
+
|
|
344
|
+
2. AI 工具会自动加载这些文件,理解 QuickTVUI 框架规范
|
|
345
|
+
|
|
346
|
+
3. 开始编码时,AI 会生成符合框架约束的代码(焦点系统、CSS 子集、TV 交互)
|
|
347
|
+
|
|
348
|
+
### 对于后续 AI 接手者
|
|
349
|
+
|
|
350
|
+
1. 阅读本文档(`AI_HANDOFF.md`)了解整体架构和设计决策
|
|
351
|
+
|
|
352
|
+
2. 查看"已知缺陷与限制"章节,了解当前的不足
|
|
353
|
+
|
|
354
|
+
3. 根据"后续改进建议"选择优先级高的任务开始改进
|
|
355
|
+
|
|
356
|
+
4. 改进时的关键原则:
|
|
357
|
+
- 保持所有文件自包含、可移植
|
|
358
|
+
- 从 `docs/zh-CN/` 提取知识,不要编造
|
|
359
|
+
- 使用用户提供的权威 CSS 属性列表
|
|
360
|
+
- 参考 3 个外部代码仓库的实际代码风格
|
|
361
|
+
- 测试生成的代码模板是否能直接运行
|
|
362
|
+
|
|
363
|
+
## 十、参考资源
|
|
364
|
+
|
|
365
|
+
- 在线文档:https://quicktvui.com
|
|
366
|
+
- **文档仓库**:https://github.com/quicktvui/quicktvui-next.git(`docs/` 目录,约 390 个 md 文件)
|
|
367
|
+
- **代码参考仓库**:
|
|
368
|
+
- 核心库:https://github.com/quicktvui/quicktvui.git
|
|
369
|
+
- 跨平台框架:https://github.com/quicktvui/es-vue3.git
|
|
370
|
+
- 完整应用示例:https://github.com/quicktvui/hellotv.git
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
**文档版本**:v1.0
|
|
375
|
+
**创建日期**:2026-02-27
|
|
376
|
+
**最后更新**:2026-02-27
|