@usetheo/ui 0.12.0 → 0.13.1
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 +634 -68
- package/DESIGN.md +18 -18
- package/NOTICE +2 -2
- package/README.md +69 -66
- 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-2A3E5Y72.js +165 -0
- package/dist/chunk-2A3E5Y72.js.map +1 -0
- package/dist/chunk-2EUKYGH5.js +98 -0
- package/dist/chunk-2EUKYGH5.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-3ZXZGZOX.js +57 -0
- package/dist/chunk-3ZXZGZOX.js.map +1 -0
- package/dist/chunk-45FWKR23.js +62 -0
- package/dist/chunk-45FWKR23.js.map +1 -0
- package/dist/chunk-4DTLUBRW.js +122 -0
- package/dist/chunk-4DTLUBRW.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-4SMYNLTA.js +83 -0
- package/dist/chunk-4SMYNLTA.js.map +1 -0
- package/dist/chunk-4UBFLXS3.js +35 -0
- package/dist/chunk-4UBFLXS3.js.map +1 -0
- package/dist/chunk-52J7SDYH.js +48 -0
- package/dist/chunk-52J7SDYH.js.map +1 -0
- package/dist/chunk-5XCTTXC3.js +180 -0
- package/dist/chunk-5XCTTXC3.js.map +1 -0
- package/dist/chunk-624AATQZ.js +77 -0
- package/dist/chunk-624AATQZ.js.map +1 -0
- package/dist/chunk-6IODJQWC.js +47 -0
- package/dist/chunk-6IODJQWC.js.map +1 -0
- package/dist/chunk-75IDWFYX.js +134 -0
- package/dist/chunk-75IDWFYX.js.map +1 -0
- package/dist/chunk-7BGCWJQR.js +113 -0
- package/dist/chunk-7BGCWJQR.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-7T4NK6W6.js +192 -0
- package/dist/chunk-7T4NK6W6.js.map +1 -0
- package/dist/chunk-A3OU6ICP.js +91 -0
- package/dist/chunk-A3OU6ICP.js.map +1 -0
- package/dist/chunk-ABBXLAJW.js +74 -0
- package/dist/chunk-ABBXLAJW.js.map +1 -0
- package/dist/chunk-AENNHS3S.js +83 -0
- package/dist/chunk-AENNHS3S.js.map +1 -0
- package/dist/chunk-AXNJFBYX.js +136 -0
- package/dist/chunk-AXNJFBYX.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-BE232OKN.js +42 -0
- package/dist/chunk-BE232OKN.js.map +1 -0
- package/dist/chunk-BP4RQSX7.js +200 -0
- package/dist/chunk-BP4RQSX7.js.map +1 -0
- package/dist/chunk-BPJ3RN3U.js +112 -0
- package/dist/chunk-BPJ3RN3U.js.map +1 -0
- package/dist/chunk-BSF4Y4UT.js +77 -0
- package/dist/chunk-BSF4Y4UT.js.map +1 -0
- package/dist/chunk-BWIDDAR7.js +86 -0
- package/dist/chunk-BWIDDAR7.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-CED2LKHI.js +117 -0
- package/dist/chunk-CED2LKHI.js.map +1 -0
- package/dist/chunk-CGWIOIEO.js +27 -0
- package/dist/chunk-CGWIOIEO.js.map +1 -0
- package/dist/chunk-CSEGVTKO.js +110 -0
- package/dist/chunk-CSEGVTKO.js.map +1 -0
- package/dist/chunk-CVFSNA4K.js +716 -0
- package/dist/chunk-CVFSNA4K.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-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-FJZKA2LV.js +165 -0
- package/dist/chunk-FJZKA2LV.js.map +1 -0
- package/dist/chunk-G2WCT6PJ.js +69 -0
- package/dist/chunk-G2WCT6PJ.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-GIXHBTHH.js +59 -0
- package/dist/chunk-GIXHBTHH.js.map +1 -0
- package/dist/chunk-GLEOUWPN.js +108 -0
- package/dist/chunk-GLEOUWPN.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-H5QPJNVD.js +98 -0
- package/dist/chunk-H5QPJNVD.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-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-JFKBFQA5.js +129 -0
- package/dist/chunk-JFKBFQA5.js.map +1 -0
- package/dist/chunk-JIZKW3WC.js +74 -0
- package/dist/chunk-JIZKW3WC.js.map +1 -0
- package/dist/chunk-JQTCCKZA.js +154 -0
- package/dist/chunk-JQTCCKZA.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-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-K72DJOXR.js +81 -0
- package/dist/chunk-K72DJOXR.js.map +1 -0
- package/dist/chunk-KDE3NYTI.js +144 -0
- package/dist/chunk-KDE3NYTI.js.map +1 -0
- package/dist/chunk-KFUFTZLS.js +111 -0
- package/dist/chunk-KFUFTZLS.js.map +1 -0
- package/dist/chunk-KHBXI6AV.js +149 -0
- package/dist/chunk-KHBXI6AV.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-MXB2GVEQ.js +57 -0
- package/dist/chunk-MXB2GVEQ.js.map +1 -0
- package/dist/chunk-NEMXW2LB.js +102 -0
- package/dist/chunk-NEMXW2LB.js.map +1 -0
- package/dist/chunk-OJPPSJMF.js +65 -0
- package/dist/chunk-OJPPSJMF.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-P44UAK45.js +115 -0
- package/dist/chunk-P44UAK45.js.map +1 -0
- package/dist/chunk-PJUP4BJD.js +116 -0
- package/dist/chunk-PJUP4BJD.js.map +1 -0
- package/dist/chunk-PJWYIOY4.js +3 -0
- package/dist/chunk-PJWYIOY4.js.map +1 -0
- package/dist/chunk-PVCW4O37.js +147 -0
- package/dist/chunk-PVCW4O37.js.map +1 -0
- package/dist/chunk-PXT47DRZ.js +59 -0
- package/dist/chunk-PXT47DRZ.js.map +1 -0
- package/dist/chunk-PZGUZHI7.js +142 -0
- package/dist/chunk-PZGUZHI7.js.map +1 -0
- package/dist/chunk-Q2BAL2PF.js +965 -0
- package/dist/chunk-Q2BAL2PF.js.map +1 -0
- package/dist/chunk-QBUTRD2M.js +58 -0
- package/dist/chunk-QBUTRD2M.js.map +1 -0
- package/dist/chunk-QCQTTOMD.js +236 -0
- package/dist/chunk-QCQTTOMD.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-QRXIYPWP.js +121 -0
- package/dist/chunk-QRXIYPWP.js.map +1 -0
- package/dist/chunk-QV4BQRNH.js +29 -0
- package/dist/chunk-QV4BQRNH.js.map +1 -0
- package/dist/chunk-REFY5MLN.js +212 -0
- package/dist/chunk-REFY5MLN.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-RLWULF5B.js +113 -0
- package/dist/chunk-RLWULF5B.js.map +1 -0
- package/dist/chunk-RPZMFGYI.js +31 -0
- package/dist/chunk-RPZMFGYI.js.map +1 -0
- package/dist/chunk-RQT5DWGG.js +34 -0
- package/dist/chunk-RQT5DWGG.js.map +1 -0
- package/dist/chunk-SBKVVVYY.js +89 -0
- package/dist/chunk-SBKVVVYY.js.map +1 -0
- package/dist/chunk-SOJW47EZ.js +70 -0
- package/dist/chunk-SOJW47EZ.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-TJLULCZW.js +108 -0
- package/dist/chunk-TJLULCZW.js.map +1 -0
- package/dist/chunk-TY6NTWN5.js +29 -0
- package/dist/chunk-TY6NTWN5.js.map +1 -0
- package/dist/chunk-U3AEEFVB.js +152 -0
- package/dist/chunk-U3AEEFVB.js.map +1 -0
- package/dist/chunk-V3HFDVZ3.js +102 -0
- package/dist/chunk-V3HFDVZ3.js.map +1 -0
- package/dist/chunk-V6H2RUVP.js +77 -0
- package/dist/chunk-V6H2RUVP.js.map +1 -0
- package/dist/chunk-VB53UMAL.js +106 -0
- package/dist/chunk-VB53UMAL.js.map +1 -0
- package/dist/chunk-VBEMLZGX.js +86 -0
- package/dist/chunk-VBEMLZGX.js.map +1 -0
- package/dist/chunk-VBQFE5RV.js +92 -0
- package/dist/chunk-VBQFE5RV.js.map +1 -0
- package/dist/chunk-VHK2OUCW.js +38 -0
- package/dist/chunk-VHK2OUCW.js.map +1 -0
- package/dist/chunk-VHTAVROO.js +53 -0
- package/dist/chunk-VHTAVROO.js.map +1 -0
- package/dist/chunk-VZX4HLBM.js +84 -0
- package/dist/chunk-VZX4HLBM.js.map +1 -0
- package/dist/chunk-W47V2F3Q.js +115 -0
- package/dist/chunk-W47V2F3Q.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-XC7SYZYR.js +86 -0
- package/dist/chunk-XC7SYZYR.js.map +1 -0
- package/dist/chunk-XJA4B3F5.js +68 -0
- package/dist/chunk-XJA4B3F5.js.map +1 -0
- package/dist/chunk-XSENM65D.js +128 -0
- package/dist/chunk-XSENM65D.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-YES6SPDT.js +55 -0
- package/dist/chunk-YES6SPDT.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-YUFFAWNB.js +90 -0
- package/dist/chunk-YUFFAWNB.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-ZAMPCRFJ.js +121 -0
- package/dist/chunk-ZAMPCRFJ.js.map +1 -0
- package/dist/chunk-ZEFOXF2I.js +87 -0
- package/dist/chunk-ZEFOXF2I.js.map +1 -0
- package/dist/chunk-ZJXOHLQE.js +66 -0
- package/dist/chunk-ZJXOHLQE.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 +5 -0
- package/dist/composites/stability-bundle-viewer/index.js.map +1 -0
- 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 -4461
- package/dist/index.js +999 -731
- 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 +4 -0
- package/dist/primitives/branch-indicator/index.js.map +1 -0
- 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 +4 -0
- package/dist/primitives/channel-card/index.js.map +1 -0
- 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 +5 -0
- package/dist/primitives/export-chat-dialog/index.js.map +1 -0
- 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 +4 -0
- package/dist/primitives/gateway-status-indicator/index.js.map +1 -0
- 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 +4 -0
- package/dist/primitives/run-status-pill/index.js.map +1 -0
- 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 +5 -0
- package/dist/primitives/thinking-level-selector/index.js.map +1 -0
- 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 +4 -0
- package/dist/primitives/update-banner/index.js.map +1 -0
- 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 +246 -174
- 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-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-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-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-I7WYM63C.js +0 -170
- package/dist/chunk-I7WYM63C.js.map +0 -1
- package/dist/chunk-IPEYGWA7.js +0 -186
- package/dist/chunk-IPEYGWA7.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-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-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-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-R2PAGRDP.js +0 -152
- package/dist/chunk-R2PAGRDP.js.map +0 -1
- package/dist/chunk-R63ZKLQM.js +0 -45
- package/dist/chunk-R63ZKLQM.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-TNBJ36XJ.js +0 -156
- package/dist/chunk-TNBJ36XJ.js.map +0 -1
- package/dist/chunk-TO3UAT6O.js +0 -221
- package/dist/chunk-TO3UAT6O.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-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-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,17 +1,583 @@
|
|
|
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
|
+
|
|
482
|
+
## [0.13.0] - 2026-05-29
|
|
483
|
+
|
|
484
|
+
**Minor (additive only — zero breaking changes).**
|
|
485
|
+
|
|
486
|
+
Seven new components shipped as Phase 1 of the `theokit-ui-parity` plan
|
|
487
|
+
(`.claude/knowledge-base/plans/theokit-ui-parity-plan.md` v1.1). All seven
|
|
488
|
+
mirror OpenClaw Control UI patterns the framework lacked, designed to be
|
|
489
|
+
composable into any theokit app via `@theokit/ui` barrel.
|
|
490
|
+
|
|
491
|
+
### Added — Phase 2 component
|
|
492
|
+
|
|
493
|
+
- **`<ChannelCard>`** (primitive, `agent/`) — inbound gateway connection
|
|
494
|
+
surface (Telegram, Discord, Slack, WhatsApp, Webhook, MCP). 4 statuses
|
|
495
|
+
(`disconnected | connecting | connected | error`) with the toggle button
|
|
496
|
+
reflecting the current state: `connected` shows "Disconnect", others show
|
|
497
|
+
"Connect", `connecting` keeps the button disabled (transient state guard).
|
|
498
|
+
Closed `ChannelPlatform` enum prevents silent typos at the backend
|
|
499
|
+
boundary. 7 Vitest tests including vitest-axe. Ladle story with 5
|
|
500
|
+
variants (Connected/Disconnected/Connecting/ErrorState/MCP). Consumed by
|
|
501
|
+
the dogfood-app `/channels` page end-to-end against the
|
|
502
|
+
`server/routes/channels.ts` registry.
|
|
503
|
+
|
|
504
|
+
### Added — Phase 1 components (44/44 Vitest GREEN)
|
|
505
|
+
|
|
506
|
+
- **`<ThinkingLevelSelector>`** (primitive, `agent/`) — multi-state combobox
|
|
507
|
+
for LLM reasoning budget. Mirrors OpenClaw thinking selector. Values:
|
|
508
|
+
`"inherited" | "off" | "minimal" | "low" | "medium" | "high" | "xhigh"`.
|
|
509
|
+
- **`<RunStatusPill>`** (primitive, `agent/`) — compact status indicator
|
|
510
|
+
for Run/Task lifecycle. 6 states mirror SDK `Task` enum (D362):
|
|
511
|
+
`queued | in_progress | finished | error | cancelled | interrupted`.
|
|
512
|
+
- **`<BranchIndicator>`** (primitive, `agent/`) — small "×N" pill that
|
|
513
|
+
shows when a run was retried/branched. Returns `null` for `< 2` or
|
|
514
|
+
non-integer (EC-10 guard).
|
|
515
|
+
- **`<GatewayStatusIndicator>`** (primitive, `infra/`) — live
|
|
516
|
+
connection-status dot. 4 statuses (online/offline/degraded/reconnecting)
|
|
517
|
+
× 2 variants (compact/labeled) + optional latency text.
|
|
518
|
+
- **`<UpdateBanner>`** (primitive, `infra/`) — top-of-app alert for newer
|
|
519
|
+
version. Dismiss persistence is consumer's responsibility (EC-16).
|
|
520
|
+
- **`<ExportChatDialog>`** (primitive, `agent/`) — modal exporting chat in
|
|
521
|
+
`markdown | json | jsonl | sharegpt`. Async-aware (disables buttons
|
|
522
|
+
during pending export).
|
|
523
|
+
- **`<StabilityBundleViewer>`** (composite, `infra/`) — crash bundle JSON
|
|
524
|
+
inspector. Sections collapse independently. EC-9 absorbed: handles
|
|
525
|
+
missing optional sections gracefully.
|
|
526
|
+
|
|
527
|
+
### Added — Phase 0 tooling
|
|
528
|
+
|
|
529
|
+
- **`scripts/inventory-components.mjs`** — walks
|
|
530
|
+
`src/components/{primitives,composites}/<name>/` producing
|
|
531
|
+
`component-inventory.json`. CI drift-gate seed.
|
|
532
|
+
- **`scripts/generate-missing-stories.mjs`** — gerador + CI check mode.
|
|
533
|
+
EC-5/D12 absorbed: ships `kebabToPascal(name)` helper with 9 Vitest
|
|
534
|
+
cases + match-confirmation via `export\s+...` regex.
|
|
535
|
+
- **`wrangler.toml` + `.github/workflows/deploy-ladle.yml`** —
|
|
536
|
+
Cloudflare Pages deploy config for the Ladle component catalog.
|
|
537
|
+
Workflow contains `pnpm ladle:build` step BEFORE deploy (EC-14).
|
|
538
|
+
- New package scripts: `inventory`, `stories:check`, `stories:generate`,
|
|
539
|
+
`stories:test`.
|
|
540
|
+
|
|
541
|
+
### Changed — Build pipeline hardening
|
|
542
|
+
|
|
543
|
+
- **`scripts/regen-subpath-exports.ts`** now delegates to `sync-exports.ts`
|
|
544
|
+
for the final write. Previously the post-build step sorted ALL exports
|
|
545
|
+
alphabetically while `sync-exports.buildExports` produced the canonical
|
|
546
|
+
`BASE → sorted components → ISOLATED` order — meaning `pnpm build &&
|
|
547
|
+
pnpm quality:structure` regressed every time. The validator and the
|
|
548
|
+
build now share a single source of truth.
|
|
549
|
+
- **`scripts/sync-exports.ts`** now post-formats `package.json` via
|
|
550
|
+
`biome format --write` after writing. `JSON.stringify(_, _, 2)` always
|
|
551
|
+
expands short arrays like `sideEffects` and `onlyBuiltDependencies`,
|
|
552
|
+
while `pnpm format:check` (Biome) expects them inline; the two were
|
|
553
|
+
fighting after every sync.
|
|
554
|
+
- **`tailwind.config.ts`** dropped the `satisfies Config` clause. The
|
|
555
|
+
preset (`src/styles/tailwind-preset.ts`) resolves the v4 `Config` type
|
|
556
|
+
via the `src/styles/node_modules/tailwindcss` symlink to v4.3.0, while
|
|
557
|
+
the root config would resolve v3.4.19 — the v3/v4 type seam mismatched
|
|
558
|
+
on `darkMode` (`DarkModeStrategy` vs `Partial<DarkModeConfig>`).
|
|
559
|
+
Runtime correctness is enforced by `pnpm dogfood:v4-zero-config`.
|
|
560
|
+
- **`biome.json`** override extended to cover `scripts/**/*.mjs` so the
|
|
561
|
+
`noConsole` rule does not block tool scripts (it was already exempted
|
|
562
|
+
for `.ts`).
|
|
563
|
+
- **`pin-input.tsx`** — removed stale `// biome-ignore lint/suspicious/noArrayIndexKey`
|
|
564
|
+
comment now flagged as unused suppression.
|
|
565
|
+
- **`export-chat-dialog.tsx` + `run-status-pill.tsx` + `thinking-level-selector.tsx`** —
|
|
566
|
+
added precise `biome-ignore` comments documenting the `a11y/useSemanticElements`
|
|
567
|
+
and `suspicious/noConsole` exceptions, with the reason inline.
|
|
568
|
+
|
|
569
|
+
### Documentation
|
|
570
|
+
|
|
571
|
+
- 7 new component pages under `theo-opendocs/content/theoui/{agent,infra}/`.
|
|
572
|
+
- New `ChannelCard` page under `theo-opendocs/content/theoui/agent/channel-card.mdx`
|
|
573
|
+
with live preview (`ComponentPreview` + `PropsTable`) deployed to
|
|
574
|
+
`https://channel-card.theo-opendocs.pages.dev/`.
|
|
575
|
+
|
|
10
576
|
## [0.12.0] - 2026-05-28
|
|
11
577
|
|
|
12
578
|
**Stable release — promoted from `0.12.0-next.0` after dogfood validation + cross-repo contract gates landed.**
|
|
13
579
|
|
|
14
|
-
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.
|
|
15
581
|
|
|
16
582
|
### Added (dogfood-fixes-and-coverage-expansion T4.1, 2026-05-28)
|
|
17
583
|
|
|
@@ -33,14 +599,14 @@ that complement the existing `llms.txt`: a structured visual spec
|
|
|
33
599
|
### Added
|
|
34
600
|
|
|
35
601
|
- **`DESIGN.md` at repo root (NEW)** — plain-text design system spec
|
|
36
|
-
for LLM assistants generating UI against `@
|
|
602
|
+
for LLM assistants generating UI against `@theokit/ui`. Follows the
|
|
37
603
|
awesome-design-md 9-section canonical structure (Visual Theme &
|
|
38
604
|
Atmosphere · Color Palette & Roles · Typography Rules · Layout
|
|
39
605
|
Principles · Depth & Elevation · Component Stylings · Responsive
|
|
40
606
|
Behavior · Do's and Don'ts · Agent Prompt Guide). Tokens mirror
|
|
41
607
|
`src/styles/tokens.css` and `src/themes/violet-forge.ts`. Shipped
|
|
42
608
|
via `package.json > files` alongside `llms.txt` and `CHANGELOG.md`
|
|
43
|
-
so consumers see the visual spec at `node_modules/@
|
|
609
|
+
so consumers see the visual spec at `node_modules/@theokit/ui/DESIGN.md`.
|
|
44
610
|
Reference research lives at
|
|
45
611
|
`.claude/knowledge-base/reference/design-md-convention.md`.
|
|
46
612
|
- **`skills/theo-ui/` companion agent skill (NEW)** — library-aware
|
|
@@ -82,7 +648,7 @@ Brief: `theo/docs/handoff/2026-05-25-theo-ui-cloud-dashboard-brief-5.md`
|
|
|
82
648
|
`Object.assign`: `Trigger`, `Portal`, `Content`, `Item`,
|
|
83
649
|
`CheckboxItem`, `RadioItem`, `Label`, `Separator`, `Shortcut`,
|
|
84
650
|
`Group`, `Sub`, `SubTrigger`, `SubContent`, `RadioGroup`. Styled
|
|
85
|
-
with `@
|
|
651
|
+
with `@theokit/ui` design tokens. Consolidates 5 prior direct-
|
|
86
652
|
Radix usages (`model-selector`, `intent-selector`, `agent-profile`,
|
|
87
653
|
`theme-switcher`, `theo-code-shell`) under a single styled
|
|
88
654
|
wrapper. 6 unit tests + 5 Ladle stories. SSR-safe.
|
|
@@ -156,7 +722,7 @@ new primitives yet — pure version bump):
|
|
|
156
722
|
|
|
157
723
|
| Metric | 0.10.0-next.0 | 0.11.0-next.0 | Δ |
|
|
158
724
|
|---|---|---|---|
|
|
159
|
-
| `@
|
|
725
|
+
| `@theokit/ui` chunk | 10.96 KB brotli | 10.98 KB brotli | **+0.02 KB (+0.2%)** |
|
|
160
726
|
| TOTAL initial JS | 134.68 KB brotli | 135.56 KB brotli | +0.88 KB (+0.6%) |
|
|
161
727
|
|
|
162
728
|
Per-chunk cap (18 KB): passes with 7.02 KB headroom.
|
|
@@ -179,8 +745,8 @@ defect surfaced by the TheoCloud dashboard bundle audit
|
|
|
179
745
|
exports declared in `package.json#exports` (`./alert`, `./button`,
|
|
180
746
|
`./table`, …) were **cosmetic** — each pointed at the same
|
|
181
747
|
`./dist/index.js` (the 417 KB barrel). `import { Alert } from
|
|
182
|
-
"@
|
|
183
|
-
`import { Alert } from "@
|
|
748
|
+
"@theokit/ui/alert"` resolved byte-identical to
|
|
749
|
+
`import { Alert } from "@theokit/ui"`, and barrel tree-shaking
|
|
184
750
|
failed in consumers because of `forwardRef` side-effect bailouts,
|
|
185
751
|
`Object.assign` compound components, and `sideEffects: ["**/*.css"]`
|
|
186
752
|
conservatism. TheoCloud measured **0 KB dropped** from the 240 KB
|
|
@@ -188,7 +754,7 @@ minified barrel regardless of how few exports were used.
|
|
|
188
754
|
|
|
189
755
|
This release extends the per-component dist pattern that already
|
|
190
756
|
worked for `whiteboard` / `slide` / `slide-deck` to every primitive
|
|
191
|
-
and composite. The barrel `import { X } from "@
|
|
757
|
+
and composite. The barrel `import { X } from "@theokit/ui"` is
|
|
192
758
|
preserved unchanged (additive migration shape, same as `@mui/material`).
|
|
193
759
|
|
|
194
760
|
Plan: `.claude/knowledge-base/plans/subpath-tree-shaking-plan.md`
|
|
@@ -214,7 +780,7 @@ Brief: `theo/docs/handoff/2026-05-24-theo-ui-subpath-tree-shaking-brief-4.md`
|
|
|
214
780
|
`NODE_OPTIONS=--max-old-space-size=8192` (the flag does not
|
|
215
781
|
propagate to workers). Per-component subpaths resolve their `types`
|
|
216
782
|
field at the barrel `dist/index.d.ts` — TypeScript still finds
|
|
217
|
-
`Alert`/`AlertProps` from `import { Alert } from "@
|
|
783
|
+
`Alert`/`AlertProps` from `import { Alert } from "@theokit/ui/alert"`.
|
|
218
784
|
Trade-off: consumers' typecheck pulls the full type graph regardless
|
|
219
785
|
of subpath, but the JS dist (where tree-shaking matters) is
|
|
220
786
|
per-component and small.
|
|
@@ -256,7 +822,7 @@ chunks. **Consumer-side bundle delta against TheoCloud dashboard
|
|
|
256
822
|
|
|
257
823
|
| Metric | 0.9.0-next.0 | 0.10.0-next.0 | Δ |
|
|
258
824
|
|---|---|---|---|
|
|
259
|
-
| `@
|
|
825
|
+
| `@theokit/ui` chunk | 36.96 KB brotli | 10.96 KB brotli | **−26.00 KB (−70.3%)** |
|
|
260
826
|
| TOTAL initial JS | 176.27 KB brotli | 134.68 KB brotli | −41.59 KB (−23.6%) |
|
|
261
827
|
|
|
262
828
|
Per-chunk cap (50 KB): passes with 39 KB headroom (was 13 KB).
|
|
@@ -275,16 +841,16 @@ Evidence file:
|
|
|
275
841
|
### Migration (consumer-side, opt-in)
|
|
276
842
|
|
|
277
843
|
```diff
|
|
278
|
-
- import { Card, Button, Alert } from "@
|
|
279
|
-
+ import { Card } from "@
|
|
280
|
-
+ import { Button } from "@
|
|
281
|
-
+ 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";
|
|
282
848
|
```
|
|
283
849
|
|
|
284
850
|
The barrel import keeps working — migration is gradual, file by
|
|
285
851
|
file. CSS, themes, and isolated engines stay barrel-imported:
|
|
286
|
-
`import { ThemeProvider, violetForge } from "@
|
|
287
|
-
`import "@
|
|
852
|
+
`import { ThemeProvider, violetForge } from "@theokit/ui"`,
|
|
853
|
+
`import "@theokit/ui/styles.css"`.
|
|
288
854
|
|
|
289
855
|
## [0.9.0-next.0] - 2026-05-23
|
|
290
856
|
|
|
@@ -436,7 +1002,7 @@ Consumer brief: `theo/docs/handoff/2026-05-23-theo-ui-cloud-dashboard-gaps-brief
|
|
|
436
1002
|
- **Taxonomy gate** classified ConfirmDialog + CodeBlock as composites
|
|
437
1003
|
(D2 in the plan). Brief #2 listed all 8 as primitives, but the
|
|
438
1004
|
validate-quality-gates.ts script is hard-fail for any
|
|
439
|
-
`primitives/` file that imports another `@
|
|
1005
|
+
`primitives/` file that imports another `@theokit/ui` component.
|
|
440
1006
|
- **Timestamp uses native `title` HTML attribute** (D3) instead of
|
|
441
1007
|
the `<Tooltip>` component, to keep the file a true primitive
|
|
442
1008
|
without sibling-primitive imports.
|
|
@@ -516,7 +1082,7 @@ Consumer brief: `theo/docs/handoff/2026-05-23-theo-ui-cloud-dashboard-gaps-brief
|
|
|
516
1082
|
- **Taxonomy invariant preserved.** `UsageMeter → Progress` and
|
|
517
1083
|
`AccountMenu → Avatar + PlanBadge` use relative-path imports
|
|
518
1084
|
(`../{slug}/index.js`), not barrel imports, so primitives still have
|
|
519
|
-
zero `@
|
|
1085
|
+
zero `@theokit/ui` cross-dependencies per the structural gate.
|
|
520
1086
|
- **Bundle delta.** `dist/index.js` grows by ~6 KB (4 primitives + types
|
|
521
1087
|
+ small imports). Within the ±5% baseline tolerance (rebaselined).
|
|
522
1088
|
- **Subpath exports.** `package.json#exports` gains `./usage-meter`,
|
|
@@ -594,7 +1160,7 @@ every `<button>` rendered by `Sidebar.Item`, `QuickActionChips`,
|
|
|
594
1160
|
`ChatComposer`, `ContextWindowBar`, `ToolCallCard`, `AgentProfile`,
|
|
595
1161
|
`CommandPalette`, etc. was showing the default arrow cursor instead of
|
|
596
1162
|
the pointing hand. Visual regression observed in TheoKit
|
|
597
|
-
`examples/full-stack-agent` against `@
|
|
1163
|
+
`examples/full-stack-agent` against `@theokit/ui@0.6.1-next.0`.
|
|
598
1164
|
|
|
599
1165
|
### Fixed
|
|
600
1166
|
|
|
@@ -619,7 +1185,7 @@ the pointing hand. Visual regression observed in TheoKit
|
|
|
619
1185
|
accessibility convention. (#TBD)
|
|
620
1186
|
|
|
621
1187
|
The fix is opt-in by consumer choice — they imported
|
|
622
|
-
`@
|
|
1188
|
+
`@theokit/ui/styles.css`. Tailwind v4's global preflight remains
|
|
623
1189
|
untouched; only this stylesheet's `@layer base` adds the rule. (#TBD)
|
|
624
1190
|
|
|
625
1191
|
### Notes
|
|
@@ -632,7 +1198,7 @@ untouched; only this stylesheet's `@layer base` adds the rule. (#TBD)
|
|
|
632
1198
|
# pointing-hand icon (not the default arrow).
|
|
633
1199
|
#
|
|
634
1200
|
# CSS grep test:
|
|
635
|
-
grep -c "button:not(:disabled)" node_modules/@
|
|
1201
|
+
grep -c "button:not(:disabled)" node_modules/@theokit/ui/dist/styles.css
|
|
636
1202
|
# MUST return >= 1 (pre-fix: 0)
|
|
637
1203
|
```
|
|
638
1204
|
|
|
@@ -647,12 +1213,12 @@ the entire library rendered flat under pnpm.
|
|
|
647
1213
|
|
|
648
1214
|
- **pnpm symlink + Tailwind v4 `@source` bug** — Tailwind v4's
|
|
649
1215
|
`tinyglobby`-based scanner does **not** follow symbolic links. Under a
|
|
650
|
-
pnpm install, `node_modules/@
|
|
651
|
-
`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,
|
|
652
1218
|
and the consumer-side pattern
|
|
653
|
-
`@source "node_modules/@
|
|
1219
|
+
`@source "node_modules/@theokit/ui/dist/**/*.{js,mjs,cjs}"` (the one
|
|
654
1220
|
the `vite-plugin` previously emitted via the
|
|
655
|
-
`virtual:@
|
|
1221
|
+
`virtual:@theokit/ui/library-sources.css` virtual module) expanded to
|
|
656
1222
|
**zero** matches. Every `hover:bg-muted`, `hover:text-foreground`,
|
|
657
1223
|
`data-[state=active]:…` variant the library's 79 primitives + 41
|
|
658
1224
|
composites use was therefore never emitted into the consumer's CSS,
|
|
@@ -674,7 +1240,7 @@ the entire library rendered flat under pnpm.
|
|
|
674
1240
|
gzipped. This is the canonical Tailwind v4 library pattern used by
|
|
675
1241
|
Radix UI Themes, shadcn/ui pre-compiled, and Mantine v7. (#TBD)
|
|
676
1242
|
- **`dist/styles.css` chains `@import "./components.css"`** at the end,
|
|
677
|
-
so a single `@import "@
|
|
1243
|
+
so a single `@import "@theokit/ui/styles.css"` in the consumer's CSS
|
|
678
1244
|
now transitively pulls in every utility the library uses — zero
|
|
679
1245
|
filesystem scanning required. Consumer-side `@theme` overrides still
|
|
680
1246
|
win via the runtime CSS-var cascade (every utility resolves
|
|
@@ -691,9 +1257,9 @@ the entire library rendered flat under pnpm.
|
|
|
691
1257
|
|
|
692
1258
|
### Changed
|
|
693
1259
|
|
|
694
|
-
- **`@
|
|
695
|
-
`virtual:@
|
|
696
|
-
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
|
|
697
1263
|
retained for backwards compatibility (TheoKit's earlier integration
|
|
698
1264
|
code may still resolve it) but now emits only an explanatory comment
|
|
699
1265
|
block when no `contentExtra` option is passed. The plugin's primary
|
|
@@ -709,7 +1275,7 @@ the entire library rendered flat under pnpm.
|
|
|
709
1275
|
starter, Mantine v7.
|
|
710
1276
|
- Verification recipe matching TheoKit's reproduction script:
|
|
711
1277
|
```bash
|
|
712
|
-
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
|
|
713
1279
|
# MUST return >= 1 (pre-fix: 0)
|
|
714
1280
|
```
|
|
715
1281
|
|
|
@@ -778,7 +1344,7 @@ branching navigation, and a streaming-safe markdown preprocess.
|
|
|
778
1344
|
|
|
779
1345
|
### Breaking changes
|
|
780
1346
|
|
|
781
|
-
- **`Message` type removed.** `import type { Message } from "@
|
|
1347
|
+
- **`Message` type removed.** `import type { Message } from "@theokit/ui"`
|
|
782
1348
|
now fails — use `UIMessage` instead. TypeScript will hint
|
|
783
1349
|
`Did you mean 'UIMessage'?`.
|
|
784
1350
|
- **`message.content` removed.** Replace every callsite:
|
|
@@ -805,7 +1371,7 @@ branching navigation, and a streaming-safe markdown preprocess.
|
|
|
805
1371
|
`<ChatMessage>` — fold them into custom UI under the message body, or
|
|
806
1372
|
attach via `metadata?: unknown` (consumer-typed) and read from there.
|
|
807
1373
|
- **`./components/primitives/chat-message/`** deleted. Imports must move
|
|
808
|
-
to `./components/composites/chat-message/` (the public `@
|
|
1374
|
+
to `./components/composites/chat-message/` (the public `@theokit/ui`
|
|
809
1375
|
barrel handles this; only relative imports inside the repo need
|
|
810
1376
|
updating).
|
|
811
1377
|
|
|
@@ -845,12 +1411,12 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
|
|
|
845
1411
|
- **`./preset` subpath is now a CSS file.** Tailwind v4 dropped the v3 JS
|
|
846
1412
|
preset format — `theme.extend.colors.{name}` declarations are a no-op for
|
|
847
1413
|
v4. The new `dist/preset.css` simply chains `@import "./tokens.css"` and
|
|
848
|
-
`@import "./tokens-v4.css"` so consumers can `@import "@
|
|
1414
|
+
`@import "./tokens-v4.css"` so consumers can `@import "@theokit/ui/preset.css"`
|
|
849
1415
|
from their own Tailwind v4 entry CSS. (#TBD)
|
|
850
1416
|
|
|
851
1417
|
### Added
|
|
852
1418
|
|
|
853
|
-
- **`@
|
|
1419
|
+
- **`@theokit/ui/tokens-v4.css` (NEW)** — `@theme {}` block declaring 28
|
|
854
1420
|
`--color-*` aliases (full color set), 14 `--text-*` typescale tiers
|
|
855
1421
|
(Violet Forge — `--text-display-2xl` through `--text-code-sm` with companion
|
|
856
1422
|
`--*--line-height`, `--*--letter-spacing`, `--*--font-weight`), 3 `--font-*`
|
|
@@ -859,14 +1425,14 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
|
|
|
859
1425
|
uses `hsl(var(--*))` indirection so `<ThemeProvider>`'s runtime
|
|
860
1426
|
`[data-theme]` cascade keeps working — switching themes still recolors
|
|
861
1427
|
every utility. (#TBD)
|
|
862
|
-
- **`@
|
|
1428
|
+
- **`@theokit/ui/styles-v3-legacy.css` (NEW)** — the previous v3-shaped
|
|
863
1429
|
`@tailwind base/components/utilities` entry. Pinned consumers on
|
|
864
1430
|
`tailwindcss@^3` who still want a prebuilt stylesheet can import this
|
|
865
|
-
subpath. New code SHOULD use `@
|
|
866
|
-
- **`@
|
|
1431
|
+
subpath. New code SHOULD use `@theokit/ui/styles.css` (v4) instead.
|
|
1432
|
+
- **`@theokit/ui/preset-v3-legacy` (NEW)** — the v3 JS `Partial<Config>`
|
|
867
1433
|
preset that previously lived at `./preset`. Renamed so the canonical
|
|
868
1434
|
`./preset` subpath can host the v4 CSS preset. v3 consumers update
|
|
869
|
-
imports from `@
|
|
1435
|
+
imports from `@theokit/ui/preset` to `@theokit/ui/preset-v3-legacy`.
|
|
870
1436
|
- **Dogfood scripts** — `pnpm dogfood:v4-zero-config` (shape check, runs in
|
|
871
1437
|
`quality:gates`) and `pnpm dogfood:v4-real-build` (end-to-end: packs the
|
|
872
1438
|
tarball, installs in a tmp project alongside `@tailwindcss/cli@^4`, runs
|
|
@@ -880,8 +1446,8 @@ ships a fixture-backed real-build dogfood so the regression cannot recur.
|
|
|
880
1446
|
|
|
881
1447
|
- **Breaking for any 0.5.0-next.0 consumer.** The `./preset` subpath changed
|
|
882
1448
|
from JS (`Partial<Config>` default-export) to CSS file. Code importing
|
|
883
|
-
`import preset from "@
|
|
884
|
-
`@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
|
|
885
1451
|
(already reverted away from 0.5.x by the time this fix shipped) plus any
|
|
886
1452
|
community consumer that adopted 0.5.0-next.0 in the same day — likely zero.
|
|
887
1453
|
- The runtime indirection via `hsl(var(--*))` aliases keeps `<ThemeProvider>`
|
|
@@ -898,31 +1464,31 @@ Zero visual break and no runtime behavior change for existing consumers.
|
|
|
898
1464
|
|
|
899
1465
|
### Added
|
|
900
1466
|
|
|
901
|
-
- **`@
|
|
1467
|
+
- **`@theokit/ui/vite-plugin` (NEW, RFC 0008)** — Default-export factory
|
|
902
1468
|
returning one Vite `Plugin`. The plugin's `config()` hook
|
|
903
1469
|
dynamic-imports `@tailwindcss/vite` v4 and chains it into the
|
|
904
1470
|
consumer's plugin array when resolvable, and degrades to `console.warn`
|
|
905
|
-
+ CSS-only mode (via the pre-built `@
|
|
1471
|
+
+ CSS-only mode (via the pre-built `@theokit/ui/styles.css` subpath)
|
|
906
1472
|
when the peer is not installed. A virtual module
|
|
907
|
-
`virtual:@
|
|
908
|
-
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}`
|
|
909
1475
|
so Tailwind scans the library's published JS for utilities. Plugin
|
|
910
|
-
name slug: `@
|
|
1476
|
+
name slug: `@theokit/ui/vite-plugin`. Options: `tailwind?: boolean`
|
|
911
1477
|
(default `true`), `contentExtra?: string[]` (extra `@source` globs).
|
|
912
1478
|
(#TBD)
|
|
913
|
-
- **`@
|
|
1479
|
+
- **`@theokit/ui/preset` (NEW, RFC 0008)** — Default-export Tailwind v4
|
|
914
1480
|
`Partial<Config>` mirroring the design tokens in `tokens.css`
|
|
915
1481
|
(colors via `hsl(var(--x) / <alpha-value>)`, font families, the
|
|
916
1482
|
Violet Forge typescale, radii, shadows, animations, motion timing)
|
|
917
|
-
with `content` paths covering `./node_modules/@
|
|
1483
|
+
with `content` paths covering `./node_modules/@theokit/ui/dist/**` and
|
|
918
1484
|
the `tailwindcss-animate` plugin. Consumer usage:
|
|
919
|
-
`import preset from "@
|
|
1485
|
+
`import preset from "@theokit/ui/preset"; export default { presets: [preset] }`.
|
|
920
1486
|
Internally delegates to the existing `src/styles/tailwind-preset.ts` —
|
|
921
1487
|
the v3 shadcn-registry preset and the v4 import preset stay
|
|
922
1488
|
byte-for-byte aligned and impossible to drift. (#TBD)
|
|
923
1489
|
- **`@tailwindcss/vite ^4`, `tailwindcss ^4`, `vite ^6 || ^7` peer-deps
|
|
924
1490
|
(all optional)** — added to `peerDependenciesMeta` so consumers
|
|
925
|
-
importing `@
|
|
1491
|
+
importing `@theokit/ui` standalone (no framework) are not forced into
|
|
926
1492
|
Tailwind v4. Required only when consuming via TheoKit's auto-wire path
|
|
927
1493
|
or the new `./vite-plugin` subpath. (#TBD)
|
|
928
1494
|
|
|
@@ -930,7 +1496,7 @@ Zero visual break and no runtime behavior change for existing consumers.
|
|
|
930
1496
|
|
|
931
1497
|
- Existing `tailwindcss@^3` consumers continue to work via the shadcn
|
|
932
1498
|
registry preset (`registry/r/tailwind-preset.json`) and the prebuilt
|
|
933
|
-
`@
|
|
1499
|
+
`@theokit/ui/styles.css`. The new subpaths are additive — they do not
|
|
934
1500
|
break v3-based setups.
|
|
935
1501
|
- The `vite-plugin` returns ONE `Plugin` object (not `Plugin[]`) per the
|
|
936
1502
|
cross-repo contract with TheoKit's `integrateUseTheoUI()`. The chain
|
|
@@ -1000,10 +1566,10 @@ preserves rendered markup for callers that don't pass `size`.
|
|
|
1000
1566
|
## [0.1.0-next.1] - 2026-05-19
|
|
1001
1567
|
|
|
1002
1568
|
### Added
|
|
1003
|
-
- **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 `@
|
|
1004
|
-
- **SlideDeck composite engine — multi-slide deck w/ navigation, presenter, fullscreen, PDF (2026-05-19)** — `@
|
|
1005
|
-
- **Slide engine — view-only primitive funcional (2026-05-19)** — `@
|
|
1006
|
-
- **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)
|
|
1007
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)
|
|
1008
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)
|
|
1009
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)
|
|
@@ -1014,7 +1580,7 @@ preserves rendered markup for callers that don't pass `size`.
|
|
|
1014
1580
|
## [0.1.0-next.0] - 2026-05-16
|
|
1015
1581
|
|
|
1016
1582
|
First public pre-release on npm under the `next` dist-tag. Install with
|
|
1017
|
-
`pnpm add @
|
|
1583
|
+
`pnpm add @theokit/ui@next` (the default `latest` tag is intentionally
|
|
1018
1584
|
unset until 1.0). Highlights from the agent-team-audit-fixes-2026-05-16
|
|
1019
1585
|
remediation sprint:
|
|
1020
1586
|
|
|
@@ -1036,15 +1602,15 @@ remediation sprint:
|
|
|
1036
1602
|
- **Migration**:
|
|
1037
1603
|
```tsx
|
|
1038
1604
|
// Before
|
|
1039
|
-
import { ThemeProvider } from "@
|
|
1605
|
+
import { ThemeProvider } from "@theokit/ui";
|
|
1040
1606
|
<ThemeProvider>...</ThemeProvider>
|
|
1041
1607
|
|
|
1042
1608
|
// After — option A (recommended for parity with old behavior)
|
|
1043
|
-
import { ThemeProvider, builtinThemes } from "@
|
|
1609
|
+
import { ThemeProvider, builtinThemes } from "@theokit/ui";
|
|
1044
1610
|
<ThemeProvider themes={builtinThemes}>...</ThemeProvider>
|
|
1045
1611
|
|
|
1046
1612
|
// After — option B (new in v0.1.0-next.0)
|
|
1047
|
-
import { TheoUIProvider } from "@
|
|
1613
|
+
import { TheoUIProvider } from "@theokit/ui";
|
|
1048
1614
|
<TheoUIProvider>...</TheoUIProvider>
|
|
1049
1615
|
```
|
|
1050
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`).
|
|
@@ -1059,22 +1625,22 @@ remediation sprint:
|
|
|
1059
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`).
|
|
1060
1626
|
|
|
1061
1627
|
### Documentation (Agent-team audit fixes, 2026-05-16)
|
|
1062
|
-
- **`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).
|
|
1063
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`.
|
|
1064
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]`.
|
|
1065
1631
|
|
|
1066
1632
|
### Added (Pitch + Voice and Tone formalization, 2026-05-15)
|
|
1067
|
-
- **`PITCH.md`** at project root — landing-page copy for `@
|
|
1068
|
-
- **`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.
|
|
1069
1635
|
|
|
1070
1636
|
### Changed (Cross-project, 2026-05-15)
|
|
1071
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).
|
|
1072
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).
|
|
1073
1639
|
|
|
1074
1640
|
### Changed (README alignment with PITCH, 2026-05-15)
|
|
1075
|
-
- `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. `@
|
|
1076
|
-
- Added `## The shift` storytelling block between the HERO and `## Why @
|
|
1077
|
-
- `## 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."*
|
|
1078
1644
|
- Added `## What you'd build` (5 concrete surfaces) before `## Quickstart`.
|
|
1079
1645
|
- Added `## How it works` DEEP DIVE delimiter before `## Quickstart`; everything from there downward stays technical-direct.
|
|
1080
1646
|
- Quickstart code sample swapped from a generic `<Button>` example to `<AgentEvent>` + `<ToolCall>` + `<DeploymentRow>` — agent-shaped primitives nobody else ships.
|
|
@@ -1129,8 +1695,8 @@ remediation sprint:
|
|
|
1129
1695
|
|
|
1130
1696
|
### Changed (HIGH-002 / T4.1 — self-hosted fonts as default)
|
|
1131
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.
|
|
1132
|
-
- `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 "@
|
|
1133
|
-
- `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/`.
|
|
1134
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.
|
|
1135
1701
|
- New `geist` devDependency: used only as the source of woff2 artifacts at install time; not bundled into `dist/index.js`.
|
|
1136
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.
|
|
@@ -1145,7 +1711,7 @@ remediation sprint:
|
|
|
1145
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.
|
|
1146
1712
|
|
|
1147
1713
|
### Breaking
|
|
1148
|
-
- **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.
|
|
1149
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`.
|
|
1150
1716
|
|
|
1151
1717
|
### Fixed
|