@kitn.ai/ui 0.26.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -6
- package/bin/mcp.js +16 -3
- package/bin/route.js +23 -0
- package/bin/route.test.js +58 -0
- package/dist/{elements/chunks/Icon--Y8vsFal.js → Icon-DObhsRtm.js} +1 -1
- package/dist/action-icons-CcgNN2oT.js +1 -0
- package/dist/arrow-down-CjRU3JgV.js +1 -0
- package/dist/arrow-left-Bnpb1UEW.js +1 -0
- package/dist/artifact-Bwt7OgcR.js +1 -0
- package/dist/assets/dev-5XzXYR21.js +91 -0
- package/dist/attachments-Qr4kg-2b.js +1 -0
- package/dist/{elements/chunks/audio-visualizer-D7lB6mvR.js → audio-visualizer-DToYdfSc.js} +1 -1
- package/dist/badge-CdEu_jn2.js +1 -0
- package/dist/bash-InADTalH.js +1 -6
- package/dist/bell-DQAAOpDz.js +1 -0
- package/dist/{elements/chunks/button-flUbeufF.js → button-DkuOnGLy.js} +1 -1
- package/dist/card-renderer-Jx70m6_l.js +1 -0
- package/dist/card-routing-0YidER_3.js +1 -0
- package/dist/check-njkVdZu2.js +1 -0
- package/dist/checkbox-D7iRB3nL.js +1 -0
- package/dist/checkbox-group-B2_rpoPM.js +1 -0
- package/dist/chevron-down-B72s6PXR.js +1 -0
- package/dist/chevron-right-BatuHzUm.js +1 -0
- package/dist/choice-card-m0BYqqOK.js +1 -0
- package/dist/circle-check-B62pODB3.js +1 -0
- package/dist/circle-x-BPG0iPst.js +1 -0
- package/dist/circle-zx0ByzY9.js +1 -0
- package/dist/{elements/chunks/cn-CU7UAWzk.js → cn-DN5AWfiS.js} +1 -1
- package/dist/code-block-ClMLKb7C.js +1 -0
- package/dist/{elements/chunks/collapsible-BzbXpPzr.js → collapsible-B4DlWicL.js} +1 -1
- package/dist/components/attachment-types.d.ts +7 -0
- package/dist/components/audio-visualizer/fit-scale.d.ts +1 -1
- package/dist/components/card-renderer.d.ts +13 -0
- package/dist/components/card.d.ts +4 -0
- package/dist/components/chat-thread.d.ts +135 -2
- package/dist/components/conversation-item.d.ts +35 -7
- package/dist/components/conversation-list.d.ts +17 -5
- package/dist/components/conversation-panel.d.ts +29 -0
- package/dist/components/form-widgets.d.ts +67 -2
- package/dist/components/form.d.ts +48 -1
- package/dist/components/home-panel.d.ts +34 -0
- package/dist/components/message.d.ts +25 -3
- package/dist/components/reasoning.d.ts +6 -0
- package/dist/components/scroll-button.d.ts +11 -0
- package/dist/components/thread.d.ts +5 -0
- package/dist/components/tool-types.d.ts +9 -0
- package/dist/components/widget-tab-bar.d.ts +16 -0
- package/dist/composer-sQ0HcvyG.js +106 -0
- package/dist/confirm-card-rQWDQsnC.js +1 -0
- package/dist/construct-cli.es.js +1337 -0
- package/dist/{elements/chunks/context-VLIL3sJ-.js → context-0kg4ZX1J.js} +1 -1
- package/dist/controllable-CnGpMF6r.js +1 -0
- package/dist/conversation-item-BxwQLaFJ.js +1 -0
- package/dist/conversation-list-BCfGN1JU.js +1 -0
- package/dist/copy-n9u9rqpi.js +1 -0
- package/dist/core-AYMC6_lb.js +12 -5874
- package/dist/{create-tween-BFT6c-Y8.js → create-tween-C-q-JCM-.js} +1 -1
- package/dist/{create-tween-CJNlzoaO.js → create-tween-CRrJXxBd.js} +1 -1
- package/dist/{create-tween-CQED4T0g.js → create-tween-DZ3RRDHD.js} +1 -1
- package/dist/{elements/chunks/create-tween-c4Z8TDYz.js → create-tween-uPkArjIG.js} +2 -2
- package/dist/css-M7EaDHN_.js +1 -6
- package/dist/custom-elements.json +1433 -202
- package/dist/default-input-CaMrJkgH.js +1 -0
- package/dist/define-By-uL588.js +1 -0
- package/dist/define.d.ts +4 -0
- package/dist/define.js +510 -0
- package/dist/define.server.d.ts +5 -0
- package/dist/define.server.js +506 -0
- package/dist/{elements/chunks/disclosure-CcNbyLy0.js → disclosure-WUImBbDv.js} +1 -1
- package/dist/{elements/chunks/dropdown-BgWTthUx.js → dropdown-wZVeJOMd.js} +1 -1
- package/dist/elements/agent-card.js +1 -1
- package/dist/elements/artifact.js +1 -1
- package/dist/elements/attachments.js +1 -1
- package/dist/elements/audio-visualizer.js +1 -1
- package/dist/elements/autoloader.js +1 -1
- package/dist/elements/avatar.js +1 -1
- package/dist/elements/badge.js +1 -1
- package/dist/elements/button.js +1 -1
- package/dist/elements/card.js +1 -1
- package/dist/elements/cards.js +1 -1
- package/dist/elements/chain-of-thought.js +1 -1
- package/dist/elements/chat-scope-picker.js +1 -1
- package/dist/elements/chat-workspace.js +1 -1
- package/dist/elements/chat.js +1 -1
- package/dist/elements/checkbox-group.d.ts +1 -0
- package/dist/elements/checkbox-group.js +1 -0
- package/dist/elements/checkbox.d.ts +1 -0
- package/dist/elements/checkbox.js +1 -0
- package/dist/elements/checkpoint.js +1 -1
- package/dist/elements/choice.js +1 -1
- package/dist/elements/coachmark.js +1 -1
- package/dist/elements/code-block.js +1 -1
- package/dist/elements/command.js +1 -1
- package/dist/elements/compare.js +1 -1
- package/dist/elements/composer.js +1 -1
- package/dist/elements/confirm-card.js +1 -1
- package/dist/elements/context-meter.js +1 -1
- package/dist/elements/conversation-item.js +1 -1
- package/dist/elements/conversation-list.js +1 -1
- package/dist/elements/define-entry.d.ts +12 -0
- package/dist/elements/dialog.js +1 -1
- package/dist/elements/dock.js +102 -8
- package/dist/elements/dropdown.js +1 -1
- package/dist/elements/editable-label.js +1 -1
- package/dist/elements/element-data-types.d.ts +37 -0
- package/dist/elements/embed.js +1 -1
- package/dist/elements/empty.js +1 -1
- package/dist/elements/feedback-bar.js +1 -1
- package/dist/elements/file-tree.js +1 -1
- package/dist/elements/file-upload.js +1 -1
- package/dist/elements/form.js +1 -1
- package/dist/elements/hover-card.js +1 -1
- package/dist/elements/icon.js +1 -1
- package/dist/elements/image.js +1 -1
- package/dist/elements/input.js +1 -1
- package/dist/elements/kbd.js +1 -1
- package/dist/elements/link-preview.js +1 -1
- package/dist/elements/loader.js +1 -1
- package/dist/elements/markdown.js +1 -1
- package/dist/elements/menu.js +1 -1
- package/dist/elements/message-skills.js +1 -1
- package/dist/elements/message.js +1 -1
- package/dist/elements/model-switcher.js +1 -1
- package/dist/elements/nav.js +1 -1
- package/dist/elements/notice.js +1 -1
- package/dist/elements/pane-grid.d.ts +1 -0
- package/dist/elements/pane-grid.js +1 -0
- package/dist/elements/pane-group.js +1 -1
- package/dist/elements/pane.js +1 -1
- package/dist/elements/popover.js +1 -1
- package/dist/elements/progress-bar.js +1 -1
- package/dist/elements/prompt-dock.js +1 -1
- package/dist/elements/prompt-input.js +1 -1
- package/dist/elements/prompt-suggestions.js +1 -1
- package/dist/elements/radio-group.d.ts +1 -0
- package/dist/elements/radio-group.js +1 -0
- package/dist/elements/reasoning.js +1 -1
- package/dist/elements/remote.js +1 -1
- package/dist/elements/resizable.js +1 -1
- package/dist/elements/response-stream.js +2 -2
- package/dist/elements/screen.js +1 -1
- package/dist/elements/scroll-area.js +1 -1
- package/dist/elements/scroll-button.js +1 -1
- package/dist/elements/search.js +1 -1
- package/dist/elements/segmented.js +1 -1
- package/dist/elements/select.d.ts +1 -0
- package/dist/elements/select.js +1 -0
- package/dist/elements/separator.js +1 -1
- package/dist/elements/setting-item.js +1 -1
- package/dist/elements/settings-group.js +1 -1
- package/dist/elements/skeleton.js +1 -1
- package/dist/elements/slider.d.ts +1 -0
- package/dist/elements/slider.js +1 -0
- package/dist/elements/slots.d.ts +1 -1
- package/dist/elements/source.js +1 -1
- package/dist/elements/status.js +1 -1
- package/dist/elements/switch.js +1 -1
- package/dist/elements/tabs.js +1 -1
- package/dist/elements/tasks.js +1 -1
- package/dist/elements/text-shimmer.js +1 -1
- package/dist/elements/thinking-bar.js +1 -1
- package/dist/elements/thread.js +1 -1
- package/dist/elements/toast.js +1 -1
- package/dist/elements/tool.js +1 -1
- package/dist/elements/tooltip.js +1 -1
- package/dist/elements/voice-input.js +1 -1
- package/dist/elements/voice-output.js +1 -1
- package/dist/elements.d.ts +380 -26
- package/dist/{elements/chunks/ellipsis-7gU33mL2.js → ellipsis-CbOpJnU3.js} +1 -1
- package/dist/embed-CrfjkbUG.js +1 -0
- package/dist/engine-javascript-vq0WuIJl.js +14 -2516
- package/dist/{elements/chunks/external-link-CSOEsNlx.js → external-link-ByXAwBBQ.js} +1 -1
- package/dist/file-text-DMib2qwt.js +1 -0
- package/dist/{elements/chunks/file-tree-zvB2i7P9.js → file-tree-CJqM2aP7.js} +1 -1
- package/dist/folder-_BAb929C.js +1 -0
- package/dist/form-DSZgZQZk.js +1 -0
- package/dist/github-dark-dimmed-DUshB20C.js +1 -4
- package/dist/github-light-JYsPkUQd.js +1 -4
- package/dist/hover-card-BQbul9eq.js +1 -0
- package/dist/html-CPZ3oZQ7.js +1 -10
- package/dist/icon-CdcfRhYI.js +1 -0
- package/dist/{elements/chunks/index-BCRhi84a.js → index-xu_pdcPi.js} +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +7474 -5857
- package/dist/index.server.js +5965 -4762
- package/dist/info-DsFjGuI_.js +1 -0
- package/dist/input-DKbmkMos.js +1 -0
- package/dist/javascript-C25yR2R2.js +1 -6
- package/dist/json-DxJze_jm.js +1 -6
- package/dist/kai.es.js +1 -1
- package/dist/kbd-PvdGhX4s.js +1 -0
- package/dist/{elements/chunks/link-preview-OQ9IEq0f.js → link-preview-DbM1866N.js} +1 -1
- package/dist/link-zF8PzWfF.js +1 -0
- package/dist/loader-BM4CEz4G.js +1 -0
- package/dist/{elements/chunks/markdown-DgBFaGAz.js → markdown-LMvmAyBk.js} +7 -7
- package/dist/mcp.es.js +1361 -81
- package/dist/message-BSsgvHvf.js +1 -0
- package/dist/message-BYZECyek.js +1 -0
- package/dist/message-circle-DruwObfX.js +1 -0
- package/dist/message-square-BG6q6mlm.js +1 -0
- package/dist/{elements/chunks/minimize-2-DPIUKTrT.js → minimize-2-BQRoBV1V.js} +1 -1
- package/dist/{elements/chunks/model-switcher-DsT8tFB0.js → model-switcher-CMpCOYcB.js} +1 -1
- package/dist/{elements/chunks/overlay-DuiwdXjm.js → overlay-Cb-MkyDa.js} +1 -1
- package/dist/panel-right-i8warFxT.js +1 -0
- package/dist/paperclip-ByY3UVO6.js +1 -0
- package/dist/play-BvKKq3fX.js +1 -0
- package/dist/primitives/card-data-types.d.ts +49 -0
- package/dist/primitives/card-routing.d.ts +1 -33
- package/dist/primitives/card-validate.d.ts +2 -2
- package/dist/primitives/chat-config.d.ts +29 -2
- package/dist/primitives/conversation-store.d.ts +54 -0
- package/dist/primitives/field-mask.d.ts +96 -0
- package/dist/primitives/field-semantics.d.ts +36 -0
- package/dist/primitives/input-mask.d.ts +46 -0
- package/dist/primitives/url-scheme-policy.d.ts +34 -0
- package/dist/primitives/use-resize-observer.d.ts +2 -2
- package/dist/progress-bar-jVAHvMUf.js +1 -0
- package/dist/prompt-suggestion-CD-qtNgC.js +1 -0
- package/dist/radio-BsoBMhkF.js +1 -0
- package/dist/react/index.d.ts +586 -19
- package/dist/react.js +223 -187
- package/dist/reasoning-4kBPtlTx.js +1 -0
- package/dist/register-impl-B1hLkrI8.js +424 -0
- package/dist/{elements/chunks/resizable-D181b4fM.js → resizable-uPmY9VY-.js} +1 -1
- package/dist/rotate-ccw-B2xn93py.js +1 -0
- package/dist/rotate-cw-CMVLoCyH.js +1 -0
- package/dist/schemas/form.schema.json +21 -1
- package/dist/schemas/tool-defs.d.ts +11 -1
- package/dist/schemas.js +81 -81
- package/dist/scroll-area-BqLUo8ZZ.js +1 -0
- package/dist/scroll-button-DslXiJyL.js +1 -0
- package/dist/select-2cLRtPGT.js +1 -0
- package/dist/{elements/chunks/separator-CeJHQqLW.js → separator-BWQtNJcM.js} +1 -1
- package/dist/{elements/chunks/settings-CqaHgJF9.js → settings-BBR63jLg.js} +1 -1
- package/dist/{elements/chunks/settings-group-CjqjLCOn.js → settings-group-B2ciy-Iw.js} +1 -1
- package/dist/{elements/chunks/skeleton-D8akBnKS.js → skeleton-CkHI-HgC.js} +1 -1
- package/dist/slider-DDR9U-i0.js +1 -0
- package/dist/{solid-BtdqNZI7.js → solid-BzCFdL25.js} +9771 -7594
- package/dist/{solid-CnavwBye.js → solid-DruVOXnf.js} +7893 -6183
- package/dist/solid.d.ts +16 -2
- package/dist/solid.js +256 -243
- package/dist/solid.server.js +256 -243
- package/dist/source-GEnFF528.js +1 -0
- package/dist/star-CilHq8GP.js +1 -0
- package/dist/state/index.d.ts +1 -1
- package/dist/state/mock.d.ts +32 -2
- package/dist/state.js +133 -108
- package/dist/store-Ciyk6eZG.js +1 -0
- package/dist/svelte--5p79yCD.js +1 -15
- package/dist/switch-KkeQIbuH.js +1 -0
- package/dist/tasks-card-BrN4bggJ.js +1 -0
- package/dist/text-shimmer-Dcj1MHuq.js +1 -0
- package/dist/textarea-Dpvbngbg.js +1 -0
- package/dist/theme.tokens.css +110 -13
- package/dist/{elements/chunks/thumbs-up-DX2Ijk3H.js → thumbs-up-CsT9Wzb9.js} +1 -1
- package/dist/toast-store-tgK6MuMv.js +1 -0
- package/dist/{elements/chunks/tool-DKQ2D1DP.js → tool-DzUjIBT8.js} +1 -1
- package/dist/{elements/chunks/tooltip-B0G99y8w.js → tooltip-Bkkg_4t0.js} +1 -1
- package/dist/trash-2-jBKxjGGQ.js +1 -0
- package/dist/{elements/chunks/triangle-alert-F9cyUEyy.js → triangle-alert-DlQ68ppf.js} +1 -1
- package/dist/tsx-B8rCNbgL.js +1 -6
- package/dist/types.d.ts +48 -3
- package/dist/typescript-RycA9KXf.js +1 -6
- package/dist/ui/checkbox-group.d.ts +83 -0
- package/dist/ui/checkbox.d.ts +40 -0
- package/dist/ui/dock.d.ts +51 -0
- package/dist/ui/icon.d.ts +3 -0
- package/dist/ui/input.d.ts +48 -2
- package/dist/ui/radio.d.ts +85 -0
- package/dist/ui/select.d.ts +71 -0
- package/dist/ui/slider.d.ts +65 -0
- package/dist/ui/switch.d.ts +9 -2
- package/dist/upload-TcAHXv9W.js +1 -0
- package/dist/url-scheme-policy-DR5DgvkM.js +1 -0
- package/dist/use-card-resolution-DaZqAdWf.js +1 -0
- package/dist/{elements/chunks/variant-aurora-qt6Zct8M.js → variant-aurora-BhLuYxJR.js} +1 -1
- package/dist/{variant-aurora-B8II3-I1.js → variant-aurora-CNmfHhcx.js} +2 -2
- package/dist/{variant-aurora-CMNWOSJR.js → variant-aurora-D6GsdTPA.js} +2 -2
- package/dist/{variant-aurora-CcuDMWwQ.js → variant-aurora-DbW_OWL2.js} +1 -1
- package/dist/{elements/chunks/variant-custom-tJp22_BQ.js → variant-custom-BRvaNHSi.js} +1 -1
- package/dist/{variant-custom-L16JLLZy.js → variant-custom-BvYHR62b.js} +1 -1
- package/dist/{variant-custom-BdvYC7af.js → variant-custom-DMTrEO5w.js} +2 -2
- package/dist/{variant-custom-C714mqKl.js → variant-custom-DV2x254s.js} +2 -2
- package/dist/{variant-wave-ecwykeyL.js → variant-wave-BNMGrDfj.js} +2 -2
- package/dist/{variant-wave-2S4La2Ka.js → variant-wave-BpDd8t3Z.js} +1 -1
- package/dist/{variant-wave-D7ruiA1W.js → variant-wave-CyBueXj9.js} +2 -2
- package/dist/{elements/chunks/variant-wave-CaQ5ti39.js → variant-wave-sp-qwsdI.js} +1 -1
- package/dist/vue-BmIZj4XD.js +1 -33
- package/dist/x-Z5UntkIJ.js +1 -0
- package/frameworks/react/index.tsx +210 -22
- package/llms-full.txt +1184 -22
- package/llms.txt +6 -3
- package/package.json +17 -4
- package/src/agent-tooling/README.md +192 -0
- package/src/agent-tooling/catalog/invariants.ts +3 -3
- package/src/agent-tooling/catalog/surfaces.ts +72 -0
- package/src/agent-tooling/construct/cli-entry.ts +8 -0
- package/src/agent-tooling/construct/cli.ts +147 -0
- package/src/agent-tooling/construct/codegen.ts +1635 -0
- package/src/agent-tooling/construct/construct.v1.schema.json +319 -0
- package/src/agent-tooling/construct/dev.ts +148 -0
- package/src/agent-tooling/construct/fixtures/demo-widget.construct.json +7 -0
- package/src/agent-tooling/construct/fixtures/ops-console.construct.json +44 -0
- package/src/agent-tooling/construct/fixtures/owner-widget.construct.json +32 -0
- package/src/agent-tooling/construct/schema.ts +452 -0
- package/src/agent-tooling/mcp/server.ts +2 -1
- package/src/agent-tooling/mcp/tools/construct.ts +130 -0
- package/src/agent-tooling/mcp/tools/debug.ts +126 -4
- package/src/agent-tooling/mcp/tools/reference.ts +104 -3
- package/src/agent-tooling/recipes/composed-thread.ts +714 -0
- package/src/agent-tooling/recipes/index.ts +22 -0
- package/src/agent-tooling/recipes/types.ts +32 -0
- package/src/agent-tooling/registry.ts +5 -0
- package/src/components/attachment-types.ts +7 -0
- package/src/components/audio-visualizer/fit-scale.ts +1 -1
- package/src/components/card-renderer.tsx +39 -8
- package/src/components/card.tsx +10 -2
- package/src/components/chat-scope-picker.tsx +2 -2
- package/src/components/chat-thread.tsx +602 -43
- package/src/components/choice-card.tsx +102 -37
- package/src/components/coachmark.tsx +1 -1
- package/src/components/code-block.tsx +2 -2
- package/src/components/composer.tsx +89 -15
- package/src/components/confirm-card.tsx +20 -4
- package/src/components/conversation-item.tsx +56 -9
- package/src/components/conversation-list.tsx +25 -10
- package/src/components/conversation-panel.tsx +118 -0
- package/src/components/empty.tsx +14 -3
- package/src/components/file-tree.tsx +5 -1
- package/src/components/form-widgets.tsx +257 -195
- package/src/components/form.tsx +297 -9
- package/src/components/home-panel.tsx +159 -0
- package/src/components/loader.tsx +12 -5
- package/src/components/message-skills.tsx +1 -1
- package/src/components/message.tsx +71 -11
- package/src/components/prompt-input.tsx +7 -1
- package/src/components/prompt-suggestion.tsx +4 -1
- package/src/components/reasoning.tsx +30 -3
- package/src/components/response-compare.tsx +2 -2
- package/src/components/scroll-button.tsx +56 -4
- package/src/components/source.tsx +6 -1
- package/src/components/tasks-card.tsx +58 -16
- package/src/components/thread.tsx +10 -1
- package/src/components/toast.tsx +1 -1
- package/src/components/tool-types.ts +9 -0
- package/src/components/widget-tab-bar.tsx +73 -0
- package/src/elements/attachments.tsx +3 -1
- package/src/elements/chat-workspace.tsx +1 -1
- package/src/elements/chat.tsx +115 -5
- package/src/elements/checkbox-group.tsx +164 -0
- package/src/elements/checkbox.tsx +134 -0
- package/src/elements/compiled.css +1 -1
- package/src/elements/composer.tsx +12 -1
- package/src/elements/conversation-item.tsx +62 -22
- package/src/elements/conversation-list.tsx +2 -2
- package/src/elements/define-entry.ts +12 -0
- package/src/elements/dock.tsx +11 -0
- package/src/elements/element-data-types.ts +40 -0
- package/src/elements/element-manifest.json +24 -0
- package/src/elements/element-meta.json +767 -34
- package/src/elements/element-nonscalar.json +17 -0
- package/src/elements/element-types.d.ts +380 -26
- package/src/elements/feedback-bar.tsx +5 -0
- package/src/elements/icon-names.json +29 -0
- package/src/elements/input.tsx +312 -23
- package/src/elements/message.tsx +2 -0
- package/src/elements/pane-grid.tsx +111 -0
- package/src/elements/prompt-input.tsx +8 -2
- package/src/elements/radio-group.tsx +129 -0
- package/src/elements/register-impl.ts +6 -0
- package/src/elements/scroll-button.tsx +54 -6
- package/src/elements/select.tsx +165 -0
- package/src/elements/slider.tsx +171 -0
- package/src/elements/slots.ts +1 -1
- package/src/elements/styles.css +89 -3
- package/src/elements/thread.tsx +2 -0
- package/src/elements/toast.tsx +14 -1
- package/src/index.ts +5 -2
- package/src/primitives/card-data-types.ts +49 -0
- package/src/primitives/card-host.tsx +4 -2
- package/src/primitives/card-routing.ts +7 -56
- package/src/primitives/card-schemas/form.schema.json +21 -1
- package/src/primitives/card-validate.ts +10 -2
- package/src/primitives/chat-config.tsx +33 -6
- package/src/primitives/conversation-store.ts +248 -0
- package/src/primitives/field-mask.ts +256 -0
- package/src/primitives/field-semantics.ts +115 -0
- package/src/primitives/input-mask.ts +853 -0
- package/src/primitives/toast-store.ts +66 -4
- package/src/primitives/url-scheme-policy.ts +70 -0
- package/src/primitives/use-resize-observer.ts +2 -2
- package/src/schemas/tool-defs.ts +12 -2
- package/src/solid.ts +20 -2
- package/src/state/index.ts +1 -1
- package/src/state/mock.ts +92 -6
- package/src/types.ts +45 -3
- package/src/ui/agent-card.tsx +2 -2
- package/src/ui/avatar.tsx +1 -1
- package/src/ui/checkbox-group.tsx +153 -0
- package/src/ui/checkbox.tsx +63 -0
- package/src/ui/dock.tsx +192 -7
- package/src/ui/icon.tsx +53 -0
- package/src/ui/input.tsx +249 -9
- package/src/ui/kbd.tsx +1 -1
- package/src/ui/nav.tsx +1 -1
- package/src/ui/pane-group.tsx +2 -2
- package/src/ui/radio.tsx +150 -0
- package/src/ui/select.tsx +168 -0
- package/src/ui/slider.tsx +178 -0
- package/src/ui/switch.tsx +49 -18
- package/src/utils/cn.ts +11 -5
- package/theme.css +112 -13
- package/dist/elements/chunks/action-icons-D9u3OzYW.js +0 -1
- package/dist/elements/chunks/arrow-left-CVh1TeN7.js +0 -1
- package/dist/elements/chunks/artifact-BkYcfIlZ.js +0 -1
- package/dist/elements/chunks/attachments-DwfNlubq.js +0 -1
- package/dist/elements/chunks/badge-Q0-Cmwzz.js +0 -1
- package/dist/elements/chunks/bash-InADTalH.js +0 -1
- package/dist/elements/chunks/card-renderer-3Dyl-FpN.js +0 -1
- package/dist/elements/chunks/card-routing-BK09BdmL.js +0 -1
- package/dist/elements/chunks/check-B5kBPKeo.js +0 -1
- package/dist/elements/chunks/chevron-down-DZ1GS39h.js +0 -1
- package/dist/elements/chunks/chevron-right-CvP7OUd2.js +0 -1
- package/dist/elements/chunks/choice-card-D4QUIOWZ.js +0 -1
- package/dist/elements/chunks/circle-CDf9g6MQ.js +0 -1
- package/dist/elements/chunks/circle-check-CA47Nqbz.js +0 -1
- package/dist/elements/chunks/circle-x-CJ_HVbC8.js +0 -1
- package/dist/elements/chunks/code-block-BdLiTitd.js +0 -1
- package/dist/elements/chunks/composer-Byve-n8K.js +0 -69
- package/dist/elements/chunks/confirm-card-B0flE3MN.js +0 -1
- package/dist/elements/chunks/controllable-DTwTIlwp.js +0 -1
- package/dist/elements/chunks/conversation-item-BDztezOG.js +0 -1
- package/dist/elements/chunks/copy-Nf-kqxXH.js +0 -1
- package/dist/elements/chunks/core-AYMC6_lb.js +0 -12
- package/dist/elements/chunks/css-M7EaDHN_.js +0 -1
- package/dist/elements/chunks/default-input-C2iLFq0b.js +0 -1
- package/dist/elements/chunks/define-wjHR1MkU.js +0 -1
- package/dist/elements/chunks/download-C4V7tBdb.js +0 -1
- package/dist/elements/chunks/embed-D3KewsIJ.js +0 -1
- package/dist/elements/chunks/engine-javascript-vq0WuIJl.js +0 -141
- package/dist/elements/chunks/file-text-D1G8khle.js +0 -1
- package/dist/elements/chunks/folder-WW2LGLid.js +0 -1
- package/dist/elements/chunks/form-CQirdC4W.js +0 -1
- package/dist/elements/chunks/github-dark-dimmed-DUshB20C.js +0 -1
- package/dist/elements/chunks/github-light-JYsPkUQd.js +0 -1
- package/dist/elements/chunks/hover-card-CJJkfHTK.js +0 -1
- package/dist/elements/chunks/html-CPZ3oZQ7.js +0 -1
- package/dist/elements/chunks/icon-Cfgmf4fa.js +0 -1
- package/dist/elements/chunks/info-DX3YMOt6.js +0 -1
- package/dist/elements/chunks/input-BtW9U6Sq.js +0 -1
- package/dist/elements/chunks/javascript-C25yR2R2.js +0 -1
- package/dist/elements/chunks/json-DxJze_jm.js +0 -1
- package/dist/elements/chunks/kbd-LGXwuT_V.js +0 -1
- package/dist/elements/chunks/link-2My69BqT.js +0 -1
- package/dist/elements/chunks/loader-iOxc_Tu-.js +0 -1
- package/dist/elements/chunks/message-VMZohrXx.js +0 -1
- package/dist/elements/chunks/message-circle-CpXMM-_n.js +0 -1
- package/dist/elements/chunks/message-square-DxcWtETQ.js +0 -1
- package/dist/elements/chunks/message-tZmV2A3p.js +0 -1
- package/dist/elements/chunks/paperclip-CRZVp4z_.js +0 -1
- package/dist/elements/chunks/progress-bar-DNy66e_E.js +0 -1
- package/dist/elements/chunks/prompt-suggestion-Bn64Nl7L.js +0 -1
- package/dist/elements/chunks/reasoning-Emn9N4-T.js +0 -1
- package/dist/elements/chunks/rotate-cw-CPWe37D9.js +0 -1
- package/dist/elements/chunks/scroll-area-ClZkZxIk.js +0 -1
- package/dist/elements/chunks/scroll-button-DPE-t3x_.js +0 -1
- package/dist/elements/chunks/share-CyfnNEqp.js +0 -1
- package/dist/elements/chunks/source-UWCvmVak.js +0 -1
- package/dist/elements/chunks/star-DoHFAikQ.js +0 -1
- package/dist/elements/chunks/store-Cjq0qwYN.js +0 -1
- package/dist/elements/chunks/svelte--5p79yCD.js +0 -1
- package/dist/elements/chunks/tasks-card-CmZ5xh6v.js +0 -1
- package/dist/elements/chunks/text-shimmer-DYn09zrz.js +0 -1
- package/dist/elements/chunks/textarea-skiGHURM.js +0 -1
- package/dist/elements/chunks/toast-store-CFnQpThX.js +0 -1
- package/dist/elements/chunks/tsx-B8rCNbgL.js +0 -1
- package/dist/elements/chunks/typescript-RycA9KXf.js +0 -1
- package/dist/elements/chunks/use-card-resolution-DoA2f_EU.js +0 -1
- package/dist/elements/chunks/vue-BmIZj4XD.js +0 -1
- package/dist/elements/chunks/x-B6UnOiLw.js +0 -1
- package/dist/llms/llms-full.txt +0 -2949
- package/dist/llms/llms.txt +0 -156
- package/dist/register-impl-DpE7icIb.js +0 -293
- package/dist/ui/stat.d.ts +0 -16
- package/src/ui/stat.tsx +0 -41
- /package/dist/{elements/chunks/card-tags-D8lZ-C_U.js → card-tags-D8lZ-C_U.js} +0 -0
- /package/dist/{elements/chunks/link-preview-DNILK391.js → link-preview-DNILK391.js} +0 -0
- /package/dist/{elements/chunks/slots-DaNjX0rc.js → slots-DaNjX0rc.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
function xe(e){var t,o,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(o=xe(e[t]))&&(r&&(r+=" "),r+=o)}else for(o in e)e[o]&&(r&&(r+=" "),r+=o);return r}function we(){for(var e,t,o=0,r="",s=arguments.length;o<s;o++)(e=arguments[o])&&(t=xe(e))&&(r&&(r+=" "),r+=t);return r}const De=(e,t)=>{const o=new Array(e.length+t.length);for(let r=0;r<e.length;r++)o[r]=e[r];for(let r=0;r<t.length;r++)o[e.length+r]=t[r];return o},Fe=(e,t)=>({classGroupId:e,validator:t}),ve=(e=new Map,t=null,o)=>({nextPart:e,validators:t,classGroupId:o}),V="-",ye=[],He="arbitrary..",Je=e=>{const t=Qe(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return Ke(s);const l=s.split(V),d=l[0]===""&&l.length>1?1:0;return ze(l,d,t)},getConflictingClassGroupIds:(s,l)=>{if(l){const d=r[s],b=o[s];return d?b?De(b,d):d:b||ye}return o[s]||ye}}},ze=(e,t,o)=>{if(e.length-t===0)return o.classGroupId;const r=e[t],s=o.nextPart.get(r);if(s){const u=ze(e,t+1,s);if(u)return u}const l=o.validators;if(l===null)return;const d=t===0?e.join(V):e.slice(t).join(V),b=l.length;for(let u=0;u<b;u++){const p=l[u];if(p.validator(d))return p.classGroupId}},Ke=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),o=t.indexOf(":"),r=t.slice(0,o);return r?He+r:void 0})(),Qe=e=>{const{theme:t,classGroups:o}=e;return Ue(o,t)},Ue=(e,t)=>{const o=ve();for(const r in e){const s=e[r];ae(s,o,r,t)}return o},ae=(e,t,o,r)=>{const s=e.length;for(let l=0;l<s;l++){const d=e[l];Ve(d,t,o,r)}},Ve=(e,t,o,r)=>{if(typeof e=="string"){Xe(e,t,o);return}if(typeof e=="function"){Ye(e,t,o,r);return}Ze(e,t,o,r)},Xe=(e,t,o)=>{const r=e===""?t:Ge(t,e);r.classGroupId=o},Ye=(e,t,o,r)=>{if(eo(e)){ae(e(r),t,o,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Fe(o,e))},Ze=(e,t,o,r)=>{const s=Object.entries(e),l=s.length;for(let d=0;d<l;d++){const[b,u]=s[d];ae(u,Ge(t,b),o,r)}},Ge=(e,t)=>{let o=e;const r=t.split(V),s=r.length;for(let l=0;l<s;l++){const d=r[l];let b=o.nextPart.get(d);b||(b=ve(),o.nextPart.set(d,b)),o=b}return o},eo=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,oo=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,o=Object.create(null),r=Object.create(null);const s=(l,d)=>{o[l]=d,t++,t>e&&(t=0,r=o,o=Object.create(null))};return{get(l){let d=o[l];if(d!==void 0)return d;if((d=r[l])!==void 0)return s(l,d),d},set(l,d){l in o?o[l]=d:s(l,d)}}},le="!",Ce=":",ro=[],je=(e,t,o,r,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:o,maybePostfixModifierPosition:r,isExternal:s}),to=e=>{const{prefix:t,experimentalParseClassName:o}=e;let r=s=>{const l=[];let d=0,b=0,u=0,p;const z=s.length;for(let w=0;w<z;w++){const G=s[w];if(d===0&&b===0){if(G===Ce){l.push(s.slice(u,w)),u=w+1;continue}if(G==="/"){p=w;continue}}G==="["?d++:G==="]"?d--:G==="("?b++:G===")"&&b--}const h=l.length===0?s:s.slice(u);let S=h,j=!1;h.endsWith(le)?(S=h.slice(0,-1),j=!0):h.startsWith(le)&&(S=h.slice(1),j=!0);const R=p&&p>u?p-u:void 0;return je(l,j,S,R)};if(t){const s=t+Ce,l=r;r=d=>d.startsWith(s)?l(d.slice(s.length)):je(ro,!1,d,void 0,!0)}if(o){const s=r;r=l=>o({className:l,parseClassName:s})}return r},so=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((o,r)=>{t.set(o,1e6+r)}),o=>{const r=[];let s=[];for(let l=0;l<o.length;l++){const d=o[l],b=d[0]==="[",u=t.has(d);b||u?(s.length>0&&(s.sort(),r.push(...s),s=[]),r.push(d)):s.push(d)}return s.length>0&&(s.sort(),r.push(...s)),r}},no=e=>({cache:oo(e.cacheSize),parseClassName:to(e),sortModifiers:so(e),postfixLookupClassGroupIds:ao(e),...Je(e)}),ao=e=>{const t=Object.create(null),o=e.postfixLookupClassGroups;if(o)for(let r=0;r<o.length;r++)t[o[r]]=!0;return t},lo=/\s+/,io=(e,t)=>{const{parseClassName:o,getClassGroupId:r,getConflictingClassGroupIds:s,sortModifiers:l,postfixLookupClassGroupIds:d}=t,b=[],u=e.trim().split(lo);let p="";for(let z=u.length-1;z>=0;z-=1){const h=u[z],{isExternal:S,modifiers:j,hasImportantModifier:R,baseClassName:w,maybePostfixModifierPosition:G}=o(h);if(S){p=h+(p.length>0?" "+p:p);continue}let W=!!G,v;if(W){const N=w.substring(0,G);v=r(N);const i=v&&d[v]?r(w):void 0;i&&i!==v&&(v=i,W=!1)}else v=r(w);if(!v){if(!W){p=h+(p.length>0?" "+p:p);continue}if(v=r(w),!v){p=h+(p.length>0?" "+p:p);continue}W=!1}const D=j.length===0?"":j.length===1?j[0]:l(j).join(":"),T=R?D+le:D,E=T+v;if(b.indexOf(E)>-1)continue;b.push(E);const q=s(v,W);for(let N=0;N<q.length;++N){const i=q[N];b.push(T+i)}p=h+(p.length>0?" "+p:p)}return p},co=(...e)=>{let t=0,o,r,s="";for(;t<e.length;)(o=e[t++])&&(r=Me(o))&&(s&&(s+=" "),s+=r);return s},Me=e=>{if(typeof e=="string")return e;let t,o="";for(let r=0;r<e.length;r++)e[r]&&(t=Me(e[r]))&&(o&&(o+=" "),o+=t);return o},Ne=(e,...t)=>{let o,r,s,l;const d=u=>{const p=t.reduce((z,h)=>h(z),e());return o=no(p),r=o.cache.get,s=o.cache.set,l=b,b(u)},b=u=>{const p=r(u);if(p)return p;const z=io(u,o);return s(u,z),z};return l=d,(...u)=>l(co(...u))},mo=[],f=e=>{const t=o=>o[e]||mo;return t.isThemeGetter=!0,t},Ie=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Pe=/^\((?:(\w[\w-]*):)?(.+)\)$/i,po=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,bo=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,uo=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,fo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,go=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ho=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,P=e=>po.test(e),m=e=>!!e&&!Number.isNaN(Number(e)),M=e=>!!e&&Number.isInteger(Number(e)),ie=e=>e.endsWith("%")&&m(e.slice(0,-1)),I=e=>bo.test(e),Le=()=>!0,ko=e=>uo.test(e)&&!fo.test(e),ce=()=>!1,xo=e=>go.test(e),wo=e=>ho.test(e),vo=e=>!n(e)&&!a(e),yo=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),zo=e=>L(e,Te,ce),n=e=>Ie.test(e),$=e=>L(e,Ee,ko),Se=e=>L(e,Lo,m),Go=e=>L(e,Be,Le),Co=e=>L(e,qe,ce),We=e=>L(e,$e,ce),jo=e=>L(e,Ae,wo),X=e=>L(e,_e,xo),a=e=>Pe.test(e),F=e=>A(e,Ee),Mo=e=>A(e,qe),Oe=e=>A(e,$e),No=e=>A(e,Te),Io=e=>A(e,Ae),Y=e=>A(e,_e,!0),Po=e=>A(e,Be,!0),L=(e,t,o)=>{const r=Ie.exec(e);return r?r[1]?t(r[1]):o(r[2]):!1},A=(e,t,o=!1)=>{const r=Pe.exec(e);return r?r[1]?t(r[1]):o:!1},$e=e=>e==="position"||e==="percentage",Ae=e=>e==="image"||e==="url",Te=e=>e==="length"||e==="size"||e==="bg-size",Ee=e=>e==="length",Lo=e=>e==="number",qe=e=>e==="family-name",Be=e=>e==="number"||e==="weight",_e=e=>e==="shadow",Re=()=>{const e=f("color"),t=f("font"),o=f("text"),r=f("font-weight"),s=f("tracking"),l=f("leading"),d=f("breakpoint"),b=f("container"),u=f("spacing"),p=f("radius"),z=f("shadow"),h=f("inset-shadow"),S=f("text-shadow"),j=f("drop-shadow"),R=f("blur"),w=f("perspective"),G=f("aspect"),W=f("ease"),v=f("animate"),D=()=>["auto","avoid","all","avoid-page","page","left","right","column"],T=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],E=()=>[...T(),a,n],q=()=>["auto","hidden","clip","visible","scroll"],N=()=>["auto","contain","none"],i=()=>[a,n,u],y=()=>[P,"full","auto",...i()],me=()=>[M,"none","subgrid",a,n],pe=()=>["auto",{span:["full",M,a,n]},M,a,n],H=()=>[M,"auto",a,n],be=()=>["auto","min","max","fr",a,n],oe=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],B=()=>["start","end","center","stretch","center-safe","end-safe"],C=()=>["auto",...i()],O=()=>[P,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...i()],re=()=>[P,"screen","full","dvw","lvw","svw","min","max","fit",...i()],te=()=>[P,"screen","full","lh","dvh","lvh","svh","min","max","fit",...i()],c=()=>[e,a,n],ue=()=>[...T(),Oe,We,{position:[a,n]}],fe=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ge=()=>["auto","cover","contain",No,zo,{size:[a,n]}],se=()=>[ie,F,$],k=()=>["","none","full",p,a,n],x=()=>["",m,F,$],J=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],g=()=>[m,ie,Oe,We],ke=()=>["","none",R,a,n],K=()=>["none",m,a,n],Q=()=>["none",m,a,n],ne=()=>[m,a,n],U=()=>[P,"full",...i()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[I],breakpoint:[I],color:[Le],container:[I],"drop-shadow":[I],ease:["in","out","in-out"],font:[vo],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[I],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[I],shadow:[I],spacing:["px",m],text:[I],"text-shadow":[I],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",P,n,a,G]}],container:["container"],"container-type":[{"@container":["","normal","size",a,n]}],"container-named":[yo],columns:[{columns:[m,n,a,b]}],"break-after":[{"break-after":D()}],"break-before":[{"break-before":D()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:E()}],overflow:[{overflow:q()}],"overflow-x":[{"overflow-x":q()}],"overflow-y":[{"overflow-y":q()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:y()}],"inset-x":[{"inset-x":y()}],"inset-y":[{"inset-y":y()}],start:[{"inset-s":y(),start:y()}],end:[{"inset-e":y(),end:y()}],"inset-bs":[{"inset-bs":y()}],"inset-be":[{"inset-be":y()}],top:[{top:y()}],right:[{right:y()}],bottom:[{bottom:y()}],left:[{left:y()}],visibility:["visible","invisible","collapse"],z:[{z:[M,"auto",a,n]}],basis:[{basis:[P,"full","auto",b,...i()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[m,P,"auto","initial","none",n]}],grow:[{grow:["",m,a,n]}],shrink:[{shrink:["",m,a,n]}],order:[{order:[M,"first","last","none",a,n]}],"grid-cols":[{"grid-cols":me()}],"col-start-end":[{col:pe()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":me()}],"row-start-end":[{row:pe()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":be()}],"auto-rows":[{"auto-rows":be()}],gap:[{gap:i()}],"gap-x":[{"gap-x":i()}],"gap-y":[{"gap-y":i()}],"justify-content":[{justify:[...oe(),"normal"]}],"justify-items":[{"justify-items":[...B(),"normal"]}],"justify-self":[{"justify-self":["auto",...B()]}],"align-content":[{content:["normal",...oe()]}],"align-items":[{items:[...B(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...B(),{baseline:["","last"]}]}],"place-content":[{"place-content":oe()}],"place-items":[{"place-items":[...B(),"baseline"]}],"place-self":[{"place-self":["auto",...B()]}],p:[{p:i()}],px:[{px:i()}],py:[{py:i()}],ps:[{ps:i()}],pe:[{pe:i()}],pbs:[{pbs:i()}],pbe:[{pbe:i()}],pt:[{pt:i()}],pr:[{pr:i()}],pb:[{pb:i()}],pl:[{pl:i()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mbs:[{mbs:C()}],mbe:[{mbe:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":i()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":i()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],"inline-size":[{inline:["auto",...re()]}],"min-inline-size":[{"min-inline":["auto",...re()]}],"max-inline-size":[{"max-inline":["none",...re()]}],"block-size":[{block:["auto",...te()]}],"min-block-size":[{"min-block":["auto",...te()]}],"max-block-size":[{"max-block":["none",...te()]}],w:[{w:[b,"screen",...O()]}],"min-w":[{"min-w":[b,"screen","none",...O()]}],"max-w":[{"max-w":[b,"screen","none","prose",{screen:[d]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",o,F,$]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Po,Go]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ie,n]}],"font-family":[{font:[Mo,Co,t]}],"font-features":[{"font-features":[n]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,a,n]}],"line-clamp":[{"line-clamp":[m,"none",a,Se]}],leading:[{leading:[l,...i()]}],"list-image":[{"list-image":["none",a,n]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",a,n]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:c()}],"text-color":[{text:c()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...J(),"wavy"]}],"text-decoration-thickness":[{decoration:[m,"from-font","auto",a,$]}],"text-decoration-color":[{decoration:c()}],"underline-offset":[{"underline-offset":[m,"auto",a,n]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:i()}],"tab-size":[{tab:[M,a,n]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",a,n]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",a,n]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ue()}],"bg-repeat":[{bg:fe()}],"bg-size":[{bg:ge()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},M,a,n],radial:["",a,n],conic:[M,a,n]},Io,jo]}],"bg-color":[{bg:c()}],"gradient-from-pos":[{from:se()}],"gradient-via-pos":[{via:se()}],"gradient-to-pos":[{to:se()}],"gradient-from":[{from:c()}],"gradient-via":[{via:c()}],"gradient-to":[{to:c()}],rounded:[{rounded:k()}],"rounded-s":[{"rounded-s":k()}],"rounded-e":[{"rounded-e":k()}],"rounded-t":[{"rounded-t":k()}],"rounded-r":[{"rounded-r":k()}],"rounded-b":[{"rounded-b":k()}],"rounded-l":[{"rounded-l":k()}],"rounded-ss":[{"rounded-ss":k()}],"rounded-se":[{"rounded-se":k()}],"rounded-ee":[{"rounded-ee":k()}],"rounded-es":[{"rounded-es":k()}],"rounded-tl":[{"rounded-tl":k()}],"rounded-tr":[{"rounded-tr":k()}],"rounded-br":[{"rounded-br":k()}],"rounded-bl":[{"rounded-bl":k()}],"border-w":[{border:x()}],"border-w-x":[{"border-x":x()}],"border-w-y":[{"border-y":x()}],"border-w-s":[{"border-s":x()}],"border-w-e":[{"border-e":x()}],"border-w-bs":[{"border-bs":x()}],"border-w-be":[{"border-be":x()}],"border-w-t":[{"border-t":x()}],"border-w-r":[{"border-r":x()}],"border-w-b":[{"border-b":x()}],"border-w-l":[{"border-l":x()}],"divide-x":[{"divide-x":x()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":x()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...J(),"hidden","none"]}],"divide-style":[{divide:[...J(),"hidden","none"]}],"border-color":[{border:c()}],"border-color-x":[{"border-x":c()}],"border-color-y":[{"border-y":c()}],"border-color-s":[{"border-s":c()}],"border-color-e":[{"border-e":c()}],"border-color-bs":[{"border-bs":c()}],"border-color-be":[{"border-be":c()}],"border-color-t":[{"border-t":c()}],"border-color-r":[{"border-r":c()}],"border-color-b":[{"border-b":c()}],"border-color-l":[{"border-l":c()}],"divide-color":[{divide:c()}],"outline-style":[{outline:[...J(),"none","hidden"]}],"outline-offset":[{"outline-offset":[m,a,n]}],"outline-w":[{outline:["",m,F,$]}],"outline-color":[{outline:c()}],shadow:[{shadow:["","none",z,Y,X]}],"shadow-color":[{shadow:c()}],"inset-shadow":[{"inset-shadow":["none",h,Y,X]}],"inset-shadow-color":[{"inset-shadow":c()}],"ring-w":[{ring:x()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:c()}],"ring-offset-w":[{"ring-offset":[m,$]}],"ring-offset-color":[{"ring-offset":c()}],"inset-ring-w":[{"inset-ring":x()}],"inset-ring-color":[{"inset-ring":c()}],"text-shadow":[{"text-shadow":["none",S,Y,X]}],"text-shadow-color":[{"text-shadow":c()}],opacity:[{opacity:[m,a,n]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[m]}],"mask-image-linear-from-pos":[{"mask-linear-from":g()}],"mask-image-linear-to-pos":[{"mask-linear-to":g()}],"mask-image-linear-from-color":[{"mask-linear-from":c()}],"mask-image-linear-to-color":[{"mask-linear-to":c()}],"mask-image-t-from-pos":[{"mask-t-from":g()}],"mask-image-t-to-pos":[{"mask-t-to":g()}],"mask-image-t-from-color":[{"mask-t-from":c()}],"mask-image-t-to-color":[{"mask-t-to":c()}],"mask-image-r-from-pos":[{"mask-r-from":g()}],"mask-image-r-to-pos":[{"mask-r-to":g()}],"mask-image-r-from-color":[{"mask-r-from":c()}],"mask-image-r-to-color":[{"mask-r-to":c()}],"mask-image-b-from-pos":[{"mask-b-from":g()}],"mask-image-b-to-pos":[{"mask-b-to":g()}],"mask-image-b-from-color":[{"mask-b-from":c()}],"mask-image-b-to-color":[{"mask-b-to":c()}],"mask-image-l-from-pos":[{"mask-l-from":g()}],"mask-image-l-to-pos":[{"mask-l-to":g()}],"mask-image-l-from-color":[{"mask-l-from":c()}],"mask-image-l-to-color":[{"mask-l-to":c()}],"mask-image-x-from-pos":[{"mask-x-from":g()}],"mask-image-x-to-pos":[{"mask-x-to":g()}],"mask-image-x-from-color":[{"mask-x-from":c()}],"mask-image-x-to-color":[{"mask-x-to":c()}],"mask-image-y-from-pos":[{"mask-y-from":g()}],"mask-image-y-to-pos":[{"mask-y-to":g()}],"mask-image-y-from-color":[{"mask-y-from":c()}],"mask-image-y-to-color":[{"mask-y-to":c()}],"mask-image-radial":[{"mask-radial":[a,n]}],"mask-image-radial-from-pos":[{"mask-radial-from":g()}],"mask-image-radial-to-pos":[{"mask-radial-to":g()}],"mask-image-radial-from-color":[{"mask-radial-from":c()}],"mask-image-radial-to-color":[{"mask-radial-to":c()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":T()}],"mask-image-conic-pos":[{"mask-conic":[m]}],"mask-image-conic-from-pos":[{"mask-conic-from":g()}],"mask-image-conic-to-pos":[{"mask-conic-to":g()}],"mask-image-conic-from-color":[{"mask-conic-from":c()}],"mask-image-conic-to-color":[{"mask-conic-to":c()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ue()}],"mask-repeat":[{mask:fe()}],"mask-size":[{mask:ge()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",a,n]}],filter:[{filter:["","none",a,n]}],blur:[{blur:ke()}],brightness:[{brightness:[m,a,n]}],contrast:[{contrast:[m,a,n]}],"drop-shadow":[{"drop-shadow":["","none",j,Y,X]}],"drop-shadow-color":[{"drop-shadow":c()}],grayscale:[{grayscale:["",m,a,n]}],"hue-rotate":[{"hue-rotate":[m,a,n]}],invert:[{invert:["",m,a,n]}],saturate:[{saturate:[m,a,n]}],sepia:[{sepia:["",m,a,n]}],"backdrop-filter":[{"backdrop-filter":["","none",a,n]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[m,a,n]}],"backdrop-contrast":[{"backdrop-contrast":[m,a,n]}],"backdrop-grayscale":[{"backdrop-grayscale":["",m,a,n]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m,a,n]}],"backdrop-invert":[{"backdrop-invert":["",m,a,n]}],"backdrop-opacity":[{"backdrop-opacity":[m,a,n]}],"backdrop-saturate":[{"backdrop-saturate":[m,a,n]}],"backdrop-sepia":[{"backdrop-sepia":["",m,a,n]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":i()}],"border-spacing-x":[{"border-spacing-x":i()}],"border-spacing-y":[{"border-spacing-y":i()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",a,n]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[m,"initial",a,n]}],ease:[{ease:["linear","initial",W,a,n]}],delay:[{delay:[m,a,n]}],animate:[{animate:["none",v,a,n]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,a,n]}],"perspective-origin":[{"perspective-origin":E()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:Q()}],"scale-x":[{"scale-x":Q()}],"scale-y":[{"scale-y":Q()}],"scale-z":[{"scale-z":Q()}],"scale-3d":["scale-3d"],skew:[{skew:ne()}],"skew-x":[{"skew-x":ne()}],"skew-y":[{"skew-y":ne()}],transform:[{transform:[a,n,"","none","gpu","cpu"]}],"transform-origin":[{origin:E()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:U()}],"translate-x":[{"translate-x":U()}],"translate-y":[{"translate-y":U()}],"translate-z":[{"translate-z":U()}],"translate-none":["translate-none"],zoom:[{zoom:[M,a,n]}],accent:[{accent:c()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:c()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",a,n]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":c()}],"scrollbar-track-color":[{"scrollbar-track":c()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":i()}],"scroll-mx":[{"scroll-mx":i()}],"scroll-my":[{"scroll-my":i()}],"scroll-ms":[{"scroll-ms":i()}],"scroll-me":[{"scroll-me":i()}],"scroll-mbs":[{"scroll-mbs":i()}],"scroll-mbe":[{"scroll-mbe":i()}],"scroll-mt":[{"scroll-mt":i()}],"scroll-mr":[{"scroll-mr":i()}],"scroll-mb":[{"scroll-mb":i()}],"scroll-ml":[{"scroll-ml":i()}],"scroll-p":[{"scroll-p":i()}],"scroll-px":[{"scroll-px":i()}],"scroll-py":[{"scroll-py":i()}],"scroll-ps":[{"scroll-ps":i()}],"scroll-pe":[{"scroll-pe":i()}],"scroll-pbs":[{"scroll-pbs":i()}],"scroll-pbe":[{"scroll-pbe":i()}],"scroll-pt":[{"scroll-pt":i()}],"scroll-pr":[{"scroll-pr":i()}],"scroll-pb":[{"scroll-pb":i()}],"scroll-pl":[{"scroll-pl":i()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",a,n]}],fill:[{fill:["none",...c()]}],"stroke-w":[{stroke:[m,F,$,Se]}],stroke:[{stroke:["none",...c()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},So=(e,{cacheSize:t,prefix:o,experimentalParseClassName:r,extend:s={},override:l={}})=>(_(e,"cacheSize",t),_(e,"prefix",o),_(e,"experimentalParseClassName",r),Z(e.theme,l.theme),Z(e.classGroups,l.classGroups),Z(e.conflictingClassGroups,l.conflictingClassGroups),Z(e.conflictingClassGroupModifiers,l.conflictingClassGroupModifiers),_(e,"postfixLookupClassGroups",l.postfixLookupClassGroups),_(e,"orderSensitiveModifiers",l.orderSensitiveModifiers),ee(e.theme,s.theme),ee(e.classGroups,s.classGroups),ee(e.conflictingClassGroups,s.conflictingClassGroups),ee(e.conflictingClassGroupModifiers,s.conflictingClassGroupModifiers),de(e,s,"postfixLookupClassGroups"),de(e,s,"orderSensitiveModifiers"),e),_=(e,t,o)=>{o!==void 0&&(e[t]=o)},Z=(e,t)=>{if(t)for(const o in t)_(e,o,t[o])},ee=(e,t)=>{if(t)for(const o in t)de(e,t,o)},de=(e,t,o)=>{const r=t[o];r!==void 0&&(e[o]=e[o]?e[o].concat(r):r)},Wo=(e,...t)=>typeof e=="function"?Ne(Re,e,...t):Ne(()=>So(Re(),e),...t),Oo=Wo({extend:{classGroups:{"font-size":[{text:["caption","meta","body","title"]}]}}});function $o(...e){return Oo(we(e))}export{we as a,$o as c};
|
|
1
|
+
function xe(e){var t,o,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(o=xe(e[t]))&&(r&&(r+=" "),r+=o)}else for(o in e)e[o]&&(r&&(r+=" "),r+=o);return r}function we(){for(var e,t,o=0,r="",s=arguments.length;o<s;o++)(e=arguments[o])&&(t=xe(e))&&(r&&(r+=" "),r+=t);return r}const De=(e,t)=>{const o=new Array(e.length+t.length);for(let r=0;r<e.length;r++)o[r]=e[r];for(let r=0;r<t.length;r++)o[e.length+r]=t[r];return o},Fe=(e,t)=>({classGroupId:e,validator:t}),ve=(e=new Map,t=null,o)=>({nextPart:e,validators:t,classGroupId:o}),V="-",ye=[],He="arbitrary..",Je=e=>{const t=Qe(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return Ke(s);const l=s.split(V),d=l[0]===""&&l.length>1?1:0;return ze(l,d,t)},getConflictingClassGroupIds:(s,l)=>{if(l){const d=r[s],b=o[s];return d?b?De(b,d):d:b||ye}return o[s]||ye}}},ze=(e,t,o)=>{if(e.length-t===0)return o.classGroupId;const r=e[t],s=o.nextPart.get(r);if(s){const u=ze(e,t+1,s);if(u)return u}const l=o.validators;if(l===null)return;const d=t===0?e.join(V):e.slice(t).join(V),b=l.length;for(let u=0;u<b;u++){const p=l[u];if(p.validator(d))return p.classGroupId}},Ke=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),o=t.indexOf(":"),r=t.slice(0,o);return r?He+r:void 0})(),Qe=e=>{const{theme:t,classGroups:o}=e;return Ue(o,t)},Ue=(e,t)=>{const o=ve();for(const r in e){const s=e[r];ae(s,o,r,t)}return o},ae=(e,t,o,r)=>{const s=e.length;for(let l=0;l<s;l++){const d=e[l];Ve(d,t,o,r)}},Ve=(e,t,o,r)=>{if(typeof e=="string"){Xe(e,t,o);return}if(typeof e=="function"){Ye(e,t,o,r);return}Ze(e,t,o,r)},Xe=(e,t,o)=>{const r=e===""?t:Ge(t,e);r.classGroupId=o},Ye=(e,t,o,r)=>{if(eo(e)){ae(e(r),t,o,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Fe(o,e))},Ze=(e,t,o,r)=>{const s=Object.entries(e),l=s.length;for(let d=0;d<l;d++){const[b,u]=s[d];ae(u,Ge(t,b),o,r)}},Ge=(e,t)=>{let o=e;const r=t.split(V),s=r.length;for(let l=0;l<s;l++){const d=r[l];let b=o.nextPart.get(d);b||(b=ve(),o.nextPart.set(d,b)),o=b}return o},eo=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,oo=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,o=Object.create(null),r=Object.create(null);const s=(l,d)=>{o[l]=d,t++,t>e&&(t=0,r=o,o=Object.create(null))};return{get(l){let d=o[l];if(d!==void 0)return d;if((d=r[l])!==void 0)return s(l,d),d},set(l,d){l in o?o[l]=d:s(l,d)}}},le="!",Ce=":",ro=[],je=(e,t,o,r,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:o,maybePostfixModifierPosition:r,isExternal:s}),to=e=>{const{prefix:t,experimentalParseClassName:o}=e;let r=s=>{const l=[];let d=0,b=0,u=0,p;const z=s.length;for(let w=0;w<z;w++){const G=s[w];if(d===0&&b===0){if(G===Ce){l.push(s.slice(u,w)),u=w+1;continue}if(G==="/"){p=w;continue}}G==="["?d++:G==="]"?d--:G==="("?b++:G===")"&&b--}const h=l.length===0?s:s.slice(u);let S=h,j=!1;h.endsWith(le)?(S=h.slice(0,-1),j=!0):h.startsWith(le)&&(S=h.slice(1),j=!0);const R=p&&p>u?p-u:void 0;return je(l,j,S,R)};if(t){const s=t+Ce,l=r;r=d=>d.startsWith(s)?l(d.slice(s.length)):je(ro,!1,d,void 0,!0)}if(o){const s=r;r=l=>o({className:l,parseClassName:s})}return r},so=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((o,r)=>{t.set(o,1e6+r)}),o=>{const r=[];let s=[];for(let l=0;l<o.length;l++){const d=o[l],b=d[0]==="[",u=t.has(d);b||u?(s.length>0&&(s.sort(),r.push(...s),s=[]),r.push(d)):s.push(d)}return s.length>0&&(s.sort(),r.push(...s)),r}},no=e=>({cache:oo(e.cacheSize),parseClassName:to(e),sortModifiers:so(e),postfixLookupClassGroupIds:ao(e),...Je(e)}),ao=e=>{const t=Object.create(null),o=e.postfixLookupClassGroups;if(o)for(let r=0;r<o.length;r++)t[o[r]]=!0;return t},lo=/\s+/,io=(e,t)=>{const{parseClassName:o,getClassGroupId:r,getConflictingClassGroupIds:s,sortModifiers:l,postfixLookupClassGroupIds:d}=t,b=[],u=e.trim().split(lo);let p="";for(let z=u.length-1;z>=0;z-=1){const h=u[z],{isExternal:S,modifiers:j,hasImportantModifier:R,baseClassName:w,maybePostfixModifierPosition:G}=o(h);if(S){p=h+(p.length>0?" "+p:p);continue}let W=!!G,v;if(W){const N=w.substring(0,G);v=r(N);const i=v&&d[v]?r(w):void 0;i&&i!==v&&(v=i,W=!1)}else v=r(w);if(!v){if(!W){p=h+(p.length>0?" "+p:p);continue}if(v=r(w),!v){p=h+(p.length>0?" "+p:p);continue}W=!1}const D=j.length===0?"":j.length===1?j[0]:l(j).join(":"),T=R?D+le:D,E=T+v;if(b.indexOf(E)>-1)continue;b.push(E);const q=s(v,W);for(let N=0;N<q.length;++N){const i=q[N];b.push(T+i)}p=h+(p.length>0?" "+p:p)}return p},co=(...e)=>{let t=0,o,r,s="";for(;t<e.length;)(o=e[t++])&&(r=Me(o))&&(s&&(s+=" "),s+=r);return s},Me=e=>{if(typeof e=="string")return e;let t,o="";for(let r=0;r<e.length;r++)e[r]&&(t=Me(e[r]))&&(o&&(o+=" "),o+=t);return o},Ne=(e,...t)=>{let o,r,s,l;const d=u=>{const p=t.reduce((z,h)=>h(z),e());return o=no(p),r=o.cache.get,s=o.cache.set,l=b,b(u)},b=u=>{const p=r(u);if(p)return p;const z=io(u,o);return s(u,z),z};return l=d,(...u)=>l(co(...u))},mo=[],f=e=>{const t=o=>o[e]||mo;return t.isThemeGetter=!0,t},Ie=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Pe=/^\((?:(\w[\w-]*):)?(.+)\)$/i,po=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,bo=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,uo=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,fo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,go=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ho=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,P=e=>po.test(e),m=e=>!!e&&!Number.isNaN(Number(e)),M=e=>!!e&&Number.isInteger(Number(e)),ie=e=>e.endsWith("%")&&m(e.slice(0,-1)),I=e=>bo.test(e),Le=()=>!0,ko=e=>uo.test(e)&&!fo.test(e),ce=()=>!1,xo=e=>go.test(e),wo=e=>ho.test(e),vo=e=>!n(e)&&!a(e),yo=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),zo=e=>L(e,Te,ce),n=e=>Ie.test(e),$=e=>L(e,Ee,ko),Se=e=>L(e,Lo,m),Go=e=>L(e,Be,Le),Co=e=>L(e,qe,ce),We=e=>L(e,$e,ce),jo=e=>L(e,Ae,wo),X=e=>L(e,_e,xo),a=e=>Pe.test(e),F=e=>A(e,Ee),Mo=e=>A(e,qe),Oe=e=>A(e,$e),No=e=>A(e,Te),Io=e=>A(e,Ae),Y=e=>A(e,_e,!0),Po=e=>A(e,Be,!0),L=(e,t,o)=>{const r=Ie.exec(e);return r?r[1]?t(r[1]):o(r[2]):!1},A=(e,t,o=!1)=>{const r=Pe.exec(e);return r?r[1]?t(r[1]):o:!1},$e=e=>e==="position"||e==="percentage",Ae=e=>e==="image"||e==="url",Te=e=>e==="length"||e==="size"||e==="bg-size",Ee=e=>e==="length",Lo=e=>e==="number",qe=e=>e==="family-name",Be=e=>e==="number"||e==="weight",_e=e=>e==="shadow",Re=()=>{const e=f("color"),t=f("font"),o=f("text"),r=f("font-weight"),s=f("tracking"),l=f("leading"),d=f("breakpoint"),b=f("container"),u=f("spacing"),p=f("radius"),z=f("shadow"),h=f("inset-shadow"),S=f("text-shadow"),j=f("drop-shadow"),R=f("blur"),w=f("perspective"),G=f("aspect"),W=f("ease"),v=f("animate"),D=()=>["auto","avoid","all","avoid-page","page","left","right","column"],T=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],E=()=>[...T(),a,n],q=()=>["auto","hidden","clip","visible","scroll"],N=()=>["auto","contain","none"],i=()=>[a,n,u],y=()=>[P,"full","auto",...i()],me=()=>[M,"none","subgrid",a,n],pe=()=>["auto",{span:["full",M,a,n]},M,a,n],H=()=>[M,"auto",a,n],be=()=>["auto","min","max","fr",a,n],oe=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],B=()=>["start","end","center","stretch","center-safe","end-safe"],C=()=>["auto",...i()],O=()=>[P,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...i()],re=()=>[P,"screen","full","dvw","lvw","svw","min","max","fit",...i()],te=()=>[P,"screen","full","lh","dvh","lvh","svh","min","max","fit",...i()],c=()=>[e,a,n],ue=()=>[...T(),Oe,We,{position:[a,n]}],fe=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ge=()=>["auto","cover","contain",No,zo,{size:[a,n]}],se=()=>[ie,F,$],k=()=>["","none","full",p,a,n],x=()=>["",m,F,$],J=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],g=()=>[m,ie,Oe,We],ke=()=>["","none",R,a,n],K=()=>["none",m,a,n],Q=()=>["none",m,a,n],ne=()=>[m,a,n],U=()=>[P,"full",...i()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[I],breakpoint:[I],color:[Le],container:[I],"drop-shadow":[I],ease:["in","out","in-out"],font:[vo],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[I],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[I],shadow:[I],spacing:["px",m],text:[I],"text-shadow":[I],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",P,n,a,G]}],container:["container"],"container-type":[{"@container":["","normal","size",a,n]}],"container-named":[yo],columns:[{columns:[m,n,a,b]}],"break-after":[{"break-after":D()}],"break-before":[{"break-before":D()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:E()}],overflow:[{overflow:q()}],"overflow-x":[{"overflow-x":q()}],"overflow-y":[{"overflow-y":q()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:y()}],"inset-x":[{"inset-x":y()}],"inset-y":[{"inset-y":y()}],start:[{"inset-s":y(),start:y()}],end:[{"inset-e":y(),end:y()}],"inset-bs":[{"inset-bs":y()}],"inset-be":[{"inset-be":y()}],top:[{top:y()}],right:[{right:y()}],bottom:[{bottom:y()}],left:[{left:y()}],visibility:["visible","invisible","collapse"],z:[{z:[M,"auto",a,n]}],basis:[{basis:[P,"full","auto",b,...i()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[m,P,"auto","initial","none",n]}],grow:[{grow:["",m,a,n]}],shrink:[{shrink:["",m,a,n]}],order:[{order:[M,"first","last","none",a,n]}],"grid-cols":[{"grid-cols":me()}],"col-start-end":[{col:pe()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":me()}],"row-start-end":[{row:pe()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":be()}],"auto-rows":[{"auto-rows":be()}],gap:[{gap:i()}],"gap-x":[{"gap-x":i()}],"gap-y":[{"gap-y":i()}],"justify-content":[{justify:[...oe(),"normal"]}],"justify-items":[{"justify-items":[...B(),"normal"]}],"justify-self":[{"justify-self":["auto",...B()]}],"align-content":[{content:["normal",...oe()]}],"align-items":[{items:[...B(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...B(),{baseline:["","last"]}]}],"place-content":[{"place-content":oe()}],"place-items":[{"place-items":[...B(),"baseline"]}],"place-self":[{"place-self":["auto",...B()]}],p:[{p:i()}],px:[{px:i()}],py:[{py:i()}],ps:[{ps:i()}],pe:[{pe:i()}],pbs:[{pbs:i()}],pbe:[{pbe:i()}],pt:[{pt:i()}],pr:[{pr:i()}],pb:[{pb:i()}],pl:[{pl:i()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mbs:[{mbs:C()}],mbe:[{mbe:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":i()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":i()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],"inline-size":[{inline:["auto",...re()]}],"min-inline-size":[{"min-inline":["auto",...re()]}],"max-inline-size":[{"max-inline":["none",...re()]}],"block-size":[{block:["auto",...te()]}],"min-block-size":[{"min-block":["auto",...te()]}],"max-block-size":[{"max-block":["none",...te()]}],w:[{w:[b,"screen",...O()]}],"min-w":[{"min-w":[b,"screen","none",...O()]}],"max-w":[{"max-w":[b,"screen","none","prose",{screen:[d]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",o,F,$]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Po,Go]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ie,n]}],"font-family":[{font:[Mo,Co,t]}],"font-features":[{"font-features":[n]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,a,n]}],"line-clamp":[{"line-clamp":[m,"none",a,Se]}],leading:[{leading:[l,...i()]}],"list-image":[{"list-image":["none",a,n]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",a,n]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:c()}],"text-color":[{text:c()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...J(),"wavy"]}],"text-decoration-thickness":[{decoration:[m,"from-font","auto",a,$]}],"text-decoration-color":[{decoration:c()}],"underline-offset":[{"underline-offset":[m,"auto",a,n]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:i()}],"tab-size":[{tab:[M,a,n]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",a,n]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",a,n]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ue()}],"bg-repeat":[{bg:fe()}],"bg-size":[{bg:ge()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},M,a,n],radial:["",a,n],conic:[M,a,n]},Io,jo]}],"bg-color":[{bg:c()}],"gradient-from-pos":[{from:se()}],"gradient-via-pos":[{via:se()}],"gradient-to-pos":[{to:se()}],"gradient-from":[{from:c()}],"gradient-via":[{via:c()}],"gradient-to":[{to:c()}],rounded:[{rounded:k()}],"rounded-s":[{"rounded-s":k()}],"rounded-e":[{"rounded-e":k()}],"rounded-t":[{"rounded-t":k()}],"rounded-r":[{"rounded-r":k()}],"rounded-b":[{"rounded-b":k()}],"rounded-l":[{"rounded-l":k()}],"rounded-ss":[{"rounded-ss":k()}],"rounded-se":[{"rounded-se":k()}],"rounded-ee":[{"rounded-ee":k()}],"rounded-es":[{"rounded-es":k()}],"rounded-tl":[{"rounded-tl":k()}],"rounded-tr":[{"rounded-tr":k()}],"rounded-br":[{"rounded-br":k()}],"rounded-bl":[{"rounded-bl":k()}],"border-w":[{border:x()}],"border-w-x":[{"border-x":x()}],"border-w-y":[{"border-y":x()}],"border-w-s":[{"border-s":x()}],"border-w-e":[{"border-e":x()}],"border-w-bs":[{"border-bs":x()}],"border-w-be":[{"border-be":x()}],"border-w-t":[{"border-t":x()}],"border-w-r":[{"border-r":x()}],"border-w-b":[{"border-b":x()}],"border-w-l":[{"border-l":x()}],"divide-x":[{"divide-x":x()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":x()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...J(),"hidden","none"]}],"divide-style":[{divide:[...J(),"hidden","none"]}],"border-color":[{border:c()}],"border-color-x":[{"border-x":c()}],"border-color-y":[{"border-y":c()}],"border-color-s":[{"border-s":c()}],"border-color-e":[{"border-e":c()}],"border-color-bs":[{"border-bs":c()}],"border-color-be":[{"border-be":c()}],"border-color-t":[{"border-t":c()}],"border-color-r":[{"border-r":c()}],"border-color-b":[{"border-b":c()}],"border-color-l":[{"border-l":c()}],"divide-color":[{divide:c()}],"outline-style":[{outline:[...J(),"none","hidden"]}],"outline-offset":[{"outline-offset":[m,a,n]}],"outline-w":[{outline:["",m,F,$]}],"outline-color":[{outline:c()}],shadow:[{shadow:["","none",z,Y,X]}],"shadow-color":[{shadow:c()}],"inset-shadow":[{"inset-shadow":["none",h,Y,X]}],"inset-shadow-color":[{"inset-shadow":c()}],"ring-w":[{ring:x()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:c()}],"ring-offset-w":[{"ring-offset":[m,$]}],"ring-offset-color":[{"ring-offset":c()}],"inset-ring-w":[{"inset-ring":x()}],"inset-ring-color":[{"inset-ring":c()}],"text-shadow":[{"text-shadow":["none",S,Y,X]}],"text-shadow-color":[{"text-shadow":c()}],opacity:[{opacity:[m,a,n]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[m]}],"mask-image-linear-from-pos":[{"mask-linear-from":g()}],"mask-image-linear-to-pos":[{"mask-linear-to":g()}],"mask-image-linear-from-color":[{"mask-linear-from":c()}],"mask-image-linear-to-color":[{"mask-linear-to":c()}],"mask-image-t-from-pos":[{"mask-t-from":g()}],"mask-image-t-to-pos":[{"mask-t-to":g()}],"mask-image-t-from-color":[{"mask-t-from":c()}],"mask-image-t-to-color":[{"mask-t-to":c()}],"mask-image-r-from-pos":[{"mask-r-from":g()}],"mask-image-r-to-pos":[{"mask-r-to":g()}],"mask-image-r-from-color":[{"mask-r-from":c()}],"mask-image-r-to-color":[{"mask-r-to":c()}],"mask-image-b-from-pos":[{"mask-b-from":g()}],"mask-image-b-to-pos":[{"mask-b-to":g()}],"mask-image-b-from-color":[{"mask-b-from":c()}],"mask-image-b-to-color":[{"mask-b-to":c()}],"mask-image-l-from-pos":[{"mask-l-from":g()}],"mask-image-l-to-pos":[{"mask-l-to":g()}],"mask-image-l-from-color":[{"mask-l-from":c()}],"mask-image-l-to-color":[{"mask-l-to":c()}],"mask-image-x-from-pos":[{"mask-x-from":g()}],"mask-image-x-to-pos":[{"mask-x-to":g()}],"mask-image-x-from-color":[{"mask-x-from":c()}],"mask-image-x-to-color":[{"mask-x-to":c()}],"mask-image-y-from-pos":[{"mask-y-from":g()}],"mask-image-y-to-pos":[{"mask-y-to":g()}],"mask-image-y-from-color":[{"mask-y-from":c()}],"mask-image-y-to-color":[{"mask-y-to":c()}],"mask-image-radial":[{"mask-radial":[a,n]}],"mask-image-radial-from-pos":[{"mask-radial-from":g()}],"mask-image-radial-to-pos":[{"mask-radial-to":g()}],"mask-image-radial-from-color":[{"mask-radial-from":c()}],"mask-image-radial-to-color":[{"mask-radial-to":c()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":T()}],"mask-image-conic-pos":[{"mask-conic":[m]}],"mask-image-conic-from-pos":[{"mask-conic-from":g()}],"mask-image-conic-to-pos":[{"mask-conic-to":g()}],"mask-image-conic-from-color":[{"mask-conic-from":c()}],"mask-image-conic-to-color":[{"mask-conic-to":c()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ue()}],"mask-repeat":[{mask:fe()}],"mask-size":[{mask:ge()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",a,n]}],filter:[{filter:["","none",a,n]}],blur:[{blur:ke()}],brightness:[{brightness:[m,a,n]}],contrast:[{contrast:[m,a,n]}],"drop-shadow":[{"drop-shadow":["","none",j,Y,X]}],"drop-shadow-color":[{"drop-shadow":c()}],grayscale:[{grayscale:["",m,a,n]}],"hue-rotate":[{"hue-rotate":[m,a,n]}],invert:[{invert:["",m,a,n]}],saturate:[{saturate:[m,a,n]}],sepia:[{sepia:["",m,a,n]}],"backdrop-filter":[{"backdrop-filter":["","none",a,n]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[m,a,n]}],"backdrop-contrast":[{"backdrop-contrast":[m,a,n]}],"backdrop-grayscale":[{"backdrop-grayscale":["",m,a,n]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m,a,n]}],"backdrop-invert":[{"backdrop-invert":["",m,a,n]}],"backdrop-opacity":[{"backdrop-opacity":[m,a,n]}],"backdrop-saturate":[{"backdrop-saturate":[m,a,n]}],"backdrop-sepia":[{"backdrop-sepia":["",m,a,n]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":i()}],"border-spacing-x":[{"border-spacing-x":i()}],"border-spacing-y":[{"border-spacing-y":i()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",a,n]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[m,"initial",a,n]}],ease:[{ease:["linear","initial",W,a,n]}],delay:[{delay:[m,a,n]}],animate:[{animate:["none",v,a,n]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,a,n]}],"perspective-origin":[{"perspective-origin":E()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:Q()}],"scale-x":[{"scale-x":Q()}],"scale-y":[{"scale-y":Q()}],"scale-z":[{"scale-z":Q()}],"scale-3d":["scale-3d"],skew:[{skew:ne()}],"skew-x":[{"skew-x":ne()}],"skew-y":[{"skew-y":ne()}],transform:[{transform:[a,n,"","none","gpu","cpu"]}],"transform-origin":[{origin:E()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:U()}],"translate-x":[{"translate-x":U()}],"translate-y":[{"translate-y":U()}],"translate-z":[{"translate-z":U()}],"translate-none":["translate-none"],zoom:[{zoom:[M,a,n]}],accent:[{accent:c()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:c()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",a,n]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":c()}],"scrollbar-track-color":[{"scrollbar-track":c()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":i()}],"scroll-mx":[{"scroll-mx":i()}],"scroll-my":[{"scroll-my":i()}],"scroll-ms":[{"scroll-ms":i()}],"scroll-me":[{"scroll-me":i()}],"scroll-mbs":[{"scroll-mbs":i()}],"scroll-mbe":[{"scroll-mbe":i()}],"scroll-mt":[{"scroll-mt":i()}],"scroll-mr":[{"scroll-mr":i()}],"scroll-mb":[{"scroll-mb":i()}],"scroll-ml":[{"scroll-ml":i()}],"scroll-p":[{"scroll-p":i()}],"scroll-px":[{"scroll-px":i()}],"scroll-py":[{"scroll-py":i()}],"scroll-ps":[{"scroll-ps":i()}],"scroll-pe":[{"scroll-pe":i()}],"scroll-pbs":[{"scroll-pbs":i()}],"scroll-pbe":[{"scroll-pbe":i()}],"scroll-pt":[{"scroll-pt":i()}],"scroll-pr":[{"scroll-pr":i()}],"scroll-pb":[{"scroll-pb":i()}],"scroll-pl":[{"scroll-pl":i()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",a,n]}],fill:[{fill:["none",...c()]}],"stroke-w":[{stroke:[m,F,$,Se]}],stroke:[{stroke:["none",...c()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},So=(e,{cacheSize:t,prefix:o,experimentalParseClassName:r,extend:s={},override:l={}})=>(_(e,"cacheSize",t),_(e,"prefix",o),_(e,"experimentalParseClassName",r),Z(e.theme,l.theme),Z(e.classGroups,l.classGroups),Z(e.conflictingClassGroups,l.conflictingClassGroups),Z(e.conflictingClassGroupModifiers,l.conflictingClassGroupModifiers),_(e,"postfixLookupClassGroups",l.postfixLookupClassGroups),_(e,"orderSensitiveModifiers",l.orderSensitiveModifiers),ee(e.theme,s.theme),ee(e.classGroups,s.classGroups),ee(e.conflictingClassGroups,s.conflictingClassGroups),ee(e.conflictingClassGroupModifiers,s.conflictingClassGroupModifiers),de(e,s,"postfixLookupClassGroups"),de(e,s,"orderSensitiveModifiers"),e),_=(e,t,o)=>{o!==void 0&&(e[t]=o)},Z=(e,t)=>{if(t)for(const o in t)_(e,o,t[o])},ee=(e,t)=>{if(t)for(const o in t)de(e,t,o)},de=(e,t,o)=>{const r=t[o];r!==void 0&&(e[o]=e[o]?e[o].concat(r):r)},Wo=(e,...t)=>typeof e=="function"?Ne(Re,e,...t):Ne(()=>So(Re(),e),...t),Oo=Wo({extend:{classGroups:{"font-size":[{text:["micro","caption","meta","compact","body","title"]}]}}});function $o(...e){return Oo(we(e))}export{we as a,$o as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as f,p as d,q as p,i as u,c as s,S as b,A as $,K as L,t as g,g as P,h as q,a as A,d as E,b as J,e as K}from"./define-By-uL588.js";import{c as m}from"./cn-DN5AWfiS.js";import{c as M}from"./check-njkVdZu2.js";import{c as R}from"./copy-n9u9rqpi.js";const B={bash:()=>import("./bash-InADTalH.js"),javascript:()=>import("./javascript-C25yR2R2.js"),typescript:()=>import("./typescript-RycA9KXf.js"),tsx:()=>import("./tsx-B8rCNbgL.js"),html:()=>import("./html-CPZ3oZQ7.js"),css:()=>import("./css-M7EaDHN_.js"),json:()=>import("./json-DxJze_jm.js"),vue:()=>import("./vue-BmIZj4XD.js"),svelte:()=>import("./svelte--5p79yCD.js")},D={"github-dark-dimmed":()=>import("./github-dark-dimmed-DUshB20C.js"),"github-light":()=>import("./github-light-JYsPkUQd.js")},F={js:"javascript",ts:"typescript",jsx:"tsx",sh:"bash",shell:"bash"},w="github-dark-dimmed";let G={...B},I={...D},N={...F},v=null;const y=new Set,T=new Set;function O(){return v||(v=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([import("./core-AYMC6_lb.js"),import("./engine-javascript-vq0WuIJl.js")]);return e({themes:[],langs:[],engine:t()})})()),v}function j(e){return N[e]??e}async function Q(e,t){const n=j(t);if(y.has(n))return!0;const r=G[n];return r?(await e.loadLanguage(r()),y.add(n),!0):!1}async function k(e,t){if(T.has(t))return!0;const n=I[t];return n?(await e.loadTheme(n()),T.add(t),!0):!1}function U(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function h(e){return`<pre><code>${U(e)}</code></pre>`}async function V(e,t,n){if(!e)return h(e);try{const r=await O();if(!await Q(r,t))return h(e);const a=await k(r,n)?n:await k(r,w)?w:null;return a?r.codeToHtml(e,{lang:j(t),theme:a}):h(e)}catch{return h(e)}}var W=g("<button type=button part=copy>"),C=g("<div>"),X=g("<div tabindex=0>"),Y=g("<div tabindex=0><pre><code>");const Z=2e3;function _(e){const[t,n]=P(!1);let r;return q(()=>clearTimeout(r)),(()=>{var a=W();return a.$$click=()=>{var i;Promise.resolve((i=navigator.clipboard)==null?void 0:i.writeText(e.text)).catch(()=>{}),n(!0),clearTimeout(r),r=setTimeout(()=>n(!1),Z)},u(a,s(b,{get when(){return t()},get fallback(){return s(R,{size:14,"aria-hidden":"true"})},get children(){return s(M,{size:14,"aria-hidden":"true",class:"text-emerald-500"})}})),A(i=>{var l=t()?"Copied":"Copy code",c=m("inline-flex items-center justify-center rounded-md p-1.5","text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring");return l!==i.e&&E(a,"aria-label",i.e=l),c!==i.t&&J(a,i.t=c),i},{e:void 0,t:void 0}),a})()}function ee(e){const[t,n]=f(e,["children","class","copy","copyText"]);return(()=>{var r=C();return d(r,p({get class(){return m("not-prose flex w-full flex-col overflow-clip border","border-border bg-card text-card-foreground","rounded-[var(--kai-code-radius,0.75rem)]",t.class)}},n),!1,!0),u(r,s(b,{get when(){return t.copy},get children(){return s(re,{class:"justify-end border-b border-border px-2 py-1",get children(){return s(_,{get text(){return t.copyText??""}})}})}}),null),u(r,()=>t.children,null),r})()}function te(e){const[t,n]=f(e,["code","language","theme","class"]),r=$(),a=()=>t.language??"tsx",i=()=>t.theme??r.codeTheme(),l=()=>r.codeHighlight(),[c]=L(()=>l()?{code:t.code,lang:a(),theme:i()}:null,o=>V(o.code,o.lang,o.theme)),S=()=>{switch(r.proseSize()){case"xs":return"text-caption";case"sm":return"text-compact";case"base":return"text-sm";case"lg":return"text-base"}},x=()=>m("w-full overflow-x-auto kai-focus-inset [&>pre]:px-4 [&>pre]:py-4",S(),t.class);return s(b,{get when(){return c()},get fallback(){return(()=>{var o=Y(),H=o.firstChild,z=H.firstChild;return d(o,p({get class(){return x()}},n),!1,!0),u(z,()=>t.code),o})()},get children(){var o=X();return d(o,p({get class(){return x()},get innerHTML(){return c()}},n),!1,!1),o}})}function re(e){const[t,n]=f(e,["children","class"]);return(()=>{var r=C();return d(r,p({get class(){return m("flex items-center justify-between",t.class)}},n),!1,!0),u(r,()=>t.children),r})()}K(["click"]);export{ee as C,te as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as c,g as k,w as I,c as y,
|
|
1
|
+
import{s as c,g as k,w as I,c as y,p,q as u,i as v,m as h,a as R,J as q,b as E,t as g,G as H,H as J}from"./define-By-uL588.js";import{c as C}from"./cn-DN5AWfiS.js";var P=g("<div>"),A=g("<button>"),G=g("<div><div>");const w=H(),m=()=>{const o=J(w);if(!o)throw new Error("Collapsible parts must be used within <Collapsible>");return o};function N(o){var n;const[e,l]=c(o,["open","defaultOpen","onOpenChange","disabled","controllerRef","children","class"]),[r,a]=k(e.defaultOpen??!1),s=()=>e.open!==void 0,t=()=>s()?!!e.open:r(),i=()=>!!e.disabled,f=d=>{var b;t()!==d&&(s()||a(d),(b=e.onOpenChange)==null||b.call(e,d))},x=()=>{i()||f(!t())};(n=e.controllerRef)==null||n.call(e,{open:t,setOpen:f});const O=I();return y(w.Provider,{value:{open:t,toggle:x,contentId:O,disabled:i},get children(){var d=P();return p(d,u({get class(){return e.class}},l,{get"data-expanded"(){return t()?"":void 0},get"data-closed"(){return t()?void 0:""},get"data-state"(){return t()?"open":"closed"}}),!1,!0),v(d,()=>e.children),d}})}function U(o){const n=m(),[e,l]=c(o,["children","class","as","onClick"]),r=()=>({type:"button","aria-expanded":n.open(),"aria-controls":n.contentId,disabled:n.disabled()||void 0,"data-expanded":n.open()?"":void 0,"data-closed":n.open()?void 0:"","data-state":n.open()?"open":"closed",onClick:a=>{n.disabled()||(typeof e.onClick=="function"&&e.onClick(a),n.toggle())},class:e.class,...l});return h(()=>h(()=>!!e.as)()?e.as(r()):(()=>{var a=A();return p(a,u(r),!1,!0),v(a,()=>e.children),a})())}function _(o){const n=m(),[e,l]=c(o,["children","class"]);return(()=>{var r=G(),a=r.firstChild;return p(r,u(l,{get id(){return n.contentId},get"data-expanded"(){return n.open()?"":void 0},get"data-closed"(){return n.open()?void 0:""},get class(){return C("grid transition-[grid-template-rows] duration-200 ease-out",n.open()?"grid-rows-[1fr]":"grid-rows-[0fr]")}}),!1,!0),v(a,()=>e.children),R(s=>{var t=!n.open(),i=C("overflow-hidden",e.class);return t!==s.e&&q(r,"inert",s.e=t),i!==s.t&&E(a,s.t=i),s},{e:void 0,t:void 0}),r})()}export{N as C,U as a,_ as b};
|
|
@@ -5,6 +5,13 @@ export interface AttachmentData {
|
|
|
5
5
|
type: 'file' | 'source-document';
|
|
6
6
|
filename?: string;
|
|
7
7
|
mediaType?: string;
|
|
8
|
+
/** A `data:` URI or an https URL — this is the field the wire encodes, so it
|
|
9
|
+
* is what reaches the model. NEVER `URL.createObjectURL`: an object URL
|
|
10
|
+
* resolves only inside the tab that minted it, so a `blob:` URL renders a
|
|
11
|
+
* flawless preview and is meaningless to any provider —
|
|
12
|
+
* `toOpenAIMessages`/`toAnthropicMessages` refuse it rather than send an
|
|
13
|
+
* address the model cannot fetch. Read picked files with
|
|
14
|
+
* `FileReader.readAsDataURL` instead (see `elements/default-input.tsx`). */
|
|
8
15
|
url?: string;
|
|
9
16
|
title?: string;
|
|
10
17
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Accessor } from 'solid-js';
|
|
2
2
|
/**
|
|
3
|
-
* Fit-to-container scaling
|
|
3
|
+
* Fit-to-container scaling: the size tiers are fixed
|
|
4
4
|
* px by design (`sizes.ts`), so a container narrower than a tier's natural
|
|
5
5
|
* footprint used to CLIP the picture at its edges. The dispatcher now scales
|
|
6
6
|
* the WHOLE visualization down proportionally to fit, and renders byte-equal
|
|
@@ -51,6 +51,19 @@ export interface CardRendererProps {
|
|
|
51
51
|
* supplied through `schemas` — is never validated either way.
|
|
52
52
|
*/
|
|
53
53
|
validateCards?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The custom-element host node to emit off when no `CardProvider` is above this
|
|
56
|
+
* renderer: events leave as the bubbling, composed `kai-card` CustomEvent
|
|
57
|
+
* (`emitCardEvent`), so `listenForCardEvents(element)` — or a plain
|
|
58
|
+
* `addEventListener('kai-card', …)` on the element — receives them.
|
|
59
|
+
*
|
|
60
|
+
* This is what makes cards INSIDE `<kai-chat>`/`<kai-message>`/`<kai-thread>`
|
|
61
|
+
* interactive: those facades pass their own host element down here, and
|
|
62
|
+
* with neither this nor a `CardProvider` every emit — ready/action/submit/
|
|
63
|
+
* dismiss/reopen and the contract `error` — used to be silently discarded.
|
|
64
|
+
* An ambient `CardProvider` still wins when present.
|
|
65
|
+
*/
|
|
66
|
+
hostElement?: HTMLElement;
|
|
54
67
|
}
|
|
55
68
|
/**
|
|
56
69
|
* True when the consumer registered a schema for this type.
|
|
@@ -16,6 +16,10 @@ export interface CardProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
|
16
16
|
/** Stable id for the heading (so composing cards can `aria-labelledby` it).
|
|
17
17
|
* Auto-generated when omitted. */
|
|
18
18
|
headingId?: string;
|
|
19
|
+
/** Stable id for the description (so composing cards can `aria-describedby` it
|
|
20
|
+
* — e.g. `kai-choice`'s radiogroup points at its prompt). Auto-generated when
|
|
21
|
+
* omitted, mirroring `headingId`. */
|
|
22
|
+
descriptionId?: string;
|
|
19
23
|
/** Render a dismiss (×) button that hides the card and calls `onDismiss`.
|
|
20
24
|
* Opt-in, OFF by default — the contract cards never set it, so they are
|
|
21
25
|
* unaffected. */
|
|
@@ -6,9 +6,11 @@ import { MediaTypeFilter } from '../wire/media-types.js';
|
|
|
6
6
|
import { TriggerDef } from './composer.js';
|
|
7
7
|
import { ChatMessage } from '../elements/chat-types.js';
|
|
8
8
|
import { ProseSize } from '../primitives/chat-config.js';
|
|
9
|
-
import { ModelOption } from '../types.js';
|
|
9
|
+
import { ModelOption, HomeConfig, HomeLinkEntry } from '../types.js';
|
|
10
10
|
import { CardComponentMap } from '../primitives/card-registry.js';
|
|
11
11
|
import { CardSchemaMap } from './card-renderer.js';
|
|
12
|
+
import { JSX } from 'solid-js';
|
|
13
|
+
import { ConversationStore } from '../primitives/conversation-store.js';
|
|
12
14
|
export interface ChatThreadContextUsage {
|
|
13
15
|
usedTokens: number;
|
|
14
16
|
maxTokens: number;
|
|
@@ -33,6 +35,11 @@ export interface ChatThreadProps {
|
|
|
33
35
|
* the kit checks its own seven built-ins and leaves your own card type
|
|
34
36
|
* unvalidated. A schema here WINS over a built-in of the same name. */
|
|
35
37
|
cardSchemas?: CardSchemaMap;
|
|
38
|
+
/** The custom-element host node to emit card events off when no `CardProvider`
|
|
39
|
+
* is present, forwarded through `MessageBody` to `CardRenderer`. The
|
|
40
|
+
* element facades pass their own host element so card events leave as the
|
|
41
|
+
* bubbling `kai-card` CustomEvent. */
|
|
42
|
+
cardHostElement?: HTMLElement;
|
|
36
43
|
/** Value of the input. A **string** is controlled (the host owns the text and
|
|
37
44
|
* updates it on `kai-value-change`). A **ComposerDoc** is a one-time seed that
|
|
38
45
|
* pre-populates pills; the user then edits freely. Leave unset for uncontrolled. */
|
|
@@ -61,6 +68,19 @@ export interface ChatThreadProps {
|
|
|
61
68
|
/** Enable Shiki syntax highlighting in code blocks. Turn off to render plain
|
|
62
69
|
* `<pre>` blocks (lighter, no highlighter load). Default true. */
|
|
63
70
|
codeHighlight?: boolean;
|
|
71
|
+
/** How `reasoning` parts render across the thread. `'full'` (default) is the
|
|
72
|
+
* current collapsible-disclosure behavior; `'compact'` shows only a shimmer
|
|
73
|
+
* loader while a reasoning part streams and nothing once it settles (no
|
|
74
|
+
* expandable detail); `'off'` renders reasoning parts not at all. Forwarded
|
|
75
|
+
* to every `MessageBody` as `reasoningMode`. */
|
|
76
|
+
reasoning?: 'full' | 'compact' | 'off';
|
|
77
|
+
/** Seeds the reasoning disclosure open AND keeps it tracking the stream
|
|
78
|
+
* (open while streaming, closes when it settles): the pre-Task-19f `full`
|
|
79
|
+
* behavior. Default false/absent: the panel starts closed (just the
|
|
80
|
+
* "Thinking" shimmer chip) and only opens on click, the current default
|
|
81
|
+
* (owner ruling, 2026-08-26). Meaningless when `reasoning` is `'compact'`
|
|
82
|
+
* or `'off'`. Forwarded to every `MessageBody` as `reasoningDefaultOpen`. */
|
|
83
|
+
reasoningOpen?: boolean;
|
|
64
84
|
/** Optional header title shown on the left of the header. */
|
|
65
85
|
chatTitle?: string;
|
|
66
86
|
/** Optional model list. When set (>1 model) a ModelSwitcher is shown in the
|
|
@@ -78,12 +98,107 @@ export interface ChatThreadProps {
|
|
|
78
98
|
headerStart?: boolean;
|
|
79
99
|
/** Whether the host has `slot="header-end"` content (right of the controls). */
|
|
80
100
|
headerEnd?: boolean;
|
|
101
|
+
/** Extra content rendered in the header-end region, AFTER `slot="header-end"`.
|
|
102
|
+
* This is a JSX escape hatch for a caller composing `ChatThread` directly as a
|
|
103
|
+
* Solid component (no shadow-DOM host, so there is no light-DOM node to slot) —
|
|
104
|
+
* the `kai-dock`-docked construct widget is the motivating case: it needs its
|
|
105
|
+
* own close affordance to sit IN the header row, sharing it with the title
|
|
106
|
+
* instead of floating as a second control with no visible relationship to the
|
|
107
|
+
* chat surface. Renders alongside the named slot rather than replacing it, so a
|
|
108
|
+
* real `slot="header-end"` consumer and this prop can both be present. Counts
|
|
109
|
+
* toward `showHeader()` the same as `headerEnd`, so a construct with no title
|
|
110
|
+
* and only this content still gets a header row to sit in. */
|
|
111
|
+
headerEndContent?: JSX.Element;
|
|
112
|
+
/** Turns on the prior-conversations list: a list-toggle button appears in
|
|
113
|
+
* the header row and the panel gains a second, list, view (C-1 — one
|
|
114
|
+
* panel, two states, never a persistent sidebar). Off by default, same
|
|
115
|
+
* convention as every other capability in this file. Requires BOTH
|
|
116
|
+
* `store` AND `onConversationLoad` — the second is the only path a caller
|
|
117
|
+
* has to actually receive a loaded conversation's messages back (this
|
|
118
|
+
* component never mutates `props.messages` itself). Set with either
|
|
119
|
+
* missing, the feature decides loudly (one `console.error` on mount) and
|
|
120
|
+
* stays visually off rather than throwing or silently going inert: a
|
|
121
|
+
* `store` with no `onConversationLoad` would otherwise make row-select/
|
|
122
|
+
* new/restore fire and do nothing visible, and mount's own auto-restore
|
|
123
|
+
* would still stamp an active conversation id that the save effect could
|
|
124
|
+
* then clobber with whatever `props.messages` the caller drives in next. */
|
|
125
|
+
conversations?: boolean;
|
|
126
|
+
/** The adapter this thread persists through when `conversations` is on:
|
|
127
|
+
* `list()` on mount and on every list-view open, `load(id)` on row select,
|
|
128
|
+
* `save(id, messages)` on every message-array change for the active
|
|
129
|
+
* conversation. A kit-owned INTERFACE (C-3) — the dev owns invocation,
|
|
130
|
+
* transport, auth and retention entirely; `localStorageStore`/`fetchStore`
|
|
131
|
+
* (`@kitn.ai/ui`'s `primitives/conversation-store`) are the shipped
|
|
132
|
+
* built-ins. Set as a JS property; never expressible as an attribute (an
|
|
133
|
+
* adapter is a live object of functions, not scalar data). */
|
|
134
|
+
store?: ConversationStore;
|
|
135
|
+
/** Fires whenever `load(id)` resolves and this thread's `messages` are
|
|
136
|
+
* about to be replaced with that conversation's history — the hook a
|
|
137
|
+
* caller uses to actually own and re-render `messages` (this component
|
|
138
|
+
* does not mutate `props.messages` itself; C-8 keeps the state machine
|
|
139
|
+
* here but the message ARRAY stays the caller's own state, matching every
|
|
140
|
+
* other prop in this file). The second argument is the conversation's id
|
|
141
|
+
* — `undefined` for the "new conversation" case (C-6: no id exists until
|
|
142
|
+
* the first message mints one). Required whenever `conversations` is on;
|
|
143
|
+
* see that prop's own doc for the guard this component runs without it. */
|
|
144
|
+
onConversationLoad?: (messages: ChatMessage[], id?: string) => void;
|
|
145
|
+
/** Whether the surrounding chrome that HOSTS this thread is currently
|
|
146
|
+
* VISIBLE to the visitor — e.g. a docked widget's open/closed state.
|
|
147
|
+
* `ChatThread` has no knowledge of whatever hosts it (a `Dock`, a plain
|
|
148
|
+
* page, anything — same boundary `closeConversationsList` documents), so
|
|
149
|
+
* this is the seam: a host that can hide itself sets it, everyone else
|
|
150
|
+
* leaves it unset.
|
|
151
|
+
*
|
|
152
|
+
* Meaningful only when `conversations` is on, where it's the third leg of
|
|
153
|
+
* "seen" (owner round, 2026-08-26 — unread indicators): the active
|
|
154
|
+
* conversation counts as seen, and gets `store.markRead` called for it,
|
|
155
|
+
* only while it's ALSO the active conversation AND the chat view (not the
|
|
156
|
+
* list) is showing AND this is true. Undeclared/`true` (the default) means
|
|
157
|
+
* "always visible" — correct for every layout with no show/hide concept at
|
|
158
|
+
* all (fullscreen/aside/split/custom) and for any widget consumer that
|
|
159
|
+
* doesn't wire it, which just means unread never distinguishes "closed"
|
|
160
|
+
* from "open" for them (a smaller inaccuracy than the alternative: without
|
|
161
|
+
* this leg, a message arriving to the active conversation while the
|
|
162
|
+
* widget is actually closed would get silently marked read behind the
|
|
163
|
+
* visitor's back, purely because it happened to be the active id). */
|
|
164
|
+
hostOpen?: boolean;
|
|
165
|
+
/** Fires whenever "is any OTHER conversation (not the active one) unread"
|
|
166
|
+
* changes — the value this thread already renders as a dot on its own
|
|
167
|
+
* header toggle, reported outward so a sibling control with no view into
|
|
168
|
+
* `ChatThread`'s internal conversation-summary state (a `Dock`'s own
|
|
169
|
+
* `unread` prop, say) can mirror it. Only meaningful with `conversations`
|
|
170
|
+
* on; never fires otherwise. */
|
|
171
|
+
onUnreadChange?: (unread: boolean) => void;
|
|
172
|
+
/** Turns on the widget home screen (Intercom-pattern, H-1/H-2): the panel
|
|
173
|
+
* boots into a `home` view — greeting, most-recent-conversation card, a
|
|
174
|
+
* "new conversation" CTA, and host-defined links — with a Home/Messages
|
|
175
|
+
* tab bar beneath the content area. The prior-conversations list moves
|
|
176
|
+
* from the header toggle onto the Messages tab (H-2); a drilled-into chat
|
|
177
|
+
* (from a list row, the recent card, or "new conversation") hides the tab
|
|
178
|
+
* bar and shows a back arrow in the header instead. Off by default: unset,
|
|
179
|
+
* the widget renders byte-for-byte as it does today. */
|
|
180
|
+
home?: HomeConfig;
|
|
181
|
+
/** Fires when a `home.links` entry with no `href` is activated (an
|
|
182
|
+
* `href`-bearing entry navigates as a real anchor instead — see
|
|
183
|
+
* `HomePanelProps.onLink`). Meaningful only when `home` is set. */
|
|
184
|
+
onHomeLink?: (entry: HomeLinkEntry) => void;
|
|
81
185
|
/** REPLACE: full custom header in place of the built-in title/model/context bar. */
|
|
82
186
|
headerFull?: boolean;
|
|
83
187
|
/** INJECT: left sidebar column (e.g. a conversation list / your own nav). */
|
|
84
188
|
sidebar?: boolean;
|
|
85
189
|
/** REPLACE: custom zero-state rendered in the message area while the thread is empty (replaces the empty message list only; the composer and its suggestions still render). */
|
|
86
190
|
empty?: boolean;
|
|
191
|
+
/** REPLACE, JSX form: the empty-state content itself, for a caller composing
|
|
192
|
+
* `ChatThread` directly as a Solid component rather than through the `<kai-chat>`
|
|
193
|
+
* shadow-DOM boundary that `empty`/`slot="empty"` targets. Renders INSIDE this
|
|
194
|
+
* component's own tree — so a caller passing the kit's own `<Empty>` composition
|
|
195
|
+
* (`components/empty.tsx`) gets it fully styled by the adopted stylesheet, unlike
|
|
196
|
+
* `slot="empty"`: that slot only ever receives LIGHT-DOM children of the shadow
|
|
197
|
+
* HOST, and light-DOM nodes are outside the shadow root's adopted stylesheets, so
|
|
198
|
+
* Tailwind-utility-class content projected there renders bare. Takes priority
|
|
199
|
+
* over `empty`/`slot="empty"` when both are set — the two are alternate delivery
|
|
200
|
+
* mechanisms for the same region, not additive like `headerEndContent`. */
|
|
201
|
+
emptyContent?: JSX.Element;
|
|
87
202
|
/** REPLACE: full custom composer in place of the built-in prompt input. The
|
|
88
203
|
* projected content wires its own submit (the data-flow boundary). */
|
|
89
204
|
composer?: boolean;
|
|
@@ -98,6 +213,10 @@ export interface ChatThreadProps {
|
|
|
98
213
|
accept?: MediaTypeFilter;
|
|
99
214
|
/** Files the composer refused because `accept` excluded them. */
|
|
100
215
|
onAttachmentsRejected?: (rejected: RejectedAttachment[]) => void;
|
|
216
|
+
/** When `false`, hides the built-in paperclip attach button. Defaults to
|
|
217
|
+
* `true` (undeclared keeps today's behavior: attach visible), matching
|
|
218
|
+
* `DefaultPromptInput`'s own default: only an explicit `false` hides it. */
|
|
219
|
+
attach?: boolean;
|
|
101
220
|
/** Show a web-search (Globe) button in the input toolbar; calls `onWebSearch`. */
|
|
102
221
|
webSearch?: boolean;
|
|
103
222
|
/** Show a Voice (Mic) button in the input toolbar; fires a `voice` event. */
|
|
@@ -133,5 +252,19 @@ export interface ChatThreadController {
|
|
|
133
252
|
clear(): void;
|
|
134
253
|
send(): void;
|
|
135
254
|
scrollToBottom(behavior?: ScrollBehavior): void;
|
|
255
|
+
/** Force the widget back to its default landing view — `'home'` when the
|
|
256
|
+
* `home` prop is set (H-5), `'chat'` otherwise (a no-op if already there,
|
|
257
|
+
* or if neither `home` nor `conversations` is on). ChatThread has no knowledge of
|
|
258
|
+
* whatever chrome hosts it — a `Dock`, a plain page, anything — so it
|
|
259
|
+
* cannot know when that host closes. The seam is this one imperative
|
|
260
|
+
* call: a host that can go from visible to hidden and back (the `kai-dock`
|
|
261
|
+
* widget being the motivating case) calls it on every hide, so the NEXT
|
|
262
|
+
* open always lands on the chat view rather than wherever the list was
|
|
263
|
+
* left (owner: reopening the widget should show the default screen, not
|
|
264
|
+
* a stale list view). `Dock`'s own `onOpenChange` already fires on every
|
|
265
|
+
* close path — header X, the launcher toggle, and Escape — so a single
|
|
266
|
+
* `onOpenChange={(open) => !open && controller.closeConversationsList()}`
|
|
267
|
+
* at the call site covers all three with no per-path wiring. */
|
|
268
|
+
closeConversationsList(): void;
|
|
136
269
|
}
|
|
137
|
-
export declare function ChatThread(props: ChatThreadProps):
|
|
270
|
+
export declare function ChatThread(props: ChatThreadProps): JSX.Element;
|
|
@@ -15,9 +15,25 @@ export interface ConversationItemProps {
|
|
|
15
15
|
* ticking clock. Returns '' for a missing or unparseable date.
|
|
16
16
|
*/
|
|
17
17
|
export declare function relativeTimeShort(iso?: string, now?: number): string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether a conversation should show an unread indicator (owner round,
|
|
20
|
+
* 2026-08-26). `lastReadAt`'s own doc (`types.ts`) has the full contract;
|
|
21
|
+
* this is the one place that reads it, so both list surfaces (this file's
|
|
22
|
+
* `ConversationItem` and the widget-box `ConversationPanel`) derive it
|
|
23
|
+
* identically rather than each restating the comparison.
|
|
24
|
+
*
|
|
25
|
+
* Absent `lastReadAt` reads as NOT unread — the decide-loudly default for a
|
|
26
|
+
* store that never implements `ConversationStore.markRead` at all (every
|
|
27
|
+
* summary it returns leaves the field undefined forever, so this always
|
|
28
|
+
* returns `false` for it) rather than guessing "probably unread" from a
|
|
29
|
+
* signal the store never actually provided. Defensive `Date.parse`, same
|
|
30
|
+
* pattern as `relativeTimeShort` above: an unparsable date reads as not
|
|
31
|
+
* unread rather than throwing.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isConversationUnread(conv: Pick<ConversationSummary, 'updatedAt' | 'lastReadAt'>): boolean;
|
|
18
34
|
/**
|
|
19
35
|
* The slotted-item shape rendered by `<kai-conversation-item>` — the composed
|
|
20
|
-
* row of the consumer-owned loop
|
|
36
|
+
* row of the consumer-owned loop. Distinct from the
|
|
21
37
|
* data-mode `ConversationItem` above, which batteries mode keeps rendering
|
|
22
38
|
* unchanged: this one takes REGIONS, not a `ConversationSummary`.
|
|
23
39
|
*
|
|
@@ -25,16 +41,19 @@ export declare function relativeTimeShort(iso?: string, now?: number): string;
|
|
|
25
41
|
* title), plus `leading`, `meta`, and `menu`. The `menu` region takes the
|
|
26
42
|
* consumer's OWN popover (rename / fork / archive live there); the component
|
|
27
43
|
* provides only the region plus focus and ARIA plumbing, never a declarative
|
|
28
|
-
* actions prop. Activation
|
|
29
|
-
* (`createConversationItemsController` in
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
44
|
+
* actions prop. Activation has two modes: inside `<kai-conversations>` it
|
|
45
|
+
* lives in the CONTAINER (`createConversationItemsController` in
|
|
46
|
+
* conversation-list.tsx — this row renders no handler and the
|
|
47
|
+
* `data-kai-item-menu` marker on the menu region is what the container's
|
|
48
|
+
* activation guard keys off so a click in the consumer's menu never also
|
|
49
|
+
* selects the row); STANDALONE, `onActivate` makes the row body
|
|
50
|
+
* its own tabbable button-role control — click / Enter / Space — with the menu
|
|
51
|
+
* still outside the control as the body's sibling.
|
|
33
52
|
*
|
|
34
53
|
* ARIA contract for direct Solid use: the row renders `role="listitem"` holding
|
|
35
54
|
* a `role="button"` body (`aria-current` marks the active row, the same dialect
|
|
36
55
|
* as the batteries-mode row above) with the menu as the body's tabbable SIBLING
|
|
37
|
-
* (
|
|
56
|
+
* (axe `nested-interactive` bans focusable descendants of
|
|
38
57
|
* a control, and `aria-required-children` outlaws non-option content anywhere
|
|
39
58
|
* inside a listbox, which is why the vocabulary is not listbox/option). Render
|
|
40
59
|
* your loop's rows inside a `role="list"` ancestor; element mode has no such
|
|
@@ -64,6 +83,15 @@ export interface SlottedConversationItemProps {
|
|
|
64
83
|
* Solid consumers rendering the component directly leave it off and the row
|
|
65
84
|
* itself is the group. */
|
|
66
85
|
hostSemantics?: boolean;
|
|
86
|
+
/** STANDALONE activation: when set, the row body is itself the
|
|
87
|
+
* activation control — `tabindex="0"` on the `role="button"` body, and
|
|
88
|
+
* click / Enter / Space call this. The menu region never triggers it (it is
|
|
89
|
+
* the body's sibling, outside the control). Inside `<kai-conversations>`
|
|
90
|
+
* leave it UNSET: the container's controller owns activation (its delegated
|
|
91
|
+
* click/keydown → `kai-conversation-select`) plus roving tabindex, and a
|
|
92
|
+
* handler here would double-fire. The `kai-conversation-item` facade passes
|
|
93
|
+
* it only when the item is standalone. */
|
|
94
|
+
onActivate?: () => void;
|
|
67
95
|
class?: string;
|
|
68
96
|
}
|
|
69
97
|
export declare function SlottedConversationItem(props: SlottedConversationItemProps): JSX.Element;
|
|
@@ -19,6 +19,18 @@ export declare function CollapsedRail(props: CollapsedRailProps): JSX.Element;
|
|
|
19
19
|
* the plain-HTML spellings (host `id` matches the `<kai-conversation>`
|
|
20
20
|
* data-carrier precedent). */
|
|
21
21
|
export declare function readConversationItemId(el: Element): string;
|
|
22
|
+
/** Whether a `<kai-conversation-item>` is STANDALONE — outside the management
|
|
23
|
+
* of a `<kai-conversations>` container — and therefore activates ITSELF:
|
|
24
|
+
* the facade makes its row body a
|
|
25
|
+
* tabbable button and fires `kai-select` on click / Enter / Space. Derived
|
|
26
|
+
* from the container's own membership rule, not from mere ancestry: item mode
|
|
27
|
+
* queries `:scope > kai-conversation-item` (direct children only), so an item
|
|
28
|
+
* wrapped in another element inside a container is standalone too — the
|
|
29
|
+
* container's controller never stamps or activates it. Inside a container
|
|
30
|
+
* (a direct child), the parent-item contract is the ONLY activation
|
|
31
|
+
* path: the container dispatches `kai-conversation-select` and owns roving
|
|
32
|
+
* tabindex, and the item fires nothing of its own. */
|
|
33
|
+
export declare function isStandaloneConversationItem(el: Element): boolean;
|
|
22
34
|
export interface ConversationItemsControllerOptions {
|
|
23
35
|
/** The current slotted item hosts, in DOM order. */
|
|
24
36
|
getItems: () => HTMLElement[];
|
|
@@ -39,7 +51,7 @@ export interface ConversationItemsController {
|
|
|
39
51
|
handleKeyDown(e: KeyboardEvent): void;
|
|
40
52
|
}
|
|
41
53
|
/**
|
|
42
|
-
* The parent-item contract of item mode
|
|
54
|
+
* The parent-item contract of item mode, as a pure-DOM
|
|
43
55
|
* controller so it is host-agnostic: the `kai-conversations` facade wires it over
|
|
44
56
|
* its slotted `kai-conversation-item` children, and the jsdom contract tests
|
|
45
57
|
* drive it over plain nodes. Solid context cannot cross the element boundary
|
|
@@ -54,8 +66,8 @@ export interface ConversationItemsController {
|
|
|
54
66
|
* left alone);
|
|
55
67
|
* - roving tabindex — exactly one body node `tabindex="0"` (the active
|
|
56
68
|
* item's, else the first's), the rest `-1`, re-derived on every `sync()`;
|
|
57
|
-
* menu content keeps its natural tab order (it is the body's SIBLING,
|
|
58
|
-
*
|
|
69
|
+
* menu content keeps its natural tab order (it is the body's SIBLING, not a
|
|
70
|
+
* descendant);
|
|
59
71
|
* - activation (click / Enter / Space) calls `onSelect` with the item's id, and
|
|
60
72
|
* is SUPPRESSED when the composed path crosses the item's `menu` region
|
|
61
73
|
* (light-DOM `slot="menu"` content or the shadow `data-kai-item-menu`
|
|
@@ -85,8 +97,8 @@ export interface ConversationListProps {
|
|
|
85
97
|
/** Receive the imperative controller once mounted. The `kai-conversations`
|
|
86
98
|
* facade uses it to focus / clear the internal search input. */
|
|
87
99
|
controllerRef?: (controller: ConversationListController) => void;
|
|
88
|
-
/** Item mode
|
|
89
|
-
*
|
|
100
|
+
/** Item mode: your OWN rows, rendered inside a list region in place of the
|
|
101
|
+
* data rows. When set, the built-in search
|
|
90
102
|
* filter, grouping and empty/no-match states do not apply — the consumer's
|
|
91
103
|
* loop owns them — while the chrome (header, search box, new-chat, footer)
|
|
92
104
|
* still renders and `onSearchChange` still reports queries. The
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ConversationSummary } from '../types.js';
|
|
2
|
+
export interface ConversationPanelProps {
|
|
3
|
+
conversations: ConversationSummary[];
|
|
4
|
+
activeId?: string;
|
|
5
|
+
onSelect: (id: string) => void;
|
|
6
|
+
onNewChat: () => void;
|
|
7
|
+
/** Wording for the floating new-conversation pill. Defaults to "New conversation". */
|
|
8
|
+
newChatLabel?: string;
|
|
9
|
+
class?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The widget-box list view (owner rework, 2026-08-26 — the earlier retrofit
|
|
13
|
+
* of the desktop `ConversationList` into this box was rejected at the live
|
|
14
|
+
* demo). NOT `ConversationList`, which stays the desktop-sidebar surface
|
|
15
|
+
* unchanged: no search box, no group headers, no per-row menu, no full-width
|
|
16
|
+
* footer bar, no second "+" beside the header toggle. A row is a
|
|
17
|
+
* conversation, full stop — bold title, right-aligned relative time, one
|
|
18
|
+
* truncated line of the last message. The ONE way to start a new
|
|
19
|
+
* conversation is the floating pill near the bottom.
|
|
20
|
+
*
|
|
21
|
+
* Modeled directly on Intercom's Messenger "Messages" tab (first-hand
|
|
22
|
+
* research: `.superpowers/sdd/2026-08-26-conversations/
|
|
23
|
+
* research-intercom-messages-view.md`) — a box this size gets one job at a
|
|
24
|
+
* time: browsing conversations OR having one, never both, and the list
|
|
25
|
+
* replaces the ENTIRE content area (`ChatThread` hides the thread,
|
|
26
|
+
* suggestions and composer while this renders — see its `view() === 'list'`
|
|
27
|
+
* branch).
|
|
28
|
+
*/
|
|
29
|
+
export declare function ConversationPanel(props: ConversationPanelProps): import("solid-js").JSX.Element;
|