{"version":3,"file":"DesignSystem.ENqcg2Ss.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/09EtQYz6H7ZB57wcSqAS/4ckaTapQvuLGjL5L7bj0/WooAuth.js","https:/framerusercontent.com/modules/2DOU9TeA96hAlS0vSsmF/bFEqQGizBEwo6fyWaVuT/DesignSystem.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{Link}from\"framer\";import{useEffect,useRef,useState}from\"react\";export const DEFAULT_STORAGE_KEY=\"framerwoo-auth-session\";const ACTIVE_CUSTOMER_STORAGE_KEY=\"framerwoo-active-customer\";function normalizeScopeSegment(value){return String(value??\"\").trim().toLowerCase().replace(/[^a-z0-9_-]+/g,\"-\").replace(/^-+|-+$/g,\"\");}export function getCustomerScopeFromSession(session){const userId=normalizeScopeSegment(session?.user?.id);if(userId)return`user:${userId}`;const email=normalizeScopeSegment(session?.user?.email);if(email)return`email:${email}`;return\"guest\";}function dispatchAuthChange(detail){if(typeof window===\"undefined\")return;window.dispatchEvent(new CustomEvent(\"framerwoo-auth-change\",{detail}));}function persistActiveCustomer(session,storageKey){if(typeof window===\"undefined\")return;if(!session){window.localStorage.removeItem(ACTIVE_CUSTOMER_STORAGE_KEY);return;}const snapshot={storageKey,scope:getCustomerScopeFromSession(session),token:session.token,user:session.user??null};window.localStorage.setItem(ACTIVE_CUSTOMER_STORAGE_KEY,JSON.stringify(snapshot));}export function getCurrentCustomerScope(){if(typeof window===\"undefined\")return\"guest\";try{const raw=window.localStorage.getItem(ACTIVE_CUSTOMER_STORAGE_KEY);if(!raw)return\"guest\";const parsed=JSON.parse(raw);return normalizeScopeSegment(parsed?.scope)?String(parsed?.scope):\"guest\";}catch{return\"guest\";}}export function getActiveCustomerSession(){if(typeof window===\"undefined\")return null;try{const raw=window.localStorage.getItem(ACTIVE_CUSTOMER_STORAGE_KEY);if(!raw)return null;const parsed=JSON.parse(raw);if(!parsed)return null;return{token:parsed.token,user:parsed.user??undefined};}catch{return null;}}export const loadSession=(storageKey=DEFAULT_STORAGE_KEY)=>{if(typeof window===\"undefined\")return null;const raw=window.localStorage.getItem(storageKey);if(!raw)return null;try{const session=JSON.parse(raw);if(session?.token||session?.user?.id||session?.user?.email){persistActiveCustomer(session,storageKey);}return session;}catch{return null;}};/**\n * Reads the saved auth session after hydration so the server and browser share\n * the same initial render. It also keeps every auth component synchronized.\n */export function useAuthSession(storageKey=DEFAULT_STORAGE_KEY){const[session,setSession]=useState(null);useEffect(()=>{const refresh=()=>setSession(loadSession(storageKey));refresh();window.addEventListener(\"framerwoo-auth-change\",refresh);window.addEventListener(\"storage\",refresh);return()=>{window.removeEventListener(\"framerwoo-auth-change\",refresh);window.removeEventListener(\"storage\",refresh);};},[storageKey]);return[session,setSession];}export const saveSession=(session,storageKey=DEFAULT_STORAGE_KEY)=>{if(typeof window===\"undefined\")return;window.localStorage.setItem(storageKey,JSON.stringify(session));persistActiveCustomer(session,storageKey);dispatchAuthChange({storageKey,session,scope:getCustomerScopeFromSession(session)});};export const clearSession=(storageKey=DEFAULT_STORAGE_KEY)=>{if(typeof window===\"undefined\")return;window.localStorage.removeItem(storageKey);persistActiveCustomer(null,storageKey);dispatchAuthChange({storageKey,session:null,scope:\"guest\"});};export const getAuthHeaders=(mode,token)=>{if(mode===\"jwt\"&&token){return{Authorization:`Bearer ${token}`};}return{};};export const resolveEndpoint=(siteUrl,endpoint)=>{if(!endpoint)return\"\";if(/^https?:\\/\\//i.test(endpoint))return endpoint;const base=siteUrl?siteUrl.replace(/\\/$/,\"\"):\"\";const path=endpoint.startsWith(\"/\")?endpoint:`/${endpoint}`;return`${base}${path}`;};export const resolveFramerLink=value=>{if(typeof value===\"string\")return value.trim();if(!value||typeof value!==\"object\")return\"\";const candidates=[value.url,value.href,value.path,value.pathname,value.to,value.link,value.value];for(const candidate of candidates){const resolved=resolveFramerLink(candidate);if(resolved)return resolved;}return\"\";};export function FramerManagedLink(props){const{href,openInNewTab,children}=props;const[isClient,setIsClient]=useState(false);useEffect(()=>{setIsClient(true);},[]);if(!isClient)return children;if(!href)return children;return /*#__PURE__*/_jsx(Link,{href:href,openInNewTab:openInNewTab,children:children});}export function FramerManagedRedirect(props){const{href,active,openInNewTab,onComplete}=props;const anchorRef=useRef(null);const[isClient,setIsClient]=useState(false);useEffect(()=>{setIsClient(true);},[]);useEffect(()=>{if(!isClient||!active||!href)return;const frame=window.requestAnimationFrame(()=>{anchorRef.current?.click();onComplete?.();});return()=>window.cancelAnimationFrame(frame);},[active,href,isClient,onComplete]);if(!isClient||!href)return null;return /*#__PURE__*/_jsx(Link,{href:href,openInNewTab:openInNewTab,children:/*#__PURE__*/_jsx(\"a\",{ref:anchorRef,style:{display:\"none\"},\"aria-hidden\":\"true\",tabIndex:-1})});}function resolveFramerProjectPageUrl(url){if(typeof window===\"undefined\")return url;if(!url.startsWith(\"/\")||url.startsWith(\"//\"))return url;const previewDomain=resolveFramerPreviewDomain();if(previewDomain){return`${previewDomain}${url}`;}try{const{origin,hostname,pathname}=window.location;if(hostname.includes(\"framercanvas.com\")){return`${origin}${url}`;}if(pathname.includes(\"/s/app\")){return`${origin}${url}`;}}catch{// Fall through to other Framer preview modes.\n}const previewModuleSuffix=\"/preview-module.html\";const candidates=[window.location,window.top?.location].filter(Boolean);for(const locationLike of candidates){try{const pathname=locationLike.pathname;const origin=locationLike.origin;if(pathname.endsWith(previewModuleSuffix)){const basePath=pathname.slice(0,-previewModuleSuffix.length);return`${origin}${basePath}${url}`;}}catch{continue;}}return url;}function safeDecodeURIComponent(value){try{return decodeURIComponent(value);}catch{return value;}}function normalizePreviewDomain(value){const trimmed=value.trim().replace(/\\/+$/,\"\");if(!trimmed)return\"\";if(/^https?:\\/\\//i.test(trimmed))return trimmed;return`https://${trimmed.replace(/^\\/+/,\"\")}`;}function extractPreviewDomainCandidate(rawValue){if(!rawValue)return\"\";const decodedValue=safeDecodeURIComponent(rawValue);const decodedMatch=decodedValue.match(/\"previewDomain\"\\s*:\\s*\"([^\"]+)\"/i);if(decodedMatch?.[1]){return normalizePreviewDomain(decodedMatch[1]);}const encodedMatch=rawValue.match(/previewDomain%22%3A%22([^\"%]+?)(?:%22|[&/])/i);if(encodedMatch?.[1]){return normalizePreviewDomain(safeDecodeURIComponent(encodedMatch[1]));}return\"\";}function resolveFramerPreviewDomain(){if(typeof window===\"undefined\")return\"\";const candidates=[window.location.href,document.referrer].filter(Boolean);for(const candidate of candidates){const previewDomain=extractPreviewDomainCandidate(candidate);if(previewDomain)return previewDomain;}return\"\";}export function resolveFramerNavigationUrl(value){return resolveFramerProjectPageUrl(resolveFramerLink(value));}export const navigateToFramerLink=(value,options)=>{if(typeof window===\"undefined\")return false;const url=resolveFramerNavigationUrl(value);if(!url)return false;if(options?.openInNewTab){window.open(url,\"_blank\",\"noopener,noreferrer\");return true;}try{const targetUrl=new URL(url,window.location.href).toString();window.location.assign(targetUrl);}catch{window.location.assign(url);}return true;};\nexport const __FramerMetadata__ = {\"exports\":{\"resolveFramerLink\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveEndpoint\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AuthSession\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAuthSession\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getAuthHeaders\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FramerManagedRedirect\":{\"type\":\"reactComponent\",\"name\":\"FramerManagedRedirect\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearSession\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AuthMode\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FramerManagedLink\":{\"type\":\"reactComponent\",\"name\":\"FramerManagedLink\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"saveSession\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_STORAGE_KEY\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getActiveCustomerSession\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveFramerNavigationUrl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FramerLinkValue\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCurrentCustomerScope\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navigateToFramerLink\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCustomerScopeFromSession\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"loadSession\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WooAuth.map","/**\r\n * FramerWoo Design System - \"Warm Artisan Boutique\" Style\r\n *\r\n * A refined, approachable aesthetic designed for WooCommerce store owners\r\n * serving fashion, beauty, eco-friendly, and handmade product niches.\r\n *\r\n * Design Philosophy:\r\n * - Warm and inviting color palette (creams, terracotta, sage)\r\n * - Soft, rounded corners for approachable feel\r\n * - Generous whitespace and clear hierarchy\r\n * - Subtle micro-interactions and smooth transitions\r\n * - Premium but accessible aesthetic\r\n */// ============================================================\n// COLOR PALETTE\n// ============================================================\nexport const colors={// Primary - Warm neutrals\nbackground:\"#FDFBF7\",surface:\"#FFFFFF\",surfaceHover:\"#FAF8F5\",// Text hierarchy\ntextPrimary:\"#2D2926\",textSecondary:\"#6B635B\",textMuted:\"#9B9389\",textInverse:\"#FFFFFF\",// Accent colors\naccent:\"#000000\",accentHover:\"#1A1919\",accentLight:\"#F5F5F5\",secondary:\"#7B9E87\",secondaryHover:\"#648871\",secondaryLight:\"#E8F0EA\",// Semantic colors\nsuccess:\"#6B9E78\",successLight:\"#E8F0EA\",warning:\"#D4A853\",warningLight:\"#FDF6E3\",error:\"#C95C5C\",errorLight:\"#FAEAEA\",border:\"#E8E4DF\",borderHover:\"#D4CFC8\",borderFocus:\"#000000\",// Shadows (warm-tinted)\nshadowLight:\"rgba(45, 41, 38, 0.04)\",shadowMedium:\"rgba(45, 41, 38, 0.08)\",shadowHeavy:\"rgba(45, 41, 38, 0.12)\"};// ============================================================\n// TYPOGRAPHY\n// ============================================================\nexport const typography={// Font families - using system fonts that work in Framer\n// Designers can override via Framer's font controls\nfontFamily:{body:'-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',heading:'-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',mono:'\"SF Mono\", SFMono-Regular, Consolas, \"Liberation Mono\", Menlo, monospace'},// Font sizes (rem-based for accessibility, converted to px)\nfontSize:{xs:11,sm:12,base:14,md:15,lg:16,xl:18,\"2xl\":22,\"3xl\":28},// Font weights\nfontWeight:{normal:400,medium:500,semibold:600,bold:700},// Line heights\nlineHeight:{tight:1.25,normal:1.5,relaxed:1.625},// Letter spacing\nletterSpacing:{tight:-.02,normal:0,wide:.02,wider:.05}};// ============================================================\n// SPACING\n// ============================================================\nexport const spacing={0:0,1:4,2:8,3:12,4:16,5:20,6:24,8:32,10:40,12:48,16:64};// ============================================================\n// BORDERS & RADIUS\n// ============================================================\nexport const borders={radius:{sm:6,md:8,lg:12,xl:16,full:9999},width:{thin:1,medium:2}};// ============================================================\n// SHADOWS\n// ============================================================\nexport const shadows={none:\"none\",sm:`0 1px 2px ${colors.shadowLight}`,md:`0 2px 8px ${colors.shadowMedium}`,lg:`0 4px 16px ${colors.shadowMedium}`,xl:`0 8px 24px ${colors.shadowHeavy}`,// Elevated shadow for hover states\nelevated:`0 4px 20px ${colors.shadowMedium}`,// Inner shadow for inputs\ninner:`inset 0 1px 2px ${colors.shadowLight}`,// Focus ring\nfocus:`0 0 0 3px ${colors.accentLight}`};// ============================================================\n// TRANSITIONS\n// ============================================================\nexport const transitions={fast:\"all 0.15s ease\",normal:\"all 0.2s ease\",slow:\"all 0.3s ease\",// Specific properties\ncolor:\"color 0.15s ease, background-color 0.15s ease\",transform:\"transform 0.2s ease\",shadow:\"box-shadow 0.2s ease\",opacity:\"opacity 0.2s ease\"};// ============================================================\n// COMPONENT STYLES\n// ============================================================\nexport const componentStyles={// Primary Button (Add to Cart, Checkout, etc.)\nbuttonPrimary:{background:colors.accent,color:colors.textInverse,border:\"none\",borderRadius:borders.radius.md,padding:`${spacing[3]}px ${spacing[5]}px`,fontSize:typography.fontSize.base,fontWeight:typography.fontWeight.semibold,cursor:\"pointer\",transition:transitions.normal,boxShadow:shadows.sm},buttonPrimaryHover:{background:colors.accentHover,boxShadow:shadows.md,transform:\"translateY(-1px)\"},buttonPrimaryDisabled:{background:colors.border,color:colors.textMuted,cursor:\"not-allowed\",boxShadow:\"none\",transform:\"none\"},// Secondary Button\nbuttonSecondary:{background:\"transparent\",color:colors.textPrimary,border:`${borders.width.thin}px solid ${colors.border}`,borderRadius:borders.radius.md,padding:`${spacing[3]}px ${spacing[5]}px`,fontSize:typography.fontSize.base,fontWeight:typography.fontWeight.medium,cursor:\"pointer\",transition:transitions.normal},buttonSecondaryHover:{borderColor:colors.borderHover,background:colors.surfaceHover},// Ghost Button (icon buttons, quantity controls)\nbuttonGhost:{background:\"transparent\",color:colors.textSecondary,border:`${borders.width.thin}px solid ${colors.border}`,borderRadius:borders.radius.md,padding:spacing[2],fontSize:typography.fontSize.base,cursor:\"pointer\",transition:transitions.normal,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},buttonGhostHover:{borderColor:colors.borderHover,background:colors.surfaceHover,color:colors.textPrimary},// Input fields\ninput:{width:\"100%\",padding:`${spacing[3]}px ${spacing[4]}px`,fontSize:typography.fontSize.base,color:colors.textPrimary,background:colors.surface,border:`${borders.width.thin}px solid ${colors.border}`,borderRadius:borders.radius.md,transition:transitions.fast,outline:\"none\"},inputFocus:{borderColor:colors.borderFocus,boxShadow:shadows.focus},inputError:{borderColor:colors.error,boxShadow:`0 0 0 3px ${colors.errorLight}`},// Card container\ncard:{background:colors.surface,borderRadius:borders.radius.lg,padding:spacing[4],boxShadow:shadows.sm,border:`${borders.width.thin}px solid ${colors.border}`},// Badge (sale, stock, cart count)\nbadge:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",padding:`${spacing[1]}px ${spacing[2]}px`,fontSize:typography.fontSize.xs,fontWeight:typography.fontWeight.semibold,letterSpacing:typography.letterSpacing.wide,textTransform:\"uppercase\",borderRadius:borders.radius.sm},badgeAccent:{background:colors.accent,color:colors.textInverse},badgeSuccess:{background:colors.successLight,color:colors.success},badgeWarning:{background:colors.warningLight,color:colors.warning},badgeError:{background:colors.errorLight,color:colors.error},// Price display\npriceRegular:{fontSize:typography.fontSize.xl,fontWeight:typography.fontWeight.semibold,color:colors.textPrimary,letterSpacing:typography.letterSpacing.tight},priceStrikethrough:{fontSize:typography.fontSize.base,fontWeight:typography.fontWeight.normal,color:colors.textMuted,textDecoration:\"line-through\"},priceSale:{fontSize:typography.fontSize.xl,fontWeight:typography.fontWeight.semibold,color:colors.accent,letterSpacing:typography.letterSpacing.tight},// Labels\nlabel:{fontSize:typography.fontSize.sm,fontWeight:typography.fontWeight.medium,color:colors.textSecondary,marginBottom:spacing[1],display:\"block\"},// Helper/error text\nhelperText:{fontSize:typography.fontSize.xs,color:colors.textMuted,marginTop:spacing[1]},errorText:{fontSize:typography.fontSize.xs,color:colors.error,marginTop:spacing[1]},// Divider\ndivider:{height:1,background:colors.border,border:\"none\",margin:`${spacing[4]}px 0`},// Overlay (for drawers, modals)\noverlay:{position:\"fixed\",inset:0,background:\"rgba(45, 41, 38, 0.4)\",backdropFilter:\"blur(4px)\",zIndex:9998},// Drawer panel\ndrawer:{position:\"fixed\",top:0,right:0,width:400,maxWidth:\"100vw\",height:\"100%\",background:colors.surface,boxShadow:shadows.xl,zIndex:9999,display:\"flex\",flexDirection:\"column\"}};// ============================================================\n// CSS HELPER FUNCTIONS\n// ============================================================\n/**\r\n * Merge multiple style objects, with later objects overriding earlier ones\r\n */export function mergeStyles(...styles){return Object.assign({},...styles.filter(Boolean));}/**\r\n * Apply hover styles conditionally\r\n */export function withHover(baseStyle,hoverStyle,isHovered){return isHovered?{...baseStyle,...hoverStyle}:baseStyle;}/**\r\n * Apply focus styles conditionally\r\n */export function withFocus(baseStyle,focusStyle,isFocused){return isFocused?{...baseStyle,...focusStyle}:baseStyle;}/**\r\n * Apply disabled styles conditionally\r\n */export function withDisabled(baseStyle,disabledStyle,isDisabled){return isDisabled?{...baseStyle,...disabledStyle}:baseStyle;}// ============================================================\n// CANVAS PLACEHOLDER STYLES\n// ============================================================\nexport const canvasPlaceholder={container:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:spacing[4],background:colors.surfaceHover,borderRadius:borders.radius.md,border:`1px dashed ${colors.border}`},text:{fontSize:typography.fontSize.sm,fontWeight:typography.fontWeight.medium,color:colors.textMuted,letterSpacing:typography.letterSpacing.wide}};// ============================================================\n// ANIMATION KEYFRAMES (as CSS string for injection)\n// ============================================================\nexport const animationCSS=`\r\n@keyframes woo-fade-in {\r\n  from { opacity: 0; }\r\n  to { opacity: 1; }\r\n}\r\n\r\n@keyframes woo-slide-in-right {\r\n  from { transform: translateX(100%); }\r\n  to { transform: translateX(0); }\r\n}\r\n\r\n@keyframes woo-slide-out-right {\r\n  from { transform: translateX(0); }\r\n  to { transform: translateX(100%); }\r\n}\r\n\r\n@keyframes woo-scale-in {\r\n  from { transform: scale(0.95); opacity: 0; }\r\n  to { transform: scale(1); opacity: 1; }\r\n}\r\n\r\n@keyframes woo-pulse {\r\n  0%, 100% { opacity: 1; }\r\n  50% { opacity: 0.7; }\r\n}\r\n\r\n@keyframes woo-bounce {\r\n  0%, 100% { transform: scale(1); }\r\n  50% { transform: scale(1.05); }\r\n}\r\n\r\n@keyframes woo-spin {\r\n  from { transform: rotate(0deg); }\r\n  to { transform: rotate(360deg); }\r\n}\r\n`;// ============================================================\n// EXPORT DEFAULT THEME OBJECT\n// ============================================================\nexport const theme={colors,typography,spacing,borders,shadows,transitions,componentStyles,canvasPlaceholder};export default theme;\nexport const __FramerMetadata__ = {\"exports\":{\"withDisabled\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFocus\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"shadows\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"canvasPlaceholder\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colors\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHover\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"typography\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"animationCSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"theme\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mergeStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"transitions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"componentStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"spacing\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borders\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DesignSystem.map"],"mappings":"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"}