@infuro/cms-core 1.0.14 → 1.0.15

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.js CHANGED
@@ -334,7 +334,7 @@ var AdminConfigContext = createContext(defaultValue);
334
334
  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==";
335
335
 
336
336
  // src/lib/cms-version.ts
337
- var CMS_VERSION = true ? "1.0.14" : "0.0.0";
337
+ var CMS_VERSION = true ? "1.0.15" : "0.0.0";
338
338
 
339
339
  // src/components/Admin/Sidebar.tsx
340
340
  import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
@@ -5996,6 +5996,8 @@ function OrderDetailPage({ orderId }) {
5996
5996
  const [order, setOrder] = useState23(null);
5997
5997
  const [loading, setLoading] = useState23(true);
5998
5998
  const [error, setError] = useState23(null);
5999
+ const [erpEnabled, setErpEnabled] = useState23(false);
6000
+ const [reposting, setReposting] = useState23(false);
5999
6001
  useEffect21(() => {
6000
6002
  async function load() {
6001
6003
  try {
@@ -6019,6 +6021,39 @@ function OrderDetailPage({ orderId }) {
6019
6021
  }
6020
6022
  load();
6021
6023
  }, [orderId]);
6024
+ useEffect21(() => {
6025
+ let cancelled = false;
6026
+ (async () => {
6027
+ try {
6028
+ const res = await fetch(`/api/orders/${orderId}/repost-erp`);
6029
+ if (!res.ok) return;
6030
+ const data = await res.json();
6031
+ if (!cancelled) setErpEnabled(data.enabled === true);
6032
+ } catch {
6033
+ }
6034
+ })();
6035
+ return () => {
6036
+ cancelled = true;
6037
+ };
6038
+ }, [orderId]);
6039
+ async function handleRepostToErp() {
6040
+ if (reposting) return;
6041
+ setReposting(true);
6042
+ setError(null);
6043
+ try {
6044
+ const res = await fetch(`/api/orders/${orderId}/repost-erp`, { method: "POST" });
6045
+ if (!res.ok) {
6046
+ const body = await res.json().catch(() => ({}));
6047
+ setError(body.error ?? "Failed to repost to ERP");
6048
+ return;
6049
+ }
6050
+ router.refresh();
6051
+ } catch {
6052
+ setError("Failed to repost to ERP");
6053
+ } finally {
6054
+ setReposting(false);
6055
+ }
6056
+ }
6022
6057
  if (loading) {
6023
6058
  return /* @__PURE__ */ jsx49("div", { className: "rounded-lg bg-white p-6 shadow-md", children: /* @__PURE__ */ jsx49("div", { className: "flex justify-center py-12", children: /* @__PURE__ */ jsx49("span", { className: "text-gray-500", children: "Loading..." }) }) });
6024
6059
  }
@@ -6041,7 +6076,8 @@ function OrderDetailPage({ orderId }) {
6041
6076
  {
6042
6077
  title: `Order ${order.orderNumber}`,
6043
6078
  subtitle: /* @__PURE__ */ jsx49("span", { className: "text-sm text-gray-400", children: formatDateTime(order.createdAt) }),
6044
- closeHref: "/admin/orders"
6079
+ closeHref: "/admin/orders",
6080
+ menuItems: erpEnabled ? [{ label: reposting ? "Reposting..." : "Repost to ERP", onClick: handleRepostToErp }] : void 0
6045
6081
  }
6046
6082
  ),
6047
6083
  /* @__PURE__ */ jsx49(
@@ -9650,6 +9686,8 @@ function ProductEditPage({ productId }) {
9650
9686
  const [productSlug, setProductSlug] = useState32("");
9651
9687
  const [sku, setSku] = useState32("");
9652
9688
  const [hsn, setHsn] = useState32("");
9689
+ const [uom, setUom] = useState32("");
9690
+ const [productType, setProductType] = useState32("product");
9653
9691
  const [collectionId, setCollectionId] = useState32(null);
9654
9692
  const [brandId, setBrandId] = useState32(null);
9655
9693
  const [categoryId, setCategoryId] = useState32(null);
@@ -9663,6 +9701,8 @@ function ProductEditPage({ productId }) {
9663
9701
  const [specifications, setSpecifications] = useState32([{ key: "", value: "" }]);
9664
9702
  const [otherMetadata, setOtherMetadata] = useState32({});
9665
9703
  const [facetRows, setFacetRows] = useState32([{ name: "", value: "" }]);
9704
+ const [taxMasterList, setTaxMasterList] = useState32([]);
9705
+ const [taxRows, setTaxRows] = useState32([{ taxId: "", rate: "" }]);
9666
9706
  const [seoId, setSeoId] = useState32(null);
9667
9707
  const [seo, setSeo] = useState32({
9668
9708
  seoTitle: "",
@@ -9676,11 +9716,12 @@ function ProductEditPage({ productId }) {
9676
9716
  let cancelled = false;
9677
9717
  (async () => {
9678
9718
  try {
9679
- const [colRes, brandRes, catRes, attrRes] = await Promise.all([
9719
+ const [colRes, brandRes, catRes, attrRes, taxesRes] = await Promise.all([
9680
9720
  fetch("/api/collections?limit=500"),
9681
9721
  fetch("/api/brands?limit=500"),
9682
9722
  fetch("/api/product_categories?limit=500"),
9683
- fetch("/api/attributes?limit=500")
9723
+ fetch("/api/attributes?limit=500"),
9724
+ fetch("/api/taxes?limit=200&sortField=name&sortOrder=asc")
9684
9725
  ]);
9685
9726
  let attrList = [];
9686
9727
  if (!cancelled && colRes.ok) {
@@ -9699,6 +9740,13 @@ function ProductEditPage({ productId }) {
9699
9740
  const d = await attrRes.json();
9700
9741
  if (Array.isArray(d.data)) attrList = d.data;
9701
9742
  }
9743
+ if (!cancelled && taxesRes.ok) {
9744
+ const d = await taxesRes.json();
9745
+ const raw = Array.isArray(d.data) ? d.data : [];
9746
+ setTaxMasterList(
9747
+ raw.filter((t) => t.active !== false && t.deleted !== true)
9748
+ );
9749
+ }
9702
9750
  if (create) {
9703
9751
  if (!cancelled) {
9704
9752
  setProductSlug("");
@@ -9714,6 +9762,8 @@ function ProductEditPage({ productId }) {
9714
9762
  setProductSlug(typeof product.slug === "string" ? product.slug : "");
9715
9763
  setSku(product.sku ?? "");
9716
9764
  setHsn(product.hsn ?? "");
9765
+ setUom(product.uom != null ? String(product.uom) : "");
9766
+ setProductType(product.type === "service" ? "service" : "product");
9717
9767
  setCollectionId(product.collectionId ?? null);
9718
9768
  setBrandId(product.brandId ?? null);
9719
9769
  setCategoryId(product.categoryId ?? null);
@@ -9744,6 +9794,19 @@ function ProductEditPage({ productId }) {
9744
9794
  const seoData = await fetchSeo(product.seoId);
9745
9795
  if (!cancelled) setSeo(seoData);
9746
9796
  }
9797
+ const ptRes = await fetch(`/api/product_taxes?productId=${productId}&limit=100`);
9798
+ if (ptRes.ok && !cancelled) {
9799
+ const ptData = await ptRes.json();
9800
+ const pts = Array.isArray(ptData.data) ? ptData.data : [];
9801
+ if (pts.length > 0) {
9802
+ setTaxRows(
9803
+ pts.map((p) => ({
9804
+ taxId: p.taxId,
9805
+ rate: p.rate != null && p.rate !== "" ? String(p.rate) : ""
9806
+ }))
9807
+ );
9808
+ } else if (!cancelled) setTaxRows([{ taxId: "", rate: "" }]);
9809
+ }
9747
9810
  const paRes = await fetch(`/api/product_attributes?productId=${productId}&limit=100`);
9748
9811
  if (paRes.ok && !cancelled) {
9749
9812
  const paData = await paRes.json();
@@ -9792,6 +9855,8 @@ function ProductEditPage({ productId }) {
9792
9855
  name: name.trim(),
9793
9856
  sku: sku.trim() || null,
9794
9857
  hsn: hsn.trim() || null,
9858
+ uom: uom.trim() || null,
9859
+ type: productType,
9795
9860
  collectionId: collectionId || null,
9796
9861
  brandId: brandId || null,
9797
9862
  categoryId: categoryId || null,
@@ -9888,6 +9953,55 @@ function ProductEditPage({ productId }) {
9888
9953
  });
9889
9954
  }
9890
9955
  }
9956
+ const parseTaxRate = (s) => {
9957
+ const t = s.trim();
9958
+ if (!t) return null;
9959
+ const n = Number(t);
9960
+ return Number.isFinite(n) ? n : null;
9961
+ };
9962
+ const ratesDiffer = (a, b) => {
9963
+ if (a == null && b == null) return false;
9964
+ if (a == null || b == null) return true;
9965
+ return Math.abs(a - b) > 1e-6;
9966
+ };
9967
+ const wantedTax = /* @__PURE__ */ new Map();
9968
+ for (const row of taxRows) {
9969
+ if (row.taxId === "") continue;
9970
+ wantedTax.set(row.taxId, parseTaxRate(row.rate));
9971
+ }
9972
+ const ptListRes = await fetch(`/api/product_taxes?productId=${savedId}&limit=200`);
9973
+ const ptListData = ptListRes.ok ? await ptListRes.json() : { data: [] };
9974
+ const existingPt = Array.isArray(ptListData.data) ? ptListData.data : [];
9975
+ for (const ep of existingPt) {
9976
+ if (!wantedTax.has(ep.taxId)) {
9977
+ await fetch(`/api/product_taxes/${ep.id}`, { method: "DELETE" });
9978
+ }
9979
+ }
9980
+ const survivors = existingPt.filter((ep) => wantedTax.has(ep.taxId));
9981
+ for (const [taxId, rate] of wantedTax) {
9982
+ const ep = survivors.find((e) => e.taxId === taxId);
9983
+ if (!ep) {
9984
+ await fetch("/api/product_taxes", {
9985
+ method: "POST",
9986
+ headers: { "Content-Type": "application/json" },
9987
+ body: JSON.stringify({
9988
+ productId: Number(savedId),
9989
+ taxId,
9990
+ rate
9991
+ })
9992
+ });
9993
+ } else {
9994
+ const existingRate = ep.rate == null || String(ep.rate).trim() === "" ? null : Number(ep.rate);
9995
+ const er = Number.isFinite(existingRate) ? existingRate : null;
9996
+ if (ratesDiffer(er, rate)) {
9997
+ await fetch(`/api/product_taxes/${ep.id}`, {
9998
+ method: "PUT",
9999
+ headers: { "Content-Type": "application/json" },
10000
+ body: JSON.stringify({ rate })
10001
+ });
10002
+ }
10003
+ }
10004
+ }
9891
10005
  router.push("/admin/products");
9892
10006
  } catch {
9893
10007
  setErrors(["Failed to save"]);
@@ -9905,6 +10019,18 @@ function ProductEditPage({ productId }) {
9905
10019
  const addFacet = () => setFacetRows((prev) => [...prev, { name: "", value: "" }]);
9906
10020
  const removeFacet = (i) => setFacetRows((prev) => prev.length <= 1 ? prev : prev.filter((_, j) => j !== i));
9907
10021
  const setFacet = (i, field, value) => setFacetRows((prev) => prev.map((row, j) => j === i ? { ...row, [field]: value } : row));
10022
+ const addTaxRow = () => setTaxRows((prev) => [...prev, { taxId: "", rate: "" }]);
10023
+ const removeTaxRow = (i) => setTaxRows((prev) => prev.length <= 1 ? prev : prev.filter((_, j) => j !== i));
10024
+ const setTaxRow = (i, patch) => setTaxRows((prev) => prev.map((row, j) => j === i ? { ...row, ...patch } : row));
10025
+ const taxesForSelect = (rowIndex) => {
10026
+ const row = taxRows[rowIndex];
10027
+ const selectedElsewhere = new Set(
10028
+ taxRows.map((r, j) => j !== rowIndex && r.taxId !== "" ? r.taxId : null).filter((x) => x != null)
10029
+ );
10030
+ return taxMasterList.filter(
10031
+ (t) => !selectedElsewhere.has(t.id) || row && row.taxId !== "" && t.id === row.taxId
10032
+ );
10033
+ };
9908
10034
  if (loading) {
9909
10035
  return /* @__PURE__ */ jsx60("div", { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ jsx60("span", { className: "text-gray-500", children: "Loading..." }) });
9910
10036
  }
@@ -9949,6 +10075,36 @@ function ProductEditPage({ productId }) {
9949
10075
  /* @__PURE__ */ jsx60("input", { type: "text", value: hsn, onChange: (e) => setHsn(e.target.value), className: inputCls })
9950
10076
  ] })
9951
10077
  ] }),
10078
+ /* @__PURE__ */ jsxs50("div", { className: "grid grid-cols-2 gap-4", children: [
10079
+ /* @__PURE__ */ jsxs50("div", { children: [
10080
+ /* @__PURE__ */ jsx60("label", { className: labelCls, children: "UOM" }),
10081
+ /* @__PURE__ */ jsx60(
10082
+ "input",
10083
+ {
10084
+ type: "text",
10085
+ value: uom,
10086
+ onChange: (e) => setUom(e.target.value),
10087
+ className: inputCls,
10088
+ placeholder: "e.g. pcs, kg, hrs"
10089
+ }
10090
+ )
10091
+ ] }),
10092
+ /* @__PURE__ */ jsxs50("div", { children: [
10093
+ /* @__PURE__ */ jsx60("label", { className: labelCls, children: "Product type" }),
10094
+ /* @__PURE__ */ jsxs50(
10095
+ "select",
10096
+ {
10097
+ value: productType,
10098
+ onChange: (e) => setProductType(e.target.value === "service" ? "service" : "product"),
10099
+ className: inputCls,
10100
+ children: [
10101
+ /* @__PURE__ */ jsx60("option", { value: "product", children: "Product" }),
10102
+ /* @__PURE__ */ jsx60("option", { value: "service", children: "Service" })
10103
+ ]
10104
+ }
10105
+ )
10106
+ ] })
10107
+ ] }),
9952
10108
  /* @__PURE__ */ jsxs50("div", { className: "grid grid-cols-2 gap-4", children: [
9953
10109
  /* @__PURE__ */ jsxs50("div", { children: [
9954
10110
  /* @__PURE__ */ jsx60("label", { className: labelCls, children: "Brand" }),
@@ -9999,6 +10155,78 @@ function ProductEditPage({ productId }) {
9999
10155
  ] })
10000
10156
  ] })
10001
10157
  ] }),
10158
+ /* @__PURE__ */ jsxs50("section", { children: [
10159
+ /* @__PURE__ */ jsx60("h2", { className: "text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2", children: "Taxes" }),
10160
+ /* @__PURE__ */ jsx60("p", { className: "text-xs text-gray-500 mb-2", children: "Link taxes for this product. Leave rate empty to use the tax's default rate; set a value to override." }),
10161
+ /* @__PURE__ */ jsxs50("div", { className: `${sectionCls} space-y-2`, children: [
10162
+ taxRows.map((row, i) => {
10163
+ const options = taxesForSelect(i);
10164
+ const master = row.taxId !== "" ? taxMasterList.find((t) => t.id === row.taxId) : void 0;
10165
+ const defaultRateHint = master != null ? `Default: ${String(master.rate)}%` : void 0;
10166
+ return /* @__PURE__ */ jsxs50("div", { className: "flex flex-wrap gap-2 items-end", children: [
10167
+ /* @__PURE__ */ jsxs50("div", { className: "min-w-[160px] flex-1", children: [
10168
+ /* @__PURE__ */ jsx60("label", { className: labelCls, children: "Tax" }),
10169
+ /* @__PURE__ */ jsxs50(
10170
+ "select",
10171
+ {
10172
+ value: row.taxId === "" ? "" : String(row.taxId),
10173
+ onChange: (e) => {
10174
+ const v = e.target.value;
10175
+ setTaxRow(i, { taxId: v === "" ? "" : Number(v) });
10176
+ },
10177
+ className: inputCls,
10178
+ children: [
10179
+ /* @__PURE__ */ jsx60("option", { value: "", children: "\u2014" }),
10180
+ options.map((t) => /* @__PURE__ */ jsxs50("option", { value: t.id, children: [
10181
+ t.name,
10182
+ " (",
10183
+ String(t.rate),
10184
+ "%)"
10185
+ ] }, t.id))
10186
+ ]
10187
+ }
10188
+ )
10189
+ ] }),
10190
+ /* @__PURE__ */ jsxs50("div", { className: "w-28", children: [
10191
+ /* @__PURE__ */ jsx60("label", { className: labelCls, children: "Rate %" }),
10192
+ /* @__PURE__ */ jsx60(
10193
+ "input",
10194
+ {
10195
+ type: "text",
10196
+ inputMode: "decimal",
10197
+ value: row.rate,
10198
+ onChange: (e) => setTaxRow(i, { rate: e.target.value }),
10199
+ className: inputCls,
10200
+ placeholder: defaultRateHint ?? "optional",
10201
+ title: defaultRateHint
10202
+ }
10203
+ )
10204
+ ] }),
10205
+ /* @__PURE__ */ jsx60(
10206
+ "button",
10207
+ {
10208
+ type: "button",
10209
+ onClick: () => removeTaxRow(i),
10210
+ className: "p-2 text-gray-400 hover:text-red-600 rounded shrink-0 mb-0.5",
10211
+ children: /* @__PURE__ */ jsx60(Trash25, { className: "h-4 w-4" })
10212
+ }
10213
+ )
10214
+ ] }, i);
10215
+ }),
10216
+ /* @__PURE__ */ jsxs50(
10217
+ "button",
10218
+ {
10219
+ type: "button",
10220
+ onClick: addTaxRow,
10221
+ className: "inline-flex items-center gap-1 rounded border border-gray-300 bg-white px-2 py-1.5 text-xs font-medium text-gray-700 hover:bg-gray-50",
10222
+ children: [
10223
+ /* @__PURE__ */ jsx60(Plus9, { className: "h-3.5 w-3.5" }),
10224
+ " Add tax"
10225
+ ]
10226
+ }
10227
+ )
10228
+ ] })
10229
+ ] }),
10002
10230
  /* @__PURE__ */ jsxs50("section", { children: [
10003
10231
  /* @__PURE__ */ jsx60("h2", { className: "text-xs font-semibold text-gray-400 uppercase tracking-wider mb-2", children: "Attributes (facets)" }),
10004
10232
  /* @__PURE__ */ jsx60("p", { className: "text-xs text-gray-500 mb-2", children: "Search existing attributes or create new ones (like blog categories). Value on the right." }),