2026-01-27 18:27:29 +05:30
|
|
|
<!doctype html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
|
<link rel="icon" href="/fav.ico" />
|
2026-04-02 11:06:57 +05:30
|
|
|
<meta
|
|
|
|
|
name="viewport"
|
|
|
|
|
content="width=device-width, initial-scale=1.0, user-scalable=no"
|
|
|
|
|
/>
|
|
|
|
|
<!-- <link
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
href="https://cdn.jsdelivr.net/npm/antd/dist/reset.css"
|
|
|
|
|
/> -->
|
2026-01-27 18:27:29 +05:30
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
|
|
|
<link
|
|
|
|
|
rel="preload"
|
|
|
|
|
as="font"
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,400;0,500;0,600;0,700;1,200&display=swap"
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
/>
|
2026-02-11 17:21:58 +05:30
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
|
|
|
<link
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
/>
|
2026-01-27 18:27:29 +05:30
|
|
|
<link
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&family=Manrope:wght@200;300;400;500;600;700;800&family=Montserrat:wght@400;500;600;700&family=Poppins:ital,wght@1,200&display=swap"
|
|
|
|
|
/>
|
|
|
|
|
<link
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&family=Crimson+Pro:ital,wght@0,200..900;1,200..900&family=Dhurjati&family=Diplomata+SC&family=Inconsolata:wght@200..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Lexend+Zetta:wght@200;300;400;500;700&family=Libre+Franklin:ital,wght@0,100..900;1,100..900&family=Podkova:wght@400..800&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto+Slab:wght@200;300;400;500;600;700&family=VT323&family=Cute+Font&family=Kumar+One&family=Lemon&family=Lily+Script+One&family=M+PLUS+Rounded+1c&family=Maiden+Orange&family=Kode+Mono:wght@400..700&display=swap"
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
/>
|
|
|
|
|
<link
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Fredoka:wght@300..700&display=swap"
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
/>
|
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
|
|
|
<link
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Freeman&display=swap"
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
|
|
|
<link
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Concert+One&display=swap"
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<link
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Calistoga&display=swap"
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
/>
|
|
|
|
|
<link
|
|
|
|
|
href="https://fonts.googleapis.com/css2?family=Calistoga&display=swap"
|
|
|
|
|
rel="stylesheet"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<!-- <link href="https://vjs.zencdn.net/8.3.0/video-js.css" rel="stylesheet" /> -->
|
|
|
|
|
<!-- <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet"> -->
|
|
|
|
|
|
|
|
|
|
<title>Pozo Retail Software</title>
|
|
|
|
|
<!-- mohan -->
|
|
|
|
|
<!-- <script>
|
|
|
|
|
// Disable right-click menu and common hotkeys
|
|
|
|
|
document.addEventListener("contextmenu", (event) => event.preventDefault());
|
|
|
|
|
document.addEventListener("keydown", (event) => {
|
|
|
|
|
if (
|
|
|
|
|
(event.ctrlKey && event.shiftKey && ["I", "J", "C"].includes(event.key.toUpperCase())) ||
|
|
|
|
|
(event.ctrlKey && ["U", "S"].includes(event.key.toUpperCase())) ||
|
|
|
|
|
event.key === "F12"
|
|
|
|
|
) {
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
</script> -->
|
2026-04-02 11:06:57 +05:30
|
|
|
<!-- public/index.html -->
|
|
|
|
|
<script>
|
|
|
|
|
// Safety check for older WebViews
|
|
|
|
|
try {
|
|
|
|
|
document.querySelector(":where(div)");
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.warn(
|
|
|
|
|
"Old WebView detected - StyleProvider fix should handle this",
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
</script>
|
2026-04-10 17:41:59 +05:30
|
|
|
<!-- <script src="https://cdn.jsdelivr.net/npm/eruda"></script>
|
2026-01-27 18:27:29 +05:30
|
|
|
<script src="https://cdn.jsdelivr.net/npm/eruda-network"></script>
|
|
|
|
|
<script>
|
|
|
|
|
(function () {
|
|
|
|
|
// Always enable Eruda
|
|
|
|
|
eruda.init();
|
|
|
|
|
eruda.add(erudaNetwork);
|
|
|
|
|
eruda.show();
|
|
|
|
|
|
|
|
|
|
console.log("✅ Eruda Debug Console Loaded (Always On)");
|
|
|
|
|
|
|
|
|
|
// Axios interceptor for API logs
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
if (window.axios) {
|
|
|
|
|
axios.interceptors.request.use((config) => {
|
|
|
|
|
console.log(
|
|
|
|
|
"[API Request]",
|
|
|
|
|
config.method?.toUpperCase(),
|
|
|
|
|
config.url,
|
|
|
|
|
config.data
|
|
|
|
|
);
|
|
|
|
|
return config;
|
|
|
|
|
});
|
|
|
|
|
axios.interceptors.response.use(
|
|
|
|
|
(response) => {
|
|
|
|
|
console.log(
|
|
|
|
|
"[API Response]",
|
|
|
|
|
response.config.url,
|
|
|
|
|
response.status,
|
|
|
|
|
response.data
|
|
|
|
|
);
|
|
|
|
|
return response;
|
|
|
|
|
},
|
|
|
|
|
(error) => {
|
|
|
|
|
console.error(
|
|
|
|
|
"[API Error]",
|
|
|
|
|
error.config?.url,
|
|
|
|
|
error.message
|
|
|
|
|
);
|
|
|
|
|
return Promise.reject(error);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
console.log("✅ Axios interceptors attached");
|
|
|
|
|
} else {
|
|
|
|
|
console.warn("⚠️ Axios not found on window");
|
|
|
|
|
}
|
|
|
|
|
}, 2000);
|
|
|
|
|
})();
|
2026-04-10 17:41:59 +05:30
|
|
|
</script> -->
|
2026-04-02 11:06:57 +05:30
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
/* ============================================
|
|
|
|
|
Android POS - Global Fixes
|
|
|
|
|
Targets Android WebView (Chrome 83 and below)
|
|
|
|
|
where flex `gap` is NOT supported
|
|
|
|
|
============================================ */
|
|
|
|
|
|
|
|
|
|
html,
|
|
|
|
|
body {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
margin: 0;
|
|
|
|
|
padding: 0;
|
|
|
|
|
-webkit-user-select: none;
|
|
|
|
|
user-select: none;
|
|
|
|
|
-webkit-touch-callout: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ============================================
|
|
|
|
|
FIX 1: flex gap fallback for Android WebView
|
|
|
|
|
`gap` in flexbox needs Chrome 84+.
|
|
|
|
|
We use margin-based spacing as a universal fallback.
|
|
|
|
|
This targets ALL flex containers globally.
|
|
|
|
|
============================================ */
|
|
|
|
|
|
|
|
|
|
/* Ant Design specific flex gap fixes */
|
|
|
|
|
.ant-space-horizontal > .ant-space-item:not(:last-child) {
|
|
|
|
|
margin-right: 8px !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ant-space-vertical > .ant-space-item:not(:last-child) {
|
|
|
|
|
margin-bottom: 8px !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Ant Design Row/Col gap fix */
|
|
|
|
|
.ant-row {
|
|
|
|
|
display: -webkit-box !important;
|
|
|
|
|
display: -webkit-flex !important;
|
|
|
|
|
display: flex !important;
|
|
|
|
|
-webkit-flex-wrap: wrap !important;
|
|
|
|
|
flex-wrap: wrap !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ============================================
|
|
|
|
|
FIX 2: :where() selector fallback for Chrome 83
|
|
|
|
|
Ant Design v5 uses :where() which breaks on
|
|
|
|
|
older Android WebViews
|
|
|
|
|
============================================ */
|
|
|
|
|
.ant-btn {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
-webkit-box-sizing: border-box;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ant-form-item {
|
|
|
|
|
display: block;
|
|
|
|
|
-webkit-box-sizing: border-box;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Flex display with webkit prefix for old WebViews */
|
|
|
|
|
.ant-flex,
|
|
|
|
|
.ant-space,
|
|
|
|
|
.ant-row,
|
|
|
|
|
.ant-card,
|
|
|
|
|
.ant-card-body {
|
|
|
|
|
display: -webkit-box !important;
|
|
|
|
|
display: -webkit-flex !important;
|
|
|
|
|
display: flex !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ============================================
|
|
|
|
|
FIX 3: Ant Design Modal Override for Android
|
|
|
|
|
============================================ */
|
|
|
|
|
.ant-modal-wrap {
|
|
|
|
|
position: fixed !important;
|
|
|
|
|
top: 0 !important;
|
|
|
|
|
left: 0 !important;
|
|
|
|
|
width: 100% !important;
|
|
|
|
|
height: 100% !important;
|
|
|
|
|
/* z-index: 1000 !important; */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ant-modal {
|
|
|
|
|
margin: 0 !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ============================================
|
|
|
|
|
FIX 4: Safe area support for notch devices
|
|
|
|
|
============================================ */
|
|
|
|
|
@supports (padding: max(0px)) {
|
|
|
|
|
body {
|
|
|
|
|
padding-left: env(safe-area-inset-left);
|
|
|
|
|
padding-right: env(safe-area-inset-right);
|
|
|
|
|
padding-top: env(safe-area-inset-top);
|
|
|
|
|
padding-bottom: env(safe-area-inset-bottom);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
2026-01-27 18:27:29 +05:30
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<div id="root"></div>
|
|
|
|
|
<script type="module" src="/src/main.jsx"></script>
|
|
|
|
|
<script
|
|
|
|
|
type="module"
|
|
|
|
|
href="@import url('https://fonts.googleapis.com/css2?family=Calistoga&display=swap')"
|
|
|
|
|
></script>
|
|
|
|
|
<!-- <script src="https://vjs.zencdn.net/8.3.0/video.min.js"></script> -->
|
|
|
|
|
<!-- <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> -->
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
<!-- <iframe id="ifmcontentstoprint" style="
|
|
|
|
|
height: 0px;
|
|
|
|
|
width: 0px;
|
|
|
|
|
position: absolute;
|
|
|
|
|
padding: 0px;
|
|
|
|
|
margin: 0px;
|
|
|
|
|
/* font-family: 'Poppins', sans-serif; */
|
|
|
|
|
"></iframe> -->
|
|
|
|
|
</html>
|