@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/agent-event/agent-event.tsx"],"names":[],"mappings":"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","file":"chunk-YVXMWUWD.js","sourcesContent":["\"use client\";\n\nimport {\n AlertTriangle,\n CheckCircle2,\n ChevronRight,\n CircleDot,\n Edit3,\n FilePlus,\n FileSearch,\n Hammer,\n Loader2,\n ShieldCheck,\n Terminal,\n Wrench,\n} from \"lucide-react\";\nimport { forwardRef, useState } from \"react\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\nimport type { IconComponent } from \"../../../lib/types.js\";\nimport type {\n AgentEvent as AgentEventModel,\n AgentEventStatus,\n AgentEventType,\n} from \"../../../types/agent.js\";\n\nconst typeIcon: Record<AgentEventType, IconComponent> = {\n command: Terminal,\n file_read: FileSearch,\n file_write: FilePlus,\n edit: Edit3,\n lint: ShieldCheck,\n typecheck: ShieldCheck,\n build: Hammer,\n tool: Wrench,\n};\n\nconst statusIcon: Record<AgentEventStatus, IconComponent> = {\n pending: CircleDot,\n running: Loader2,\n success: CheckCircle2,\n failed: AlertTriangle,\n};\n\nconst statusColor: Record<AgentEventStatus, string> = {\n pending: \"text-muted-foreground\",\n running: \"text-primary\",\n success: \"text-success\",\n failed: \"text-destructive\",\n};\n\ninterface AgentEventProps extends HTMLAttributes<HTMLDivElement> {\n event: AgentEventModel;\n /**\n * If true, clicking the row toggles `event.detail` visibility.\n */\n collapsible?: boolean;\n /**\n * Force the collapsible state (for controlled scenarios).\n */\n defaultOpen?: boolean;\n}\n\n/**\n * AgentEvent — single event row in the agent timeline.\n *\n * Composition: type icon + label + path + diff stats + status icon + (optional) chevron.\n * Running events show a spinner via motion-safe:animate-spin (respects\n * `prefers-reduced-motion`); failed events flash red.\n *\n * When `collapsible` is true and `event.detail` is provided, the row renders as\n * a native `<button>` for correct keyboard and screen-reader semantics.\n */\nconst AgentEvent = forwardRef<HTMLDivElement, AgentEventProps>(\n ({ className, event, collapsible, defaultOpen, ...props }, ref) => {\n const [open, setOpen] = useState(defaultOpen ?? false);\n const TypeIcon = typeIcon[event.type];\n const StatusIcon = statusIcon[event.status];\n const isExpandable = !!(collapsible && event.detail !== undefined);\n\n const handleToggle = () => {\n if (isExpandable) setOpen((v) => !v);\n };\n\n const headerContent: ReactNode = (\n <>\n <span className=\"grid size-7 place-items-center rounded-md bg-muted text-muted-foreground\">\n <TypeIcon className=\"size-3.5\" />\n </span>\n <div className=\"min-w-0\">\n <p className=\"flex flex-wrap items-baseline gap-x-2 gap-y-0.5\">\n <span className=\"truncate font-medium text-body-sm text-foreground\">{event.label}</span>\n {event.path ? (\n <span className=\"truncate font-mono text-code-sm text-muted-foreground\">\n {event.path}\n </span>\n ) : null}\n {event.diff ? (\n <span className=\"font-mono text-code-sm\">\n <span className=\"text-success\">+{event.diff.added}</span>{\" \"}\n <span className=\"text-destructive\">-{event.diff.removed}</span>\n </span>\n ) : null}\n </p>\n {event.timestamp ? (\n <p className=\"font-mono text-label text-muted-foreground\">{event.timestamp}</p>\n ) : null}\n </div>\n <div className=\"flex items-center gap-1.5\">\n <StatusIcon\n className={cn(\n \"size-4\",\n statusColor[event.status],\n event.status === \"running\" && \"motion-safe:animate-spin\",\n )}\n aria-label={event.status}\n />\n {isExpandable ? (\n <ChevronRight\n className={cn(\n \"size-4 text-muted-foreground transition-transform\",\n open && \"rotate-90\",\n )}\n aria-hidden=\"true\"\n />\n ) : null}\n </div>\n </>\n );\n\n return (\n <div\n data-slot=\"agent-event\"\n ref={ref}\n className={cn(\n \"rounded-md border border-transparent\",\n isExpandable && \"hover:border-border/40 hover:bg-muted/40\",\n className,\n )}\n {...props}\n >\n {isExpandable ? (\n <button\n type=\"button\"\n onClick={handleToggle}\n aria-expanded={open}\n className={cn(\n \"grid w-full grid-cols-[auto_1fr_auto] items-center gap-3 px-3 py-2 text-left\",\n \"cursor-pointer rounded-md\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n )}\n >\n {headerContent}\n </button>\n ) : (\n <div className=\"grid grid-cols-[auto_1fr_auto] items-center gap-3 px-3 py-2\">\n {headerContent}\n </div>\n )}\n {isExpandable && open ? (\n <div className=\"border-border/40 border-t bg-muted/20 px-3 py-2 font-mono text-code-sm text-muted-foreground\">\n {event.detail}\n </div>\n ) : null}\n </div>\n );\n },\n);\nAgentEvent.displayName = \"AgentEvent\";\n\nexport { AgentEvent };\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
3
|
+
import { Check, X, Copy } from 'lucide-react';
|
|
4
|
+
import { forwardRef, useState, useRef, useEffect, useCallback } from 'react';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var VARIANT = {
|
|
8
|
+
ghost: "hover:bg-muted",
|
|
9
|
+
outline: "border border-border/60 rounded-md"
|
|
10
|
+
};
|
|
11
|
+
var SIZE = {
|
|
12
|
+
sm: "px-2 py-1 text-label",
|
|
13
|
+
md: "px-2.5 py-1.5 text-body-sm"
|
|
14
|
+
};
|
|
15
|
+
var CopyButton = forwardRef(
|
|
16
|
+
({
|
|
17
|
+
className,
|
|
18
|
+
value,
|
|
19
|
+
label,
|
|
20
|
+
variant = "ghost",
|
|
21
|
+
size = "sm",
|
|
22
|
+
onCopied,
|
|
23
|
+
feedbackDuration = 1500,
|
|
24
|
+
...props
|
|
25
|
+
}, ref) => {
|
|
26
|
+
const [state, setState] = useState("idle");
|
|
27
|
+
const timerRef = useRef(null);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
return () => {
|
|
30
|
+
if (timerRef.current !== null) {
|
|
31
|
+
clearTimeout(timerRef.current);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}, []);
|
|
35
|
+
const scheduleRevert = useCallback(() => {
|
|
36
|
+
if (timerRef.current !== null) {
|
|
37
|
+
clearTimeout(timerRef.current);
|
|
38
|
+
}
|
|
39
|
+
timerRef.current = setTimeout(() => {
|
|
40
|
+
setState("idle");
|
|
41
|
+
timerRef.current = null;
|
|
42
|
+
}, feedbackDuration);
|
|
43
|
+
}, [feedbackDuration]);
|
|
44
|
+
const handleClick = useCallback(() => {
|
|
45
|
+
if (state !== "idle") return;
|
|
46
|
+
if (typeof navigator === "undefined" || !navigator.clipboard?.writeText) {
|
|
47
|
+
setState("failed");
|
|
48
|
+
scheduleRevert();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
navigator.clipboard.writeText(value).then(
|
|
52
|
+
() => {
|
|
53
|
+
setState("copied");
|
|
54
|
+
onCopied?.(value);
|
|
55
|
+
scheduleRevert();
|
|
56
|
+
},
|
|
57
|
+
() => {
|
|
58
|
+
setState("failed");
|
|
59
|
+
scheduleRevert();
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}, [state, value, onCopied, scheduleRevert]);
|
|
63
|
+
const Icon = state === "copied" ? Check : state === "failed" ? X : Copy;
|
|
64
|
+
const liveMessage = state === "copied" ? "Copied to clipboard" : state === "failed" ? "Copy failed" : "";
|
|
65
|
+
const labelText = label !== void 0 ? state === "copied" ? "Copied!" : state === "failed" ? "Failed" : label : null;
|
|
66
|
+
return /* @__PURE__ */ jsxs(
|
|
67
|
+
"button",
|
|
68
|
+
{
|
|
69
|
+
"data-slot": "copy-button",
|
|
70
|
+
ref,
|
|
71
|
+
type: "button",
|
|
72
|
+
onClick: handleClick,
|
|
73
|
+
"data-state": state,
|
|
74
|
+
className: cn(
|
|
75
|
+
"inline-flex items-center gap-1.5",
|
|
76
|
+
"font-sans transition-colors",
|
|
77
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card",
|
|
78
|
+
VARIANT[variant],
|
|
79
|
+
SIZE[size],
|
|
80
|
+
className
|
|
81
|
+
),
|
|
82
|
+
...props,
|
|
83
|
+
children: [
|
|
84
|
+
/* @__PURE__ */ jsx(
|
|
85
|
+
Icon,
|
|
86
|
+
{
|
|
87
|
+
"aria-hidden": "true",
|
|
88
|
+
className: cn(
|
|
89
|
+
"size-3.5 shrink-0 transition-opacity duration-200",
|
|
90
|
+
state === "copied" && "text-success",
|
|
91
|
+
state === "failed" && "text-destructive"
|
|
92
|
+
)
|
|
93
|
+
}
|
|
94
|
+
),
|
|
95
|
+
labelText !== null ? /* @__PURE__ */ jsx("span", { children: labelText }) : null,
|
|
96
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", "aria-live": "polite", children: liveMessage })
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
CopyButton.displayName = "CopyButton";
|
|
103
|
+
|
|
104
|
+
export { CopyButton };
|
|
105
|
+
//# sourceMappingURL=chunk-Z6HZMGO2.js.map
|
|
106
|
+
//# sourceMappingURL=chunk-Z6HZMGO2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/copy-button/copy-button.tsx"],"names":[],"mappings":"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","file":"chunk-Z6HZMGO2.js","sourcesContent":["\"use client\";\n\nimport { Check, Copy, X } from \"lucide-react\";\nimport { forwardRef, useCallback, useEffect, useRef, useState } from \"react\";\nimport type { ButtonHTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\n/**\n * CopyButton — click-to-copy primitive for PaaS surfaces.\n *\n * Wraps the Clipboard API behind a button that:\n * - Calls `navigator.clipboard.writeText(value)` on click\n * - Swaps the icon (Copy → Check on success, Copy → X on failure)\n * - Optionally swaps the visible `label` to \"Copied!\" / \"Failed\"\n * - Announces the state change via an `aria-live=\"polite\"` sr-only region\n * - Reverts to idle after `feedbackDuration` ms (default 1500)\n *\n * SSR-safe (guards `navigator?.clipboard?.writeText`). Debounces double-clicks\n * by ignoring clicks while not in the `idle` state. Cleans up the revert timer\n * on unmount so no `setState` happens on unmounted components.\n *\n * @example\n * <CopyButton value={envVar.value} /> // icon-only ghost\n * <CopyButton value={token} label=\"Copy token\" variant=\"outline\" />\n */\ntype CopyState = \"idle\" | \"copied\" | \"failed\";\n\nexport interface CopyButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"type\" | \"onClick\" | \"children\"> {\n /** String to copy when clicked. */\n value: string;\n /** Optional button label. Default: just the icon. */\n label?: ReactNode;\n /** Visual style. */\n variant?: \"ghost\" | \"outline\";\n /** Size. */\n size?: \"sm\" | \"md\";\n /** Callback after successful copy (e.g. analytics). */\n onCopied?: (value: string) => void;\n /** Duration of the feedback state in ms. Default 1500. */\n feedbackDuration?: number;\n}\n\nconst VARIANT: Record<NonNullable<CopyButtonProps[\"variant\"]>, string> = {\n ghost: \"hover:bg-muted\",\n outline: \"border border-border/60 rounded-md\",\n};\n\nconst SIZE: Record<NonNullable<CopyButtonProps[\"size\"]>, string> = {\n sm: \"px-2 py-1 text-label\",\n md: \"px-2.5 py-1.5 text-body-sm\",\n};\n\nconst CopyButton = forwardRef<HTMLButtonElement, CopyButtonProps>(\n (\n {\n className,\n value,\n label,\n variant = \"ghost\",\n size = \"sm\",\n onCopied,\n feedbackDuration = 1500,\n ...props\n },\n ref,\n ) => {\n const [state, setState] = useState<CopyState>(\"idle\");\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n return () => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n }\n };\n }, []);\n\n const scheduleRevert = useCallback(() => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n }\n timerRef.current = setTimeout(() => {\n setState(\"idle\");\n timerRef.current = null;\n }, feedbackDuration);\n }, [feedbackDuration]);\n\n const handleClick = useCallback(() => {\n if (state !== \"idle\") return;\n\n if (typeof navigator === \"undefined\" || !navigator.clipboard?.writeText) {\n setState(\"failed\");\n scheduleRevert();\n return;\n }\n\n navigator.clipboard.writeText(value).then(\n () => {\n setState(\"copied\");\n onCopied?.(value);\n scheduleRevert();\n },\n () => {\n setState(\"failed\");\n scheduleRevert();\n },\n );\n }, [state, value, onCopied, scheduleRevert]);\n\n const Icon = state === \"copied\" ? Check : state === \"failed\" ? X : Copy;\n const liveMessage =\n state === \"copied\" ? \"Copied to clipboard\" : state === \"failed\" ? \"Copy failed\" : \"\";\n\n const labelText =\n label !== undefined\n ? state === \"copied\"\n ? \"Copied!\"\n : state === \"failed\"\n ? \"Failed\"\n : label\n : null;\n\n return (\n <button\n data-slot=\"copy-button\"\n ref={ref}\n type=\"button\"\n onClick={handleClick}\n data-state={state}\n className={cn(\n \"inline-flex items-center gap-1.5\",\n \"font-sans transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-card\",\n VARIANT[variant],\n SIZE[size],\n className,\n )}\n {...props}\n >\n <Icon\n aria-hidden=\"true\"\n className={cn(\n \"size-3.5 shrink-0 transition-opacity duration-200\",\n state === \"copied\" && \"text-success\",\n state === \"failed\" && \"text-destructive\",\n )}\n />\n {labelText !== null ? <span>{labelText}</span> : null}\n <span className=\"sr-only\" aria-live=\"polite\">\n {liveMessage}\n </span>\n </button>\n );\n },\n);\nCopyButton.displayName = \"CopyButton\";\n\nexport { CopyButton };\n"]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var lineBg = {
|
|
6
|
+
added: "bg-success/10",
|
|
7
|
+
removed: "bg-destructive/10",
|
|
8
|
+
unchanged: "",
|
|
9
|
+
meta: "bg-muted/60 text-primary"
|
|
10
|
+
};
|
|
11
|
+
var sign = {
|
|
12
|
+
added: "+",
|
|
13
|
+
removed: "-",
|
|
14
|
+
unchanged: " ",
|
|
15
|
+
meta: "@"
|
|
16
|
+
};
|
|
17
|
+
var DiffViewer = forwardRef(
|
|
18
|
+
({ className, path, stats, hunks, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
19
|
+
"div",
|
|
20
|
+
{
|
|
21
|
+
"data-slot": "diff-viewer",
|
|
22
|
+
ref,
|
|
23
|
+
className: cn("overflow-hidden rounded-xl border border-border bg-card font-mono", className),
|
|
24
|
+
...props,
|
|
25
|
+
children: [
|
|
26
|
+
/* @__PURE__ */ jsxs("header", { className: "flex items-center justify-between gap-3 border-border/40 border-b bg-muted/30 px-3 py-2", children: [
|
|
27
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-code-sm text-foreground", children: path }),
|
|
28
|
+
stats ? /* @__PURE__ */ jsxs("span", { className: "font-mono text-code-sm", children: [
|
|
29
|
+
/* @__PURE__ */ jsxs("span", { className: "text-success", children: [
|
|
30
|
+
"+",
|
|
31
|
+
stats.added
|
|
32
|
+
] }),
|
|
33
|
+
" ",
|
|
34
|
+
/* @__PURE__ */ jsxs("span", { className: "text-destructive", children: [
|
|
35
|
+
"-",
|
|
36
|
+
stats.removed
|
|
37
|
+
] })
|
|
38
|
+
] }) : null
|
|
39
|
+
] }),
|
|
40
|
+
/* @__PURE__ */ jsx("ol", { className: "text-code-sm", children: hunks.map((hunk) => /* @__PURE__ */ jsx("li", { children: hunk.collapsed ? /* @__PURE__ */ jsxs("div", { className: "px-3 py-1 text-muted-foreground italic", children: [
|
|
41
|
+
hunk.lines.length,
|
|
42
|
+
" unmodified lines"
|
|
43
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
44
|
+
hunk.header ? /* @__PURE__ */ jsx("div", { className: "bg-muted/60 px-3 py-1 text-primary", children: hunk.header }) : null,
|
|
45
|
+
/* @__PURE__ */ jsx("table", { className: "w-full border-collapse", "aria-label": `Diff hunk for ${path}`, children: /* @__PURE__ */ jsx("tbody", { children: hunk.lines.map((line, idx) => /* @__PURE__ */ jsxs("tr", { className: lineBg[line.kind], children: [
|
|
46
|
+
/* @__PURE__ */ jsx("td", { className: "select-none px-2 text-right text-muted-foreground/60 tabular-nums", children: line.oldNumber ?? "" }),
|
|
47
|
+
/* @__PURE__ */ jsx("td", { className: "select-none px-2 text-right text-muted-foreground/60 tabular-nums", children: line.newNumber ?? "" }),
|
|
48
|
+
/* @__PURE__ */ jsx(
|
|
49
|
+
"td",
|
|
50
|
+
{
|
|
51
|
+
className: cn(
|
|
52
|
+
"select-none pr-1 pl-2",
|
|
53
|
+
line.kind === "added" && "text-success",
|
|
54
|
+
line.kind === "removed" && "text-destructive",
|
|
55
|
+
line.kind === "meta" && "text-primary"
|
|
56
|
+
),
|
|
57
|
+
children: sign[line.kind]
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
/* @__PURE__ */ jsx(
|
|
61
|
+
"td",
|
|
62
|
+
{
|
|
63
|
+
className: cn(
|
|
64
|
+
"w-full whitespace-pre",
|
|
65
|
+
line.kind === "added" && "text-success",
|
|
66
|
+
line.kind === "removed" && "text-destructive"
|
|
67
|
+
),
|
|
68
|
+
children: line.content
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
] }, `${hunk.id}-${idx}`)) }) })
|
|
72
|
+
] }) }, hunk.id)) })
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
);
|
|
77
|
+
DiffViewer.displayName = "DiffViewer";
|
|
78
|
+
|
|
79
|
+
export { DiffViewer };
|
|
80
|
+
//# sourceMappingURL=chunk-ZAP4RIUL.js.map
|
|
81
|
+
//# sourceMappingURL=chunk-ZAP4RIUL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/diff-viewer/diff-viewer.tsx"],"names":[],"mappings":"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","file":"chunk-ZAP4RIUL.js","sourcesContent":["import { forwardRef } from \"react\";\nimport type { HTMLAttributes } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\nexport type DiffLineKind = \"added\" | \"removed\" | \"unchanged\" | \"meta\";\n\nexport interface DiffLine {\n kind: DiffLineKind;\n /** Original line number (left side); undefined for added lines. */\n oldNumber?: number;\n /** New line number (right side); undefined for removed lines. */\n newNumber?: number;\n content: string;\n}\n\nexport interface DiffHunk {\n id: string;\n /**\n * Optional header (e.g. \"@@ -42,7 +42,12 @@\"). Caller usually formats this.\n */\n header?: string;\n lines: DiffLine[];\n /**\n * If true, the hunk is rendered as a collapsed \"N unmodified lines\" placeholder.\n */\n collapsed?: boolean;\n}\n\ninterface DiffViewerProps extends HTMLAttributes<HTMLDivElement> {\n /** Path of the file being diffed. */\n path: string;\n /** Diff stats summary. */\n stats?: { added: number; removed: number };\n hunks: DiffHunk[];\n}\n\nconst lineBg: Record<DiffLineKind, string> = {\n added: \"bg-success/10\",\n removed: \"bg-destructive/10\",\n unchanged: \"\",\n meta: \"bg-muted/60 text-primary\",\n};\n\nconst sign: Record<DiffLineKind, string> = {\n added: \"+\",\n removed: \"-\",\n unchanged: \" \",\n meta: \"@\",\n};\n\n/**\n * DiffViewer — unified diff rendering, no external dep.\n *\n * Visual: two gutter columns (old/new line numbers) + sign + monospaced content.\n * Added/removed rows tinted in success/destructive. Collapsed hunks render as\n * a single muted row \"N unmodified lines\".\n *\n * For syntax highlighting, the consumer can render `content` via their own\n * highlighter and pass `unchanged` lines with already-highlighted strings (not\n * common; usually plain text is enough for the brutalist console aesthetic).\n */\nconst DiffViewer = forwardRef<HTMLDivElement, DiffViewerProps>(\n ({ className, path, stats, hunks, ...props }, ref) => (\n <div\n data-slot=\"diff-viewer\"\n ref={ref}\n className={cn(\"overflow-hidden rounded-xl border border-border bg-card font-mono\", className)}\n {...props}\n >\n <header className=\"flex items-center justify-between gap-3 border-border/40 border-b bg-muted/30 px-3 py-2\">\n <span className=\"truncate text-code-sm text-foreground\">{path}</span>\n {stats ? (\n <span className=\"font-mono text-code-sm\">\n <span className=\"text-success\">+{stats.added}</span>{\" \"}\n <span className=\"text-destructive\">-{stats.removed}</span>\n </span>\n ) : null}\n </header>\n <ol className=\"text-code-sm\">\n {hunks.map((hunk) => (\n <li key={hunk.id}>\n {hunk.collapsed ? (\n <div className=\"px-3 py-1 text-muted-foreground italic\">\n {hunk.lines.length} unmodified lines\n </div>\n ) : (\n <>\n {hunk.header ? (\n <div className=\"bg-muted/60 px-3 py-1 text-primary\">{hunk.header}</div>\n ) : null}\n <table className=\"w-full border-collapse\" aria-label={`Diff hunk for ${path}`}>\n <tbody>\n {hunk.lines.map((line, idx) => (\n <tr key={`${hunk.id}-${idx}`} className={lineBg[line.kind]}>\n <td className=\"select-none px-2 text-right text-muted-foreground/60 tabular-nums\">\n {line.oldNumber ?? \"\"}\n </td>\n <td className=\"select-none px-2 text-right text-muted-foreground/60 tabular-nums\">\n {line.newNumber ?? \"\"}\n </td>\n <td\n className={cn(\n \"select-none pr-1 pl-2\",\n line.kind === \"added\" && \"text-success\",\n line.kind === \"removed\" && \"text-destructive\",\n line.kind === \"meta\" && \"text-primary\",\n )}\n >\n {sign[line.kind]}\n </td>\n <td\n className={cn(\n \"w-full whitespace-pre\",\n line.kind === \"added\" && \"text-success\",\n line.kind === \"removed\" && \"text-destructive\",\n )}\n >\n {line.content}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n )}\n </li>\n ))}\n </ol>\n </div>\n ),\n);\nDiffViewer.displayName = \"DiffViewer\";\n\nexport { DiffViewer };\n"]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { EmptyState } from './chunk-3YOPTHZH.js';
|
|
3
|
+
import { Card } from './chunk-UJAWV6LM.js';
|
|
4
|
+
import { ActionBar } from './chunk-ZEFOXF2I.js';
|
|
5
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
6
|
+
import { AlertCircle, Loader2 } from 'lucide-react';
|
|
7
|
+
import { forwardRef, useEffect } from 'react';
|
|
8
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
var PageShell = forwardRef(
|
|
11
|
+
({
|
|
12
|
+
title,
|
|
13
|
+
description,
|
|
14
|
+
onTitleChange,
|
|
15
|
+
primaryAction,
|
|
16
|
+
search,
|
|
17
|
+
onFilterClick,
|
|
18
|
+
loading = false,
|
|
19
|
+
loadingNode,
|
|
20
|
+
error,
|
|
21
|
+
empty,
|
|
22
|
+
children,
|
|
23
|
+
className
|
|
24
|
+
}, ref) => {
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
onTitleChange?.(title);
|
|
27
|
+
}, [title, onTitleChange]);
|
|
28
|
+
const hasActionBar = search !== void 0 || primaryAction !== void 0 || onFilterClick !== void 0;
|
|
29
|
+
let content;
|
|
30
|
+
if (loading) {
|
|
31
|
+
content = loadingNode ?? /* @__PURE__ */ jsxs(Card, { className: "flex items-center justify-center gap-3 p-12 text-muted-foreground", children: [
|
|
32
|
+
/* @__PURE__ */ jsx(Loader2, { "aria-hidden": "true", className: "size-5 animate-spin" }),
|
|
33
|
+
/* @__PURE__ */ jsx("span", { className: "font-sans text-body-sm", children: "Loading\u2026" })
|
|
34
|
+
] });
|
|
35
|
+
} else if (error) {
|
|
36
|
+
content = /* @__PURE__ */ jsxs(Card, { className: "flex flex-col items-center gap-3 p-8 text-center", children: [
|
|
37
|
+
/* @__PURE__ */ jsx(AlertCircle, { "aria-hidden": "true", className: "size-8 text-destructive" }),
|
|
38
|
+
/* @__PURE__ */ jsx("p", { className: "font-sans text-body-sm text-foreground", children: error.message }),
|
|
39
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
40
|
+
error.onRetry ? /* @__PURE__ */ jsx(
|
|
41
|
+
"button",
|
|
42
|
+
{
|
|
43
|
+
type: "button",
|
|
44
|
+
onClick: error.onRetry,
|
|
45
|
+
className: cn(
|
|
46
|
+
"inline-flex items-center rounded-md border border-border/40 px-3 py-1.5",
|
|
47
|
+
"font-sans text-body-sm text-foreground",
|
|
48
|
+
"transition-colors hover:bg-muted"
|
|
49
|
+
),
|
|
50
|
+
children: "Retry"
|
|
51
|
+
}
|
|
52
|
+
) : null,
|
|
53
|
+
error.docsHref ? /* @__PURE__ */ jsx(
|
|
54
|
+
"a",
|
|
55
|
+
{
|
|
56
|
+
href: error.docsHref,
|
|
57
|
+
className: "font-sans text-body-sm text-primary hover:underline",
|
|
58
|
+
children: "View docs"
|
|
59
|
+
}
|
|
60
|
+
) : null
|
|
61
|
+
] })
|
|
62
|
+
] });
|
|
63
|
+
} else if (empty) {
|
|
64
|
+
const emptyAction = empty.action;
|
|
65
|
+
content = /* @__PURE__ */ jsx(
|
|
66
|
+
EmptyState,
|
|
67
|
+
{
|
|
68
|
+
icon: empty.icon,
|
|
69
|
+
title: empty.title,
|
|
70
|
+
description: empty.description,
|
|
71
|
+
action: emptyAction ? /* @__PURE__ */ jsx(
|
|
72
|
+
"button",
|
|
73
|
+
{
|
|
74
|
+
type: "button",
|
|
75
|
+
onClick: emptyAction.onClick,
|
|
76
|
+
className: cn(
|
|
77
|
+
"inline-flex items-center rounded-md bg-primary px-3 py-1.5",
|
|
78
|
+
"font-medium font-sans text-body-sm text-primary-foreground",
|
|
79
|
+
"transition-colors hover:bg-primary-deep"
|
|
80
|
+
),
|
|
81
|
+
children: emptyAction.label
|
|
82
|
+
}
|
|
83
|
+
) : void 0
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
} else {
|
|
87
|
+
content = children;
|
|
88
|
+
}
|
|
89
|
+
return /* @__PURE__ */ jsxs(
|
|
90
|
+
"main",
|
|
91
|
+
{
|
|
92
|
+
"data-slot": "page-shell",
|
|
93
|
+
ref,
|
|
94
|
+
"aria-busy": loading || void 0,
|
|
95
|
+
className: cn("flex flex-col gap-6", className),
|
|
96
|
+
children: [
|
|
97
|
+
/* @__PURE__ */ jsxs("header", { className: "flex flex-col gap-1", children: [
|
|
98
|
+
/* @__PURE__ */ jsx("h1", { className: "font-display font-semibold text-display-sm text-foreground tracking-tight", children: title }),
|
|
99
|
+
description ? /* @__PURE__ */ jsx("p", { className: "font-sans text-body-md text-muted-foreground", children: description }) : null
|
|
100
|
+
] }),
|
|
101
|
+
hasActionBar ? /* @__PURE__ */ jsx(ActionBar, { search, primaryAction, onFilterClick }) : null,
|
|
102
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-6", children: content })
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
PageShell.displayName = "PageShell";
|
|
109
|
+
|
|
110
|
+
export { PageShell };
|
|
111
|
+
//# sourceMappingURL=chunk-ZEDDWVBB.js.map
|
|
112
|
+
//# sourceMappingURL=chunk-ZEDDWVBB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/composites/page-shell/page-shell.tsx"],"names":[],"mappings":"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","file":"chunk-ZEDDWVBB.js","sourcesContent":["\"use client\";\n\nimport { AlertCircle, Loader2 } from \"lucide-react\";\nimport { forwardRef, useEffect } from \"react\";\nimport type { ElementType, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\nimport { ActionBar } from \"../../primitives/action-bar/index.js\";\nimport { Card } from \"../../primitives/card/index.js\";\nimport { EmptyState } from \"../../primitives/empty-state/index.js\";\n\n/**\n * PageShell — page-level scaffold composite.\n *\n * Renders title + optional description + optional ActionBar, then\n * one of four mutually-exclusive content states:\n * 1. loading (highest precedence)\n * 2. error\n * 3. empty\n * 4. children (default)\n *\n * Scope-narrowed per Brief #5 D3: PageShell does NOT manage\n * `document.title`. Use the optional `onTitleChange` callback to\n * wire your own hook (e.g. useSetPageTitle, react-helmet,\n * next/head).\n *\n * @example\n * <PageShell\n * title=\"Domains\"\n * description=\"Custom domains and DNS verification.\"\n * search={{ placeholder: \"Search…\", value: q, onChange: setQ }}\n * primaryAction={{ label: \"Add domain\", icon: Plus, onClick: openModal }}\n * loading={isLoading}\n * error={error ? { message: error.message, onRetry: refetch } : undefined}\n * empty={data?.length === 0 ? { title: \"No domains yet\" } : undefined}\n * >\n * <DataTable columns={…} data={data} />\n * </PageShell>\n */\nexport interface PageShellProps {\n title: string;\n description?: ReactNode;\n /** Optional callback invoked when `title` changes — wire to your own document.title hook. */\n onTitleChange?: (title: string) => void;\n primaryAction?: {\n label: ReactNode;\n icon?: ElementType;\n onClick: () => void;\n loading?: boolean;\n };\n search?: {\n placeholder: string;\n value: string;\n onChange: (v: string) => void;\n };\n onFilterClick?: () => void;\n loading?: boolean;\n /** Custom loading UI. Defaults to a centered spinner card. */\n loadingNode?: ReactNode;\n error?: {\n message: string;\n onRetry?: () => void;\n docsHref?: string;\n };\n empty?: {\n icon?: ElementType;\n title: string;\n description?: ReactNode;\n action?: { label: string; onClick: () => void };\n };\n children?: ReactNode;\n className?: string;\n}\n\nconst PageShell = forwardRef<HTMLElement, PageShellProps>(\n (\n {\n title,\n description,\n onTitleChange,\n primaryAction,\n search,\n onFilterClick,\n loading = false,\n loadingNode,\n error,\n empty,\n children,\n className,\n },\n ref,\n ) => {\n useEffect(() => {\n onTitleChange?.(title);\n }, [title, onTitleChange]);\n\n const hasActionBar =\n search !== undefined || primaryAction !== undefined || onFilterClick !== undefined;\n\n // State precedence: loading > error > empty > children\n let content: ReactNode;\n if (loading) {\n content = loadingNode ?? (\n <Card className=\"flex items-center justify-center gap-3 p-12 text-muted-foreground\">\n <Loader2 aria-hidden=\"true\" className=\"size-5 animate-spin\" />\n <span className=\"font-sans text-body-sm\">Loading…</span>\n </Card>\n );\n } else if (error) {\n content = (\n <Card className=\"flex flex-col items-center gap-3 p-8 text-center\">\n <AlertCircle aria-hidden=\"true\" className=\"size-8 text-destructive\" />\n <p className=\"font-sans text-body-sm text-foreground\">{error.message}</p>\n <div className=\"flex items-center gap-3\">\n {error.onRetry ? (\n <button\n type=\"button\"\n onClick={error.onRetry}\n className={cn(\n \"inline-flex items-center rounded-md border border-border/40 px-3 py-1.5\",\n \"font-sans text-body-sm text-foreground\",\n \"transition-colors hover:bg-muted\",\n )}\n >\n Retry\n </button>\n ) : null}\n {error.docsHref ? (\n <a\n href={error.docsHref}\n className=\"font-sans text-body-sm text-primary hover:underline\"\n >\n View docs\n </a>\n ) : null}\n </div>\n </Card>\n );\n } else if (empty) {\n const emptyAction = empty.action;\n content = (\n <EmptyState\n icon={empty.icon as Parameters<typeof EmptyState>[0][\"icon\"]}\n title={empty.title}\n description={empty.description}\n action={\n emptyAction ? (\n <button\n type=\"button\"\n onClick={emptyAction.onClick}\n className={cn(\n \"inline-flex items-center rounded-md bg-primary px-3 py-1.5\",\n \"font-medium font-sans text-body-sm text-primary-foreground\",\n \"transition-colors hover:bg-primary-deep\",\n )}\n >\n {emptyAction.label}\n </button>\n ) : undefined\n }\n />\n );\n } else {\n content = children;\n }\n\n return (\n <main\n data-slot=\"page-shell\"\n ref={ref}\n aria-busy={loading || undefined}\n className={cn(\"flex flex-col gap-6\", className)}\n >\n <header className=\"flex flex-col gap-1\">\n <h1 className=\"font-display font-semibold text-display-sm text-foreground tracking-tight\">\n {title}\n </h1>\n {description ? (\n <p className=\"font-sans text-body-md text-muted-foreground\">{description}</p>\n ) : null}\n </header>\n {hasActionBar ? (\n <ActionBar search={search} primaryAction={primaryAction} onFilterClick={onFilterClick} />\n ) : null}\n {/* Content slot: `flex flex-col gap-6` matches the outer <main> gap so\n * direct children (e.g. multiple <Card>s, a <Table>, an inline <Alert>)\n * automatically receive consistent section spacing. Without this,\n * pages with 2+ top-level children would render them flush against\n * each other — a regression observed in dashboard /memory landing\n * (5 sibling sections collided). Pages that already wrap their content\n * in a single grid/div are unaffected (gap only applies between siblings). */}\n <div className=\"flex flex-col gap-6\">{content}</div>\n </main>\n );\n },\n);\nPageShell.displayName = \"PageShell\";\n\nexport { PageShell };\n"]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { cn } from './chunk-EWDN56AS.js';
|
|
2
|
+
import { Search, Filter, Loader2 } from 'lucide-react';
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var ActionBar = forwardRef(
|
|
7
|
+
({ className, search, primaryAction, onFilterClick, ...props }, ref) => {
|
|
8
|
+
if (!search && !primaryAction && !onFilterClick) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
const PrimaryIcon = primaryAction?.icon;
|
|
12
|
+
const isLoading = primaryAction?.loading === true;
|
|
13
|
+
return /* @__PURE__ */ jsxs(
|
|
14
|
+
"div",
|
|
15
|
+
{
|
|
16
|
+
"data-slot": "action-bar",
|
|
17
|
+
ref,
|
|
18
|
+
className: cn("flex w-full items-center gap-2", className),
|
|
19
|
+
...props,
|
|
20
|
+
children: [
|
|
21
|
+
search ? /* @__PURE__ */ jsxs("div", { className: "relative flex-1", children: [
|
|
22
|
+
/* @__PURE__ */ jsx(
|
|
23
|
+
Search,
|
|
24
|
+
{
|
|
25
|
+
"aria-hidden": "true",
|
|
26
|
+
className: "-translate-y-1/2 absolute top-1/2 left-3 size-4 text-muted-foreground"
|
|
27
|
+
}
|
|
28
|
+
),
|
|
29
|
+
/* @__PURE__ */ jsx(
|
|
30
|
+
"input",
|
|
31
|
+
{
|
|
32
|
+
type: "search",
|
|
33
|
+
placeholder: search.placeholder,
|
|
34
|
+
value: search.value,
|
|
35
|
+
onChange: (e) => search.onChange(e.target.value),
|
|
36
|
+
className: cn(
|
|
37
|
+
"w-full rounded-md border border-border/40 bg-card py-2 pr-3 pl-9",
|
|
38
|
+
"font-sans text-body-sm text-foreground placeholder:text-muted-foreground",
|
|
39
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
] }) : null,
|
|
44
|
+
onFilterClick !== void 0 ? /* @__PURE__ */ jsx(
|
|
45
|
+
"button",
|
|
46
|
+
{
|
|
47
|
+
type: "button",
|
|
48
|
+
onClick: onFilterClick,
|
|
49
|
+
"aria-label": "Filter",
|
|
50
|
+
className: cn(
|
|
51
|
+
"inline-flex size-9 items-center justify-center rounded-md border border-border/40",
|
|
52
|
+
"text-muted-foreground transition-colors",
|
|
53
|
+
"hover:bg-muted hover:text-foreground",
|
|
54
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
55
|
+
),
|
|
56
|
+
children: /* @__PURE__ */ jsx(Filter, { "aria-hidden": "true", className: "size-4" })
|
|
57
|
+
}
|
|
58
|
+
) : null,
|
|
59
|
+
primaryAction !== void 0 ? /* @__PURE__ */ jsxs(
|
|
60
|
+
"button",
|
|
61
|
+
{
|
|
62
|
+
type: "button",
|
|
63
|
+
onClick: primaryAction.onClick,
|
|
64
|
+
disabled: isLoading,
|
|
65
|
+
className: cn(
|
|
66
|
+
"ml-auto inline-flex items-center gap-2 rounded-md bg-primary px-3 py-2",
|
|
67
|
+
"font-medium font-sans text-body-sm text-primary-foreground",
|
|
68
|
+
"transition-colors hover:bg-primary-deep",
|
|
69
|
+
"disabled:cursor-not-allowed disabled:opacity-60",
|
|
70
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
|
|
71
|
+
),
|
|
72
|
+
children: [
|
|
73
|
+
isLoading ? /* @__PURE__ */ jsx(Loader2, { "aria-hidden": "true", className: "size-4 animate-spin" }) : PrimaryIcon ? /* @__PURE__ */ jsx(PrimaryIcon, { "aria-hidden": "true", className: "size-4" }) : null,
|
|
74
|
+
primaryAction.label
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
) : null
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
ActionBar.displayName = "ActionBar";
|
|
84
|
+
|
|
85
|
+
export { ActionBar };
|
|
86
|
+
//# sourceMappingURL=chunk-ZEFOXF2I.js.map
|
|
87
|
+
//# sourceMappingURL=chunk-ZEFOXF2I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/action-bar/action-bar.tsx"],"names":[],"mappings":";;;;;AAsCA,IAAM,SAAA,GAAY,UAAA;AAAA,EAChB,CAAC,EAAE,SAAA,EAAW,MAAA,EAAQ,eAAe,aAAA,EAAe,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtE,IAAA,IAAI,CAAC,MAAA,IAAU,CAAC,aAAA,IAAiB,CAAC,aAAA,EAAe;AAC/C,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,cAAc,aAAA,EAAe,IAAA;AACnC,IAAA,MAAM,SAAA,GAAY,eAAe,OAAA,KAAY,IAAA;AAE7C,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,YAAA;AAAA,QACV,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,gCAAA,EAAkC,SAAS,CAAA;AAAA,QACxD,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,MAAA,mBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,aAAA,EAAY,MAAA;AAAA,gBACZ,SAAA,EAAU;AAAA;AAAA,aACZ;AAAA,4BACA,GAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,aAAa,MAAA,CAAO,WAAA;AAAA,gBACpB,OAAO,MAAA,CAAO,KAAA;AAAA,gBACd,UAAU,CAAC,CAAA,KAAM,OAAO,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,gBAC/C,SAAA,EAAW,EAAA;AAAA,kBACT,kEAAA;AAAA,kBACA,0EAAA;AAAA,kBACA;AAAA;AACF;AAAA;AACF,WAAA,EACF,CAAA,GACE,IAAA;AAAA,UACH,kBAAkB,MAAA,mBACjB,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,aAAA;AAAA,cACT,YAAA,EAAW,QAAA;AAAA,cACX,SAAA,EAAW,EAAA;AAAA,gBACT,mFAAA;AAAA,gBACA,yCAAA;AAAA,gBACA,sCAAA;AAAA,gBACA;AAAA,eACF;AAAA,cAEA,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA;AAAA,WAChD,GACE,IAAA;AAAA,UACH,kBAAkB,MAAA,mBACjB,IAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAS,aAAA,CAAc,OAAA;AAAA,cACvB,QAAA,EAAU,SAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,wEAAA;AAAA,gBACA,4DAAA;AAAA,gBACA,yCAAA;AAAA,gBACA,iDAAA;AAAA,gBACA;AAAA,eACF;AAAA,cAEC,QAAA,EAAA;AAAA,gBAAA,SAAA,mBACC,GAAA,CAAC,OAAA,EAAA,EAAQ,aAAA,EAAY,MAAA,EAAO,WAAU,qBAAA,EAAsB,CAAA,GAC1D,WAAA,mBACF,GAAA,CAAC,WAAA,EAAA,EAAY,aAAA,EAAY,MAAA,EAAO,SAAA,EAAU,UAAS,CAAA,GACjD,IAAA;AAAA,gBACH,aAAA,CAAc;AAAA;AAAA;AAAA,WACjB,GACE;AAAA;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-ZEFOXF2I.js","sourcesContent":["import { Filter, Loader2, Search } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport type { ElementType, HTMLAttributes, ReactNode } from \"react\";\nimport { cn } from \"../../../lib/cn.js\";\n\n/**\n * ActionBar — page-top action strip primitive.\n *\n * A horizontal flexbox row with three optional slots:\n * - Search input (flex-1, grows to fill)\n * - Filter icon button (next to search)\n * - Primary action button (right-aligned)\n *\n * Returns `null` when no props are provided — don't render an empty\n * bar. Used standalone or composed inside `<PageShell>` (Brief #5).\n *\n * @example\n * <ActionBar\n * search={{ placeholder: \"Search projects…\", value: q, onChange: setQ }}\n * primaryAction={{ label: \"New project\", icon: Plus, onClick: openModal }}\n * />\n */\n\nexport interface ActionBarProps extends Omit<HTMLAttributes<HTMLDivElement>, \"children\"> {\n search?: {\n placeholder: string;\n value: string;\n onChange: (value: string) => void;\n };\n primaryAction?: {\n label: ReactNode;\n icon?: ElementType;\n onClick: () => void;\n loading?: boolean;\n };\n onFilterClick?: () => void;\n}\n\nconst ActionBar = forwardRef<HTMLDivElement, ActionBarProps>(\n ({ className, search, primaryAction, onFilterClick, ...props }, ref) => {\n if (!search && !primaryAction && !onFilterClick) {\n return null;\n }\n\n const PrimaryIcon = primaryAction?.icon;\n const isLoading = primaryAction?.loading === true;\n\n return (\n <div\n data-slot=\"action-bar\"\n ref={ref}\n className={cn(\"flex w-full items-center gap-2\", className)}\n {...props}\n >\n {search ? (\n <div className=\"relative flex-1\">\n <Search\n aria-hidden=\"true\"\n className=\"-translate-y-1/2 absolute top-1/2 left-3 size-4 text-muted-foreground\"\n />\n <input\n type=\"search\"\n placeholder={search.placeholder}\n value={search.value}\n onChange={(e) => search.onChange(e.target.value)}\n className={cn(\n \"w-full rounded-md border border-border/40 bg-card py-2 pr-3 pl-9\",\n \"font-sans text-body-sm text-foreground placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n )}\n />\n </div>\n ) : null}\n {onFilterClick !== undefined ? (\n <button\n type=\"button\"\n onClick={onFilterClick}\n aria-label=\"Filter\"\n className={cn(\n \"inline-flex size-9 items-center justify-center rounded-md border border-border/40\",\n \"text-muted-foreground transition-colors\",\n \"hover:bg-muted hover:text-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n )}\n >\n <Filter aria-hidden=\"true\" className=\"size-4\" />\n </button>\n ) : null}\n {primaryAction !== undefined ? (\n <button\n type=\"button\"\n onClick={primaryAction.onClick}\n disabled={isLoading}\n className={cn(\n \"ml-auto inline-flex items-center gap-2 rounded-md bg-primary px-3 py-2\",\n \"font-medium font-sans text-body-sm text-primary-foreground\",\n \"transition-colors hover:bg-primary-deep\",\n \"disabled:cursor-not-allowed disabled:opacity-60\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n )}\n >\n {isLoading ? (\n <Loader2 aria-hidden=\"true\" className=\"size-4 animate-spin\" />\n ) : PrimaryIcon ? (\n <PrimaryIcon aria-hidden=\"true\" className=\"size-4\" />\n ) : null}\n {primaryAction.label}\n </button>\n ) : null}\n </div>\n );\n },\n);\nActionBar.displayName = \"ActionBar\";\n\nexport { ActionBar };\n"]}
|