@infuro/cms-core 1.0.7 → 1.0.9
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/dist/admin.cjs +270 -41
- package/dist/admin.cjs.map +1 -1
- package/dist/admin.d.cts +3 -1
- package/dist/admin.d.ts +3 -1
- package/dist/admin.js +304 -75
- package/dist/admin.js.map +1 -1
- package/dist/api.cjs +131 -1
- package/dist/api.cjs.map +1 -1
- package/dist/api.d.cts +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +131 -1
- package/dist/api.js.map +1 -1
- package/dist/{index-BPnATEXW.d.cts → index-P5ajDo8-.d.cts} +9 -0
- package/dist/{index-BPnATEXW.d.ts → index-P5ajDo8-.d.ts} +9 -0
- package/dist/index.cjs +699 -263
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +91 -3
- package/dist/index.d.ts +91 -3
- package/dist/index.js +682 -252
- package/dist/index.js.map +1 -1
- package/dist/migrations/1772178563555-ChatAndKnowledgeBase.ts +39 -0
- package/dist/migrations/1772178563556-KnowledgeBaseVector.ts +16 -0
- package/package.json +1 -1
package/dist/admin.cjs
CHANGED
|
@@ -379,7 +379,7 @@ var AdminConfigContext = (0, import_react3.createContext)(defaultValue);
|
|
|
379
379
|
var INFURO_FAVICON_BASE64 = "data:image/x-icon;base64,AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAKBEAAJ4EAAAwMAAAAQAgAGgmAADGFQAAKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8V////bv///7D////R////0f///7D///9u////FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wL///9s0qun7q9qYv/DkYv/6tfV///+/v///////////////+7///9r////AgAAAAAAAAAAAAAAAP///wL///+Q/////sqcl/+WOzH/ljsx/5c9M//AiYP/+/j4/////////////////v///5D///8CAAAAAAAAAAD///9s/////v/////Oo5//lz00/5Y7Mf+WOzH/ljsx/7Z3cP/9+/v////////////////+////bAAAAAD///8V////7v///////////v39//Tq6f/QqKP/m0U8/5Y7Mf+WOzH/z6ah/////////////////////+7///8V////bv///////////////////////////////+XOy/+ZQTf/ljsx/59MQ//69fX/////////////////////bv///7D/////////////////////////////////////wYyG/5Y7Mf+WOzH/4MTC/////////////////////7D////R//////////////////7+//79/f/+/f3//v39/+DGw/+WOzH/ljsx/82inf/////////////////////R////0f///////////////9Svq/+mWVH/pllR/6ZZUf+iUUj/ljsx/5Y7Mf/KnJf/////////////////////0f///7D////////////////KnJf/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/062p/////////////////////7D///9u////////////////0amk/6FQSP+hUEj/oVBI/6JRSP+mWVH/plpS/+7g3v////////////////////9u////Ff///+7///////////7+/v/9/Pz/9u7t/8SSjP/Dj4r/9ezr//79/f/////////////////////u////FQAAAAD///9s/////v///////////////8OPif+WOzH/ljsx/7+Jgv/////////////////////+////bAAAAAAAAAAA////Av///5D////+//////////+9hH7/ljsx/5Y7Mf+8g3z////////////////+////kP///wIAAAAAAAAAAAAAAAD///8C////bP///+7/////8OTi/7R0bP+zcmr/8OLh///////////u////bP///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8V////bv///7D////R////0f///7D///9u////FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////Hf///0n///95////mf///67///+u////mf///3n///9J////Hf///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8I////Tf///7D////p/////v////////////////////////////////////7////p////sP///03///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////Pfjz8r7HlpH7wY2H/86lof/iysf/9e3s///+/v//////////////////////////////////////////+////77///89////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Cf///37////z9Ovq/6BORf+WOzH/ljsx/5Y8Mv+hUEf/v4iC/+rY1v/+/f3///////////////////////////////////////////H///99////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr///+d/////P/////06+r/oE5F/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/m0Q7/8WTjf/38PD///////////////////////////////////////////z///+d////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J////nf////3///////////Tr6v+gTkX/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/61mX//w4+L///////////////////////////////////////////3///+d////CQAAAAAAAAAAAAAAAAAAAAAAAAAA////Av///37////8////////////////9Ovq/6BORf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6daUv/v4uD///////////////////////////////////////////z///9+////AgAAAAAAAAAAAAAAAAAAAAD///89////8//////////////////////48fD/rGRc/5pCOf+YPjT/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6xkXf/37+////////////////////////////////////////////P///89AAAAAAAAAAAAAAAA////CP///77////////////////////////////////7+Pf/8eXj/+DGw/++hn//m0U8/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/8GLhf/9/Pz//////////////////////////////////////////77///8IAAAAAAAAAAD///9N////+/////////////////////////////////////////////////7+/v/p1tP/rGRd/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/mkI4/+XPzf//////////////////////////////////////////+////00AAAAA////Av///7D////////////////////////////////////////////////////////////////06+r/r2pi/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/tndw//38+///////////////////////////////////////////sP///wL///8d////6f/////////////////////////////////////////////////////////////////////x5eP/olJJ/5Y7Mf+WOzH/ljsx/5Y7Mf+aQjn/7dza///////////////////////////////////////////p////Hf///0n////+///////////////////////////////////////////////////////////////////////////Ur6v/ljwy/5Y7Mf+WOzH/ljsx/5Y7Mf/Oo5////////////////////////////////////////////7///9J////ef////////////////////////////////////////////////////////////////////////////////fw7/+jVEv/ljsx/5Y7Mf+WOzH/ljsx/7Nxav///////////////////////////////////////////////3n///+Z/////////////////////////////////////////////////////////////////////////////////////7yCfP+WOzH/ljsx/5Y7Mf+WOzH/pllQ//r29f//////////////////////////////////////////mf///67///////////////////////////////////////////79/f/9/Pz//fz8//38/P/9/Pz//fz8//38/P/9/Pz/yZuW/5Y7Mf+WOzH/ljsx/5Y7Mf+gT0b/9evr//////////////////////////////////////////+u////rv/////////////////////////////////////69vb/wo2I/7Z3cf+2d3H/tndx/7Z3cf+2d3H/tndx/7Z3cf+lV0//ljsx/5Y7Mf+WOzH/ljsx/6BORf/06+r//////////////////////////////////////////67///+Z//////////////////////////////////////Tr6v+gTkX/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/oE5F//Tr6v//////////////////////////////////////////mf///3n/////////////////////////////////////9Ovq/6BORf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+lVk7/+fPz//////////////////////////////////////////95////Sf////7////////////////////////////////06+r/oE5F/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/7FuZ////v7//////////////////////////////////////v///0n///8d////6f////////////////////////////////Tr6v+gTkX/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/zKCb///////////////////////////////////////////p////Hf///wL///+w////////////////////////////////+PLx/7d4cf+tZl//rWZf/61mX/+tZl//rWZf/61mX/+tZl//rmdg/7Z3cP+2d3H/tndx/7h7df/w4uH//////////////////////////////////////////7D///8CAAAAAP///03////7/////////////////////////////////Pv6//z6+f/8+vn//Pr5//z6+f/z6un/48zJ/+LKx//y5+b//fz8//38/P/9/Pz//fz8///////////////////////////////////////////7////TQAAAAAAAAAA////CP///77/////////////////////////////////////////////////////4MXC/6VXTv+WPDL/ljwy/6JRSP/aubb///7+/////////////////////////////////////////////////////77///8IAAAAAAAAAAAAAAAA////Pf////P///////////////////////////////////////////Xs6/+jU0r/ljsx/5Y7Mf+WOzH/ljsx/59MQv/w5OL////////////////////////////////////////////////z////PQAAAAAAAAAAAAAAAAAAAAD///8C////fv////z/////////////////////////////////////3sK//5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/9m5tf///////////////////////////////////////////P///37///8CAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J////nf////3////////////////////////////////ZuLX/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/17Sw//////////////////////////////////////3///+d////CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K////nf////z//////////////////////////+zc2v+aQzn/ljsx/5Y7Mf+WOzH/ljsx/5pDOf/r2tj////////////////////////////////8////nf///woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8J////fv////P//////////////////////v39/8eYkv+YPjT/ljsx/5Y7Mf+YPjT/xpSP//79/f//////////////////////////8////37///8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////Pf///77////7/////////////////fv6/+DEwf/Ekoz/wY2H/97Bvv/8+vr/////////////////////+////77///89////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP///03///+w////6f////7////////////////////////////////////+////6f///7D///9N////CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wL///8d////Sf///3n///+Z////rv///67///+Z////ef///0n///8d////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////DP///xr///80////Rv///1n///9q////gP///4D///9q////Wf///0b///80////Gv///wz///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP///y7///9g////lP///7v////V////6P////r////8/////P////z////8////+v///+j////V////u////5T///9g////Lv///wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wf///81////k////8/////v////+v////////////////////////////////////////////////////////////////////r////v////z////5P///81////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8G////Kv37+3zt3Nrd27y5/Nm6t//fxMH/59LQ//Dk4v/48vH//fv6//////////////////////////////////////////////////////////////////////z////d////fP///yr///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xH///9g////wvz5+ffNop3+m0U8/5c+NP+cRz7/pFVN/65oYP+8gnv/0qun/+jU0v/59fT//v7+///////////////////////////////////////////////////////////+////9////8L///9f////EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP///4n////m/////fv4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+XPTT/m0Q6/6ZaUf/BjIX/6NXT//z5+f////////////////////////////////////////////////////////////////3////k////if///xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8i////pP////f///////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+XPjT/oVFI/8yhnP/x5OP//vz8////////////////////////////////////////////////////////////////9////6T///8i////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yL///+d////8/////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5tEOv+3eHL/48rH//37+/////////////////////////////////////////////////////////////////P///+d////IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP///6T////z//////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+YPjT/qFxT/9y+uv/9+vr////////////////////////////////////////////////////////////////z////pP///xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8R////if////f///////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsy/6NUS//Yt7P//Pn4////////////////////////////////////////////////////////////////9////4n///8RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb///9g////5v////////////////////////////////v4+P/KnZj/mUI4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5c8Mv+pXlb/38PA//38/P///////////////////////////////////////////////////////////////+b///9g////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yr////C/////f////////////////////////////////38+//dwLz/qF1V/51JP/+bRDv/mD40/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+XPTP/qWBY/+vZ2P///v7///////////////////////////////////////////////////////////3////C////KgAAAAAAAAAAAAAAAAAAAAAAAAAA////B////3z////3///////////////////////////////////////////9+/r/9/Dv/+zc2f/dwLz/x5iT/7BrY/+eS0H/lz0z/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/lzwy/7d6c//06un////////////////////////////////////////////////////////////////3////fP///wcAAAAAAAAAAAAAAAAAAAAA////Nf///93////+//////////////////////////////////////////////////////7+/v/+/v7//fz8//Hm5f/XtLH/s3Fq/5lCOP+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/51JP//Sq6b//Pn5///////////////////////////////////////////////////////////+////3f///zUAAAAAAAAAAAAAAAD///8I////k/////z////////////////////////////////////////////////////////////////////////////////9+/v/8eTj/8aVkP+dRz7/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5c8Mv+vamL/7uDf/////////////////////////////////////////////////////////////////P///5P///8IAAAAAAAAAAD///8u////z/////////////////////////////////////////////////////////////////////////////////////////////////fx8P/ImZP/nUg//5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+ZQTj/0qyo//38/P///////////////////////////////////////////////////////////////8////8uAAAAAP///wT///9g////7//////////////////////////////////////////////////////////////////////////////////////////////////////07Or/xJGL/5hAN/+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/rGRd//Tq6P///////////////////////////////////////////////////////////////+////9g////BP///wz///+U////+v////////////////////////////////////////////////////////////////////////////////////////////////////////7/8+jm/7Nya/+WPDP/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/mkQ7/9m3s////v7///////////////////////////////////////////////////////////r///+U////DP///xr///+7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/+HHxP+hUEf/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljwy/7yBe//69/f///////////////////////////////////////////////////////////////+7////Gv///zT////V//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////bu7f+7gHr/mD40/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6xkXP/u4N/////////////////////////////////////////////////////////////////V////NP///0b////o//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////38/P/XtK//nEY9/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6BNRP/iycb////////////////////////////////////////////////////////////////o////Rv///1n////6///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////o1NL/pVhQ/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5xGPP/Yt7L//v39///////////////////////////////////////////////////////////6////Wf///2r////8///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////06un/sW1m/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5pDOf/PpKD//Pr5///////////////////////////////////////////////////////////8////av///4D////8/////////////////////////////////////////////////////////////v7//fv7//37+v/9+/r//fv6//37+v/9+/r//fv6//37+v/9+/r//fv6//37+v/06un/snBp/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5lBOP/KnJj/+/j4///////////////////////////////////////////////////////////8////gP///4D////8//////////////////////////////////////////////////////79/f/s3Nr/z6ej/8uemv/Lnpr/y56a/8uemv/Lnpr/y56a/8uemv/Lnpr/y56a/8uemv/GlI//o1VM/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5lBOP/KnJf/+/j4///////////////////////////////////////////////////////////8////gP///2r////8//////////////////////////////////////////////////////z5+f/Nop3/m0Q7/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5lBOP/KnJf/+/j4///////////////////////////////////////////////////////////8////av///1n////6//////////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5lCOP/KnZj/+/j4///////////////////////////////////////////////////////////6////Wf///0b////o//////////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5pDOv/Qp6P//Pr6///////////////////////////////////////////////////////////o////Rv///zT////V//////////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/51IP//bvbr//v7+///////////////////////////////////////////////////////////V////NP///xr///+7//////////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/6RVTf/n0c////////////////////////////////////////////////////////////////+7////Gv///wz///+U////+v////////////////////////////////////////////////v4+P/KnJf/mUE4/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/7FuZ//z6ej///////////////////////////////////////////////////////////r///+U////DP///wT///9g////7/////////////////////////////////////////////////z4+P/LnZj/mkI5/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/ljwy/5Y8Mv+WPDL/mUE3/8mblf/9+/r//////////////////////////////////////////////////////////+////9g////BAAAAAD///8u////z/////////////////////////////////////////////////38/P/iycb/v4iC/7yCfP+8gnz/vIJ8/7yCfP+8gnz/vIJ8/7yCfP+8gnz/vIJ8/7yCfP+8gnz/voR+/8qcl//Lnpr/y56a/8uemv/Lnpr/zqOf//Hl5P///v7//////////////////////////////////////////////////////////8////8uAAAAAAAAAAD///8I////k/////z////////////////////////////////////////////////9/Pz/+vf2//r39v/69/b/+vf2//r39v/69/b/+vf2//j08//07Ov/7+Df/+7f3v/z6+n/+PPy//z6+v/9+/r//fv6//37+v/9+/r//fv7///+/v///////////////////////////////////////////////////////////P///5P///8IAAAAAAAAAAAAAAAA////Nf///93////+/////////////////////////////////////////////////////////////////////////////v7/9u7t/9i3s/++hn//sW1m/7BsZf+7gnv/066q//Ln5v/+/v7////////////////////////////////////////////////////////////////////////////////+////3f///zUAAAAAAAAAAAAAAAAAAAAA////B////3z////3///////////////////////////////////////////////////////////////////////////17Ov/wo6I/55KQf+XPjT/ljsx/5Y7Mf+XPTP/nEY9/7uBe//x5eP////////////////////////////////////////////////////////////////////////////////3////fP///wcAAAAAAAAAAAAAAAAAAAAAAAAAAP///yr////C/////f////////////////////////////////////////////////////////////////37+//UsKz/nUg//5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5tEO//No57/+/j4//////////////////////////////////////////////////////////////////////3////C////KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb///9g////5v////////////////////////////////////////////////////////////////bv7/+5fHb/lz0z/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y8Mv+ycGj/8ujm/////////////////////////////////////////////////////////////////////+b///9g////BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8R////if////f//////////////////////////////////////////////////////////+3e3P+qYlr/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+oXVT/6tnX////////////////////////////////////////////////////////////////9////4n///8RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP///6T////z/////////////////////////////////////////////////////+vZ1/+oXVT/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+nWlL/6dbU///////////////////////////////////////////////////////////z////pP///xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yL///+d////8/////////////////////////////////////////////////Hm5f+wa2T/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5Y7Mf+uaGD/8OPh//////////////////////////////////////////////////////P///+d////IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8i////pP////f///////////////////////////////////////////r19P/CjYf/mD81/5Y7Mf+WOzH/ljsx/5Y7Mf+WOzH/ljsx/5g/Nf/BjIb/+fTz////////////////////////////////////////////////9////6T///8i////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////GP///4n////m/////f////////////////////////////////7+/v/m0M7/qmFZ/5c9M/+WOzH/ljsx/5Y7Mf+WOzH/lz0z/6leV//lz8z//v7+//////////////////////////////////////3////m////if///xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xH///9g////wv////f////+///////////////////////////8+vr/4snG/7d4cf+iUUj/mUA3/5c+NP+gTkT/tXVu/+DFw//8+fn////////////////////////////////+////9////8L///9g////EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8G////Kv///3z////d/////P///////////////////////////v38//Tr6v/kzcv/2726/9m6t//jysf/8uno//78/P////////////////////////////////z////d////fP///yr///8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wf///81////k////8/////v////+v////////////////////////////////////////////////////////////////////r////v////z////5P///81////BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP///y7///9g////lP///7v////V////6P////r////8/////P////z////8////+v///+j////V////u////5T///9g////Lv///wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////DP///xr///80////Rv///1n///9q////gP///4D///9q////Wf///0b///80////Gv///wz///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
|
|
380
380
|
|
|
381
381
|
// src/lib/cms-version.ts
|
|
382
|
-
var CMS_VERSION = true ? "1.0.
|
|
382
|
+
var CMS_VERSION = true ? "1.0.9" : "0.0.0";
|
|
383
383
|
|
|
384
384
|
// src/components/Admin/Sidebar.tsx
|
|
385
385
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
@@ -8226,59 +8226,288 @@ function PageBuilderPage({ pageId }) {
|
|
|
8226
8226
|
// src/admin/pages/PluginsPage.tsx
|
|
8227
8227
|
var import_react40 = require("react");
|
|
8228
8228
|
var import_lucide_react32 = require("lucide-react");
|
|
8229
|
+
var import_sonner6 = require("sonner");
|
|
8229
8230
|
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
8230
8231
|
var ICON_MAP = {
|
|
8231
8232
|
storage: import_lucide_react32.HardDrive,
|
|
8232
8233
|
email: import_lucide_react32.Mail,
|
|
8233
|
-
payment: import_lucide_react32.CreditCard
|
|
8234
|
+
payment: import_lucide_react32.CreditCard,
|
|
8235
|
+
llm: import_lucide_react32.MessageCircle
|
|
8234
8236
|
};
|
|
8235
|
-
function PluginIcon({ descriptor }) {
|
|
8237
|
+
function PluginIcon({ descriptor, size = "md" }) {
|
|
8236
8238
|
const Icon2 = descriptor.icon ? ICON_MAP[descriptor.icon] ?? import_lucide_react32.Puzzle : import_lucide_react32.Puzzle;
|
|
8237
|
-
|
|
8239
|
+
const sizeClass = size === "sm" ? "h-8 w-8" : "h-11 w-11";
|
|
8240
|
+
const iconClass = size === "sm" ? "h-4 w-4" : "h-5 w-5";
|
|
8241
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: `flex shrink-0 items-center justify-center rounded-lg bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-300 ${sizeClass}`, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Icon2, { className: iconClass }) });
|
|
8242
|
+
}
|
|
8243
|
+
function PluginSettingsPanel({
|
|
8244
|
+
descriptor,
|
|
8245
|
+
onSaved
|
|
8246
|
+
}) {
|
|
8247
|
+
const settingsGroup = descriptor.settingsGroup;
|
|
8248
|
+
const isLlm = settingsGroup === "llm";
|
|
8249
|
+
const [enabled, setEnabled] = (0, import_react40.useState)(true);
|
|
8250
|
+
const [botName, setBotName] = (0, import_react40.useState)("");
|
|
8251
|
+
const [icon, setIcon] = (0, import_react40.useState)("");
|
|
8252
|
+
const [iconImageUrl, setIconImageUrl] = (0, import_react40.useState)("");
|
|
8253
|
+
const [iconBackgroundColor, setIconBackgroundColor] = (0, import_react40.useState)("#6366f1");
|
|
8254
|
+
const [headerColor, setHeaderColor] = (0, import_react40.useState)("#6366f1");
|
|
8255
|
+
const [loading, setLoading] = (0, import_react40.useState)(true);
|
|
8256
|
+
const [saving, setSaving] = (0, import_react40.useState)(false);
|
|
8257
|
+
(0, import_react40.useEffect)(() => {
|
|
8258
|
+
fetch(`/api/settings/${settingsGroup}`).then((r) => r.ok ? r.json() : {}).then((data) => {
|
|
8259
|
+
setEnabled(data.enabled !== "false");
|
|
8260
|
+
setBotName(data.botName ?? "");
|
|
8261
|
+
setIcon(data.icon ?? "");
|
|
8262
|
+
if (isLlm) {
|
|
8263
|
+
setIconImageUrl(data.iconImageUrl ?? "");
|
|
8264
|
+
setIconBackgroundColor(data.iconBackgroundColor ?? "#6366f1");
|
|
8265
|
+
setHeaderColor(data.headerColor ?? "#6366f1");
|
|
8266
|
+
}
|
|
8267
|
+
}).finally(() => setLoading(false));
|
|
8268
|
+
}, [settingsGroup, isLlm]);
|
|
8269
|
+
const buildPayload = () => {
|
|
8270
|
+
const payload = {
|
|
8271
|
+
enabled: { value: enabled ? "true" : "false", type: "public" },
|
|
8272
|
+
botName: { value: botName, type: "public" },
|
|
8273
|
+
icon: { value: icon, type: "public" }
|
|
8274
|
+
};
|
|
8275
|
+
if (isLlm) {
|
|
8276
|
+
payload.iconImageUrl = { value: iconImageUrl, type: "public" };
|
|
8277
|
+
payload.iconBackgroundColor = { value: iconBackgroundColor, type: "public" };
|
|
8278
|
+
payload.headerColor = { value: headerColor, type: "public" };
|
|
8279
|
+
}
|
|
8280
|
+
return payload;
|
|
8281
|
+
};
|
|
8282
|
+
const handleSave = async () => {
|
|
8283
|
+
setSaving(true);
|
|
8284
|
+
try {
|
|
8285
|
+
const res = await fetch(`/api/settings/${settingsGroup}`, {
|
|
8286
|
+
method: "PUT",
|
|
8287
|
+
headers: { "Content-Type": "application/json" },
|
|
8288
|
+
body: JSON.stringify(buildPayload())
|
|
8289
|
+
});
|
|
8290
|
+
if (!res.ok) throw new Error();
|
|
8291
|
+
import_sonner6.toast.success("Settings saved");
|
|
8292
|
+
onSaved?.();
|
|
8293
|
+
} catch {
|
|
8294
|
+
import_sonner6.toast.error("Failed to save");
|
|
8295
|
+
} finally {
|
|
8296
|
+
setSaving(false);
|
|
8297
|
+
}
|
|
8298
|
+
};
|
|
8299
|
+
if (loading) return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Loading..." });
|
|
8300
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "space-y-4", children: [
|
|
8301
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
|
|
8302
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Label3, { htmlFor: `${settingsGroup}-enabled`, className: "text-sm", children: "Enabled" }),
|
|
8303
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Switch, { id: `${settingsGroup}-enabled`, checked: enabled, onCheckedChange: setEnabled })
|
|
8304
|
+
] }),
|
|
8305
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "space-y-1", children: [
|
|
8306
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Label3, { htmlFor: `${settingsGroup}-botName`, className: "text-sm", children: "Name" }),
|
|
8307
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8308
|
+
Input,
|
|
8309
|
+
{
|
|
8310
|
+
id: `${settingsGroup}-botName`,
|
|
8311
|
+
value: botName,
|
|
8312
|
+
onChange: (e) => setBotName(e.target.value),
|
|
8313
|
+
placeholder: "e.g. Support Bot",
|
|
8314
|
+
className: "h-8 text-sm"
|
|
8315
|
+
}
|
|
8316
|
+
)
|
|
8317
|
+
] }),
|
|
8318
|
+
isLlm ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
|
|
8319
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "space-y-1", children: [
|
|
8320
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Label3, { htmlFor: `${settingsGroup}-iconImageUrl`, className: "text-sm", children: "Icon image URL" }),
|
|
8321
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8322
|
+
Input,
|
|
8323
|
+
{
|
|
8324
|
+
id: `${settingsGroup}-iconImageUrl`,
|
|
8325
|
+
value: iconImageUrl,
|
|
8326
|
+
onChange: (e) => setIconImageUrl(e.target.value),
|
|
8327
|
+
placeholder: "https://\u2026 or /images/chat-icon.png",
|
|
8328
|
+
className: "h-8 text-sm"
|
|
8329
|
+
}
|
|
8330
|
+
),
|
|
8331
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "PNG or image URL. Leave empty to use emoji below." })
|
|
8332
|
+
] }),
|
|
8333
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "space-y-1", children: [
|
|
8334
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Label3, { htmlFor: `${settingsGroup}-icon`, className: "text-sm", children: "Icon fallback (emoji)" }),
|
|
8335
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8336
|
+
Input,
|
|
8337
|
+
{
|
|
8338
|
+
id: `${settingsGroup}-icon`,
|
|
8339
|
+
value: icon,
|
|
8340
|
+
onChange: (e) => setIcon(e.target.value),
|
|
8341
|
+
placeholder: "e.g. \u{1F4AC}",
|
|
8342
|
+
className: "h-8 text-sm w-20"
|
|
8343
|
+
}
|
|
8344
|
+
)
|
|
8345
|
+
] }),
|
|
8346
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex gap-4", children: [
|
|
8347
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "space-y-1", children: [
|
|
8348
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Label3, { htmlFor: `${settingsGroup}-iconBg`, className: "text-sm", children: "Icon background" }),
|
|
8349
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8350
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8351
|
+
"input",
|
|
8352
|
+
{
|
|
8353
|
+
type: "color",
|
|
8354
|
+
id: `${settingsGroup}-iconBg`,
|
|
8355
|
+
value: iconBackgroundColor,
|
|
8356
|
+
onChange: (e) => setIconBackgroundColor(e.target.value),
|
|
8357
|
+
className: "h-8 w-10 cursor-pointer rounded border border-gray-300 dark:border-gray-600"
|
|
8358
|
+
}
|
|
8359
|
+
),
|
|
8360
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8361
|
+
Input,
|
|
8362
|
+
{
|
|
8363
|
+
value: iconBackgroundColor,
|
|
8364
|
+
onChange: (e) => setIconBackgroundColor(e.target.value),
|
|
8365
|
+
className: "h-8 w-24 text-sm font-mono"
|
|
8366
|
+
}
|
|
8367
|
+
)
|
|
8368
|
+
] })
|
|
8369
|
+
] }),
|
|
8370
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "space-y-1", children: [
|
|
8371
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Label3, { htmlFor: `${settingsGroup}-headerColor`, className: "text-sm", children: "Header color" }),
|
|
8372
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8373
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8374
|
+
"input",
|
|
8375
|
+
{
|
|
8376
|
+
type: "color",
|
|
8377
|
+
id: `${settingsGroup}-headerColor`,
|
|
8378
|
+
value: headerColor,
|
|
8379
|
+
onChange: (e) => setHeaderColor(e.target.value),
|
|
8380
|
+
className: "h-8 w-10 cursor-pointer rounded border border-gray-300 dark:border-gray-600"
|
|
8381
|
+
}
|
|
8382
|
+
),
|
|
8383
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8384
|
+
Input,
|
|
8385
|
+
{
|
|
8386
|
+
value: headerColor,
|
|
8387
|
+
onChange: (e) => setHeaderColor(e.target.value),
|
|
8388
|
+
className: "h-8 w-24 text-sm font-mono"
|
|
8389
|
+
}
|
|
8390
|
+
)
|
|
8391
|
+
] })
|
|
8392
|
+
] })
|
|
8393
|
+
] })
|
|
8394
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "space-y-1", children: [
|
|
8395
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Label3, { htmlFor: `${settingsGroup}-icon`, className: "text-sm", children: "Icon (emoji or name)" }),
|
|
8396
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8397
|
+
Input,
|
|
8398
|
+
{
|
|
8399
|
+
id: `${settingsGroup}-icon`,
|
|
8400
|
+
value: icon,
|
|
8401
|
+
onChange: (e) => setIcon(e.target.value),
|
|
8402
|
+
placeholder: "e.g. \u{1F916} or llm",
|
|
8403
|
+
className: "h-8 text-sm"
|
|
8404
|
+
}
|
|
8405
|
+
)
|
|
8406
|
+
] }),
|
|
8407
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Button, { size: "sm", onClick: handleSave, disabled: saving, className: "gap-1", children: [
|
|
8408
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react32.Save, { className: "h-3.5 w-3.5" }),
|
|
8409
|
+
"Save"
|
|
8410
|
+
] })
|
|
8411
|
+
] });
|
|
8412
|
+
}
|
|
8413
|
+
function PluginListItem({
|
|
8414
|
+
descriptor,
|
|
8415
|
+
enabled,
|
|
8416
|
+
selected,
|
|
8417
|
+
onSelect
|
|
8418
|
+
}) {
|
|
8419
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
8420
|
+
"button",
|
|
8421
|
+
{
|
|
8422
|
+
type: "button",
|
|
8423
|
+
onClick: onSelect,
|
|
8424
|
+
className: `flex w-full items-center gap-3 rounded-lg border px-3 py-2.5 text-left transition-colors ${selected ? "border-gray-300 bg-gray-50 dark:border-gray-600 dark:bg-gray-700/50" : "border-transparent hover:bg-gray-50 dark:hover:bg-gray-800/50"}`,
|
|
8425
|
+
children: [
|
|
8426
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(PluginIcon, { descriptor, size: "sm" }),
|
|
8427
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
8428
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "font-medium text-gray-900 dark:text-white truncate", children: descriptor.label || descriptor.name }),
|
|
8429
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-2 mt-0.5", children: [
|
|
8430
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
8431
|
+
"span",
|
|
8432
|
+
{
|
|
8433
|
+
className: `inline-flex items-center gap-1 rounded-full px-1.5 py-0.5 text-xs font-medium ${enabled ? "bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400" : "bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-400"}`,
|
|
8434
|
+
children: [
|
|
8435
|
+
enabled ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react32.CheckCircle2, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react32.XCircle, { className: "h-3 w-3" }),
|
|
8436
|
+
enabled ? "On" : "Off"
|
|
8437
|
+
]
|
|
8438
|
+
}
|
|
8439
|
+
),
|
|
8440
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { className: "text-xs text-gray-400 dark:text-gray-500", children: [
|
|
8441
|
+
"v",
|
|
8442
|
+
descriptor.version
|
|
8443
|
+
] })
|
|
8444
|
+
] })
|
|
8445
|
+
] })
|
|
8446
|
+
]
|
|
8447
|
+
}
|
|
8448
|
+
);
|
|
8238
8449
|
}
|
|
8239
8450
|
function PluginsPage() {
|
|
8240
8451
|
const { pluginDescriptors = [] } = (0, import_react40.useContext)(AdminConfigContext);
|
|
8241
|
-
|
|
8242
|
-
|
|
8243
|
-
|
|
8244
|
-
|
|
8452
|
+
const [selectedName, setSelectedName] = (0, import_react40.useState)(null);
|
|
8453
|
+
const [enabledMap, setEnabledMap] = (0, import_react40.useState)({});
|
|
8454
|
+
(0, import_react40.useEffect)(() => {
|
|
8455
|
+
pluginDescriptors.forEach((p) => {
|
|
8456
|
+
if (!p.settingsGroup) return;
|
|
8457
|
+
fetch(`/api/settings/${p.settingsGroup}`).then((r) => r.ok ? r.json() : {}).then(
|
|
8458
|
+
(data) => setEnabledMap((prev) => ({ ...prev, [p.name]: data.enabled !== "false" }))
|
|
8459
|
+
).catch(() => {
|
|
8460
|
+
});
|
|
8461
|
+
});
|
|
8462
|
+
}, [pluginDescriptors]);
|
|
8463
|
+
const selectedDescriptor = pluginDescriptors.find((p) => p.name === selectedName);
|
|
8464
|
+
const refreshEnabled = (name) => {
|
|
8465
|
+
const d = pluginDescriptors.find((p) => p.name === name);
|
|
8466
|
+
if (!d?.settingsGroup) return;
|
|
8467
|
+
fetch(`/api/settings/${d.settingsGroup}`).then((r) => r.ok ? r.json() : {}).then(
|
|
8468
|
+
(data) => setEnabledMap((prev) => ({ ...prev, [name]: data.enabled !== "false" }))
|
|
8469
|
+
).catch(() => {
|
|
8470
|
+
});
|
|
8471
|
+
};
|
|
8472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "min-w-0 rounded-lg bg-white shadow-md dark:bg-gray-800", children: [
|
|
8473
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "bg-gray-800 border-b border-gray-700 px-4 py-2.5 rounded-t-lg dark:bg-gray-900 dark:border-gray-700", children: [
|
|
8474
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("h1", { className: "text-base font-semibold text-white", children: "Plugins" }),
|
|
8475
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-xs text-gray-300 mt-0.5", children: "Registered plugins and their status" })
|
|
8245
8476
|
] }),
|
|
8246
|
-
pluginDescriptors.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "
|
|
8477
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "min-w-0 p-6", children: pluginDescriptors.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "py-12 text-center", children: [
|
|
8247
8478
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react32.Puzzle, { className: "mx-auto h-10 w-10 text-gray-400" }),
|
|
8248
8479
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "mt-3 text-sm text-gray-500 dark:text-gray-400", children: "No plugins registered. Add plugin descriptors to your app admin layout." })
|
|
8249
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime55.
|
|
8250
|
-
|
|
8251
|
-
|
|
8252
|
-
"div",
|
|
8480
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex gap-6", children: [
|
|
8481
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-56 shrink-0 space-y-1", children: pluginDescriptors.map((p) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8482
|
+
PluginListItem,
|
|
8253
8483
|
{
|
|
8254
|
-
|
|
8255
|
-
|
|
8256
|
-
|
|
8257
|
-
|
|
8258
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
|
|
8259
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("h2", { className: "font-medium text-gray-900 dark:text-white", children: p.label || p.name }),
|
|
8260
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
8261
|
-
"span",
|
|
8262
|
-
{
|
|
8263
|
-
className: `inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium ${enabled ? "bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400" : "bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-400"}`,
|
|
8264
|
-
children: [
|
|
8265
|
-
enabled ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react32.CheckCircle2, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react32.XCircle, { className: "h-3.5 w-3.5" }),
|
|
8266
|
-
enabled ? "Enabled" : "Disabled"
|
|
8267
|
-
]
|
|
8268
|
-
}
|
|
8269
|
-
)
|
|
8270
|
-
] }),
|
|
8271
|
-
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("p", { className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400", children: [
|
|
8272
|
-
"v",
|
|
8273
|
-
p.version
|
|
8274
|
-
] }),
|
|
8275
|
-
p.description && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-300", children: p.description })
|
|
8276
|
-
] })
|
|
8277
|
-
] })
|
|
8484
|
+
descriptor: p,
|
|
8485
|
+
enabled: p.settingsGroup ? enabledMap[p.name] ?? p.enabled !== false : p.enabled !== false,
|
|
8486
|
+
selected: selectedName === p.name,
|
|
8487
|
+
onSelect: () => setSelectedName(p.name)
|
|
8278
8488
|
},
|
|
8279
8489
|
p.name
|
|
8280
|
-
)
|
|
8281
|
-
|
|
8490
|
+
)) }),
|
|
8491
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "min-w-0 flex-1", children: !selectedName ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [
|
|
8492
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react32.Puzzle, { className: "h-10 w-10 text-gray-300 dark:text-gray-600" }),
|
|
8493
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "mt-3 text-sm text-gray-500 dark:text-gray-400", children: "Select a plugin to view or edit its configuration." })
|
|
8494
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "rounded-lg border border-gray-200 bg-gray-50/50 p-5 dark:border-gray-700 dark:bg-gray-800/50", children: selectedDescriptor?.settingsGroup ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
|
|
8495
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("h2", { className: "text-sm font-medium text-gray-700 dark:text-gray-300 mb-4", children: [
|
|
8496
|
+
selectedDescriptor.label || selectedDescriptor.name,
|
|
8497
|
+
" \u2014 Configuration"
|
|
8498
|
+
] }),
|
|
8499
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
8500
|
+
PluginSettingsPanel,
|
|
8501
|
+
{
|
|
8502
|
+
descriptor: selectedDescriptor,
|
|
8503
|
+
onSaved: () => refreshEnabled(selectedDescriptor.name)
|
|
8504
|
+
}
|
|
8505
|
+
)
|
|
8506
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [
|
|
8507
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react32.Puzzle, { className: "h-10 w-10 text-gray-300 dark:text-gray-600" }),
|
|
8508
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "mt-3 text-sm text-gray-500 dark:text-gray-400", children: "No configuration available for this plugin." })
|
|
8509
|
+
] }) }) })
|
|
8510
|
+
] }) })
|
|
8282
8511
|
] });
|
|
8283
8512
|
}
|
|
8284
8513
|
|
|
@@ -9101,12 +9330,12 @@ var DEFAULT_ADMIN_NAV = [
|
|
|
9101
9330
|
// src/admin/CmsProviders.tsx
|
|
9102
9331
|
var import_react44 = require("next-auth/react");
|
|
9103
9332
|
var import_next_themes = require("next-themes");
|
|
9104
|
-
var
|
|
9333
|
+
var import_sonner7 = require("sonner");
|
|
9105
9334
|
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
9106
9335
|
function CmsProviders({ children }) {
|
|
9107
9336
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react44.SessionProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_next_themes.ThemeProvider, { attribute: "class", defaultTheme: "system", enableSystem: true, children: [
|
|
9108
9337
|
children,
|
|
9109
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
9338
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_sonner7.Toaster, { position: "top-right" })
|
|
9110
9339
|
] }) });
|
|
9111
9340
|
}
|
|
9112
9341
|
// Annotate the CommonJS export names for ESM import in node:
|