Rocky_Mountain_Vending/.pnpm-store/v10/files/55/ee88ee06a3b26dd9073169c7b7acf76dfe83eb31a9408c9d67ee9f60a796c57d56d87c9cc85940b18bdd29deb75dc1c869d92dd5df75a0ec846b8a6796667c
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

28 lines
949 B
Text

export const zeroGap = {
left: 0,
top: 0,
right: 0,
gap: 0,
};
const parse = (x) => parseInt(x || '', 10) || 0;
const getOffset = (gapMode) => {
const cs = window.getComputedStyle(document.body);
const left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];
const top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];
const right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];
return [parse(left), parse(top), parse(right)];
};
export const getGapWidth = (gapMode = 'margin') => {
if (typeof window === 'undefined') {
return zeroGap;
}
const offsets = getOffset(gapMode);
const documentWidth = document.documentElement.clientWidth;
const windowWidth = window.innerWidth;
return {
left: offsets[0],
top: offsets[1],
right: offsets[2],
gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),
};
};