@nadicodeai/ui 12.1.62 → 12.1.63
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/AGENTS.md +14 -8
- package/NOTICE +5 -11
- package/README.md +9 -17
- package/dist/components/agent-profile.d.ts +86 -0
- package/dist/components/agent-profile.d.ts.map +1 -0
- package/dist/components/agent-profile.js +60 -0
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/app-mark.d.ts +35 -17
- package/dist/components/app-mark.d.ts.map +1 -1
- package/dist/components/app-mark.js +34 -70
- package/dist/components/card.js +3 -3
- package/dist/components/checkbox.js +1 -1
- package/dist/components/collection-filters.d.ts +5 -0
- package/dist/components/collection-filters.d.ts.map +1 -1
- package/dist/components/collection-filters.js +15 -1
- package/dist/components/collection-search.d.ts +10 -0
- package/dist/components/collection-search.d.ts.map +1 -0
- package/dist/components/collection-search.js +8 -0
- package/dist/components/collection-sort.d.ts +18 -0
- package/dist/components/collection-sort.d.ts.map +1 -0
- package/dist/components/collection-sort.js +19 -0
- package/dist/components/collection-toolbar.d.ts +7 -1
- package/dist/components/collection-toolbar.d.ts.map +1 -1
- package/dist/components/collection-toolbar.js +16 -2
- package/dist/components/combobox.js +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/confirm-dialog.d.ts +3 -1
- package/dist/components/confirm-dialog.d.ts.map +1 -1
- package/dist/components/confirm-dialog.js +3 -2
- package/dist/components/data-table.d.ts +154 -0
- package/dist/components/data-table.d.ts.map +1 -0
- package/dist/components/data-table.js +283 -0
- package/dist/components/dialog.js +1 -1
- package/dist/components/drawer.js +1 -1
- package/dist/components/dropdown-menu.d.ts +9 -1
- package/dist/components/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu.js +10 -2
- package/dist/components/empty-art.d.ts +17 -0
- package/dist/components/empty-art.d.ts.map +1 -0
- package/dist/components/empty-art.js +29 -0
- package/dist/components/empty-state.d.ts +38 -0
- package/dist/components/empty-state.d.ts.map +1 -0
- package/dist/components/empty-state.js +14 -0
- package/dist/components/feedback-state.d.ts +1 -1
- package/dist/components/feedback-state.d.ts.map +1 -1
- package/dist/components/feedback-state.js +1 -1
- package/dist/components/field.d.ts.map +1 -1
- package/dist/components/field.js +3 -1
- package/dist/components/form-drawer.d.ts +62 -0
- package/dist/components/form-drawer.d.ts.map +1 -0
- package/dist/components/form-drawer.js +35 -0
- package/dist/components/hover-card.js +1 -1
- package/dist/components/menubar.js +1 -1
- package/dist/components/message-notice.d.ts +18 -0
- package/dist/components/message-notice.d.ts.map +1 -0
- package/dist/components/message-notice.js +19 -0
- package/dist/components/model-mark.d.ts +5 -0
- package/dist/components/model-mark.d.ts.map +1 -1
- package/dist/components/model-mark.js +79 -74
- package/dist/components/object-workspace.d.ts +20 -8
- package/dist/components/object-workspace.d.ts.map +1 -1
- package/dist/components/object-workspace.js +10 -5
- package/dist/components/page-actions.d.ts +65 -0
- package/dist/components/page-actions.d.ts.map +1 -0
- package/dist/components/page-actions.js +76 -0
- package/dist/components/page-header.d.ts +14 -0
- package/dist/components/page-header.d.ts.map +1 -0
- package/dist/components/page-header.js +14 -0
- package/dist/components/platform-mark.d.ts +36 -0
- package/dist/components/platform-mark.d.ts.map +1 -0
- package/dist/components/platform-mark.js +49 -0
- package/dist/components/popover.js +1 -1
- package/dist/components/product-message.d.ts +33 -0
- package/dist/components/product-message.d.ts.map +1 -0
- package/dist/components/product-message.js +8 -0
- package/dist/components/select.js +1 -1
- package/dist/components/settings-facts.d.ts.map +1 -1
- package/dist/components/settings-facts.js +2 -1
- package/dist/components/sheet.js +1 -1
- package/dist/components/sonner.js +1 -1
- package/dist/components/status-badge.d.ts +15 -0
- package/dist/components/status-badge.d.ts.map +1 -0
- package/dist/components/status-badge.js +29 -0
- package/dist/components/table.js +2 -2
- package/dist/components/tag.d.ts +15 -0
- package/dist/components/tag.d.ts.map +1 -0
- package/dist/components/tag.js +12 -0
- package/dist/components/toast.d.ts +6 -2
- package/dist/components/toast.d.ts.map +1 -1
- package/dist/components/toast.js +12 -4
- package/dist/components/tooltip.js +1 -1
- package/dist/eslint/index.js +4 -0
- package/dist/eslint/rules/no-global-patch.js +115 -0
- package/dist/eslint/rules/no-write-in-subscription.js +139 -0
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/internal/empty.d.ts +25 -0
- package/dist/internal/empty.d.ts.map +1 -0
- package/dist/internal/empty.js +41 -0
- package/dist/internal/footer-strip.js +1 -1
- package/dist/internal/menu-surface.d.ts +1 -1
- package/dist/internal/menu-surface.js +1 -1
- package/dist/model-marks/ace.js +1 -0
- package/dist/model-marks/adobe-color.js +1 -0
- package/dist/model-marks/adobe.js +1 -0
- package/dist/model-marks/adobefirefly-color.js +1 -0
- package/dist/model-marks/adobefirefly.js +1 -0
- package/dist/model-marks/agentvoice-color.js +1 -0
- package/dist/model-marks/agentvoice.js +1 -0
- package/dist/model-marks/agnesai.js +1 -0
- package/dist/model-marks/agui.js +1 -0
- package/dist/model-marks/ai2-color.js +1 -0
- package/dist/model-marks/ai2.js +1 -0
- package/dist/model-marks/ai21.js +1 -0
- package/dist/model-marks/ai302-color.js +1 -0
- package/dist/model-marks/ai302.js +1 -0
- package/dist/model-marks/ai360-color.js +1 -0
- package/dist/model-marks/ai360.js +1 -0
- package/dist/model-marks/aihubmix-color.js +1 -0
- package/dist/model-marks/aihubmix.js +1 -0
- package/dist/model-marks/aimass-color.js +1 -0
- package/dist/model-marks/aimass.js +1 -0
- package/dist/model-marks/aionlabs-color.js +1 -0
- package/dist/model-marks/aionlabs.js +1 -0
- package/dist/model-marks/airjelly-color.js +1 -0
- package/dist/model-marks/airjelly.js +1 -0
- package/dist/model-marks/aistudio.js +1 -0
- package/dist/model-marks/akashchat-color.js +1 -0
- package/dist/model-marks/akashchat.js +1 -0
- package/dist/model-marks/alephalpha.js +1 -0
- package/dist/model-marks/alibaba-color.js +1 -0
- package/dist/model-marks/alibaba.js +1 -0
- package/dist/model-marks/alibabacloud-color.js +1 -0
- package/dist/model-marks/alibabacloud.js +1 -0
- package/dist/model-marks/amdradeoncloud-color.js +1 -0
- package/dist/model-marks/amdradeoncloud.js +1 -0
- package/dist/model-marks/amp-color.js +1 -0
- package/dist/model-marks/amp.js +1 -0
- package/dist/model-marks/anspire-color.js +1 -0
- package/dist/model-marks/anspire.js +1 -0
- package/dist/model-marks/antgroup-color.js +1 -0
- package/dist/model-marks/antgroup.js +1 -0
- package/dist/model-marks/anthropic.js +1 -0
- package/dist/model-marks/antigravity-color.js +1 -0
- package/dist/model-marks/antigravity.js +1 -0
- package/dist/model-marks/anyscale-color.js +1 -0
- package/dist/model-marks/anyscale.js +1 -0
- package/dist/model-marks/apertis-color.js +1 -0
- package/dist/model-marks/apertis.js +1 -0
- package/dist/model-marks/apple.js +1 -0
- package/dist/model-marks/arcee-color.js +1 -0
- package/dist/model-marks/arcee.js +1 -0
- package/dist/model-marks/askverdict-color.js +1 -0
- package/dist/model-marks/askverdict.js +1 -0
- package/dist/model-marks/assemblyai-color.js +1 -0
- package/dist/model-marks/assemblyai.js +1 -0
- package/dist/model-marks/atlascloud.js +1 -0
- package/dist/model-marks/automatic-color.js +1 -0
- package/dist/model-marks/automatic.js +1 -0
- package/dist/model-marks/aws-color.js +1 -0
- package/dist/model-marks/aws.js +1 -0
- package/dist/model-marks/aya-color.js +1 -0
- package/dist/model-marks/aya.js +1 -0
- package/dist/model-marks/azure-color.js +1 -0
- package/dist/model-marks/azure.js +1 -0
- package/dist/model-marks/azureai-color.js +1 -0
- package/dist/model-marks/azureai.js +1 -0
- package/dist/model-marks/baai.js +1 -0
- package/dist/model-marks/baichuan-color.js +1 -0
- package/dist/model-marks/baichuan.js +1 -0
- package/dist/model-marks/baidu-color.js +1 -0
- package/dist/model-marks/baidu.js +1 -0
- package/dist/model-marks/baiducloud-color.js +1 -0
- package/dist/model-marks/baiducloud.js +1 -0
- package/dist/model-marks/bailian-color.js +1 -0
- package/dist/model-marks/bailian.js +1 -0
- package/dist/model-marks/baseten.js +1 -0
- package/dist/model-marks/bedrock-color.js +1 -0
- package/dist/model-marks/bedrock.js +1 -0
- package/dist/model-marks/bfl.js +1 -0
- package/dist/model-marks/bilibili-color.js +1 -0
- package/dist/model-marks/bilibili.js +1 -0
- package/dist/model-marks/bilibiliindex.js +1 -0
- package/dist/model-marks/bing-color.js +1 -0
- package/dist/model-marks/bing.js +1 -0
- package/dist/model-marks/bocha-color.js +1 -0
- package/dist/model-marks/bocha.js +1 -0
- package/dist/model-marks/brave-color.js +1 -0
- package/dist/model-marks/brave.js +1 -0
- package/dist/model-marks/briaai-color.js +1 -0
- package/dist/model-marks/briaai.js +1 -0
- package/dist/model-marks/browserless.js +1 -0
- package/dist/model-marks/burncloud-color.js +1 -0
- package/dist/model-marks/burncloud.js +1 -0
- package/dist/model-marks/bytedance-color.js +1 -0
- package/dist/model-marks/bytedance.js +1 -0
- package/dist/model-marks/capcut.js +1 -0
- package/dist/model-marks/celestoai-color.js +1 -0
- package/dist/model-marks/celestoai.js +1 -0
- package/dist/model-marks/centml-color.js +1 -0
- package/dist/model-marks/centml.js +1 -0
- package/dist/model-marks/cerebras-color.js +1 -0
- package/dist/model-marks/cerebras.js +1 -0
- package/dist/model-marks/chatglm-color.js +1 -0
- package/dist/model-marks/chatglm.js +1 -0
- package/dist/model-marks/cherrystudio-color.js +1 -0
- package/dist/model-marks/cherrystudio.js +1 -0
- package/dist/model-marks/chutes.js +1 -0
- package/dist/model-marks/civitai-color.js +1 -0
- package/dist/model-marks/civitai.js +1 -0
- package/dist/model-marks/claude-color.js +1 -0
- package/dist/model-marks/claude.js +1 -0
- package/dist/model-marks/claudecode-color.js +1 -0
- package/dist/model-marks/claudecode.js +1 -0
- package/dist/model-marks/cline.js +1 -0
- package/dist/model-marks/clipdrop.js +1 -0
- package/dist/model-marks/cloudflare-color.js +1 -0
- package/dist/model-marks/cloudflare.js +1 -0
- package/dist/model-marks/codebuddy-color.js +1 -0
- package/dist/model-marks/codebuddy.js +1 -0
- package/dist/model-marks/codeflicker-color.js +1 -0
- package/dist/model-marks/codeflicker.js +1 -0
- package/dist/model-marks/codegeex-color.js +1 -0
- package/dist/model-marks/codegeex.js +1 -0
- package/dist/model-marks/codex-color.js +1 -0
- package/dist/model-marks/codex.js +1 -0
- package/dist/model-marks/cogvideo-color.js +1 -0
- package/dist/model-marks/cogvideo.js +1 -0
- package/dist/model-marks/cogview-color.js +1 -0
- package/dist/model-marks/cogview.js +1 -0
- package/dist/model-marks/cohere-color.js +1 -0
- package/dist/model-marks/cohere.js +1 -0
- package/dist/model-marks/colab-color.js +1 -0
- package/dist/model-marks/colab.js +1 -0
- package/dist/model-marks/cometapi-color.js +1 -0
- package/dist/model-marks/cometapi.js +1 -0
- package/dist/model-marks/comfyui-color.js +1 -0
- package/dist/model-marks/comfyui.js +1 -0
- package/dist/model-marks/commanda-color.js +1 -0
- package/dist/model-marks/commanda.js +1 -0
- package/dist/model-marks/commandcode.js +1 -0
- package/dist/model-marks/copilot-color.js +1 -0
- package/dist/model-marks/copilot.js +1 -0
- package/dist/model-marks/copilotkit-color.js +1 -0
- package/dist/model-marks/copilotkit.js +1 -0
- package/dist/model-marks/coqui-color.js +1 -0
- package/dist/model-marks/coqui.js +1 -0
- package/dist/model-marks/coze.js +1 -0
- package/dist/model-marks/crewai-color.js +1 -0
- package/dist/model-marks/crewai.js +1 -0
- package/dist/model-marks/crusoe-color.js +1 -0
- package/dist/model-marks/crusoe.js +1 -0
- package/dist/model-marks/cursor.js +1 -0
- package/dist/model-marks/cybercut.js +1 -0
- package/dist/model-marks/dalle-color.js +1 -0
- package/dist/model-marks/dalle.js +1 -0
- package/dist/model-marks/dbrx-color.js +1 -0
- package/dist/model-marks/dbrx.js +1 -0
- package/dist/model-marks/decart-color.js +1 -0
- package/dist/model-marks/decart.js +1 -0
- package/dist/model-marks/deepai.js +1 -0
- package/dist/model-marks/deepcogito-color.js +1 -0
- package/dist/model-marks/deepcogito.js +1 -0
- package/dist/model-marks/deepinfra-color.js +1 -0
- package/dist/model-marks/deepinfra.js +1 -0
- package/dist/model-marks/deepl-color.js +1 -0
- package/dist/model-marks/deepl.js +1 -0
- package/dist/model-marks/deepmind-color.js +1 -0
- package/dist/model-marks/deepmind.js +1 -0
- package/dist/model-marks/deepseek-color.js +1 -0
- package/dist/model-marks/deepseek.js +1 -0
- package/dist/model-marks/devin-color.js +1 -0
- package/dist/model-marks/devin.js +1 -0
- package/dist/model-marks/dify-color.js +1 -0
- package/dist/model-marks/dify.js +1 -0
- package/dist/model-marks/digitalocean.js +1 -0
- package/dist/model-marks/doc2x-color.js +1 -0
- package/dist/model-marks/doc2x.js +1 -0
- package/dist/model-marks/docsearch-color.js +1 -0
- package/dist/model-marks/docsearch.js +1 -0
- package/dist/model-marks/dolphin.js +1 -0
- package/dist/model-marks/dotsstudio.js +1 -0
- package/dist/model-marks/doubao-color.js +1 -0
- package/dist/model-marks/doubao.js +1 -0
- package/dist/model-marks/dreammachine.js +1 -0
- package/dist/model-marks/elevenlabs.js +1 -0
- package/dist/model-marks/elevenx.js +1 -0
- package/dist/model-marks/essentialai-color.js +1 -0
- package/dist/model-marks/essentialai.js +1 -0
- package/dist/model-marks/exa-color.js +1 -0
- package/dist/model-marks/exa.js +1 -0
- package/dist/model-marks/fal-color.js +1 -0
- package/dist/model-marks/fal.js +1 -0
- package/dist/model-marks/fastgpt-color.js +1 -0
- package/dist/model-marks/fastgpt.js +1 -0
- package/dist/model-marks/featherless-color.js +1 -0
- package/dist/model-marks/featherless.js +1 -0
- package/dist/model-marks/figma-color.js +1 -0
- package/dist/model-marks/figma.js +1 -0
- package/dist/model-marks/firecrawl-color.js +1 -0
- package/dist/model-marks/firecrawl.js +1 -0
- package/dist/model-marks/fireworks-color.js +1 -0
- package/dist/model-marks/fireworks.js +1 -0
- package/dist/model-marks/fishaudio.js +1 -0
- package/dist/model-marks/flora.js +1 -0
- package/dist/model-marks/flowith.js +1 -0
- package/dist/model-marks/flux.js +1 -0
- package/dist/model-marks/friendli.js +1 -0
- package/dist/model-marks/gemini-color.js +1 -0
- package/dist/model-marks/gemini.js +1 -0
- package/dist/model-marks/geminicli-color.js +1 -0
- package/dist/model-marks/geminicli.js +1 -0
- package/dist/model-marks/gemma-color.js +1 -0
- package/dist/model-marks/gemma.js +1 -0
- package/dist/model-marks/giteeai.js +1 -0
- package/dist/model-marks/github.js +1 -0
- package/dist/model-marks/githubcopilot.js +1 -0
- package/dist/model-marks/glama.js +1 -0
- package/dist/model-marks/glif.js +1 -0
- package/dist/model-marks/glmv-color.js +1 -0
- package/dist/model-marks/glmv.js +1 -0
- package/dist/model-marks/gmicloud.js +1 -0
- package/dist/model-marks/google-color.js +1 -0
- package/dist/model-marks/google.js +1 -0
- package/dist/model-marks/googlecloud-color.js +1 -0
- package/dist/model-marks/googlecloud.js +1 -0
- package/dist/model-marks/goose.js +1 -0
- package/dist/model-marks/gradio-color.js +1 -0
- package/dist/model-marks/gradio.js +1 -0
- package/dist/model-marks/greptile-color.js +1 -0
- package/dist/model-marks/greptile.js +1 -0
- package/dist/model-marks/grok.js +1 -0
- package/dist/model-marks/groq.js +1 -0
- package/dist/model-marks/hailuo-color.js +1 -0
- package/dist/model-marks/hailuo.js +1 -0
- package/dist/model-marks/haiper.js +1 -0
- package/dist/model-marks/happyhorse.js +1 -0
- package/dist/model-marks/hedra.js +1 -0
- package/dist/model-marks/hermesagent.js +1 -0
- package/dist/model-marks/higress-color.js +1 -0
- package/dist/model-marks/higress.js +1 -0
- package/dist/model-marks/huawei-color.js +1 -0
- package/dist/model-marks/huawei.js +1 -0
- package/dist/model-marks/huaweicloud-color.js +1 -0
- package/dist/model-marks/huaweicloud.js +1 -0
- package/dist/model-marks/huggingface-color.js +1 -0
- package/dist/model-marks/huggingface.js +1 -0
- package/dist/model-marks/hunyuan-color.js +1 -0
- package/dist/model-marks/hunyuan.js +1 -0
- package/dist/model-marks/hyperbolic-color.js +1 -0
- package/dist/model-marks/hyperbolic.js +1 -0
- package/dist/model-marks/ibm.js +1 -0
- package/dist/model-marks/ideogram.js +1 -0
- package/dist/model-marks/iflytekcloud-color.js +1 -0
- package/dist/model-marks/iflytekcloud.js +1 -0
- package/dist/model-marks/inception.js +1 -0
- package/dist/model-marks/inceptron-color.js +1 -0
- package/dist/model-marks/inceptron.js +1 -0
- package/dist/model-marks/inference.js +1 -0
- package/dist/model-marks/infermatic-color.js +1 -0
- package/dist/model-marks/infermatic.js +1 -0
- package/dist/model-marks/infinigence-color.js +1 -0
- package/dist/model-marks/infinigence.js +1 -0
- package/dist/model-marks/inflection.js +1 -0
- package/dist/model-marks/internlm-color.js +1 -0
- package/dist/model-marks/internlm.js +1 -0
- package/dist/model-marks/ionet.js +1 -0
- package/dist/model-marks/jimeng-color.js +1 -0
- package/dist/model-marks/jimeng.js +1 -0
- package/dist/model-marks/jina.js +1 -0
- package/dist/model-marks/junie-color.js +1 -0
- package/dist/model-marks/junie.js +1 -0
- package/dist/model-marks/kagi.js +1 -0
- package/dist/model-marks/kilocode.js +1 -0
- package/dist/model-marks/kimi-color.js +1 -0
- package/dist/model-marks/kimi.js +1 -0
- package/dist/model-marks/kiro-color.js +1 -0
- package/dist/model-marks/kiro.js +1 -0
- package/dist/model-marks/kling-color.js +1 -0
- package/dist/model-marks/kling.js +1 -0
- package/dist/model-marks/kluster-color.js +1 -0
- package/dist/model-marks/kluster.js +1 -0
- package/dist/model-marks/kolors-color.js +1 -0
- package/dist/model-marks/kolors.js +1 -0
- package/dist/model-marks/krea.js +1 -0
- package/dist/model-marks/kwaikat.js +1 -0
- package/dist/model-marks/kwaipilot-color.js +1 -0
- package/dist/model-marks/kwaipilot.js +1 -0
- package/dist/model-marks/lambda.js +1 -0
- package/dist/model-marks/langchain-color.js +1 -0
- package/dist/model-marks/langchain.js +1 -0
- package/dist/model-marks/langfuse-color.js +1 -0
- package/dist/model-marks/langfuse.js +1 -0
- package/dist/model-marks/langgraph-color.js +1 -0
- package/dist/model-marks/langgraph.js +1 -0
- package/dist/model-marks/langsmith-color.js +1 -0
- package/dist/model-marks/langsmith.js +1 -0
- package/dist/model-marks/leptonai-color.js +1 -0
- package/dist/model-marks/leptonai.js +1 -0
- package/dist/model-marks/lg-color.js +1 -0
- package/dist/model-marks/lg.js +1 -0
- package/dist/model-marks/lightricks.js +1 -0
- package/dist/model-marks/liquid.js +1 -0
- package/dist/model-marks/livekit-color.js +1 -0
- package/dist/model-marks/livekit.js +1 -0
- package/dist/model-marks/llamaindex-color.js +1 -0
- package/dist/model-marks/llamaindex.js +1 -0
- package/dist/model-marks/llava-color.js +1 -0
- package/dist/model-marks/llava.js +1 -0
- package/dist/model-marks/llmapi-color.js +1 -0
- package/dist/model-marks/llmapi.js +1 -0
- package/dist/model-marks/lmstudio.js +1 -0
- package/dist/model-marks/lobehub-color.js +1 -0
- package/dist/model-marks/lobehub.js +1 -0
- package/dist/model-marks/longcat-color.js +1 -0
- package/dist/model-marks/longcat.js +1 -0
- package/dist/model-marks/lovable-color.js +1 -0
- package/dist/model-marks/lovable.js +1 -0
- package/dist/model-marks/lovart.js +1 -0
- package/dist/model-marks/luma-color.js +1 -0
- package/dist/model-marks/luma.js +1 -0
- package/dist/model-marks/magic.js +1 -0
- package/dist/model-marks/make-color.js +1 -0
- package/dist/model-marks/make.js +1 -0
- package/dist/model-marks/manus.js +1 -0
- package/dist/model-marks/mastra.js +1 -0
- package/dist/model-marks/mcp.js +1 -0
- package/dist/model-marks/mcpso-color.js +1 -0
- package/dist/model-marks/mcpso.js +1 -0
- package/dist/model-marks/menlo-color.js +1 -0
- package/dist/model-marks/menlo.js +1 -0
- package/dist/model-marks/meshy-color.js +1 -0
- package/dist/model-marks/meshy.js +1 -0
- package/dist/model-marks/meta-color.js +1 -0
- package/dist/model-marks/meta.js +1 -0
- package/dist/model-marks/metaai-color.js +1 -0
- package/dist/model-marks/metaai.js +1 -0
- package/dist/model-marks/metagpt.js +1 -0
- package/dist/model-marks/microsoft-color.js +1 -0
- package/dist/model-marks/microsoft.js +1 -0
- package/dist/model-marks/midjourney.js +1 -0
- package/dist/model-marks/minimax-color.js +1 -0
- package/dist/model-marks/minimax.js +1 -0
- package/dist/model-marks/mistral-color.js +1 -0
- package/dist/model-marks/mistral.js +1 -0
- package/dist/model-marks/modelscope-color.js +1 -0
- package/dist/model-marks/modelscope.js +1 -0
- package/dist/model-marks/monica-color.js +1 -0
- package/dist/model-marks/monica.js +1 -0
- package/dist/model-marks/moonshot.js +1 -0
- package/dist/model-marks/morph-color.js +1 -0
- package/dist/model-marks/morph.js +1 -0
- package/dist/model-marks/moxt-color.js +1 -0
- package/dist/model-marks/moxt.js +1 -0
- package/dist/model-marks/myshell-color.js +1 -0
- package/dist/model-marks/myshell.js +1 -0
- package/dist/model-marks/n8n-color.js +1 -0
- package/dist/model-marks/n8n.js +1 -0
- package/dist/model-marks/nanobanana-color.js +1 -0
- package/dist/model-marks/nanobanana.js +1 -0
- package/dist/model-marks/nebius.js +1 -0
- package/dist/model-marks/newapi-color.js +1 -0
- package/dist/model-marks/newapi.js +1 -0
- package/dist/model-marks/nextbit-color.js +1 -0
- package/dist/model-marks/nextbit.js +1 -0
- package/dist/model-marks/notebooklm.js +1 -0
- package/dist/model-marks/notion.js +1 -0
- package/dist/model-marks/nousresearch.js +1 -0
- package/dist/model-marks/nova-color.js +1 -0
- package/dist/model-marks/nova.js +1 -0
- package/dist/model-marks/novelai.js +1 -0
- package/dist/model-marks/novita-color.js +1 -0
- package/dist/model-marks/novita.js +1 -0
- package/dist/model-marks/nplcloud-color.js +1 -0
- package/dist/model-marks/nplcloud.js +1 -0
- package/dist/model-marks/nvidia-color.js +1 -0
- package/dist/model-marks/nvidia.js +1 -0
- package/dist/model-marks/obsidian-color.js +1 -0
- package/dist/model-marks/obsidian.js +1 -0
- package/dist/model-marks/ollama.js +1 -0
- package/dist/model-marks/openai.js +1 -0
- package/dist/model-marks/openchat-color.js +1 -0
- package/dist/model-marks/openchat.js +1 -0
- package/dist/model-marks/openclaw-color.js +1 -0
- package/dist/model-marks/openclaw.js +1 -0
- package/dist/model-marks/opencode.js +1 -0
- package/dist/model-marks/openhands-color.js +1 -0
- package/dist/model-marks/openhands.js +1 -0
- package/dist/model-marks/openhuman.js +1 -0
- package/dist/model-marks/openrouter-color.js +1 -0
- package/dist/model-marks/openrouter.js +1 -0
- package/dist/model-marks/openwebui.js +1 -0
- package/dist/model-marks/palm-color.js +1 -0
- package/dist/model-marks/palm.js +1 -0
- package/dist/model-marks/parasail.js +1 -0
- package/dist/model-marks/perceptron.js +1 -0
- package/dist/model-marks/perplexity-color.js +1 -0
- package/dist/model-marks/perplexity.js +1 -0
- package/dist/model-marks/phala-color.js +1 -0
- package/dist/model-marks/phala.js +1 -0
- package/dist/model-marks/phidata-color.js +1 -0
- package/dist/model-marks/phidata.js +1 -0
- package/dist/model-marks/phind.js +1 -0
- package/dist/model-marks/pi.js +1 -0
- package/dist/model-marks/pika.js +1 -0
- package/dist/model-marks/pixverse-color.js +1 -0
- package/dist/model-marks/pixverse.js +1 -0
- package/dist/model-marks/player2-color.js +1 -0
- package/dist/model-marks/player2.js +1 -0
- package/dist/model-marks/poe-color.js +1 -0
- package/dist/model-marks/poe.js +1 -0
- package/dist/model-marks/pollinations.js +1 -0
- package/dist/model-marks/poolside-color.js +1 -0
- package/dist/model-marks/poolside.js +1 -0
- package/dist/model-marks/ppio-color.js +1 -0
- package/dist/model-marks/ppio.js +1 -0
- package/dist/model-marks/prunaai-color.js +1 -0
- package/dist/model-marks/prunaai.js +1 -0
- package/dist/model-marks/pydanticai-color.js +1 -0
- package/dist/model-marks/pydanticai.js +1 -0
- package/dist/model-marks/qingyan-color.js +1 -0
- package/dist/model-marks/qingyan.js +1 -0
- package/dist/model-marks/qiniu-color.js +1 -0
- package/dist/model-marks/qiniu.js +1 -0
- package/dist/model-marks/qoder-color.js +1 -0
- package/dist/model-marks/qoder.js +1 -0
- package/dist/model-marks/qwen-color.js +1 -0
- package/dist/model-marks/qwen.js +1 -0
- package/dist/model-marks/railway.js +1 -0
- package/dist/model-marks/recraft.js +1 -0
- package/dist/model-marks/reka.js +1 -0
- package/dist/model-marks/relace.js +1 -0
- package/dist/model-marks/replicate.js +1 -0
- package/dist/model-marks/replit-color.js +1 -0
- package/dist/model-marks/replit.js +1 -0
- package/dist/model-marks/reve.js +1 -0
- package/dist/model-marks/roocode.js +1 -0
- package/dist/model-marks/rsshub-color.js +1 -0
- package/dist/model-marks/rsshub.js +1 -0
- package/dist/model-marks/runway.js +1 -0
- package/dist/model-marks/rwkv-color.js +1 -0
- package/dist/model-marks/rwkv.js +1 -0
- package/dist/model-marks/sakana-color.js +1 -0
- package/dist/model-marks/sakana.js +1 -0
- package/dist/model-marks/sambanova-color.js +1 -0
- package/dist/model-marks/sambanova.js +1 -0
- package/dist/model-marks/search1api-color.js +1 -0
- package/dist/model-marks/search1api.js +1 -0
- package/dist/model-marks/searchapi.js +1 -0
- package/dist/model-marks/searxng-color.js +1 -0
- package/dist/model-marks/searxng.js +1 -0
- package/dist/model-marks/sensenova-color.js +1 -0
- package/dist/model-marks/sensenova.js +1 -0
- package/dist/model-marks/siliconcloud-color.js +1 -0
- package/dist/model-marks/siliconcloud.js +1 -0
- package/dist/model-marks/sillytavern-color.js +1 -0
- package/dist/model-marks/sillytavern.js +1 -0
- package/dist/model-marks/skywork-color.js +1 -0
- package/dist/model-marks/skywork.js +1 -0
- package/dist/model-marks/slock.js +1 -0
- package/dist/model-marks/smithery-color.js +1 -0
- package/dist/model-marks/smithery.js +1 -0
- package/dist/model-marks/snowflake-color.js +1 -0
- package/dist/model-marks/snowflake.js +1 -0
- package/dist/model-marks/sophnet-color.js +1 -0
- package/dist/model-marks/sophnet.js +1 -0
- package/dist/model-marks/sora-color.js +1 -0
- package/dist/model-marks/sora.js +1 -0
- package/dist/model-marks/spark-color.js +1 -0
- package/dist/model-marks/spark.js +1 -0
- package/dist/model-marks/speedai-color.js +1 -0
- package/dist/model-marks/speedai.js +1 -0
- package/dist/model-marks/stability-color.js +1 -0
- package/dist/model-marks/stability.js +1 -0
- package/dist/model-marks/statecloud-color.js +1 -0
- package/dist/model-marks/statecloud.js +1 -0
- package/dist/model-marks/stepfun-color.js +1 -0
- package/dist/model-marks/stepfun.js +1 -0
- package/dist/model-marks/straico-color.js +1 -0
- package/dist/model-marks/straico.js +1 -0
- package/dist/model-marks/streamlake-color.js +1 -0
- package/dist/model-marks/streamlake.js +1 -0
- package/dist/model-marks/submodel-color.js +1 -0
- package/dist/model-marks/submodel.js +1 -0
- package/dist/model-marks/suno.js +1 -0
- package/dist/model-marks/sync.js +1 -0
- package/dist/model-marks/targon-color.js +1 -0
- package/dist/model-marks/targon.js +1 -0
- package/dist/model-marks/tavily-color.js +1 -0
- package/dist/model-marks/tavily.js +1 -0
- package/dist/model-marks/tencent-color.js +1 -0
- package/dist/model-marks/tencent.js +1 -0
- package/dist/model-marks/tencentcloud-color.js +1 -0
- package/dist/model-marks/tencentcloud.js +1 -0
- package/dist/model-marks/tiangong-color.js +1 -0
- package/dist/model-marks/tiangong.js +1 -0
- package/dist/model-marks/tii-color.js +1 -0
- package/dist/model-marks/tii.js +1 -0
- package/dist/model-marks/together-color.js +1 -0
- package/dist/model-marks/together.js +1 -0
- package/dist/model-marks/topazlabs.js +1 -0
- package/dist/model-marks/trae-color.js +1 -0
- package/dist/model-marks/trae.js +1 -0
- package/dist/model-marks/tripo-color.js +1 -0
- package/dist/model-marks/tripo.js +1 -0
- package/dist/model-marks/turix.js +1 -0
- package/dist/model-marks/udio-color.js +1 -0
- package/dist/model-marks/udio.js +1 -0
- package/dist/model-marks/unionalpha-color.js +1 -0
- package/dist/model-marks/unionalpha.js +1 -0
- package/dist/model-marks/unsloth-color.js +1 -0
- package/dist/model-marks/unsloth.js +1 -0
- package/dist/model-marks/unstructured-color.js +1 -0
- package/dist/model-marks/unstructured.js +1 -0
- package/dist/model-marks/upstage-color.js +1 -0
- package/dist/model-marks/upstage.js +1 -0
- package/dist/model-marks/v0.js +1 -0
- package/dist/model-marks/vectorizerai.js +1 -0
- package/dist/model-marks/venice-color.js +1 -0
- package/dist/model-marks/venice.js +1 -0
- package/dist/model-marks/vercel.js +1 -0
- package/dist/model-marks/vertexai-color.js +1 -0
- package/dist/model-marks/vertexai.js +1 -0
- package/dist/model-marks/vidu-color.js +1 -0
- package/dist/model-marks/vidu.js +1 -0
- package/dist/model-marks/viggle.js +1 -0
- package/dist/model-marks/vllm-color.js +1 -0
- package/dist/model-marks/vllm.js +1 -0
- package/dist/model-marks/volcengine-color.js +1 -0
- package/dist/model-marks/volcengine.js +1 -0
- package/dist/model-marks/voyage-color.js +1 -0
- package/dist/model-marks/voyage.js +1 -0
- package/dist/model-marks/wafer.js +1 -0
- package/dist/model-marks/wandb-color.js +1 -0
- package/dist/model-marks/wandb.js +1 -0
- package/dist/model-marks/wavespeed.js +1 -0
- package/dist/model-marks/wenxin-color.js +1 -0
- package/dist/model-marks/wenxin.js +1 -0
- package/dist/model-marks/windsurf.js +1 -0
- package/dist/model-marks/workersai-color.js +1 -0
- package/dist/model-marks/workersai.js +1 -0
- package/dist/model-marks/worldrouter.js +1 -0
- package/dist/model-marks/xai.js +1 -0
- package/dist/model-marks/xiaomimimo.js +1 -0
- package/dist/model-marks/xinference-color.js +1 -0
- package/dist/model-marks/xinference.js +1 -0
- package/dist/model-marks/xpay-color.js +1 -0
- package/dist/model-marks/xpay.js +1 -0
- package/dist/model-marks/xuanyuan-color.js +1 -0
- package/dist/model-marks/xuanyuan.js +1 -0
- package/dist/model-marks/yandex.js +1 -0
- package/dist/model-marks/yi-color.js +1 -0
- package/dist/model-marks/yi.js +1 -0
- package/dist/model-marks/youmind.js +1 -0
- package/dist/model-marks/yuanbao-color.js +1 -0
- package/dist/model-marks/yuanbao.js +1 -0
- package/dist/model-marks/zai.js +1 -0
- package/dist/model-marks/zapier-color.js +1 -0
- package/dist/model-marks/zapier.js +1 -0
- package/dist/model-marks/zeabur-color.js +1 -0
- package/dist/model-marks/zeabur.js +1 -0
- package/dist/model-marks/zencoder-color.js +1 -0
- package/dist/model-marks/zencoder.js +1 -0
- package/dist/model-marks/zenmux.js +1 -0
- package/dist/model-marks/zeroone-color.js +1 -0
- package/dist/model-marks/zeroone.js +1 -0
- package/dist/model-marks/zhipu-color.js +1 -0
- package/dist/model-marks/zhipu.js +1 -0
- package/dist/standalone/index.js +1 -1
- package/dist/styles/components.css +13 -0
- package/package.json +6 -14
- package/LICENSES/MODEL-IDENTITY-ASSETS-NOTICE.txt +0 -28
- package/dist/assets/brand/aionlabs.svg +0 -2
- package/dist/assets/brand/airtable.svg +0 -2
- package/dist/assets/brand/apple.svg +0 -2
- package/dist/assets/brand/arcee.svg +0 -2
- package/dist/assets/brand/asana.svg +0 -2
- package/dist/assets/brand/atlassian.svg +0 -2
- package/dist/assets/brand/baidu.svg +0 -2
- package/dist/assets/brand/bytedance.svg +0 -2
- package/dist/assets/brand/claude.svg +0 -2
- package/dist/assets/brand/cohere.svg +0 -2
- package/dist/assets/brand/datadog.svg +0 -2
- package/dist/assets/brand/deepseek.svg +0 -2
- package/dist/assets/brand/discord.svg +0 -2
- package/dist/assets/brand/dolphin.svg +0 -2
- package/dist/assets/brand/dotsstudio.svg +0 -2
- package/dist/assets/brand/figma.svg +0 -2
- package/dist/assets/brand/gemini.svg +0 -2
- package/dist/assets/brand/github.svg +0 -2
- package/dist/assets/brand/gitlab.svg +0 -2
- package/dist/assets/brand/gmail.svg +0 -2
- package/dist/assets/brand/google-calendar.svg +0 -2
- package/dist/assets/brand/google-drive.svg +0 -2
- package/dist/assets/brand/google.svg +0 -2
- package/dist/assets/brand/grok.svg +0 -2
- package/dist/assets/brand/huggingface.svg +0 -2
- package/dist/assets/brand/ibm.svg +0 -2
- package/dist/assets/brand/inception.svg +0 -2
- package/dist/assets/brand/inclusionai.svg +0 -2
- package/dist/assets/brand/index.json +0 -798
- package/dist/assets/brand/inference.svg +0 -2
- package/dist/assets/brand/intercom.svg +0 -2
- package/dist/assets/brand/jira.svg +0 -2
- package/dist/assets/brand/kwaipilot.svg +0 -2
- package/dist/assets/brand/linear.svg +0 -2
- package/dist/assets/brand/linux.svg +0 -2
- package/dist/assets/brand/liquid.svg +0 -2
- package/dist/assets/brand/longcat.svg +0 -2
- package/dist/assets/brand/mattermost.svg +0 -2
- package/dist/assets/brand/meta.svg +0 -2
- package/dist/assets/brand/microsoft-teams.svg +0 -2
- package/dist/assets/brand/microsoft.svg +0 -2
- package/dist/assets/brand/minimax.svg +0 -2
- package/dist/assets/brand/mistral.svg +0 -2
- package/dist/assets/brand/moonshot.svg +0 -2
- package/dist/assets/brand/morph.svg +0 -2
- package/dist/assets/brand/n8n.svg +0 -2
- package/dist/assets/brand/netlify.svg +0 -2
- package/dist/assets/brand/nexagi.svg +0 -2
- package/dist/assets/brand/notion.svg +0 -2
- package/dist/assets/brand/nousresearch.svg +0 -2
- package/dist/assets/brand/nova.svg +0 -2
- package/dist/assets/brand/nvidia.svg +0 -2
- package/dist/assets/brand/openai.svg +0 -2
- package/dist/assets/brand/openrouter.svg +0 -2
- package/dist/assets/brand/paypal.svg +0 -2
- package/dist/assets/brand/perceptron.svg +0 -2
- package/dist/assets/brand/perplexity.svg +0 -2
- package/dist/assets/brand/poolside.svg +0 -2
- package/dist/assets/brand/postgresql.svg +0 -2
- package/dist/assets/brand/qwen.svg +0 -2
- package/dist/assets/brand/reka.svg +0 -2
- package/dist/assets/brand/relace.svg +0 -2
- package/dist/assets/brand/sakana.svg +0 -2
- package/dist/assets/brand/sentry.svg +0 -2
- package/dist/assets/brand/signal.svg +0 -2
- package/dist/assets/brand/slack.svg +0 -2
- package/dist/assets/brand/spotify.svg +0 -2
- package/dist/assets/brand/square.svg +0 -2
- package/dist/assets/brand/stepfun.svg +0 -2
- package/dist/assets/brand/stripe.svg +0 -2
- package/dist/assets/brand/supabase.svg +0 -2
- package/dist/assets/brand/telegram.svg +0 -2
- package/dist/assets/brand/tencent.svg +0 -2
- package/dist/assets/brand/the-drummer.svg +0 -2
- package/dist/assets/brand/thinkingmachines.svg +0 -2
- package/dist/assets/brand/todoist.svg +0 -2
- package/dist/assets/brand/unbiased.svg +0 -2
- package/dist/assets/brand/unreal-engine.svg +0 -2
- package/dist/assets/brand/upstage.svg +0 -2
- package/dist/assets/brand/vercel.svg +0 -2
- package/dist/assets/brand/webflow.svg +0 -2
- package/dist/assets/brand/whatsapp.svg +0 -2
- package/dist/assets/brand/windows.svg +0 -2
- package/dist/assets/brand/writer.svg +0 -2
- package/dist/assets/brand/xiaomimimo.svg +0 -2
- package/dist/assets/brand/youtube.svg +0 -2
- package/dist/assets/brand/yuanbao.svg +0 -2
- package/dist/assets/brand/zai.svg +0 -2
- package/dist/assets/brand/zapier.svg +0 -2
- package/dist/components/app-mark-aliases.d.ts +0 -16
- package/dist/components/app-mark-aliases.d.ts.map +0 -1
- package/dist/components/app-mark-aliases.js +0 -87
- package/dist/components/app-mark-frame.d.ts +0 -34
- package/dist/components/app-mark-frame.d.ts.map +0 -1
- package/dist/components/app-mark-frame.js +0 -37
- package/dist/components/app-mark-lazy/server.d.ts +0 -4
- package/dist/components/app-mark-lazy/server.d.ts.map +0 -1
- package/dist/components/app-mark-lazy/server.js +0 -8
- package/dist/components/app-mark-lazy.d.ts +0 -16
- package/dist/components/app-mark-lazy.d.ts.map +0 -1
- package/dist/components/app-mark-lazy.js +0 -85
- package/dist/components/brand-icons/aionlabs.d.ts +0 -18
- package/dist/components/brand-icons/aionlabs.d.ts.map +0 -1
- package/dist/components/brand-icons/aionlabs.js +0 -22
- package/dist/components/brand-icons/airtable.d.ts +0 -18
- package/dist/components/brand-icons/airtable.d.ts.map +0 -1
- package/dist/components/brand-icons/airtable.js +0 -22
- package/dist/components/brand-icons/apple.d.ts +0 -18
- package/dist/components/brand-icons/apple.d.ts.map +0 -1
- package/dist/components/brand-icons/apple.js +0 -22
- package/dist/components/brand-icons/arcee.d.ts +0 -18
- package/dist/components/brand-icons/arcee.d.ts.map +0 -1
- package/dist/components/brand-icons/arcee.js +0 -22
- package/dist/components/brand-icons/asana.d.ts +0 -18
- package/dist/components/brand-icons/asana.d.ts.map +0 -1
- package/dist/components/brand-icons/asana.js +0 -22
- package/dist/components/brand-icons/atlassian.d.ts +0 -18
- package/dist/components/brand-icons/atlassian.d.ts.map +0 -1
- package/dist/components/brand-icons/atlassian.js +0 -25
- package/dist/components/brand-icons/baidu.d.ts +0 -18
- package/dist/components/brand-icons/baidu.d.ts.map +0 -1
- package/dist/components/brand-icons/baidu.js +0 -22
- package/dist/components/brand-icons/brand-icon.d.ts +0 -22
- package/dist/components/brand-icons/brand-icon.d.ts.map +0 -1
- package/dist/components/brand-icons/brand-icon.js +0 -26
- package/dist/components/brand-icons/bytedance.d.ts +0 -18
- package/dist/components/brand-icons/bytedance.d.ts.map +0 -1
- package/dist/components/brand-icons/bytedance.js +0 -22
- package/dist/components/brand-icons/claude.d.ts +0 -18
- package/dist/components/brand-icons/claude.d.ts.map +0 -1
- package/dist/components/brand-icons/claude.js +0 -22
- package/dist/components/brand-icons/cohere.d.ts +0 -18
- package/dist/components/brand-icons/cohere.d.ts.map +0 -1
- package/dist/components/brand-icons/cohere.js +0 -22
- package/dist/components/brand-icons/datadog.d.ts +0 -18
- package/dist/components/brand-icons/datadog.d.ts.map +0 -1
- package/dist/components/brand-icons/datadog.js +0 -22
- package/dist/components/brand-icons/deepseek.d.ts +0 -18
- package/dist/components/brand-icons/deepseek.d.ts.map +0 -1
- package/dist/components/brand-icons/deepseek.js +0 -22
- package/dist/components/brand-icons/discord.d.ts +0 -18
- package/dist/components/brand-icons/discord.d.ts.map +0 -1
- package/dist/components/brand-icons/discord.js +0 -22
- package/dist/components/brand-icons/dolphin.d.ts +0 -18
- package/dist/components/brand-icons/dolphin.d.ts.map +0 -1
- package/dist/components/brand-icons/dolphin.js +0 -22
- package/dist/components/brand-icons/dotsstudio.d.ts +0 -18
- package/dist/components/brand-icons/dotsstudio.d.ts.map +0 -1
- package/dist/components/brand-icons/dotsstudio.js +0 -22
- package/dist/components/brand-icons/figma.d.ts +0 -18
- package/dist/components/brand-icons/figma.d.ts.map +0 -1
- package/dist/components/brand-icons/figma.js +0 -22
- package/dist/components/brand-icons/gemini.d.ts +0 -18
- package/dist/components/brand-icons/gemini.d.ts.map +0 -1
- package/dist/components/brand-icons/gemini.js +0 -25
- package/dist/components/brand-icons/github.d.ts +0 -18
- package/dist/components/brand-icons/github.d.ts.map +0 -1
- package/dist/components/brand-icons/github.js +0 -22
- package/dist/components/brand-icons/gitlab.d.ts +0 -18
- package/dist/components/brand-icons/gitlab.d.ts.map +0 -1
- package/dist/components/brand-icons/gitlab.js +0 -22
- package/dist/components/brand-icons/gmail.d.ts +0 -18
- package/dist/components/brand-icons/gmail.d.ts.map +0 -1
- package/dist/components/brand-icons/gmail.js +0 -25
- package/dist/components/brand-icons/google-calendar.d.ts +0 -18
- package/dist/components/brand-icons/google-calendar.d.ts.map +0 -1
- package/dist/components/brand-icons/google-calendar.js +0 -25
- package/dist/components/brand-icons/google-drive.d.ts +0 -18
- package/dist/components/brand-icons/google-drive.d.ts.map +0 -1
- package/dist/components/brand-icons/google-drive.js +0 -25
- package/dist/components/brand-icons/google.d.ts +0 -18
- package/dist/components/brand-icons/google.d.ts.map +0 -1
- package/dist/components/brand-icons/google.js +0 -22
- package/dist/components/brand-icons/grok.d.ts +0 -18
- package/dist/components/brand-icons/grok.d.ts.map +0 -1
- package/dist/components/brand-icons/grok.js +0 -22
- package/dist/components/brand-icons/huggingface.d.ts +0 -18
- package/dist/components/brand-icons/huggingface.d.ts.map +0 -1
- package/dist/components/brand-icons/huggingface.js +0 -22
- package/dist/components/brand-icons/ibm.d.ts +0 -18
- package/dist/components/brand-icons/ibm.d.ts.map +0 -1
- package/dist/components/brand-icons/ibm.js +0 -22
- package/dist/components/brand-icons/inception.d.ts +0 -18
- package/dist/components/brand-icons/inception.d.ts.map +0 -1
- package/dist/components/brand-icons/inception.js +0 -22
- package/dist/components/brand-icons/inclusionai.d.ts +0 -13
- package/dist/components/brand-icons/inclusionai.d.ts.map +0 -1
- package/dist/components/brand-icons/inclusionai.js +0 -18
- package/dist/components/brand-icons/inference.d.ts +0 -18
- package/dist/components/brand-icons/inference.d.ts.map +0 -1
- package/dist/components/brand-icons/inference.js +0 -22
- package/dist/components/brand-icons/intercom.d.ts +0 -18
- package/dist/components/brand-icons/intercom.d.ts.map +0 -1
- package/dist/components/brand-icons/intercom.js +0 -22
- package/dist/components/brand-icons/jira.d.ts +0 -18
- package/dist/components/brand-icons/jira.d.ts.map +0 -1
- package/dist/components/brand-icons/jira.js +0 -25
- package/dist/components/brand-icons/kwaipilot.d.ts +0 -18
- package/dist/components/brand-icons/kwaipilot.d.ts.map +0 -1
- package/dist/components/brand-icons/kwaipilot.js +0 -25
- package/dist/components/brand-icons/linear.d.ts +0 -18
- package/dist/components/brand-icons/linear.d.ts.map +0 -1
- package/dist/components/brand-icons/linear.js +0 -22
- package/dist/components/brand-icons/linux.d.ts +0 -18
- package/dist/components/brand-icons/linux.d.ts.map +0 -1
- package/dist/components/brand-icons/linux.js +0 -25
- package/dist/components/brand-icons/liquid.d.ts +0 -18
- package/dist/components/brand-icons/liquid.d.ts.map +0 -1
- package/dist/components/brand-icons/liquid.js +0 -22
- package/dist/components/brand-icons/longcat.d.ts +0 -18
- package/dist/components/brand-icons/longcat.d.ts.map +0 -1
- package/dist/components/brand-icons/longcat.js +0 -22
- package/dist/components/brand-icons/mattermost.d.ts +0 -18
- package/dist/components/brand-icons/mattermost.d.ts.map +0 -1
- package/dist/components/brand-icons/mattermost.js +0 -22
- package/dist/components/brand-icons/meta.d.ts +0 -18
- package/dist/components/brand-icons/meta.d.ts.map +0 -1
- package/dist/components/brand-icons/meta.js +0 -25
- package/dist/components/brand-icons/microsoft-teams.d.ts +0 -18
- package/dist/components/brand-icons/microsoft-teams.d.ts.map +0 -1
- package/dist/components/brand-icons/microsoft-teams.js +0 -25
- package/dist/components/brand-icons/microsoft.d.ts +0 -18
- package/dist/components/brand-icons/microsoft.d.ts.map +0 -1
- package/dist/components/brand-icons/microsoft.js +0 -22
- package/dist/components/brand-icons/minimax.d.ts +0 -18
- package/dist/components/brand-icons/minimax.d.ts.map +0 -1
- package/dist/components/brand-icons/minimax.js +0 -25
- package/dist/components/brand-icons/mistral.d.ts +0 -18
- package/dist/components/brand-icons/mistral.d.ts.map +0 -1
- package/dist/components/brand-icons/mistral.js +0 -22
- package/dist/components/brand-icons/moonshot.d.ts +0 -18
- package/dist/components/brand-icons/moonshot.d.ts.map +0 -1
- package/dist/components/brand-icons/moonshot.js +0 -22
- package/dist/components/brand-icons/morph.d.ts +0 -18
- package/dist/components/brand-icons/morph.d.ts.map +0 -1
- package/dist/components/brand-icons/morph.js +0 -22
- package/dist/components/brand-icons/n8n.d.ts +0 -18
- package/dist/components/brand-icons/n8n.d.ts.map +0 -1
- package/dist/components/brand-icons/n8n.js +0 -22
- package/dist/components/brand-icons/netlify.d.ts +0 -18
- package/dist/components/brand-icons/netlify.d.ts.map +0 -1
- package/dist/components/brand-icons/netlify.js +0 -22
- package/dist/components/brand-icons/nexagi.d.ts +0 -18
- package/dist/components/brand-icons/nexagi.d.ts.map +0 -1
- package/dist/components/brand-icons/nexagi.js +0 -22
- package/dist/components/brand-icons/notion.d.ts +0 -18
- package/dist/components/brand-icons/notion.d.ts.map +0 -1
- package/dist/components/brand-icons/notion.js +0 -22
- package/dist/components/brand-icons/nousresearch.d.ts +0 -18
- package/dist/components/brand-icons/nousresearch.d.ts.map +0 -1
- package/dist/components/brand-icons/nousresearch.js +0 -22
- package/dist/components/brand-icons/nova.d.ts +0 -18
- package/dist/components/brand-icons/nova.d.ts.map +0 -1
- package/dist/components/brand-icons/nova.js +0 -25
- package/dist/components/brand-icons/nvidia.d.ts +0 -18
- package/dist/components/brand-icons/nvidia.d.ts.map +0 -1
- package/dist/components/brand-icons/nvidia.js +0 -22
- package/dist/components/brand-icons/openai.d.ts +0 -18
- package/dist/components/brand-icons/openai.d.ts.map +0 -1
- package/dist/components/brand-icons/openai.js +0 -22
- package/dist/components/brand-icons/openrouter.d.ts +0 -18
- package/dist/components/brand-icons/openrouter.d.ts.map +0 -1
- package/dist/components/brand-icons/openrouter.js +0 -22
- package/dist/components/brand-icons/paypal.d.ts +0 -18
- package/dist/components/brand-icons/paypal.d.ts.map +0 -1
- package/dist/components/brand-icons/paypal.js +0 -22
- package/dist/components/brand-icons/perceptron.d.ts +0 -18
- package/dist/components/brand-icons/perceptron.d.ts.map +0 -1
- package/dist/components/brand-icons/perceptron.js +0 -22
- package/dist/components/brand-icons/perplexity.d.ts +0 -18
- package/dist/components/brand-icons/perplexity.d.ts.map +0 -1
- package/dist/components/brand-icons/perplexity.js +0 -22
- package/dist/components/brand-icons/poolside.d.ts +0 -18
- package/dist/components/brand-icons/poolside.d.ts.map +0 -1
- package/dist/components/brand-icons/poolside.js +0 -25
- package/dist/components/brand-icons/postgresql.d.ts +0 -18
- package/dist/components/brand-icons/postgresql.d.ts.map +0 -1
- package/dist/components/brand-icons/postgresql.js +0 -22
- package/dist/components/brand-icons/qwen.d.ts +0 -18
- package/dist/components/brand-icons/qwen.d.ts.map +0 -1
- package/dist/components/brand-icons/qwen.js +0 -25
- package/dist/components/brand-icons/reka.d.ts +0 -18
- package/dist/components/brand-icons/reka.d.ts.map +0 -1
- package/dist/components/brand-icons/reka.js +0 -22
- package/dist/components/brand-icons/relace.d.ts +0 -18
- package/dist/components/brand-icons/relace.d.ts.map +0 -1
- package/dist/components/brand-icons/relace.js +0 -22
- package/dist/components/brand-icons/sakana.d.ts +0 -18
- package/dist/components/brand-icons/sakana.d.ts.map +0 -1
- package/dist/components/brand-icons/sakana.js +0 -22
- package/dist/components/brand-icons/sentry.d.ts +0 -18
- package/dist/components/brand-icons/sentry.d.ts.map +0 -1
- package/dist/components/brand-icons/sentry.js +0 -22
- package/dist/components/brand-icons/signal.d.ts +0 -18
- package/dist/components/brand-icons/signal.d.ts.map +0 -1
- package/dist/components/brand-icons/signal.js +0 -22
- package/dist/components/brand-icons/slack.d.ts +0 -18
- package/dist/components/brand-icons/slack.d.ts.map +0 -1
- package/dist/components/brand-icons/slack.js +0 -22
- package/dist/components/brand-icons/spotify.d.ts +0 -18
- package/dist/components/brand-icons/spotify.d.ts.map +0 -1
- package/dist/components/brand-icons/spotify.js +0 -22
- package/dist/components/brand-icons/square.d.ts +0 -18
- package/dist/components/brand-icons/square.d.ts.map +0 -1
- package/dist/components/brand-icons/square.js +0 -22
- package/dist/components/brand-icons/stepfun.d.ts +0 -18
- package/dist/components/brand-icons/stepfun.d.ts.map +0 -1
- package/dist/components/brand-icons/stepfun.js +0 -25
- package/dist/components/brand-icons/stripe.d.ts +0 -18
- package/dist/components/brand-icons/stripe.d.ts.map +0 -1
- package/dist/components/brand-icons/stripe.js +0 -22
- package/dist/components/brand-icons/supabase.d.ts +0 -18
- package/dist/components/brand-icons/supabase.d.ts.map +0 -1
- package/dist/components/brand-icons/supabase.js +0 -25
- package/dist/components/brand-icons/telegram.d.ts +0 -18
- package/dist/components/brand-icons/telegram.d.ts.map +0 -1
- package/dist/components/brand-icons/telegram.js +0 -25
- package/dist/components/brand-icons/tencent.d.ts +0 -18
- package/dist/components/brand-icons/tencent.d.ts.map +0 -1
- package/dist/components/brand-icons/tencent.js +0 -22
- package/dist/components/brand-icons/the-drummer.d.ts +0 -13
- package/dist/components/brand-icons/the-drummer.d.ts.map +0 -1
- package/dist/components/brand-icons/the-drummer.js +0 -18
- package/dist/components/brand-icons/thinkingmachines.d.ts +0 -13
- package/dist/components/brand-icons/thinkingmachines.d.ts.map +0 -1
- package/dist/components/brand-icons/thinkingmachines.js +0 -18
- package/dist/components/brand-icons/todoist.d.ts +0 -18
- package/dist/components/brand-icons/todoist.d.ts.map +0 -1
- package/dist/components/brand-icons/todoist.js +0 -22
- package/dist/components/brand-icons/unbiased.d.ts +0 -13
- package/dist/components/brand-icons/unbiased.d.ts.map +0 -1
- package/dist/components/brand-icons/unbiased.js +0 -18
- package/dist/components/brand-icons/unreal-engine.d.ts +0 -18
- package/dist/components/brand-icons/unreal-engine.d.ts.map +0 -1
- package/dist/components/brand-icons/unreal-engine.js +0 -22
- package/dist/components/brand-icons/upstage.d.ts +0 -18
- package/dist/components/brand-icons/upstage.d.ts.map +0 -1
- package/dist/components/brand-icons/upstage.js +0 -25
- package/dist/components/brand-icons/vercel.d.ts +0 -18
- package/dist/components/brand-icons/vercel.d.ts.map +0 -1
- package/dist/components/brand-icons/vercel.js +0 -22
- package/dist/components/brand-icons/webflow.d.ts +0 -18
- package/dist/components/brand-icons/webflow.d.ts.map +0 -1
- package/dist/components/brand-icons/webflow.js +0 -22
- package/dist/components/brand-icons/whatsapp.d.ts +0 -18
- package/dist/components/brand-icons/whatsapp.d.ts.map +0 -1
- package/dist/components/brand-icons/whatsapp.js +0 -25
- package/dist/components/brand-icons/windows.d.ts +0 -18
- package/dist/components/brand-icons/windows.d.ts.map +0 -1
- package/dist/components/brand-icons/windows.js +0 -22
- package/dist/components/brand-icons/writer.d.ts +0 -13
- package/dist/components/brand-icons/writer.d.ts.map +0 -1
- package/dist/components/brand-icons/writer.js +0 -18
- package/dist/components/brand-icons/xiaomimimo.d.ts +0 -18
- package/dist/components/brand-icons/xiaomimimo.d.ts.map +0 -1
- package/dist/components/brand-icons/xiaomimimo.js +0 -22
- package/dist/components/brand-icons/youtube.d.ts +0 -18
- package/dist/components/brand-icons/youtube.d.ts.map +0 -1
- package/dist/components/brand-icons/youtube.js +0 -22
- package/dist/components/brand-icons/yuanbao.d.ts +0 -18
- package/dist/components/brand-icons/yuanbao.d.ts.map +0 -1
- package/dist/components/brand-icons/yuanbao.js +0 -22
- package/dist/components/brand-icons/zai.d.ts +0 -18
- package/dist/components/brand-icons/zai.d.ts.map +0 -1
- package/dist/components/brand-icons/zai.js +0 -22
- package/dist/components/brand-icons/zapier.d.ts +0 -18
- package/dist/components/brand-icons/zapier.d.ts.map +0 -1
- package/dist/components/brand-icons/zapier.js +0 -22
- package/dist/components/brand-icons.d.ts +0 -90
- package/dist/components/brand-icons.d.ts.map +0 -1
- package/dist/components/brand-icons.js +0 -95
- package/dist/components/empty.d.ts +0 -15
- package/dist/components/empty.d.ts.map +0 -1
- package/dist/components/empty.js +0 -33
- package/dist/internal/object-identity-support.d.ts +0 -6
- package/dist/internal/object-identity-support.d.ts.map +0 -1
- package/dist/internal/object-identity-support.js +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../src/components/dropdown-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAO5D,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,qBAE3D;AAED,iBAAS,kBAAkB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,qBAEnE;AAED,iBAAS,mBAAmB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,qBAErE;AAED,iBAAS,mBAAmB,CAAC,EAC3B,KAAe,EACf,WAAe,EACf,OAAuB,EACvB,IAAe,EACf,UAAc,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,GAC1B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,GAAG;IACtF,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC,qBAoBF;AAED,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,qBAEjE;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,GAAG;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBAYA;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAgB,EAChB,KAAK,EACL,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC,qBAgBA;AAED,iBAAS,mBAAmB,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,EAAE,UAAU,CAAC,GAAG;IACnE,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;CAC1B,
|
|
1
|
+
{"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../src/components/dropdown-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAO5D,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,qBAE3D;AAED,iBAAS,kBAAkB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,qBAEnE;AAED,iBAAS,mBAAmB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,qBAErE;AAED,iBAAS,mBAAmB,CAAC,EAC3B,KAAe,EACf,WAAe,EACf,OAAuB,EACvB,IAAe,EACf,UAAc,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,GAC1B,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,GAAG;IACtF,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC,qBAoBF;AAED,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,qBAEjE;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,GAAG;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBAYA;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAgB,EAChB,KAAK,EACL,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC,qBAgBA;AAED;;;;;GAKG;AACH,iBAAS,mBAAmB,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,EAAE,UAAU,CAAC,GAAG;IACnE,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,qBA6BA;AAED,iBAAS,eAAe,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,WAAW,CAAC,KAAK,qBAErE;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,GAAG;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBAeA;AAED,iBAAS,sBAAsB,CAAC,EAC9B,KAAe,EACf,WAAgB,EAChB,IAAc,EACd,UAAc,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,qBAYlD;AAED,iBAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,KAAK,EACL,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,YAAY,CAAC,KAAK,GAAG;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBAuBA;AAED,iBAAS,sBAAsB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,qBAE3E;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAgB,EAChB,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,GAAG;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBA2BA;AAED,iBAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,qBAQpF;AAED,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAWlF;AAED,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
2
3
|
import { Menu as MenuPrimitive } from "@base-ui/react/menu";
|
|
3
4
|
import { cn } from "../lib/utils.js";
|
|
4
5
|
import { anchoredOverlayMotion } from "../lib/motion.js";
|
|
@@ -26,8 +27,15 @@ function DropdownMenuItem({ className, iconOnly = false, inset, variant = "defau
|
|
|
26
27
|
return (_jsx(MenuPrimitive.Item, { "data-slot": "dropdown-menu-item", "data-icon-only": iconOnly || undefined, "data-inset": inset, "data-variant": variant, className: cn("group/dropdown-menu-item relative flex min-h-touch-target cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 group-data-[density=comfortable]/menu:px-3 group-data-[density=comfortable]/menu:py-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive-soft-foreground data-[variant=destructive]:focus:bg-destructive-soft data-[variant=destructive]:focus:text-destructive-soft-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [@media(hover:hover)_and_(pointer:fine)]:min-h-0 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive-soft-foreground", iconOnly &&
|
|
27
28
|
"size-8 min-w-touch-target shrink-0 justify-center rounded-md p-0 group-data-[density=comfortable]/menu:p-0 [@media(hover:hover)_and_(pointer:fine)]:min-w-0", className), ...props }));
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* A command in a record's or a page's menu: its label first, a decorative icon
|
|
32
|
+
* at the trailing edge. A command that cannot run now is `disabled` and stays
|
|
33
|
+
* in place, greyed, with its `reason` under the label (DESIGN.md "Menus and
|
|
34
|
+
* commands").
|
|
35
|
+
*/
|
|
36
|
+
function DropdownMenuCommand({ icon, children, className, reason, ...props }) {
|
|
37
|
+
const id = React.useId();
|
|
38
|
+
return (_jsxs(DropdownMenuItem, { "aria-labelledby": reason ? `${id}-label` : undefined, "aria-describedby": reason ? `${id}-reason` : undefined, ...props, className: cn(className, "h-auto w-full min-w-0 justify-start gap-3 text-left font-normal whitespace-normal"), children: [_jsxs("span", { className: "grid min-w-0 flex-1 gap-0.5 break-words", children: [_jsx("span", { id: `${id}-label`, children: children }), reason ? (_jsx("span", { className: "text-xs text-muted-foreground", "data-slot": "dropdown-menu-reason", id: `${id}-reason`, children: reason })) : null] }), _jsx("span", { "aria-hidden": "true", className: "flex shrink-0 items-center justify-center", children: icon })] }));
|
|
31
39
|
}
|
|
32
40
|
function DropdownMenuSub({ ...props }) {
|
|
33
41
|
return _jsx(MenuPrimitive.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** The pictures of `@nadicodeai/design-system/assets/empty`, the only ones a first use shows. */
|
|
2
|
+
export declare const EMPTY_ART_NAMES: readonly ["agents", "apps", "billing", "customers", "installations", "library", "mcp", "messages", "partners", "passwords", "plugins", "skills", "tasks"];
|
|
3
|
+
export type EmptyArtName = (typeof EMPTY_ART_NAMES)[number];
|
|
4
|
+
declare const approved: unique symbol;
|
|
5
|
+
/** A picture's address that came from the approved set through `approveEmptyArt`. */
|
|
6
|
+
export type EmptyArt = string & {
|
|
7
|
+
readonly [approved]: true;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* The product's one map of the approved pictures, built from the design
|
|
11
|
+
* system's imports; the bundler of each product decides their addresses.
|
|
12
|
+
*/
|
|
13
|
+
export declare function approveEmptyArt(imported: Record<EmptyArtName, string | {
|
|
14
|
+
src: string;
|
|
15
|
+
}>): Record<EmptyArtName, EmptyArt>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=empty-art.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-art.d.ts","sourceRoot":"","sources":["../../src/components/empty-art.ts"],"names":[],"mappings":"AAIA,iGAAiG;AACjG,eAAO,MAAM,eAAe,2JAclB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,OAAO,CAAC,MAAM,QAAQ,EAAE,OAAO,MAAM,CAAC;AAEtC,qFAAqF;AACrF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9D;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GACvD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAOhC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// No client directive: a server page builds its product's picture map with
|
|
2
|
+
// `approveEmptyArt` while the module loads, and Next.js refuses a call into a
|
|
3
|
+
// client module from the server.
|
|
4
|
+
/** The pictures of `@nadicodeai/design-system/assets/empty`, the only ones a first use shows. */
|
|
5
|
+
export const EMPTY_ART_NAMES = [
|
|
6
|
+
"agents",
|
|
7
|
+
"apps",
|
|
8
|
+
"billing",
|
|
9
|
+
"customers",
|
|
10
|
+
"installations",
|
|
11
|
+
"library",
|
|
12
|
+
"mcp",
|
|
13
|
+
"messages",
|
|
14
|
+
"partners",
|
|
15
|
+
"passwords",
|
|
16
|
+
"plugins",
|
|
17
|
+
"skills",
|
|
18
|
+
"tasks",
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* The product's one map of the approved pictures, built from the design
|
|
22
|
+
* system's imports; the bundler of each product decides their addresses.
|
|
23
|
+
*/
|
|
24
|
+
export function approveEmptyArt(imported) {
|
|
25
|
+
return Object.fromEntries(EMPTY_ART_NAMES.map((name) => {
|
|
26
|
+
const asset = imported[name];
|
|
27
|
+
return [name, typeof asset === "string" ? asset : asset.src];
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { EmptyArt } from "./empty-art.js";
|
|
2
|
+
import { type PageCommand } from "./page-actions.js";
|
|
3
|
+
import { type ResolvedMessage } from "./product-message.js";
|
|
4
|
+
/**
|
|
5
|
+
* What a place with nothing in it says (DESIGN.md "Elevation & Depth", the
|
|
6
|
+
* absence paragraph):
|
|
7
|
+
* - `firstUse`: a collection with no records yet whose kind has a picture in
|
|
8
|
+
* the approved set: the picture, a title, one line saying what will live
|
|
9
|
+
* there, and, when this viewer can add one, the action that adds the first
|
|
10
|
+
* record;
|
|
11
|
+
* - `nothingYet`: a list with no picture of its own, such as invoices, history
|
|
12
|
+
* or a table inside a page: one line;
|
|
13
|
+
* - `noResults`: a search or filter that matches nothing: one line and the way
|
|
14
|
+
* to clear it, with no picture;
|
|
15
|
+
* - `failed`: a read that failed where the content would be: the warning mark
|
|
16
|
+
* and the catalogue's message, with its controls (Retry among them).
|
|
17
|
+
*/
|
|
18
|
+
export type EmptyStateProps = {
|
|
19
|
+
scope?: "page" | "region" | "card";
|
|
20
|
+
} & ({
|
|
21
|
+
kind: "firstUse";
|
|
22
|
+
picture: EmptyArt;
|
|
23
|
+
title: string;
|
|
24
|
+
description: string;
|
|
25
|
+
action?: PageCommand;
|
|
26
|
+
} | {
|
|
27
|
+
kind: "nothingYet";
|
|
28
|
+
message: string;
|
|
29
|
+
} | {
|
|
30
|
+
kind: "noResults";
|
|
31
|
+
message: string;
|
|
32
|
+
clear: PageCommand;
|
|
33
|
+
} | {
|
|
34
|
+
kind: "failed";
|
|
35
|
+
message: ResolvedMessage;
|
|
36
|
+
});
|
|
37
|
+
export declare function EmptyState(props: EmptyStateProps): import("react").JSX.Element;
|
|
38
|
+
//# sourceMappingURL=empty-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../src/components/empty-state.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;CAAE,GAAG,CACnE;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAC/C,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BA6ChD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { AlertTriangleIcon } from "lucide-react";
|
|
4
|
+
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyPicture, EmptyTitle, } from "../internal/empty.js";
|
|
5
|
+
import { PageCommandButton } from "./page-actions.js";
|
|
6
|
+
import { bodyBeyondTitle } from "./product-message.js";
|
|
7
|
+
export function EmptyState(props) {
|
|
8
|
+
const scope = props.scope ?? "region";
|
|
9
|
+
return (_jsxs(Empty, { "data-empty-state": props.kind, scope: scope, children: [_jsxs(EmptyHeader, { children: [props.kind === "firstUse" ? (_jsx(EmptyPicture, { size: scope === "page" ? "page" : "card", src: props.picture })) : null, props.kind === "failed" ? (_jsx(EmptyMedia, { variant: "icon", children: _jsx(AlertTriangleIcon, { "aria-hidden": "true" }) })) : null, props.kind === "firstUse" ? (_jsxs("div", { className: "grid gap-1", children: [_jsx(EmptyTitle, { children: _jsx("h2", { children: props.title }) }), _jsx(EmptyDescription, { children: props.description })] })) : props.kind === "failed" ? (_jsx(FailedRead, { message: props.message })) : (_jsx(EmptyDescription, { children: props.message }))] }), props.kind === "firstUse" && props.action ? (_jsx(EmptyContent, { "data-empty-state-action": true, children: _jsx(PageCommandButton, { command: props.action, variant: "default" }) })) : null, props.kind === "noResults" ? (_jsx(EmptyContent, { "data-empty-state-action": true, children: _jsx(PageCommandButton, { command: props.clear, variant: "outline" }) })) : null, props.kind === "failed" && props.message.actions.length > 0 ? (_jsx(EmptyContent, { "data-empty-state-action": true, children: props.message.actions.map((action) => (_jsx(PageCommandButton, { command: action, variant: "outline" }, action.label))) })) : null] }));
|
|
10
|
+
}
|
|
11
|
+
function FailedRead({ message }) {
|
|
12
|
+
const body = bodyBeyondTitle(message);
|
|
13
|
+
return (_jsxs("div", { className: "grid min-w-0 gap-1", "data-message-code": message.code, role: "alert", children: [_jsx(EmptyTitle, { className: "break-words", children: message.title }), body ? _jsx(EmptyDescription, { className: "break-words", children: body }) : null] }));
|
|
14
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import { Empty } from "
|
|
2
|
+
import { Empty } from "../internal/empty.js";
|
|
3
3
|
export type FeedbackStateStatus = "empty" | "loading" | "saving" | "error" | "permission" | "offline" | "no-results" | "fatal";
|
|
4
4
|
declare function FeedbackState({ status, title, description, icon, actions, children, compact, className, ...props }: Omit<React.ComponentProps<typeof Empty>, "children" | "title"> & {
|
|
5
5
|
status: FeedbackStateStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-state.d.ts","sourceRoot":"","sources":["../../src/components/feedback-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EACL,KAAK,EAMN,MAAM,
|
|
1
|
+
{"version":3,"file":"feedback-state.d.ts","sourceRoot":"","sources":["../../src/components/feedback-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EACL,KAAK,EAMN,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,OAAO,CAAC;AA8DZ,iBAAS,aAAa,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;IAClE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,qBA0CA;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -3,7 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
import { AlertTriangleIcon, BanIcon, CloudOffIcon, InboxIcon, LockKeyholeIcon, SearchXIcon, } from "lucide-react";
|
|
4
4
|
import { cn } from "../lib/utils.js";
|
|
5
5
|
import { WaitingLine } from "./waiting-line.js";
|
|
6
|
-
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, } from "
|
|
6
|
+
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, } from "../internal/empty.js";
|
|
7
7
|
const feedbackStateDefaults = {
|
|
8
8
|
empty: {
|
|
9
9
|
title: "Nothing here yet",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/components/field.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,+BAW1E;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,+BAYnE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,QAAA,MAAM,aAAa;;8EAajB,CAAC;AAEH,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,+BAUlE;AAKD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWzE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,+BAY9E;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,+BAa3E;AAED,iBAAS,cAAc,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,+BAsBA;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;CAClD,
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/components/field.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,+BAW1E;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,+BAYnE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,QAAA,MAAM,aAAa;;8EAajB,CAAC;AAEH,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,+BAUlE;AAKD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWzE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,+BAY9E;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWvE;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,+BAa3E;AAED,iBAAS,cAAc,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,+BAsBA;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;CAClD,sCAwCA;AAED,OAAO,EACL,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,CAAC"}
|
package/dist/components/field.js
CHANGED
|
@@ -59,7 +59,9 @@ function FieldError({ className, children, errors, ...props }) {
|
|
|
59
59
|
if (uniqueErrors?.length == 1) {
|
|
60
60
|
return uniqueErrors[0]?.message;
|
|
61
61
|
}
|
|
62
|
-
return (_jsx("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
|
|
62
|
+
return (_jsx("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
|
|
63
|
+
// eslint-disable-next-line product-message/raw-text -- a field's validation messages come from the form's schema, worded by the product, and stay with their field
|
|
64
|
+
(error) => error?.message && _jsx("li", { children: error.message }, error.message)) }));
|
|
63
65
|
}, [children, errors]);
|
|
64
66
|
if (!content) {
|
|
65
67
|
return null;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { ComponentProps, ReactNode } from "react";
|
|
2
|
+
export type FormDrawerProps = {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onOpenChange: (open: boolean) => void;
|
|
5
|
+
/** Runs once the drawer has finished opening or closing, such as to return focus. */
|
|
6
|
+
onOpenChangeComplete?: (open: boolean) => void;
|
|
7
|
+
/** What the drawer does to which record: "Add a password", "Edit Rossi", "Connect Slack". */
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
description?: ReactNode;
|
|
10
|
+
/** The accessible name of the close control at the top. */
|
|
11
|
+
closeLabel: string;
|
|
12
|
+
/** A `FormDrawerForm`, or a `FormDrawerBody` and `FormDrawerFooter` for a step that is not one form. */
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* The one drawer every product opens to create, edit or connect a record
|
|
17
|
+
* (DESIGN.md "Menus and commands"): from the right, its title and a close
|
|
18
|
+
* control at the top, the fields in a body that scrolls, the actions in a
|
|
19
|
+
* footer that stays in place with the primary rightmost. On a narrow window it
|
|
20
|
+
* keeps its right edge and fills the width. A centred dialog only confirms a
|
|
21
|
+
* consequence; it never holds a form.
|
|
22
|
+
*/
|
|
23
|
+
export declare function FormDrawer({ open, onOpenChange, onOpenChangeComplete, title, description, closeLabel, children, }: FormDrawerProps): import("react").JSX.Element;
|
|
24
|
+
/** The part of the drawer that scrolls between its title and its footer. */
|
|
25
|
+
export declare function FormDrawerBody({ className, ...props }: ComponentProps<"div">): import("react").JSX.Element;
|
|
26
|
+
export type FormDrawerFooterProps = {
|
|
27
|
+
/** Cancel, drawn left of the actions; it closes the drawer. */
|
|
28
|
+
cancel?: {
|
|
29
|
+
label: string;
|
|
30
|
+
disabled?: boolean;
|
|
31
|
+
};
|
|
32
|
+
/** The step's own actions, the primary last so it sits rightmost. */
|
|
33
|
+
children?: ReactNode;
|
|
34
|
+
};
|
|
35
|
+
/** The footer that stays in place under the body: Cancel, then the actions, right-aligned. */
|
|
36
|
+
export declare function FormDrawerFooter({ cancel, children }: FormDrawerFooterProps): import("react").JSX.Element;
|
|
37
|
+
export type FormDrawerSubmit = {
|
|
38
|
+
label: string;
|
|
39
|
+
/** The button's own word while the save runs. */
|
|
40
|
+
pendingLabel?: string;
|
|
41
|
+
/** The save is running: the button says so and holds, and the waiting line follows. */
|
|
42
|
+
pending?: boolean;
|
|
43
|
+
/** Nothing to save yet, or a field still needs an answer. */
|
|
44
|
+
disabled?: boolean;
|
|
45
|
+
destructive?: boolean;
|
|
46
|
+
/** The id of the line that says why the save cannot run yet. */
|
|
47
|
+
describedBy?: string;
|
|
48
|
+
};
|
|
49
|
+
export type FormDrawerFormProps = Omit<ComponentProps<"form">, "children" | "className"> & {
|
|
50
|
+
cancelLabel: string;
|
|
51
|
+
submit: FormDrawerSubmit;
|
|
52
|
+
/** A refusal or a failure of the save, between the body and the footer, where the button is. */
|
|
53
|
+
notice?: ReactNode;
|
|
54
|
+
children: ReactNode;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The drawer's form: the fields in the body, a notice where the save button
|
|
58
|
+
* is, and the footer with Cancel and the save rightmost. Cancel holds while the
|
|
59
|
+
* save runs, so a running save is never left without its drawer.
|
|
60
|
+
*/
|
|
61
|
+
export declare function FormDrawerForm({ cancelLabel, submit, notice, children, ...form }: FormDrawerFormProps): import("react").JSX.Element;
|
|
62
|
+
//# sourceMappingURL=form-drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-drawer.d.ts","sourceRoot":"","sources":["../../src/components/form-drawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBvD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,6FAA6F;IAC7F,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,wGAAwG;IACxG,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,WAAW,EACX,UAAU,EACV,QAAQ,GACT,EAAE,eAAe,+BAgBjB;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,+BAW5E;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,+DAA+D;IAC/D,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/C,qEAAqE;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,qBAAqB,+BAc3E;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,GAAG;IACzF,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC;IACzB,gGAAgG;IAChG,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,MAAM,EACN,MAAM,EACN,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,mBAAmB,+BA+BrB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from "./button.js";
|
|
4
|
+
import { PendingLabel } from "./pending-label.js";
|
|
5
|
+
import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from "./sheet.js";
|
|
6
|
+
import { WaitingLine } from "./waiting-line.js";
|
|
7
|
+
import { cn } from "../lib/utils.js";
|
|
8
|
+
/**
|
|
9
|
+
* The one drawer every product opens to create, edit or connect a record
|
|
10
|
+
* (DESIGN.md "Menus and commands"): from the right, its title and a close
|
|
11
|
+
* control at the top, the fields in a body that scrolls, the actions in a
|
|
12
|
+
* footer that stays in place with the primary rightmost. On a narrow window it
|
|
13
|
+
* keeps its right edge and fills the width. A centred dialog only confirms a
|
|
14
|
+
* consequence; it never holds a form.
|
|
15
|
+
*/
|
|
16
|
+
export function FormDrawer({ open, onOpenChange, onOpenChangeComplete, title, description, closeLabel, children, }) {
|
|
17
|
+
return (_jsx(Sheet, { open: open, onOpenChange: onOpenChange, onOpenChangeComplete: onOpenChangeComplete, children: _jsxs(SheetContent, { className: "max-sm:data-[side=right]:left-nadicode-sm max-sm:data-[side=right]:w-auto", closeLabel: closeLabel, side: "right", children: [_jsxs(SheetHeader, { className: "pr-12", children: [_jsx(SheetTitle, { className: "break-words", children: title }), description ? _jsx(SheetDescription, { children: description }) : null] }), children] }) }));
|
|
18
|
+
}
|
|
19
|
+
/** The part of the drawer that scrolls between its title and its footer. */
|
|
20
|
+
export function FormDrawerBody({ className, ...props }) {
|
|
21
|
+
return (_jsx("div", { "data-slot": "form-drawer-body", className: cn("grid min-h-0 flex-1 grid-cols-[minmax(0,1fr)] content-start gap-4 overflow-y-auto px-nadicode-lg", className), ...props }));
|
|
22
|
+
}
|
|
23
|
+
/** The footer that stays in place under the body: Cancel, then the actions, right-aligned. */
|
|
24
|
+
export function FormDrawerFooter({ cancel, children }) {
|
|
25
|
+
return (_jsxs(SheetFooter, { className: "flex-row flex-wrap items-center justify-end", "data-slot": "form-drawer-footer", children: [cancel ? (_jsx(SheetClose, { disabled: cancel.disabled, render: _jsx(Button, { type: "button", variant: "outline" }), children: cancel.label })) : null, children] }));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The drawer's form: the fields in the body, a notice where the save button
|
|
29
|
+
* is, and the footer with Cancel and the save rightmost. Cancel holds while the
|
|
30
|
+
* save runs, so a running save is never left without its drawer.
|
|
31
|
+
*/
|
|
32
|
+
export function FormDrawerForm({ cancelLabel, submit, notice, children, ...form }) {
|
|
33
|
+
const pending = submit.pending === true;
|
|
34
|
+
return (_jsxs("form", { "aria-busy": pending || undefined, className: "flex min-h-0 flex-1 flex-col", "data-slot": "form-drawer-form", ...form, children: [_jsx(FormDrawerBody, { children: children }), notice ? (_jsx("div", { className: "px-nadicode-lg pt-nadicode-md", "data-slot": "form-drawer-notice", children: notice })) : null, _jsxs(FormDrawerFooter, { cancel: { label: cancelLabel, disabled: pending }, children: [_jsx(Button, { "aria-busy": pending || undefined, "aria-describedby": submit.describedBy, disabled: pending || submit.disabled, type: "submit", variant: submit.destructive ? "destructive" : "default", children: _jsx(PendingLabel, { pending: pending, pendingLabel: submit.pendingLabel ?? submit.label, children: submit.label }) }), pending ? _jsx(WaitingLine, { className: "basis-full", decorative: true }) : null] })] }));
|
|
35
|
+
}
|
|
@@ -10,6 +10,6 @@ function HoverCardTrigger({ ...props }) {
|
|
|
10
10
|
return _jsx(PreviewCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
|
|
11
11
|
}
|
|
12
12
|
function HoverCardContent({ className, side = "bottom", sideOffset = 4, align = "center", alignOffset = 4, ...props }) {
|
|
13
|
-
return (_jsx(PreviewCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: _jsx(PreviewCardPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsx(PreviewCardPrimitive.Popup, { "data-slot": "hover-card-content", className: cn("z-50 w-64 rounded-
|
|
13
|
+
return (_jsx(PreviewCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: _jsx(PreviewCardPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsx(PreviewCardPrimitive.Popup, { "data-slot": "hover-card-content", className: cn("z-50 w-64 rounded-lg border-0 bg-popover p-control-padding-inline text-sm text-popover-foreground nc-elevation-floating outline-hidden", anchoredOverlayMotion, className), ...props }) }) }));
|
|
14
14
|
}
|
|
15
15
|
export { HoverCard, HoverCardTrigger, HoverCardContent };
|
|
@@ -21,7 +21,7 @@ function MenubarTrigger({ className, ...props }) {
|
|
|
21
21
|
return (_jsx(DropdownMenuTrigger, { "data-slot": "menubar-trigger", className: cn("flex min-h-touch-target items-center rounded-md px-1.5 py-[2px] text-sm font-medium outline-hidden select-none hover:bg-muted aria-expanded:bg-muted [@media(hover:hover)_and_(pointer:fine)]:min-h-0", className), ...props }));
|
|
22
22
|
}
|
|
23
23
|
function MenubarContent({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }) {
|
|
24
|
-
return (_jsx(DropdownMenuContent, { "data-slot": "menubar-content", align: align, alignOffset: alignOffset, sideOffset: sideOffset, className: cn("min-w-36 rounded-
|
|
24
|
+
return (_jsx(DropdownMenuContent, { "data-slot": "menubar-content", align: align, alignOffset: alignOffset, sideOffset: sideOffset, className: cn("min-w-36 rounded-lg border-0 nc-glass p-nadicode-xxs text-popover-foreground nc-elevation-floating", className), ...props }));
|
|
25
25
|
}
|
|
26
26
|
function MenubarItem({ className, inset, variant = "default", ...props }) {
|
|
27
27
|
return (_jsx(DropdownMenuItem, { "data-slot": "menubar-item", "data-inset": inset, "data-variant": variant, className: cn("group/menubar-item min-h-touch-target gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive-soft-foreground data-[variant=destructive]:focus:bg-destructive-soft data-[variant=destructive]:focus:text-destructive-soft-foreground data-disabled:opacity-50 [@media(hover:hover)_and_(pointer:fine)]:min-h-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive-soft-foreground!", className), ...props }));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ResolvedMessage } from "./product-message.js";
|
|
2
|
+
export type MessageNoticeTone = "destructive" | "warning" | "info";
|
|
3
|
+
/**
|
|
4
|
+
* A message where it changes the reader's decision (DESIGN.md "Elevation &
|
|
5
|
+
* Depth", the notice paragraph):
|
|
6
|
+
* - `action`: under the control whose write failed, as one passage with its
|
|
7
|
+
* controls beside it;
|
|
8
|
+
* - `section`: at the top of the section it concerns, framed, for a condition
|
|
9
|
+
* that lasts.
|
|
10
|
+
*/
|
|
11
|
+
export type MessageNoticeProps = {
|
|
12
|
+
message: ResolvedMessage;
|
|
13
|
+
placement: "action" | "section";
|
|
14
|
+
tone?: MessageNoticeTone;
|
|
15
|
+
className?: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function MessageNotice({ message, placement, tone, className, }: MessageNoticeProps): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=message-notice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-notice.d.ts","sourceRoot":"","sources":["../../src/components/message-notice.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,IAAoB,EACpB,SAAS,GACV,EAAE,kBAAkB,+BA2CpB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../lib/utils.js";
|
|
4
|
+
import { NoticeBanner } from "./notice-banner.js";
|
|
5
|
+
import { PageCommandButton } from "./page-actions.js";
|
|
6
|
+
import { bodyBeyondTitle } from "./product-message.js";
|
|
7
|
+
function MessageActions({ message }) {
|
|
8
|
+
if (message.actions.length === 0) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return (_jsx("div", { className: "flex flex-wrap items-center gap-2", "data-message-actions": true, children: message.actions.map((action) => (_jsx(PageCommandButton, { command: action, variant: "outline" }, action.label))) }));
|
|
12
|
+
}
|
|
13
|
+
export function MessageNotice({ message, placement, tone = "destructive", className, }) {
|
|
14
|
+
const body = bodyBeyondTitle(message);
|
|
15
|
+
if (placement === "section") {
|
|
16
|
+
return (_jsx(NoticeBanner, { action: message.actions.length > 0 ? _jsx(MessageActions, { message: message }) : undefined, className: className, "data-message-code": message.code, description: body ?? undefined, liveRegion: "polite", title: _jsx("span", { className: "min-w-0 break-words", children: message.title }), tone: tone }));
|
|
17
|
+
}
|
|
18
|
+
return (_jsxs("div", { className: cn("flex min-w-0 flex-col gap-2 text-sm", className), "data-message-code": message.code, "data-message-notice": "action", role: tone === "info" ? "status" : "alert", children: [_jsxs("p", { className: cn("m-0 min-w-0 break-words", tone === "destructive" && "text-destructive", tone === "warning" && "text-warning-soft-foreground", tone === "info" && "text-muted-foreground"), children: [_jsx("span", { className: "block font-medium", children: message.title }), body ? (_jsxs(_Fragment, { children: [" ", _jsx("span", { className: "block", children: body })] })) : null] }), _jsx(MessageActions, { message: message })] }));
|
|
19
|
+
}
|
|
@@ -13,6 +13,11 @@ type ModelMarkProps = Omit<React.ComponentProps<"span">, "children"> & {
|
|
|
13
13
|
*/
|
|
14
14
|
label?: string;
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* A model's maker as LobeHub draws it, in the tile every mark shares, with the
|
|
18
|
+
* model's name beside it when one is given. A maker LobeHub has no mark for
|
|
19
|
+
* keeps its initials and is named in words.
|
|
20
|
+
*/
|
|
16
21
|
declare function ModelMark({ author, name, size, label, className, ...props }: ModelMarkProps): React.JSX.Element;
|
|
17
22
|
export { ModelMark };
|
|
18
23
|
export type { ModelMarkProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-mark.d.ts","sourceRoot":"","sources":["../../src/components/model-mark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"model-mark.d.ts","sourceRoot":"","sources":["../../src/components/model-mark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4F/B,KAAK,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACrE,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA+DF;;;;GAIG;AACH,iBAAS,SAAS,CAAC,EACjB,MAAM,EACN,IAAI,EACJ,IAAsB,EACtB,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,qBAsChB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,83 +1,42 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
2
3
|
import { cn } from "../lib/utils.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
inception: identity(InceptionIcon),
|
|
27
|
-
inclusionai: identity(InclusionAiIcon),
|
|
28
|
-
"inference-net": identity(InferenceIcon),
|
|
29
|
-
kwaipilot: identity(KwaipilotIcon),
|
|
30
|
-
liquid: identity(LiquidIcon),
|
|
31
|
-
mancer: openRouterHuggingFaceFallback(),
|
|
32
|
-
meituan: identity(LongcatIcon),
|
|
33
|
-
meta: identity(MetaIcon),
|
|
34
|
-
"meta-llama": identity(MetaIcon),
|
|
35
|
-
microsoft: identity(MicrosoftIcon),
|
|
36
|
-
minimax: identity(MinimaxIcon),
|
|
37
|
-
mistralai: identity(MistralIcon),
|
|
38
|
-
moonshotai: identity(MoonshotIcon),
|
|
39
|
-
morph: identity(MorphIcon),
|
|
40
|
-
"nex-agi": identity(NexAgiIcon),
|
|
41
|
-
nousresearch: identity(NousResearchIcon),
|
|
42
|
-
nvidia: identity(NvidiaIcon),
|
|
43
|
-
openai: identity(OpenaiIcon),
|
|
44
|
-
openrouter: identity(OpenrouterIcon),
|
|
45
|
-
perceptron: identity(PerceptronIcon),
|
|
46
|
-
perplexity: identity(PerplexityIcon),
|
|
47
|
-
poolside: identity(PoolsideIcon),
|
|
48
|
-
"prism-ml": openRouterHuggingFaceFallback(),
|
|
49
|
-
qwen: identity(QwenIcon),
|
|
50
|
-
rekaai: identity(RekaIcon),
|
|
51
|
-
relace: identity(RelaceIcon),
|
|
52
|
-
sakana: identity(SakanaIcon),
|
|
53
|
-
sao10k: openRouterHuggingFaceFallback(),
|
|
54
|
-
stepfun: identity(StepfunIcon),
|
|
55
|
-
tencent: identity(TencentIcon),
|
|
56
|
-
thedrummer: identity(TheDrummerIcon),
|
|
57
|
-
thinkingmachines: identity(ThinkingMachinesIcon),
|
|
58
|
-
unbiased: identity(UnbiasedIcon),
|
|
59
|
-
undi95: openRouterHuggingFaceFallback(),
|
|
60
|
-
upstage: identity(UpstageIcon),
|
|
61
|
-
writer: identity(WriterIcon),
|
|
62
|
-
"x-ai": identity(GrokIcon),
|
|
63
|
-
xiaomi: identity(XiaomiMimoIcon),
|
|
64
|
-
"z-ai": identity(ZaiIcon),
|
|
4
|
+
/**
|
|
5
|
+
* The one table of names: an OpenRouter author slug whose maker LobeHub's icon
|
|
6
|
+
* set files under another name. Every other author is looked up by its slug.
|
|
7
|
+
*/
|
|
8
|
+
const LOBEHUB_NAMES = {
|
|
9
|
+
"aion-labs": "aionlabs",
|
|
10
|
+
amazon: "nova",
|
|
11
|
+
anthropic: "claude",
|
|
12
|
+
"arcee-ai": "arcee",
|
|
13
|
+
"bytedance-seed": "bytedance",
|
|
14
|
+
cognitivecomputations: "dolphin",
|
|
15
|
+
"dots-studio": "dotsstudio",
|
|
16
|
+
google: "gemini",
|
|
17
|
+
"ibm-granite": "ibm",
|
|
18
|
+
"inference-net": "inference",
|
|
19
|
+
meituan: "longcat",
|
|
20
|
+
"meta-llama": "meta",
|
|
21
|
+
mistralai: "mistral",
|
|
22
|
+
moonshotai: "moonshot",
|
|
23
|
+
rekaai: "reka",
|
|
24
|
+
"x-ai": "grok",
|
|
25
|
+
xiaomi: "xiaomimimo",
|
|
26
|
+
"z-ai": "zai",
|
|
65
27
|
};
|
|
28
|
+
/** The shape of every file name in LobeHub's set, without its variant suffix. */
|
|
29
|
+
const LOBEHUB_NAME = /^[a-z0-9]+$/;
|
|
66
30
|
const MODEL_MARK_SIZE = 24;
|
|
67
31
|
/** The glyph's share of the tile, the ratio the boards' generator derived. */
|
|
68
32
|
const MODEL_MARK_GLYPH_RATIO = 0.62;
|
|
69
|
-
/**
|
|
70
|
-
* Whether a usage read's author slug names a maker this package ships. `hasOwn`
|
|
71
|
-
* and not a bare index: the slug is external input, so an author named
|
|
72
|
-
* `constructor` or `toString` must reach the neutral tile rather than an
|
|
73
|
-
* inherited method.
|
|
74
|
-
*/
|
|
75
|
-
function isModelAuthor(slug) {
|
|
76
|
-
return Object.hasOwn(MODEL_AUTHOR_MARKS, slug);
|
|
77
|
-
}
|
|
78
33
|
function normalizedAuthor(author) {
|
|
79
34
|
return author.trim().toLowerCase().replace(/^~+/, "");
|
|
80
35
|
}
|
|
36
|
+
function lobehubName(slug) {
|
|
37
|
+
const name = Object.hasOwn(LOBEHUB_NAMES, slug) ? LOBEHUB_NAMES[slug] : slug;
|
|
38
|
+
return name && LOBEHUB_NAME.test(name) ? name : undefined;
|
|
39
|
+
}
|
|
81
40
|
function authorInitials(author) {
|
|
82
41
|
const words = author.split(/[^a-z0-9]+/).filter(Boolean);
|
|
83
42
|
return (words
|
|
@@ -86,10 +45,55 @@ function authorInitials(author) {
|
|
|
86
45
|
.join("")
|
|
87
46
|
.toUpperCase() || "?");
|
|
88
47
|
}
|
|
48
|
+
/*
|
|
49
|
+
* The UI build writes every mark of LobeHub's set into `dist/model-marks/`,
|
|
50
|
+
* one module each, so the bundler splits them and a page fetches only the
|
|
51
|
+
* marks it draws. The server waits for the module, and the browser keeps the
|
|
52
|
+
* server's mark while it hydrates. `use` remembers a promise it has seen
|
|
53
|
+
* settle, so a mark drawn again renders at once.
|
|
54
|
+
*/
|
|
55
|
+
const marks = new Map();
|
|
56
|
+
function makerMark(name) {
|
|
57
|
+
let mark = marks.get(name);
|
|
58
|
+
if (!mark) {
|
|
59
|
+
mark = import(`../model-marks/${name}-color.js`)
|
|
60
|
+
.catch(() => import(`../model-marks/${name}.js`))
|
|
61
|
+
.then((module) => module.default, () => null);
|
|
62
|
+
marks.set(name, mark);
|
|
63
|
+
}
|
|
64
|
+
return mark;
|
|
65
|
+
}
|
|
66
|
+
/** The artwork's ids, scoped to one drawing, so two marks on a page never share a gradient. */
|
|
67
|
+
function scopedIds(svg, scope) {
|
|
68
|
+
let scoped = svg;
|
|
69
|
+
for (const [, id] of svg.matchAll(/\sid="([^"]+)"/g)) {
|
|
70
|
+
scoped = scoped
|
|
71
|
+
.replaceAll(`id="${id}"`, `id="${scope}-${id}"`)
|
|
72
|
+
.replaceAll(`#${id})`, `#${scope}-${id})`)
|
|
73
|
+
.replaceAll(`#${id}"`, `#${scope}-${id}"`);
|
|
74
|
+
}
|
|
75
|
+
return scoped;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The tile and the name. `svg` is the maker's mark, `null` when LobeHub has
|
|
79
|
+
* none, and `undefined` while it loads, when the tile stays empty at its size.
|
|
80
|
+
*/
|
|
81
|
+
function MarkReading({ author, slug, name, size, svg, }) {
|
|
82
|
+
const scope = React.useId().replace(/[^\w]/g, "");
|
|
83
|
+
const glyph = Math.round(size * MODEL_MARK_GLYPH_RATIO);
|
|
84
|
+
return (_jsxs(_Fragment, { children: [_jsx("span", { "data-slot": "model-mark-tile", "aria-hidden": "true", className: "inline-flex shrink-0 items-center justify-center rounded-md border border-border bg-background text-foreground", style: { width: size, height: size }, children: svg ? (_jsx("span", { className: "inline-flex *:size-full", dangerouslySetInnerHTML: { __html: scopedIds(svg, scope) }, "data-slot": "model-mark-glyph", style: { width: glyph, height: glyph } })) : svg === null ? (_jsx("span", { className: "font-semibold leading-none text-muted-foreground", "data-slot": "model-author-monogram", style: { fontSize: Math.max(8, Math.round(size * 0.32)) }, children: authorInitials(slug) })) : null }), name ? (_jsxs("span", { className: "min-w-0 truncate", children: [_jsx("span", { className: "font-medium", children: name }), svg === null ? (_jsxs(_Fragment, { children: [" ", _jsx("span", { className: "text-xs text-muted-foreground", children: author })] })) : null] })) : null] }));
|
|
85
|
+
}
|
|
86
|
+
function LoadedReading({ mark, ...reading }) {
|
|
87
|
+
return _jsx(MarkReading, { ...reading, svg: React.use(makerMark(mark)) });
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* A model's maker as LobeHub draws it, in the tile every mark shares, with the
|
|
91
|
+
* model's name beside it when one is given. A maker LobeHub has no mark for
|
|
92
|
+
* keeps its initials and is named in words.
|
|
93
|
+
*/
|
|
89
94
|
function ModelMark({ author, name, size = MODEL_MARK_SIZE, label, className, ...props }) {
|
|
90
95
|
const slug = normalizedAuthor(author);
|
|
91
|
-
const
|
|
92
|
-
const Mark = definition?.Mark;
|
|
96
|
+
const mark = lobehubName(slug);
|
|
93
97
|
// A name reaches the root from `label` or from the caller's own aria
|
|
94
98
|
// attributes; only the `label` prop also states the role, because a name
|
|
95
99
|
// alone on a generic element is not an accessible name. A mark with no name
|
|
@@ -101,6 +105,7 @@ function ModelMark({ author, name, size = MODEL_MARK_SIZE, label, className, ...
|
|
|
101
105
|
: label?.trim()
|
|
102
106
|
? { role: "img", "aria-label": label }
|
|
103
107
|
: {};
|
|
104
|
-
|
|
108
|
+
const reading = { author, slug, name, size };
|
|
109
|
+
return (_jsx("span", { "data-slot": "model-mark", "data-author": author, "data-resolved-author": slug, "data-maker": mark, className: cn("inline-flex min-w-0 max-w-full items-center gap-1.5", className), ...props, ...labelling, children: mark ? (_jsx(React.Suspense, { fallback: _jsx(MarkReading, { ...reading, svg: undefined }), children: _jsx(LoadedReading, { ...reading, mark: mark }) })) : (_jsx(MarkReading, { ...reading, svg: null })) }));
|
|
105
110
|
}
|
|
106
111
|
export { ModelMark };
|