@infuro/cms-core 1.0.7 → 1.0.8
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/1731800000000-ChatAndKnowledgeBase.ts +39 -0
- package/dist/migrations/1731900000000-KnowledgeBaseVector.ts +17 -0
- package/package.json +1 -1
package/dist/admin.js
CHANGED
|
@@ -333,7 +333,7 @@ var AdminConfigContext = createContext(defaultValue);
|
|
|
333
333
|
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==";
|
|
334
334
|
|
|
335
335
|
// src/lib/cms-version.ts
|
|
336
|
-
var CMS_VERSION = true ? "1.0.
|
|
336
|
+
var CMS_VERSION = true ? "1.0.8" : "0.0.0";
|
|
337
337
|
|
|
338
338
|
// src/components/Admin/Sidebar.tsx
|
|
339
339
|
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
@@ -5695,7 +5695,7 @@ function DashboardPage() {
|
|
|
5695
5695
|
}
|
|
5696
5696
|
|
|
5697
5697
|
// src/admin/pages/AdminPageResolver.tsx
|
|
5698
|
-
import { useState as
|
|
5698
|
+
import { useState as useState32, useEffect as useEffect30, useContext as useContext6, useMemo } from "react";
|
|
5699
5699
|
import { useRouter as useRouter12 } from "next/navigation";
|
|
5700
5700
|
|
|
5701
5701
|
// src/components/Admin/PolicyEditorPage.tsx
|
|
@@ -8197,66 +8197,295 @@ function PageBuilderPage({ pageId }) {
|
|
|
8197
8197
|
}
|
|
8198
8198
|
|
|
8199
8199
|
// src/admin/pages/PluginsPage.tsx
|
|
8200
|
-
import { useContext as useContext5 } from "react";
|
|
8201
|
-
import { HardDrive, Mail, CreditCard as CreditCard2, Puzzle as Puzzle2, CheckCircle2 as CheckCircle22, XCircle } from "lucide-react";
|
|
8202
|
-
import {
|
|
8200
|
+
import { useContext as useContext5, useState as useState30, useEffect as useEffect28 } from "react";
|
|
8201
|
+
import { HardDrive, Mail, CreditCard as CreditCard2, MessageCircle, Puzzle as Puzzle2, CheckCircle2 as CheckCircle22, XCircle, Save as Save6 } from "lucide-react";
|
|
8202
|
+
import { toast as toast4 } from "sonner";
|
|
8203
|
+
import { Fragment as Fragment12, jsx as jsx55, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
8203
8204
|
var ICON_MAP = {
|
|
8204
8205
|
storage: HardDrive,
|
|
8205
8206
|
email: Mail,
|
|
8206
|
-
payment: CreditCard2
|
|
8207
|
+
payment: CreditCard2,
|
|
8208
|
+
llm: MessageCircle
|
|
8207
8209
|
};
|
|
8208
|
-
function PluginIcon({ descriptor }) {
|
|
8210
|
+
function PluginIcon({ descriptor, size = "md" }) {
|
|
8209
8211
|
const Icon2 = descriptor.icon ? ICON_MAP[descriptor.icon] ?? Puzzle2 : Puzzle2;
|
|
8210
|
-
|
|
8212
|
+
const sizeClass = size === "sm" ? "h-8 w-8" : "h-11 w-11";
|
|
8213
|
+
const iconClass = size === "sm" ? "h-4 w-4" : "h-5 w-5";
|
|
8214
|
+
return /* @__PURE__ */ jsx55("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__ */ jsx55(Icon2, { className: iconClass }) });
|
|
8215
|
+
}
|
|
8216
|
+
function PluginSettingsPanel({
|
|
8217
|
+
descriptor,
|
|
8218
|
+
onSaved
|
|
8219
|
+
}) {
|
|
8220
|
+
const settingsGroup = descriptor.settingsGroup;
|
|
8221
|
+
const isLlm = settingsGroup === "llm";
|
|
8222
|
+
const [enabled, setEnabled] = useState30(true);
|
|
8223
|
+
const [botName, setBotName] = useState30("");
|
|
8224
|
+
const [icon, setIcon] = useState30("");
|
|
8225
|
+
const [iconImageUrl, setIconImageUrl] = useState30("");
|
|
8226
|
+
const [iconBackgroundColor, setIconBackgroundColor] = useState30("#6366f1");
|
|
8227
|
+
const [headerColor, setHeaderColor] = useState30("#6366f1");
|
|
8228
|
+
const [loading, setLoading] = useState30(true);
|
|
8229
|
+
const [saving, setSaving] = useState30(false);
|
|
8230
|
+
useEffect28(() => {
|
|
8231
|
+
fetch(`/api/settings/${settingsGroup}`).then((r) => r.ok ? r.json() : {}).then((data) => {
|
|
8232
|
+
setEnabled(data.enabled !== "false");
|
|
8233
|
+
setBotName(data.botName ?? "");
|
|
8234
|
+
setIcon(data.icon ?? "");
|
|
8235
|
+
if (isLlm) {
|
|
8236
|
+
setIconImageUrl(data.iconImageUrl ?? "");
|
|
8237
|
+
setIconBackgroundColor(data.iconBackgroundColor ?? "#6366f1");
|
|
8238
|
+
setHeaderColor(data.headerColor ?? "#6366f1");
|
|
8239
|
+
}
|
|
8240
|
+
}).finally(() => setLoading(false));
|
|
8241
|
+
}, [settingsGroup, isLlm]);
|
|
8242
|
+
const buildPayload = () => {
|
|
8243
|
+
const payload = {
|
|
8244
|
+
enabled: { value: enabled ? "true" : "false", type: "public" },
|
|
8245
|
+
botName: { value: botName, type: "public" },
|
|
8246
|
+
icon: { value: icon, type: "public" }
|
|
8247
|
+
};
|
|
8248
|
+
if (isLlm) {
|
|
8249
|
+
payload.iconImageUrl = { value: iconImageUrl, type: "public" };
|
|
8250
|
+
payload.iconBackgroundColor = { value: iconBackgroundColor, type: "public" };
|
|
8251
|
+
payload.headerColor = { value: headerColor, type: "public" };
|
|
8252
|
+
}
|
|
8253
|
+
return payload;
|
|
8254
|
+
};
|
|
8255
|
+
const handleSave = async () => {
|
|
8256
|
+
setSaving(true);
|
|
8257
|
+
try {
|
|
8258
|
+
const res = await fetch(`/api/settings/${settingsGroup}`, {
|
|
8259
|
+
method: "PUT",
|
|
8260
|
+
headers: { "Content-Type": "application/json" },
|
|
8261
|
+
body: JSON.stringify(buildPayload())
|
|
8262
|
+
});
|
|
8263
|
+
if (!res.ok) throw new Error();
|
|
8264
|
+
toast4.success("Settings saved");
|
|
8265
|
+
onSaved?.();
|
|
8266
|
+
} catch {
|
|
8267
|
+
toast4.error("Failed to save");
|
|
8268
|
+
} finally {
|
|
8269
|
+
setSaving(false);
|
|
8270
|
+
}
|
|
8271
|
+
};
|
|
8272
|
+
if (loading) return /* @__PURE__ */ jsx55("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Loading..." });
|
|
8273
|
+
return /* @__PURE__ */ jsxs47("div", { className: "space-y-4", children: [
|
|
8274
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex items-center justify-between gap-2", children: [
|
|
8275
|
+
/* @__PURE__ */ jsx55(Label3, { htmlFor: `${settingsGroup}-enabled`, className: "text-sm", children: "Enabled" }),
|
|
8276
|
+
/* @__PURE__ */ jsx55(Switch, { id: `${settingsGroup}-enabled`, checked: enabled, onCheckedChange: setEnabled })
|
|
8277
|
+
] }),
|
|
8278
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-1", children: [
|
|
8279
|
+
/* @__PURE__ */ jsx55(Label3, { htmlFor: `${settingsGroup}-botName`, className: "text-sm", children: "Name" }),
|
|
8280
|
+
/* @__PURE__ */ jsx55(
|
|
8281
|
+
Input,
|
|
8282
|
+
{
|
|
8283
|
+
id: `${settingsGroup}-botName`,
|
|
8284
|
+
value: botName,
|
|
8285
|
+
onChange: (e) => setBotName(e.target.value),
|
|
8286
|
+
placeholder: "e.g. Support Bot",
|
|
8287
|
+
className: "h-8 text-sm"
|
|
8288
|
+
}
|
|
8289
|
+
)
|
|
8290
|
+
] }),
|
|
8291
|
+
isLlm ? /* @__PURE__ */ jsxs47(Fragment12, { children: [
|
|
8292
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-1", children: [
|
|
8293
|
+
/* @__PURE__ */ jsx55(Label3, { htmlFor: `${settingsGroup}-iconImageUrl`, className: "text-sm", children: "Icon image URL" }),
|
|
8294
|
+
/* @__PURE__ */ jsx55(
|
|
8295
|
+
Input,
|
|
8296
|
+
{
|
|
8297
|
+
id: `${settingsGroup}-iconImageUrl`,
|
|
8298
|
+
value: iconImageUrl,
|
|
8299
|
+
onChange: (e) => setIconImageUrl(e.target.value),
|
|
8300
|
+
placeholder: "https://\u2026 or /images/chat-icon.png",
|
|
8301
|
+
className: "h-8 text-sm"
|
|
8302
|
+
}
|
|
8303
|
+
),
|
|
8304
|
+
/* @__PURE__ */ jsx55("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "PNG or image URL. Leave empty to use emoji below." })
|
|
8305
|
+
] }),
|
|
8306
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-1", children: [
|
|
8307
|
+
/* @__PURE__ */ jsx55(Label3, { htmlFor: `${settingsGroup}-icon`, className: "text-sm", children: "Icon fallback (emoji)" }),
|
|
8308
|
+
/* @__PURE__ */ jsx55(
|
|
8309
|
+
Input,
|
|
8310
|
+
{
|
|
8311
|
+
id: `${settingsGroup}-icon`,
|
|
8312
|
+
value: icon,
|
|
8313
|
+
onChange: (e) => setIcon(e.target.value),
|
|
8314
|
+
placeholder: "e.g. \u{1F4AC}",
|
|
8315
|
+
className: "h-8 text-sm w-20"
|
|
8316
|
+
}
|
|
8317
|
+
)
|
|
8318
|
+
] }),
|
|
8319
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex gap-4", children: [
|
|
8320
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-1", children: [
|
|
8321
|
+
/* @__PURE__ */ jsx55(Label3, { htmlFor: `${settingsGroup}-iconBg`, className: "text-sm", children: "Icon background" }),
|
|
8322
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-2", children: [
|
|
8323
|
+
/* @__PURE__ */ jsx55(
|
|
8324
|
+
"input",
|
|
8325
|
+
{
|
|
8326
|
+
type: "color",
|
|
8327
|
+
id: `${settingsGroup}-iconBg`,
|
|
8328
|
+
value: iconBackgroundColor,
|
|
8329
|
+
onChange: (e) => setIconBackgroundColor(e.target.value),
|
|
8330
|
+
className: "h-8 w-10 cursor-pointer rounded border border-gray-300 dark:border-gray-600"
|
|
8331
|
+
}
|
|
8332
|
+
),
|
|
8333
|
+
/* @__PURE__ */ jsx55(
|
|
8334
|
+
Input,
|
|
8335
|
+
{
|
|
8336
|
+
value: iconBackgroundColor,
|
|
8337
|
+
onChange: (e) => setIconBackgroundColor(e.target.value),
|
|
8338
|
+
className: "h-8 w-24 text-sm font-mono"
|
|
8339
|
+
}
|
|
8340
|
+
)
|
|
8341
|
+
] })
|
|
8342
|
+
] }),
|
|
8343
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-1", children: [
|
|
8344
|
+
/* @__PURE__ */ jsx55(Label3, { htmlFor: `${settingsGroup}-headerColor`, className: "text-sm", children: "Header color" }),
|
|
8345
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-2", children: [
|
|
8346
|
+
/* @__PURE__ */ jsx55(
|
|
8347
|
+
"input",
|
|
8348
|
+
{
|
|
8349
|
+
type: "color",
|
|
8350
|
+
id: `${settingsGroup}-headerColor`,
|
|
8351
|
+
value: headerColor,
|
|
8352
|
+
onChange: (e) => setHeaderColor(e.target.value),
|
|
8353
|
+
className: "h-8 w-10 cursor-pointer rounded border border-gray-300 dark:border-gray-600"
|
|
8354
|
+
}
|
|
8355
|
+
),
|
|
8356
|
+
/* @__PURE__ */ jsx55(
|
|
8357
|
+
Input,
|
|
8358
|
+
{
|
|
8359
|
+
value: headerColor,
|
|
8360
|
+
onChange: (e) => setHeaderColor(e.target.value),
|
|
8361
|
+
className: "h-8 w-24 text-sm font-mono"
|
|
8362
|
+
}
|
|
8363
|
+
)
|
|
8364
|
+
] })
|
|
8365
|
+
] })
|
|
8366
|
+
] })
|
|
8367
|
+
] }) : /* @__PURE__ */ jsxs47("div", { className: "space-y-1", children: [
|
|
8368
|
+
/* @__PURE__ */ jsx55(Label3, { htmlFor: `${settingsGroup}-icon`, className: "text-sm", children: "Icon (emoji or name)" }),
|
|
8369
|
+
/* @__PURE__ */ jsx55(
|
|
8370
|
+
Input,
|
|
8371
|
+
{
|
|
8372
|
+
id: `${settingsGroup}-icon`,
|
|
8373
|
+
value: icon,
|
|
8374
|
+
onChange: (e) => setIcon(e.target.value),
|
|
8375
|
+
placeholder: "e.g. \u{1F916} or llm",
|
|
8376
|
+
className: "h-8 text-sm"
|
|
8377
|
+
}
|
|
8378
|
+
)
|
|
8379
|
+
] }),
|
|
8380
|
+
/* @__PURE__ */ jsxs47(Button, { size: "sm", onClick: handleSave, disabled: saving, className: "gap-1", children: [
|
|
8381
|
+
/* @__PURE__ */ jsx55(Save6, { className: "h-3.5 w-3.5" }),
|
|
8382
|
+
"Save"
|
|
8383
|
+
] })
|
|
8384
|
+
] });
|
|
8385
|
+
}
|
|
8386
|
+
function PluginListItem({
|
|
8387
|
+
descriptor,
|
|
8388
|
+
enabled,
|
|
8389
|
+
selected,
|
|
8390
|
+
onSelect
|
|
8391
|
+
}) {
|
|
8392
|
+
return /* @__PURE__ */ jsxs47(
|
|
8393
|
+
"button",
|
|
8394
|
+
{
|
|
8395
|
+
type: "button",
|
|
8396
|
+
onClick: onSelect,
|
|
8397
|
+
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"}`,
|
|
8398
|
+
children: [
|
|
8399
|
+
/* @__PURE__ */ jsx55(PluginIcon, { descriptor, size: "sm" }),
|
|
8400
|
+
/* @__PURE__ */ jsxs47("div", { className: "min-w-0 flex-1", children: [
|
|
8401
|
+
/* @__PURE__ */ jsx55("div", { className: "font-medium text-gray-900 dark:text-white truncate", children: descriptor.label || descriptor.name }),
|
|
8402
|
+
/* @__PURE__ */ jsxs47("div", { className: "flex items-center gap-2 mt-0.5", children: [
|
|
8403
|
+
/* @__PURE__ */ jsxs47(
|
|
8404
|
+
"span",
|
|
8405
|
+
{
|
|
8406
|
+
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"}`,
|
|
8407
|
+
children: [
|
|
8408
|
+
enabled ? /* @__PURE__ */ jsx55(CheckCircle22, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx55(XCircle, { className: "h-3 w-3" }),
|
|
8409
|
+
enabled ? "On" : "Off"
|
|
8410
|
+
]
|
|
8411
|
+
}
|
|
8412
|
+
),
|
|
8413
|
+
/* @__PURE__ */ jsxs47("span", { className: "text-xs text-gray-400 dark:text-gray-500", children: [
|
|
8414
|
+
"v",
|
|
8415
|
+
descriptor.version
|
|
8416
|
+
] })
|
|
8417
|
+
] })
|
|
8418
|
+
] })
|
|
8419
|
+
]
|
|
8420
|
+
}
|
|
8421
|
+
);
|
|
8211
8422
|
}
|
|
8212
8423
|
function PluginsPage() {
|
|
8213
8424
|
const { pluginDescriptors = [] } = useContext5(AdminConfigContext);
|
|
8214
|
-
|
|
8215
|
-
|
|
8216
|
-
|
|
8217
|
-
|
|
8425
|
+
const [selectedName, setSelectedName] = useState30(null);
|
|
8426
|
+
const [enabledMap, setEnabledMap] = useState30({});
|
|
8427
|
+
useEffect28(() => {
|
|
8428
|
+
pluginDescriptors.forEach((p) => {
|
|
8429
|
+
if (!p.settingsGroup) return;
|
|
8430
|
+
fetch(`/api/settings/${p.settingsGroup}`).then((r) => r.ok ? r.json() : {}).then(
|
|
8431
|
+
(data) => setEnabledMap((prev) => ({ ...prev, [p.name]: data.enabled !== "false" }))
|
|
8432
|
+
).catch(() => {
|
|
8433
|
+
});
|
|
8434
|
+
});
|
|
8435
|
+
}, [pluginDescriptors]);
|
|
8436
|
+
const selectedDescriptor = pluginDescriptors.find((p) => p.name === selectedName);
|
|
8437
|
+
const refreshEnabled = (name) => {
|
|
8438
|
+
const d = pluginDescriptors.find((p) => p.name === name);
|
|
8439
|
+
if (!d?.settingsGroup) return;
|
|
8440
|
+
fetch(`/api/settings/${d.settingsGroup}`).then((r) => r.ok ? r.json() : {}).then(
|
|
8441
|
+
(data) => setEnabledMap((prev) => ({ ...prev, [name]: data.enabled !== "false" }))
|
|
8442
|
+
).catch(() => {
|
|
8443
|
+
});
|
|
8444
|
+
};
|
|
8445
|
+
return /* @__PURE__ */ jsxs47("div", { className: "min-w-0 rounded-lg bg-white shadow-md dark:bg-gray-800", children: [
|
|
8446
|
+
/* @__PURE__ */ jsxs47("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: [
|
|
8447
|
+
/* @__PURE__ */ jsx55("h1", { className: "text-base font-semibold text-white", children: "Plugins" }),
|
|
8448
|
+
/* @__PURE__ */ jsx55("p", { className: "text-xs text-gray-300 mt-0.5", children: "Registered plugins and their status" })
|
|
8218
8449
|
] }),
|
|
8219
|
-
pluginDescriptors.length === 0 ? /* @__PURE__ */ jsxs47("div", { className: "
|
|
8450
|
+
/* @__PURE__ */ jsx55("div", { className: "min-w-0 p-6", children: pluginDescriptors.length === 0 ? /* @__PURE__ */ jsxs47("div", { className: "py-12 text-center", children: [
|
|
8220
8451
|
/* @__PURE__ */ jsx55(Puzzle2, { className: "mx-auto h-10 w-10 text-gray-400" }),
|
|
8221
8452
|
/* @__PURE__ */ jsx55("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." })
|
|
8222
|
-
] }) : /* @__PURE__ */
|
|
8223
|
-
|
|
8224
|
-
|
|
8225
|
-
"div",
|
|
8453
|
+
] }) : /* @__PURE__ */ jsxs47("div", { className: "flex gap-6", children: [
|
|
8454
|
+
/* @__PURE__ */ jsx55("div", { className: "w-56 shrink-0 space-y-1", children: pluginDescriptors.map((p) => /* @__PURE__ */ jsx55(
|
|
8455
|
+
PluginListItem,
|
|
8226
8456
|
{
|
|
8227
|
-
|
|
8228
|
-
|
|
8229
|
-
|
|
8230
|
-
|
|
8231
|
-
/* @__PURE__ */ jsxs47("div", { className: "flex items-center justify-between gap-2", children: [
|
|
8232
|
-
/* @__PURE__ */ jsx55("h2", { className: "font-medium text-gray-900 dark:text-white", children: p.label || p.name }),
|
|
8233
|
-
/* @__PURE__ */ jsxs47(
|
|
8234
|
-
"span",
|
|
8235
|
-
{
|
|
8236
|
-
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"}`,
|
|
8237
|
-
children: [
|
|
8238
|
-
enabled ? /* @__PURE__ */ jsx55(CheckCircle22, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx55(XCircle, { className: "h-3.5 w-3.5" }),
|
|
8239
|
-
enabled ? "Enabled" : "Disabled"
|
|
8240
|
-
]
|
|
8241
|
-
}
|
|
8242
|
-
)
|
|
8243
|
-
] }),
|
|
8244
|
-
/* @__PURE__ */ jsxs47("p", { className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400", children: [
|
|
8245
|
-
"v",
|
|
8246
|
-
p.version
|
|
8247
|
-
] }),
|
|
8248
|
-
p.description && /* @__PURE__ */ jsx55("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-300", children: p.description })
|
|
8249
|
-
] })
|
|
8250
|
-
] })
|
|
8457
|
+
descriptor: p,
|
|
8458
|
+
enabled: p.settingsGroup ? enabledMap[p.name] ?? p.enabled !== false : p.enabled !== false,
|
|
8459
|
+
selected: selectedName === p.name,
|
|
8460
|
+
onSelect: () => setSelectedName(p.name)
|
|
8251
8461
|
},
|
|
8252
8462
|
p.name
|
|
8253
|
-
)
|
|
8254
|
-
|
|
8463
|
+
)) }),
|
|
8464
|
+
/* @__PURE__ */ jsx55("div", { className: "min-w-0 flex-1", children: !selectedName ? /* @__PURE__ */ jsxs47("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [
|
|
8465
|
+
/* @__PURE__ */ jsx55(Puzzle2, { className: "h-10 w-10 text-gray-300 dark:text-gray-600" }),
|
|
8466
|
+
/* @__PURE__ */ jsx55("p", { className: "mt-3 text-sm text-gray-500 dark:text-gray-400", children: "Select a plugin to view or edit its configuration." })
|
|
8467
|
+
] }) : /* @__PURE__ */ jsx55("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__ */ jsxs47(Fragment12, { children: [
|
|
8468
|
+
/* @__PURE__ */ jsxs47("h2", { className: "text-sm font-medium text-gray-700 dark:text-gray-300 mb-4", children: [
|
|
8469
|
+
selectedDescriptor.label || selectedDescriptor.name,
|
|
8470
|
+
" \u2014 Configuration"
|
|
8471
|
+
] }),
|
|
8472
|
+
/* @__PURE__ */ jsx55(
|
|
8473
|
+
PluginSettingsPanel,
|
|
8474
|
+
{
|
|
8475
|
+
descriptor: selectedDescriptor,
|
|
8476
|
+
onSaved: () => refreshEnabled(selectedDescriptor.name)
|
|
8477
|
+
}
|
|
8478
|
+
)
|
|
8479
|
+
] }) : /* @__PURE__ */ jsxs47("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [
|
|
8480
|
+
/* @__PURE__ */ jsx55(Puzzle2, { className: "h-10 w-10 text-gray-300 dark:text-gray-600" }),
|
|
8481
|
+
/* @__PURE__ */ jsx55("p", { className: "mt-3 text-sm text-gray-500 dark:text-gray-400", children: "No configuration available for this plugin." })
|
|
8482
|
+
] }) }) })
|
|
8483
|
+
] }) })
|
|
8255
8484
|
] });
|
|
8256
8485
|
}
|
|
8257
8486
|
|
|
8258
8487
|
// src/admin/pages/BrandEditPage.tsx
|
|
8259
|
-
import { useState as
|
|
8488
|
+
import { useState as useState31, useEffect as useEffect29 } from "react";
|
|
8260
8489
|
import { useRouter as useRouter11 } from "next/navigation";
|
|
8261
8490
|
import { AlertCircle as AlertCircle5 } from "lucide-react";
|
|
8262
8491
|
|
|
@@ -8349,23 +8578,23 @@ async function fetchSeo(seoId) {
|
|
|
8349
8578
|
}
|
|
8350
8579
|
|
|
8351
8580
|
// src/admin/pages/BrandEditPage.tsx
|
|
8352
|
-
import { Fragment as
|
|
8581
|
+
import { Fragment as Fragment13, jsx as jsx57, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
8353
8582
|
var isCreate = (id) => id === "create";
|
|
8354
8583
|
function BrandEditPage({ brandId }) {
|
|
8355
8584
|
const router = useRouter11();
|
|
8356
8585
|
const create = isCreate(brandId);
|
|
8357
|
-
const [loading, setLoading] =
|
|
8358
|
-
const [saving, setSaving] =
|
|
8359
|
-
const [errors, setErrors] =
|
|
8360
|
-
const [name, setName] =
|
|
8361
|
-
const [slug, setSlug] =
|
|
8362
|
-
const [description, setDescription] =
|
|
8363
|
-
const [logo, setLogo] =
|
|
8364
|
-
const [active, setActive] =
|
|
8365
|
-
const [sortOrder, setSortOrder] =
|
|
8366
|
-
const [seoId, setSeoId] =
|
|
8367
|
-
const [seo, setSeo] =
|
|
8368
|
-
|
|
8586
|
+
const [loading, setLoading] = useState31(!create);
|
|
8587
|
+
const [saving, setSaving] = useState31(false);
|
|
8588
|
+
const [errors, setErrors] = useState31([]);
|
|
8589
|
+
const [name, setName] = useState31("");
|
|
8590
|
+
const [slug, setSlug] = useState31("");
|
|
8591
|
+
const [description, setDescription] = useState31("");
|
|
8592
|
+
const [logo, setLogo] = useState31("");
|
|
8593
|
+
const [active, setActive] = useState31(true);
|
|
8594
|
+
const [sortOrder, setSortOrder] = useState31(0);
|
|
8595
|
+
const [seoId, setSeoId] = useState31(null);
|
|
8596
|
+
const [seo, setSeo] = useState31({ seoTitle: "", seoDescription: "", seoKeywords: "", seoOgTitle: "", seoOgDescription: "", seoOgImage: "" });
|
|
8597
|
+
useEffect29(() => {
|
|
8369
8598
|
if (create) return;
|
|
8370
8599
|
let cancelled = false;
|
|
8371
8600
|
(async () => {
|
|
@@ -8460,7 +8689,7 @@ function BrandEditPage({ brandId }) {
|
|
|
8460
8689
|
/* @__PURE__ */ jsx57(
|
|
8461
8690
|
DetailPageLayout,
|
|
8462
8691
|
{
|
|
8463
|
-
main: /* @__PURE__ */ jsxs49(
|
|
8692
|
+
main: /* @__PURE__ */ jsxs49(Fragment13, { children: [
|
|
8464
8693
|
/* @__PURE__ */ jsxs49("section", { children: [
|
|
8465
8694
|
/* @__PURE__ */ jsx57("h2", { className: "text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2", children: "Basic info" }),
|
|
8466
8695
|
/* @__PURE__ */ jsxs49("div", { className: "min-w-0 overflow-hidden border border-gray-200 rounded-lg p-4 bg-gray-50/50 space-y-4", children: [
|
|
@@ -8533,7 +8762,7 @@ function BrandEditPage({ brandId }) {
|
|
|
8533
8762
|
/* @__PURE__ */ jsx57("div", { className: "min-w-0 overflow-hidden border border-gray-200 rounded-lg p-4 bg-gray-50/50", children: /* @__PURE__ */ jsx57(SeoSection, { values: seo, onChange: (field, value) => setSeo((s) => ({ ...s, [field]: value })) }) })
|
|
8534
8763
|
] })
|
|
8535
8764
|
] }),
|
|
8536
|
-
sidebar: /* @__PURE__ */ jsx57(
|
|
8765
|
+
sidebar: /* @__PURE__ */ jsx57(Fragment13, { children: /* @__PURE__ */ jsxs49("section", { children: [
|
|
8537
8766
|
/* @__PURE__ */ jsx57("h2", { className: "text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2", children: "Status" }),
|
|
8538
8767
|
/* @__PURE__ */ jsx57("div", { className: "min-w-0 overflow-hidden border border-gray-200 rounded-lg p-4 bg-gray-50/50", children: /* @__PURE__ */ jsxs49("label", { className: "flex items-center gap-2 cursor-pointer", children: [
|
|
8539
8768
|
/* @__PURE__ */ jsx57(
|
|
@@ -8836,9 +9065,9 @@ var CRUD_CONFIGS = {
|
|
|
8836
9065
|
}
|
|
8837
9066
|
};
|
|
8838
9067
|
function BlogEditorWrapper({ blogId }) {
|
|
8839
|
-
const [blog, setBlog] =
|
|
8840
|
-
const [loading, setLoading] =
|
|
8841
|
-
|
|
9068
|
+
const [blog, setBlog] = useState32(null);
|
|
9069
|
+
const [loading, setLoading] = useState32(!!blogId);
|
|
9070
|
+
useEffect30(() => {
|
|
8842
9071
|
if (!blogId) return;
|
|
8843
9072
|
fetch(`/api/blogs/${blogId}`).then((res) => res.ok ? res.json() : null).then((data) => setBlog(data)).finally(() => setLoading(false));
|
|
8844
9073
|
}, [blogId]);
|
|
@@ -8851,9 +9080,9 @@ function BlogEditorWrapper({ blogId }) {
|
|
|
8851
9080
|
return /* @__PURE__ */ jsx58(BlogEditor, { existingBlog: blog });
|
|
8852
9081
|
}
|
|
8853
9082
|
function PolicyEditorWrapper({ policyId }) {
|
|
8854
|
-
const [policy, setPolicy] =
|
|
8855
|
-
const [loading, setLoading] =
|
|
8856
|
-
|
|
9083
|
+
const [policy, setPolicy] = useState32(null);
|
|
9084
|
+
const [loading, setLoading] = useState32(!!policyId);
|
|
9085
|
+
useEffect30(() => {
|
|
8857
9086
|
if (!policyId) return;
|
|
8858
9087
|
fetch(`/api/policies/${policyId}`).then((res) => res.ok ? res.json() : null).then((data) => setPolicy(data)).finally(() => setLoading(false));
|
|
8859
9088
|
}, [policyId]);
|
|
@@ -8869,7 +9098,7 @@ function AdminPageResolver({ slug }) {
|
|
|
8869
9098
|
const router = useRouter12();
|
|
8870
9099
|
const { customCrudConfigs, storeEnabled } = useContext6(AdminConfigContext);
|
|
8871
9100
|
const key = slug?.[0] || "dashboard";
|
|
8872
|
-
|
|
9101
|
+
useEffect30(() => {
|
|
8873
9102
|
if (key === "layout-settings") {
|
|
8874
9103
|
router.replace("/admin/settings?tab=navbar");
|
|
8875
9104
|
}
|
|
@@ -8948,22 +9177,22 @@ function AdminPageResolver({ slug }) {
|
|
|
8948
9177
|
}
|
|
8949
9178
|
|
|
8950
9179
|
// src/admin/pages/LayoutSettingsPage.tsx
|
|
8951
|
-
import { useState as
|
|
8952
|
-
import { Save as
|
|
9180
|
+
import { useState as useState33, useEffect as useEffect31, useContext as useContext7 } from "react";
|
|
9181
|
+
import { Save as Save7 } from "lucide-react";
|
|
8953
9182
|
import { jsx as jsx59, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
8954
9183
|
function LayoutSettingsPage() {
|
|
8955
9184
|
const { theme } = useContext7(AdminConfigContext);
|
|
8956
|
-
const [activeTab, setActiveTab] =
|
|
8957
|
-
const [navbarConfig, setNavbarConfig] =
|
|
9185
|
+
const [activeTab, setActiveTab] = useState33("navbar");
|
|
9186
|
+
const [navbarConfig, setNavbarConfig] = useState33({
|
|
8958
9187
|
logo: "",
|
|
8959
9188
|
items: [],
|
|
8960
9189
|
ctaLabel: "",
|
|
8961
9190
|
ctaUrl: ""
|
|
8962
9191
|
});
|
|
8963
|
-
const [footerValues, setFooterValues] =
|
|
8964
|
-
const [saving, setSaving] =
|
|
8965
|
-
const [loading, setLoading] =
|
|
8966
|
-
|
|
9192
|
+
const [footerValues, setFooterValues] = useState33({});
|
|
9193
|
+
const [saving, setSaving] = useState33(false);
|
|
9194
|
+
const [loading, setLoading] = useState33(true);
|
|
9195
|
+
useEffect31(() => {
|
|
8967
9196
|
fetch("/api/settings/theme").then((r) => r.ok ? r.json() : null).then((data) => {
|
|
8968
9197
|
if (!data) return;
|
|
8969
9198
|
if (data.navbar) {
|
|
@@ -9021,7 +9250,7 @@ function LayoutSettingsPage() {
|
|
|
9021
9250
|
disabled: saving,
|
|
9022
9251
|
className: "bg-white text-gray-800 hover:bg-gray-100 border-0 text-xs",
|
|
9023
9252
|
children: [
|
|
9024
|
-
/* @__PURE__ */ jsx59(
|
|
9253
|
+
/* @__PURE__ */ jsx59(Save7, { className: "h-4 w-4 mr-2" }),
|
|
9025
9254
|
saving ? "Saving..." : "Save"
|
|
9026
9255
|
]
|
|
9027
9256
|
}
|