@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
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,484 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
All notable changes to `@
|
|
3
|
+
All notable changes to `@theokit/ui` are documented in this file.
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
### Deprecated
|
|
15
|
+
|
|
16
|
+
### Removed
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
### Security
|
|
21
|
+
|
|
22
|
+
## [0.17.0] - 2026-06-22
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- `TokenUsageChart` gains `maxScale` (fix the y-axis maximum so multiple charts
|
|
26
|
+
share a scale — bars exceeding it clamp to 100% while the tooltip + a11y table
|
|
27
|
+
keep the true number) and `splitSeries` (render input vs output as adjacent
|
|
28
|
+
grouped bars instead of stacked). Plus pure `toUsageMetrics(points)` (totals +
|
|
29
|
+
peak per-period total) and `splitUsagePoints(points)` (transpose into parallel
|
|
30
|
+
`labels`/`input`/`output` series) helpers, exported from
|
|
31
|
+
`@theokit/ui/token-usage-chart` and the root barrel. (M5-7)
|
|
32
|
+
- `toAgentStreamItems({ history, live }, { classifyTool? })` — a pure, order-aware
|
|
33
|
+
builder that merges completed conversation `UIMessage`s with live `AgentEvent`s
|
|
34
|
+
into the `AgentStreamItem[]` that `<AgentStream>` renders: history becomes
|
|
35
|
+
`message` items, live activity becomes `tool-call` items (status mapped from
|
|
36
|
+
`AgentEventStatus`), history-then-live. `classifyTool` customizes each
|
|
37
|
+
tool-call item per event (presentational fields only — `kind`/`id`/`status`
|
|
38
|
+
stay authoritative). Ships `mapAgentEventStatus` + the now-exported
|
|
39
|
+
`MessageStreamItem`/`ToolCallStreamItem` item types. (M5-6)
|
|
40
|
+
- `useStickToBottom` — auto-scrolls a scroll container to the bottom as content
|
|
41
|
+
grows, but only while the user is pinned near the bottom (a `threshold` guard),
|
|
42
|
+
so it never yanks the view away while they read history. Streamed content is
|
|
43
|
+
detected with a `MutationObserver` (a scroll container's box does not resize as
|
|
44
|
+
content grows inside it), with a `ResizeObserver` on top for box-size changes
|
|
45
|
+
like images finishing load. Encapsulates the Radix
|
|
46
|
+
`[data-radix-scroll-area-viewport]` selector: attach `scrollRef` to a
|
|
47
|
+
`<ScrollArea>` and the hook resolves the real scrollable node internally.
|
|
48
|
+
Ships the pure `isNearBottom` helper too. Exported from `@theokit/ui/scroll-area`
|
|
49
|
+
and the root barrel. (M5-5)
|
|
50
|
+
- `@theokit/ui/sdk-tools-adapters` — pure converters from `@theokit/sdk-tools`
|
|
51
|
+
tool results into theo-ui rich-primitive props: `adaptGitDiffResult`
|
|
52
|
+
(parses a unified diff into `DiffViewer` hunks), `adaptReadFileResult`
|
|
53
|
+
(`CodeBlock`), `adaptShellResult` (`TerminalPanel` lines), `adaptListDirResult`
|
|
54
|
+
(`DataTable` rows), `adaptApplyPatchResult` (`CreatedFilesCard` files), plus the
|
|
55
|
+
reusable `parseUnifiedDiff`. Each returns `null` on an error/unparseable result
|
|
56
|
+
so a tool card keeps its `ToolCallPart` fallback. The adapters are pure and
|
|
57
|
+
import nothing from `@theokit/sdk-tools` at runtime — consumers gain zero new
|
|
58
|
+
runtime dependency; a dev-only contract test imports the real factories and
|
|
59
|
+
runs their handlers to guard against result-shape drift. (M5-4)
|
|
60
|
+
- `AgentToolRenderer` — an overridable tool-renderer registry for the chat
|
|
61
|
+
surface. A tool invocation is dispatched to a rich renderer (diff, terminal,
|
|
62
|
+
code, created-files, data-table) by a classification function, falling back to
|
|
63
|
+
`ToolCallPart` for anything unmapped. `<ChatMessage>` now accepts
|
|
64
|
+
`toolRenderers` (shallow-merged over the default) and `classifyTool` props
|
|
65
|
+
alongside the existing `partRenderers` / `dataRenderers`; `partRenderers.tool`
|
|
66
|
+
still takes priority. Exposed via `@theokit/ui/agent-tool-renderer` and the
|
|
67
|
+
root barrel: `AgentToolRenderer`, `defaultToolRegistry`, `defaultClassifyTool`,
|
|
68
|
+
`resolveToolRenderer`, and the `ToolRenderer` / `ToolRendererKind` /
|
|
69
|
+
`ToolRendererRegistry` / `ClassifyTool` types. `ToolCallPart` now lives in this
|
|
70
|
+
module (the fallback tool renderer) and is re-exported unchanged. Behavior
|
|
71
|
+
note: with the default registry, a tool whose name matches a known kind (e.g.
|
|
72
|
+
`git_diff`, `shell`, `read_file`) and whose state is `output-available` now
|
|
73
|
+
renders its rich surface instead of the generic `ToolCallPart`; unmapped tools
|
|
74
|
+
and every non-`output-available` state (streaming, awaiting-approval, error,
|
|
75
|
+
denied) are unchanged and keep using `ToolCallPart`. Pass `classifyTool` /
|
|
76
|
+
`toolRenderers` to override. (M5-3)
|
|
77
|
+
|
|
78
|
+
### Changed
|
|
79
|
+
- Public copy aligned to honest, ecosystem-fit framing across `README.md`,
|
|
80
|
+
`PITCH.md`, and `CLAUDE.md`: removed the unsubstantiated multi-framework
|
|
81
|
+
compatibility claims (Next.js / Vite / Remix / Astro / Tanstack "CI-verified")
|
|
82
|
+
and the false "peer-deps on React only" line. Reframed as a standard React +
|
|
83
|
+
Tailwind package that pairs with TheoKit or runs standalone, with the RSC
|
|
84
|
+
fix described as "Server-Component safe" rather than a marketed Next.js
|
|
85
|
+
target. Counts corrected to 153 components / 1,513 tests / 151 stories and the
|
|
86
|
+
stale `@theokit/ui@next` install snippets updated to `@theokit/ui` (now
|
|
87
|
+
published to `latest`).
|
|
88
|
+
- README refreshed: component count corrected to 153, the v0.16.0 shadcn-v4
|
|
89
|
+
features documented (`data-slot`, `"use client"`/RSC, per-subpath types), and
|
|
90
|
+
the inaccurate "peer-deps on React only" line corrected (React is the only
|
|
91
|
+
required peer; Radix/CVA/cmdk/lucide ship as dependencies). (#13)
|
|
92
|
+
|
|
93
|
+
### Deprecated
|
|
94
|
+
|
|
95
|
+
### Removed
|
|
96
|
+
- `PITCH.md` (landing-page marketing copy) removed from the repo. Public copy
|
|
97
|
+
now lives in `README.md` + the docs site; the Voice/Tone scope in `CLAUDE.md`
|
|
98
|
+
and `rules/public-copy.md` and the `public-copy-lint` hook were updated to
|
|
99
|
+
drop the `PITCH.md` reference.
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
- **Visual-regression gate tolerates cross-environment antialiasing.** The
|
|
103
|
+
Playwright `toHaveScreenshot` config used `threshold: 0.001` + `maxDiffPixels: 0`
|
|
104
|
+
(zero tolerance), so the 101 snapshots only ever matched the exact machine that
|
|
105
|
+
generated them — they failed in CI with 488-1882 antialiased pixels differing
|
|
106
|
+
(ratio ≤0.2%, no real regression). Raised to Playwright's antialiasing-robust
|
|
107
|
+
default `threshold: 0.2` with a `maxDiffPixels: 200` safety net that still
|
|
108
|
+
fails on a genuine visual regression (thousands+ of pixels). (Internal CI
|
|
109
|
+
hygiene.) (#15)
|
|
110
|
+
- **Bundle-size gate scoped to deterministic artifacts.** `dist/components.css`
|
|
111
|
+
is a Tailwind v4 `@source`-scanned generated file whose exact byte size is
|
|
112
|
+
environment-sensitive (~470KB locally vs ~104KB on CI runners — both valid
|
|
113
|
+
output, differing by Tailwind's v3/v4 `@import` resolution across pnpm
|
|
114
|
+
layouts). It is removed from the byte-exact ±5% bundle gate (which now stays
|
|
115
|
+
focused on the deterministic shipped JS/dts bundles) and remains bounded by
|
|
116
|
+
the environment-robust `dogfood:precompiled-utilities` gate. (Internal CI
|
|
117
|
+
hygiene.) (#15)
|
|
118
|
+
- **`shadcn add chat-message` no longer references a moved file.** M5-3 moved
|
|
119
|
+
`ToolCallPart` out of `chat-message/parts/` into the new `agent-tool-renderer`
|
|
120
|
+
component, but the `chat-message` registry descriptor still listed the old
|
|
121
|
+
`parts/tool-call-part.tsx` path — so the shadcn-compatible copy-paste path
|
|
122
|
+
was broken. `agent-tool-renderer` is now its own first-class registry item
|
|
123
|
+
(with story + test) and `chat-message` declares it as a `registryDependency`.
|
|
124
|
+
(#15)
|
|
125
|
+
- **Agent-stream barrel-wiring test no longer flakes under suite load.** The
|
|
126
|
+
`await import("./index.js")` smoke test occasionally exceeded vitest's 5s
|
|
127
|
+
default (observed 5078ms) under worker-pool contention on cold runners. The
|
|
128
|
+
global `testTimeout` is raised to 20s — a hard ceiling that still fails a
|
|
129
|
+
genuinely hung test. (#15)
|
|
130
|
+
- **`quality:gates` typecheck no longer blocks on dev-only playground demos.**
|
|
131
|
+
`playground/**` self-imports the package's own built subpaths
|
|
132
|
+
(`@theokit/ui/slide`, `/slide-deck`, `/slide/plugins/*`), which resolve to
|
|
133
|
+
`dist/*.d.ts` — absent when `pnpm typecheck` runs before `pnpm build`, so the
|
|
134
|
+
gate had failed (TS2307) on every release since 0.14.0. Playground is
|
|
135
|
+
non-shipped demo code exercised via Ladle, so it is excluded from the gate
|
|
136
|
+
typecheck instead of blocking releases. (Internal CI hygiene.) (#15)
|
|
137
|
+
- **Release build no longer depends on a pnpm-specific `.bin` shim.**
|
|
138
|
+
`scripts/build-precompiled-css.ts` resolved the Tailwind v4 CLI at a nested
|
|
139
|
+
`@tailwindcss/cli/node_modules/.bin/tailwindcss` path that pnpm only
|
|
140
|
+
materializes in some hoist layouts — absent under CI's `--frozen-lockfile`
|
|
141
|
+
install, so `pnpm build` failed and the tagged release never published. Now
|
|
142
|
+
resolves the package's own declared `bin` entry from its `package.json` and
|
|
143
|
+
runs it via `node`, independent of any `.bin` shim. (#14)
|
|
144
|
+
- **`@theokit/sdk-tools` file-link devDependency removed.** The M5-4 contract
|
|
145
|
+
test had pulled in `@theokit/sdk-tools: file:../theokit-sdk/...`, which does
|
|
146
|
+
not resolve under `pnpm install --frozen-lockfile` in CI (no sibling repo) and
|
|
147
|
+
blocked the publish. The 25 adapter unit tests validate against the documented
|
|
148
|
+
`{ ok: true, ... }` result shapes; the factory result contract is owned by the
|
|
149
|
+
SDK repo. (#14)
|
|
150
|
+
- **Status indicators now render their colors under the v3 Tailwind preset.**
|
|
151
|
+
`StatusIndicator` uses `bg-status-online` / `-offline` / `-degraded` / `-info`,
|
|
152
|
+
but the `status` color palette was never added to `tailwind-preset.ts` (only
|
|
153
|
+
the v4 `@theme` declared `--color-status-*`), so those utilities resolved to
|
|
154
|
+
transparent in the v3 build path (e.g. the Ladle dev server) — the dots were
|
|
155
|
+
invisible. Added the `status` palette to the preset, mapped to the existing
|
|
156
|
+
`--status-*` tokens. The npm/v4 build was already correct. Registry
|
|
157
|
+
`tailwind-preset.json` regenerated.
|
|
158
|
+
- **npm publish CI restored.** The `release.yml` (and `deploy-ladle.yml`) GitHub
|
|
159
|
+
Actions workflow failed on every tagged release since v0.14.1 because
|
|
160
|
+
`pnpm/action-setup@v4` pinned `version: 9.15.0`, conflicting with
|
|
161
|
+
`package.json`'s `packageManager: pnpm@10.32.1`
|
|
162
|
+
(`ERR_PNPM_BAD_PM_VERSION`). Removed the hardcoded version so the package
|
|
163
|
+
actually publishes to npm again. (#13)
|
|
164
|
+
|
|
165
|
+
### Security
|
|
166
|
+
|
|
167
|
+
## [0.17.0] - 2026-06-22
|
|
168
|
+
|
|
169
|
+
### Added
|
|
170
|
+
- `TokenUsageChart` gains `maxScale` (fix the y-axis maximum so multiple charts
|
|
171
|
+
share a scale — bars exceeding it clamp to 100% while the tooltip + a11y table
|
|
172
|
+
keep the true number) and `splitSeries` (render input vs output as adjacent
|
|
173
|
+
grouped bars instead of stacked). Plus pure `toUsageMetrics(points)` (totals +
|
|
174
|
+
peak per-period total) and `splitUsagePoints(points)` (transpose into parallel
|
|
175
|
+
`labels`/`input`/`output` series) helpers, exported from
|
|
176
|
+
`@theokit/ui/token-usage-chart` and the root barrel. (M5-7)
|
|
177
|
+
- `toAgentStreamItems({ history, live }, { classifyTool? })` — a pure, order-aware
|
|
178
|
+
builder that merges completed conversation `UIMessage`s with live `AgentEvent`s
|
|
179
|
+
into the `AgentStreamItem[]` that `<AgentStream>` renders: history becomes
|
|
180
|
+
`message` items, live activity becomes `tool-call` items (status mapped from
|
|
181
|
+
`AgentEventStatus`), history-then-live. `classifyTool` customizes each
|
|
182
|
+
tool-call item per event (presentational fields only — `kind`/`id`/`status`
|
|
183
|
+
stay authoritative). Ships `mapAgentEventStatus` + the now-exported
|
|
184
|
+
`MessageStreamItem`/`ToolCallStreamItem` item types. (M5-6)
|
|
185
|
+
- `useStickToBottom` — auto-scrolls a scroll container to the bottom as content
|
|
186
|
+
grows, but only while the user is pinned near the bottom (a `threshold` guard),
|
|
187
|
+
so it never yanks the view away while they read history. Streamed content is
|
|
188
|
+
detected with a `MutationObserver` (a scroll container's box does not resize as
|
|
189
|
+
content grows inside it), with a `ResizeObserver` on top for box-size changes
|
|
190
|
+
like images finishing load. Encapsulates the Radix
|
|
191
|
+
`[data-radix-scroll-area-viewport]` selector: attach `scrollRef` to a
|
|
192
|
+
`<ScrollArea>` and the hook resolves the real scrollable node internally.
|
|
193
|
+
Ships the pure `isNearBottom` helper too. Exported from `@theokit/ui/scroll-area`
|
|
194
|
+
and the root barrel. (M5-5)
|
|
195
|
+
- `@theokit/ui/sdk-tools-adapters` — pure converters from `@theokit/sdk-tools`
|
|
196
|
+
tool results into theo-ui rich-primitive props: `adaptGitDiffResult`
|
|
197
|
+
(parses a unified diff into `DiffViewer` hunks), `adaptReadFileResult`
|
|
198
|
+
(`CodeBlock`), `adaptShellResult` (`TerminalPanel` lines), `adaptListDirResult`
|
|
199
|
+
(`DataTable` rows), `adaptApplyPatchResult` (`CreatedFilesCard` files), plus the
|
|
200
|
+
reusable `parseUnifiedDiff`. Each returns `null` on an error/unparseable result
|
|
201
|
+
so a tool card keeps its `ToolCallPart` fallback. The adapters are pure and
|
|
202
|
+
import nothing from `@theokit/sdk-tools` at runtime — consumers gain zero new
|
|
203
|
+
runtime dependency; a dev-only contract test imports the real factories and
|
|
204
|
+
runs their handlers to guard against result-shape drift. (M5-4)
|
|
205
|
+
- `AgentToolRenderer` — an overridable tool-renderer registry for the chat
|
|
206
|
+
surface. A tool invocation is dispatched to a rich renderer (diff, terminal,
|
|
207
|
+
code, created-files, data-table) by a classification function, falling back to
|
|
208
|
+
`ToolCallPart` for anything unmapped. `<ChatMessage>` now accepts
|
|
209
|
+
`toolRenderers` (shallow-merged over the default) and `classifyTool` props
|
|
210
|
+
alongside the existing `partRenderers` / `dataRenderers`; `partRenderers.tool`
|
|
211
|
+
still takes priority. Exposed via `@theokit/ui/agent-tool-renderer` and the
|
|
212
|
+
root barrel: `AgentToolRenderer`, `defaultToolRegistry`, `defaultClassifyTool`,
|
|
213
|
+
`resolveToolRenderer`, and the `ToolRenderer` / `ToolRendererKind` /
|
|
214
|
+
`ToolRendererRegistry` / `ClassifyTool` types. `ToolCallPart` now lives in this
|
|
215
|
+
module (the fallback tool renderer) and is re-exported unchanged. Behavior
|
|
216
|
+
note: with the default registry, a tool whose name matches a known kind (e.g.
|
|
217
|
+
`git_diff`, `shell`, `read_file`) and whose state is `output-available` now
|
|
218
|
+
renders its rich surface instead of the generic `ToolCallPart`; unmapped tools
|
|
219
|
+
and every non-`output-available` state (streaming, awaiting-approval, error,
|
|
220
|
+
denied) are unchanged and keep using `ToolCallPart`. Pass `classifyTool` /
|
|
221
|
+
`toolRenderers` to override. (M5-3)
|
|
222
|
+
|
|
223
|
+
### Changed
|
|
224
|
+
- Public copy aligned to honest, ecosystem-fit framing across `README.md`,
|
|
225
|
+
`PITCH.md`, and `CLAUDE.md`: removed the unsubstantiated multi-framework
|
|
226
|
+
compatibility claims (Next.js / Vite / Remix / Astro / Tanstack "CI-verified")
|
|
227
|
+
and the false "peer-deps on React only" line. Reframed as a standard React +
|
|
228
|
+
Tailwind package that pairs with TheoKit or runs standalone, with the RSC
|
|
229
|
+
fix described as "Server-Component safe" rather than a marketed Next.js
|
|
230
|
+
target. Counts corrected to 153 components / 1,513 tests / 151 stories and the
|
|
231
|
+
stale `@theokit/ui@next` install snippets updated to `@theokit/ui` (now
|
|
232
|
+
published to `latest`).
|
|
233
|
+
- README refreshed: component count corrected to 153, the v0.16.0 shadcn-v4
|
|
234
|
+
features documented (`data-slot`, `"use client"`/RSC, per-subpath types), and
|
|
235
|
+
the inaccurate "peer-deps on React only" line corrected (React is the only
|
|
236
|
+
required peer; Radix/CVA/cmdk/lucide ship as dependencies). (#13)
|
|
237
|
+
|
|
238
|
+
### Deprecated
|
|
239
|
+
|
|
240
|
+
### Removed
|
|
241
|
+
- `PITCH.md` (landing-page marketing copy) removed from the repo. Public copy
|
|
242
|
+
now lives in `README.md` + the docs site; the Voice/Tone scope in `CLAUDE.md`
|
|
243
|
+
and `rules/public-copy.md` and the `public-copy-lint` hook were updated to
|
|
244
|
+
drop the `PITCH.md` reference.
|
|
245
|
+
|
|
246
|
+
### Fixed
|
|
247
|
+
- **Status indicators now render their colors under the v3 Tailwind preset.**
|
|
248
|
+
`StatusIndicator` uses `bg-status-online` / `-offline` / `-degraded` / `-info`,
|
|
249
|
+
but the `status` color palette was never added to `tailwind-preset.ts` (only
|
|
250
|
+
the v4 `@theme` declared `--color-status-*`), so those utilities resolved to
|
|
251
|
+
transparent in the v3 build path (e.g. the Ladle dev server) — the dots were
|
|
252
|
+
invisible. Added the `status` palette to the preset, mapped to the existing
|
|
253
|
+
`--status-*` tokens. The npm/v4 build was already correct. Registry
|
|
254
|
+
`tailwind-preset.json` regenerated.
|
|
255
|
+
- **npm publish CI restored.** The `release.yml` (and `deploy-ladle.yml`) GitHub
|
|
256
|
+
Actions workflow failed on every tagged release since v0.14.1 because
|
|
257
|
+
`pnpm/action-setup@v4` pinned `version: 9.15.0`, conflicting with
|
|
258
|
+
`package.json`'s `packageManager: pnpm@10.32.1`
|
|
259
|
+
(`ERR_PNPM_BAD_PM_VERSION`). Removed the hardcoded version so the package
|
|
260
|
+
actually publishes to npm again. (#13)
|
|
261
|
+
|
|
262
|
+
### Security
|
|
263
|
+
|
|
264
|
+
## [0.16.0] - 2026-06-18
|
|
265
|
+
|
|
266
|
+
### Added
|
|
267
|
+
- **`data-slot` attribute on every component (shadcn v4 convention).** All 135
|
|
268
|
+
components now emit `data-slot="<name>"` on their root element (compound
|
|
269
|
+
sub-parts carry `data-slot="<name>-<part>"`), so consumers can target and
|
|
270
|
+
override styles via stable attribute selectors instead of relying on Tailwind
|
|
271
|
+
class order. New quality gate `validateDataSlot` enforces presence on every
|
|
272
|
+
component. (community-standard-componentization, T2.1)
|
|
273
|
+
- **Per-subpath TypeScript declarations.** Importing `@theokit/ui/button` now
|
|
274
|
+
resolves an isolated `Button`-only `.d.ts` instead of the entire barrel's
|
|
275
|
+
type surface, so type-checking a single subpath no longer loads all 135
|
|
276
|
+
components' types. Declarations are emitted by `tsc -p tsconfig.dts.json`
|
|
277
|
+
(tsup's bundler OOMs at 130+ entries). (community-standard-componentization, T3.1)
|
|
278
|
+
- **`data-variant` / `data-size` on cva components (shadcn v4).** The 9
|
|
279
|
+
variant-driven components (Button, Badge, Avatar, Select, Switch, Input,
|
|
280
|
+
Textarea, Checkbox, Toast) now emit `data-variant`/`data-size` alongside
|
|
281
|
+
`data-slot`, so consumers can style by attribute (e.g.
|
|
282
|
+
`[data-slot=button][data-variant=secondary]`). The `*Variants` helpers remain
|
|
283
|
+
exported for class reuse. (community-standard-componentization, T5.1)
|
|
284
|
+
|
|
285
|
+
- `"use client"` directive added to the 45 client component source files
|
|
286
|
+
(anything using React hooks/context), matching shadcn/ui conventions.
|
|
287
|
+
- Post-build step `scripts/inject-use-client.ts` re-injects the directive into
|
|
288
|
+
the output entry shims + component chunks (esbuild strips it during
|
|
289
|
+
`splitting`). Wired into the `build` script.
|
|
290
|
+
- New quality gate `validateUseClientDirective` — fails the build if a client
|
|
291
|
+
component ships without the directive in `dist/`. (T1.2)
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
### Changed
|
|
295
|
+
- Tailwind v4 devDep alignment + v3-legacy removal (Phase 4) is deferred to a
|
|
296
|
+
dedicated `tailwind-v4-migration` cycle — see ADR 0001. The shipped
|
|
297
|
+
`dist/components.css` is already built with Tailwind v4; the deferred work is
|
|
298
|
+
the dev/test version label + the v3-legacy compat artifacts.
|
|
299
|
+
- Bundle baseline updated for the new per-subpath declaration strategy: the
|
|
300
|
+
barrel `dist/index.d.ts` is now a thin re-export (15 KB vs the old 206 KB
|
|
301
|
+
inlined monolith) because per-component types live in their own files under
|
|
302
|
+
`dist/components/`. Engine `.d.ts` moved from `dist/<engine>/` to
|
|
303
|
+
`dist/components/.../`. (community-standard-componentization, T3.1)
|
|
304
|
+
- Bundle baseline for `dist/components.css` corrected to the full `@source`
|
|
305
|
+
scan size (the prior baseline was set in an environment where Tailwind v4's
|
|
306
|
+
`@source` glob under-scanned the library tree — a known pnpm-symlink
|
|
307
|
+
fragility documented in `scripts/build-precompiled-css.ts`). The
|
|
308
|
+
`data-slot` / `"use client"` work is bundle-neutral — verified empirically
|
|
309
|
+
(removing `data-slot` leaves `components.css` byte-identical). `dist/slide`
|
|
310
|
+
and `dist/slide-deck` grew by a few bytes from the directive + data-slot.
|
|
311
|
+
NOTE: `components.css` size is `@source`-environment-sensitive; CI should
|
|
312
|
+
confirm the full-scan value reproduces in its environment.
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
### Fixed
|
|
316
|
+
- **`@theokit/ui` now works in Next.js App Router (React Server Components).**
|
|
317
|
+
The `"use client"` directive is preserved in the published build so importing
|
|
318
|
+
a client component (anything using hooks) no longer throws *"useState only
|
|
319
|
+
works in a Client Component"*. Previously esbuild stripped the directive under
|
|
320
|
+
code-splitting, so every npm-installed client component was broken in RSC
|
|
321
|
+
projects. Both consumption paths are fixed — subpath (`@theokit/ui/agent-event`)
|
|
322
|
+
and barrel (`@theokit/ui`). (community-standard-componentization, T1.1)
|
|
323
|
+
|
|
324
|
+
## [0.15.0] - 2026-06-16
|
|
325
|
+
|
|
326
|
+
### Added
|
|
327
|
+
- **Prompt composites — "ask the user" cards for agent surfaces, modeled on
|
|
328
|
+
Claude Code's question UX.** Four self-contained composites, each rendering
|
|
329
|
+
one question at a time (sequencing across questions is the consumer's
|
|
330
|
+
responsibility — there is no built-in flow orchestrator):
|
|
331
|
+
- **`ChoicePrompt`** — single-select (radio). Header chip, options with
|
|
332
|
+
label + description, `1`..`9` number-key shortcuts (terminal-style
|
|
333
|
+
selection), injectable free-text "Other" option, and a side-by-side preview
|
|
334
|
+
pane when options carry preview content. Emits `onConfirm` with the chosen
|
|
335
|
+
value (plus the typed Other text when relevant).
|
|
336
|
+
- **`MultiSelectPrompt`** — multi-select (checkbox). Same surface as
|
|
337
|
+
`ChoicePrompt` with number-key toggles, an Other row, a `minSelected` gate,
|
|
338
|
+
and a stacked preview pane for every selected option. Emits `onConfirm`
|
|
339
|
+
with the value array.
|
|
340
|
+
- **`TextPrompt`** — free-text. Single-line `Input` or multi-line `Textarea`
|
|
341
|
+
with an optional `required` gate. Emits `onConfirm` with the typed text.
|
|
342
|
+
- **`ConfirmPrompt`** — binary yes/no. Optional `destructive` variant that
|
|
343
|
+
tones the confirm action red and exposes the card as an `alertdialog`.
|
|
344
|
+
Controlled or uncontrolled. Ships a `prompt` registry lib item carrying the
|
|
345
|
+
shared `PromptOption` type + helpers consumed by the choice composites.
|
|
346
|
+
|
|
347
|
+
## [0.14.4] - 2026-06-13
|
|
348
|
+
|
|
349
|
+
### Added
|
|
350
|
+
|
|
351
|
+
- `pnpm dev:pack` script for local cross-repo consumption — generates tarball at `dist/theokit-ui-{version}.tgz` that installs without dual-React symlink issues. Documented in CONTRIBUTING.md.
|
|
352
|
+
|
|
353
|
+
## [0.14.3] - 2026-06-09
|
|
354
|
+
|
|
355
|
+
**Patch — PageShell content spacing standardization.**
|
|
356
|
+
|
|
357
|
+
### Fixed
|
|
358
|
+
- **`PageShell` content slot now renders direct children with `flex flex-col gap-6`.**
|
|
359
|
+
Previously the content `<div>` had no internal spacing, so pages with 2+
|
|
360
|
+
top-level children (e.g. dashboard `/memory` landing with 5 sibling
|
|
361
|
+
sections: KPI strip + trend grid + getting-started card + Explore
|
|
362
|
+
heading + Explore grid) rendered them flush against each other. The new
|
|
363
|
+
wrapper matches the outer `<main className="flex flex-col gap-6">` gap,
|
|
364
|
+
so spacing is uniform across the page. Pages that already wrap content
|
|
365
|
+
in a single grid or div are unaffected — `gap-6` only applies between
|
|
366
|
+
sibling elements. Equivalent to manually wrapping every page's content
|
|
367
|
+
in `<div className="flex flex-col gap-6">`, but enforced at the
|
|
368
|
+
composite level so every consumer benefits without per-page churn.
|
|
369
|
+
|
|
370
|
+
## [0.14.2] - 2026-06-09
|
|
371
|
+
|
|
372
|
+
**Patch — build-pipeline correctness. Bundles the 0.14.1 color migration
|
|
373
|
+
plus two FAANG-grade fixes that were required to ship a clean build to
|
|
374
|
+
npm. 0.14.1 was tagged in git but never published to the npm registry;
|
|
375
|
+
0.14.2 is the first published artifact carrying the violet unification.**
|
|
376
|
+
|
|
377
|
+
### Added
|
|
378
|
+
- **`src/lib/env.ts` — typed environment helpers (`isDev()`, `isProd()`).**
|
|
379
|
+
Centralizes `process.env.NODE_ENV` reads through a single typed accessor
|
|
380
|
+
that uses `globalThis.process?.env?.NODE_ENV`. Works in browser via
|
|
381
|
+
bundler `define` injection (Vite/Webpack/esbuild), in Node (SSR/tests),
|
|
382
|
+
and defensively in browser-without-bundler-injection (returns
|
|
383
|
+
`isDev() === true` to err on the side of more diagnostics). This is the
|
|
384
|
+
same pattern React, Radix, and Stripe Elements use — funnel every
|
|
385
|
+
`NODE_ENV` read through a typed helper so consumers' bundlers can
|
|
386
|
+
dead-code-eliminate dev-only branches in their production build.
|
|
387
|
+
|
|
388
|
+
### Changed
|
|
389
|
+
- **Six components migrated from raw `process.env.NODE_ENV` to `isDev()`.**
|
|
390
|
+
`theme-provider`, `status-dot`, `timestamp`, `env-var-editor`,
|
|
391
|
+
`thinking-level-selector`, `build-log-stream`. No behavior change in
|
|
392
|
+
consumer production builds — only a typecheck-cleanliness and
|
|
393
|
+
build-stability improvement. The previous direct `process.env` reads
|
|
394
|
+
triggered TypeScript `TS2591` failures unless `@types/node` was listed
|
|
395
|
+
in `tsconfig.json#compilerOptions.types`. Adding `"node"` there is the
|
|
396
|
+
workaround we explicitly rejected: it pollutes the ambient global
|
|
397
|
+
namespace of a UI library with Node-only APIs (`Buffer`, `fs`, `path`,
|
|
398
|
+
`Stream`) and surfaces them in author autocomplete inside React
|
|
399
|
+
components. The typed helper is the right pattern.
|
|
400
|
+
|
|
401
|
+
### Fixed
|
|
402
|
+
- **`src/vite-plugin.test.ts:76` — implicit `any` on `.map` callback parameter.**
|
|
403
|
+
Annotated as `(c: unknown[])`. Pre-existing TypeScript strictness
|
|
404
|
+
violation unrelated to the violet migration, but the typecheck job in
|
|
405
|
+
`prepublishOnly`'s `quality:gates` must be clean for publish to proceed.
|
|
406
|
+
|
|
407
|
+
## [0.14.1] - 2026-06-09 — NOT PUBLISHED
|
|
408
|
+
|
|
409
|
+
Tagged in git as `v0.14.1` but never published to the npm registry. The
|
|
410
|
+
build pipeline surfaced two pre-existing TypeScript errors (six raw
|
|
411
|
+
`process.env.NODE_ENV` reads + one implicit-`any` test assertion) that
|
|
412
|
+
needed to be fixed before publish. The color migration carried out by
|
|
413
|
+
this commit is bundled into `0.14.2` (see above) along with those fixes.
|
|
414
|
+
|
|
415
|
+
**Patch (token value change only — full backward-compat preserved).**
|
|
416
|
+
|
|
417
|
+
### Changed
|
|
418
|
+
- **Theo violet primary unified to `#A855F7` electric violet**. The Violet Forge theme's `--primary` (and matching `--ring`) moved from `#7C3AED` (`oklch(0.542 0.245 293)`) to `#A855F7` (`oklch(0.628 0.225 296)`) — same family, higher chroma at higher lightness, calmer execution without cyberpunk halos. Decision based on cross-surface unification (marketing + cloud/dashboard share one cor): the new value reads as production-grade premium and works consistently across light + dark surfaces. Burnt sienna accent `#C96442` is preserved (warmth complement unchanged). `--primary-deep` and `--primary-glow` continue to derive algorithmically via OKLCH relative-color syntax — no manual override needed. Files touched: `src/styles/tokens.css` (light + dark `--primary` and `--ring`), `src/themes/violet-forge.ts` (light + dark `primary` and `ring`), `src/components/primitives/slide/themes/violet-forge.css` (`--theo-slide-accent`), `src/components/primitives/whiteboard/whiteboard.stories.tsx` (stroke demo), `src/themes/color.ts` (JSDoc examples refreshed). Tests in `src/themes/color.test.ts` intentionally left unchanged — they test the `hex()` function with `#7C3AED` as a static example, decoupled from brand color choice. Consumers (theo-website, theo-cloud/dashboard, theokit framework) pick up the new color automatically on next install/rebuild via `@theokit/ui/preset.css`.
|
|
419
|
+
|
|
420
|
+
## [0.14.0] - 2026-06-03
|
|
421
|
+
|
|
422
|
+
**Minor (additive — full backward-compat preserved via legacy helpers).**
|
|
423
|
+
|
|
424
|
+
Community best practices alignment cohort. Migrates `@theokit/ui` from HSL split to OKLCH as the canonical color format, introduces status semantic tokens, two new composites (StatusIndicator + MetricCard), a lint rule banning literal Tailwind color classes in components, `prefers-color-scheme` auto-detect, forced-colors (Windows High Contrast Mode) support, and a Playwright visual regression baseline. All 6 ADRs (0004-0009), full migration guide, and 5 new test files shipped. WCAG AA preserved across 10 themes × 2 modes. `classic-paper` rebalanced to visibly warm cream (per Vintage Paper + Anthropic Claude UI references) for reduced vision fatigue on long agent sessions.
|
|
425
|
+
|
|
426
|
+
See [docs/migration/hsl-to-oklch.md](docs/migration/hsl-to-oklch.md) for the full upgrade guide.
|
|
427
|
+
|
|
428
|
+
### Added — Community Best Practices Alignment (2026-06-03)
|
|
429
|
+
|
|
430
|
+
- **Status semantic token group** (ADR-0007). New `ColorScale` keys
|
|
431
|
+
`--status-online`, `--status-offline`, `--status-degraded`, `--status-info`
|
|
432
|
+
plus foreground companions — 8 keys × 11 themes. Separates operational state
|
|
433
|
+
(gateway alive/dead/slow/info) from action-result (success/destructive/warning/info).
|
|
434
|
+
- **`StatusIndicator` composite** consuming the status group. API:
|
|
435
|
+
`<StatusIndicator status="online" label="Connected" pulse?>`.
|
|
436
|
+
- **`MetricCard` composite** for dashboard tiles. API:
|
|
437
|
+
`<MetricCard title value delta={{value,trend}} hint? icon? invertTrend? />`.
|
|
438
|
+
`invertTrend` flips trend semantics for cost/churn/latency metrics (EC-17).
|
|
439
|
+
- **`respectSystemMode` prop** on `<ThemeProvider>` (default `true`, ADR-0009).
|
|
440
|
+
Reads `(prefers-color-scheme: dark)` on hydration and subscribes to OS changes.
|
|
441
|
+
User-driven `setMode()` overrides the system signal. `matchMedia` listener
|
|
442
|
+
cleanup on unmount (EC-12).
|
|
443
|
+
- **`forced-colors` media query** in `tokens.css` (ADR-0008). Maps semantic
|
|
444
|
+
tokens to system colors (Canvas, CanvasText, Highlight, ...) for Windows
|
|
445
|
+
High Contrast Mode. WCAG 2.2 SC 1.4.1/1.4.3.
|
|
446
|
+
- **Container query sizes** (`--container-3xs` through `--container-7xl`)
|
|
447
|
+
declared in `tokens-v4.css` for Tailwind v4 `@container` variants.
|
|
448
|
+
- **Algorithmic tonal derivations** for `--primary-deep`, `--primary-glow`,
|
|
449
|
+
`--accent-deep` via OKLCH relative-color syntax with `max()`/`min()`
|
|
450
|
+
anti-overflow clamps (ADR-0006, EC-7).
|
|
451
|
+
- **Lint rule scanner** `scripts/lib/literal-color-scanner.ts` blocks literal
|
|
452
|
+
Tailwind color classes in `src/components/**/*.tsx`. Wired into
|
|
453
|
+
`pnpm quality:structure` (ADR-0004). 14 unit tests.
|
|
454
|
+
- **Valibot theme schema** `src/themes/schema.ts` (D5 revised — Valibot
|
|
455
|
+
~1.5KB gzipped vs Zod ~12KB).
|
|
456
|
+
- **OKLCH `color-value-pattern.ts`** extracted from `theme-provider.tsx`.
|
|
457
|
+
Accepts plain OKLCH, relative-color syntax (EC-5), HSL split, hex, var().
|
|
458
|
+
|
|
459
|
+
### Changed — Community Best Practices Alignment (2026-06-03)
|
|
460
|
+
|
|
461
|
+
- **All 11 built-in themes migrated from HSL split to OKLCH** (ADR-0005).
|
|
462
|
+
638 values converted via `scripts/migrate-themes-to-oklch.ts`. Round-trip
|
|
463
|
+
delta ~0.001 L per value (visually equivalent, < 0.5% pixel diff).
|
|
464
|
+
Legacy HSL split format still accepted by the runtime validator.
|
|
465
|
+
- **`tokens-v4.css` aliases** drop `hsl()` wrapper —
|
|
466
|
+
`--color-primary: var(--primary)` direct.
|
|
467
|
+
- **`tokens.css` shadows + texture utilities** use
|
|
468
|
+
`color-mix(in oklch, var(--x) N%, transparent)` for alpha composition.
|
|
469
|
+
- **`hex()` and `rgb()` helpers** now return `oklch(L C H)` strings (T2.6).
|
|
470
|
+
- **`gateway-status-indicator`, `run-status-pill`, `update-banner`,
|
|
471
|
+
`stability-bundle-viewer`** swept of 12 literal Tailwind color classes
|
|
472
|
+
→ semantic tokens. Closes hidden theme-switching bug.
|
|
473
|
+
- **`primary-deep` / `primary-glow` / `accent-deep`** are now `optional`
|
|
474
|
+
in `ColorScale`. CSS auto-derives via `oklch(from ...)` when omitted.
|
|
475
|
+
- **`validateThemeContrast`** accepts both HSL split and OKLCH input.
|
|
476
|
+
|
|
477
|
+
### Deprecated — Community Best Practices Alignment
|
|
478
|
+
|
|
479
|
+
- **`hexToHsl(input)`** and **`rgbToHslLegacy(r, g, b)`** — use `hex()` /
|
|
480
|
+
`rgb()` (OKLCH output) instead. Removal scheduled for next major.
|
|
481
|
+
|
|
10
482
|
## [0.13.0] - 2026-05-29
|
|
11
483
|
|
|
12
484
|
**Minor (additive only — zero breaking changes).**
|
|
@@ -14,7 +486,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
14
486
|
Seven new components shipped as Phase 1 of the `theokit-ui-parity` plan
|
|
15
487
|
(`.claude/knowledge-base/plans/theokit-ui-parity-plan.md` v1.1). All seven
|
|
16
488
|
mirror OpenClaw Control UI patterns the framework lacked, designed to be
|
|
17
|
-
composable into any theokit app via `@
|
|
489
|
+
composable into any theokit app via `@theokit/ui` barrel.
|
|
18
490
|
|
|
19
491
|
### Added — Phase 2 component
|
|
20
492
|
|
|
@@ -105,7 +577,7 @@ composable into any theokit app via `@usetheo/ui` barrel.
|
|
|
105
577
|
|
|
106
578
|
**Stable release — promoted from `0.12.0-next.0` after dogfood validation + cross-repo contract gates landed.**
|
|
107
579
|
|
|
108
|
-
First `@
|
|
580
|
+
First `@theokit/ui` release on the npm `latest` tag without a `-next.*` pre-release suffix. Content is the union of everything shipped in `0.12.0-next.0` (2026-05-25) plus the additions below from `[Unreleased]` consolidation. **Zero breaking changes vs `0.12.0-next.0`** — consumers on `^0.12.0-next.0` upgrade transparently.
|
|
109
581
|
|
|
110
582
|
### Added (dogfood-fixes-and-coverage-expansion T4.1, 2026-05-28)
|
|
111
583
|
|
|
@@ -127,14 +599,14 @@ that complement the existing `llms.txt`: a structured visual spec
|
|
|
127
599
|
### Added
|
|
128
600
|
|
|
129
601
|
- **`DESIGN.md` at repo root (NEW)** — plain-text design system spec
|
|
130
|
-
for LLM assistants generating UI against `@
|
|
602
|
+
for LLM assistants generating UI against `@theokit/ui`. Follows the
|
|
131
603
|
awesome-design-md 9-section canonical structure (Visual Theme &
|
|
132
604
|
Atmosphere · Color Palette & Roles · Typography Rules · Layout
|
|
133
605
|
Principles · Depth & Elevation · Component Stylings · Responsive
|
|
134
606
|
Behavior · Do's and Don'ts · Agent Prompt Guide). Tokens mirror
|
|
135
607
|
`src/styles/tokens.css` and `src/themes/violet-forge.ts`. Shipped
|
|
136
608
|
via `package.json > files` alongside `llms.txt` and `CHANGELOG.md`
|
|
137
|
-
so consumers see the visual spec at `node_modules/@
|
|
609
|
+
so consumers see the visual spec at `node_modules/@theokit/ui/DESIGN.md`.
|
|
138
610
|
Reference research lives at
|
|
139
611
|
`.claude/knowledge-base/reference/design-md-convention.md`.
|
|
140
612
|
- **`skills/theo-ui/` companion agent skill (NEW)** — library-aware
|
|
@@ -176,7 +648,7 @@ Brief: `theo/docs/handoff/2026-05-25-theo-ui-cloud-dashboard-brief-5.md`
|
|
|
176
648
|
`Object.assign`: `Trigger`, `Portal`, `Content`, `Item`,
|
|
177
649
|
`CheckboxItem`, `RadioItem`, `Label`, `Separator`, `Shortcut`,
|
|
178
650
|
`Group`, `Sub`, `SubTrigger`, `SubContent`, `RadioGroup`. Styled
|
|
179
|
-
with `@
|
|
651
|
+
with `@theokit/ui` design tokens. Consolidates 5 prior direct-
|
|
180
652
|
Radix usages (`model-selector`, `intent-selector`, `agent-profile`,
|
|
181
653
|
`theme-switcher`, `theo-code-shell`) under a single styled
|
|
182
654
|
wrapper. 6 unit tests + 5 Ladle stories. SSR-safe.
|
|
@@ -250,7 +722,7 @@ new primitives yet — pure version bump):
|
|
|
250
722
|
|
|
251
723
|
| Metric | 0.10.0-next.0 | 0.11.0-next.0 | Δ |
|
|
252
724
|
|---|---|---|---|
|
|
253
|
-
| `@
|
|
725
|
+
| `@theokit/ui` chunk | 10.96 KB brotli | 10.98 KB brotli | **+0.02 KB (+0.2%)** |
|
|
254
726
|
| TOTAL initial JS | 134.68 KB brotli | 135.56 KB brotli | +0.88 KB (+0.6%) |
|
|
255
727
|
|
|
256
728
|
Per-chunk cap (18 KB): passes with 7.02 KB headroom.
|
|
@@ -273,8 +745,8 @@ defect surfaced by the TheoCloud dashboard bundle audit
|
|
|
273
745
|
exports declared in `package.json#exports` (`./alert`, `./button`,
|
|
274
746
|
`./table`, …) were **cosmetic** — each pointed at the same
|
|
275
747
|
`./dist/index.js` (the 417 KB barrel). `import { Alert } from
|
|
276
|
-
"@
|
|
277
|
-
`import { Alert } from "@
|
|
748
|
+
"@theokit/ui/alert"` resolved byte-identical to
|
|
749
|
+
`import { Alert } from "@theokit/ui"`, and barrel tree-shaking
|
|
278
750
|
failed in consumers because of `forwardRef` side-effect bailouts,
|
|
279
751
|
`Object.assign` compound components, and `sideEffects: ["**/*.css"]`
|
|
280
752
|
conservatism. TheoCloud measured **0 KB dropped** from the 240 KB
|
|
@@ -282,7 +754,7 @@ minified barrel regardless of how few exports were used.
|
|
|
282
754
|
|
|
283
755
|
This release extends the per-component dist pattern that already
|
|
284
756
|
worked for `whiteboard` / `slide` / `slide-deck` to every primitive
|
|
285
|
-
and composite. The barrel `import { X } from "@
|
|
757
|
+
and composite. The barrel `import { X } from "@theokit/ui"` is
|
|
286
758
|
preserved unchanged (additive migration shape, same as `@mui/material`).
|
|
287
759
|
|
|
288
760
|
Plan: `.claude/knowledge-base/plans/subpath-tree-shaking-plan.md`
|
|
@@ -308,7 +780,7 @@ Brief: `theo/docs/handoff/2026-05-24-theo-ui-subpath-tree-shaking-brief-4.md`
|
|
|
308
780
|
`NODE_OPTIONS=--max-old-space-size=8192` (the flag does not
|
|
309
781
|
propagate to workers). Per-component subpaths resolve their `types`
|
|
310
782
|
field at the barrel `dist/index.d.ts` — TypeScript still finds
|
|
311
|
-
`Alert`/`AlertProps` from `import { Alert } from "@
|
|
783
|
+
`Alert`/`AlertProps` from `import { Alert } from "@theokit/ui/alert"`.
|
|
312
784
|
Trade-off: consumers' typecheck pulls the full type graph regardless
|
|
313
785
|
of subpath, but the JS dist (where tree-shaking matters) is
|
|
314
786
|
per-component and small.
|
|
@@ -350,7 +822,7 @@ chunks. **Consumer-side bundle delta against TheoCloud dashboard
|
|
|
350
822
|
|
|
351
823
|
| Metric | 0.9.0-next.0 | 0.10.0-next.0 | Δ |
|
|
352
824
|
|---|---|---|---|
|
|
353
|
-
| `@
|
|
825
|
+
| `@theokit/ui` chunk | 36.96 KB brotli | 10.96 KB brotli | **−26.00 KB (−70.3%)** |
|
|
354
826
|
| TOTAL initial JS | 176.27 KB brotli | 134.68 KB brotli | −41.59 KB (−23.6%) |
|
|
355
827
|
|
|
356
828
|
Per-chunk cap (50 KB): passes with 39 KB headroom (was 13 KB).
|
|
@@ -369,16 +841,16 @@ Evidence file:
|
|
|
369
841
|
### Migration (consumer-side, opt-in)
|
|
370
842
|
|
|
371
843
|
```diff
|
|
372
|
-
- import { Card, Button, Alert } from "@
|
|
373
|
-
+ import { Card } from "@
|
|
374
|
-
+ import { Button } from "@
|
|
375
|
-
+ import { Alert } from "@
|
|
844
|
+
- import { Card, Button, Alert } from "@theokit/ui";
|
|
845
|
+
+ import { Card } from "@theokit/ui/card";
|
|
846
|
+
+ import { Button } from "@theokit/ui/button";
|
|
847
|
+
+ import { Alert } from "@theokit/ui/alert";
|
|
376
848
|
```
|
|
377
849
|
|
|
378
850
|
The barrel import keeps working — migration is gradual, file by
|
|
379
851
|
file. CSS, themes, and isolated engines stay barrel-imported:
|
|
380
|
-
`import { ThemeProvider, violetForge } from "@
|
|
381
|
-
`import "@
|
|
852
|
+
`import { ThemeProvider, violetForge } from "@theokit/ui"`,
|
|
853
|
+
`import "@theokit/ui/styles.css"`.
|
|
382
854
|
|
|
383
855
|
## [0.9.0-next.0] - 2026-05-23
|
|
384
856
|
|
|
@@ -530,7 +1002,7 @@ Consumer brief: `theo/docs/handoff/2026-05-23-theo-ui-cloud-dashboard-gaps-brief
|
|
|
530
1002
|
- **Taxonomy gate** classified ConfirmDialog + CodeBlock as composites
|
|
531
1003
|
(D2 in the plan). Brief #2 listed all 8 as primitives, but the
|
|
532
1004
|
validate-quality-gates.ts script is hard-fail for any
|
|
533
|
-
`primitives/` file that imports another `@
|
|
1005
|
+
`primitives/` file that imports another `@theokit/ui` component.
|
|
534
1006
|
- **Timestamp uses native `title` HTML attribute** (D3) instead of
|
|
535
1007
|
the `<Tooltip>` component, to keep the file a true primitive
|
|
536
1008
|
without sibling-primitive imports.
|
|
@@ -610,7 +1082,7 @@ Consumer brief: `theo/docs/handoff/2026-05-23-theo-ui-cloud-dashboard-gaps-brief
|
|
|
610
1082
|
- **Taxonomy invariant preserved.** `UsageMeter → Progress` and
|
|
611
1083
|
`AccountMenu → Avatar + PlanBadge` use relative-path imports
|
|
612
1084
|
(`../{slug}/index.js`), not barrel imports, so primitives still have
|
|
613
|
-
zero `@
|
|
1085
|
+
zero `@theokit/ui` cross-dependencies per the structural gate.
|
|
614
1086
|
- **Bundle delta.** `dist/index.js` grows by ~6 KB (4 primitives + types
|
|
615
1087
|
+ small imports). Within the ±5% baseline tolerance (rebaselined).
|
|
616
1088
|
- **Subpath exports.** `package.json#exports` gains `./usage-meter`,
|
|
@@ -688,7 +1160,7 @@ every `<button>` rendered by `Sidebar.Item`, `QuickActionChips`,
|
|
|
688
1160
|
`ChatComposer`, `ContextWindowBar`, `ToolCallCard`, `AgentProfile`,
|
|
689
1161
|
`CommandPalette`, etc. was showing the default arrow cursor instead of
|
|
690
1162
|
the pointing hand. Visual regression observed in TheoKit
|
|
691
|
-
`examples/full-stack-agent` against `@
|
|
1163
|
+
`examples/full-stack-agent` against `@theokit/ui@0.6.1-next.0`.
|
|
692
1164
|
|
|
693
1165
|
### Fixed
|
|
694
1166
|
|
|
@@ -713,7 +1185,7 @@ the pointing hand. Visual regression observed in TheoKit
|
|
|
713
1185
|
accessibility convention. (#TBD)
|
|
714
1186
|
|
|
715
1187
|
The fix is opt-in by consumer choice — they imported
|
|
716
|
-
`@
|
|
1188
|
+
`@theokit/ui/styles.css`. Tailwind v4's global preflight remains
|
|
717
1189
|
untouched; only this stylesheet's `@layer base` adds the rule. (#TBD)
|
|
718
1190
|
|
|
719
1191
|
### Notes
|
|
@@ -726,7 +1198,7 @@ untouched; only this stylesheet's `@layer base` adds the rule. (#TBD)
|
|
|
726
1198
|
# pointing-hand icon (not the default arrow).
|
|
727
1199
|
#
|
|
728
1200
|
# CSS grep test:
|
|
729
|
-
grep -c "button:not(:disabled)" node_modules/@
|
|
1201
|
+
grep -c "button:not(:disabled)" node_modules/@theokit/ui/dist/styles.css
|
|
730
1202
|
# MUST return >= 1 (pre-fix: 0)
|
|
731
1203
|
```
|
|
732
1204
|
|
|
@@ -741,12 +1213,12 @@ the entire library rendered flat under pnpm.
|
|
|
741
1213
|
|
|
742
1214
|
- **pnpm symlink + Tailwind v4 `@source` bug** — Tailwind v4's
|
|
743
1215
|
`tinyglobby`-based scanner does **not** follow symbolic links. Under a
|
|
744
|
-
pnpm install, `node_modules/@
|
|
745
|
-
`node_modules/.pnpm/@
|
|
1216
|
+
pnpm install, `node_modules/@theokit/ui` is a symlink to a deep
|
|
1217
|
+
`node_modules/.pnpm/@theokit+ui@…/node_modules/@theokit/ui` directory,
|
|
746
1218
|
and the consumer-side pattern
|
|
747
|
-
`@source "node_modules/@
|
|
1219
|
+
`@source "node_modules/@theokit/ui/dist/**/*.{js,mjs,cjs}"` (the one
|
|
748
1220
|
the `vite-plugin` previously emitted via the
|
|
749
|
-
`virtual:@
|
|
1221
|
+
`virtual:@theokit/ui/library-sources.css` virtual module) expanded to
|
|
750
1222
|
**zero** matches. Every `hover:bg-muted`, `hover:text-foreground`,
|
|
751
1223
|
`data-[state=active]:…` variant the library's 79 primitives + 41
|
|
752
1224
|
composites use was therefore never emitted into the consumer's CSS,
|
|
@@ -768,7 +1240,7 @@ the entire library rendered flat under pnpm.
|
|
|
768
1240
|
gzipped. This is the canonical Tailwind v4 library pattern used by
|
|
769
1241
|
Radix UI Themes, shadcn/ui pre-compiled, and Mantine v7. (#TBD)
|
|
770
1242
|
- **`dist/styles.css` chains `@import "./components.css"`** at the end,
|
|
771
|
-
so a single `@import "@
|
|
1243
|
+
so a single `@import "@theokit/ui/styles.css"` in the consumer's CSS
|
|
772
1244
|
now transitively pulls in every utility the library uses — zero
|
|
773
1245
|
filesystem scanning required. Consumer-side `@theme` overrides still
|
|
774
1246
|
win via the runtime CSS-var cascade (every utility resolves
|
|
@@ -785,9 +1257,9 @@ the entire library rendered flat under pnpm.
|
|
|
785
1257
|
|
|
786
1258
|
### Changed
|
|
787
1259
|
|
|
788
|
-
- **`@
|
|
789
|
-
`virtual:@
|
|
790
|
-
broken `@source "node_modules/@
|
|
1260
|
+
- **`@theokit/ui/vite-plugin` virtual module** — the
|
|
1261
|
+
`virtual:@theokit/ui/library-sources.css` module no longer emits the
|
|
1262
|
+
broken `@source "node_modules/@theokit/ui/..."` default globs. It is
|
|
791
1263
|
retained for backwards compatibility (TheoKit's earlier integration
|
|
792
1264
|
code may still resolve it) but now emits only an explanatory comment
|
|
793
1265
|
block when no `contentExtra` option is passed. The plugin's primary
|
|
@@ -803,7 +1275,7 @@ the entire library rendered flat under pnpm.
|
|
|
803
1275
|
starter, Mantine v7.
|
|
804
1276
|
- Verification recipe matching TheoKit's reproduction script:
|
|
805
1277
|
```bash
|
|
806
|
-
grep -c "\.hover\\:bg-muted" node_modules/.pnpm/@
|
|
1278
|
+
grep -c "\.hover\\:bg-muted" node_modules/.pnpm/@theokit+ui@*/node_modules/@theokit/ui/dist/components.css
|
|
807
1279
|
# MUST return >= 1 (pre-fix: 0)
|
|
808
1280
|
```
|
|
809
1281
|
|
|
@@ -872,7 +1344,7 @@ branching navigation, and a streaming-safe markdown preprocess.
|
|
|
872
1344
|
|
|
873
1345
|
### Breaking changes
|
|
874
1346
|
|
|
875
|
-
- **`Message` type removed.** `import type { Message } from "@
|
|
1347
|
+
- **`Message` type removed.** `import type { Message } from "@theokit/ui"`
|
|
876
1348
|
now fails — use `UIMessage` instead. TypeScript will hint
|
|
877
1349
|
`Did you mean 'UIMessage'?`.
|
|
878
1350
|
- **`message.content` removed.** Replace every callsite:
|
|
@@ -899,7 +1371,7 @@ branching navigation, and a streaming-safe markdown preprocess.
|
|
|
899
1371
|
`<ChatMessage>` — fold them into custom UI under the message body, or
|
|
900
1372
|
attach via `metadata?: unknown` (consumer-typed) and read from there.
|
|
901
1373
|
- **`./components/primitives/chat-message/`** deleted. Imports must move
|
|
902
|
-
to `./components/composites/chat-message/` (the public `@
|
|
1374
|
+
to `./components/composites/chat-message/` (the public `@theokit/ui`
|
|
903
1375
|
barrel handles this; only relative imports inside the repo need
|
|
904
1376
|
updating).
|
|
905
1377
|
|
|
@@ -939,12 +1411,12 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
|
|
|
939
1411
|
- **`./preset` subpath is now a CSS file.** Tailwind v4 dropped the v3 JS
|
|
940
1412
|
preset format — `theme.extend.colors.{name}` declarations are a no-op for
|
|
941
1413
|
v4. The new `dist/preset.css` simply chains `@import "./tokens.css"` and
|
|
942
|
-
`@import "./tokens-v4.css"` so consumers can `@import "@
|
|
1414
|
+
`@import "./tokens-v4.css"` so consumers can `@import "@theokit/ui/preset.css"`
|
|
943
1415
|
from their own Tailwind v4 entry CSS. (#TBD)
|
|
944
1416
|
|
|
945
1417
|
### Added
|
|
946
1418
|
|
|
947
|
-
- **`@
|
|
1419
|
+
- **`@theokit/ui/tokens-v4.css` (NEW)** — `@theme {}` block declaring 28
|
|
948
1420
|
`--color-*` aliases (full color set), 14 `--text-*` typescale tiers
|
|
949
1421
|
(Violet Forge — `--text-display-2xl` through `--text-code-sm` with companion
|
|
950
1422
|
`--*--line-height`, `--*--letter-spacing`, `--*--font-weight`), 3 `--font-*`
|
|
@@ -953,14 +1425,14 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
|
|
|
953
1425
|
uses `hsl(var(--*))` indirection so `<ThemeProvider>`'s runtime
|
|
954
1426
|
`[data-theme]` cascade keeps working — switching themes still recolors
|
|
955
1427
|
every utility. (#TBD)
|
|
956
|
-
- **`@
|
|
1428
|
+
- **`@theokit/ui/styles-v3-legacy.css` (NEW)** — the previous v3-shaped
|
|
957
1429
|
`@tailwind base/components/utilities` entry. Pinned consumers on
|
|
958
1430
|
`tailwindcss@^3` who still want a prebuilt stylesheet can import this
|
|
959
|
-
subpath. New code SHOULD use `@
|
|
960
|
-
- **`@
|
|
1431
|
+
subpath. New code SHOULD use `@theokit/ui/styles.css` (v4) instead.
|
|
1432
|
+
- **`@theokit/ui/preset-v3-legacy` (NEW)** — the v3 JS `Partial<Config>`
|
|
961
1433
|
preset that previously lived at `./preset`. Renamed so the canonical
|
|
962
1434
|
`./preset` subpath can host the v4 CSS preset. v3 consumers update
|
|
963
|
-
imports from `@
|
|
1435
|
+
imports from `@theokit/ui/preset` to `@theokit/ui/preset-v3-legacy`.
|
|
964
1436
|
- **Dogfood scripts** — `pnpm dogfood:v4-zero-config` (shape check, runs in
|
|
965
1437
|
`quality:gates`) and `pnpm dogfood:v4-real-build` (end-to-end: packs the
|
|
966
1438
|
tarball, installs in a tmp project alongside `@tailwindcss/cli@^4`, runs
|
|
@@ -974,8 +1446,8 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
|
|
|
974
1446
|
|
|
975
1447
|
- **Breaking for any 0.5.0-next.0 consumer.** The `./preset` subpath changed
|
|
976
1448
|
from JS (`Partial<Config>` default-export) to CSS file. Code importing
|
|
977
|
-
`import preset from "@
|
|
978
|
-
`@import "@
|
|
1449
|
+
`import preset from "@theokit/ui/preset"` will break and must migrate to
|
|
1450
|
+
`@import "@theokit/ui/preset.css"` in an entry CSS. Blast radius: TheoKit
|
|
979
1451
|
(already reverted away from 0.5.x by the time this fix shipped) plus any
|
|
980
1452
|
community consumer that adopted 0.5.0-next.0 in the same day — likely zero.
|
|
981
1453
|
- The runtime indirection via `hsl(var(--*))` aliases keeps `<ThemeProvider>`
|
|
@@ -992,31 +1464,31 @@ Zero visual break and no runtime behavior change for existing consumers.
|
|
|
992
1464
|
|
|
993
1465
|
### Added
|
|
994
1466
|
|
|
995
|
-
- **`@
|
|
1467
|
+
- **`@theokit/ui/vite-plugin` (NEW, RFC 0008)** — Default-export factory
|
|
996
1468
|
returning one Vite `Plugin`. The plugin's `config()` hook
|
|
997
1469
|
dynamic-imports `@tailwindcss/vite` v4 and chains it into the
|
|
998
1470
|
consumer's plugin array when resolvable, and degrades to `console.warn`
|
|
999
|
-
+ CSS-only mode (via the pre-built `@
|
|
1471
|
+
+ CSS-only mode (via the pre-built `@theokit/ui/styles.css` subpath)
|
|
1000
1472
|
when the peer is not installed. A virtual module
|
|
1001
|
-
`virtual:@
|
|
1002
|
-
directive covering `node_modules/@
|
|
1473
|
+
`virtual:@theokit/ui/library-sources.css` provides the `@source`
|
|
1474
|
+
directive covering `node_modules/@theokit/ui/dist/**/*.{js,mjs,cjs}`
|
|
1003
1475
|
so Tailwind scans the library's published JS for utilities. Plugin
|
|
1004
|
-
name slug: `@
|
|
1476
|
+
name slug: `@theokit/ui/vite-plugin`. Options: `tailwind?: boolean`
|
|
1005
1477
|
(default `true`), `contentExtra?: string[]` (extra `@source` globs).
|
|
1006
1478
|
(#TBD)
|
|
1007
|
-
- **`@
|
|
1479
|
+
- **`@theokit/ui/preset` (NEW, RFC 0008)** — Default-export Tailwind v4
|
|
1008
1480
|
`Partial<Config>` mirroring the design tokens in `tokens.css`
|
|
1009
1481
|
(colors via `hsl(var(--x) / <alpha-value>)`, font families, the
|
|
1010
1482
|
Violet Forge typescale, radii, shadows, animations, motion timing)
|
|
1011
|
-
with `content` paths covering `./node_modules/@
|
|
1483
|
+
with `content` paths covering `./node_modules/@theokit/ui/dist/**` and
|
|
1012
1484
|
the `tailwindcss-animate` plugin. Consumer usage:
|
|
1013
|
-
`import preset from "@
|
|
1485
|
+
`import preset from "@theokit/ui/preset"; export default { presets: [preset] }`.
|
|
1014
1486
|
Internally delegates to the existing `src/styles/tailwind-preset.ts` —
|
|
1015
1487
|
the v3 shadcn-registry preset and the v4 import preset stay
|
|
1016
1488
|
byte-for-byte aligned and impossible to drift. (#TBD)
|
|
1017
1489
|
- **`@tailwindcss/vite ^4`, `tailwindcss ^4`, `vite ^6 || ^7` peer-deps
|
|
1018
1490
|
(all optional)** — added to `peerDependenciesMeta` so consumers
|
|
1019
|
-
importing `@
|
|
1491
|
+
importing `@theokit/ui` standalone (no framework) are not forced into
|
|
1020
1492
|
Tailwind v4. Required only when consuming via TheoKit's auto-wire path
|
|
1021
1493
|
or the new `./vite-plugin` subpath. (#TBD)
|
|
1022
1494
|
|
|
@@ -1024,7 +1496,7 @@ Zero visual break and no runtime behavior change for existing consumers.
|
|
|
1024
1496
|
|
|
1025
1497
|
- Existing `tailwindcss@^3` consumers continue to work via the shadcn
|
|
1026
1498
|
registry preset (`registry/r/tailwind-preset.json`) and the prebuilt
|
|
1027
|
-
`@
|
|
1499
|
+
`@theokit/ui/styles.css`. The new subpaths are additive — they do not
|
|
1028
1500
|
break v3-based setups.
|
|
1029
1501
|
- The `vite-plugin` returns ONE `Plugin` object (not `Plugin[]`) per the
|
|
1030
1502
|
cross-repo contract with TheoKit's `integrateUseTheoUI()`. The chain
|
|
@@ -1094,10 +1566,10 @@ preserves rendered markup for callers that don't pass `size`.
|
|
|
1094
1566
|
## [0.1.0-next.1] - 2026-05-19
|
|
1095
1567
|
|
|
1096
1568
|
### Added
|
|
1097
|
-
- **Slide rich content — Tier 1 baked-in + Tier 2 plugin system (2026-05-19, RFC 0004)** — Estende `<Slide>` (RFC 0002) e `<SlideDeck>` (RFC 0003) com conteúdo rico nível PowerPoint sem reinventar parsers. **Tier 1 (zero peer-deps novas):** (a) GFM alerts `> [!NOTE/TIP/IMPORTANT/WARNING/CAUTION]` detectados em mdast post-process (alerts.ts) → `<aside class="theo-slide-alert" data-theo-slide-alert-type>` temado em ambos os themes (default + violet-forge); (b) 7 layouts via frontmatter `layout` (`default`, `title`, `two-column`, `image-right`, `image-left`, `code-output`, `section`) em CSS grid templates (themes/layouts.css importado pelos dois themes); (c) backgroundImage + backgroundGradient com `sanitizeBgUrl` rejeitando `javascript:`/`vbscript:`/TODO data: URLs (EC-7), cap 500_000 chars; (d) Marpit `` syntax extraído em mdast walker → `ParsedSlide.extractedBackground = { url, modifier }` (D18/EC-5), sanitizado antes de armazenar com fallback `MARPIT_BG_UNSAFE_URL`, modifier-aware (`cover`/`fit`/`left`/`right`); (e) header/footer/paginate overlays via frontmatter (plain text ≤200 chars cada), CSS absolute positioned. **Tier 2 (opt-in plugin system):** plugin architecture com `<Slide plugins={SlidePlugin[]}>` e relay `<SlideDeck plugins>` para cada slide interno. `SlidePlugin` shape: `{ name, mdastTransform?, hastTransform?, components?, sanitizeSchemaExtension? }` com error isolation D16 (cada chamada em try/catch, throws agregadas em `errors[]` com `code: "PLUGIN_ERROR"`; pipeline **nunca** propaga exception) e sanitize-schema merge D17 (extensions unionadas com defaultSchema + Tier 1 baseline). Quatro plugins shipados em sub-subpaths `@
|
|
1098
|
-
- **SlideDeck composite engine — multi-slide deck w/ navigation, presenter, fullscreen, PDF (2026-05-19)** — `@
|
|
1099
|
-
- **Slide engine — view-only primitive funcional (2026-05-19)** — `@
|
|
1100
|
-
- **Whiteboard engine — view-only primitive funcional (2026-05-18)** — `@
|
|
1569
|
+
- **Slide rich content — Tier 1 baked-in + Tier 2 plugin system (2026-05-19, RFC 0004)** — Estende `<Slide>` (RFC 0002) e `<SlideDeck>` (RFC 0003) com conteúdo rico nível PowerPoint sem reinventar parsers. **Tier 1 (zero peer-deps novas):** (a) GFM alerts `> [!NOTE/TIP/IMPORTANT/WARNING/CAUTION]` detectados em mdast post-process (alerts.ts) → `<aside class="theo-slide-alert" data-theo-slide-alert-type>` temado em ambos os themes (default + violet-forge); (b) 7 layouts via frontmatter `layout` (`default`, `title`, `two-column`, `image-right`, `image-left`, `code-output`, `section`) em CSS grid templates (themes/layouts.css importado pelos dois themes); (c) backgroundImage + backgroundGradient com `sanitizeBgUrl` rejeitando `javascript:`/`vbscript:`/TODO data: URLs (EC-7), cap 500_000 chars; (d) Marpit `` syntax extraído em mdast walker → `ParsedSlide.extractedBackground = { url, modifier }` (D18/EC-5), sanitizado antes de armazenar com fallback `MARPIT_BG_UNSAFE_URL`, modifier-aware (`cover`/`fit`/`left`/`right`); (e) header/footer/paginate overlays via frontmatter (plain text ≤200 chars cada), CSS absolute positioned. **Tier 2 (opt-in plugin system):** plugin architecture com `<Slide plugins={SlidePlugin[]}>` e relay `<SlideDeck plugins>` para cada slide interno. `SlidePlugin` shape: `{ name, mdastTransform?, hastTransform?, components?, sanitizeSchemaExtension? }` com error isolation D16 (cada chamada em try/catch, throws agregadas em `errors[]` com `code: "PLUGIN_ERROR"`; pipeline **nunca** propaga exception) e sanitize-schema merge D17 (extensions unionadas com defaultSchema + Tier 1 baseline). Quatro plugins shipados em sub-subpaths `@theokit/ui/slide/plugins/{shiki,math,mermaid,emoji}`: **shikiPlugin** (peer-dep `shiki`; lazy + singleton highlighter; pre-renderiza `<pre><code class="language-XXX">` em HTML temado dual-theme com sanitize ext `<span> style/className`); **mathPlugin** (peer-deps `katex` + `hast-util-from-html`; substitui `$inline$` + `$$block$$` por KaTeX displayMode/inline; skip em `<code>`/`<pre>`; sanitize ext com lista completa de ≥30 tags MathML — `math`, `mfrac`, `msqrt`, `msup`, `msub`, `msubsup`, `munder`, `mover`, `mtable`, `mtr`, `mtd`, `mphantom`, `mstyle`, `annotation`, etc. — EC-4); **mermaidPlugin** (peer-dep `mermaid`; converte `<pre><code class="language-mermaid">` em `<theo-mermaid source>` com React `<MermaidDiagram>` que lazy-importa mermaid e injeta SVG via innerHTML; SSR placeholder distinguível de erro com `role="img"` + source code preservado, EC-10; sanitize ext com ≥30 tags SVG — `svg`, `g`, `path`, `rect`, `circle`, `text`, `marker`, `foreignObject`, etc. — EC-4); **emojiPlugin** (zero peer-deps de runtime, usa `unist-util-visit-parents` já no stack; 100 shortcodes Unicode embedded; **EC-6: ancestor check** via `isInsideCodeOrPre` skipa replace dentro de `<code>`/`<pre>` para preservar type hints Python / YAML keys / Ruby symbols). Pipeline order: `validateSlide → parseBody → detectAlerts (Tier 1) → extractMarpitBackgrounds (Tier 1) → plugin.mdastTransform[] → mdastToHast → plugin.hastTransform[] → sanitize(defaultSchema + extensions) → hastToReact (consumer + plugin components)`. Bundle isolation invariant preservada: barrel `dist/index.js` **inalterado**; cada plugin é entry tsup próprio com peer-deps externalizados. `scripts/sync-exports.ts` ganha 4 entries em `ISOLATED_SUBPATHS`. `package.json` ganha 9 peer-deps opcionais (`shiki`, `katex`, `mermaid`, `micromark-extension-math`, `mdast-util-math`, `hast-util-from-html`, `unist-util-visit`, `unist-util-visit-parents`). RFC `docs/rfcs/0004-slide-rich-content.md` status `Implemented`. **128 testes novos** distribuídos em 13 phases (T0.1 plugin contract: 13 testes; T0.2 parseSlide integration: 11 testes; T1.1 alerts: 8 testes; T2/T3/T5 schema: 25 testes; T4.1 Marpit bg: 9 testes; T6.1 Shiki: 6 testes; T7.1 Math: 7 testes; T8.1 Mermaid: 7 testes; T9.1 Emoji: 10 testes; Slide component: 32 testes). Suite total: 1174 testes verdes. Codes de erro novos: `PLUGIN_ERROR`, `PLUGIN_PEER_DEP_MISSING`, `MARPIT_BG_UNSAFE_URL`. (#TBD)
|
|
1570
|
+
- **SlideDeck composite engine — multi-slide deck w/ navigation, presenter, fullscreen, PDF (2026-05-19)** — `@theokit/ui/slide-deck` agora orquestra N `<Slide>` primitives com navegação completa: keyboard (←/→/Space/Home/End/Esc/F/N/Ctrl+P, com guard contra inputs/contentEditable), touch swipe (Pointer Events nativos, multi-touch filtrado, pointercancel limpo — EC-6/EC-7), hash routing bidirectional (`#/N` 1-based, via `history.replaceState` para evitar loop — EC-10), lazy initializer SSR-safe (D17/EC-5). Sub-componentes em namespace dot: `<SlideDeck.Slides>` `<SlideDeck.Controls>` `<SlideDeck.ProgressBar>` `<SlideDeck.SlideNumber>` `<SlideDeck.Thumbnails>` (IntersectionObserver lazy + EC-13 fallback) `<SlideDeck.PresenterView>` (inline panel com timer + speaker notes) `<SlideDeck.FullscreenButton>` (cross-browser API + EC-8 iOS guard) `<SlideDeck.PrintButton>` (window.print + `@page` CSS, afterprint cleanup). Transitions CSS-only (`none`/`fade`/`slide`) com timeout fallback 300ms (D16/EC-3) e respeito a `prefers-reduced-motion`. Progressive fragments via Marpit-style `*` lists (D12, contagem por regex anti-falsos-positivos em `**bold**` ou fenced code). Speaker notes via `<!-- notes: ... -->` HTML comments (D11). Aceita `slides: string | SlideDeckSlide[]` (D4); split string via mdast `thematicBreak` reusando algoritmo do Slide D12 + strip global frontmatter primeiro (D15/EC-1 — evita phantom empty slide). `useReducer` state machine com `UPDATE_TOTAL_SLIDES` que clampa `currentIndex` (EC-4). Zero peer-deps novas — reusa as 7 do Slide. Bundle isolado em `dist/slide-deck/index.js` (~48 KB com Slide vendored); barrel principal `dist/index.js` **inalterado**. RFC `docs/rfcs/0003-slide-deck.md` status `Implemented`. 160 testes específicos do SlideDeck verdes. Stories Ladle: `DefaultDeck`, `WithGfmTable`, `WithSpeakerNotes`, `WithFragments`, `WithFadeTransition`, `WithSlideTransition`, `HashRouting`, `HeadlessLayout`, `WithThumbnails`, `PresenterModeOn`, `LargeDeck` (50 slides), `EmptyDeck`, `SingleSlideDeck`, `ControlledNavigation`. (#TBD)
|
|
1571
|
+
- **Slide engine — view-only primitive funcional (2026-05-19)** — `@theokit/ui/slide` agora renderiza markdown + frontmatter YAML como surface temada com canvas lógico fixo (default 16:9 → 1280×720), espelhando o padrão de bundle isolado entregue pelo Whiteboard. Pipeline: `validateSlide` (async — D11) → `parseBody` (micromark + GFM) → `mdastToHast` (`allowDangerousHtml: false`) → `sanitizeHast` (`defaultSchema` sem extensões — D8, com diff de tag-count que emite `BANNED_TAG` — D13) → `hastToReact` (real React VDOM via `hast-util-to-jsx-runtime` — D9, **sem `dangerouslySetInnerHTML`**). Frontmatter YAML único (sem HTML comment syntax do Marpit — D4), validado com Zod `.strict()` (4 keys aceitos: `theme`, `lang`, `color`, `backgroundColor`). Multi-slide input (top-level `---` detectado via mdast `thematicBreak` — D12, sem false-positive em fenced code blocks) emite `MULTIPLE_SLIDES` e renderiza somente o primeiro slide. Input guards (D14): BOM strip, `aspectRatio` inválido → fallback 16:9 + `INVALID_ASPECT_RATIO`, raw frontmatter > 10 KB → `FRONTMATTER_TOO_LARGE`. Container fit (D7) via `useSlideFit` hook (algoritmo Reveal.js: `scale = clamp(min(W/cw, H/ch), minScale, maxScale)` em `ResizeObserver` callback). Dois temas built-in (`default`, `violet-forge`) via CSS variables `--theo-slide-*` layered sobre Violet Forge tokens, com `light-dark()` para dark mode automático. A11y: `<section role="region" aria-roledescription="slide" aria-label>`. Race-resistant re-parse via `versionRef` counter (EC-7). 7 markdown peer-deps são **opcionais**: `mdast-util-from-markdown`, `mdast-util-gfm`, `micromark-extension-gfm`, `mdast-util-to-hast`, `hast-util-sanitize`, `hast-util-to-jsx-runtime`, `yaml`. Bundle isolado em `dist/slide/index.js`; barrel principal `dist/index.js` **inalterado**. RFC `docs/rfcs/0002-slide.md` status `Implemented`. 12 Ladle stories: `HappyPath`, `GfmTable`, `WithFrontmatter`, `VioletForgeTheme`, `AspectFourByThree`, `MultiSlideTruncated`, `MalformedFrontmatter`, `BannedScript`, `LongContent`, `CustomComponents`, `SmallContainer`, `LargeContainer`. (#TBD)
|
|
1572
|
+
- **Whiteboard engine — view-only primitive funcional (2026-05-18)** — `@theokit/ui/whiteboard` agora renderiza JSON declarativo (`WhiteboardData`) como SVG com estética hand-drawn estilo Excalidraw. **Sete tipos** de elemento suportados: `rect`, `ellipse`, `diamond`, `line`, `arrow`, `text`, `freedraw`. **Pan + zoom built-in** via `viewBox` (wheel = zoom-to-cursor, mouse drag = pan, Space = hand mode, pinch touch supported). **Prop `fitOnLoad`** centra automaticamente os elementos na viewport. Schema Zod com clamps de sanidade (EC-3 `.finite()` rejeita NaN/Infinity; EC-4 `.max(20000)` em dimensões; `.max(500)` em labels; `.max(5000)` em text e points/elements). `<Whiteboard>` valida JSON em `useMemo`, dispara `onValidationError` em `useEffect` (EC-6 — nunca durante render), e cai em SVG vazio com `data-whiteboard-state="invalid"` quando o JSON falha. SSR-safe (`renderToString` produz markup estático correto). `roughjs` + `perfect-freehand` são peer-deps **opcionais**; `zod` entra em `dependencies` regulares (EC-5 opção A). Bundle isolado em `dist/whiteboard/index.js` (21.53KB ESM); barrel principal `dist/index.js` **inalterado** (320.41KB). RFC `docs/rfcs/0001-whiteboard.md` status `Implemented`. 86 testes específicos do Whiteboard verdes + 776 testes totais do projeto. Stories Ladle: `Empty`, `Flowchart`, `Architecture`, `FreedrawSketch`, `MixedAll`, `InvalidJSON`. (#TBD)
|
|
1101
1573
|
- **`scripts/validate-bundle-size.ts` ganha gate EC-1 anti-leak** — Após o check de tamanho, faz `grep` em `dist/index.js` por strings `roughjs` e `perfect-freehand`; falha o build se qualquer engine peer-dep aparecer no barrel. Previne regressões silenciosas onde uma engine vaze para o barrel principal e arraste KBs extras para todos os consumers, mesmo os que só usam shadcn primitives. Runtime-metric proof: `grep -c "roughjs\\|perfect-freehand" dist/index.js → 0` confirmado em 2026-05-18. (#TBD)
|
|
1102
1574
|
- **`scripts/sync-exports.ts` ganha `ISOLATED_SUBPATHS`** — novo array de overrides para subpaths que devem apontar para `dist/<engine>/index.js` próprio, não re-export do barrel. Detecta colisão com auto-scanned subpaths e lança Error explícito. Suporta a regra de bundle isolation por engine declarada em `CLAUDE.md > Roadmap`. Cobertura via novo `scripts/sync-exports.test.ts` (6 testes). (#TBD)
|
|
1103
1575
|
- **`tsup.config.ts` ganha multi-entry** — `entry` agora é objeto com `index` (barrel) + `whiteboard/index` (engine). External list inclui `roughjs`, `/^roughjs\//` e `perfect-freehand` para garantir que o engine bundle não vendoriza essas libs e o barrel não vaza. Build produz `dist/whiteboard/index.{js,d.ts}` ao lado de `dist/index.{js,d.ts}` sem afetar tamanho do barrel. (#TBD)
|
|
@@ -1108,7 +1580,7 @@ preserves rendered markup for callers that don't pass `size`.
|
|
|
1108
1580
|
## [0.1.0-next.0] - 2026-05-16
|
|
1109
1581
|
|
|
1110
1582
|
First public pre-release on npm under the `next` dist-tag. Install with
|
|
1111
|
-
`pnpm add @
|
|
1583
|
+
`pnpm add @theokit/ui@next` (the default `latest` tag is intentionally
|
|
1112
1584
|
unset until 1.0). Highlights from the agent-team-audit-fixes-2026-05-16
|
|
1113
1585
|
remediation sprint:
|
|
1114
1586
|
|
|
@@ -1130,15 +1602,15 @@ remediation sprint:
|
|
|
1130
1602
|
- **Migration**:
|
|
1131
1603
|
```tsx
|
|
1132
1604
|
// Before
|
|
1133
|
-
import { ThemeProvider } from "@
|
|
1605
|
+
import { ThemeProvider } from "@theokit/ui";
|
|
1134
1606
|
<ThemeProvider>...</ThemeProvider>
|
|
1135
1607
|
|
|
1136
1608
|
// After — option A (recommended for parity with old behavior)
|
|
1137
|
-
import { ThemeProvider, builtinThemes } from "@
|
|
1609
|
+
import { ThemeProvider, builtinThemes } from "@theokit/ui";
|
|
1138
1610
|
<ThemeProvider themes={builtinThemes}>...</ThemeProvider>
|
|
1139
1611
|
|
|
1140
1612
|
// After — option B (new in v0.1.0-next.0)
|
|
1141
|
-
import { TheoUIProvider } from "@
|
|
1613
|
+
import { TheoUIProvider } from "@theokit/ui";
|
|
1142
1614
|
<TheoUIProvider>...</TheoUIProvider>
|
|
1143
1615
|
```
|
|
1144
1616
|
- **Why this is acceptable pre-1.0**: package is `0.0.0` and never published; first public release will be `0.1.0-next.0`. No external consumers exist yet (validated via `npm view`).
|
|
@@ -1153,22 +1625,22 @@ remediation sprint:
|
|
|
1153
1625
|
- **`scripts/validate-registry.ts`** — `targetToItemName` reverse map resolves `@/components/ui/<target>` imports to the registry item that ships that file (fix for multi-file items like `toast` which ships `toaster.tsx`).
|
|
1154
1626
|
|
|
1155
1627
|
### Documentation (Agent-team audit fixes, 2026-05-16)
|
|
1156
|
-
- **`PITCH.md`** — removed false claim that `npx create-theokit my-app` already imports `@
|
|
1628
|
+
- **`PITCH.md`** — removed false claim that `npx create-theokit my-app` already imports `@theokit/ui` when picking the dashboard template (verified via `grep -r "@theokit/ui" /home/paulo/Projetos/usetheo/theokit/` returning zero matches). Replaced with honest "TheoKit integration is on the roadmap." Aligned tertiary CTAs with reality (substituted dead `docs.usetheo.dev/ui` with GitHub anchor).
|
|
1157
1629
|
- **`README.md`** — updated `pnpm quality:gates` pipeline listing to match `package.json#scripts['quality:gates']` exactly: now lists 11 gates (`format:check` → `lint:ci` → `typecheck` → `test` → `build` → `registry:build` → `registry:validate` → `quality:structure` → `quality:bundle` → `quality:a11y` → `ladle:build`). Previous text omitted `quality:bundle` and `quality:a11y`.
|
|
1158
1630
|
- **CHANGELOG correction** — earlier entry under "Phase 3 — Build correctness + exports surface" stated `validateExportsMap` "locks `package.json#exports` to the canonical 5-entry set". Since commit `77b2f7a` (`feat(exports): subpath import for every component`) the strategy expanded to 107+ subpath entries generated by `scripts/sync-exports.ts`. Authoritative source is `package.json` itself. Prior entries in versioned releases stay immutable per Keep a Changelog; this correction lives in `[Unreleased]`.
|
|
1159
1631
|
|
|
1160
1632
|
### Added (Pitch + Voice and Tone formalization, 2026-05-15)
|
|
1161
|
-
- **`PITCH.md`** at project root — landing-page copy for `@
|
|
1162
|
-
- **`CLAUDE.md`** at project root — contract between Claude and this project. Defines what TheoUI is, the locked names (npm package, theme names, registry endpoint, module format, component taxonomy), the Voice and Tone section that formalizes adoption of the TheoKit aspirational voice for public copy (strategic review dated 2026-05-15), the relationship to the other
|
|
1633
|
+
- **`PITCH.md`** at project root — landing-page copy for `@theokit/ui` (Violet Forge) using the TheoKit aspirational voice. Three layers: HERO (no jargon), BODY (benefit-first with one technical anchor per item), DEEP DIVE (full technical vocabulary, after the `## How it works` delimiter). Companion to `README.md` for marketing surfaces; verified component counts and quality metrics against `README.md` and `src/`.
|
|
1634
|
+
- **`CLAUDE.md`** at project root — contract between Claude and this project. Defines what TheoUI is, the locked names (npm package, theme names, registry endpoint, module format, component taxonomy), the Voice and Tone section that formalizes adoption of the TheoKit aspirational voice for public copy (strategic review dated 2026-05-15), the relationship to the other Theo pillars (Harness, Skills, Runtime), and the quality-gate non-bypass rule.
|
|
1163
1635
|
|
|
1164
1636
|
### Changed (Cross-project, 2026-05-15)
|
|
1165
1637
|
- Root monorepo `CLAUDE.md` (`../CLAUDE.md`) `## Voice and Tone — sub-project scoped` section: TheoUI moved from the "technical-direct only" list to the aspirational-voice list, alongside TheoKit and TheoKit-SDK. Rationale captured inline (TheoUI is the visual surface every other product inherits from; benefits from outcome-shaped framing on landing copy).
|
|
1166
1638
|
- Root monorepo sub-project index: `theo-ui` "Read first" pointer updated from `theo-ui/README.md` to `theo-ui/CLAUDE.md` (was a fallback because no `CLAUDE.md` existed in this project until today).
|
|
1167
1639
|
|
|
1168
1640
|
### Changed (README alignment with PITCH, 2026-05-15)
|
|
1169
|
-
- `README.md` HERO + BODY layers rewritten in the TheoKit aspirational voice to match `PITCH.md`. New h1: *"The UI your agent already needs."* Tagline calls out the 102 agent-shaped components. `@
|
|
1170
|
-
- Added `## The shift` storytelling block between the HERO and `## Why @
|
|
1171
|
-
- `## Why @
|
|
1641
|
+
- `README.md` HERO + BODY layers rewritten in the TheoKit aspirational voice to match `PITCH.md`. New h1: *"The UI your agent already needs."* Tagline calls out the 102 agent-shaped components. `@theokit/ui` demoted from h1 to a small tag above it (discoverability preserved without dominating the HERO).
|
|
1642
|
+
- Added `## The shift` storytelling block between the HERO and `## Why @theokit/ui`.
|
|
1643
|
+
- `## Why @theokit/ui` now closes with the comparison table from `PITCH.md` (`@theokit/ui` vs shadcn/Radix, Tremor, build-yourself) and the punch line *"Same Radix UI underneath as shadcn — no philosophy fight. We just shipped the next 102 components you were about to write."*
|
|
1172
1644
|
- Added `## What you'd build` (5 concrete surfaces) before `## Quickstart`.
|
|
1173
1645
|
- Added `## How it works` DEEP DIVE delimiter before `## Quickstart`; everything from there downward stays technical-direct.
|
|
1174
1646
|
- Quickstart code sample swapped from a generic `<Button>` example to `<AgentEvent>` + `<ToolCall>` + `<DeploymentRow>` — agent-shaped primitives nobody else ships.
|
|
@@ -1223,8 +1695,8 @@ remediation sprint:
|
|
|
1223
1695
|
|
|
1224
1696
|
### Changed (HIGH-002 / T4.1 — self-hosted fonts as default)
|
|
1225
1697
|
- **`src/styles/fonts.css` no longer `@import`s from `fonts.googleapis.com`.** Now declares six `@font-face` rules pointing at `./fonts/geist-{400,500,600}.woff2` and `./fonts/geist-mono-{400,500,600}.woff2`. Total asset budget: ~290 KB of woff2 next to the CSS. Eliminates the render-blocking third-party fetch that previously hit `fonts.googleapis.com` on every cold page load — fixes GDPR / CSP friction for the enterprise audience.
|
|
1226
|
-
- `src/styles/fonts-cdn.css` (NEW) — opt-in entrypoint that preserves the legacy Google Fonts CDN behavior. Consumers who prefer not to host static assets can `@import "@
|
|
1227
|
-
- `tsup.config.ts` `onSuccess` now also copies `src/styles/fonts/*.woff2` → `dist/fonts/` and `src/styles/fonts-cdn.css` → `dist/fonts-cdn.css`. The relative URLs in `fonts.css` (`./fonts/geist-400.woff2`) resolve correctly inside `node_modules/@
|
|
1698
|
+
- `src/styles/fonts-cdn.css` (NEW) — opt-in entrypoint that preserves the legacy Google Fonts CDN behavior. Consumers who prefer not to host static assets can `@import "@theokit/ui/fonts-cdn.css"` instead of `@theokit/ui/fonts.css` / `@theokit/ui/styles.css`.
|
|
1699
|
+
- `tsup.config.ts` `onSuccess` now also copies `src/styles/fonts/*.woff2` → `dist/fonts/` and `src/styles/fonts-cdn.css` → `dist/fonts-cdn.css`. The relative URLs in `fonts.css` (`./fonts/geist-400.woff2`) resolve correctly inside `node_modules/@theokit/ui/dist/`.
|
|
1228
1700
|
- Geist OFL license shipped at `src/styles/fonts/LICENSE-GEIST.txt` → `dist/fonts/LICENSE-GEIST.txt`. Apache-2.0 + OFL is a clean dual-license combination.
|
|
1229
1701
|
- New `geist` devDependency: used only as the source of woff2 artifacts at install time; not bundled into `dist/index.js`.
|
|
1230
1702
|
- `validateDocsTypography` now asserts that `src/styles/fonts.css` contains `@font-face` and does NOT `@import` from `fonts.googleapis.com`, and that `src/styles/fonts-cdn.css` exists.
|
|
@@ -1239,7 +1711,7 @@ remediation sprint:
|
|
|
1239
1711
|
- `.ladle/generated/welcome.stats.ts` — `welcome.stats.ts` moved out of `src/` (HIGH-003 / T3.3). `sync-readme.ts` writes to the new path; `validateCountConsistency` reads from it. The file no longer ships in the npm tarball.
|
|
1240
1712
|
|
|
1241
1713
|
### Breaking
|
|
1242
|
-
- **Reclassification of 7 components from `primitives/` to `composites/`** (BLOCKER-001 remediation, D2): `AgentEditor`, `RuleEditor`, `SkillEditor`, `ApprovalCard`, `CronJobsList`, `SkillsList`, `MCPServerList`. Each value-imported one or more sibling primitives, which violated the mechanical taxonomy rule in `docs/architecture.md`. They are composites by every reasonable definition (FormField+Input+Button = composite; list-of-card = composite). Public barrel (`@
|
|
1714
|
+
- **Reclassification of 7 components from `primitives/` to `composites/`** (BLOCKER-001 remediation, D2): `AgentEditor`, `RuleEditor`, `SkillEditor`, `ApprovalCard`, `CronJobsList`, `SkillsList`, `MCPServerList`. Each value-imported one or more sibling primitives, which violated the mechanical taxonomy rule in `docs/architecture.md`. They are composites by every reasonable definition (FormField+Input+Button = composite; list-of-card = composite). Public barrel (`@theokit/ui`) is unchanged — named exports preserved. Registry consumers via `npx shadcn add`: `type` changed from `registry:ui` to `registry:block` and `target` from `components/ui/<name>` to `components/blocks/<name>`. Migration: re-run `npx shadcn add <name>` to relocate the file, or rename the import path manually.
|
|
1243
1715
|
- **`form-field` now imports `@radix-ui/react-label` directly** (BLOCKER-001 / D2 exception). Previously imported the sibling `Label` primitive. `form-field.tsx` now inlines the same Radix LabelPrimitive + identical Tailwind tokens. Visual parity preserved. `registry/form-field.json` adds `@radix-ui/react-label` to `dependencies` and removes `label` from `registryDependencies`.
|
|
1244
1716
|
|
|
1245
1717
|
### Fixed
|