@yh-ui/components 0.1.10 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-action-group/__tests__/ai-action-group.ssr.test.cjs +55 -0
- package/dist/ai-action-group/__tests__/ai-action-group.ssr.test.d.ts +1 -0
- package/dist/ai-action-group/__tests__/ai-action-group.ssr.test.mjs +39 -0
- package/dist/ai-action-group/__tests__/ai-action-group.test.cjs +149 -0
- package/dist/ai-action-group/__tests__/ai-action-group.test.d.ts +1 -0
- package/dist/ai-action-group/__tests__/ai-action-group.test.mjs +104 -0
- package/dist/ai-action-group/index.cjs +26 -0
- package/dist/ai-action-group/index.d.ts +3 -0
- package/dist/ai-action-group/index.mjs +5 -0
- package/dist/ai-action-group/src/ai-action-group.cjs +50 -0
- package/dist/ai-action-group/src/ai-action-group.css +517 -0
- package/dist/ai-action-group/src/ai-action-group.d.ts +55 -0
- package/dist/ai-action-group/src/ai-action-group.d.vue.ts +40 -0
- package/dist/ai-action-group/src/ai-action-group.mjs +44 -0
- package/dist/ai-action-group/src/ai-action-group.vue +602 -0
- package/dist/ai-action-group/src/ai-action-group.vue.d.ts +40 -0
- package/dist/ai-agent-card/__tests__/ai-agent-card.ssr.test.cjs +61 -0
- package/dist/ai-agent-card/__tests__/ai-agent-card.ssr.test.d.ts +1 -0
- package/dist/ai-agent-card/__tests__/ai-agent-card.ssr.test.mjs +65 -0
- package/dist/ai-agent-card/__tests__/ai-agent-card.test.cjs +70 -0
- package/dist/ai-agent-card/__tests__/ai-agent-card.test.d.ts +1 -0
- package/dist/ai-agent-card/__tests__/ai-agent-card.test.mjs +64 -0
- package/dist/ai-agent-card/index.cjs +26 -0
- package/dist/ai-agent-card/index.d.ts +3 -0
- package/dist/ai-agent-card/index.mjs +5 -0
- package/dist/ai-agent-card/src/ai-agent-card.cjs +74 -0
- package/dist/ai-agent-card/src/ai-agent-card.css +859 -0
- package/dist/ai-agent-card/src/ai-agent-card.d.ts +122 -0
- package/dist/ai-agent-card/src/ai-agent-card.d.vue.ts +62 -0
- package/dist/ai-agent-card/src/ai-agent-card.mjs +68 -0
- package/dist/ai-agent-card/src/ai-agent-card.vue +1029 -0
- package/dist/ai-agent-card/src/ai-agent-card.vue.d.ts +62 -0
- package/dist/ai-artifacts/__tests__/ai-artifacts.ssr.test.cjs +73 -0
- package/dist/ai-artifacts/__tests__/ai-artifacts.ssr.test.d.ts +1 -0
- package/dist/ai-artifacts/__tests__/ai-artifacts.ssr.test.mjs +68 -0
- package/dist/ai-artifacts/__tests__/ai-artifacts.test.cjs +128 -0
- package/dist/ai-artifacts/__tests__/ai-artifacts.test.d.ts +1 -0
- package/dist/ai-artifacts/__tests__/ai-artifacts.test.mjs +109 -0
- package/dist/ai-artifacts/index.cjs +26 -0
- package/dist/ai-artifacts/index.d.ts +3 -0
- package/dist/ai-artifacts/index.mjs +5 -0
- package/dist/ai-artifacts/src/ai-artifacts.cjs +55 -0
- package/dist/ai-artifacts/src/ai-artifacts.css +633 -0
- package/dist/ai-artifacts/src/ai-artifacts.d.ts +93 -0
- package/dist/ai-artifacts/src/ai-artifacts.d.vue.ts +33 -0
- package/dist/ai-artifacts/src/ai-artifacts.mjs +49 -0
- package/dist/ai-artifacts/src/ai-artifacts.vue +803 -0
- package/dist/ai-artifacts/src/ai-artifacts.vue.d.ts +33 -0
- package/dist/ai-bubble/__tests__/ai-bubble.ssr.test.cjs +87 -0
- package/dist/ai-bubble/__tests__/ai-bubble.ssr.test.d.ts +1 -0
- package/dist/ai-bubble/__tests__/ai-bubble.ssr.test.mjs +58 -0
- package/dist/ai-bubble/__tests__/ai-bubble.test.cjs +227 -0
- package/dist/ai-bubble/__tests__/ai-bubble.test.d.ts +1 -0
- package/dist/ai-bubble/__tests__/ai-bubble.test.mjs +123 -0
- package/dist/ai-bubble/index.cjs +26 -0
- package/dist/ai-bubble/index.d.ts +3 -0
- package/dist/ai-bubble/index.mjs +5 -0
- package/dist/ai-bubble/src/ai-bubble.cjs +86 -0
- package/dist/ai-bubble/src/ai-bubble.css +932 -0
- package/dist/ai-bubble/src/ai-bubble.d.ts +126 -0
- package/dist/ai-bubble/src/ai-bubble.d.vue.ts +110 -0
- package/dist/ai-bubble/src/ai-bubble.mjs +80 -0
- package/dist/ai-bubble/src/ai-bubble.vue +1300 -0
- package/dist/ai-bubble/src/ai-bubble.vue.d.ts +110 -0
- package/dist/ai-chat/__tests__/ai-chat.ssr.test.cjs +82 -0
- package/dist/ai-chat/__tests__/ai-chat.ssr.test.d.ts +1 -0
- package/dist/ai-chat/__tests__/ai-chat.ssr.test.mjs +69 -0
- package/dist/ai-chat/__tests__/ai-chat.test.cjs +169 -0
- package/dist/ai-chat/__tests__/ai-chat.test.d.ts +1 -0
- package/dist/ai-chat/__tests__/ai-chat.test.mjs +121 -0
- package/dist/ai-chat/index.cjs +26 -0
- package/dist/ai-chat/index.d.ts +3 -0
- package/dist/ai-chat/index.mjs +5 -0
- package/dist/ai-chat/src/ai-chat.cjs +41 -0
- package/dist/ai-chat/src/ai-chat.css +503 -0
- package/dist/ai-chat/src/ai-chat.d.ts +57 -0
- package/dist/ai-chat/src/ai-chat.d.vue.ts +43 -0
- package/dist/ai-chat/src/ai-chat.mjs +35 -0
- package/dist/ai-chat/src/ai-chat.vue +606 -0
- package/dist/ai-chat/src/ai-chat.vue.d.ts +43 -0
- package/dist/ai-code-block/__tests__/ai-code-block.ssr.test.cjs +66 -0
- package/dist/ai-code-block/__tests__/ai-code-block.ssr.test.d.ts +1 -0
- package/dist/ai-code-block/__tests__/ai-code-block.ssr.test.mjs +48 -0
- package/dist/ai-code-block/__tests__/ai-code-block.test.cjs +174 -0
- package/dist/ai-code-block/__tests__/ai-code-block.test.d.ts +1 -0
- package/dist/ai-code-block/__tests__/ai-code-block.test.mjs +108 -0
- package/dist/ai-code-block/index.cjs +26 -0
- package/dist/ai-code-block/index.d.ts +3 -0
- package/dist/ai-code-block/index.mjs +5 -0
- package/dist/ai-code-block/src/ai-code-block.cjs +79 -0
- package/dist/ai-code-block/src/ai-code-block.css +589 -0
- package/dist/ai-code-block/src/ai-code-block.d.ts +76 -0
- package/dist/ai-code-block/src/ai-code-block.d.vue.ts +63 -0
- package/dist/ai-code-block/src/ai-code-block.mjs +73 -0
- package/dist/ai-code-block/src/ai-code-block.vue +706 -0
- package/dist/ai-code-block/src/ai-code-block.vue.d.ts +63 -0
- package/dist/ai-conversations/__tests__/ai-conversations.ssr.test.cjs +50 -0
- package/dist/ai-conversations/__tests__/ai-conversations.ssr.test.d.ts +1 -0
- package/dist/ai-conversations/__tests__/ai-conversations.ssr.test.mjs +42 -0
- package/dist/ai-conversations/__tests__/ai-conversations.test.cjs +67 -0
- package/dist/ai-conversations/__tests__/ai-conversations.test.d.ts +1 -0
- package/dist/ai-conversations/__tests__/ai-conversations.test.mjs +51 -0
- package/dist/ai-conversations/index.cjs +26 -0
- package/dist/ai-conversations/index.d.ts +3 -0
- package/dist/ai-conversations/index.mjs +5 -0
- package/dist/ai-conversations/src/ai-conversations.cjs +69 -0
- package/dist/ai-conversations/src/ai-conversations.css +679 -0
- package/dist/ai-conversations/src/ai-conversations.d.ts +67 -0
- package/dist/ai-conversations/src/ai-conversations.d.vue.ts +52 -0
- package/dist/ai-conversations/src/ai-conversations.mjs +63 -0
- package/dist/ai-conversations/src/ai-conversations.vue +949 -0
- package/dist/ai-conversations/src/ai-conversations.vue.d.ts +52 -0
- package/dist/ai-editor-sender/__tests__/ai-editor-sender.ssr.test.cjs +62 -0
- package/dist/ai-editor-sender/__tests__/ai-editor-sender.ssr.test.d.ts +1 -0
- package/dist/ai-editor-sender/__tests__/ai-editor-sender.ssr.test.mjs +50 -0
- package/dist/ai-editor-sender/__tests__/ai-editor-sender.test.cjs +315 -0
- package/dist/ai-editor-sender/__tests__/ai-editor-sender.test.d.ts +1 -0
- package/dist/ai-editor-sender/__tests__/ai-editor-sender.test.mjs +226 -0
- package/dist/ai-editor-sender/index.cjs +26 -0
- package/dist/ai-editor-sender/index.d.ts +3 -0
- package/dist/ai-editor-sender/index.mjs +5 -0
- package/dist/ai-editor-sender/src/ai-editor-sender.cjs +66 -0
- package/dist/ai-editor-sender/src/ai-editor-sender.css +566 -0
- package/dist/ai-editor-sender/src/ai-editor-sender.d.ts +70 -0
- package/dist/ai-editor-sender/src/ai-editor-sender.d.vue.ts +70 -0
- package/dist/ai-editor-sender/src/ai-editor-sender.mjs +60 -0
- package/dist/ai-editor-sender/src/ai-editor-sender.vue +713 -0
- package/dist/ai-editor-sender/src/ai-editor-sender.vue.d.ts +70 -0
- package/dist/ai-prompts/__tests__/ai-prompts.ssr.test.cjs +49 -0
- package/dist/ai-prompts/__tests__/ai-prompts.ssr.test.d.ts +1 -0
- package/dist/ai-prompts/__tests__/ai-prompts.ssr.test.mjs +41 -0
- package/dist/ai-prompts/__tests__/ai-prompts.test.cjs +54 -0
- package/dist/ai-prompts/__tests__/ai-prompts.test.d.ts +1 -0
- package/dist/ai-prompts/__tests__/ai-prompts.test.mjs +38 -0
- package/dist/ai-prompts/index.cjs +26 -0
- package/dist/ai-prompts/index.d.ts +3 -0
- package/dist/ai-prompts/index.mjs +5 -0
- package/dist/ai-prompts/src/ai-prompts.cjs +42 -0
- package/dist/ai-prompts/src/ai-prompts.css +572 -0
- package/dist/ai-prompts/src/ai-prompts.d.ts +45 -0
- package/dist/ai-prompts/src/ai-prompts.d.vue.ts +44 -0
- package/dist/ai-prompts/src/ai-prompts.mjs +36 -0
- package/dist/ai-prompts/src/ai-prompts.vue +646 -0
- package/dist/ai-prompts/src/ai-prompts.vue.d.ts +44 -0
- package/dist/ai-provider/__tests__/ai-provider.ssr.test.cjs +33 -0
- package/dist/ai-provider/__tests__/ai-provider.ssr.test.d.ts +1 -0
- package/dist/ai-provider/__tests__/ai-provider.ssr.test.mjs +34 -0
- package/dist/ai-provider/__tests__/ai-provider.test.cjs +38 -0
- package/dist/ai-provider/__tests__/ai-provider.test.d.ts +1 -0
- package/dist/ai-provider/__tests__/ai-provider.test.mjs +33 -0
- package/dist/ai-provider/index.cjs +38 -0
- package/dist/ai-provider/index.d.ts +4 -0
- package/dist/ai-provider/index.mjs +6 -0
- package/dist/ai-provider/src/ai-provider.cjs +7 -0
- package/dist/ai-provider/src/ai-provider.d.ts +88 -0
- package/dist/ai-provider/src/ai-provider.d.vue.ts +48 -0
- package/dist/ai-provider/src/ai-provider.mjs +1 -0
- package/dist/ai-provider/src/ai-provider.vue +24 -0
- package/dist/ai-provider/src/ai-provider.vue.d.ts +48 -0
- package/dist/ai-provider/src/use-ai-provider.cjs +11 -0
- package/dist/ai-provider/src/use-ai-provider.d.ts +10 -0
- package/dist/ai-provider/src/use-ai-provider.mjs +5 -0
- package/dist/ai-sender/__tests__/ai-sender.ssr.test.cjs +46 -0
- package/dist/ai-sender/__tests__/ai-sender.ssr.test.d.ts +1 -0
- package/dist/ai-sender/__tests__/ai-sender.ssr.test.mjs +37 -0
- package/dist/ai-sender/__tests__/ai-sender.test.cjs +388 -0
- package/dist/ai-sender/__tests__/ai-sender.test.d.ts +1 -0
- package/dist/ai-sender/__tests__/ai-sender.test.mjs +248 -0
- package/dist/ai-sender/index.cjs +26 -0
- package/dist/ai-sender/index.d.ts +3 -0
- package/dist/ai-sender/index.mjs +5 -0
- package/dist/ai-sender/src/ai-sender.cjs +91 -0
- package/dist/ai-sender/src/ai-sender.css +754 -0
- package/dist/ai-sender/src/ai-sender.d.ts +140 -0
- package/dist/ai-sender/src/ai-sender.d.vue.ts +69 -0
- package/dist/ai-sender/src/ai-sender.mjs +85 -0
- package/dist/ai-sender/src/ai-sender.vue +1032 -0
- package/dist/ai-sender/src/ai-sender.vue.d.ts +69 -0
- package/dist/ai-sources/__tests__/ai-sources.ssr.test.cjs +72 -0
- package/dist/ai-sources/__tests__/ai-sources.ssr.test.d.ts +1 -0
- package/dist/ai-sources/__tests__/ai-sources.ssr.test.mjs +82 -0
- package/dist/ai-sources/__tests__/ai-sources.test.cjs +93 -0
- package/dist/ai-sources/__tests__/ai-sources.test.d.ts +1 -0
- package/dist/ai-sources/__tests__/ai-sources.test.mjs +89 -0
- package/dist/ai-sources/index.cjs +26 -0
- package/dist/ai-sources/index.d.ts +3 -0
- package/dist/ai-sources/index.mjs +5 -0
- package/dist/ai-sources/src/ai-sources.cjs +59 -0
- package/dist/ai-sources/src/ai-sources.css +830 -0
- package/dist/ai-sources/src/ai-sources.d.ts +79 -0
- package/dist/ai-sources/src/ai-sources.d.vue.ts +45 -0
- package/dist/ai-sources/src/ai-sources.mjs +53 -0
- package/dist/ai-sources/src/ai-sources.vue +1109 -0
- package/dist/ai-sources/src/ai-sources.vue.d.ts +45 -0
- package/dist/ai-thinking/__tests__/ai-thinking.ssr.test.cjs +56 -0
- package/dist/ai-thinking/__tests__/ai-thinking.ssr.test.d.ts +1 -0
- package/dist/ai-thinking/__tests__/ai-thinking.ssr.test.mjs +42 -0
- package/dist/ai-thinking/__tests__/ai-thinking.test.cjs +151 -0
- package/dist/ai-thinking/__tests__/ai-thinking.test.d.ts +1 -0
- package/dist/ai-thinking/__tests__/ai-thinking.test.mjs +96 -0
- package/dist/ai-thinking/index.cjs +26 -0
- package/dist/ai-thinking/index.d.ts +3 -0
- package/dist/ai-thinking/index.mjs +5 -0
- package/dist/ai-thinking/src/ai-thinking.cjs +44 -0
- package/dist/ai-thinking/src/ai-thinking.css +543 -0
- package/dist/ai-thinking/src/ai-thinking.d.ts +42 -0
- package/dist/ai-thinking/src/ai-thinking.d.vue.ts +33 -0
- package/dist/ai-thinking/src/ai-thinking.mjs +38 -0
- package/dist/ai-thinking/src/ai-thinking.vue +631 -0
- package/dist/ai-thinking/src/ai-thinking.vue.d.ts +33 -0
- package/dist/ai-thought-chain/__tests__/ai-thought-chain.ssr.test.cjs +83 -0
- package/dist/ai-thought-chain/__tests__/ai-thought-chain.ssr.test.d.ts +1 -0
- package/dist/ai-thought-chain/__tests__/ai-thought-chain.ssr.test.mjs +52 -0
- package/dist/ai-thought-chain/__tests__/ai-thought-chain.test.cjs +204 -0
- package/dist/ai-thought-chain/__tests__/ai-thought-chain.test.d.ts +1 -0
- package/dist/ai-thought-chain/__tests__/ai-thought-chain.test.mjs +134 -0
- package/dist/ai-thought-chain/index.cjs +26 -0
- package/dist/ai-thought-chain/index.d.ts +3 -0
- package/dist/ai-thought-chain/index.mjs +5 -0
- package/dist/ai-thought-chain/src/ai-thought-chain.cjs +68 -0
- package/dist/ai-thought-chain/src/ai-thought-chain.css +668 -0
- package/dist/ai-thought-chain/src/ai-thought-chain.d.ts +82 -0
- package/dist/ai-thought-chain/src/ai-thought-chain.d.vue.ts +83 -0
- package/dist/ai-thought-chain/src/ai-thought-chain.mjs +62 -0
- package/dist/ai-thought-chain/src/ai-thought-chain.vue +813 -0
- package/dist/ai-thought-chain/src/ai-thought-chain.vue.d.ts +83 -0
- package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.ssr.test.cjs +32 -0
- package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.ssr.test.d.ts +1 -0
- package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.ssr.test.mjs +25 -0
- package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.test.cjs +113 -0
- package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.test.d.ts +1 -0
- package/dist/ai-voice-trigger/__tests__/ai-voice-trigger.test.mjs +93 -0
- package/dist/ai-voice-trigger/index.cjs +26 -0
- package/dist/ai-voice-trigger/index.d.ts +3 -0
- package/dist/ai-voice-trigger/index.mjs +5 -0
- package/dist/ai-voice-trigger/src/ai-voice-trigger.cjs +35 -0
- package/dist/ai-voice-trigger/src/ai-voice-trigger.css +603 -0
- package/dist/ai-voice-trigger/src/ai-voice-trigger.d.ts +37 -0
- package/dist/ai-voice-trigger/src/ai-voice-trigger.d.vue.ts +29 -0
- package/dist/ai-voice-trigger/src/ai-voice-trigger.mjs +29 -0
- package/dist/ai-voice-trigger/src/ai-voice-trigger.vue +708 -0
- package/dist/ai-voice-trigger/src/ai-voice-trigger.vue.d.ts +29 -0
- package/dist/ai-welcome/__tests__/ai-welcome.ssr.test.cjs +57 -0
- package/dist/ai-welcome/__tests__/ai-welcome.ssr.test.d.ts +1 -0
- package/dist/ai-welcome/__tests__/ai-welcome.ssr.test.mjs +39 -0
- package/dist/ai-welcome/__tests__/ai-welcome.test.cjs +169 -0
- package/dist/ai-welcome/__tests__/ai-welcome.test.d.ts +1 -0
- package/dist/ai-welcome/__tests__/ai-welcome.test.mjs +113 -0
- package/dist/ai-welcome/index.cjs +26 -0
- package/dist/ai-welcome/index.d.ts +3 -0
- package/dist/ai-welcome/index.mjs +5 -0
- package/dist/ai-welcome/src/ai-welcome.cjs +56 -0
- package/dist/ai-welcome/src/ai-welcome.css +591 -0
- package/dist/ai-welcome/src/ai-welcome.d.ts +59 -0
- package/dist/ai-welcome/src/ai-welcome.d.vue.ts +51 -0
- package/dist/ai-welcome/src/ai-welcome.mjs +50 -0
- package/dist/ai-welcome/src/ai-welcome.vue +655 -0
- package/dist/ai-welcome/src/ai-welcome.vue.d.ts +51 -0
- package/dist/alert/src/alert.d.vue.ts +5 -5
- package/dist/alert/src/alert.vue.d.ts +5 -5
- package/dist/autocomplete/src/autocomplete.d.vue.ts +2 -2
- package/dist/autocomplete/src/autocomplete.vue.d.ts +2 -2
- package/dist/avatar/index.d.ts +39 -1
- package/dist/back-top/src/back-top.d.vue.ts +1 -1
- package/dist/back-top/src/back-top.vue.d.ts +1 -1
- package/dist/button/index.d.ts +3 -3
- package/dist/button/src/button.css +3 -3
- package/dist/button/src/button.d.vue.ts +1 -1
- package/dist/button/src/button.vue +3 -3
- package/dist/button/src/button.vue.d.ts +1 -1
- package/dist/calendar/src/calendar.d.vue.ts +2 -2
- package/dist/calendar/src/calendar.vue.d.ts +2 -2
- package/dist/cascader/src/cascader-panel.d.vue.ts +2 -2
- package/dist/cascader/src/cascader-panel.vue.d.ts +2 -2
- package/dist/checkbox/index.d.ts +3 -3
- package/dist/checkbox/src/checkbox-group.d.vue.ts +1 -1
- package/dist/checkbox/src/checkbox-group.vue +13 -1
- package/dist/checkbox/src/checkbox-group.vue.d.ts +1 -1
- package/dist/checkbox/src/checkbox.d.ts +12 -0
- package/dist/col/src/col.d.vue.ts +4 -4
- package/dist/col/src/col.vue.d.ts +4 -4
- package/dist/color-picker/src/color-picker.d.vue.ts +1 -1
- package/dist/color-picker/src/color-picker.vue.d.ts +1 -1
- package/dist/component.d.ts +63 -0
- package/dist/date-picker/src/date-picker.d.vue.ts +4 -4
- package/dist/date-picker/src/date-picker.vue.d.ts +4 -4
- package/dist/descriptions/src/description-item.d.vue.ts +1 -1
- package/dist/descriptions/src/description-item.vue.d.ts +1 -1
- package/dist/dialog/src/dialog.d.vue.ts +6 -6
- package/dist/dialog/src/dialog.vue.d.ts +6 -6
- package/dist/drawer/src/drawer.d.vue.ts +3 -3
- package/dist/drawer/src/drawer.vue.d.ts +3 -3
- package/dist/dropdown/src/dropdown-item.d.vue.ts +1 -1
- package/dist/dropdown/src/dropdown-item.vue.d.ts +1 -1
- package/dist/dropdown/src/dropdown.d.vue.ts +8 -8
- package/dist/dropdown/src/dropdown.vue.d.ts +8 -8
- package/dist/form/__tests__/form-schema.test.cjs +477 -24
- package/dist/form/__tests__/form-schema.test.mjs +277 -57
- package/dist/form/index.cjs +12 -0
- package/dist/form/index.d.ts +1 -2
- package/dist/form/index.mjs +1 -0
- package/dist/form/src/form-item.d.vue.ts +2 -1
- package/dist/form/src/form-item.vue +3 -1
- package/dist/form/src/form-item.vue.d.ts +2 -1
- package/dist/form/src/form-schema.cjs +2 -1
- package/dist/form/src/form-schema.d.ts +124 -19
- package/dist/form/src/form-schema.d.vue.ts +69 -19
- package/dist/form/src/form-schema.mjs +2 -1
- package/dist/form/src/form-schema.vue +522 -160
- package/dist/form/src/form-schema.vue.d.ts +69 -19
- package/dist/form/src/form.cjs +7 -0
- package/dist/form/src/form.d.ts +20 -0
- package/dist/form/src/form.d.vue.ts +10 -1
- package/dist/form/src/form.mjs +7 -0
- package/dist/form/src/form.vue +22 -10
- package/dist/form/src/form.vue.d.ts +10 -1
- package/dist/grid/src/grid.d.vue.ts +1 -1
- package/dist/grid/src/grid.vue.d.ts +1 -1
- package/dist/icon/src/icons/index.cjs +122 -2
- package/dist/icon/src/icons/index.d.ts +24 -0
- package/dist/icon/src/icons/index.mjs +145 -1
- package/dist/image/index.d.ts +356 -2
- package/dist/image/src/image-viewer.d.vue.ts +3 -3
- package/dist/image/src/image-viewer.vue.d.ts +3 -3
- package/dist/image/src/image.d.vue.ts +4 -4
- package/dist/image/src/image.vue.d.ts +4 -4
- package/dist/index.cjs +193 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.mjs +49 -1
- package/dist/input/index.d.ts +18 -18
- package/dist/input/src/input.d.vue.ts +6 -6
- package/dist/input/src/input.vue.d.ts +6 -6
- package/dist/input-tag/src/input-tag.d.vue.ts +2 -2
- package/dist/input-tag/src/input-tag.vue.d.ts +2 -2
- package/dist/mention/src/mention.d.vue.ts +8 -8
- package/dist/mention/src/mention.vue.d.ts +8 -8
- package/dist/menu/src/menu.d.vue.ts +4 -4
- package/dist/menu/src/menu.vue.d.ts +4 -4
- package/dist/message/src/message.d.vue.ts +1 -1
- package/dist/message/src/message.vue.d.ts +1 -1
- package/dist/popconfirm/src/popconfirm.d.vue.ts +5 -5
- package/dist/popconfirm/src/popconfirm.vue.d.ts +5 -5
- package/dist/popover/src/popover.d.vue.ts +4 -4
- package/dist/popover/src/popover.vue.d.ts +4 -4
- package/dist/progress/src/progress.d.vue.ts +1 -1
- package/dist/progress/src/progress.vue.d.ts +1 -1
- package/dist/radio/src/radio-group.d.vue.ts +1 -1
- package/dist/radio/src/radio-group.vue +25 -4
- package/dist/radio/src/radio-group.vue.d.ts +1 -1
- package/dist/radio/src/radio.d.ts +12 -0
- package/dist/rate/src/rate.d.vue.ts +1 -1
- package/dist/rate/src/rate.vue.d.ts +1 -1
- package/dist/select/src/select.d.vue.ts +1 -1
- package/dist/select/src/select.vue.d.ts +1 -1
- package/dist/skeleton/src/skeleton.d.vue.ts +1 -1
- package/dist/skeleton/src/skeleton.vue.d.ts +1 -1
- package/dist/slider/src/slider.d.vue.ts +1 -1
- package/dist/slider/src/slider.vue.d.ts +1 -1
- package/dist/steps/src/step.d.vue.ts +1 -1
- package/dist/steps/src/step.vue.d.ts +1 -1
- package/dist/switch/src/switch.d.vue.ts +2 -2
- package/dist/switch/src/switch.vue.d.ts +2 -2
- package/dist/table/__tests__/table.perf.test.cjs +2 -2
- package/dist/table/__tests__/table.perf.test.mjs +2 -2
- package/dist/table/__tests__/table.test.cjs +18 -0
- package/dist/table/__tests__/table.test.mjs +18 -0
- package/dist/table/__tests__/use-table-import.test.cjs +6 -0
- package/dist/table/__tests__/use-table-import.test.mjs +8 -1
- package/dist/table/src/table-column.d.vue.ts +1 -1
- package/dist/table/src/table-column.vue.d.ts +1 -1
- package/dist/table/src/table.d.vue.ts +1 -1
- package/dist/table/src/table.vue.d.ts +1 -1
- package/dist/tabs/src/tab-pane.d.vue.ts +1 -1
- package/dist/tabs/src/tab-pane.vue.d.ts +1 -1
- package/dist/tabs/src/tabs.d.vue.ts +2 -2
- package/dist/tabs/src/tabs.vue.d.ts +2 -2
- package/dist/tooltip/index.d.ts +7 -7
- package/dist/tooltip/src/tooltip.d.vue.ts +7 -7
- package/dist/tooltip/src/tooltip.vue.d.ts +7 -7
- package/dist/tree/src/tree.d.vue.ts +1 -1
- package/dist/tree/src/tree.vue.d.ts +1 -1
- package/dist/tree-select/src/tree-select.d.vue.ts +3 -3
- package/dist/tree-select/src/tree-select.vue.d.ts +3 -3
- package/dist/upload/src/upload.d.vue.ts +1 -1
- package/dist/upload/src/upload.vue.d.ts +1 -1
- package/package.json +8 -5
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
declare var __VLS_13: {};
|
|
2
|
+
type __VLS_Slots = {} & {
|
|
3
|
+
default?: (props: typeof __VLS_13) => any;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
6
|
+
readonly recording: {
|
|
7
|
+
readonly type: BooleanConstructor;
|
|
8
|
+
readonly default: false;
|
|
9
|
+
};
|
|
10
|
+
readonly amplitudes: {
|
|
11
|
+
readonly type: import("vue").PropType<number[]>;
|
|
12
|
+
readonly default: () => any[];
|
|
13
|
+
};
|
|
14
|
+
readonly themeOverrides: {
|
|
15
|
+
readonly type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
|
|
16
|
+
readonly default: undefined;
|
|
17
|
+
};
|
|
18
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, any, string, import("vue").PublicProps, any, {
|
|
19
|
+
readonly themeOverrides: import("@yh-ui/theme").ComponentThemeVars;
|
|
20
|
+
readonly recording: boolean;
|
|
21
|
+
readonly amplitudes: number[];
|
|
22
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
23
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
24
|
+
export default _default;
|
|
25
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
26
|
+
new (): {
|
|
27
|
+
$slots: S;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _vitest = require("vitest");
|
|
4
|
+
var _serverRenderer = require("@vue/server-renderer");
|
|
5
|
+
var _vue = require("vue");
|
|
6
|
+
var _aiWelcome = _interopRequireDefault(require("../src/ai-welcome.vue"));
|
|
7
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
+
(0, _vitest.describe)("YhAiWelcome SSR", () => {
|
|
9
|
+
(0, _vitest.it)("should render to string on server", async () => {
|
|
10
|
+
const html = await (0, _serverRenderer.renderToString)((0, _vue.h)(_aiWelcome.default));
|
|
11
|
+
(0, _vitest.expect)(html).toContain("yh-ai-welcome");
|
|
12
|
+
});
|
|
13
|
+
(0, _vitest.it)("should render title on server", async () => {
|
|
14
|
+
const html = await (0, _serverRenderer.renderToString)((0, _vue.h)(_aiWelcome.default, {
|
|
15
|
+
title: "Hello AI"
|
|
16
|
+
}));
|
|
17
|
+
(0, _vitest.expect)(html).toContain("yh-ai-welcome__title");
|
|
18
|
+
(0, _vitest.expect)(html).toContain("Hello AI");
|
|
19
|
+
});
|
|
20
|
+
(0, _vitest.it)("should render description on server", async () => {
|
|
21
|
+
const html = await (0, _serverRenderer.renderToString)((0, _vue.h)(_aiWelcome.default, {
|
|
22
|
+
description: "Server description"
|
|
23
|
+
}));
|
|
24
|
+
(0, _vitest.expect)(html).toContain("yh-ai-welcome__description");
|
|
25
|
+
(0, _vitest.expect)(html).toContain("Server description");
|
|
26
|
+
});
|
|
27
|
+
(0, _vitest.it)("should render icon wrapper when showIcon=true", async () => {
|
|
28
|
+
const html = await (0, _serverRenderer.renderToString)((0, _vue.h)(_aiWelcome.default, {
|
|
29
|
+
showIcon: true
|
|
30
|
+
}));
|
|
31
|
+
(0, _vitest.expect)(html).toContain("yh-ai-welcome__icon-wrapper");
|
|
32
|
+
});
|
|
33
|
+
(0, _vitest.it)("should not render icon wrapper when showIcon=false", async () => {
|
|
34
|
+
const html = await (0, _serverRenderer.renderToString)((0, _vue.h)(_aiWelcome.default, {
|
|
35
|
+
showIcon: false
|
|
36
|
+
}));
|
|
37
|
+
(0, _vitest.expect)(html).not.toContain("yh-ai-welcome__icon-wrapper");
|
|
38
|
+
});
|
|
39
|
+
(0, _vitest.it)("should render suggestions on server", async () => {
|
|
40
|
+
const suggestions = [{
|
|
41
|
+
title: "Write code",
|
|
42
|
+
description: "Help me write code",
|
|
43
|
+
icon: "edit",
|
|
44
|
+
prompt: "code"
|
|
45
|
+
}, {
|
|
46
|
+
title: "Translate",
|
|
47
|
+
prompt: "translate"
|
|
48
|
+
}];
|
|
49
|
+
const html = await (0, _serverRenderer.renderToString)((0, _vue.h)(_aiWelcome.default, {
|
|
50
|
+
suggestions
|
|
51
|
+
}));
|
|
52
|
+
(0, _vitest.expect)(html).toContain("yh-ai-welcome__card");
|
|
53
|
+
(0, _vitest.expect)(html).toContain("Write code");
|
|
54
|
+
(0, _vitest.expect)(html).toContain("Translate");
|
|
55
|
+
(0, _vitest.expect)(html).toContain("Help me write code");
|
|
56
|
+
});
|
|
57
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { renderToString } from "@vue/server-renderer";
|
|
3
|
+
import { h } from "vue";
|
|
4
|
+
import AiWelcome from "../src/ai-welcome.vue";
|
|
5
|
+
describe("YhAiWelcome SSR", () => {
|
|
6
|
+
it("should render to string on server", async () => {
|
|
7
|
+
const html = await renderToString(h(AiWelcome));
|
|
8
|
+
expect(html).toContain("yh-ai-welcome");
|
|
9
|
+
});
|
|
10
|
+
it("should render title on server", async () => {
|
|
11
|
+
const html = await renderToString(h(AiWelcome, { title: "Hello AI" }));
|
|
12
|
+
expect(html).toContain("yh-ai-welcome__title");
|
|
13
|
+
expect(html).toContain("Hello AI");
|
|
14
|
+
});
|
|
15
|
+
it("should render description on server", async () => {
|
|
16
|
+
const html = await renderToString(h(AiWelcome, { description: "Server description" }));
|
|
17
|
+
expect(html).toContain("yh-ai-welcome__description");
|
|
18
|
+
expect(html).toContain("Server description");
|
|
19
|
+
});
|
|
20
|
+
it("should render icon wrapper when showIcon=true", async () => {
|
|
21
|
+
const html = await renderToString(h(AiWelcome, { showIcon: true }));
|
|
22
|
+
expect(html).toContain("yh-ai-welcome__icon-wrapper");
|
|
23
|
+
});
|
|
24
|
+
it("should not render icon wrapper when showIcon=false", async () => {
|
|
25
|
+
const html = await renderToString(h(AiWelcome, { showIcon: false }));
|
|
26
|
+
expect(html).not.toContain("yh-ai-welcome__icon-wrapper");
|
|
27
|
+
});
|
|
28
|
+
it("should render suggestions on server", async () => {
|
|
29
|
+
const suggestions = [
|
|
30
|
+
{ title: "Write code", description: "Help me write code", icon: "edit", prompt: "code" },
|
|
31
|
+
{ title: "Translate", prompt: "translate" }
|
|
32
|
+
];
|
|
33
|
+
const html = await renderToString(h(AiWelcome, { suggestions }));
|
|
34
|
+
expect(html).toContain("yh-ai-welcome__card");
|
|
35
|
+
expect(html).toContain("Write code");
|
|
36
|
+
expect(html).toContain("Translate");
|
|
37
|
+
expect(html).toContain("Help me write code");
|
|
38
|
+
});
|
|
39
|
+
});
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _vitest = require("vitest");
|
|
4
|
+
var _testUtils = require("@vue/test-utils");
|
|
5
|
+
var _aiWelcome = _interopRequireDefault(require("../src/ai-welcome.vue"));
|
|
6
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
(0, _vitest.describe)("YhAiWelcome", () => {
|
|
8
|
+
(0, _vitest.it)("should render with base class", () => {
|
|
9
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default);
|
|
10
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome").exists()).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
(0, _vitest.it)("should render title when provided", () => {
|
|
13
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
14
|
+
props: {
|
|
15
|
+
title: "Hello AI"
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__title").text()).toBe("Hello AI");
|
|
19
|
+
});
|
|
20
|
+
(0, _vitest.it)("should render description when provided", () => {
|
|
21
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
22
|
+
props: {
|
|
23
|
+
description: "Ask me anything."
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__description").text()).toBe("Ask me anything.");
|
|
27
|
+
});
|
|
28
|
+
(0, _vitest.it)("should not render description when not provided", () => {
|
|
29
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default);
|
|
30
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__description").exists()).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
(0, _vitest.it)("should render icon wrapper when showIcon=true (default)", () => {
|
|
33
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
34
|
+
props: {
|
|
35
|
+
showIcon: true
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__icon-wrapper").exists()).toBe(true);
|
|
39
|
+
});
|
|
40
|
+
(0, _vitest.it)("should not render icon wrapper when showIcon=false", () => {
|
|
41
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
42
|
+
props: {
|
|
43
|
+
showIcon: false
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__icon-wrapper").exists()).toBe(false);
|
|
47
|
+
});
|
|
48
|
+
(0, _vitest.it)("should not render body without suggestions", () => {
|
|
49
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
50
|
+
props: {
|
|
51
|
+
suggestions: []
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__body").exists()).toBe(false);
|
|
55
|
+
});
|
|
56
|
+
(0, _vitest.it)("should render suggestions cards", () => {
|
|
57
|
+
const suggestions = [{
|
|
58
|
+
title: "Write code",
|
|
59
|
+
description: "Help me write code",
|
|
60
|
+
icon: "edit",
|
|
61
|
+
prompt: "write code"
|
|
62
|
+
}, {
|
|
63
|
+
title: "Translate",
|
|
64
|
+
description: "Translate text",
|
|
65
|
+
icon: "document",
|
|
66
|
+
prompt: "translate"
|
|
67
|
+
}];
|
|
68
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
69
|
+
props: {
|
|
70
|
+
suggestions
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
(0, _vitest.expect)(wrapper.findAll(".yh-ai-welcome__card").length).toBe(2);
|
|
74
|
+
});
|
|
75
|
+
(0, _vitest.it)("should render suggestion titles", () => {
|
|
76
|
+
const suggestions = [{
|
|
77
|
+
title: "Test Title",
|
|
78
|
+
icon: "edit",
|
|
79
|
+
prompt: "test"
|
|
80
|
+
}];
|
|
81
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
82
|
+
props: {
|
|
83
|
+
suggestions
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__card-title").text()).toBe("Test Title");
|
|
87
|
+
});
|
|
88
|
+
(0, _vitest.it)("should render suggestion description when provided", () => {
|
|
89
|
+
const suggestions = [{
|
|
90
|
+
title: "Title",
|
|
91
|
+
description: "Some description",
|
|
92
|
+
prompt: "test"
|
|
93
|
+
}];
|
|
94
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
95
|
+
props: {
|
|
96
|
+
suggestions
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__card-description").text()).toBe("Some description");
|
|
100
|
+
});
|
|
101
|
+
(0, _vitest.it)("should not render card icon when suggestion has no icon", () => {
|
|
102
|
+
const suggestions = [{
|
|
103
|
+
title: "No Icon",
|
|
104
|
+
prompt: "test"
|
|
105
|
+
}];
|
|
106
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
107
|
+
props: {
|
|
108
|
+
suggestions
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__card-icon").exists()).toBe(false);
|
|
112
|
+
});
|
|
113
|
+
(0, _vitest.it)("should emit select event when suggestion clicked", async () => {
|
|
114
|
+
const suggestion = {
|
|
115
|
+
title: "Write code",
|
|
116
|
+
icon: "edit",
|
|
117
|
+
prompt: "write code"
|
|
118
|
+
};
|
|
119
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
120
|
+
props: {
|
|
121
|
+
suggestions: [suggestion]
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
await wrapper.find(".yh-ai-welcome__card").trigger("click");
|
|
125
|
+
(0, _vitest.expect)(wrapper.emitted("select")).toBeTruthy();
|
|
126
|
+
const emitted = wrapper.emitted("select");
|
|
127
|
+
(0, _vitest.expect)(emitted[0][0]).toEqual(suggestion);
|
|
128
|
+
});
|
|
129
|
+
(0, _vitest.it)("should render icon slot", () => {
|
|
130
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
131
|
+
slots: {
|
|
132
|
+
icon: '<svg class="custom-icon"></svg>'
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
(0, _vitest.expect)(wrapper.find(".custom-icon").exists()).toBe(true);
|
|
136
|
+
});
|
|
137
|
+
(0, _vitest.it)("should render title slot", () => {
|
|
138
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
139
|
+
slots: {
|
|
140
|
+
title: '<span class="custom-title">Custom Title</span>'
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
(0, _vitest.expect)(wrapper.find(".custom-title").exists()).toBe(true);
|
|
144
|
+
});
|
|
145
|
+
(0, _vitest.it)("should render description slot", () => {
|
|
146
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
147
|
+
props: {
|
|
148
|
+
description: "desc"
|
|
149
|
+
},
|
|
150
|
+
slots: {
|
|
151
|
+
description: '<em class="custom-desc">Custom Desc</em>'
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
(0, _vitest.expect)(wrapper.find(".custom-desc").exists()).toBe(true);
|
|
155
|
+
});
|
|
156
|
+
(0, _vitest.it)("should render default slot in footer", () => {
|
|
157
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default, {
|
|
158
|
+
slots: {
|
|
159
|
+
default: '<button class="extra-btn">Extra</button>'
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__footer").exists()).toBe(true);
|
|
163
|
+
(0, _vitest.expect)(wrapper.find(".extra-btn").exists()).toBe(true);
|
|
164
|
+
});
|
|
165
|
+
(0, _vitest.it)("should not render footer when no default slot", () => {
|
|
166
|
+
const wrapper = (0, _testUtils.mount)(_aiWelcome.default);
|
|
167
|
+
(0, _vitest.expect)(wrapper.find(".yh-ai-welcome__footer").exists()).toBe(false);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { mount } from "@vue/test-utils";
|
|
3
|
+
import AiWelcome from "../src/ai-welcome.vue";
|
|
4
|
+
describe("YhAiWelcome", () => {
|
|
5
|
+
it("should render with base class", () => {
|
|
6
|
+
const wrapper = mount(AiWelcome);
|
|
7
|
+
expect(wrapper.find(".yh-ai-welcome").exists()).toBe(true);
|
|
8
|
+
});
|
|
9
|
+
it("should render title when provided", () => {
|
|
10
|
+
const wrapper = mount(AiWelcome, {
|
|
11
|
+
props: { title: "Hello AI" }
|
|
12
|
+
});
|
|
13
|
+
expect(wrapper.find(".yh-ai-welcome__title").text()).toBe("Hello AI");
|
|
14
|
+
});
|
|
15
|
+
it("should render description when provided", () => {
|
|
16
|
+
const wrapper = mount(AiWelcome, {
|
|
17
|
+
props: { description: "Ask me anything." }
|
|
18
|
+
});
|
|
19
|
+
expect(wrapper.find(".yh-ai-welcome__description").text()).toBe("Ask me anything.");
|
|
20
|
+
});
|
|
21
|
+
it("should not render description when not provided", () => {
|
|
22
|
+
const wrapper = mount(AiWelcome);
|
|
23
|
+
expect(wrapper.find(".yh-ai-welcome__description").exists()).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
it("should render icon wrapper when showIcon=true (default)", () => {
|
|
26
|
+
const wrapper = mount(AiWelcome, { props: { showIcon: true } });
|
|
27
|
+
expect(wrapper.find(".yh-ai-welcome__icon-wrapper").exists()).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
it("should not render icon wrapper when showIcon=false", () => {
|
|
30
|
+
const wrapper = mount(AiWelcome, { props: { showIcon: false } });
|
|
31
|
+
expect(wrapper.find(".yh-ai-welcome__icon-wrapper").exists()).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
it("should not render body without suggestions", () => {
|
|
34
|
+
const wrapper = mount(AiWelcome, { props: { suggestions: [] } });
|
|
35
|
+
expect(wrapper.find(".yh-ai-welcome__body").exists()).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
it("should render suggestions cards", () => {
|
|
38
|
+
const suggestions = [
|
|
39
|
+
{
|
|
40
|
+
title: "Write code",
|
|
41
|
+
description: "Help me write code",
|
|
42
|
+
icon: "edit",
|
|
43
|
+
prompt: "write code"
|
|
44
|
+
},
|
|
45
|
+
{ title: "Translate", description: "Translate text", icon: "document", prompt: "translate" }
|
|
46
|
+
];
|
|
47
|
+
const wrapper = mount(AiWelcome, { props: { suggestions } });
|
|
48
|
+
expect(wrapper.findAll(".yh-ai-welcome__card").length).toBe(2);
|
|
49
|
+
});
|
|
50
|
+
it("should render suggestion titles", () => {
|
|
51
|
+
const suggestions = [{ title: "Test Title", icon: "edit", prompt: "test" }];
|
|
52
|
+
const wrapper = mount(AiWelcome, { props: { suggestions } });
|
|
53
|
+
expect(wrapper.find(".yh-ai-welcome__card-title").text()).toBe("Test Title");
|
|
54
|
+
});
|
|
55
|
+
it("should render suggestion description when provided", () => {
|
|
56
|
+
const suggestions = [{ title: "Title", description: "Some description", prompt: "test" }];
|
|
57
|
+
const wrapper = mount(AiWelcome, { props: { suggestions } });
|
|
58
|
+
expect(wrapper.find(".yh-ai-welcome__card-description").text()).toBe("Some description");
|
|
59
|
+
});
|
|
60
|
+
it("should not render card icon when suggestion has no icon", () => {
|
|
61
|
+
const suggestions = [{ title: "No Icon", prompt: "test" }];
|
|
62
|
+
const wrapper = mount(AiWelcome, { props: { suggestions } });
|
|
63
|
+
expect(wrapper.find(".yh-ai-welcome__card-icon").exists()).toBe(false);
|
|
64
|
+
});
|
|
65
|
+
it("should emit select event when suggestion clicked", async () => {
|
|
66
|
+
const suggestion = { title: "Write code", icon: "edit", prompt: "write code" };
|
|
67
|
+
const wrapper = mount(AiWelcome, {
|
|
68
|
+
props: { suggestions: [suggestion] }
|
|
69
|
+
});
|
|
70
|
+
await wrapper.find(".yh-ai-welcome__card").trigger("click");
|
|
71
|
+
expect(wrapper.emitted("select")).toBeTruthy();
|
|
72
|
+
const emitted = wrapper.emitted("select");
|
|
73
|
+
expect(emitted[0][0]).toEqual(suggestion);
|
|
74
|
+
});
|
|
75
|
+
it("should render icon slot", () => {
|
|
76
|
+
const wrapper = mount(AiWelcome, {
|
|
77
|
+
slots: {
|
|
78
|
+
icon: '<svg class="custom-icon"></svg>'
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
expect(wrapper.find(".custom-icon").exists()).toBe(true);
|
|
82
|
+
});
|
|
83
|
+
it("should render title slot", () => {
|
|
84
|
+
const wrapper = mount(AiWelcome, {
|
|
85
|
+
slots: {
|
|
86
|
+
title: '<span class="custom-title">Custom Title</span>'
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
expect(wrapper.find(".custom-title").exists()).toBe(true);
|
|
90
|
+
});
|
|
91
|
+
it("should render description slot", () => {
|
|
92
|
+
const wrapper = mount(AiWelcome, {
|
|
93
|
+
props: { description: "desc" },
|
|
94
|
+
slots: {
|
|
95
|
+
description: '<em class="custom-desc">Custom Desc</em>'
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
expect(wrapper.find(".custom-desc").exists()).toBe(true);
|
|
99
|
+
});
|
|
100
|
+
it("should render default slot in footer", () => {
|
|
101
|
+
const wrapper = mount(AiWelcome, {
|
|
102
|
+
slots: {
|
|
103
|
+
default: '<button class="extra-btn">Extra</button>'
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
expect(wrapper.find(".yh-ai-welcome__footer").exists()).toBe(true);
|
|
107
|
+
expect(wrapper.find(".extra-btn").exists()).toBe(true);
|
|
108
|
+
});
|
|
109
|
+
it("should not render footer when no default slot", () => {
|
|
110
|
+
const wrapper = mount(AiWelcome);
|
|
111
|
+
expect(wrapper.find(".yh-ai-welcome__footer").exists()).toBe(false);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
YhAiWelcome: true
|
|
8
|
+
};
|
|
9
|
+
module.exports = exports.YhAiWelcome = void 0;
|
|
10
|
+
var _utils = require("@yh-ui/utils");
|
|
11
|
+
var _aiWelcome = _interopRequireDefault(require("./src/ai-welcome.vue"));
|
|
12
|
+
var _aiWelcome2 = require("./src/ai-welcome.cjs");
|
|
13
|
+
Object.keys(_aiWelcome2).forEach(function (key) {
|
|
14
|
+
if (key === "default" || key === "__esModule") return;
|
|
15
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
16
|
+
if (key in exports && exports[key] === _aiWelcome2[key]) return;
|
|
17
|
+
Object.defineProperty(exports, key, {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () {
|
|
20
|
+
return _aiWelcome2[key];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
25
|
+
const YhAiWelcome = exports.YhAiWelcome = (0, _utils.withInstall)(_aiWelcome.default);
|
|
26
|
+
module.exports = YhAiWelcome;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.aiWelcomeProps = exports.aiWelcomeEmits = void 0;
|
|
7
|
+
const aiWelcomeProps = exports.aiWelcomeProps = {
|
|
8
|
+
/**
|
|
9
|
+
* 标题文本
|
|
10
|
+
*/
|
|
11
|
+
title: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: ""
|
|
14
|
+
},
|
|
15
|
+
/**
|
|
16
|
+
* 描述文本
|
|
17
|
+
*/
|
|
18
|
+
description: {
|
|
19
|
+
type: String,
|
|
20
|
+
default: ""
|
|
21
|
+
},
|
|
22
|
+
/**
|
|
23
|
+
* 建议项列表
|
|
24
|
+
*/
|
|
25
|
+
suggestions: {
|
|
26
|
+
type: Array,
|
|
27
|
+
default: () => []
|
|
28
|
+
},
|
|
29
|
+
/**
|
|
30
|
+
* 是否展示图标/Logo
|
|
31
|
+
*/
|
|
32
|
+
showIcon: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: true
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* 自定义图标名称
|
|
38
|
+
*/
|
|
39
|
+
icon: {
|
|
40
|
+
type: String,
|
|
41
|
+
default: "sparkles"
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* 主题覆盖变量
|
|
45
|
+
*/
|
|
46
|
+
themeOverrides: {
|
|
47
|
+
type: Object,
|
|
48
|
+
default: void 0
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const aiWelcomeEmits = exports.aiWelcomeEmits = {
|
|
52
|
+
/**
|
|
53
|
+
* 点击建议项时触发
|
|
54
|
+
*/
|
|
55
|
+
select: suggestion => !!suggestion
|
|
56
|
+
};
|