@usetheo/ui 0.13.0 → 0.13.2
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/CHANGELOG.md +541 -69
- package/DESIGN.md +18 -18
- package/NOTICE +2 -2
- package/README.md +54 -52
- package/dist/chunk-23YEYNDS.js +89 -0
- package/dist/chunk-23YEYNDS.js.map +1 -0
- package/dist/chunk-25KBUQEQ.js +95 -0
- package/dist/chunk-25KBUQEQ.js.map +1 -0
- package/dist/chunk-2NTEJRPA.js +212 -0
- package/dist/chunk-2NTEJRPA.js.map +1 -0
- package/dist/chunk-2NZYMQKT.js +56 -0
- package/dist/chunk-2NZYMQKT.js.map +1 -0
- package/dist/chunk-2OVFVPSZ.js +26 -0
- package/dist/chunk-2OVFVPSZ.js.map +1 -0
- package/dist/chunk-2UP7SECE.js +78 -0
- package/dist/chunk-2UP7SECE.js.map +1 -0
- package/dist/chunk-33ETHPT7.js +112 -0
- package/dist/chunk-33ETHPT7.js.map +1 -0
- package/dist/chunk-33IIDFSM.js +43 -0
- package/dist/chunk-33IIDFSM.js.map +1 -0
- package/dist/chunk-345HYADQ.js +88 -0
- package/dist/chunk-345HYADQ.js.map +1 -0
- package/dist/chunk-357XIC2N.js +98 -0
- package/dist/chunk-357XIC2N.js.map +1 -0
- package/dist/chunk-3YOPTHZH.js +31 -0
- package/dist/chunk-3YOPTHZH.js.map +1 -0
- package/dist/chunk-44ZNZZUS.js +111 -0
- package/dist/chunk-44ZNZZUS.js.map +1 -0
- package/dist/chunk-45FWKR23.js +62 -0
- package/dist/chunk-45FWKR23.js.map +1 -0
- package/dist/chunk-47IPOYLQ.js +116 -0
- package/dist/chunk-47IPOYLQ.js.map +1 -0
- package/dist/chunk-4EH6F54D.js +69 -0
- package/dist/chunk-4EH6F54D.js.map +1 -0
- package/dist/chunk-4EKF4EIE.js +140 -0
- package/dist/chunk-4EKF4EIE.js.map +1 -0
- package/dist/chunk-4XYFJIRC.js +65 -0
- package/dist/chunk-4XYFJIRC.js.map +1 -0
- package/dist/chunk-52J7SDYH.js +48 -0
- package/dist/chunk-52J7SDYH.js.map +1 -0
- package/dist/chunk-5YX76GH6.js +70 -0
- package/dist/chunk-5YX76GH6.js.map +1 -0
- package/dist/chunk-624AATQZ.js +77 -0
- package/dist/chunk-624AATQZ.js.map +1 -0
- package/dist/chunk-65YSFZAN.js +192 -0
- package/dist/chunk-65YSFZAN.js.map +1 -0
- package/dist/chunk-6IODJQWC.js +47 -0
- package/dist/chunk-6IODJQWC.js.map +1 -0
- package/dist/chunk-6ORS6XOE.js +57 -0
- package/dist/chunk-6ORS6XOE.js.map +1 -0
- package/dist/chunk-6V2LQEPT.js +165 -0
- package/dist/chunk-6V2LQEPT.js.map +1 -0
- package/dist/chunk-75IDWFYX.js +134 -0
- package/dist/chunk-75IDWFYX.js.map +1 -0
- package/dist/chunk-7BQXMG2A.js +93 -0
- package/dist/chunk-7BQXMG2A.js.map +1 -0
- package/dist/chunk-7RFWVNQA.js +47 -0
- package/dist/chunk-7RFWVNQA.js.map +1 -0
- package/dist/chunk-ABBXLAJW.js +74 -0
- package/dist/chunk-ABBXLAJW.js.map +1 -0
- package/dist/chunk-ACZNFEOZ.js +180 -0
- package/dist/chunk-ACZNFEOZ.js.map +1 -0
- package/dist/chunk-AJ2LNQUQ.js +108 -0
- package/dist/chunk-AJ2LNQUQ.js.map +1 -0
- package/dist/chunk-AX6P3SDS.js +89 -0
- package/dist/chunk-AX6P3SDS.js.map +1 -0
- package/dist/chunk-AXUAQM45.js +154 -0
- package/dist/chunk-AXUAQM45.js.map +1 -0
- package/dist/chunk-B2FL7KBJ.js +65 -0
- package/dist/chunk-B2FL7KBJ.js.map +1 -0
- package/dist/chunk-B42EOFRD.js +106 -0
- package/dist/chunk-B42EOFRD.js.map +1 -0
- package/dist/chunk-BE232OKN.js +42 -0
- package/dist/chunk-BE232OKN.js.map +1 -0
- package/dist/chunk-BSF4Y4UT.js +77 -0
- package/dist/chunk-BSF4Y4UT.js.map +1 -0
- package/dist/chunk-BYUWQ6OP.js +45 -0
- package/dist/chunk-BYUWQ6OP.js.map +1 -0
- package/dist/chunk-C5ULP2P5.js +140 -0
- package/dist/chunk-C5ULP2P5.js.map +1 -0
- package/dist/chunk-CCG7PXLX.js +24 -0
- package/dist/chunk-CCG7PXLX.js.map +1 -0
- package/dist/chunk-CFVSXYVT.js +59 -0
- package/dist/chunk-CFVSXYVT.js.map +1 -0
- package/dist/chunk-CGWIOIEO.js +27 -0
- package/dist/chunk-CGWIOIEO.js.map +1 -0
- package/dist/chunk-CVFSNA4K.js +716 -0
- package/dist/chunk-CVFSNA4K.js.map +1 -0
- package/dist/chunk-CX54TUTT.js +144 -0
- package/dist/chunk-CX54TUTT.js.map +1 -0
- package/dist/chunk-DJK6H3FD.js +200 -0
- package/dist/chunk-DJK6H3FD.js.map +1 -0
- package/dist/chunk-E26M7ATD.js +61 -0
- package/dist/chunk-E26M7ATD.js.map +1 -0
- package/dist/chunk-E63IRXZZ.js +78 -0
- package/dist/chunk-E63IRXZZ.js.map +1 -0
- package/dist/chunk-EOTSD2GL.js +83 -0
- package/dist/chunk-EOTSD2GL.js.map +1 -0
- package/dist/chunk-ESJUISWY.js +45 -0
- package/dist/chunk-ESJUISWY.js.map +1 -0
- package/dist/chunk-ET7A3TQZ.js +158 -0
- package/dist/chunk-ET7A3TQZ.js.map +1 -0
- package/dist/chunk-ETTL6XGU.js +139 -0
- package/dist/chunk-ETTL6XGU.js.map +1 -0
- package/dist/chunk-EWDN56AS.js +24 -0
- package/dist/chunk-EWDN56AS.js.map +1 -0
- package/dist/chunk-FELH4AAQ.js +90 -0
- package/dist/chunk-FELH4AAQ.js.map +1 -0
- package/dist/chunk-FJZKA2LV.js +165 -0
- package/dist/chunk-FJZKA2LV.js.map +1 -0
- package/dist/chunk-FM72LBCJ.js +102 -0
- package/dist/chunk-FM72LBCJ.js.map +1 -0
- package/dist/chunk-FNQASFTK.js +53 -0
- package/dist/chunk-FNQASFTK.js.map +1 -0
- package/dist/chunk-FOE3XXBJ.js +965 -0
- package/dist/chunk-FOE3XXBJ.js.map +1 -0
- package/dist/chunk-GC52HWIL.js +41 -0
- package/dist/chunk-GC52HWIL.js.map +1 -0
- package/dist/chunk-GCKFA7X7.js +83 -0
- package/dist/chunk-GCKFA7X7.js.map +1 -0
- package/dist/chunk-GDMCDW66.js +19 -0
- package/dist/chunk-GDMCDW66.js.map +1 -0
- package/dist/chunk-GLRUM43F.js +121 -0
- package/dist/chunk-GLRUM43F.js.map +1 -0
- package/dist/chunk-H3L7WZDZ.js +74 -0
- package/dist/chunk-H3L7WZDZ.js.map +1 -0
- package/dist/chunk-H55WXDME.js +45 -0
- package/dist/chunk-H55WXDME.js.map +1 -0
- package/dist/chunk-HB45JHMM.js +43 -0
- package/dist/chunk-HB45JHMM.js.map +1 -0
- package/dist/chunk-HETHTYEZ.js +80 -0
- package/dist/chunk-HETHTYEZ.js.map +1 -0
- package/dist/chunk-HHSKNB32.js +55 -0
- package/dist/chunk-HHSKNB32.js.map +1 -0
- package/dist/chunk-HILOUYES.js +151 -0
- package/dist/chunk-HILOUYES.js.map +1 -0
- package/dist/chunk-HKVOCYTN.js +113 -0
- package/dist/chunk-HKVOCYTN.js.map +1 -0
- package/dist/chunk-HNRFBJ25.js +129 -0
- package/dist/chunk-HNRFBJ25.js.map +1 -0
- package/dist/chunk-HTJVHFNW.js +178 -0
- package/dist/chunk-HTJVHFNW.js.map +1 -0
- package/dist/chunk-HZ7Z22VW.js +130 -0
- package/dist/chunk-HZ7Z22VW.js.map +1 -0
- package/dist/chunk-II5Q5RIO.js +236 -0
- package/dist/chunk-II5Q5RIO.js.map +1 -0
- package/dist/chunk-ITEIRMSH.js +121 -0
- package/dist/chunk-ITEIRMSH.js.map +1 -0
- package/dist/chunk-JIZKW3WC.js +74 -0
- package/dist/chunk-JIZKW3WC.js.map +1 -0
- package/dist/chunk-JP3SHERK.js +154 -0
- package/dist/chunk-JP3SHERK.js.map +1 -0
- package/dist/chunk-JR4H3FJ2.js +74 -0
- package/dist/chunk-JR4H3FJ2.js.map +1 -0
- package/dist/chunk-JRW53TVG.js +53 -0
- package/dist/chunk-JRW53TVG.js.map +1 -0
- package/dist/chunk-JS5T2CRO.js +86 -0
- package/dist/chunk-JS5T2CRO.js.map +1 -0
- package/dist/chunk-JXOCE27Z.js +82 -0
- package/dist/chunk-JXOCE27Z.js.map +1 -0
- package/dist/chunk-JYW5YNF7.js +188 -0
- package/dist/chunk-JYW5YNF7.js.map +1 -0
- package/dist/chunk-KHBXI6AV.js +149 -0
- package/dist/chunk-KHBXI6AV.js.map +1 -0
- package/dist/chunk-KXZH7BTX.js +92 -0
- package/dist/chunk-KXZH7BTX.js.map +1 -0
- package/dist/chunk-LB4PMLCX.js +57 -0
- package/dist/chunk-LB4PMLCX.js.map +1 -0
- package/dist/chunk-LMGE2QEO.js +117 -0
- package/dist/chunk-LMGE2QEO.js.map +1 -0
- package/dist/chunk-M74ZYBOK.js +93 -0
- package/dist/chunk-M74ZYBOK.js.map +1 -0
- package/dist/chunk-ML7WLNIK.js +11 -0
- package/dist/chunk-ML7WLNIK.js.map +1 -0
- package/dist/chunk-MLEPCMTF.js +147 -0
- package/dist/chunk-MLEPCMTF.js.map +1 -0
- package/dist/chunk-NSZEZTDO.js +98 -0
- package/dist/chunk-NSZEZTDO.js.map +1 -0
- package/dist/chunk-OMR6ZGME.js +63 -0
- package/dist/chunk-OMR6ZGME.js.map +1 -0
- package/dist/chunk-ORVYP73T.js +223 -0
- package/dist/chunk-ORVYP73T.js.map +1 -0
- package/dist/chunk-OZFUUO2Q.js +50 -0
- package/dist/chunk-OZFUUO2Q.js.map +1 -0
- package/dist/chunk-PJWYIOY4.js +3 -0
- package/dist/chunk-PJWYIOY4.js.map +1 -0
- package/dist/chunk-PXT47DRZ.js +59 -0
- package/dist/chunk-PXT47DRZ.js.map +1 -0
- package/dist/chunk-QBSJM4XI.js +83 -0
- package/dist/chunk-QBSJM4XI.js.map +1 -0
- package/dist/chunk-QBUTRD2M.js +58 -0
- package/dist/chunk-QBUTRD2M.js.map +1 -0
- package/dist/chunk-QCSMJTA6.js +68 -0
- package/dist/chunk-QCSMJTA6.js.map +1 -0
- package/dist/chunk-QNYOIVQ4.js +36 -0
- package/dist/chunk-QNYOIVQ4.js.map +1 -0
- package/dist/chunk-QPURZJJM.js +88 -0
- package/dist/chunk-QPURZJJM.js.map +1 -0
- package/dist/chunk-QTG266XU.js +69 -0
- package/dist/chunk-QTG266XU.js.map +1 -0
- package/dist/chunk-QV4BQRNH.js +29 -0
- package/dist/chunk-QV4BQRNH.js.map +1 -0
- package/dist/chunk-RJ6RAMKH.js +89 -0
- package/dist/chunk-RJ6RAMKH.js.map +1 -0
- package/dist/chunk-RJBCTMVW.js +59 -0
- package/dist/chunk-RJBCTMVW.js.map +1 -0
- package/dist/chunk-RMJYXHBX.js +113 -0
- package/dist/chunk-RMJYXHBX.js.map +1 -0
- package/dist/chunk-RQT5DWGG.js +34 -0
- package/dist/chunk-RQT5DWGG.js.map +1 -0
- package/dist/chunk-SPGNNN4R.js +115 -0
- package/dist/chunk-SPGNNN4R.js.map +1 -0
- package/dist/chunk-SQ66DCXY.js +35 -0
- package/dist/chunk-SQ66DCXY.js.map +1 -0
- package/dist/chunk-SXKGWHAM.js +179 -0
- package/dist/chunk-SXKGWHAM.js.map +1 -0
- package/dist/chunk-T2OKGV6M.js +13 -0
- package/dist/chunk-T2OKGV6M.js.map +1 -0
- package/dist/chunk-T4Z7HBZR.js +110 -0
- package/dist/chunk-T4Z7HBZR.js.map +1 -0
- package/dist/chunk-TW5I37AE.js +142 -0
- package/dist/chunk-TW5I37AE.js.map +1 -0
- package/dist/chunk-TY6NTWN5.js +29 -0
- package/dist/chunk-TY6NTWN5.js.map +1 -0
- package/dist/chunk-UJAWV6LM.js +136 -0
- package/dist/chunk-UJAWV6LM.js.map +1 -0
- package/dist/chunk-V2WCZBVE.js +122 -0
- package/dist/chunk-V2WCZBVE.js.map +1 -0
- package/dist/chunk-V4LRBYOD.js +55 -0
- package/dist/chunk-V4LRBYOD.js.map +1 -0
- package/dist/chunk-V6H2RUVP.js +77 -0
- package/dist/chunk-V6H2RUVP.js.map +1 -0
- package/dist/chunk-VFRFUU7A.js +35 -0
- package/dist/chunk-VFRFUU7A.js.map +1 -0
- package/dist/chunk-VHK2OUCW.js +38 -0
- package/dist/chunk-VHK2OUCW.js.map +1 -0
- package/dist/chunk-VLNFUEOR.js +86 -0
- package/dist/chunk-VLNFUEOR.js.map +1 -0
- package/dist/chunk-VU7XKD4G.js +66 -0
- package/dist/chunk-VU7XKD4G.js.map +1 -0
- package/dist/chunk-VZX4HLBM.js +84 -0
- package/dist/chunk-VZX4HLBM.js.map +1 -0
- package/dist/chunk-W24RR5OD.js +102 -0
- package/dist/chunk-W24RR5OD.js.map +1 -0
- package/dist/chunk-W47V2F3Q.js +115 -0
- package/dist/chunk-W47V2F3Q.js.map +1 -0
- package/dist/chunk-W743ORLA.js +91 -0
- package/dist/chunk-W743ORLA.js.map +1 -0
- package/dist/chunk-W7I3ZX66.js +76 -0
- package/dist/chunk-W7I3ZX66.js.map +1 -0
- package/dist/chunk-WD42UBGR.js +64 -0
- package/dist/chunk-WD42UBGR.js.map +1 -0
- package/dist/chunk-WQVEJJV7.js +108 -0
- package/dist/chunk-WQVEJJV7.js.map +1 -0
- package/dist/chunk-WX4Q4DTX.js +121 -0
- package/dist/chunk-WX4Q4DTX.js.map +1 -0
- package/dist/chunk-XC7SYZYR.js +86 -0
- package/dist/chunk-XC7SYZYR.js.map +1 -0
- package/dist/chunk-XSENM65D.js +128 -0
- package/dist/chunk-XSENM65D.js.map +1 -0
- package/dist/chunk-Y7JTBQUQ.js +152 -0
- package/dist/chunk-Y7JTBQUQ.js.map +1 -0
- package/dist/chunk-YD2QEVHO.js +68 -0
- package/dist/chunk-YD2QEVHO.js.map +1 -0
- package/dist/chunk-YDKRUSB5.js +35 -0
- package/dist/chunk-YDKRUSB5.js.map +1 -0
- package/dist/chunk-YNDHYMPI.js +46 -0
- package/dist/chunk-YNDHYMPI.js.map +1 -0
- package/dist/chunk-YO3WEMOH.js +130 -0
- package/dist/chunk-YO3WEMOH.js.map +1 -0
- package/dist/chunk-YVXMWUWD.js +118 -0
- package/dist/chunk-YVXMWUWD.js.map +1 -0
- package/dist/chunk-Z6HZMGO2.js +106 -0
- package/dist/chunk-Z6HZMGO2.js.map +1 -0
- package/dist/chunk-ZAP4RIUL.js +81 -0
- package/dist/chunk-ZAP4RIUL.js.map +1 -0
- package/dist/chunk-ZEDDWVBB.js +112 -0
- package/dist/chunk-ZEDDWVBB.js.map +1 -0
- package/dist/chunk-ZEFOXF2I.js +87 -0
- package/dist/chunk-ZEFOXF2I.js.map +1 -0
- package/dist/chunk-ZPURFK4C.js +203 -0
- package/dist/chunk-ZPURFK4C.js.map +1 -0
- package/dist/chunk-ZZZIOTLC.js +89 -0
- package/dist/chunk-ZZZIOTLC.js.map +1 -0
- package/dist/components/composites/account-menu/account-menu.d.ts +43 -0
- package/dist/components/composites/account-menu/index.d.ts +1 -0
- package/dist/components/composites/agent-composer/agent-composer.d.ts +41 -0
- package/dist/components/composites/agent-composer/index.d.ts +1 -0
- package/dist/components/composites/agent-editor/agent-editor.d.ts +31 -0
- package/dist/components/composites/agent-editor/index.d.ts +1 -0
- package/dist/components/composites/agent-stream/agent-stream.d.ts +72 -0
- package/dist/components/composites/agent-stream/index.d.ts +2 -0
- package/dist/components/composites/agent-stream/to-agent-stream-items.d.ts +32 -0
- package/dist/components/composites/agent-timeline/agent-timeline.d.ts +22 -0
- package/dist/components/composites/agent-timeline/index.d.ts +1 -0
- package/dist/components/composites/agent-tool-renderer/agent-tool-renderer.d.ts +60 -0
- package/dist/components/composites/agent-tool-renderer/index.d.ts +1 -0
- package/dist/components/composites/agent-tool-renderer/tool-call-part.d.ts +5 -0
- package/dist/components/composites/approval-card/approval-card.d.ts +35 -0
- package/dist/components/composites/approval-card/index.d.ts +1 -0
- package/dist/components/composites/chat-composer/chat-composer.d.ts +68 -0
- package/dist/components/composites/chat-composer/index.d.ts +1 -0
- package/dist/components/composites/chat-message/chat-message-actions.d.ts +22 -0
- package/dist/components/composites/chat-message/chat-message-branch.d.ts +17 -0
- package/dist/components/composites/chat-message/chat-message-response.d.ts +15 -0
- package/dist/components/composites/chat-message/chat-message-toolbar.d.ts +7 -0
- package/dist/components/composites/chat-message/chat-message.d.ts +94 -0
- package/dist/components/composites/chat-message/index.d.ts +23 -0
- package/dist/components/composites/chat-message/parts/data-part.d.ts +9 -0
- package/dist/components/composites/chat-message/parts/file-part.d.ts +5 -0
- package/dist/components/composites/chat-message/parts/reasoning-part.d.ts +7 -0
- package/dist/components/composites/chat-message/parts/source-part.d.ts +9 -0
- package/dist/components/composites/chat-message/parts/text-part.d.ts +11 -0
- package/dist/components/composites/choice-prompt/choice-prompt.d.ts +65 -0
- package/dist/components/composites/choice-prompt/index.d.ts +2 -0
- package/dist/components/composites/code-block/code-block.d.ts +29 -0
- package/dist/components/composites/code-block/index.d.ts +1 -0
- package/dist/components/composites/command-palette/command-palette.d.ts +41 -0
- package/dist/components/composites/command-palette/index.d.ts +1 -0
- package/dist/components/composites/confirm-dialog/confirm-dialog.d.ts +41 -0
- package/dist/components/composites/confirm-dialog/index.d.ts +1 -0
- package/dist/components/composites/confirm-prompt/confirm-prompt.d.ts +31 -0
- package/dist/components/composites/confirm-prompt/index.d.ts +1 -0
- package/dist/components/composites/cron-jobs-list/cron-jobs-list.d.ts +15 -0
- package/dist/components/composites/cron-jobs-list/index.d.ts +1 -0
- package/dist/components/composites/data-table/data-table.d.ts +63 -0
- package/dist/components/composites/data-table/index.d.ts +1 -0
- package/dist/components/composites/deployment-row/deployment-row.d.ts +28 -0
- package/dist/components/composites/deployment-row/index.d.ts +1 -0
- package/dist/components/composites/domain-config/domain-config.d.ts +34 -0
- package/dist/components/composites/domain-config/index.d.ts +1 -0
- package/dist/components/composites/env-var-editor/env-var-editor.d.ts +35 -0
- package/dist/components/composites/env-var-editor/index.d.ts +1 -0
- package/dist/components/composites/mcp-server-list/index.d.ts +1 -0
- package/dist/components/composites/mcp-server-list/mcp-server-list.d.ts +15 -0
- package/dist/components/composites/metric-card/index.d.ts +2 -0
- package/dist/components/composites/metric-card/metric-card.d.ts +46 -0
- package/dist/components/composites/multi-select-prompt/index.d.ts +1 -0
- package/dist/components/composites/multi-select-prompt/multi-select-prompt.d.ts +61 -0
- package/dist/components/composites/page-shell/index.d.ts +1 -0
- package/dist/components/composites/page-shell/page-shell.d.ts +68 -0
- package/dist/components/composites/permission-modal/index.d.ts +1 -0
- package/dist/components/composites/permission-modal/permission-modal.d.ts +48 -0
- package/dist/components/composites/preview-env-card/index.d.ts +1 -0
- package/dist/components/composites/preview-env-card/preview-env-card.d.ts +36 -0
- package/dist/components/composites/preview-panel/index.d.ts +1 -0
- package/dist/components/composites/preview-panel/preview-panel.d.ts +24 -0
- package/dist/components/composites/project-card/index.d.ts +1 -0
- package/dist/components/composites/project-card/project-card.d.ts +32 -0
- package/dist/components/composites/rollback-ui/index.d.ts +1 -0
- package/dist/components/composites/rollback-ui/rollback-ui.d.ts +32 -0
- package/dist/components/composites/rule-editor/index.d.ts +1 -0
- package/dist/components/composites/rule-editor/rule-editor.d.ts +18 -0
- package/dist/components/composites/skill-editor/index.d.ts +1 -0
- package/dist/components/composites/skill-editor/skill-editor.d.ts +19 -0
- package/dist/components/composites/skills-list/index.d.ts +1 -0
- package/dist/components/composites/skills-list/skills-list.d.ts +15 -0
- package/dist/components/composites/slide-deck/context.d.ts +23 -0
- package/dist/components/composites/slide-deck/controls.d.ts +8 -0
- package/dist/components/composites/slide-deck/fragments.d.ts +20 -0
- package/dist/components/composites/slide-deck/index.d.ts +21 -0
- package/dist/components/composites/slide-deck/notes.d.ts +14 -0
- package/dist/components/composites/slide-deck/presenter-view.d.ts +15 -0
- package/dist/components/composites/slide-deck/print-styles.d.ts +21 -0
- package/dist/components/composites/slide-deck/progress-bar.d.ts +8 -0
- package/dist/components/composites/slide-deck/schema.d.ts +31 -0
- package/dist/components/composites/slide-deck/slide-deck.d.ts +78 -0
- package/dist/components/composites/slide-deck/slide-number.d.ts +11 -0
- package/dist/components/composites/slide-deck/split-deck.d.ts +2 -0
- package/dist/components/composites/slide-deck/thumbnails.d.ts +19 -0
- package/dist/components/composites/slide-deck/use-deck-hash-routing.d.ts +23 -0
- package/dist/components/composites/slide-deck/use-deck-keyboard.d.ts +25 -0
- package/dist/components/composites/slide-deck/use-deck-state.d.ts +57 -0
- package/dist/components/composites/slide-deck/use-deck-swipe.d.ts +20 -0
- package/dist/components/composites/slide-deck/use-fullscreen.d.ts +18 -0
- package/dist/components/composites/stability-bundle-viewer/index.d.ts +1 -0
- package/dist/components/composites/stability-bundle-viewer/stability-bundle-viewer.d.ts +28 -0
- package/dist/components/composites/status-indicator/index.d.ts +2 -0
- package/dist/components/composites/status-indicator/status-indicator.d.ts +31 -0
- package/dist/components/composites/task-header/index.d.ts +1 -0
- package/dist/components/composites/task-header/task-header.d.ts +20 -0
- package/dist/components/composites/text-prompt/index.d.ts +1 -0
- package/dist/components/composites/text-prompt/text-prompt.d.ts +48 -0
- package/dist/components/composites/usage-meter/index.d.ts +1 -0
- package/dist/components/composites/usage-meter/usage-meter.d.ts +56 -0
- package/dist/components/primitives/action-bar/action-bar.d.ts +34 -0
- package/dist/components/primitives/action-bar/index.d.ts +1 -0
- package/dist/components/primitives/agent-error-card/agent-error-card.d.ts +47 -0
- package/dist/components/primitives/agent-error-card/index.d.ts +1 -0
- package/dist/components/primitives/agent-event/agent-event.d.ts +25 -0
- package/dist/components/primitives/agent-event/index.d.ts +1 -0
- package/dist/components/primitives/agent-handoff/agent-handoff.d.ts +24 -0
- package/dist/components/primitives/agent-handoff/index.d.ts +1 -0
- package/dist/components/primitives/agent-profile/agent-profile.d.ts +28 -0
- package/dist/components/primitives/agent-profile/index.d.ts +1 -0
- package/dist/components/primitives/agent-starting-state/agent-starting-state.d.ts +15 -0
- package/dist/components/primitives/agent-starting-state/index.d.ts +1 -0
- package/dist/components/primitives/agent-streaming/agent-streaming.d.ts +16 -0
- package/dist/components/primitives/agent-streaming/index.d.ts +1 -0
- package/dist/components/primitives/alert/alert.d.ts +31 -0
- package/dist/components/primitives/alert/index.d.ts +1 -0
- package/dist/components/primitives/artifact-preview/artifact-preview.d.ts +25 -0
- package/dist/components/primitives/artifact-preview/index.d.ts +1 -0
- package/dist/components/primitives/attachment-chip/attachment-chip.d.ts +14 -0
- package/dist/components/primitives/attachment-chip/index.d.ts +1 -0
- package/dist/components/primitives/audit-log-entry/audit-log-entry.d.ts +29 -0
- package/dist/components/primitives/audit-log-entry/index.d.ts +1 -0
- package/dist/components/primitives/auto-compact-notice/auto-compact-notice.d.ts +24 -0
- package/dist/components/primitives/auto-compact-notice/index.d.ts +1 -0
- package/dist/components/primitives/avatar/avatar.d.ts +26 -0
- package/dist/components/primitives/avatar/index.d.ts +1 -0
- package/dist/components/primitives/badge/badge.d.ts +33 -0
- package/dist/components/primitives/badge/index.d.ts +1 -0
- package/dist/components/primitives/branch-indicator/branch-indicator.d.ts +13 -0
- package/dist/components/primitives/branch-indicator/index.d.ts +1 -0
- package/dist/components/primitives/browser-controls/browser-controls.d.ts +19 -0
- package/dist/components/primitives/browser-controls/index.d.ts +1 -0
- package/dist/components/primitives/build-log-stream/build-log-stream.d.ts +51 -0
- package/dist/components/primitives/build-log-stream/index.d.ts +1 -0
- package/dist/components/primitives/button/button.d.ts +26 -0
- package/dist/components/primitives/button/index.d.ts +1 -0
- package/dist/components/primitives/capability-indicator/capability-indicator.d.ts +57 -0
- package/dist/components/primitives/capability-indicator/index.d.ts +1 -0
- package/dist/components/primitives/card/card.d.ts +40 -0
- package/dist/components/primitives/card/index.d.ts +1 -0
- package/dist/components/primitives/channel-card/channel-card.d.ts +28 -0
- package/dist/components/primitives/channel-card/index.d.ts +1 -0
- package/dist/components/primitives/chat-thread/chat-thread.d.ts +12 -0
- package/dist/components/primitives/chat-thread/index.d.ts +1 -0
- package/dist/components/primitives/checkbox/checkbox.d.ts +20 -0
- package/dist/components/primitives/checkbox/index.d.ts +1 -0
- package/dist/components/primitives/context-card/context-card.d.ts +18 -0
- package/dist/components/primitives/context-card/index.d.ts +1 -0
- package/dist/components/primitives/context-window-bar/context-window-bar.d.ts +27 -0
- package/dist/components/primitives/context-window-bar/index.d.ts +1 -0
- package/dist/components/primitives/copy-button/copy-button.d.ts +17 -0
- package/dist/components/primitives/copy-button/index.d.ts +1 -0
- package/dist/components/primitives/cost-meter/cost-meter.d.ts +23 -0
- package/dist/components/primitives/cost-meter/index.d.ts +1 -0
- package/dist/components/primitives/created-files-card/created-files-card.d.ts +30 -0
- package/dist/components/primitives/created-files-card/index.d.ts +1 -0
- package/dist/components/primitives/cron-job-card/cron-job-card.d.ts +30 -0
- package/dist/components/primitives/cron-job-card/index.d.ts +1 -0
- package/dist/components/primitives/danger-zone/danger-zone.d.ts +40 -0
- package/dist/components/primitives/danger-zone/index.d.ts +1 -0
- package/dist/components/primitives/dialog/dialog.d.ts +26 -0
- package/dist/components/primitives/dialog/index.d.ts +1 -0
- package/dist/components/primitives/diff-viewer/diff-viewer.d.ts +45 -0
- package/dist/components/primitives/diff-viewer/index.d.ts +1 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu.d.ts +68 -0
- package/dist/components/primitives/dropdown-menu/index.d.ts +1 -0
- package/dist/components/primitives/empty-state/empty-state.d.ts +22 -0
- package/dist/components/primitives/empty-state/index.d.ts +1 -0
- package/dist/components/primitives/export-chat-dialog/export-chat-dialog.d.ts +18 -0
- package/dist/components/primitives/export-chat-dialog/index.d.ts +1 -0
- package/dist/components/primitives/folder-context-card/folder-context-card.d.ts +40 -0
- package/dist/components/primitives/folder-context-card/index.d.ts +1 -0
- package/dist/components/primitives/folder-selector/folder-selector.d.ts +18 -0
- package/dist/components/primitives/folder-selector/index.d.ts +1 -0
- package/dist/components/primitives/form-field/form-field.d.ts +44 -0
- package/dist/components/primitives/form-field/index.d.ts +1 -0
- package/dist/components/primitives/gateway-status-indicator/gateway-status-indicator.d.ts +19 -0
- package/dist/components/primitives/gateway-status-indicator/index.d.ts +1 -0
- package/dist/components/primitives/hook-config/hook-config.d.ts +27 -0
- package/dist/components/primitives/hook-config/index.d.ts +1 -0
- package/dist/components/primitives/hook-event-log/hook-event-log.d.ts +27 -0
- package/dist/components/primitives/hook-event-log/index.d.ts +1 -0
- package/dist/components/primitives/input/index.d.ts +1 -0
- package/dist/components/primitives/input/input.d.ts +24 -0
- package/dist/components/primitives/intent-selector/index.d.ts +1 -0
- package/dist/components/primitives/intent-selector/intent-selector.d.ts +22 -0
- package/dist/components/primitives/label/index.d.ts +1 -0
- package/dist/components/primitives/label/label.d.ts +15 -0
- package/dist/components/primitives/lane-board/index.d.ts +1 -0
- package/dist/components/primitives/lane-board/lane-board.d.ts +26 -0
- package/dist/components/primitives/login-split/index.d.ts +1 -0
- package/dist/components/primitives/login-split/login-split.d.ts +24 -0
- package/dist/components/primitives/mcp-server-card/index.d.ts +1 -0
- package/dist/components/primitives/mcp-server-card/mcp-server-card.d.ts +32 -0
- package/dist/components/primitives/memory-editor/index.d.ts +1 -0
- package/dist/components/primitives/memory-editor/memory-editor.d.ts +29 -0
- package/dist/components/primitives/mention-menu/index.d.ts +1 -0
- package/dist/components/primitives/mention-menu/mention-menu.d.ts +44 -0
- package/dist/components/primitives/metrics-panel/index.d.ts +1 -0
- package/dist/components/primitives/metrics-panel/metrics-panel.d.ts +62 -0
- package/dist/components/primitives/model-card/index.d.ts +1 -0
- package/dist/components/primitives/model-card/model-card.d.ts +72 -0
- package/dist/components/primitives/model-selector/index.d.ts +1 -0
- package/dist/components/primitives/model-selector/model-selector.d.ts +21 -0
- package/dist/components/primitives/pagination/index.d.ts +1 -0
- package/dist/components/primitives/pagination/pagination.d.ts +44 -0
- package/dist/components/primitives/permission-matrix/index.d.ts +1 -0
- package/dist/components/primitives/permission-matrix/permission-matrix.d.ts +43 -0
- package/dist/components/primitives/pin-input/index.d.ts +1 -0
- package/dist/components/primitives/pin-input/pin-input.d.ts +41 -0
- package/dist/components/primitives/plan-badge/index.d.ts +1 -0
- package/dist/components/primitives/plan-badge/plan-badge.d.ts +35 -0
- package/dist/components/primitives/progress/index.d.ts +1 -0
- package/dist/components/primitives/progress/progress.d.ts +44 -0
- package/dist/components/primitives/progress-checklist/index.d.ts +1 -0
- package/dist/components/primitives/progress-checklist/progress-checklist.d.ts +18 -0
- package/dist/components/primitives/project-switcher/index.d.ts +1 -0
- package/dist/components/primitives/project-switcher/project-switcher.d.ts +32 -0
- package/dist/components/primitives/quick-action-chips/index.d.ts +1 -0
- package/dist/components/primitives/quick-action-chips/quick-action-chips.d.ts +22 -0
- package/dist/components/primitives/radio-group/index.d.ts +1 -0
- package/dist/components/primitives/radio-group/radio-group.d.ts +5 -0
- package/dist/components/primitives/recent-folders-list/index.d.ts +1 -0
- package/dist/components/primitives/recent-folders-list/recent-folders-list.d.ts +21 -0
- package/dist/components/primitives/rule-card/index.d.ts +1 -0
- package/dist/components/primitives/rule-card/rule-card.d.ts +15 -0
- package/dist/components/primitives/run-stats/index.d.ts +1 -0
- package/dist/components/primitives/run-stats/run-stats.d.ts +16 -0
- package/dist/components/primitives/run-status-pill/index.d.ts +1 -0
- package/dist/components/primitives/run-status-pill/run-status-pill.d.ts +13 -0
- package/dist/components/primitives/running-tasks-panel/index.d.ts +1 -0
- package/dist/components/primitives/running-tasks-panel/running-tasks-panel.d.ts +20 -0
- package/dist/components/primitives/scroll-area/index.d.ts +2 -0
- package/dist/components/primitives/scroll-area/scroll-area.d.ts +40 -0
- package/dist/components/primitives/scroll-area/use-stick-to-bottom.d.ts +20 -0
- package/dist/components/primitives/select/index.d.ts +1 -0
- package/dist/components/primitives/select/select.d.ts +50 -0
- package/dist/components/primitives/session-list-item/index.d.ts +1 -0
- package/dist/components/primitives/session-list-item/session-list-item.d.ts +35 -0
- package/dist/components/primitives/session-timeline/index.d.ts +1 -0
- package/dist/components/primitives/session-timeline/session-timeline.d.ts +32 -0
- package/dist/components/primitives/sheet/index.d.ts +1 -0
- package/dist/components/primitives/sheet/sheet.d.ts +57 -0
- package/dist/components/primitives/sidebar/index.d.ts +1 -0
- package/dist/components/primitives/sidebar/sidebar.d.ts +18 -0
- package/dist/components/primitives/skeleton/index.d.ts +1 -0
- package/dist/components/primitives/skeleton/skeleton.d.ts +21 -0
- package/dist/components/primitives/skill-card/index.d.ts +1 -0
- package/dist/components/primitives/skill-card/skill-card.d.ts +28 -0
- package/dist/components/primitives/slide/alerts.d.ts +31 -0
- package/dist/components/primitives/slide/frontmatter.d.ts +23 -0
- package/dist/components/primitives/slide/index.d.ts +16 -0
- package/dist/components/primitives/slide/json-schema.d.ts +9 -0
- package/dist/components/primitives/slide/marpit-bg.d.ts +36 -0
- package/dist/components/primitives/slide/parse.d.ts +59 -0
- package/dist/components/primitives/slide/plugin.d.ts +79 -0
- package/dist/components/primitives/slide/plugins/emoji/index.d.ts +8 -0
- package/dist/components/primitives/slide/plugins/emoji/map.d.ts +15 -0
- package/dist/components/primitives/slide/plugins/math/index.d.ts +6 -0
- package/dist/components/primitives/slide/plugins/mermaid/index.d.ts +48 -0
- package/dist/components/primitives/slide/plugins/shiki/index.d.ts +11 -0
- package/dist/components/primitives/slide/sanitize.d.ts +33 -0
- package/dist/components/primitives/slide/schema.d.ts +109 -0
- package/dist/components/primitives/slide/slide.d.ts +53 -0
- package/dist/components/primitives/slide/themes/index.d.ts +9 -0
- package/dist/components/primitives/slide/use-slide-fit.d.ts +21 -0
- package/dist/components/primitives/slide/validate.d.ts +33 -0
- package/dist/components/primitives/social-auth-row/index.d.ts +1 -0
- package/dist/components/primitives/social-auth-row/social-auth-row.d.ts +24 -0
- package/dist/components/primitives/stat-tile/index.d.ts +1 -0
- package/dist/components/primitives/stat-tile/stat-tile.d.ts +28 -0
- package/dist/components/primitives/status-dot/index.d.ts +1 -0
- package/dist/components/primitives/status-dot/status-dot.d.ts +31 -0
- package/dist/components/primitives/steps-rail/index.d.ts +1 -0
- package/dist/components/primitives/steps-rail/steps-rail.d.ts +24 -0
- package/dist/components/primitives/sub-agent-dispatch/index.d.ts +1 -0
- package/dist/components/primitives/sub-agent-dispatch/sub-agent-dispatch.d.ts +30 -0
- package/dist/components/primitives/switch/index.d.ts +1 -0
- package/dist/components/primitives/switch/switch.d.ts +20 -0
- package/dist/components/primitives/system-prompt-editor/index.d.ts +1 -0
- package/dist/components/primitives/system-prompt-editor/system-prompt-editor.d.ts +25 -0
- package/dist/components/primitives/table/index.d.ts +1 -0
- package/dist/components/primitives/table/table.d.ts +61 -0
- package/dist/components/primitives/tabs/index.d.ts +1 -0
- package/dist/components/primitives/tabs/tabs.d.ts +7 -0
- package/dist/components/primitives/task-plan/index.d.ts +1 -0
- package/dist/components/primitives/task-plan/task-plan.d.ts +36 -0
- package/dist/components/primitives/terminal-panel/index.d.ts +1 -0
- package/dist/components/primitives/terminal-panel/terminal-panel.d.ts +32 -0
- package/dist/components/primitives/textarea/index.d.ts +1 -0
- package/dist/components/primitives/textarea/textarea.d.ts +20 -0
- package/dist/components/primitives/thinking-level-selector/index.d.ts +1 -0
- package/dist/components/primitives/thinking-level-selector/thinking-level-selector.d.ts +24 -0
- package/dist/components/primitives/timestamp/index.d.ts +1 -0
- package/dist/components/primitives/timestamp/timestamp.d.ts +34 -0
- package/dist/components/primitives/toast/index.d.ts +2 -0
- package/dist/components/primitives/toast/toast.d.ts +34 -0
- package/dist/components/primitives/toast/toaster.d.ts +38 -0
- package/dist/components/primitives/token-usage-chart/index.d.ts +2 -0
- package/dist/components/primitives/token-usage-chart/token-usage-chart.d.ts +44 -0
- package/dist/components/primitives/token-usage-chart/usage-metrics.d.ts +23 -0
- package/dist/components/primitives/tool-call/index.d.ts +1 -0
- package/dist/components/primitives/tool-call/tool-call.d.ts +30 -0
- package/dist/components/primitives/tool-call-card/index.d.ts +1 -0
- package/dist/components/primitives/tool-call-card/tool-call-card.d.ts +30 -0
- package/dist/components/primitives/tool-result/index.d.ts +1 -0
- package/dist/components/primitives/tool-result/tool-result.d.ts +19 -0
- package/dist/components/primitives/tools-list/index.d.ts +1 -0
- package/dist/components/primitives/tools-list/tools-list.d.ts +32 -0
- package/dist/components/primitives/tooltip/index.d.ts +1 -0
- package/dist/components/primitives/tooltip/tooltip.d.ts +33 -0
- package/dist/components/primitives/topnav/index.d.ts +1 -0
- package/dist/components/primitives/topnav/topnav.d.ts +29 -0
- package/dist/components/primitives/update-banner/index.d.ts +1 -0
- package/dist/components/primitives/update-banner/update-banner.d.ts +16 -0
- package/dist/components/primitives/whiteboard/index.d.ts +2 -0
- package/dist/components/primitives/whiteboard/render/freedraw.d.ts +2 -0
- package/dist/components/primitives/whiteboard/render/line.d.ts +4 -0
- package/dist/components/primitives/whiteboard/render/rough-paths.d.ts +16 -0
- package/dist/components/primitives/whiteboard/render/scene.d.ts +3 -0
- package/dist/components/primitives/whiteboard/render/shape.d.ts +5 -0
- package/dist/components/primitives/whiteboard/render/style.d.ts +24 -0
- package/dist/components/primitives/whiteboard/render/text.d.ts +2 -0
- package/dist/components/primitives/whiteboard/schema.d.ts +596 -0
- package/dist/components/primitives/whiteboard/seed.d.ts +22 -0
- package/dist/components/primitives/whiteboard/validate.d.ts +26 -0
- package/dist/components/primitives/whiteboard/viewport/use-pointer-pan.d.ts +11 -0
- package/dist/components/primitives/whiteboard/viewport/use-viewport.d.ts +33 -0
- package/dist/components/primitives/whiteboard/whiteboard.d.ts +21 -0
- package/dist/components.css +1 -1
- package/dist/composites/account-menu/index.js +4 -4
- package/dist/composites/agent-composer/index.js +6 -5
- package/dist/composites/agent-editor/index.js +8 -7
- package/dist/composites/agent-stream/index.js +21 -9
- package/dist/composites/agent-timeline/index.js +3 -3
- package/dist/composites/agent-tool-renderer/index.js +17 -0
- package/dist/composites/agent-tool-renderer/index.js.map +1 -0
- package/dist/composites/approval-card/index.js +3 -3
- package/dist/composites/chat-composer/index.js +3 -3
- package/dist/composites/chat-message/index.js +18 -4
- package/dist/composites/choice-prompt/index.js +11 -0
- package/dist/composites/choice-prompt/index.js.map +1 -0
- package/dist/composites/code-block/index.js +3 -3
- package/dist/composites/command-palette/index.js +4 -3
- package/dist/composites/confirm-dialog/index.js +6 -5
- package/dist/composites/confirm-prompt/index.js +7 -0
- package/dist/composites/confirm-prompt/index.js.map +1 -0
- package/dist/composites/cron-jobs-list/index.js +3 -3
- package/dist/composites/data-table/index.js +8 -7
- package/dist/composites/deployment-row/index.js +3 -3
- package/dist/composites/domain-config/index.js +6 -5
- package/dist/composites/env-var-editor/index.js +7 -5
- package/dist/composites/mcp-server-list/index.js +4 -3
- package/dist/composites/metric-card/index.js +5 -0
- package/dist/composites/metric-card/index.js.map +1 -0
- package/dist/composites/multi-select-prompt/index.js +11 -0
- package/dist/composites/multi-select-prompt/index.js.map +1 -0
- package/dist/composites/page-shell/index.js +6 -5
- package/dist/composites/permission-modal/index.js +5 -4
- package/dist/composites/preview-env-card/index.js +4 -4
- package/dist/composites/preview-panel/index.js +3 -3
- package/dist/composites/project-card/index.js +4 -4
- package/dist/composites/rollback-ui/index.js +5 -4
- package/dist/composites/rule-editor/index.js +9 -8
- package/dist/composites/skill-editor/index.js +9 -8
- package/dist/composites/skills-list/index.js +4 -3
- package/dist/composites/stability-bundle-viewer/index.js +3 -2
- package/dist/composites/status-indicator/index.js +4 -0
- package/dist/composites/status-indicator/index.js.map +1 -0
- package/dist/composites/task-header/index.js +3 -3
- package/dist/composites/text-prompt/index.js +10 -0
- package/dist/composites/text-prompt/index.js.map +1 -0
- package/dist/composites/usage-meter/index.js +3 -3
- package/dist/fonts-cdn.css +4 -4
- package/dist/fonts.css +2 -2
- package/dist/index.d.ts +144 -4622
- package/dist/index.js +999 -739
- package/dist/index.js.map +1 -1
- package/dist/lib/cn.d.ts +6 -0
- package/dist/lib/env.d.ts +55 -0
- package/dist/lib/live-region-context.d.ts +2 -0
- package/dist/lib/markdown/code-block.d.ts +14 -0
- package/dist/lib/markdown/inline-code.d.ts +10 -0
- package/dist/lib/markdown/math.d.ts +12 -0
- package/dist/lib/markdown/mermaid.d.ts +6 -0
- package/dist/lib/markdown/parser.d.ts +47 -0
- package/dist/lib/markdown/streaming-preprocess.d.ts +39 -0
- package/dist/lib/prompt.d.ts +40 -0
- package/dist/lib/safe-href.d.ts +27 -0
- package/dist/lib/sdk-tools-adapters/index.d.ts +1 -0
- package/dist/lib/sdk-tools-adapters/index.js +3 -0
- package/dist/lib/sdk-tools-adapters/index.js.map +1 -0
- package/dist/lib/sdk-tools-adapters/sdk-tools-adapters.d.ts +60 -0
- package/dist/lib/types.d.ts +10 -0
- package/dist/preset-v3-legacy.d.ts +7 -10
- package/dist/preset-v3-legacy.js +23 -3
- package/dist/preset-v3-legacy.js.map +1 -1
- package/dist/preset.css +2 -2
- package/dist/primitives/action-bar/index.js +2 -2
- package/dist/primitives/agent-error-card/index.js +2 -2
- package/dist/primitives/agent-event/index.js +3 -2
- package/dist/primitives/agent-handoff/index.js +2 -2
- package/dist/primitives/agent-profile/index.js +2 -2
- package/dist/primitives/agent-starting-state/index.js +2 -2
- package/dist/primitives/agent-streaming/index.js +2 -2
- package/dist/primitives/alert/index.js +2 -2
- package/dist/primitives/artifact-preview/index.js +2 -2
- package/dist/primitives/attachment-chip/index.js +2 -2
- package/dist/primitives/audit-log-entry/index.js +2 -2
- package/dist/primitives/auto-compact-notice/index.js +2 -2
- package/dist/primitives/avatar/index.js +2 -2
- package/dist/primitives/badge/index.js +2 -2
- package/dist/primitives/branch-indicator/index.js +2 -2
- package/dist/primitives/browser-controls/index.js +2 -2
- package/dist/primitives/build-log-stream/index.js +4 -2
- package/dist/primitives/button/index.js +2 -2
- package/dist/primitives/capability-indicator/index.js +2 -2
- package/dist/primitives/card/index.js +3 -2
- package/dist/primitives/channel-card/index.js +2 -2
- package/dist/primitives/chat-thread/index.js +2 -2
- package/dist/primitives/checkbox/index.js +2 -2
- package/dist/primitives/context-card/index.js +2 -2
- package/dist/primitives/context-window-bar/index.js +2 -2
- package/dist/primitives/copy-button/index.js +3 -2
- package/dist/primitives/cost-meter/index.js +2 -2
- package/dist/primitives/created-files-card/index.js +2 -2
- package/dist/primitives/cron-job-card/index.js +2 -2
- package/dist/primitives/danger-zone/index.js +2 -2
- package/dist/primitives/dialog/index.js +2 -2
- package/dist/primitives/diff-viewer/index.js +2 -2
- package/dist/primitives/dropdown-menu/index.js +2 -2
- package/dist/primitives/empty-state/index.js +2 -2
- package/dist/primitives/export-chat-dialog/index.js +3 -2
- package/dist/primitives/folder-context-card/index.js +2 -2
- package/dist/primitives/folder-selector/index.js +2 -2
- package/dist/primitives/form-field/index.js +3 -2
- package/dist/primitives/gateway-status-indicator/index.js +2 -2
- package/dist/primitives/hook-config/index.js +3 -2
- package/dist/primitives/hook-event-log/index.js +2 -2
- package/dist/primitives/input/index.js +2 -2
- package/dist/primitives/intent-selector/index.js +2 -2
- package/dist/primitives/label/index.js +2 -2
- package/dist/primitives/lane-board/index.js +2 -2
- package/dist/primitives/login-split/index.js +2 -2
- package/dist/primitives/mcp-server-card/index.js +2 -2
- package/dist/primitives/memory-editor/index.js +2 -2
- package/dist/primitives/mention-menu/index.js +3 -2
- package/dist/primitives/metrics-panel/index.js +2 -2
- package/dist/primitives/model-card/index.js +2 -2
- package/dist/primitives/model-selector/index.js +2 -2
- package/dist/primitives/pagination/index.js +2 -2
- package/dist/primitives/permission-matrix/index.js +3 -2
- package/dist/primitives/pin-input/index.js +3 -2
- package/dist/primitives/plan-badge/index.js +2 -2
- package/dist/primitives/progress/index.js +2 -2
- package/dist/primitives/progress-checklist/index.js +2 -2
- package/dist/primitives/project-switcher/index.js +2 -2
- package/dist/primitives/quick-action-chips/index.js +2 -2
- package/dist/primitives/radio-group/index.js +2 -2
- package/dist/primitives/recent-folders-list/index.js +2 -2
- package/dist/primitives/rule-card/index.js +2 -2
- package/dist/primitives/run-stats/index.js +2 -2
- package/dist/primitives/run-status-pill/index.js +2 -2
- package/dist/primitives/running-tasks-panel/index.js +2 -2
- package/dist/primitives/scroll-area/index.js +3 -2
- package/dist/primitives/select/index.js +2 -2
- package/dist/primitives/session-list-item/index.js +2 -2
- package/dist/primitives/session-timeline/index.js +2 -2
- package/dist/primitives/sheet/index.js +2 -2
- package/dist/primitives/sidebar/index.js +2 -2
- package/dist/primitives/skeleton/index.js +2 -2
- package/dist/primitives/skill-card/index.js +2 -2
- package/dist/primitives/social-auth-row/index.js +2 -2
- package/dist/primitives/stat-tile/index.js +2 -2
- package/dist/primitives/status-dot/index.js +4 -2
- package/dist/primitives/steps-rail/index.js +2 -2
- package/dist/primitives/sub-agent-dispatch/index.js +2 -2
- package/dist/primitives/switch/index.js +2 -2
- package/dist/primitives/system-prompt-editor/index.js +3 -2
- package/dist/primitives/table/index.js +3 -2
- package/dist/primitives/tabs/index.js +2 -2
- package/dist/primitives/task-plan/index.js +2 -2
- package/dist/primitives/terminal-panel/index.js +2 -2
- package/dist/primitives/textarea/index.js +2 -2
- package/dist/primitives/thinking-level-selector/index.js +3 -2
- package/dist/primitives/timestamp/index.js +4 -2
- package/dist/primitives/toast/index.js +3 -2
- package/dist/primitives/token-usage-chart/index.js +2 -2
- package/dist/primitives/tool-call/index.js +3 -2
- package/dist/primitives/tool-call-card/index.js +3 -2
- package/dist/primitives/tool-result/index.js +2 -2
- package/dist/primitives/tools-list/index.js +2 -2
- package/dist/primitives/tooltip/index.js +2 -2
- package/dist/primitives/topnav/index.js +2 -2
- package/dist/primitives/update-banner/index.js +2 -2
- package/dist/screens/theo-code-shell.d.ts +9 -0
- package/dist/screens/theo-code-shell.data.d.ts +147 -0
- package/dist/slide/index.js +2 -1
- package/dist/slide/plugins/mermaid/index.js +1 -1
- package/dist/slide/plugins/mermaid/index.js.map +1 -1
- package/dist/slide/plugins/shiki/index.js.map +1 -1
- package/dist/slide/themes/violet-forge.css +1 -1
- package/dist/slide-deck/index.js +13 -2
- package/dist/slide-deck/index.js.map +1 -1
- package/dist/styles/tailwind-preset.d.ts +29 -0
- package/dist/styles.css +3 -3
- package/dist/test/a11y.d.ts +13 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/themes/anthropic-style.d.ts +11 -0
- package/dist/themes/aurora-terminal.d.ts +9 -0
- package/dist/themes/classic-paper.d.ts +17 -0
- package/dist/themes/color-value-pattern.d.ts +22 -0
- package/dist/themes/color.d.ts +62 -0
- package/dist/themes/define.d.ts +65 -0
- package/dist/themes/density.d.ts +17 -0
- package/dist/themes/dracula.d.ts +14 -0
- package/dist/themes/github-dark.d.ts +11 -0
- package/dist/themes/index.d.ts +26 -0
- package/dist/themes/linear-glass.d.ts +11 -0
- package/dist/themes/one-dark.d.ts +11 -0
- package/dist/themes/openai-style.d.ts +10 -0
- package/dist/themes/schema.d.ts +112 -0
- package/dist/themes/theme-provider.d.ts +82 -0
- package/dist/themes/theme-script.d.ts +48 -0
- package/dist/themes/theme-switcher.d.ts +17 -0
- package/dist/themes/types.d.ts +88 -0
- package/dist/themes/vercel-mono.d.ts +11 -0
- package/dist/themes/violet-forge.d.ts +12 -0
- package/dist/theo-ui-provider.d.ts +50 -0
- package/dist/tokens-v4.css +77 -41
- package/dist/tokens.css +159 -74
- package/dist/types/agent.d.ts +19 -0
- package/dist/types/chat.d.ts +173 -0
- package/dist/types/mode.d.ts +16 -0
- package/dist/types/permission.d.ts +8 -0
- package/dist/types/rule.d.ts +28 -0
- package/dist/types/task.d.ts +9 -0
- package/dist/vite-plugin.d.ts +7 -11
- package/dist/vite-plugin.js +4 -4
- package/dist/vite-plugin.js.map +1 -1
- package/dist/whiteboard/index.js +3 -0
- package/dist/whiteboard/index.js.map +1 -1
- package/llms.txt +39 -39
- package/package.json +236 -188
- package/registry/index.json +58 -4
- package/registry/r/account-menu.json +1 -1
- package/registry/r/action-bar.json +1 -1
- package/registry/r/agent-composer.json +1 -1
- package/registry/r/agent-editor.json +1 -1
- package/registry/r/agent-error-card.json +1 -1
- package/registry/r/agent-event.json +1 -1
- package/registry/r/agent-handoff.json +1 -1
- package/registry/r/agent-profile.json +1 -1
- package/registry/r/agent-starting-state.json +1 -1
- package/registry/r/agent-stream.json +1 -1
- package/registry/r/agent-streaming.json +1 -1
- package/registry/r/agent-timeline.json +1 -1
- package/registry/r/agent-tool-renderer.json +40 -0
- package/registry/r/alert.json +1 -1
- package/registry/r/approval-card.json +1 -1
- package/registry/r/artifact-preview.json +1 -1
- package/registry/r/attachment-chip.json +1 -1
- package/registry/r/audit-log-entry.json +1 -1
- package/registry/r/auto-compact-notice.json +1 -1
- package/registry/r/avatar.json +1 -1
- package/registry/r/badge.json +1 -1
- package/registry/r/browser-controls.json +1 -1
- package/registry/r/build-log-stream.json +2 -1
- package/registry/r/button.json +1 -1
- package/registry/r/capability-indicator.json +1 -1
- package/registry/r/card.json +1 -1
- package/registry/r/chat-composer.json +1 -1
- package/registry/r/chat-message.json +11 -16
- package/registry/r/chat-thread.json +1 -1
- package/registry/r/chat-types.json +1 -1
- package/registry/r/checkbox.json +1 -1
- package/registry/r/choice-prompt.json +25 -0
- package/registry/r/cn.json +1 -1
- package/registry/r/code-block.json +1 -1
- package/registry/r/command-palette.json +1 -1
- package/registry/r/confirm-dialog.json +1 -1
- package/registry/r/confirm-prompt.json +21 -0
- package/registry/r/context-card.json +1 -1
- package/registry/r/context-window-bar.json +1 -1
- package/registry/r/copy-button.json +1 -1
- package/registry/r/cost-meter.json +1 -1
- package/registry/r/created-files-card.json +1 -1
- package/registry/r/cron-job-card.json +1 -1
- package/registry/r/cron-jobs-list.json +1 -1
- package/registry/r/danger-zone.json +1 -1
- package/registry/r/data-table.json +1 -1
- package/registry/r/deployment-row.json +1 -1
- package/registry/r/dialog.json +1 -1
- package/registry/r/diff-viewer.json +1 -1
- package/registry/r/domain-config.json +1 -1
- package/registry/r/dropdown-menu.json +2 -2
- package/registry/r/empty-state.json +1 -1
- package/registry/r/env-var-editor.json +2 -1
- package/registry/r/env.json +15 -0
- package/registry/r/folder-context-card.json +1 -1
- package/registry/r/folder-selector.json +1 -1
- package/registry/r/form-field.json +1 -1
- package/registry/r/hook-config.json +1 -1
- package/registry/r/hook-event-log.json +1 -1
- package/registry/r/input.json +1 -1
- package/registry/r/intent-selector.json +1 -1
- package/registry/r/label.json +1 -1
- package/registry/r/lane-board.json +1 -1
- package/registry/r/login-split.json +1 -1
- package/registry/r/mcp-server-card.json +1 -1
- package/registry/r/mcp-server-list.json +1 -1
- package/registry/r/memory-editor.json +1 -1
- package/registry/r/mention-menu.json +1 -1
- package/registry/r/metric-card.json +23 -0
- package/registry/r/metrics-panel.json +1 -1
- package/registry/r/model-card.json +1 -1
- package/registry/r/model-selector.json +1 -1
- package/registry/r/multi-select-prompt.json +25 -0
- package/registry/r/page-shell.json +1 -1
- package/registry/r/pagination.json +1 -1
- package/registry/r/permission-matrix.json +1 -1
- package/registry/r/permission-modal.json +1 -1
- package/registry/r/pin-input.json +1 -1
- package/registry/r/plan-badge.json +1 -1
- package/registry/r/preview-env-card.json +1 -1
- package/registry/r/preview-panel.json +1 -1
- package/registry/r/progress-checklist.json +1 -1
- package/registry/r/progress.json +1 -1
- package/registry/r/project-card.json +1 -1
- package/registry/r/project-switcher.json +1 -1
- package/registry/r/prompt.json +15 -0
- package/registry/r/quick-action-chips.json +1 -1
- package/registry/r/radio-group.json +1 -1
- package/registry/r/recent-folders-list.json +1 -1
- package/registry/r/rollback-ui.json +1 -1
- package/registry/r/rule-card.json +1 -1
- package/registry/r/rule-editor.json +1 -1
- package/registry/r/run-stats.json +1 -1
- package/registry/r/running-tasks-panel.json +1 -1
- package/registry/r/safe-href.json +1 -1
- package/registry/r/scroll-area.json +1 -1
- package/registry/r/select.json +1 -1
- package/registry/r/session-list-item.json +1 -1
- package/registry/r/session-timeline.json +1 -1
- package/registry/r/sheet.json +1 -1
- package/registry/r/sidebar.json +1 -1
- package/registry/r/skeleton.json +1 -1
- package/registry/r/skill-card.json +1 -1
- package/registry/r/skill-editor.json +1 -1
- package/registry/r/skills-list.json +1 -1
- package/registry/r/slide-deck.json +8 -8
- package/registry/r/slide-plugin-mermaid.json +1 -1
- package/registry/r/slide-plugin-shiki.json +1 -1
- package/registry/r/slide.json +6 -6
- package/registry/r/social-auth-row.json +1 -1
- package/registry/r/stat-tile.json +1 -1
- package/registry/r/status-dot.json +2 -1
- package/registry/r/status-indicator.json +20 -0
- package/registry/r/steps-rail.json +1 -1
- package/registry/r/sub-agent-dispatch.json +1 -1
- package/registry/r/switch.json +1 -1
- package/registry/r/system-prompt-editor.json +1 -1
- package/registry/r/table.json +1 -1
- package/registry/r/tabs.json +1 -1
- package/registry/r/tailwind-preset.json +1 -1
- package/registry/r/task-header.json +1 -1
- package/registry/r/task-plan.json +1 -1
- package/registry/r/terminal-panel.json +1 -1
- package/registry/r/text-prompt.json +24 -0
- package/registry/r/textarea.json +1 -1
- package/registry/r/theme-provider.json +7 -6
- package/registry/r/theo-ui-provider.json +1 -1
- package/registry/r/timestamp.json +2 -1
- package/registry/r/toast.json +2 -2
- package/registry/r/token-usage-chart.json +1 -1
- package/registry/r/tokens.json +2 -2
- package/registry/r/tool-call-card.json +1 -1
- package/registry/r/tool-call.json +1 -1
- package/registry/r/tool-result.json +1 -1
- package/registry/r/tools-list.json +1 -1
- package/registry/r/tooltip.json +1 -1
- package/registry/r/topnav.json +1 -1
- package/registry/r/usage-meter.json +1 -1
- package/registry/r/whiteboard.json +3 -3
- package/dist/chunk-2UJROWAG.js +0 -106
- package/dist/chunk-2UJROWAG.js.map +0 -1
- package/dist/chunk-2XPWOUEH.js +0 -68
- package/dist/chunk-2XPWOUEH.js.map +0 -1
- package/dist/chunk-3GHLNCM3.js +0 -42
- package/dist/chunk-3GHLNCM3.js.map +0 -1
- package/dist/chunk-3HOXC25T.js +0 -48
- package/dist/chunk-3HOXC25T.js.map +0 -1
- package/dist/chunk-3QGO5SB3.js +0 -46
- package/dist/chunk-3QGO5SB3.js.map +0 -1
- package/dist/chunk-47QJVWW2.js +0 -85
- package/dist/chunk-47QJVWW2.js.map +0 -1
- package/dist/chunk-4L63UW3I.js +0 -35
- package/dist/chunk-4L63UW3I.js.map +0 -1
- package/dist/chunk-4UUSJJFZ.js +0 -25
- package/dist/chunk-4UUSJJFZ.js.map +0 -1
- package/dist/chunk-4ZBZBRG5.js +0 -127
- package/dist/chunk-4ZBZBRG5.js.map +0 -1
- package/dist/chunk-57NXT3OX.js +0 -92
- package/dist/chunk-57NXT3OX.js.map +0 -1
- package/dist/chunk-5FF5EUZP.js +0 -44
- package/dist/chunk-5FF5EUZP.js.map +0 -1
- package/dist/chunk-5UGQXB2P.js +0 -714
- package/dist/chunk-5UGQXB2P.js.map +0 -1
- package/dist/chunk-62FT22CI.js +0 -85
- package/dist/chunk-62FT22CI.js.map +0 -1
- package/dist/chunk-673R3GSK.js +0 -19
- package/dist/chunk-673R3GSK.js.map +0 -1
- package/dist/chunk-6VINZJBV.js +0 -128
- package/dist/chunk-6VINZJBV.js.map +0 -1
- package/dist/chunk-6ZQKEY54.js +0 -149
- package/dist/chunk-6ZQKEY54.js.map +0 -1
- package/dist/chunk-74NZ5U3E.js +0 -145
- package/dist/chunk-74NZ5U3E.js.map +0 -1
- package/dist/chunk-755NWSNW.js +0 -36
- package/dist/chunk-755NWSNW.js.map +0 -1
- package/dist/chunk-7GLBWWMW.js +0 -70
- package/dist/chunk-7GLBWWMW.js.map +0 -1
- package/dist/chunk-7RXYW5VM.js +0 -88
- package/dist/chunk-7RXYW5VM.js.map +0 -1
- package/dist/chunk-AC4MGCXI.js +0 -92
- package/dist/chunk-AC4MGCXI.js.map +0 -1
- package/dist/chunk-AEVSVDT6.js +0 -67
- package/dist/chunk-AEVSVDT6.js.map +0 -1
- package/dist/chunk-AODIMN2N.js +0 -68
- package/dist/chunk-AODIMN2N.js.map +0 -1
- package/dist/chunk-ATHOPBCA.js +0 -61
- package/dist/chunk-ATHOPBCA.js.map +0 -1
- package/dist/chunk-AVPHVQZS.js +0 -73
- package/dist/chunk-AVPHVQZS.js.map +0 -1
- package/dist/chunk-AXKBNRZW.js +0 -173
- package/dist/chunk-AXKBNRZW.js.map +0 -1
- package/dist/chunk-B75MEYNR.js +0 -106
- package/dist/chunk-B75MEYNR.js.map +0 -1
- package/dist/chunk-BGKA6DI6.js +0 -34
- package/dist/chunk-BGKA6DI6.js.map +0 -1
- package/dist/chunk-BNQAJGEN.js +0 -88
- package/dist/chunk-BNQAJGEN.js.map +0 -1
- package/dist/chunk-BP2SETUC.js +0 -101
- package/dist/chunk-BP2SETUC.js.map +0 -1
- package/dist/chunk-BPUQWMBD.js +0 -79
- package/dist/chunk-BPUQWMBD.js.map +0 -1
- package/dist/chunk-BVDASR3Y.js +0 -74
- package/dist/chunk-BVDASR3Y.js.map +0 -1
- package/dist/chunk-BX7A5GUV.js +0 -78
- package/dist/chunk-BX7A5GUV.js.map +0 -1
- package/dist/chunk-CDA6RYOX.js +0 -115
- package/dist/chunk-CDA6RYOX.js.map +0 -1
- package/dist/chunk-CG7O3A42.js +0 -80
- package/dist/chunk-CG7O3A42.js.map +0 -1
- package/dist/chunk-CIYGNPKT.js +0 -76
- package/dist/chunk-CIYGNPKT.js.map +0 -1
- package/dist/chunk-CKXY4FTV.js +0 -59
- package/dist/chunk-CKXY4FTV.js.map +0 -1
- package/dist/chunk-CVOKZITR.js +0 -82
- package/dist/chunk-CVOKZITR.js.map +0 -1
- package/dist/chunk-CWFMFKDI.js +0 -82
- package/dist/chunk-CWFMFKDI.js.map +0 -1
- package/dist/chunk-CWVKSV7S.js +0 -124
- package/dist/chunk-CWVKSV7S.js.map +0 -1
- package/dist/chunk-CYOLRWOX.js +0 -63
- package/dist/chunk-CYOLRWOX.js.map +0 -1
- package/dist/chunk-D23LRJT6.js +0 -116
- package/dist/chunk-D23LRJT6.js.map +0 -1
- package/dist/chunk-DFADMEJK.js +0 -127
- package/dist/chunk-DFADMEJK.js.map +0 -1
- package/dist/chunk-DKQAHZG2.js +0 -83
- package/dist/chunk-DKQAHZG2.js.map +0 -1
- package/dist/chunk-DW247T3Q.js +0 -199
- package/dist/chunk-DW247T3Q.js.map +0 -1
- package/dist/chunk-E5A7HN6H.js +0 -32
- package/dist/chunk-E5A7HN6H.js.map +0 -1
- package/dist/chunk-EI63GTN7.js +0 -57
- package/dist/chunk-EI63GTN7.js.map +0 -1
- package/dist/chunk-EP25QJ4N.js +0 -146
- package/dist/chunk-EP25QJ4N.js.map +0 -1
- package/dist/chunk-ET44426Q.js +0 -80
- package/dist/chunk-ET44426Q.js.map +0 -1
- package/dist/chunk-ETEIDY34.js +0 -67
- package/dist/chunk-ETEIDY34.js.map +0 -1
- package/dist/chunk-EU55O4P7.js +0 -76
- package/dist/chunk-EU55O4P7.js.map +0 -1
- package/dist/chunk-F436537E.js +0 -104
- package/dist/chunk-F436537E.js.map +0 -1
- package/dist/chunk-FLBTGNQI.js +0 -86
- package/dist/chunk-FLBTGNQI.js.map +0 -1
- package/dist/chunk-FUT45NFW.js +0 -46
- package/dist/chunk-FUT45NFW.js.map +0 -1
- package/dist/chunk-G3LWNTVZ.js +0 -51
- package/dist/chunk-G3LWNTVZ.js.map +0 -1
- package/dist/chunk-GBJB5WLT.js +0 -58
- package/dist/chunk-GBJB5WLT.js.map +0 -1
- package/dist/chunk-GIEPEFRX.js +0 -110
- package/dist/chunk-GIEPEFRX.js.map +0 -1
- package/dist/chunk-GSO7MISR.js +0 -58
- package/dist/chunk-GSO7MISR.js.map +0 -1
- package/dist/chunk-GUQFYUIC.js +0 -61
- package/dist/chunk-GUQFYUIC.js.map +0 -1
- package/dist/chunk-GXBFGWQN.js +0 -81
- package/dist/chunk-GXBFGWQN.js.map +0 -1
- package/dist/chunk-H3VJMFJQ.js +0 -35
- package/dist/chunk-H3VJMFJQ.js.map +0 -1
- package/dist/chunk-HG4WEERE.js +0 -26
- package/dist/chunk-HG4WEERE.js.map +0 -1
- package/dist/chunk-HGPBGLNP.js +0 -51
- package/dist/chunk-HGPBGLNP.js.map +0 -1
- package/dist/chunk-HQFTW7SF.js +0 -141
- package/dist/chunk-HQFTW7SF.js.map +0 -1
- package/dist/chunk-I32I36LW.js +0 -113
- package/dist/chunk-I32I36LW.js.map +0 -1
- package/dist/chunk-I7WYM63C.js +0 -170
- package/dist/chunk-I7WYM63C.js.map +0 -1
- package/dist/chunk-JPTPIZ5V.js +0 -120
- package/dist/chunk-JPTPIZ5V.js.map +0 -1
- package/dist/chunk-JQXLPVWP.js +0 -74
- package/dist/chunk-JQXLPVWP.js.map +0 -1
- package/dist/chunk-K5ARID4S.js +0 -26
- package/dist/chunk-K5ARID4S.js.map +0 -1
- package/dist/chunk-K6RTLPIJ.js +0 -41
- package/dist/chunk-K6RTLPIJ.js.map +0 -1
- package/dist/chunk-K7PYLTMP.js +0 -221
- package/dist/chunk-K7PYLTMP.js.map +0 -1
- package/dist/chunk-KQNKKV2C.js +0 -56
- package/dist/chunk-KQNKKV2C.js.map +0 -1
- package/dist/chunk-KRN4NE4U.js +0 -155
- package/dist/chunk-KRN4NE4U.js.map +0 -1
- package/dist/chunk-L2BI762I.js +0 -82
- package/dist/chunk-L2BI762I.js.map +0 -1
- package/dist/chunk-LEEH63B2.js +0 -56
- package/dist/chunk-LEEH63B2.js.map +0 -1
- package/dist/chunk-LHRWVM3G.js +0 -42
- package/dist/chunk-LHRWVM3G.js.map +0 -1
- package/dist/chunk-LIGWMGXM.js +0 -117
- package/dist/chunk-LIGWMGXM.js.map +0 -1
- package/dist/chunk-LKYSX3QF.js +0 -104
- package/dist/chunk-LKYSX3QF.js.map +0 -1
- package/dist/chunk-MCIFB6VS.js +0 -54
- package/dist/chunk-MCIFB6VS.js.map +0 -1
- package/dist/chunk-MI5CXMZU.js +0 -171
- package/dist/chunk-MI5CXMZU.js.map +0 -1
- package/dist/chunk-MYEHGDC2.js +0 -152
- package/dist/chunk-MYEHGDC2.js.map +0 -1
- package/dist/chunk-NQZYY4LR.js +0 -84
- package/dist/chunk-NQZYY4LR.js.map +0 -1
- package/dist/chunk-O23LKHUR.js +0 -66
- package/dist/chunk-O23LKHUR.js.map +0 -1
- package/dist/chunk-PASI2U2R.js +0 -23
- package/dist/chunk-PASI2U2R.js.map +0 -1
- package/dist/chunk-PPH5NTHV.js +0 -34
- package/dist/chunk-PPH5NTHV.js.map +0 -1
- package/dist/chunk-PR6OZF6D.js +0 -28
- package/dist/chunk-PR6OZF6D.js.map +0 -1
- package/dist/chunk-PTHRL242.js +0 -186
- package/dist/chunk-PTHRL242.js.map +0 -1
- package/dist/chunk-PWXOXPFT.js +0 -142
- package/dist/chunk-PWXOXPFT.js.map +0 -1
- package/dist/chunk-QB6BNHO3.js +0 -112
- package/dist/chunk-QB6BNHO3.js.map +0 -1
- package/dist/chunk-QJGGTIUN.js +0 -110
- package/dist/chunk-QJGGTIUN.js.map +0 -1
- package/dist/chunk-QSOIJ6J3.js +0 -91
- package/dist/chunk-QSOIJ6J3.js.map +0 -1
- package/dist/chunk-R63ZKLQM.js +0 -45
- package/dist/chunk-R63ZKLQM.js.map +0 -1
- package/dist/chunk-RC5XME4T.js +0 -33
- package/dist/chunk-RC5XME4T.js.map +0 -1
- package/dist/chunk-RTYYJPPE.js +0 -77
- package/dist/chunk-RTYYJPPE.js.map +0 -1
- package/dist/chunk-RVOBP7PO.js +0 -116
- package/dist/chunk-RVOBP7PO.js.map +0 -1
- package/dist/chunk-SF6R5VMQ.js +0 -97
- package/dist/chunk-SF6R5VMQ.js.map +0 -1
- package/dist/chunk-SP4CP5HY.js +0 -57
- package/dist/chunk-SP4CP5HY.js.map +0 -1
- package/dist/chunk-SWJ4EUOI.js +0 -30
- package/dist/chunk-SWJ4EUOI.js.map +0 -1
- package/dist/chunk-TK24HQJJ.js +0 -128
- package/dist/chunk-TK24HQJJ.js.map +0 -1
- package/dist/chunk-UAYOOTRR.js +0 -77
- package/dist/chunk-UAYOOTRR.js.map +0 -1
- package/dist/chunk-UDTAMHXW.js +0 -55
- package/dist/chunk-UDTAMHXW.js.map +0 -1
- package/dist/chunk-UK27KR35.js +0 -73
- package/dist/chunk-UK27KR35.js.map +0 -1
- package/dist/chunk-UOMQPIB4.js +0 -48
- package/dist/chunk-UOMQPIB4.js.map +0 -1
- package/dist/chunk-UOXU7NDY.js +0 -120
- package/dist/chunk-UOXU7NDY.js.map +0 -1
- package/dist/chunk-V7OOTVK3.js +0 -106
- package/dist/chunk-V7OOTVK3.js.map +0 -1
- package/dist/chunk-VI5M7KJ2.js +0 -1022
- package/dist/chunk-VI5M7KJ2.js.map +0 -1
- package/dist/chunk-VMMATOPE.js +0 -64
- package/dist/chunk-VMMATOPE.js.map +0 -1
- package/dist/chunk-W2PVSIW3.js +0 -89
- package/dist/chunk-W2PVSIW3.js.map +0 -1
- package/dist/chunk-W3DUDZDU.js +0 -88
- package/dist/chunk-W3DUDZDU.js.map +0 -1
- package/dist/chunk-WKEUU2FU.js +0 -114
- package/dist/chunk-WKEUU2FU.js.map +0 -1
- package/dist/chunk-WKLW7RC6.js +0 -28
- package/dist/chunk-WKLW7RC6.js.map +0 -1
- package/dist/chunk-WSJGZNUH.js +0 -111
- package/dist/chunk-WSJGZNUH.js.map +0 -1
- package/dist/chunk-WVPDQMC2.js +0 -144
- package/dist/chunk-WVPDQMC2.js.map +0 -1
- package/dist/chunk-WWNH5ENT.js +0 -43
- package/dist/chunk-WWNH5ENT.js.map +0 -1
- package/dist/chunk-X5L62PXY.js +0 -112
- package/dist/chunk-X5L62PXY.js.map +0 -1
- package/dist/chunk-XGCV5E6W.js +0 -133
- package/dist/chunk-XGCV5E6W.js.map +0 -1
- package/dist/chunk-XRKIEL5M.js +0 -72
- package/dist/chunk-XRKIEL5M.js.map +0 -1
- package/dist/chunk-XUJYEADU.js +0 -80
- package/dist/chunk-XUJYEADU.js.map +0 -1
- package/dist/chunk-XVYNSIQC.js +0 -116
- package/dist/chunk-XVYNSIQC.js.map +0 -1
- package/dist/chunk-XWTISHXO.js +0 -54
- package/dist/chunk-XWTISHXO.js.map +0 -1
- package/dist/chunk-XZKEGEPT.js +0 -156
- package/dist/chunk-XZKEGEPT.js.map +0 -1
- package/dist/chunk-YOGHS4UU.js +0 -202
- package/dist/chunk-YOGHS4UU.js.map +0 -1
- package/dist/chunk-YRSKXEOD.js +0 -135
- package/dist/chunk-YRSKXEOD.js.map +0 -1
- package/dist/chunk-ZALLCR7X.js +0 -108
- package/dist/chunk-ZALLCR7X.js.map +0 -1
- package/dist/chunk-ZDAOHMCW.js +0 -46
- package/dist/chunk-ZDAOHMCW.js.map +0 -1
- package/dist/chunk-ZESICCKK.js +0 -37
- package/dist/chunk-ZESICCKK.js.map +0 -1
- package/dist/chunk-ZIKFOD6N.js +0 -87
- package/dist/chunk-ZIKFOD6N.js.map +0 -1
- package/dist/chunk-ZJRWCQEN.js +0 -76
- package/dist/chunk-ZJRWCQEN.js.map +0 -1
- package/dist/chunk-ZSRJCIWF.js +0 -24
- package/dist/chunk-ZSRJCIWF.js.map +0 -1
- package/dist/plugin-Atb0VKtr.d.ts +0 -172
- package/dist/slide/index.d.ts +0 -212
- package/dist/slide/plugins/emoji/index.d.ts +0 -29
- package/dist/slide/plugins/math/index.d.ts +0 -13
- package/dist/slide/plugins/mermaid/index.d.ts +0 -55
- package/dist/slide/plugins/shiki/index.d.ts +0 -18
- package/dist/slide-deck/index.d.ts +0 -377
- package/dist/whiteboard/index.d.ts +0 -258
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/run-status-pill/run-status-pill.tsx"],"names":[],"mappings":";;;;;AAwCA,IAAM,WAAA,GAA6C;AAAA,EACjD,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,KAAA;AAAA,IACN,KAAA,EAAO,QAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,OAAA;AAAA,IACN,KAAA,EAAO,aAAA;AAAA,IACP,SAAA,EAAW,8CAAA;AAAA,IACX,IAAA,EAAM;AAAA,GACR;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,YAAA;AAAA,IACN,KAAA,EAAO,MAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO,OAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,OAAA;AAAA,IACN,KAAA,EAAO,WAAA;AAAA,IACP,SAAA,EAAW;AAAA,GACb;AAAA,EACA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO,aAAA;AAAA,IACP,SAAA,EAAW;AAAA;AAEf,CAAA;AAEO,IAAM,aAAA,GAAgB,UAAA;AAAA,EAC3B,CAAC,EAAE,MAAA,EAAQ,MAAA,EAAQ,SAAA,EAAW,eAAe,UAAA,EAAY,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AAC1E,IAAA,MAAM,IAAA,GAAO,YAAY,MAAM,CAAA;AAC/B,IAAA,MAAM,OAAO,IAAA,CAAK,IAAA;AAClB,IAAA,uBACE,IAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,iBAAA;AAAA,QACV,GAAA;AAAA,QAEA,IAAA,EAAK,QAAA;AAAA,QACL,WAAA,EAAU,QAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,sFAAA;AAAA,UACA,IAAA,CAAK,SAAA;AAAA,UACL;AAAA,SACF;AAAA,QACA,eAAa,UAAA,IAAc,iBAAA;AAAA,QAC3B,aAAA,EAAa,MAAA;AAAA,QACZ,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,WAAW,EAAA,CAAG,QAAA,EAAU,KAAK,IAAA,IAAQ,cAAc,CAAA,EAAG,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,0BACxE,GAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,UACjB,MAAA,KAAW,MAAA,IAAa,MAAA,CAAO,MAAA,GAAS,CAAA,yBACtC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAwB,aAAA,EAAY,mBAAA,EACjD,QAAA,EAAA;AAAA,YAAA,QAAA;AAAA,YACA;AAAA,WAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AACA,aAAA,CAAc,WAAA,GAAc,eAAA","file":"chunk-H3L7WZDZ.js","sourcesContent":["import {\n AlertCircle,\n CheckCircle2,\n Clock,\n Loader2,\n type LucideIcon,\n PauseCircle,\n XCircle,\n} from \"lucide-react\";\nimport { type HTMLAttributes, forwardRef } from \"react\";\n\nimport { cn } from \"../../../lib/cn.js\";\n\n/**\n * RunStatusPill — compact status indicator for Run/Task lifecycle states.\n * Mirrors OpenClaw's `Run status: In progress | Done | Interrupted` pill.\n * Closed enum mirrors SDK `Task` state (D362).\n */\n\nexport type RunStatus =\n | \"queued\"\n | \"in_progress\"\n | \"finished\"\n | \"error\"\n | \"cancelled\"\n | \"interrupted\";\n\nexport interface RunStatusPillProps extends Omit<HTMLAttributes<HTMLSpanElement>, \"title\"> {\n status: RunStatus;\n detail?: string;\n \"data-testid\"?: string;\n}\n\ninterface StatusMeta {\n icon: LucideIcon;\n label: string;\n className: string;\n spin?: boolean;\n}\n\nconst STATUS_META: Record<RunStatus, StatusMeta> = {\n queued: {\n icon: Clock,\n label: \"Queued\",\n className: \"border-border bg-muted text-muted-foreground\",\n },\n in_progress: {\n icon: Loader2,\n label: \"In progress\",\n className: \"border-primary/40 bg-primary/10 text-primary\",\n spin: true,\n },\n finished: {\n icon: CheckCircle2,\n label: \"Done\",\n className: \"border-success/40 bg-success/10 text-success\",\n },\n error: {\n icon: AlertCircle,\n label: \"Error\",\n className: \"border-destructive/40 bg-destructive/10 text-destructive\",\n },\n cancelled: {\n icon: XCircle,\n label: \"Cancelled\",\n className: \"border-border bg-muted text-muted-foreground\",\n },\n interrupted: {\n icon: PauseCircle,\n label: \"Interrupted\",\n className: \"border-warning/40 bg-warning/10 text-warning\",\n },\n};\n\nexport const RunStatusPill = forwardRef<HTMLSpanElement, RunStatusPillProps>(\n ({ status, detail, className, \"data-testid\": dataTestId, ...rest }, ref) => {\n const meta = STATUS_META[status];\n const Icon = meta.icon;\n return (\n <span\n data-slot=\"run-status-pill\"\n ref={ref}\n // biome-ignore lint/a11y/useSemanticElements: inline status badge — <span role=\"status\"> keeps it phrasing-content compatible inside chat headers and table cells, where the implicit <output> placement would break layout\n role=\"status\"\n aria-live=\"polite\"\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 font-medium text-xs\",\n meta.className,\n className,\n )}\n data-testid={dataTestId ?? \"run-status-pill\"}\n data-status={status}\n {...rest}\n >\n <Icon className={cn(\"size-3\", meta.spin && \"animate-spin\")} aria-hidden />\n <span>{meta.label}</span>\n {detail !== undefined && detail.length > 0 && (\n <span className=\"text-muted-foreground\" data-testid=\"run-status-detail\">\n {\" · \"}\n {detail}\n </span>\n )}\n </span>\n );\n },\n);\nRunStatusPill.displayName = \"RunStatusPill\";\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var LoginSplit = forwardRef(
|
|
6
|
+
({ className, left, right, footer, reverse, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
7
|
+
"div",
|
|
8
|
+
{
|
|
9
|
+
"data-slot": "login-split",
|
|
10
|
+
ref,
|
|
11
|
+
className: cn("flex min-h-screen flex-col bg-background", className),
|
|
12
|
+
...props,
|
|
13
|
+
children: [
|
|
14
|
+
/* @__PURE__ */ jsxs(
|
|
15
|
+
"div",
|
|
16
|
+
{
|
|
17
|
+
className: cn(
|
|
18
|
+
"grid flex-1 grid-cols-1 lg:grid-cols-2",
|
|
19
|
+
reverse && "lg:[&>*:first-child]:order-2"
|
|
20
|
+
),
|
|
21
|
+
children: [
|
|
22
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center px-6 py-12 lg:px-12", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-md", children: left }) }),
|
|
23
|
+
/* @__PURE__ */ jsx(
|
|
24
|
+
"div",
|
|
25
|
+
{
|
|
26
|
+
className: cn(
|
|
27
|
+
"relative flex items-center justify-center px-6 py-12 lg:px-12",
|
|
28
|
+
"bg-dotted-violet bg-muted/60"
|
|
29
|
+
),
|
|
30
|
+
children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-lg", children: right })
|
|
31
|
+
}
|
|
32
|
+
)
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
),
|
|
36
|
+
footer ? /* @__PURE__ */ jsx("footer", { className: "border-border/40 border-t px-6 py-3 text-center text-body-sm text-muted-foreground", children: footer }) : null
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
);
|
|
41
|
+
LoginSplit.displayName = "LoginSplit";
|
|
42
|
+
|
|
43
|
+
export { LoginSplit };
|
|
44
|
+
//# sourceMappingURL=chunk-H55WXDME.js.map
|
|
45
|
+
//# sourceMappingURL=chunk-H55WXDME.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/login-split/login-split.tsx"],"names":[],"mappings":";;;;AA0BA,IAAM,UAAA,GAAa,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,QAAQ,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBACtD,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,0CAAA,EAA4C,SAAS,CAAA;AAAA,MAClE,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,wCAAA;AAAA,cACA,OAAA,IAAW;AAAA,aACb;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sDAAA,EACb,QAAA,kBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,iBAAA,EAAmB,gBAAK,CAAA,EACzC,CAAA;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,+DAAA;AAAA,oBACA;AAAA,mBACF;AAAA,kBAEA,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAmB,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAC1C;AAAA;AAAA,SACF;AAAA,QACC,yBACC,GAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,oFAAA,EACf,kBACH,CAAA,GACE;AAAA;AAAA;AAAA;AAGV;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-H55WXDME.js","sourcesContent":["import { forwardRef } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\ninterface LoginSplitProps extends HTMLAttributes<HTMLDivElement> {\n /** Left pane content — form, brand, etc. */\n left: ReactNode;\n /** Right pane content — illustration, marketing, social proof. */\n right: ReactNode;\n /**\n * Optional footer rendered below both panes.\n */\n footer?: ReactNode;\n /**\n * Reverse the split (form on the right). Default = form left.\n */\n reverse?: boolean;\n}\n\n/**\n * LoginSplit — 50/50 split layout shell.\n *\n * Used for the auth flow. Two slots (`left`, `right`); the right pane has a\n * subtle violet wash so the illustration sits inside Theo identity. Mobile\n * collapses to single column.\n */\nconst LoginSplit = forwardRef<HTMLDivElement, LoginSplitProps>(\n ({ className, left, right, footer, reverse, ...props }, ref) => (\n <div\n data-slot=\"login-split\"\n ref={ref}\n className={cn(\"flex min-h-screen flex-col bg-background\", className)}\n {...props}\n >\n <div\n className={cn(\n \"grid flex-1 grid-cols-1 lg:grid-cols-2\",\n reverse && \"lg:[&>*:first-child]:order-2\",\n )}\n >\n <div className=\"flex items-center justify-center px-6 py-12 lg:px-12\">\n <div className=\"w-full max-w-md\">{left}</div>\n </div>\n <div\n className={cn(\n \"relative flex items-center justify-center px-6 py-12 lg:px-12\",\n \"bg-dotted-violet bg-muted/60\",\n )}\n >\n <div className=\"w-full max-w-lg\">{right}</div>\n </div>\n </div>\n {footer ? (\n <footer className=\"border-border/40 border-t px-6 py-3 text-center text-body-sm text-muted-foreground\">\n {footer}\n </footer>\n ) : null}\n </div>\n ),\n);\nLoginSplit.displayName = \"LoginSplit\";\n\nexport { LoginSplit };\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var StepsRail = forwardRef(
|
|
6
|
+
({ className, steps, title, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
7
|
+
"aside",
|
|
8
|
+
{
|
|
9
|
+
"data-slot": "steps-rail",
|
|
10
|
+
ref,
|
|
11
|
+
className: cn(
|
|
12
|
+
"flex w-14 flex-col items-center gap-6 border-border/40 border-l py-6",
|
|
13
|
+
className
|
|
14
|
+
),
|
|
15
|
+
"aria-label": "Task steps",
|
|
16
|
+
...props,
|
|
17
|
+
children: [
|
|
18
|
+
title ? /* @__PURE__ */ jsx("span", { className: "font-mono text-label-caps text-muted-foreground uppercase tracking-wider", children: title }) : null,
|
|
19
|
+
/* @__PURE__ */ jsx("ol", { className: "before:-translate-x-1/2 relative grid place-items-center gap-6 before:absolute before:top-3 before:bottom-3 before:left-1/2 before:w-px before:bg-border/60", children: steps.map((step, idx) => {
|
|
20
|
+
const state = step.state ?? (idx === 0 ? "current" : "pending");
|
|
21
|
+
return /* @__PURE__ */ jsx("li", { className: "relative z-10", children: /* @__PURE__ */ jsx(
|
|
22
|
+
"span",
|
|
23
|
+
{
|
|
24
|
+
className: cn(
|
|
25
|
+
"grid size-7 place-items-center rounded-full border-2 font-bold font-mono text-code-sm",
|
|
26
|
+
state === "complete" && "border-primary bg-primary text-primary-foreground",
|
|
27
|
+
state === "current" && "border-foreground bg-foreground text-background",
|
|
28
|
+
state === "pending" && "border-border bg-card text-muted-foreground"
|
|
29
|
+
),
|
|
30
|
+
"aria-current": state === "current" ? "step" : void 0,
|
|
31
|
+
children: step.label ?? idx + 1
|
|
32
|
+
}
|
|
33
|
+
) }, step.id);
|
|
34
|
+
}) })
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
);
|
|
39
|
+
StepsRail.displayName = "StepsRail";
|
|
40
|
+
|
|
41
|
+
export { StepsRail };
|
|
42
|
+
//# sourceMappingURL=chunk-HB45JHMM.js.map
|
|
43
|
+
//# sourceMappingURL=chunk-HB45JHMM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/steps-rail/steps-rail.tsx"],"names":[],"mappings":";;;;AA2BA,IAAM,SAAA,GAAY,UAAA;AAAA,EAChB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,OAAO,GAAG,KAAA,IAAS,GAAA,qBACtC,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,sEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,YAAA,EAAW,YAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,KAAA,mBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0EAAA,EACb,iBACH,CAAA,GACE,IAAA;AAAA,wBACJ,GAAA,CAAC,QAAG,SAAA,EAAU,6JAAA,EACX,gBAAM,GAAA,CAAI,CAAC,MAAM,GAAA,KAAQ;AACxB,UAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,KAAU,GAAA,KAAQ,IAAI,SAAA,GAAY,SAAA,CAAA;AACrD,UAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAiB,SAAA,EAAU,eAAA,EAC1B,QAAA,kBAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,uFAAA;AAAA,gBACA,UAAU,UAAA,IAAc,mDAAA;AAAA,gBACxB,UAAU,SAAA,IAAa,iDAAA;AAAA,gBACvB,UAAU,SAAA,IAAa;AAAA,eACzB;AAAA,cACA,cAAA,EAAc,KAAA,KAAU,SAAA,GAAY,MAAA,GAAS,MAAA;AAAA,cAE5C,QAAA,EAAA,IAAA,CAAK,SAAS,GAAA,GAAM;AAAA;AAAA,WACvB,EAAA,EAXO,KAAK,EAYd,CAAA;AAAA,QAEJ,CAAC,CAAA,EACH;AAAA;AAAA;AAAA;AAGN;AACA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-HB45JHMM.js","sourcesContent":["import { forwardRef } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\nexport interface RailStep {\n id: string | number;\n label?: ReactNode;\n /**\n * Visual state: \"complete\", \"current\", \"pending\".\n */\n state?: \"complete\" | \"current\" | \"pending\";\n}\n\ninterface StepsRailProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n steps: RailStep[];\n /**\n * Optional label rendered at the top of the rail (e.g. \"STEPS\").\n */\n title?: ReactNode;\n}\n\n/**\n * StepsRail — vertical numbered rail with connecting line.\n *\n * Mirrors the file-organisation wiremock right rail: 5 numbered dots, current\n * highlighted, line connecting them.\n */\nconst StepsRail = forwardRef<HTMLElement, StepsRailProps>(\n ({ className, steps, title, ...props }, ref) => (\n <aside\n data-slot=\"steps-rail\"\n ref={ref}\n className={cn(\n \"flex w-14 flex-col items-center gap-6 border-border/40 border-l py-6\",\n className,\n )}\n aria-label=\"Task steps\"\n {...props}\n >\n {title ? (\n <span className=\"font-mono text-label-caps text-muted-foreground uppercase tracking-wider\">\n {title}\n </span>\n ) : null}\n <ol className=\"before:-translate-x-1/2 relative grid place-items-center gap-6 before:absolute before:top-3 before:bottom-3 before:left-1/2 before:w-px before:bg-border/60\">\n {steps.map((step, idx) => {\n const state = step.state ?? (idx === 0 ? \"current\" : \"pending\");\n return (\n <li key={step.id} className=\"relative z-10\">\n <span\n className={cn(\n \"grid size-7 place-items-center rounded-full border-2 font-bold font-mono text-code-sm\",\n state === \"complete\" && \"border-primary bg-primary text-primary-foreground\",\n state === \"current\" && \"border-foreground bg-foreground text-background\",\n state === \"pending\" && \"border-border bg-card text-muted-foreground\",\n )}\n aria-current={state === \"current\" ? \"step\" : undefined}\n >\n {step.label ?? idx + 1}\n </span>\n </li>\n );\n })}\n </ol>\n </aside>\n ),\n);\nStepsRail.displayName = \"StepsRail\";\n\nexport { StepsRail };\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { BadgeWithDot } from './chunk-624AATQZ.js';
|
|
2
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
3
|
+
import { ChevronDown } from 'lucide-react';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var statusVariant = {
|
|
8
|
+
idle: "default",
|
|
9
|
+
permission_required: "warning",
|
|
10
|
+
starting: "primary",
|
|
11
|
+
running: "primary",
|
|
12
|
+
verifying: "primary",
|
|
13
|
+
completed: "success",
|
|
14
|
+
failed: "destructive"
|
|
15
|
+
};
|
|
16
|
+
var statusDot = {
|
|
17
|
+
idle: "muted",
|
|
18
|
+
permission_required: "warning",
|
|
19
|
+
starting: "primary",
|
|
20
|
+
running: "primary",
|
|
21
|
+
verifying: "primary",
|
|
22
|
+
completed: "success",
|
|
23
|
+
failed: "destructive"
|
|
24
|
+
};
|
|
25
|
+
var statusLabel = {
|
|
26
|
+
idle: "Idle",
|
|
27
|
+
permission_required: "Permission required",
|
|
28
|
+
starting: "Starting up",
|
|
29
|
+
running: "Running",
|
|
30
|
+
verifying: "Verifying",
|
|
31
|
+
completed: "Completed",
|
|
32
|
+
failed: "Failed"
|
|
33
|
+
};
|
|
34
|
+
var TaskHeader = forwardRef(
|
|
35
|
+
({ className, title, status, onToggle, actions, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
36
|
+
"header",
|
|
37
|
+
{
|
|
38
|
+
"data-slot": "task-header",
|
|
39
|
+
ref,
|
|
40
|
+
className: cn(
|
|
41
|
+
"flex items-center justify-between gap-3 rounded-xl border border-border/40 bg-card px-4 py-3",
|
|
42
|
+
className
|
|
43
|
+
),
|
|
44
|
+
...props,
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
47
|
+
/* @__PURE__ */ jsx("h2", { className: "truncate font-display text-title-lg tracking-tight", children: title }),
|
|
48
|
+
onToggle ? /* @__PURE__ */ jsx(
|
|
49
|
+
"button",
|
|
50
|
+
{
|
|
51
|
+
type: "button",
|
|
52
|
+
onClick: onToggle,
|
|
53
|
+
"aria-label": "Toggle task details",
|
|
54
|
+
className: "rounded-md p-1 text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
55
|
+
children: /* @__PURE__ */ jsx(ChevronDown, { className: "size-4" })
|
|
56
|
+
}
|
|
57
|
+
) : null
|
|
58
|
+
] }),
|
|
59
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
60
|
+
status ? /* @__PURE__ */ jsxs(BadgeWithDot, { variant: statusVariant[status], children: [
|
|
61
|
+
/* @__PURE__ */ jsx(
|
|
62
|
+
BadgeWithDot.Dot,
|
|
63
|
+
{
|
|
64
|
+
tone: statusDot[status],
|
|
65
|
+
pulse: status === "running" || status === "starting" || status === "verifying"
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
statusLabel[status]
|
|
69
|
+
] }) : null,
|
|
70
|
+
actions
|
|
71
|
+
] })
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
);
|
|
76
|
+
TaskHeader.displayName = "TaskHeader";
|
|
77
|
+
|
|
78
|
+
export { TaskHeader };
|
|
79
|
+
//# sourceMappingURL=chunk-HETHTYEZ.js.map
|
|
80
|
+
//# sourceMappingURL=chunk-HETHTYEZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/composites/task-header/task-header.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,aAAA,GAGF;AAAA,EACF,IAAA,EAAM,SAAA;AAAA,EACN,mBAAA,EAAqB,SAAA;AAAA,EACrB,QAAA,EAAU,SAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW,SAAA;AAAA,EACX,SAAA,EAAW,SAAA;AAAA,EACX,MAAA,EAAQ;AACV,CAAA;AACA,IAAM,SAAA,GAA6F;AAAA,EACjG,IAAA,EAAM,OAAA;AAAA,EACN,mBAAA,EAAqB,SAAA;AAAA,EACrB,QAAA,EAAU,SAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW,SAAA;AAAA,EACX,SAAA,EAAW,SAAA;AAAA,EACX,MAAA,EAAQ;AACV,CAAA;AACA,IAAM,WAAA,GAA0C;AAAA,EAC9C,IAAA,EAAM,MAAA;AAAA,EACN,mBAAA,EAAqB,qBAAA;AAAA,EACrB,QAAA,EAAU,aAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW,WAAA;AAAA,EACX,SAAA,EAAW,WAAA;AAAA,EACX,MAAA,EAAQ;AACV,CAAA;AAmBA,IAAM,UAAA,GAAa,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,MAAA,EAAQ,UAAU,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1D,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,8FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,oDAAA,EAAsD,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACzE,QAAA,mBACC,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,QAAA;AAAA,cACT,YAAA,EAAW,qBAAA;AAAA,cACX,SAAA,EAAU,mJAAA;AAAA,cAEV,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,WAClC,GACE;AAAA,SAAA,EACN,CAAA;AAAA,wBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,MAAA,mBACC,IAAA,CAAC,YAAA,EAAA,EAAM,OAAA,EAAS,aAAA,CAAc,MAAM,CAAA,EAClC,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,YAAA,CAAM,GAAA;AAAA,cAAN;AAAA,gBACC,IAAA,EAAM,UAAU,MAAM,CAAA;AAAA,gBACtB,KAAA,EAAO,MAAA,KAAW,SAAA,IAAa,MAAA,KAAW,cAAc,MAAA,KAAW;AAAA;AAAA,aACrE;AAAA,YACC,YAAY,MAAM;AAAA,WAAA,EACrB,CAAA,GACE,IAAA;AAAA,UACH;AAAA,SAAA,EACH;AAAA;AAAA;AAAA;AAGN;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-HETHTYEZ.js","sourcesContent":["import { ChevronDown } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\nimport type { TaskStatus } from \"../../../types/task.js\";\nimport { Badge } from \"../../primitives/badge/index.js\";\n\nconst statusVariant: Record<\n TaskStatus,\n \"default\" | \"primary\" | \"warning\" | \"success\" | \"destructive\"\n> = {\n idle: \"default\",\n permission_required: \"warning\",\n starting: \"primary\",\n running: \"primary\",\n verifying: \"primary\",\n completed: \"success\",\n failed: \"destructive\",\n};\nconst statusDot: Record<TaskStatus, \"primary\" | \"success\" | \"warning\" | \"destructive\" | \"muted\"> = {\n idle: \"muted\",\n permission_required: \"warning\",\n starting: \"primary\",\n running: \"primary\",\n verifying: \"primary\",\n completed: \"success\",\n failed: \"destructive\",\n};\nconst statusLabel: Record<TaskStatus, string> = {\n idle: \"Idle\",\n permission_required: \"Permission required\",\n starting: \"Starting up\",\n running: \"Running\",\n verifying: \"Verifying\",\n completed: \"Completed\",\n failed: \"Failed\",\n};\n\ninterface TaskHeaderProps extends Omit<HTMLAttributes<HTMLElement>, \"title\"> {\n title: ReactNode;\n status?: TaskStatus;\n /**\n * If provided, a chevron is shown next to the title and clicking it fires this callback.\n * Used as the \"expand task metadata\" affordance in the Infra shell.\n */\n onToggle?: () => void;\n /** Right-side actions (e.g. cancel task, close panel). */\n actions?: ReactNode;\n}\n\n/**\n * TaskHeader — title bar for a task pane.\n *\n * Visual: display-md title with chevron + optional status badge with pulse + actions slot.\n */\nconst TaskHeader = forwardRef<HTMLElement, TaskHeaderProps>(\n ({ className, title, status, onToggle, actions, ...props }, ref) => (\n <header\n data-slot=\"task-header\"\n ref={ref}\n className={cn(\n \"flex items-center justify-between gap-3 rounded-xl border border-border/40 bg-card px-4 py-3\",\n className,\n )}\n {...props}\n >\n <div className=\"flex min-w-0 items-center gap-2\">\n <h2 className=\"truncate font-display text-title-lg tracking-tight\">{title}</h2>\n {onToggle ? (\n <button\n type=\"button\"\n onClick={onToggle}\n aria-label=\"Toggle task details\"\n className=\"rounded-md p-1 text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <ChevronDown className=\"size-4\" />\n </button>\n ) : null}\n </div>\n <div className=\"flex items-center gap-2\">\n {status ? (\n <Badge variant={statusVariant[status]}>\n <Badge.Dot\n tone={statusDot[status]}\n pulse={status === \"running\" || status === \"starting\" || status === \"verifying\"}\n />\n {statusLabel[status]}\n </Badge>\n ) : null}\n {actions}\n </div>\n </header>\n ),\n);\nTaskHeader.displayName = \"TaskHeader\";\n\nexport { TaskHeader };\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
2
|
+
import { FileText, FileCode, FileSpreadsheet, FileImage, File, X } from 'lucide-react';
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var typeIcon = {
|
|
7
|
+
image: FileImage,
|
|
8
|
+
spreadsheet: FileSpreadsheet,
|
|
9
|
+
code: FileCode,
|
|
10
|
+
text: FileText
|
|
11
|
+
};
|
|
12
|
+
var AttachmentChip = forwardRef(
|
|
13
|
+
({ className, attachment, onRemove, ...props }, ref) => {
|
|
14
|
+
const Icon = (attachment.type ? typeIcon[attachment.type] : void 0) ?? File;
|
|
15
|
+
return /* @__PURE__ */ jsxs(
|
|
16
|
+
"div",
|
|
17
|
+
{
|
|
18
|
+
"data-slot": "attachment-chip",
|
|
19
|
+
ref,
|
|
20
|
+
className: cn(
|
|
21
|
+
"inline-flex max-w-[18rem] items-center gap-2 rounded-md border border-border/40 bg-muted/60 px-2 py-1",
|
|
22
|
+
"font-mono text-code-sm text-muted-foreground",
|
|
23
|
+
className
|
|
24
|
+
),
|
|
25
|
+
...props,
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ jsx(Icon, { className: "size-3.5 shrink-0 text-primary", "aria-hidden": "true" }),
|
|
28
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-foreground", title: attachment.name, children: attachment.name }),
|
|
29
|
+
attachment.size ? /* @__PURE__ */ jsxs("span", { children: [
|
|
30
|
+
"\xB7 ",
|
|
31
|
+
attachment.size
|
|
32
|
+
] }) : null,
|
|
33
|
+
onRemove ? /* @__PURE__ */ jsx(
|
|
34
|
+
"button",
|
|
35
|
+
{
|
|
36
|
+
type: "button",
|
|
37
|
+
onClick: () => onRemove(attachment.id),
|
|
38
|
+
"aria-label": `Remove ${attachment.name}`,
|
|
39
|
+
className: cn(
|
|
40
|
+
"ml-1 rounded-sm p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-destructive",
|
|
41
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
42
|
+
),
|
|
43
|
+
children: /* @__PURE__ */ jsx(X, { className: "size-3" })
|
|
44
|
+
}
|
|
45
|
+
) : null
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
AttachmentChip.displayName = "AttachmentChip";
|
|
52
|
+
|
|
53
|
+
export { AttachmentChip };
|
|
54
|
+
//# sourceMappingURL=chunk-HHSKNB32.js.map
|
|
55
|
+
//# sourceMappingURL=chunk-HHSKNB32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/attachment-chip/attachment-chip.tsx"],"names":[],"mappings":";;;;;AAOA,IAAM,QAAA,GAA0C;AAAA,EAC9C,KAAA,EAAO,SAAA;AAAA,EACP,WAAA,EAAa,eAAA;AAAA,EACb,IAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAaA,IAAM,cAAA,GAAiB,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,UAAA,EAAY,UAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AACtD,IAAA,MAAM,QAAuB,UAAA,CAAW,IAAA,GAAO,SAAS,UAAA,CAAW,IAAI,IAAI,MAAA,KAAc,IAAA;AACzF,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,iBAAA;AAAA,QACV,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,uGAAA;AAAA,UACA,8CAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,gCAAA,EAAiC,aAAA,EAAY,MAAA,EAAO,CAAA;AAAA,0BACpE,GAAA,CAAC,UAAK,SAAA,EAAU,0BAAA,EAA2B,OAAO,UAAA,CAAW,IAAA,EAC1D,qBAAW,IAAA,EACd,CAAA;AAAA,UACC,UAAA,CAAW,IAAA,mBAAO,IAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,YAAA,OAAA;AAAA,YAAG,UAAA,CAAW;AAAA,WAAA,EAAK,CAAA,GAAU,IAAA;AAAA,UACrD,QAAA,mBACC,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,MAAM,QAAA,CAAS,UAAA,CAAW,EAAE,CAAA;AAAA,cACrC,YAAA,EAAY,CAAA,OAAA,EAAU,UAAA,CAAW,IAAI,CAAA,CAAA;AAAA,cACrC,SAAA,EAAW,EAAA;AAAA,gBACT,qGAAA;AAAA,gBACA;AAAA,eACF;AAAA,cAEA,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAU,QAAA,EAAS;AAAA;AAAA,WACxB,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA","file":"chunk-HHSKNB32.js","sourcesContent":["import { File, FileCode, FileImage, FileSpreadsheet, FileText, X } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport type { HTMLAttributes } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\nimport type { IconComponent } from \"../../../lib/types.js\";\nimport type { Attachment } from \"../../../types/chat.js\";\n\nconst typeIcon: Record<string, IconComponent> = {\n image: FileImage,\n spreadsheet: FileSpreadsheet,\n code: FileCode,\n text: FileText,\n};\n\ninterface AttachmentChipProps extends HTMLAttributes<HTMLDivElement> {\n attachment: Attachment;\n onRemove?: (id: string) => void;\n}\n\n/**\n * AttachmentChip — file pill shown in chat composer or message attachments row.\n *\n * Visual: rounded chip with type-icon + name + size + optional remove button.\n * Truncates the name with `text-ellipsis`; full name available via title.\n */\nconst AttachmentChip = forwardRef<HTMLDivElement, AttachmentChipProps>(\n ({ className, attachment, onRemove, ...props }, ref) => {\n const Icon: IconComponent = (attachment.type ? typeIcon[attachment.type] : undefined) ?? File;\n return (\n <div\n data-slot=\"attachment-chip\"\n ref={ref}\n className={cn(\n \"inline-flex max-w-[18rem] items-center gap-2 rounded-md border border-border/40 bg-muted/60 px-2 py-1\",\n \"font-mono text-code-sm text-muted-foreground\",\n className,\n )}\n {...props}\n >\n <Icon className=\"size-3.5 shrink-0 text-primary\" aria-hidden=\"true\" />\n <span className=\"truncate text-foreground\" title={attachment.name}>\n {attachment.name}\n </span>\n {attachment.size ? <span>· {attachment.size}</span> : null}\n {onRemove ? (\n <button\n type=\"button\"\n onClick={() => onRemove(attachment.id)}\n aria-label={`Remove ${attachment.name}`}\n className={cn(\n \"ml-1 rounded-sm p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-destructive\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n )}\n >\n <X className=\"size-3\" />\n </button>\n ) : null}\n </div>\n );\n },\n);\nAttachmentChip.displayName = \"AttachmentChip\";\n\nexport { AttachmentChip };\n"]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
3
|
+
import { Info, AlertTriangle, AlertOctagon } from 'lucide-react';
|
|
4
|
+
import { forwardRef, useState } from 'react';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var SEVERITY_META = {
|
|
8
|
+
fatal: {
|
|
9
|
+
icon: AlertOctagon,
|
|
10
|
+
className: "text-destructive",
|
|
11
|
+
label: "Fatal"
|
|
12
|
+
},
|
|
13
|
+
error: {
|
|
14
|
+
icon: AlertTriangle,
|
|
15
|
+
className: "text-warning",
|
|
16
|
+
label: "Error"
|
|
17
|
+
},
|
|
18
|
+
warn: {
|
|
19
|
+
icon: Info,
|
|
20
|
+
className: "text-info",
|
|
21
|
+
label: "Warning"
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
function CollapsibleSection({
|
|
25
|
+
title,
|
|
26
|
+
testId,
|
|
27
|
+
defaultOpen = true,
|
|
28
|
+
children
|
|
29
|
+
}) {
|
|
30
|
+
const [open, setOpen] = useState(defaultOpen);
|
|
31
|
+
return /* @__PURE__ */ jsxs("section", { className: "rounded border border-border", "data-testid": testId, children: [
|
|
32
|
+
/* @__PURE__ */ jsxs(
|
|
33
|
+
"button",
|
|
34
|
+
{
|
|
35
|
+
type: "button",
|
|
36
|
+
onClick: () => setOpen((v) => !v),
|
|
37
|
+
className: "flex w-full items-center justify-between px-3 py-2 text-left font-medium text-sm hover:bg-muted/30",
|
|
38
|
+
"aria-expanded": open,
|
|
39
|
+
"data-testid": `${testId}-toggle`,
|
|
40
|
+
children: [
|
|
41
|
+
/* @__PURE__ */ jsx("span", { children: title }),
|
|
42
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, children: open ? "\u25BE" : "\u25B8" })
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
),
|
|
46
|
+
open && /* @__PURE__ */ jsx("div", { className: "border-border border-t px-3 py-2", children })
|
|
47
|
+
] });
|
|
48
|
+
}
|
|
49
|
+
var StabilityBundleViewer = forwardRef(
|
|
50
|
+
({ bundle, onCopy, className, "data-testid": dataTestId }, ref) => {
|
|
51
|
+
const meta = SEVERITY_META[bundle.severity] ?? SEVERITY_META.error;
|
|
52
|
+
const Icon = meta.icon;
|
|
53
|
+
const envEntries = bundle.env !== void 0 ? Object.entries(bundle.env) : [];
|
|
54
|
+
const configEntries = bundle.config !== void 0 ? Object.entries(bundle.config) : [];
|
|
55
|
+
const metadataEntries = bundle.metadata !== void 0 ? Object.entries(bundle.metadata) : [];
|
|
56
|
+
return /* @__PURE__ */ jsxs(
|
|
57
|
+
"div",
|
|
58
|
+
{
|
|
59
|
+
"data-slot": "stability-bundle-viewer",
|
|
60
|
+
ref,
|
|
61
|
+
className: cn("flex flex-col gap-3", className),
|
|
62
|
+
"data-testid": dataTestId ?? "stability-bundle-viewer",
|
|
63
|
+
children: [
|
|
64
|
+
/* @__PURE__ */ jsxs("header", { className: "flex items-start gap-3 rounded border border-border bg-card p-3", children: [
|
|
65
|
+
/* @__PURE__ */ jsx(Icon, { className: cn("size-5", meta.className), "aria-hidden": true }),
|
|
66
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
67
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2", children: [
|
|
68
|
+
/* @__PURE__ */ jsx(
|
|
69
|
+
"span",
|
|
70
|
+
{
|
|
71
|
+
className: cn("font-semibold text-sm", meta.className),
|
|
72
|
+
"data-testid": "stability-severity",
|
|
73
|
+
children: meta.label
|
|
74
|
+
}
|
|
75
|
+
),
|
|
76
|
+
/* @__PURE__ */ jsx(
|
|
77
|
+
"time",
|
|
78
|
+
{
|
|
79
|
+
className: "text-muted-foreground text-xs",
|
|
80
|
+
dateTime: bundle.timestamp,
|
|
81
|
+
"data-testid": "stability-timestamp",
|
|
82
|
+
children: bundle.timestamp
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
] }),
|
|
86
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 text-sm", "data-testid": "stability-summary", children: bundle.summary })
|
|
87
|
+
] }),
|
|
88
|
+
onCopy !== void 0 && /* @__PURE__ */ jsx(
|
|
89
|
+
"button",
|
|
90
|
+
{
|
|
91
|
+
type: "button",
|
|
92
|
+
onClick: onCopy,
|
|
93
|
+
className: "rounded border border-border px-2 py-1 text-xs hover:bg-muted/30",
|
|
94
|
+
"data-testid": "stability-copy",
|
|
95
|
+
children: "Copy"
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
] }),
|
|
99
|
+
bundle.error !== void 0 && /* @__PURE__ */ jsxs(CollapsibleSection, { title: "Error", testId: "stability-section-error", children: [
|
|
100
|
+
/* @__PURE__ */ jsxs("p", { className: "font-mono text-sm", children: [
|
|
101
|
+
/* @__PURE__ */ jsx("strong", { children: bundle.error.name }),
|
|
102
|
+
": ",
|
|
103
|
+
bundle.error.message
|
|
104
|
+
] }),
|
|
105
|
+
bundle.error.stack !== void 0 && bundle.error.stack.length > 0 && /* @__PURE__ */ jsx(
|
|
106
|
+
"pre",
|
|
107
|
+
{
|
|
108
|
+
className: "mt-2 overflow-x-auto rounded bg-muted/30 p-2 text-xs",
|
|
109
|
+
"data-testid": "stability-stack",
|
|
110
|
+
children: bundle.error.stack
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
] }),
|
|
114
|
+
envEntries.length > 0 && /* @__PURE__ */ jsx(
|
|
115
|
+
CollapsibleSection,
|
|
116
|
+
{
|
|
117
|
+
title: `Environment (${envEntries.length})`,
|
|
118
|
+
testId: "stability-section-env",
|
|
119
|
+
defaultOpen: false,
|
|
120
|
+
children: /* @__PURE__ */ jsxs("table", { className: "w-full text-xs", children: [
|
|
121
|
+
/* @__PURE__ */ jsx("thead", { className: "text-muted-foreground", children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
122
|
+
/* @__PURE__ */ jsx("th", { className: "text-left", children: "Key" }),
|
|
123
|
+
/* @__PURE__ */ jsx("th", { className: "text-left", children: "Value" })
|
|
124
|
+
] }) }),
|
|
125
|
+
/* @__PURE__ */ jsx("tbody", { children: envEntries.map(([k, v]) => /* @__PURE__ */ jsxs("tr", { className: "border-border/40 border-t", children: [
|
|
126
|
+
/* @__PURE__ */ jsx("td", { className: "py-1 pr-2 font-mono", children: k }),
|
|
127
|
+
/* @__PURE__ */ jsx("td", { className: "py-1 font-mono", children: v })
|
|
128
|
+
] }, k)) })
|
|
129
|
+
] })
|
|
130
|
+
}
|
|
131
|
+
),
|
|
132
|
+
configEntries.length > 0 && /* @__PURE__ */ jsx(CollapsibleSection, { title: "Config", testId: "stability-section-config", defaultOpen: false, children: /* @__PURE__ */ jsx("pre", { className: "overflow-x-auto rounded bg-muted/30 p-2 text-xs", children: JSON.stringify(bundle.config, null, 2) }) }),
|
|
133
|
+
metadataEntries.length > 0 && /* @__PURE__ */ jsx(
|
|
134
|
+
CollapsibleSection,
|
|
135
|
+
{
|
|
136
|
+
title: "Metadata",
|
|
137
|
+
testId: "stability-section-metadata",
|
|
138
|
+
defaultOpen: false,
|
|
139
|
+
children: /* @__PURE__ */ jsx("pre", { className: "overflow-x-auto rounded bg-muted/30 p-2 text-xs", children: JSON.stringify(bundle.metadata, null, 2) })
|
|
140
|
+
}
|
|
141
|
+
)
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
StabilityBundleViewer.displayName = "StabilityBundleViewer";
|
|
148
|
+
|
|
149
|
+
export { StabilityBundleViewer };
|
|
150
|
+
//# sourceMappingURL=chunk-HILOUYES.js.map
|
|
151
|
+
//# sourceMappingURL=chunk-HILOUYES.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/composites/stability-bundle-viewer/stability-bundle-viewer.tsx"],"names":[],"mappings":"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","file":"chunk-HILOUYES.js","sourcesContent":["\"use client\";\n\nimport { AlertOctagon, AlertTriangle, Info, type LucideIcon } from \"lucide-react\";\nimport { forwardRef, useState } from \"react\";\n\nimport { cn } from \"../../../lib/cn.js\";\n\n/**\n * StabilityBundleViewer — inspector for a stability-bundle JSON produced by a\n * server crash. Sections (error, env, config, metadata) collapse independently.\n *\n * EC-9: handles bundles missing optional sections gracefully. Renderer DOES\n * NOT redact env values — bundle writer is expected to redact at emit-time.\n */\n\nexport type StabilitySeverity = \"fatal\" | \"error\" | \"warn\";\n\nexport interface StabilityBundle {\n timestamp: string;\n severity: StabilitySeverity;\n summary: string;\n error?: { name: string; message: string; stack?: string };\n env?: Record<string, string>;\n config?: Record<string, unknown>;\n metadata?: Record<string, unknown>;\n}\n\nexport interface StabilityBundleViewerProps {\n bundle: StabilityBundle;\n onCopy?: () => void;\n className?: string;\n \"data-testid\"?: string;\n}\n\nconst SEVERITY_META: Record<\n StabilitySeverity,\n { icon: LucideIcon; className: string; label: string }\n> = {\n fatal: {\n icon: AlertOctagon,\n className: \"text-destructive\",\n label: \"Fatal\",\n },\n error: {\n icon: AlertTriangle,\n className: \"text-warning\",\n label: \"Error\",\n },\n warn: {\n icon: Info,\n className: \"text-info\",\n label: \"Warning\",\n },\n};\n\ninterface CollapsibleSectionProps {\n title: string;\n testId: string;\n defaultOpen?: boolean;\n children: React.ReactNode;\n}\n\nfunction CollapsibleSection({\n title,\n testId,\n defaultOpen = true,\n children,\n}: CollapsibleSectionProps) {\n const [open, setOpen] = useState(defaultOpen);\n return (\n <section className=\"rounded border border-border\" data-testid={testId}>\n <button\n type=\"button\"\n onClick={() => setOpen((v) => !v)}\n className=\"flex w-full items-center justify-between px-3 py-2 text-left font-medium text-sm hover:bg-muted/30\"\n aria-expanded={open}\n data-testid={`${testId}-toggle`}\n >\n <span>{title}</span>\n <span aria-hidden>{open ? \"▾\" : \"▸\"}</span>\n </button>\n {open && <div className=\"border-border border-t px-3 py-2\">{children}</div>}\n </section>\n );\n}\n\nexport const StabilityBundleViewer = forwardRef<HTMLDivElement, StabilityBundleViewerProps>(\n ({ bundle, onCopy, className, \"data-testid\": dataTestId }, ref) => {\n const meta = SEVERITY_META[bundle.severity] ?? SEVERITY_META.error;\n const Icon = meta.icon;\n const envEntries = bundle.env !== undefined ? Object.entries(bundle.env) : [];\n const configEntries = bundle.config !== undefined ? Object.entries(bundle.config) : [];\n const metadataEntries = bundle.metadata !== undefined ? Object.entries(bundle.metadata) : [];\n\n return (\n <div\n data-slot=\"stability-bundle-viewer\"\n ref={ref}\n className={cn(\"flex flex-col gap-3\", className)}\n data-testid={dataTestId ?? \"stability-bundle-viewer\"}\n >\n <header className=\"flex items-start gap-3 rounded border border-border bg-card p-3\">\n <Icon className={cn(\"size-5\", meta.className)} aria-hidden />\n <div className=\"flex-1\">\n <div className=\"flex items-baseline gap-2\">\n <span\n className={cn(\"font-semibold text-sm\", meta.className)}\n data-testid=\"stability-severity\"\n >\n {meta.label}\n </span>\n <time\n className=\"text-muted-foreground text-xs\"\n dateTime={bundle.timestamp}\n data-testid=\"stability-timestamp\"\n >\n {bundle.timestamp}\n </time>\n </div>\n <p className=\"mt-1 text-sm\" data-testid=\"stability-summary\">\n {bundle.summary}\n </p>\n </div>\n {onCopy !== undefined && (\n <button\n type=\"button\"\n onClick={onCopy}\n className=\"rounded border border-border px-2 py-1 text-xs hover:bg-muted/30\"\n data-testid=\"stability-copy\"\n >\n Copy\n </button>\n )}\n </header>\n\n {bundle.error !== undefined && (\n <CollapsibleSection title=\"Error\" testId=\"stability-section-error\">\n <p className=\"font-mono text-sm\">\n <strong>{bundle.error.name}</strong>: {bundle.error.message}\n </p>\n {bundle.error.stack !== undefined && bundle.error.stack.length > 0 && (\n <pre\n className=\"mt-2 overflow-x-auto rounded bg-muted/30 p-2 text-xs\"\n data-testid=\"stability-stack\"\n >\n {bundle.error.stack}\n </pre>\n )}\n </CollapsibleSection>\n )}\n\n {envEntries.length > 0 && (\n <CollapsibleSection\n title={`Environment (${envEntries.length})`}\n testId=\"stability-section-env\"\n defaultOpen={false}\n >\n <table className=\"w-full text-xs\">\n <thead className=\"text-muted-foreground\">\n <tr>\n <th className=\"text-left\">Key</th>\n <th className=\"text-left\">Value</th>\n </tr>\n </thead>\n <tbody>\n {envEntries.map(([k, v]) => (\n <tr key={k} className=\"border-border/40 border-t\">\n <td className=\"py-1 pr-2 font-mono\">{k}</td>\n <td className=\"py-1 font-mono\">{v}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </CollapsibleSection>\n )}\n\n {configEntries.length > 0 && (\n <CollapsibleSection title=\"Config\" testId=\"stability-section-config\" defaultOpen={false}>\n <pre className=\"overflow-x-auto rounded bg-muted/30 p-2 text-xs\">\n {JSON.stringify(bundle.config, null, 2)}\n </pre>\n </CollapsibleSection>\n )}\n\n {metadataEntries.length > 0 && (\n <CollapsibleSection\n title=\"Metadata\"\n testId=\"stability-section-metadata\"\n defaultOpen={false}\n >\n <pre className=\"overflow-x-auto rounded bg-muted/30 p-2 text-xs\">\n {JSON.stringify(bundle.metadata, null, 2)}\n </pre>\n </CollapsibleSection>\n )}\n </div>\n );\n },\n);\nStabilityBundleViewer.displayName = \"StabilityBundleViewer\";\n"]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
2
|
+
import { Sparkles, Wrench, CalendarDays, Eye, GitBranch, Image } from 'lucide-react';
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var formatTokens = (n) => {
|
|
7
|
+
if (n >= 1e6) return `${(n / 1e6).toFixed(0)}M`;
|
|
8
|
+
if (n >= 1e3) return `${(n / 1e3).toFixed(0)}k`;
|
|
9
|
+
return `${n}`;
|
|
10
|
+
};
|
|
11
|
+
var formatUsd = (n) => n >= 100 ? `$${n.toFixed(0)}` : n >= 1 ? `$${n.toFixed(2)}` : `$${n.toFixed(3)}`;
|
|
12
|
+
var ModelCard = forwardRef(
|
|
13
|
+
({ className, model, selected, onSelect, ...props }, ref) => {
|
|
14
|
+
const Tag = onSelect ? "button" : "article";
|
|
15
|
+
return /* @__PURE__ */ jsxs(
|
|
16
|
+
Tag,
|
|
17
|
+
{
|
|
18
|
+
"data-slot": "model-card",
|
|
19
|
+
ref,
|
|
20
|
+
type: onSelect ? "button" : void 0,
|
|
21
|
+
onClick: onSelect ? () => onSelect(model.id) : void 0,
|
|
22
|
+
className: cn(
|
|
23
|
+
"grid gap-3 rounded-xl border border-border bg-card p-4 text-left",
|
|
24
|
+
"transition-[border-color,box-shadow] duration-base ease-out-soft",
|
|
25
|
+
selected ? "border-primary shadow-glow" : onSelect ? "hover:border-primary/40 hover:shadow-sm" : "",
|
|
26
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
27
|
+
className
|
|
28
|
+
),
|
|
29
|
+
"aria-pressed": onSelect ? !!selected : void 0,
|
|
30
|
+
...props,
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ jsxs("header", { className: "flex items-start justify-between gap-3", children: [
|
|
33
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
34
|
+
/* @__PURE__ */ jsx("h4", { className: "font-display text-title-md tracking-tight", children: model.name }),
|
|
35
|
+
/* @__PURE__ */ jsx("p", { className: "font-mono text-label-caps text-muted-foreground uppercase tracking-wider", children: model.vendor })
|
|
36
|
+
] }),
|
|
37
|
+
model.tag ? /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-accent/15 px-2 py-0.5 font-mono text-accent text-label uppercase", children: [
|
|
38
|
+
typeof model.tag === "string" && model.tag.toLowerCase() === "smart" ? /* @__PURE__ */ jsx(Sparkles, { className: "size-3" }) : null,
|
|
39
|
+
model.tag
|
|
40
|
+
] }) : null
|
|
41
|
+
] }),
|
|
42
|
+
model.description ? /* @__PURE__ */ jsx("p", { className: "text-body-sm text-muted-foreground", children: model.description }) : null,
|
|
43
|
+
/* @__PURE__ */ jsxs("dl", { className: "grid grid-cols-2 gap-3 border-border/30 border-t pt-3 font-mono", children: [
|
|
44
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-0.5", children: [
|
|
45
|
+
/* @__PURE__ */ jsx("dt", { className: "text-label-caps text-muted-foreground uppercase tracking-wider", children: "Context" }),
|
|
46
|
+
/* @__PURE__ */ jsxs("dd", { className: "font-medium text-body-sm tabular-nums", children: [
|
|
47
|
+
formatTokens(model.contextWindow),
|
|
48
|
+
" tok"
|
|
49
|
+
] })
|
|
50
|
+
] }),
|
|
51
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-0.5", children: [
|
|
52
|
+
/* @__PURE__ */ jsx("dt", { className: "text-label-caps text-muted-foreground uppercase tracking-wider", children: "Max output" }),
|
|
53
|
+
/* @__PURE__ */ jsxs("dd", { className: "font-medium text-body-sm tabular-nums", children: [
|
|
54
|
+
formatTokens(model.maxOutput),
|
|
55
|
+
" tok"
|
|
56
|
+
] })
|
|
57
|
+
] }),
|
|
58
|
+
model.pricePerMInput !== void 0 ? /* @__PURE__ */ jsxs("div", { className: "grid gap-0.5", children: [
|
|
59
|
+
/* @__PURE__ */ jsx("dt", { className: "text-label-caps text-muted-foreground uppercase tracking-wider", children: "Input" }),
|
|
60
|
+
/* @__PURE__ */ jsxs("dd", { className: "font-medium text-body-sm tabular-nums", children: [
|
|
61
|
+
formatUsd(model.pricePerMInput),
|
|
62
|
+
" ",
|
|
63
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "/M" })
|
|
64
|
+
] })
|
|
65
|
+
] }) : null,
|
|
66
|
+
model.pricePerMOutput !== void 0 ? /* @__PURE__ */ jsxs("div", { className: "grid gap-0.5", children: [
|
|
67
|
+
/* @__PURE__ */ jsx("dt", { className: "text-label-caps text-muted-foreground uppercase tracking-wider", children: "Output" }),
|
|
68
|
+
/* @__PURE__ */ jsxs("dd", { className: "font-medium text-body-sm tabular-nums", children: [
|
|
69
|
+
formatUsd(model.pricePerMOutput),
|
|
70
|
+
" ",
|
|
71
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "/M" })
|
|
72
|
+
] })
|
|
73
|
+
] }) : null
|
|
74
|
+
] }),
|
|
75
|
+
model.capabilities && model.capabilities.length > 0 ? /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: model.capabilities.map((cap) => {
|
|
76
|
+
const Icon = cap.icon ?? Wrench;
|
|
77
|
+
return /* @__PURE__ */ jsxs(
|
|
78
|
+
"span",
|
|
79
|
+
{
|
|
80
|
+
className: cn(
|
|
81
|
+
"inline-flex items-center gap-1 rounded-md px-2 py-0.5 font-mono text-label",
|
|
82
|
+
cap.enabled ? "bg-success/15 text-success" : "bg-muted text-muted-foreground line-through"
|
|
83
|
+
),
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsx(Icon, { className: "size-3", "aria-hidden": "true" }),
|
|
86
|
+
cap.label
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
cap.id
|
|
90
|
+
);
|
|
91
|
+
}) }) : null,
|
|
92
|
+
model.cutoff ? /* @__PURE__ */ jsxs("p", { className: "inline-flex items-center gap-1 font-mono text-label text-muted-foreground", children: [
|
|
93
|
+
/* @__PURE__ */ jsx(CalendarDays, { className: "size-3", "aria-hidden": "true" }),
|
|
94
|
+
" Knowledge cutoff \xB7 ",
|
|
95
|
+
model.cutoff
|
|
96
|
+
] }) : null
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
ModelCard.displayName = "ModelCard";
|
|
103
|
+
var modelCapabilityPresets = {
|
|
104
|
+
vision: { id: "vision", label: "Vision", icon: Image },
|
|
105
|
+
tools: { id: "tools", label: "Tool use", icon: Wrench },
|
|
106
|
+
reasoning: { id: "reasoning", label: "Reasoning", icon: Sparkles },
|
|
107
|
+
fineTuning: { id: "ft", label: "Fine-tuning", icon: GitBranch },
|
|
108
|
+
multimodal: { id: "multimodal", label: "Multimodal", icon: Eye }
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export { ModelCard, modelCapabilityPresets };
|
|
112
|
+
//# sourceMappingURL=chunk-HKVOCYTN.js.map
|
|
113
|
+
//# sourceMappingURL=chunk-HKVOCYTN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/model-card/model-card.tsx"],"names":[],"mappings":";;;;;AAqCA,IAAM,YAAA,GAAe,CAAC,CAAA,KAAc;AAClC,EAAA,IAAI,CAAA,IAAK,KAAW,OAAO,CAAA,EAAA,CAAI,IAAI,GAAA,EAAW,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA;AACxD,EAAA,IAAI,CAAA,IAAK,KAAO,OAAO,CAAA,EAAA,CAAI,IAAI,GAAA,EAAO,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA;AAChD,EAAA,OAAO,GAAG,CAAC,CAAA,CAAA;AACb,CAAA;AAEA,IAAM,SAAA,GAAY,CAAC,CAAA,KACjB,CAAA,IAAK,MAAM,CAAA,CAAA,EAAI,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,GAAK,KAAK,CAAA,GAAI,CAAA,CAAA,EAAI,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,KAAK,CAAA,CAAA,EAAI,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAchF,IAAM,SAAA,GAAY,UAAA;AAAA,EAChB,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,UAAU,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC3D,IAAA,MAAM,GAAA,GAAM,WAAW,QAAA,GAAW,SAAA;AAClC,IAAA,uBACE,IAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,YAAA;AAAA,QACV,GAAA;AAAA,QACA,IAAA,EAAM,WAAW,QAAA,GAAW,MAAA;AAAA,QAC5B,SAAS,QAAA,GAAW,MAAM,QAAA,CAAS,KAAA,CAAM,EAAE,CAAA,GAAI,MAAA;AAAA,QAC/C,SAAA,EAAW,EAAA;AAAA,UACT,kEAAA;AAAA,UACA,kEAAA;AAAA,UACA,QAAA,GACI,4BAAA,GACA,QAAA,GACE,yCAAA,GACA,EAAA;AAAA,UACN,yEAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAc,QAAA,GAAW,CAAC,CAAC,QAAA,GAAW,MAAA;AAAA,QACrC,GAAI,KAAA;AAAA,QAEL,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,QAAA,EAAA,EAAO,WAAU,wCAAA,EAChB,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,SAAA,EACb,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2CAAA,EAA6C,QAAA,EAAA,KAAA,CAAM,IAAA,EAAK,CAAA;AAAA,8BACtE,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0EAAA,EACV,gBAAM,MAAA,EACT;AAAA,aAAA,EACF,CAAA;AAAA,YACC,KAAA,CAAM,GAAA,mBACL,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,iHAAA,EACb,QAAA,EAAA;AAAA,cAAA,OAAO,KAAA,CAAM,GAAA,KAAQ,QAAA,IAAY,KAAA,CAAM,GAAA,CAAI,WAAA,EAAY,KAAM,OAAA,mBAC5D,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS,CAAA,GAC3B,IAAA;AAAA,cACH,KAAA,CAAM;AAAA,aAAA,EACT,CAAA,GACE;AAAA,WAAA,EACN,CAAA;AAAA,UAEC,KAAA,CAAM,8BACL,GAAA,CAAC,GAAA,EAAA,EAAE,WAAU,oCAAA,EAAsC,QAAA,EAAA,KAAA,CAAM,aAAY,CAAA,GACnE,IAAA;AAAA,0BAEJ,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,iEAAA,EACZ,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACb,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gEAAA,EAAiE,QAAA,EAAA,SAAA,EAE/E,CAAA;AAAA,8BACA,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uCAAA,EACX,QAAA,EAAA;AAAA,gBAAA,YAAA,CAAa,MAAM,aAAa,CAAA;AAAA,gBAAE;AAAA,eAAA,EACrC;AAAA,aAAA,EACF,CAAA;AAAA,4BACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACb,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gEAAA,EAAiE,QAAA,EAAA,YAAA,EAE/E,CAAA;AAAA,8BACA,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uCAAA,EACX,QAAA,EAAA;AAAA,gBAAA,YAAA,CAAa,MAAM,SAAS,CAAA;AAAA,gBAAE;AAAA,eAAA,EACjC;AAAA,aAAA,EACF,CAAA;AAAA,YACC,MAAM,cAAA,KAAmB,MAAA,mBACxB,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACb,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gEAAA,EAAiE,QAAA,EAAA,OAAA,EAE/E,CAAA;AAAA,8BACA,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uCAAA,EACX,QAAA,EAAA;AAAA,gBAAA,SAAA,CAAU,MAAM,cAAc,CAAA;AAAA,gBAAE,GAAA;AAAA,gCAAC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAwB,QAAA,EAAA,IAAA,EAAE;AAAA,eAAA,EAC9E;AAAA,aAAA,EACF,CAAA,GACE,IAAA;AAAA,YACH,MAAM,eAAA,KAAoB,MAAA,mBACzB,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACb,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gEAAA,EAAiE,QAAA,EAAA,QAAA,EAE/E,CAAA;AAAA,8BACA,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,uCAAA,EACX,QAAA,EAAA;AAAA,gBAAA,SAAA,CAAU,MAAM,eAAe,CAAA;AAAA,gBAAE,GAAA;AAAA,gCAAC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAwB,QAAA,EAAA,IAAA,EAAE;AAAA,eAAA,EAC/E;AAAA,aAAA,EACF,CAAA,GACE;AAAA,WAAA,EACN,CAAA;AAAA,UAEC,KAAA,CAAM,YAAA,IAAgB,KAAA,CAAM,YAAA,CAAa,SAAS,CAAA,mBACjD,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA,KAAA,CAAM,YAAA,CAAa,GAAA,CAAI,CAAC,GAAA,KAAQ;AAC/B,YAAA,MAAM,IAAA,GAAO,IAAI,IAAA,IAAQ,MAAA;AACzB,YAAA,uBACE,IAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBAEC,SAAA,EAAW,EAAA;AAAA,kBACT,4EAAA;AAAA,kBACA,GAAA,CAAI,UACA,4BAAA,GACA;AAAA,iBACN;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAA,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,aAAA,EAAY,MAAA,EAAO,CAAA;AAAA,kBAC3C,GAAA,CAAI;AAAA;AAAA,eAAA;AAAA,cATA,GAAA,CAAI;AAAA,aAUX;AAAA,UAEJ,CAAC,GACH,CAAA,GACE,IAAA;AAAA,UAEH,KAAA,CAAM,MAAA,mBACL,IAAA,CAAC,GAAA,EAAA,EAAE,WAAU,2EAAA,EACX,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS,aAAA,EAAY,MAAA,EAAO,CAAA;AAAA,YAAE,yBAAA;AAAA,YAAqB,KAAA,CAAM;AAAA,WAAA,EACnF,CAAA,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,SAAA,CAAU,WAAA,GAAc,WAAA;AAGjB,IAAM,sBAAA,GAAyB;AAAA,EACpC,QAAQ,EAAE,EAAA,EAAI,UAAU,KAAA,EAAO,QAAA,EAAU,MAAM,KAAA,EAAuB;AAAA,EACtE,OAAO,EAAE,EAAA,EAAI,SAAS,KAAA,EAAO,UAAA,EAAY,MAAM,MAAA,EAAO;AAAA,EACtD,WAAW,EAAE,EAAA,EAAI,aAAa,KAAA,EAAO,WAAA,EAAa,MAAM,QAAA,EAAS;AAAA,EACjE,YAAY,EAAE,EAAA,EAAI,MAAM,KAAA,EAAO,aAAA,EAAe,MAAM,SAAA,EAAU;AAAA,EAC9D,YAAY,EAAE,EAAA,EAAI,cAAc,KAAA,EAAO,YAAA,EAAc,MAAM,GAAA;AAC7D","file":"chunk-HKVOCYTN.js","sourcesContent":["import { CalendarDays, Eye, GitBranch, Image, Sparkles, Wrench } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\nimport type { IconComponent } from \"../../../lib/types.js\";\n\nexport interface ModelCapabilityFlag {\n id: string;\n label: string;\n icon?: IconComponent;\n enabled: boolean;\n}\n\nexport interface ModelInfo {\n id: string;\n /** Display name (e.g. \"Opus 4.7\"). */\n name: string;\n /** Vendor (Anthropic, OpenAI, …). */\n vendor: string;\n /** Optional tag (default, fast, smart, beta). */\n tag?: ReactNode;\n /** Total context window in tokens. */\n contextWindow: number;\n /** Max output tokens per turn. */\n maxOutput: number;\n /** USD per million input tokens. */\n pricePerMInput?: number;\n /** USD per million output tokens. */\n pricePerMOutput?: number;\n /** Knowledge cutoff date label (e.g. \"Jan 2026\"). */\n cutoff?: string;\n /** Capability flags shown as chips. */\n capabilities?: ModelCapabilityFlag[];\n /** Short description / positioning. */\n description?: ReactNode;\n}\n\nconst formatTokens = (n: number) => {\n if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(0)}M`;\n if (n >= 1_000) return `${(n / 1_000).toFixed(0)}k`;\n return `${n}`;\n};\n\nconst formatUsd = (n: number) =>\n n >= 100 ? `$${n.toFixed(0)}` : n >= 1 ? `$${n.toFixed(2)}` : `$${n.toFixed(3)}`;\n\ninterface ModelCardProps extends Omit<HTMLAttributes<HTMLElement>, \"onSelect\"> {\n model: ModelInfo;\n /** Render as the currently-selected variant (violet ring). */\n selected?: boolean;\n /** Fires when user clicks to select. */\n onSelect?: (id: string) => void;\n}\n\n/**\n * ModelCard — full info on a model: vendor, context, output cap, pricing,\n * capabilities, knowledge cutoff. Used in the \"switch model\" surface.\n */\nconst ModelCard = forwardRef<HTMLElement, ModelCardProps>(\n ({ className, model, selected, onSelect, ...props }, ref) => {\n const Tag = onSelect ? \"button\" : \"article\";\n return (\n <Tag\n data-slot=\"model-card\"\n ref={ref as never}\n type={onSelect ? \"button\" : undefined}\n onClick={onSelect ? () => onSelect(model.id) : undefined}\n className={cn(\n \"grid gap-3 rounded-xl border border-border bg-card p-4 text-left\",\n \"transition-[border-color,box-shadow] duration-base ease-out-soft\",\n selected\n ? \"border-primary shadow-glow\"\n : onSelect\n ? \"hover:border-primary/40 hover:shadow-sm\"\n : \"\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n className,\n )}\n aria-pressed={onSelect ? !!selected : undefined}\n {...(props as HTMLAttributes<HTMLElement>)}\n >\n <header className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <h4 className=\"font-display text-title-md tracking-tight\">{model.name}</h4>\n <p className=\"font-mono text-label-caps text-muted-foreground uppercase tracking-wider\">\n {model.vendor}\n </p>\n </div>\n {model.tag ? (\n <span className=\"inline-flex items-center gap-1 rounded-full bg-accent/15 px-2 py-0.5 font-mono text-accent text-label uppercase\">\n {typeof model.tag === \"string\" && model.tag.toLowerCase() === \"smart\" ? (\n <Sparkles className=\"size-3\" />\n ) : null}\n {model.tag}\n </span>\n ) : null}\n </header>\n\n {model.description ? (\n <p className=\"text-body-sm text-muted-foreground\">{model.description}</p>\n ) : null}\n\n <dl className=\"grid grid-cols-2 gap-3 border-border/30 border-t pt-3 font-mono\">\n <div className=\"grid gap-0.5\">\n <dt className=\"text-label-caps text-muted-foreground uppercase tracking-wider\">\n Context\n </dt>\n <dd className=\"font-medium text-body-sm tabular-nums\">\n {formatTokens(model.contextWindow)} tok\n </dd>\n </div>\n <div className=\"grid gap-0.5\">\n <dt className=\"text-label-caps text-muted-foreground uppercase tracking-wider\">\n Max output\n </dt>\n <dd className=\"font-medium text-body-sm tabular-nums\">\n {formatTokens(model.maxOutput)} tok\n </dd>\n </div>\n {model.pricePerMInput !== undefined ? (\n <div className=\"grid gap-0.5\">\n <dt className=\"text-label-caps text-muted-foreground uppercase tracking-wider\">\n Input\n </dt>\n <dd className=\"font-medium text-body-sm tabular-nums\">\n {formatUsd(model.pricePerMInput)} <span className=\"text-muted-foreground\">/M</span>\n </dd>\n </div>\n ) : null}\n {model.pricePerMOutput !== undefined ? (\n <div className=\"grid gap-0.5\">\n <dt className=\"text-label-caps text-muted-foreground uppercase tracking-wider\">\n Output\n </dt>\n <dd className=\"font-medium text-body-sm tabular-nums\">\n {formatUsd(model.pricePerMOutput)} <span className=\"text-muted-foreground\">/M</span>\n </dd>\n </div>\n ) : null}\n </dl>\n\n {model.capabilities && model.capabilities.length > 0 ? (\n <div className=\"flex flex-wrap gap-1.5\">\n {model.capabilities.map((cap) => {\n const Icon = cap.icon ?? Wrench;\n return (\n <span\n key={cap.id}\n className={cn(\n \"inline-flex items-center gap-1 rounded-md px-2 py-0.5 font-mono text-label\",\n cap.enabled\n ? \"bg-success/15 text-success\"\n : \"bg-muted text-muted-foreground line-through\",\n )}\n >\n <Icon className=\"size-3\" aria-hidden=\"true\" />\n {cap.label}\n </span>\n );\n })}\n </div>\n ) : null}\n\n {model.cutoff ? (\n <p className=\"inline-flex items-center gap-1 font-mono text-label text-muted-foreground\">\n <CalendarDays className=\"size-3\" aria-hidden=\"true\" /> Knowledge cutoff · {model.cutoff}\n </p>\n ) : null}\n </Tag>\n );\n },\n);\nModelCard.displayName = \"ModelCard\";\n\n/** Pre-canned capability flags. */\nexport const modelCapabilityPresets = {\n vision: { id: \"vision\", label: \"Vision\", icon: Image as IconComponent } as const,\n tools: { id: \"tools\", label: \"Tool use\", icon: Wrench } as const,\n reasoning: { id: \"reasoning\", label: \"Reasoning\", icon: Sparkles } as const,\n fineTuning: { id: \"ft\", label: \"Fine-tuning\", icon: GitBranch } as const,\n multimodal: { id: \"multimodal\", label: \"Multimodal\", icon: Eye } as const,\n};\n\nexport { ModelCard };\n"]}
|