PageSourceSearch

https://globalsku.app/login

html globalsku.app collected 2026-10-02 00:42:25 UTC 81,868 bytes, 1,664 lines download raw bytes

1<!DOCTYPE html>
2<html
3    lang="en"
4    dir="ltr"
5    class="fi min-h-screen"
6>
7    <head>
8        
8<script>
9    (function () {
10        var updatePath = "\/update-app";
11
12        function isLegacyCapacitor() {
13            try {
14                if (window.Capacitor) return true;
15                var ua = String(navigator.userAgent || '');
16                return ua.indexOf('Capacitor') !== -1 || ua.indexOf('GlobalSKU') !== -1;
17            } catch (e) {
18                return false;
19            }
20        }
21
22        function redirect() {
23            try {
24                if (!isLegacyCapacitor()) return;
25                if (window.location.pathname === updatePath) return;
26                window.location.replace(updatePath);
27            } catch (e) {}
28        }
29
30        redirect();
31        document.addEventListener('DOMContentLoaded', redirect);
32        setTimeout(redirect, 50);
33        setTimeout(redirect, 300);
34    })();
35</script>
35
36<!-- Web Application Manifest -->
37<link rel="manifest" href="https://globalsku.app/manifest.json">
38<!-- Chrome for Android theme color -->
39<meta name="theme-color" content="#000000">
40
41<!-- Add to homescreen for Chrome on Android -->
42<meta name="mobile-web-app-capable" content="yes">
43<meta name="application-name" content="GlobalSKU">
44<link rel="icon" sizes="512x512" href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-512x512.png">
45
46<!-- Add to homescreen for Safari on iOS -->
47<meta name="apple-mobile-web-app-capable" content="yes">
48<meta name="apple-mobile-web-app-status-bar-style" content="black">
49<meta name="apple-mobile-web-app-title" content="GlobalSKU">
50<link rel="apple-touch-icon" href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-512x512.png">
51
52
53<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-640x1136.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
54<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-750x1334.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
55<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-1242x2208.png" media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image" />
56<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-1125x2436.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image" />
57<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-828x1792.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
58<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-1242x2688.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image" />
59<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-1536x2048.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
60<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-1668x2224.png" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
61<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-1668x2388.png" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
62<link href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/splash-2048x2732.png" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
63
64<!-- Tile for Win8 -->
65<meta name="msapplication-TileColor" content="#000000">
66<meta name="msapplication-TileImage" content="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-512x512.png">
67
68<script type="text/javascript">
69    var filesToCache = [
70        '/offline',
71        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/css/app.css',
72        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/js/app.js',
73        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-72x72.png',
74        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-96x96.png',
75        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-128x128.png',
76        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-144x144.png',
77        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-152x152.png',
78        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-192x192.png',
79        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-384x384.png',
80        'https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/icons/icon-512x512.png',
81    ];
82
83    // Initialize the service worker
84    if ('serviceWorker' in navigator) {
85
86        navigator.serviceWorker.register('/serviceworker.js', {
87            scope: '.'
88        }).then(function (registration) {
89            // Registration was successful
90            console.log('Laravel PWA: ServiceWorker registration successful with scope: ', registration.scope);
91        }, function (err) {
92            // registration failed :(
93            console.log('Laravel PWA: ServiceWorker registration failed: ', err);
94        });
95    }
96</script>
96<div id="gsku-deeplink-debug-banner"
97         style="display:none; position:fixed; top:0; left:0; right:0; z-index:999999; padding:10px 12px; background:rgba(0,0,0,0.85); color:#fff; font:12px/1.35 -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; word-break:break-word;">
98        <div style="opacity:0.9; font-weight:600; margin-bottom:4px;">GlobalSKU Deep Link Debug</div>
99        <div id="gsku-deeplink-debug-text"></div>
100    </div>
101    
101<script>
102        (function () {
103            try {
104                function isProbablyCapacitor() {
105                    try {
106                        if (window.Capacitor) return true;
107                        var ua = String(navigator.userAgent || '');
108                        return ua.indexOf('Capacitor') !== -1;
109                    } catch (e) {
110                        return false;
111                    }
112                }
113
114                // Enable debug banner via query param once, then persist in localStorage:
115                // open any page in the app with `?deeplink_debug=1`.
116                try {
117                    var params = new URL(window.location.href).searchParams;
118                    if (params && params.get('deeplink_debug') === '1') {
119                        localStorage.setItem('gsku_deeplink_debug', '1');
120                    }
121                } catch (e) {}
122
123                function debugEnabled() {
124                    try { return localStorage.getItem('gsku_deeplink_debug') === '1'; } catch (e) { return false; }
125                }
126
127                function debug(msg) {
128                    try {
129                        if (!debugEnabled()) return;
130                        console.log('[gsku-deeplink]', msg);
131                        var banner = document.getElementById('gsku-deeplink-debug-banner');
132                        var text = document.getElementById('gsku-deeplink-debug-text');
133                        if (banner && text) {
134                            banner.style.display = 'block';
135                            text.textContent = String(msg);
136                        }
137                    } catch (e) {}
138                }
139
140                function initCapacitorHandlers() {
141                    var Cap = window.Capacitor;
142                    if (!Cap || !Cap.Plugins || !Cap.Plugins.App) {
143                        debug('Capacitor not ready yet');
144                        return false;
145                    }
146
147                    var App = Cap.Plugins.App;
148                    // NOTE: We intentionally do NOT call `Browser.close()` here.
149                    // OAuth is happening in external Safari via Universal Links, so there is no in-app Browser
150                    // window to close. Calling close() when none exists can spam native logs and can also
151                    // increase navigation churn.
152
153                    var DEDUPE_KEY = 'gsku_deeplink_last_url';
154                    var DEDUPE_TS_KEY = 'gsku_deeplink_last_ts';
155                    var DEDUPE_WINDOW_MS = 15000; // 15s is plenty to prevent loops while still allowing retries later
156
157                    function shouldHandle(urlObj) {
158                        if (!urlObj) return false;
159                        // Handle custom scheme deep links that carry a target web URL.
160                        // Example: globalsku://open?url=https%3A%2F%2Fglobalsku.app%2Fgetting-started
161                        // Also handle OAuth callback deep links from social login:
162                        // Example: globalsku://auth/google/callback?code=...&state=...
163                        try {
164                            if (String(urlObj.protocol || '').toLowerCase() === 'globalsku:') {
165                                var host = String(urlObj.host || '').toLowerCase();
166                                return host === 'open' || host === 'auth';
167                            }
168                        } catch (e) {}
169                        var host = String(urlObj.host || '').toLowerCase();
170                        if (!host.endsWith('globalsku.app')) return false;
171                        var path = String(urlObj.pathname || '');
172
173                        // Only handle routes where we need to complete auth inside the webview
174                        // (avoids surprising navigation for unrelated links).
175                        return (
176                            path.indexOf('/integrations/') === 0 ||
177                            path.indexOf('/oauth/bridge') === 0 ||
178                            path.indexOf('/auth/') === 0
179                        );
180                    }
181
182                    function normalizeUrlForCompare(raw) {
183                        try {
184                            var u = new URL(String(raw));
185                            // Ignore app_mode differences when deduping, since we may add it.
186                            u.searchParams.delete('app_mode');
187                            return u.toString();
188                        } catch (e) {
189                            return String(raw || '');
190                        }
191                    }
192
193                    function recentlyHandled(dest) {
194                        try {
195                            var now = Date.now();
196                            var last = sessionStorage.getItem(DEDUPE_KEY);
197                            var lastTs = parseInt(sessionStorage.getItem(DEDUPE_TS_KEY) || '0', 10) || 0;
198                            if (!last || !lastTs) return false;
199                            if ((now - lastTs) > DEDUPE_WINDOW_MS) return false;
200                            return normalizeUrlForCompare(last) === normalizeUrlForCompare(dest);
201                        } catch (e) {
202                            return false;
203                        }
204                    }
205
206                    function markHandled(dest) {
207                        try {
208                            sessionStorage.setItem(DEDUPE_KEY, String(dest));
209                            sessionStorage.setItem(DEDUPE_TS_KEY, String(Date.now()));
210                        } catch (e) {}
211                    }
212
213                    function navigateTo(rawUrl) {
214                        if (!rawUrl) return;
215                        var urlObj;
216                        try {
217                            urlObj = new URL(String(rawUrl));
218                        } catch (e) {
219                            debug('Invalid URL: ' + rawUrl);
220                            return;
221                        }
222
223                        // Translate custom scheme deep links into a real web URL for the in-app webview.
224                        // This avoids "resume last screen" behavior when Safari opens the app.
225                        var fromCustomOpenDeepLink = false;
226                        try {
227                            if (String(urlObj.protocol || '').toLowerCase() === 'globalsku:') {
228                                var gskuHost = String(urlObj.host || '').toLowerCase();
229
230                                if (gskuHost === 'auth') {
231                                    // OAuth callback deep link from social login popup:
232                                    //   globalsku://auth/{provider}/callback?code=...&state=...
233                                    // Convert to a web URL so the main webview can complete
234                                    // the OAuth exchange (pass-2 of the native flow).
235                                    // The path on the deep link is /{provider}/callback, so the
236                                    // full web path becomes /auth/{provider}/callback.
237                                    try {
238                                        var webUrl = window.location.origin + '/auth' + urlObj.pathname;
239                                        var webUrlObj = new URL(webUrl);
240                                        // Copy every query param from the deep link
241                                        urlObj.searchParams.forEach(function (val, key) {
242                                            webUrlObj.searchParams.set(key, val);
243                                        });
244                                        // Signal pass-2 so the server processes the login instead
245                                        // of redirecting to the custom scheme again.
246                                        webUrlObj.searchParams.set('app_mode', '1');
247                                        urlObj = webUrlObj;
248                                        fromCustomOpenDeepLink = true;
249                                        debug('Converted auth deep link to web URL: ' + urlObj.toString());
250                                    } catch (e) {
251                                        debug('Failed to convert auth deep link: ' + e.message);
252                                        return;
253                                    }
254                                } else {
255                                    // Standard open deep link: globalsku://open?url=...
256                                    var target = null;
257                                    try { target = urlObj.searchParams.get('url'); } catch (e) {}
258                                    if (!target) {
259                                        debug('Ignored globalsku:// deep link (missing url param): ' + urlObj.toString());
260                                        return;
261                                    }
262                                    try {
263                                        urlObj = new URL(String(target));
264                                        fromCustomOpenDeepLink = true;
265                                    } catch (e) {
266                                        debug('Invalid target url in globalsku:// deep link: ' + String(target));
267                                        return;
268                                    }
269                                }
270                            }
271                        } catch (e) {}
272
273                        // For our explicit custom deep links, allow any path on our own domain.
274                        // For all other incoming URLs (Universal Links), keep a strict allow-list.
275                        if (fromCustomOpenDeepLink) {
276                            try {
277                                var hostForCustom = String(urlObj.host || '').toLowerCase();
278                                if (!hostForCustom.endsWith('globalsku.app')) {
279                                    debug('Ignored custom deep link target (wrong host): ' + urlObj.toString());
280                                    return;
281                                }
282                            } catch (e) {
283                                debug('Ignored custom deep link target (host parse error)');
284                                return;
285                            }
286                        } else if (!shouldHandle(urlObj)) {
287                            debug('Ignored URL (not handled): ' + urlObj.toString());
288                            return;
289                        }
290
291                        // Preserve "native app mode" across navigations
292                        try {
293                            urlObj.searchParams.set('app_mode', '1');
294                        } catch (e) {}
295
296                        var dest = urlObj.toString();
297                        if (recentlyHandled(dest)) {
298                            debug('Deduped URL (recently handled): ' + dest);
299                            return;
300                        }
301
302                        // If we are already on the destination (ignoring app_mode), don't churn navigation.
303                        try {
304                            if (normalizeUrlForCompare(window.location.href) === normalizeUrlForCompare(dest)) {
305                                debug('Already at destination: ' + dest);
306                                markHandled(dest);
307                                return;
308                            }
309                        } catch (e) {}
310
311                        debug('Navigate webview to: ' + dest);
312
313                        markHandled(dest);
314
315                        if (window.location.href !== dest) {
316                            window.location.href = dest;
317                        }
318                    }
319
320                    // Cold-start: if the app was launched by a Universal Link, get it.
321                    function tryLaunchUrl(label) {
322                        try {
323                            if (typeof App.getLaunchUrl !== 'function') return;
324                            App.getLaunchUrl().then(function (data) {
325                                debug(label + ' getLaunchUrl: ' + (d
325ata && data.url ? data.url : '(none)'));
326                                // getLaunchUrl() can keep returning the same value across navigations.
327                                // navigateTo() has its own dedupe, but we also avoid doing work if empty.
328                                if (data && data.url) navigateTo(data.url);
329                            }).catch(function (e) {
330                                debug(label + ' getLaunchUrl error');
331                            });
332                        } catch (e) {}
333                    }
334
335                    // Warm-start: app opened/resumed via a Universal Link.
336                    try {
337                        if (typeof App.addListener === 'function') {
338                            App.addListener('appUrlOpen', function (data) {
339                                debug('appUrlOpen: ' + (data && data.url ? data.url : '(none)'));
340                                navigateTo(data && data.url);
341                            });
342                        }
343                    } catch (e) {}
344
345                    // Retry a few times to avoid missing cold-start URLs due to race conditions.
346                    tryLaunchUrl('[t0]');
347                    setTimeout(function () { tryLaunchUrl('[t250ms]'); }, 250);
348                    setTimeout(function () { tryLaunchUrl('[t1500ms]'); }, 1500);
349
350                    // Open selected URLs outside the webview (e.g. billing / manage subscription).
351                    // Usage: add `data-open-external="1"` to <a> tags.
352                    try {
353                        document.addEventListener('click', function (event) {
354                            var a = event.target && event.target.closest ? event.target.closest('a[data-open-external="1"]') : null;
355                            if (!a) return;
356
357                            var href = a.getAttribute('href');
358                            if (!href) return;
359
360                            // Build an absolute URL (Capacitor native plugins expect fully-qualified URLs).
361                            var absolute;
362                            try {
363                                absolute = new URL(href, window.location.origin).toString();
364                            } catch (e) {
365                                absolute = href;
366                            }
367
368                            event.preventDefault();
369                            event.stopPropagation();
370
371                            debug('Open external URL: ' + absolute);
372
373                            // Use App.openUrl() because it leaves the app (opens Safari).
374                            try {
375                                if (App && typeof App.openUrl === 'function') {
376                                    var p = App.openUrl({ url: absolute });
377                                    if (p && typeof p.catch === 'function') {
378                                        p.catch(function () {});
379                                    }
380                                    return;
381                                }
382                            } catch (e) {}
383
384                            // Fallback: plain window.open (on iOS WKWebView this may still stay in-app;
385                            // keep this only as a last resort when the native bridge isn't available).
386                            try {
387                                window.open(absolute, '_blank', 'noopener,noreferrer');
388                            } catch (e) {
389                                window.location.href = absolute;
390                            }
391                        }, true);
392                    } catch (e) {}
393
394                    debug('Capacitor handlers initialized');
395                    return true;
396                }
397
398                // Initialize if we're in-app. If Capacitor isn't ready yet, retry shortly.
399                if (!isProbablyCapacitor()) return;
400                if (!initCapacitorHandlers()) {
401                    setTimeout(function () { initCapacitorHandlers(); }, 50);
402                    setTimeout(function () { initCapacitorHandlers(); }, 250);
403                }
404            } catch (e) {
405                // no-op
406            }
407        })();
408    </script>
408
409
410
411
412<!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 412-413
412
413    <script async src="https://www.googletagmanager.com/gtag/js?id=
413G-HBYLQLGEF4
vendor: 16 bytes, lines 413-414
413"></script>
414    
414<script>
415        
vendor: 151 bytes, lines 415-418
415window.dataLayer = window.dataLayer || [];
416        function gtag(){dataLayer.push(arguments);}
417        gtag('js', new Date());
418        gtag('config', "
418G-HBYLQLGEF4
vendor: 8 bytes, lines 418-419
418");
419    
419</script>
419
420
421<!-- Meta Pixel Code (GlobalSKU Marketing 1632544451763683) -->
422    
422<script>
vendor: 471 bytes, lines 422-431
422
423        !function(f,b,e,v,n,t,s)
424        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
425        n.callMethod.apply(n,arguments):n.queue.push(arguments)};
426        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
427        n.queue=[];t=b.createElement(e);t.async=!0;
428        t.src=v;s=b.getElementsByTagName(e)[0];
429        s.parentNode.insertBefore(t,s)}(window, document,'script',
430        'https://connect.facebook.net/en_US/fbevents.js');
431        fbq('init', "
4311632544451763683
vendor: 47 bytes, lines 431-434
431");
432        fbq('track', 'PageView');
433
434        
434window.GlobalSkuMeta = window.GlobalSkuMeta || {
435            pixelId: "1632544451763683",
436            track: function (event, params) {
437                try {
438                    if (typeof fbq !== 'function') return;
439                    params = params || {};
440                    var eventID = params.eventID || params.event_id || null;
441                    var payload = Object.assign({}, params);
442                    delete payload.eventID;
443                    delete payload.event_id;
444                    if (eventID) {
445                        fbq('track', event, payload, {eventID: eventID});
446                    } else if (Object.keys(payload).length) {
447                        fbq('track', event, payload);
448                    } else {
449                        fbq('track', event);
450                    }
451                } catch (e) {}
452            },
453            completeRegistration: function (params) {
454                this.track('CompleteRegistration', params || {});
455            },
456            initiateCheckout: function (params) {
457                this.track('InitiateCheckout', params || { currency: 'USD' });
458            },
459            startTrial: function (params) {
460                this.track('StartTrial', params || { value: 0, currency: 'USD' });
461            },
462            purchase: function (params) {
463                this.track('Purchase', params || {});
464            },
465            trackOnce: function (storageKey, event, params) {
466                try {
467                    if (window.sessionStorage && sessionStorage.getItem(storageKey)) return;
468                    if (window.sessionStorage) sessionStorage.setItem(storageKey, '1');
469                } catch (e) {}
470                this.track(event, params);
471            }
472        };
473
474        
475        
476        // Fire InitiateCheckout when the user starts Stripe checkout (link or form).
477        document.addEventListener('click', function (event) {
478            try {
479                var anchor = event.target && event.target.closest
480                    ? event.target.closest('a[href*="/checkout/plan/"]')
481                    : null;
482                if (!anchor) return;
483                window.GlobalSkuMeta.initiateCheckout({ currency: 'USD' });
484                if (window.GlobalSkuFunnel && window.GlobalSkuFunnel.checkoutStarted) {
485                    window.GlobalSkuFunnel.checkoutStarted();
486                }
487            } catch (e) {}
488        }, true);
489
490        document.addEventListener('submit', function (event) {
491            try {
492                var form = event.target;
493                if (!form || !form.getAttribute) return;
494                var action = form.getAttribute('action') || '';
495                if (action.indexOf('/checkout/plan/') === -1) return;
496                window.GlobalSkuMeta.initiateCheckout({ currency: 'USD' });
497                if (window.GlobalSkuFunnel && window.GlobalSkuFunnel.checkoutStarted) {
498                    window.GlobalSkuFunnel.checkoutStarted();
499                }
500            } catch (e) {}
501        }, true);
502    </script>
502
503    <noscript>
504        <img height="1" width="1" style="display:none"
505             src="https://www.facebook.com/tr?id=1632544451763683&ev=PageView&noscript=1"
506             alt="" />
507    </noscript>
508    <!-- End Meta Pixel Code -->
509
510<script src="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/js/marketing-funnel.js"></script>
510
511
512
513
514<script>
515    document.addEventListener('DOMContentLoaded', function() {
516        var vp = document.querySelector('meta[name="viewport"]');
517        if (vp && vp.content.indexOf('viewport-fit') === -1) {
518            vp.content += ', viewport-fit=cover';
519        }
520    });
521</script>
521
522<style>
523    @supports(padding: env(safe-area-inset-top)) {
524        .fi-topbar > nav {
525            padding-top: env(safe-area-inset-top);
526        }
527        .fi-sidebar {
528            padding-top: env(safe-area-inset-top);
529        }
530        .fi-topbar-close-sidebar-btn,
531        .fi-topbar-open-sidebar-btn {
532            margin-top: 0;
533        }
534    }
535
536    /* Wordmark is white/silver — sit it on a dark chip in light Filament. */
537    html:not(.dark) .fi-logo {
538        background: #000;
539        border-radius: 0.5rem;
540        padding: 0.3rem 0.55rem;
541        box-sizing: content-box;
542    }
543</style>
544
545
546        <meta charset="utf-8" />
547        <meta name="csrf-token" content="Tpa2nqynYl8pi5qh13Fn8eSr8QBzsE9uTvIwrlQS" />
548        <meta name="viewport" content="width=device-width, initial-scale=1" />
549
550                    <link rel="icon" href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/favicon.ico" />
551        
552        
553        <title>
554            Login -  GlobalSKU
555        </title>
556
557        
558
559        <style>
560            [x-cloak=''],
561            [x-cloak='x-cloak'],
562            [x-cloak='1'] {
563                display: none !important;
564            }
565
566            @media (max-width: 1023px) {
567                [x-cloak='-lg'] {
568                    display: none !important;
569                }
570            }
571
572            @media (min-width: 1024px) {
573                [x-cloak='lg'] {
574                    display: none !important;
575                }
576            }
577        </style>
578
579        <link
580            href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/css/filament/forms/forms.css?v=3.3.43.0"
581            rel="stylesheet"
582            data-navigate-track
583        />
584                <link
585            href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/css/filament/support/support.css?v=3.3.43.0"
586            rel="stylesheet"
587            data-navigate-track
588        />
589    
590<style>
591    :root {
592         --danger-50:254, 242, 242;  --danger-100:254, 226, 226;  --danger-200:254, 202, 202;  --danger-300:252, 165, 165;  --danger-400:248, 113, 113;  --danger-500:239, 68, 68;  --danger-600:220, 38, 38;  --danger-700:185, 28, 28;  --danger-800:153, 27, 27;  --danger-900:127, 29, 29;  --danger-950:69, 10, 10;  --gray-50:249, 250, 251;  --gray-100:243, 244, 246;  --gray-200:229, 231, 235;  --gray-300:209, 213, 219;  --gray-400:156, 163, 175;  --gray-500:107, 114, 128;  --gray-600:75, 85, 99;  --gray-700:55, 65, 81;  --gray-800:31, 41, 55;  --gray-900:17, 24, 39;  --gray-950:3, 7, 18;  --info-50:239, 246, 255;  --info-100:219, 234, 254;  --info-200:191, 219, 254;  --info-300:147, 197, 253;  --info-400:96, 165, 250;  --info-500:59, 130, 246;  --info-600:37, 99, 235;  --info-700:29, 78, 216;  --info-800:30, 64, 175;  --info-900:30, 58, 138;  --info-950:23, 37, 84;  --primary-50:242, 252, 251;  --primary-100:230, 249, 246;  --primary-200:191, 241, 234;  --primary-300:153, 233, 221;  --primary-400:77, 216, 195;  --primary-500:0, 199, 169;  --primary-600:0, 179, 152;  --primary-700:0, 149, 127;  --primary-800:0, 119, 101;  --primary-900:0, 98, 83;  --primary-950:0, 60, 51;  --success-50:240, 253, 244;  --success-100:220, 252, 231;  --success-200:187, 247, 208;  --success-300:134, 239, 172;  --success-400:74, 222, 128;  --success-500:34, 197, 94;  --success-600:22, 163, 74;  --success-700:21, 128, 61;  --success-800:22, 101, 52;  --success-900:20, 83, 45;  --success-950:5, 46, 22;  --warning-50:255, 247, 237;  --warning-100:255, 237, 213;  --warning-200:254, 215, 170;  --warning-300:253, 186, 116;  --warning-400:251, 146, 60;  --warning-500:249, 115, 22;  --warning-600:234, 88, 12;  --warning-700:194, 65, 12;  --warning-800:154, 52, 18;  --warning-900:124, 45, 18;  --warning-950:67, 20, 7;     }
593</style>
594
595        <link
596            href="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/css/filament/filament/app.css?v=3.3.43.0"
597            rel="stylesheet"
598            data-navigate-track
599        />
600        
601            <link rel="preconnect" href="https://fonts.bunny.net">
602            <link href="https://fonts.bunny.net/css?family=inter:400,500,600,700&display=swap" rel="stylesheet" />
603        
604
605        <style>
606            :root {
607                --font-family: 'Inter';
608                --sidebar-width: 20rem;
609                --collapsed-sidebar-width: 4.5rem;
610                --default-theme-mode: dark;
611            }
612        </style>
613
614        
615        
616
617                    
617<script>
618                const loadDarkMode = () => {
619                    window.theme = localStorage.getItem('theme') ?? 'dark'
620                    if (
621                        window.theme === 'dark' ||
622                        (window.theme === 'system' &&
623                            window.matchMedia('(prefers-color-scheme: dark)')
624                                .matches)
625                    ) {
626                        document.documentElement.classList.add('dark')
627                    }
628                }
629
630                loadDarkMode()
631
632                document.addEventListener('livewire:navigated', loadDarkMode)
633            </script>
633
634        
635        
636    <!-- Livewire Styles --><style >[wire\:loading][wire\:loading], [wire\:loading\.delay][wire\:loading\.delay], [wire\:loading\.inline-block][wire\:loading\.inline-block], [wire\:loading\.inline][wire\:loading\.inline], [wire\:loading\.block][wire\:loading\.block], [wire\:loading\.flex][wire\:loading\.flex], [wire\:loading\.table][wire\:loading\.table], [wire\:loading\.grid][wire\:loading\.grid], [wire\:loading\.inline-flex][wire\:loading\.inline-flex] {display: none;}[wire\:loading\.delay\.none][wire\:loading\.delay\.none], [wire\:loading\.delay\.shortest][wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter][wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short][wire\:loading\.delay\.short], [wire\:loading\.delay\.default][wire\:loading\.delay\.default], [wire\:loading\.delay\.long][wire\:loading\.delay\.long], [wire\:loading\.delay\.longer][wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest][wire\:loading\.delay\.longest] {display: none;}[wire\:offline][wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}:root {--livewire-progress-bar-color: #2299dd;}[x-cloak] {display: none !important;}[wire\:cloak] {display: none !important;}</style>
637</head>
638
639    <body
640        class="fi-body fi-panel-app min-h-screen bg-gray-50 font-normal text-gray-950 antialiased dark:bg-gray-950 dark:text-white"
641    >
642        
643
644        <div class="fi-simple-layout flex min-h-screen flex-col items-center">
645        
646        <div
647            class="fi-simple-main-ctn flex w-full flex-grow items-center justify-center"
648        >
649            <main
650                class="fi-simple-main my-16 w-full bg-white px-6 py-12 shadow-sm ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10 sm:rounded-xl sm:px-12 max-w-lg"
651            >
652                <div wire:snapshot="{&quot;data&quot;:{&quot;data&quot;:[{&quot;email&quot;:null,&quot;password&quot;:null,&quot;remember&quot;:true},{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedActions&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedActionsArguments&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedActionsData&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;defaultAction&quot;:null,&quot;defaultActionArguments&quot;:null,&quot;componentFileAttachments&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;areFormStateUpdateHooksDisabledForTesting&quot;:false,&quot;mountedFormComponentActions&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedFormComponentActionsArguments&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedFormComponentActionsData&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedFormComponentActionsComponents&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedInfolistActions&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedInfolistActionsData&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}],&quot;mountedInfolistActionsComponent&quot;:null,&quot;mountedInfolistActionsInfolist&quot;:null},&quot;memo&quot;:{&quot;id&quot;:&quot;HwrOIPD0a2R5tibIBvqF&quot;,&quot;name&quot;:&quot;app.filament.pages.auth.login&quot;,&quot;path&quot;:&quot;login&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;children&quot;:[],&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;en&quot;},&quot;checksum&quot;:&quot;ec3c1bb12478c70ece2655d855afafaca939b171f6c5ac484cad6428852c73a1&quot;}" wire:effects="{&quot;url&quot;:{&quot;defaultAction&quot;:{&quot;as&quot;:&quot;action&quot;,&quot;use&quot;:&quot;replace&quot;,&quot;alwaysShow&quot;:false,&quot;except&quot;:null},&quot;defaultActionArguments&quot;:{&quot;as&quot;:&quot;actionArguments&quot;,&quot;use&quot;:&quot;replace&quot;,&quot;alwaysShow&quot;:false,&quot;except&quot;:null}}}" wire:id="HwrOIPD0a2R5tibIBvqF" class="fi-simple-page">
653    
654
655    <section class="grid auto-cols-fr gap-y-6">
656        <header class="fi-simple-header flex flex-col items-center">
657    <!--[if BLOCK]><![endif]-->        <!--[if BLOCK]><![endif]-->        <img
658            alt="GlobalSKU logo"
659            src="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/global-sku-logo.png"
660            style="height: 2rem;" class="fi-logo flex dark:hidden mb-4"
661        />
662    <!--[if ENDBLOCK]><![endif]-->
663
664            
665
666<!--[if BLOCK]><![endif]-->            
667    <!--[if BLOCK]><![endif]-->        <img
668            alt="GlobalSKU logo"
669            src="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/images/global-sku-logo.png"
670            style="height: 2rem;" class="fi-logo hidden dark:flex mb-4"
671        />
672    <!--[if ENDBLOCK]><![endif]-->
673
674            
675<!--[if ENDBLOCK]><![endif]-->
676    <!--[if ENDBLOCK]><![endif]-->
677
678    <!--[if BLOCK]><![endif]-->        <h1
679            class="fi-simple-header-heading text-center text-2xl font-bold tracking-tight text-gray-950 dark:text-white"
680        >
681            Sign in
682        </h1>
683    <!--[if ENDBLOCK]><![endif]-->
684
685    <!--[if BLOCK]><![endif]-->        <p
686            class="fi-simple-header-subheading mt-2 text-center text-sm text-gray-500 dark:text-gray-400"
687        >
688            or
689
690            <a
691        href="https://globalsku.app/register"
692                                class="fi-link group/link relative inline-flex items-center justify-center outline-none fi-size-md fi-link-size-md gap-1.5 fi-color-custom fi-color-primary fi-ac-action fi-ac-link-action"
693    >
694        
695        <span class="font-semibold text-sm text-custom-600 dark:text-custom-400 group-hover/link:underline group-focus-visible/link:underline" style="--c-400:var(--primary-400);--c-600:var(--primary-600);">
696            sign up for an account
697        </span>
698
699        
700            </a>
701        </p>
702    <!--[if ENDBLOCK]><![endif]-->
703</header>
704
705        <!--[if BLOCK]><![endif]-->             <!--[if ENDBLOCK]><![endif]-->
706
707    
708    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
709
710    
711
712    <form
713    method="post"
714    x-data="{ isProcessing: false }"
715    x-on:submit="if (isProcessing) $event.preventDefault()"
716    x-on:form-processing-started="isProcessing = true"
717    x-on:form-processing-finished="isProcessing = false"
718    class="fi-form grid gap-y-6" id="form" wire:submit="authenticate"
719>
720    <div
721    style="--cols-default: repeat(1, minmax(0, 1fr));" class="grid grid-cols-[--cols-default] fi-fo-component-ctn gap-6" x-data="{}" x-on:form-validation-error.window="if ($event.detail.livewireId !== &#039;HwrOIPD0a2R5tibIBvqF&#039;) {
722                return
723            }
724
725            $nextTick(() =&gt; {
726                let error = $el.querySelector(&#039;[data-validation-error]&#039;)
727
728                if (! error) {
729                    return
730                }
731
732                let elementToExpand = error
733
734                while (elementToExpand) {
735                    elementToExpand.dispatchEvent(new CustomEvent(&#039;expand&#039;))
736
737                    elementToExpand = elementToExpand.parentNode
738                }
739
740                setTimeout(
741                    () =&gt;
742                        error.closest(&#039;[data-field-wrapper]&#039;).scrollIntoView({
743                            behavior: &#039;smooth&#039;,
744                            block: &#039;start&#039;,
745                            inline: &#039;start&#039;,
746                        }),
747                    200,
748                )
749        })"
750>
751    <!--[if BLOCK]><![endif]-->        
752        <div
753    style="--col-span-default: span 1 / span 1;" class="col-[--col-span-default]" wire:key="HwrOIPD0a2R5tibIBvqF.data.email.Filament\Forms\Components\TextInput"
754>
755    <!--[if BLOCK]><![endif]-->                <div
756    data-field-wrapper
757    class="fi-fo-field-wrp"
758>
759    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
760
761    <div
762        class="grid gap-y-2"
763    >
764        <!--[if BLOCK]><![endif]-->            <div
765                class="flex items-center gap-x-3 justify-between "
766            >
767                <!--[if BLOCK]><![endif]-->                    <label
768    class="fi-fo-field-wrp-label inline-flex items-center gap-x-3" for="data.email"
769>
770    
771
772    <span class="text-sm font-medium leading-6 text-gray-950 dark:text-white">
773        
774        Email address<!--[if BLOCK]><![endif]-->
774<sup class="text-danger-600 dark:text-danger-400 font-medium">*</sup>
775        <!--[if ENDBLOCK]><![endif]-->
776    </span>
777
778    
779</label>
780                <!--[if ENDBLOCK]><![endif]-->
781
782                <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
783            </div>
784        <!--[if ENDBLOCK]><![endif]-->
785
786        <!--[if BLOCK]><![endif]-->            <div
787                class="grid auto-cols-fr gap-y-2"
788            >
789                <div
790        class="fi-input-wrp flex rounded-lg shadow-sm ring-1 transition duration-75 bg-white dark:bg-white/5 [&amp;:not(:has(.fi-ac-action:focus))]:focus-within:ring-2 ring-gray-950/10 dark:ring-white/20 [&amp;:not(:has(.fi-ac-action:focus))]:focus-within:ring-primary-600 dark:[&amp;:not(:has(.fi-ac-action:focus))]:focus-within:ring-primary-500 fi-fo-text-input overflow-hidden"
791>
792    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
793
794    <div
795                class="fi-input-wrp-input min-w-0 flex-1"
796    >
797        <input
798    class="fi-input block w-full border-none py-1.5 text-base text-gray-950 transition duration-75 placeholder:text-gray-400 focus:ring-0 disabled:text-gray-500 disabled:[-webkit-text-fill-color:theme(colors.gray.500)] disabled:placeholder:[-webkit-text-fill-color:theme(colors.gray.400)] dark:text-white dark:placeholder:text-gray-500 dark:disabled:text-gray-400 dark:disabled:[-webkit-text-fill-color:theme(colors.gray.400)] dark:disabled:placeholder:[-webkit-text-fill-color:theme(colors.gray.500)] sm:text-sm sm:leading-6 bg-white/0 ps-3 pe-3" autocomplete="on" autofocus="autofocus" id="data.email" required="required" type="email" wire:model="data.email" tabindex="1"
799/>
800    </div>
801
802    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
803</div>
804
805    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
806
807                <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
808
809                <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
810            </div>
811        <!--[if ENDBLOCK]><![endif]-->
812    </div>
813</div>
814
815            <!--[if ENDBLOCK]><![endif]-->
816</div>
817            
818        <div
819    style="--col-span-default: span 1 / span 1;" class="col-[--col-span-default]" wire:key="HwrOIPD0a2R5tibIBvqF.data.password.Filament\Forms\Components\TextInput"
820>
821    <!--[if BLOCK]><![endif]-->                <div
822    data-field-wrapper
823    class="fi-fo-field-wrp"
824>
825    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
826
827    <div
828        class="grid gap-y-2"
829    >
830        <!--[if BLOCK]><![endif]-->            <div
831                class="flex items-center gap-x-3 justify-between "
832            >
833                <!--[if BLOCK]><![endif]-->                    <label
834    class="fi-fo-field-wrp-label inline-flex items-center gap-x-3" for="data.password"
835>
836    
837
838    <span class="text-sm font-medium leading-6 text-gray-950 dark:text-white">
839        
840        Password<!--[if BLOCK]><![endif]-->
840<sup class="text-danger-600 dark:text-danger-400 font-medium">*</sup>
841        <!--[if ENDBLOCK]><![endif]-->
842    </span>
843
844    
845</label>
846                <!--[if ENDBLOCK]><![endif]-->
847
848                <!--[if BLOCK]><![endif]-->                    <div
849    class="fi-fo-field-wrp-hint flex items-center gap-x-3 text-sm"
850>
851    <!--[if BLOCK]><![endif]-->        <span
852            class="fi-fo-field-wrp-hint-label text-gray-500 dark:text-gray-400 fi-color-gray"
853            style="--c-400:var(--gray-400);--c-600:var(--gray-600);"
854        >
855            <a
856        href="https://globalsku.app/password-reset/request"
857                                class="fi-link group/link relative inline-flex items-center justify-center outline-none fi-size-md fi-link-size-md gap-1.5 fi-color-custom fi-color-primary" tabindex="3"
858    >
859        
860        <span class="font-semibold text-sm text-custom-600 dark:text-custom-400 group-hover/link:underline group-focus-visible/link:underline" style="--c-400:var(--primary-400);--c-600:var(--primary-600);">
861            Forgot password?
862        </span>
863
864        
865            </a>
866        </span>
867    <!--[if ENDBLOCK]><![endif]-->
868
869    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
870
871    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
872</div>
873                <!--[if ENDBLOCK]><![endif]-->
874            </div>
875        <!--[if ENDBLOCK]><![endif]-->
876
877        <!--[if BLOCK]><![endif]-->            <div
878                class="grid auto-cols-fr gap-y-2"
879            >
880                <div
881        class="fi-input-wrp flex rounded-lg shadow-sm ring-1 transition duration-75 bg-white dark:bg-white/5 [&amp;:not(:has(.fi-ac-action:focus))]:focus-within:ring-2 ring-gray-950/10 dark:ring-white/20 [&amp;:not(:has(.fi-ac-action:focus))]:focus-within:ring-primary-600 dark:[&amp;:not(:has(.fi-ac-action:focus))]:focus-within:ring-primary-500 fi-fo-text-input overflow-hidden" x-data="{ isPasswordRevealed: false }"
882>
883    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
884
885    <div
886                class="fi-input-wrp-input min-w-0 flex-1"
887    >
888        <input
889    class="fi-input block w-full border-none py-1.5 text-base text-gray-950 transition duration-75 placeholder:text-gray-400 focus:ring-0 disabled:text-gray-500 disabled:[-webkit-text-fill-color:theme(colors.gray.500)] disabled:placeholder:[-webkit-text-fill-color:theme(colors.gray.400)] dark:text-white dark:placeholder:text-gray-500 dark:disabled:text-gray-400 dark:disabled:[-webkit-text-fill-color:theme(colors.gray.400)] dark:disabled:placeholder:[-webkit-text-fill-color:theme(colors.gray.500)] sm:text-sm sm:leading-6 bg-white/0 ps-3 pe-3 [&amp;::-ms-reveal]:hidden" autocomplete="current-password" id="data.password" required="required" wire:model="data.password" x-bind:type="isPasswordRevealed ? 'text' : 'password'" tabindex="2"
890/>
891    </div>
892
893    <!--[if BLOCK]><![endif]-->        <div
894            class="fi-input-wrp-suffix flex items-center gap-x-3 pe-3 border-s border-gray-200 ps-3 dark:border-white/10"
895        >
896            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
897
898            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
899
900            <!--[if BLOCK]><![endif]-->                <div class="flex items-center gap-3">
901                    <!--[if BLOCK]><![endif]-->                        <!--[if BLOCK]><![endif]-->    <button
902                                style="--c-300:var(--gray-300);--c-400:var(--gray-400);--c-500:var(--gray-500);--c-600:var(--gray-600);" class="fi-icon-btn relative flex items-center justify-center rounded-lg outline-none transition duration-75 focus-visible:ring-2 -m-1.5 h-8 w-8 text-gray-400 hover:text-gray-500 focus-visible:ring-primary-600 dark:text-gray-500 dark:hover:text-gray-400 dark:focus-visible:ring-primary-500 fi-color-gray fi-ac-action fi-ac-icon-btn-action" title="Show password" type="button" wire:loading.attr="disabled" x-on:click="isPasswordRevealed = true" x-show="! isPasswordRevealed"
903    >
904        <!--[if BLOCK]><![endif]-->            <span class="sr-only">
905                Show password
906            </span>
907        <!--[if ENDBLOCK]><![endif]-->
908
909        <!--[if BLOCK]><![endif]-->    <svg class="fi-icon-btn-icon h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
910  <path d="M10 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z"/>
911  <path fill-rule="evenodd" d="M.664 10.59a1.651 1.651 0 0 1 0-1.186A10.004 10.004 0 0 1 10 3c4.257 0 7.893 2.66 9.336 6.41.147.381.146.804 0 1.186A10.004 10.004 0 0 1 10 17c-4.257 0-7.893-2.66-9.336-6.41ZM14 10a4 4 0 1 1-8 0 4 4 0 0 1 8 0Z" clip-rule="evenodd"/>
912</svg><!--[if ENDBLOCK]><![endif]-->
913
914        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
915
916        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
917    </button>
918<!--[if ENDBLOCK]><![endif]-->
919
920                                            <!--[if BLOCK]><![endif]-->    <button
921                                style="--c-300:var(--gray-300);--c-400:var(--gray-400);--c-500:var(--gray-500);--c-600:var(--gray-600);" class="fi-icon-btn relative flex items-center justify-center rounded-lg outline-none transition duration-75 focus-visible:ring-2 -m-1.5 h-8 w-8 text-gray-400 hover:text-gray-500 focus-visible:ring-primary-600 dark:text-gray-500 dark:hover:text-gray-400 dark:focus-visible:ring-primary-500 fi-color-gray fi-ac-action fi-ac-icon-btn-action" title="Hide password" type="button" wire:loading.attr="disabled" x-on:click="isPasswordRevealed = false" x-cloak="x-cloak" x-show="isPasswordRevealed"
922    >
923        <!--[if BLOCK]><![endif]-->
923            <span class="sr-only">
924                Hide password
925            </span>
926        <!--[if ENDBLOCK]><![endif]-->
927
928        <!--[if BLOCK]><![endif]-->    <svg class="fi-icon-btn-icon h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
929  <path fill-rule="evenodd" d="M3.28 2.22a.75.75 0 0 0-1.06 1.06l14.5 14.5a.75.75 0 1 0 1.06-1.06l-1.745-1.745a10.029 10.029 0 0 0 3.3-4.38 1.651 1.651 0 0 0 0-1.185A10.004 10.004 0 0 0 9.999 3a9.956 9.956 0 0 0-4.744 1.194L3.28 2.22ZM7.752 6.69l1.092 1.092a2.5 2.5 0 0 1 3.374 3.373l1.091 1.092a4 4 0 0 0-5.557-5.557Z" clip-rule="evenodd"/>
930  <path d="m10.748 13.93 2.523 2.523a9.987 9.987 0 0 1-3.27.547c-4.258 0-7.894-2.66-9.337-6.41a1.651 1.651 0 0 1 0-1.186A10.007 10.007 0 0 1 2.839 6.02L6.07 9.252a4 4 0 0 0 4.678 4.678Z"/>
931</svg><!--[if ENDBLOCK]><![endif]-->
932
933        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
934
935        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
936    </button>
937<!--[if ENDBLOCK]><![endif]-->
938
939                    <!--[if ENDBLOCK]><![endif]-->
940                </div>
941            <!--[if ENDBLOCK]><![endif]-->
942        </div>
943    <!--[if ENDBLOCK]><![endif]-->
944</div>
945
946    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
947
948                <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
949
950                <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
951            </div>
952        <!--[if ENDBLOCK]><![endif]-->
953    </div>
954</div>
955
956            <!--[if ENDBLOCK]><![endif]-->
957</div>
958            
959        <div
960    style="--col-span-default: span 1 / span 1;" class="col-[--col-span-default]" wire:key="HwrOIPD0a2R5tibIBvqF.data.remember.Filament\Forms\Components\Checkbox"
961>
962    <!--[if BLOCK]><![endif]-->                <div
963    data-field-wrapper
964    class="fi-fo-field-wrp"
965>
966    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
967
968    <div
969        class="grid gap-y-2"
970    >
971        <!--[if BLOCK]><![endif]-->            <div
972                class="flex items-center gap-x-3 justify-between "
973            >
974                <!--[if BLOCK]><![endif]-->                    <label
975    class="fi-fo-field-wrp-label inline-flex items-center gap-x-3" for="data.remember"
976>
977    <input
978    type="checkbox"
979        class="fi-checkbox-input rounded border-none bg-white shadow-sm ring-1 transition duration-75 checked:ring-0 focus:ring-2 focus:ring-offset-0 disabled:pointer-events-none disabled:bg-gray-50 disabled:text-gray-50 disabled:checked:bg-gray-400 disabled:checked:text-gray-400 dark:bg-white/5 dark:disabled:bg-transparent dark:disabled:checked:bg-gray-600 text-primary-600 ring-gray-950/10 focus:ring-primary-600 checked:focus:ring-primary-500/50 dark:text-primary-500 dark:ring-white/20 dark:checked:bg-primary-500 dark:focus:ring-primary-500 dark:checked:focus:ring-primary-400/50 dark:disabled:ring-white/10" id="data.remember" wire:loading.attr="disabled" wire:model="data.remember"
980/>
981
982    <span class="text-sm font-medium leading-6 text-gray-950 dark:text-white">
983        
984        Remember me<!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
985    </span>
986
987    
988</label>
989                <!--[if ENDBLOCK]><![endif]-->
990
991                <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
992            </div>
993        <!--[if ENDBLOCK]><![endif]-->
994
995        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
996    </div>
997</div>
998
999            <!--[if ENDBLOCK]><![endif]-->
1000</div>
1001    <!--[if ENDBLOCK]><![endif]-->
1002</div>
1003
1004
1005        <!--[if BLOCK]><![endif]-->    <div
1006                class="fi-form-actions"
1007    >
1008        <!--[if BLOCK]><![endif]-->    <div
1009        class="fi-ac gap-3 grid grid-cols-[repeat(auto-fit,minmax(0,1fr))]"
1010    >
1011        <!--[if BLOCK]><![endif]-->            <!--[if BLOCK]><![endif]-->                <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1012
1013<button
1014                            x-data="{
1015            form: null,
1016            isProcessing: false,
1017            processingMessage: null,
1018        }"
1019        x-init="
1020            form = $el.closest('form')
1021
1022            form?.addEventListener('form-processing-started', (event) => {
1023                isProcessing = true
1024                processingMessage = event.detail.message
1025            })
1026
1027            form?.addEventListener('form-processing-finished', () => {
1028                isProcessing = false
1029            })
1030        "
1031        x-bind:class="{ 'enabled:opacity-70 enabled:cursor-wait': isProcessing }"
1032        style="--c-400:var(--primary-400);--c-500:var(--primary-500);--c-600:var(--primary-600);" class="fi-btn relative grid-flow-col items-center justify-center font-semibold outline-none transition duration-75 focus-visible:ring-2 roun
1032ded-lg fi-color-custom fi-btn-color-primary fi-color-primary fi-size-md fi-btn-size-md gap-1.5 px-3 py-2 text-sm inline-grid shadow-sm bg-custom-600 text-white hover:bg-custom-500 focus-visible:ring-custom-500/50 dark:bg-custom-500 dark:hover:bg-custom-400 dark:focus-visible:ring-custom-400/50 fi-ac-action fi-ac-btn-action" type="submit" wire:loading.attr="disabled" x-bind:disabled="isProcessing"
1033>
1034    <!--[if BLOCK]><![endif]-->        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1035
1036        <!--[if BLOCK]><![endif]-->            <svg
1037    fill="none"
1038    viewBox="0 0 24 24"
1039    xmlns="http://www.w3.org/2000/svg"
1040    class="animate-spin fi-btn-icon transition duration-75 h-5 w-5 text-white" wire:loading.delay.default="" wire:target="authenticate"
1041>
1042    <path
1043        clip-rule="evenodd"
1044        d="M12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z"
1045        fill-rule="evenodd"
1046        fill="currentColor"
1047        opacity="0.2"
1048    ></path>
1049    <path
1050        d="M2 12C2 6.47715 6.47715 2 12 2V5C8.13401 5 5 8.13401 5 12H2Z"
1051        fill="currentColor"
1052    ></path>
1053</svg>
1054        <!--[if ENDBLOCK]><![endif]-->
1055
1056        <!--[if BLOCK]><![endif]-->            <svg
1057    fill="none"
1058    viewBox="0 0 24 24"
1059    xmlns="http://www.w3.org/2000/svg"
1060    class="animate-spin fi-btn-icon transition duration-75 h-5 w-5 text-white" x-cloak="x-cloak" x-show="isProcessing"
1061>
1062    <path
1063        clip-rule="evenodd"
1064        d="M12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z"
1065        fill-rule="evenodd"
1066        fill="currentColor"
1067        opacity="0.2"
1068    ></path>
1069    <path
1070        d="M2 12C2 6.47715 6.47715 2 12 2V5C8.13401 5 5 8.13401 5 12H2Z"
1071        fill="currentColor"
1072    ></path>
1073</svg>
1074        <!--[if ENDBLOCK]><![endif]-->
1075    <!--[if ENDBLOCK]><![endif]-->
1076
1077    <span
1078                    x-show="! isProcessing"
1079                class="fi-btn-label"
1080    >
1081        Sign in
1082    </span>
1083
1084    <!--[if BLOCK]><![endif]-->        <span
1085            x-cloak
1086            x-show="isProcessing"
1087            x-text="processingMessage"
1088            class="fi-btn-label"
1089        ></span>
1090    <!--[if ENDBLOCK]><![endif]-->
1091
1092    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1093
1094    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1095</button>
1096
1097            <!--[if ENDBLOCK]><![endif]-->
1098        <!--[if ENDBLOCK]><![endif]-->
1099    </div>
1100<!--[if ENDBLOCK]><![endif]-->
1101    </div>
1102<!--[if ENDBLOCK]><![endif]-->
1103</form>
1104
1105    <!--[if BLOCK]><![endif]--><div class="mt-6">
1106    
1107    <div class="relative">
1108        <div class="absolute inset-0 flex items-center">
1109            <div class="w-full border-t border-gray-300 dark:border-gray-600"></div>
1110        </div>
1111        <div class="relative flex justify-center text-sm">
1112            <span class="px-2 bg-white dark:bg-gray-900 text-gray-500 dark:text-gray-400">
1113                Or continue with
1114            </span>
1115        </div>
1116    </div>
1117
1118    
1119    <div class="mt-6">
1120        <a href="https://globalsku.app/auth/google/redirect" 
1121           class="w-full inline-flex justify-center items-center gap-3 py-3 px-4 border border-gray-300 dark:border-gray-600 rounded-lg shadow-sm bg-white dark:bg-gray-800 text-sm font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500">
1122            
1123            
1124            <svg class="w-5 h-5" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1125                <path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"/>
1126                <path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/>
1127                <path fill="#FBBC05" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/>
1128                <path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/>
1129            </svg>
1130            
1131            <span>Continue with Google</span>
1132        </a>
1133    </div>
1134    
1135    
1136    <div class="mt-3">
1137        <a href="https://globalsku.app/auth/facebook/redirect" 
1138           class="w-full inline-flex justify-center items-center gap-3 py-3 px-4 border border-gray-300 dark:border-gray-600 rounded-lg shadow-sm bg-white dark:bg-gray-800 text-sm font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500">
1139            
1140            
1141            <svg class="w-5 h-5" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1142                <path fill="#1877F2" d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/>
1143            </svg>
1144            
1145            <span>Continue with Facebook</span>
1146        </a>
1147    </div>
1148    
1149    
1150    <div class="mt-3">
1151        <a href="https://globalsku.app/auth/linkedin/redirect" 
1152           class="w-full inline-flex justify-center items-center gap-3 py-3 px-4 border border-gray-300 dark:border-gray-600 rounded-lg shadow-sm bg-white dark:bg-gray-800 text-sm font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500">
1153            
1154            
1155            <svg class="w-5 h-5" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1156                <path fill="#0A66C2" d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
1157            </svg>
1158            
1159            <span>Continue with LinkedIn</span>
1160        </a>
1161    </div>
1162    
1163    
1164    <div class="mt-3">
1165        <a href="https://globalsku.app/auth/apple/redirect" 
1166           class="w-full inline-flex justify-center items-center gap-3 py-3 px-4 border border-gray-300 dark:border-gray-600 rounded-lg shadow-sm bg-white dark:bg-gray-800 text-sm font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500">
1167            
1168            
1169            <svg class="w-5 h-5" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1170                <path fill="#000000" class="dark:fill-white" d="M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z"/>
1171            </svg>
1172            
1173            <span>Continue with Apple</span>
1174        </a>
1175    </div>
1176    
1177    
1178    <p class="mt-3 text-xs text-center text-gray-500 dark:text-gray-400">
1179        One email address can only be linked to one GlobalSKU account.
1180    </p>
1181</div>
1182<!--[if ENDBLOCK]><![endif]-->
1183<div class="fi-simple-footer text-center text-sm text-gray-500 dark:text-gray-400">
1184    
1185    <!--[if BLOCK]><![endif]-->        <a href="https://vendidit.com/globalsku" class="text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100">
1186            Learn More about GlobalSKU
1187        </a>
1188        <br>
1189    <!--[if ENDBLOCK]><![endif]-->
1190
1191    <a href="https://globalsku.app/terms-and-conditions" class="text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100">
1192        Terms of Service
1193    </a>
1194    <span class="text-gray-400 mx-2">•</span>
1195    <a href="https://globalsku.app/privacy" class="text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100">
1196        Privacy Policy
1197    </a>
1198    <span class="text-gray-400 mx-2">•</span>
1199    <a href="https://globalsku.app/refund" class="text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100">
1200        Refund Policy
1201    </a>
1202</div>
1203    </section>
1204
1205    <!--[if BLOCK]><![endif]-->        <!--[if BLOCK]><![endif]-->    <form wire:submit.prevent="callMountedAction">
1206        
1207        <div
1208        aria-modal="true"
1209    role="dialog"
1210    x-data="{
1211        isOpen: false,
1212
1213        livewire: null,
1214
1215        close: function () {
1216            this.isOpen = false
1217
1218            this.$refs.modalContainer.dispatchEvent(
1219                new CustomEvent('modal-closed', { detail: { id: 'HwrOIPD0a2R5tibIBvqF-action' } }),
1220            )
1221        },
1222
1223        open: function () {
1224            this.$nextTick(() => {
1225                this.isOpen = true
1226
1227                
1228                this.$refs.modalContainer.dispatchEvent(
1229                    new CustomEvent('modal-opened', { detail: { id: 'HwrOIPD0a2R5tibIBvqF-action' } }),
1230                )
1231            })
1232        },
1233    }"
1234            x-on:close-modal.window="if ($event.detail.id === 'HwrOIPD0a2R5tibIBvqF-action') close()"
1235        x-on:open-modal.window="if ($event.detail.id === 'HwrOIPD0a2R5tibIBvqF-action') open()"
1236        data-fi-modal-id="HwrOIPD0a2R5tibIBvqF-action"
1237        x-trap.noscroll="isOpen"
1238    x-bind:class="{
1239        'fi-modal-open': isOpen,
1240    }"
1241    class="fi-modal block"
1242>
1243    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1244
1245    <div x-cloak x-show="isOpen">
1246        <div
1247            aria-hidden="true"
1248            x-show="isOpen"
1249            x-transition.duration.300ms.opacity
1250            class="fi-modal-close-overlay fixed inset-0 z-40 bg-gray-950/50 dark:bg-gray-950/75"
1251        ></div>
1252
1253        <div
1254            class="fixed inset-0 z-40 overflow-y-auto cursor-pointer"
1255        >
1256            <div
1257                x-ref="modalContainer"
1258                                    
1259                    x-on:click.self="
1260                        document.activeElement.selectionStart === undefined &&
1261                            document.activeElement.selectionEnd === undefined &&
1262                            $dispatch(&#039;close-modal&#039;, { id: &#039;HwrOIPD0a2R5tibIBvqF-action&#039; })
1263                    "
1264                                class="relative grid min-h-full grid-rows-[1fr_auto_1fr] justify-items-center sm:grid-rows-[1fr_auto_3fr] p-4" x-on:closed-form-component-action-modal.window="if (($event.detail.id === 'HwrOIPD0a2R5tibIBvqF') && $wire.mountedActions.length) open()" x-on:modal-closed.stop="if (!$event.detail?.id?.startsWith('HwrOIPD0a2R5tibIBvqF-')) {
1265                    return
1266                }
1267
1268                const mountedActionShouldOpenModal = false
1269
1270
1271                if (! mountedActionShouldOpenModal) {
1272                    return
1273                }
1274
1275                if ($wire.mountedFormComponentActions.length) {
1276                    return
1277                }
1278
1279                $wire.unmountAction(false, false)" x-on:opened-form-component-action-modal.window="if ($event.detail.id === 'HwrOIPD0a2R5tibIBvqF') close()"
1280            >
1281                <div
1282                    x-data="{ isShown: false }"
1283                    x-init="
1284                        $nextTick(() => {
1285                            isShown = isOpen
1286                            $watch('isOpen', () => (isShown = isOpen))
1287                        })
1288                    "
1289                                            x-on:keydown.window.escape="$dispatch(&#039;close-modal&#039;, { id: &#039;HwrOIPD0a2R5tibIBvqF-action&#039; })"
1290                                        x-show="isShown"
1291                    x-transition:enter="duration-300"
1292                    x-transition:leave="duration-300"
1293                                            x-transition:enter-start="scale-95 opacity-0"
1294                        x-transition:enter-end="scale-100 opacity-100"
1295                        x-transition:leave-start="scale-100 opacity-100"
1296                        x-transition:leave-end="scale-95 opacity-0"
1297                                                                wire:key="HwrOIPD0a2R5tibIBvqF.modal.HwrOIPD0a2R5tibIBvqF-action.window"
1298                                        class="fi-modal-window pointer-events-auto relative row-start-2 flex w-full cursor-default flex-col bg-white shadow-xl ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10 mx-auto rounded-xl hidden max-w-sm"
1299                >
1300                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1301
1302                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1303
1304                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1305                </div>
1306            </div>
1307        </div>
1308    </div>
1309</div>
1310    </form>
1311
1312    <!--[if ENDBLOCK]><![endif]-->
1313
1314<!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1315
1316<!--[if BLOCK]><![endif]-->    <form wire:submit.prevent="callMountedInfolistAction">
1317        
1318        <div
1319        aria-modal="true"
1320    role="dialog"
1321    x-data="{
1322        isOpen: false,
1323
1324        livewire: null,
1325
1326        close: function () {
1327            this.isOpen = false
1328
1329            this.$refs.modalContainer.dispatchEvent(
1330                new CustomEvent('modal-closed', { detail: { id: 'HwrOIPD0a2R5tibIBvqF-infolist-action' } }),
1331            )
1332        },
1333
1334        open: function () {
1335            this.$nextTick(() => {
1336                this.isOpen = true
1337
1338                
1339                this.$refs.modalContainer.dispatchEvent(
1340                    new CustomEvent('modal-opened', { detail: { id: 'HwrOIPD0a2R5tibIBvqF-infolist-action' } }),
1341                )
1342            })
1343        },
1344    }"
1345            x-on:close-modal.window="if ($event.detail.id === 'HwrOIPD0a2R5tibIBvqF-infolist-action') close()"
1346        x-on:open-modal.window="if ($event.detail.id === 'HwrOIPD0a2R5tibIBvqF-infolist-action') open()"
1347        data-fi-modal-id="HwrOIPD0a2R5tibIBvqF-infolist-action"
1348        x-trap.noscroll="isOpen"
1349    x-bind:class="{
1350        'fi-modal-open': isOpen,
1351    }"
1352    class="fi-modal block"
1353>
1354    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1355
1356    <div x-cloak x-show="isOpen">
1357        <div
1358            aria-hidden="true"
1359            x-show="isOpen"
1360            x-transition.duration.300ms.opacity
1361            class="fi-modal-close-overlay fixed inset-0 z-40 bg-gray-950/50 dark:bg-gray-950/75"
1362        ></div>
1363
1364        <div
1365            class="fixed inset-0 z-40 overflow-y-auto cursor-pointer"
1366        >
1367            <div
1368                x-ref="modalContainer"
1369                                    
1370                    x-on:click.self="
1371                        document.activeElement.selectionStart === undefined &&
1372                            document.activeElement.selectionEnd === undefined &&
1373                            $dispatch(&#039;close-modal&#039;, { id: &#039;HwrOIPD0a2R5tibIBvqF-infolist-action&#039; })
1374                    "
1375                                class="relative grid min-h-full grid-rows-[1fr_auto_1fr] justify-items-center sm:grid-rows-[1fr_auto_3fr] p-4" x-on:closed-form-component-action-modal.window="if (($event.detail.id === 'HwrOIPD0a2R5tibIBvqF') && $wire.mountedInfolistActions.length) open()" x-on:modal-closed.stop="if (!$event.detail?.id?.startsWith('HwrOIPD0a2R5tibIBvqF-')) {
1376                    return
1377                }
1378
1379                const mountedInfolistActionShouldOpenModal = false
1380
1381
1382                if (! mountedInfolistActionShouldOpenModal) {
1383                    return
1384                }
1385
1386                if ($wire.mountedFormComponentActions.length) {
1387                    return
1388                }
1389
1390                $wire.unmountInfolistAction(false, false)" x-on:opened-form-component-action-modal.window="if ($event.detail.id === 'HwrOIPD0a2R5tibIBvqF') close()"
1391            >
1392                <div
1393                    x-data="{ isShown: false }"
1394                    x-init="
1395                        $nextTick(() => {
1396                            isShown = isOpen
1397                            $watch('isOpen', () => (isShown = isOpen))
1398                        })
1399                    "
1400                                            x-on:keydown.window.escape="$dispatch(&#039;close-modal&#039;, { id: &#039;HwrOIPD0a2R5tibIBvqF-infolist-action&#039; })"
1401                                        x-show="isShown"
1402                    x-transition:enter="duration-300"
1403                    x-transition:leave="duration-300"
1404                                            x-transition:enter-start="scale-95 opacity-0"
1405                        x-transition:enter-end="scale-100 opacity-100"
1406                        x-transition:leave-start="scale-100 opacity-100"
1407                        x-transition:leave-end="scale-95 opacity-0"
1408                                                                wire:key="HwrOIPD0a2R5tibIBvqF.modal.HwrOIPD0a2R5tibIBvqF-infolist-action.window"
1409                                        class="fi-modal-window pointer-events-auto relative row-start-2 flex w-full cursor-default flex-col bg-white shadow-xl ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10 mx-auto rounded-xl hidden max-w-sm"
1410                >
1411                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1412
1413                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1414
1415                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1416                </div>
1417            </div>
1418        </div>
1419    </div>
1420</div>
1421    </form>
1422
1423    <!--[if ENDBLOCK]><![endif]-->
1424
1425<!--[if BLOCK]><![endif]-->    
1426    <form wire:submit.prevent="callMountedFormComponentAction">
1427        <div
1428        aria-modal="true"
1429    role="dialog"
1430    x-data="{
1431        isOpen: false,
1432
1433        livewire: null,
1434
1435        close: function () {
1436            this.isOpen = false
1437
1438            this.$refs.modalContainer.dispatchEvent(
1439                new CustomEvent('modal-closed', { detail: { id: 'HwrOIPD0a2R5tibIBvqF-form-component-action' } }),
1440            )
1441        },
1442
1443        open: function () {
1444            this.$nextTick(() => {
1445                this.isOpen = true
1446
1447                
1448                this.$refs.modalContainer.dispatchEvent(
1449                    new CustomEvent('modal-opened', { detail: { id: 'HwrOIPD0a2R5tibIBvqF-form-component-action' } }),
1450                )
1451            })
1452        },
1453    }"
1454            x-on:close-modal.window="if ($event.detail.id === 'HwrOIPD0a2R5tibIBvqF-form-component-action') close()"
1455        x-on:open-modal.window="if ($event.detail.id === 'HwrOIPD0a2R5tibIBvqF-form-component-action') open()"
1456        data-fi-modal-id="HwrOIPD0a2R5tibIBvqF-form-component-action"
1457        x-trap.noscroll="isOpen"
1458    x-bind:class="{
1459        'fi-modal-open': isOpen,
1460    }"
1461    class="fi-modal block"
1462>
1463    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1464
1465    <div x-cloak x-show="isOpen">
1466        <div
1467            aria-hidden="true"
1468            x-show="isOpen"
1469            x-transition.duration.300ms.opacity
1470            class="fi-modal-close-overlay fixed inset-0 z-40 bg-gray-950/50 dark:bg-gray-950/75"
1471        ></div>
1472
1473        <div
1474            class="fixed inset-0 z-40 overflow-y-auto cursor-pointer"
1475        >
1476            <div
1477                x-ref="modalContainer"
1478                                    
1479                    x-on:click.self="
1480                        document.activeElement.selectionStart === undefined &&
1481                            document.activeElement.selectionEnd === undefined &&
1482                            $dispatch(&#039;close-modal&#039;, { id: &#039;HwrOIPD0a2R5tibIBvqF-form-component-action&#039; })
1483                    "
1484                                class="relative grid min-h-full grid-rows-[1fr_auto_1fr] justify-items-center sm:grid-rows-[1fr_auto_3fr] p-4" x-on:modal-closed.stop="if (!$event.detail?.id?.startsWith('HwrOIPD0a2R5tibIBvqF-')) {
1485                    return
1486                }
1487
1488                const mountedFormComponentActionShouldOpenModal = false
1489
1490
1491                if (mountedFormComponentActionShouldOpenModal) {
1492                    $wire.unmountFormComponentAction(false, false)
1493                }"
1494            >
1495                <div
1496                    x-data="{ isShown: false }"
1497                    x-init="
1498                        $nextTick(() => {
1499                            isShown = isOpen
1500                            $watch('isOpen', () => (isShown = isOpen))
1501                        })
1502                    "
1503                                            x-on:keydown.window.escape="$dispatch(&#039;close-modal&#039;, { id: &#039;HwrOIPD0a2R5tibIBvqF-form-component-action&#039; })"
1504                                        x-show="isShown"
1505                    x-transition:enter="duration-300"
1506                    x-transition:leave="duration-300"
1507                                            x-transition:enter-start="scale-95 opacity-0"
1508                        x-transition:enter-end="scale-100 opacity-100"
1509                        x-transition:leave-start="scale-100 opacity-100"
1510                        x-transition:leave-end="scale-95 opacity-0"
1511                                                                wire:key="HwrOIPD0a2R5tibIBvqF.modal.HwrOIPD0a2R5tibIBvqF-form-component-action.window"
1512                                        class="fi-modal-window pointer-events-auto relative row-start-2 flex w-full cursor-default flex-col bg-white shadow-xl ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10 mx-auto rounded-xl hidden max-w-sm"
1513                >
1514                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1515
1516                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1517
1518                    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1519                </div>
1520            </div>
1521        </div>
1522    </div>
1523</div>
1524    </form>
1525
1526    <!--[if ENDBLOCK]><![endif]-->
1527    <!--[if ENDBLOCK]><![endif]-->
1528
1529    
1530</div>
1531            </main>
1532        </div>
1533
1534        
1535    </div>
1536
1537        <div wire:snapshot="{&quot;data&quot;:{&quot;isFilamentNotificationsComponent&quot;:true,&quot;notifications&quot;:[[],{&quot;class&quot;:&quot;Filament\\Notifications\\Collection&quot;,&quot;s&quot;:&quot;wrbl&quot;}]},&quot;memo&quot;:{&quot;id&quot;:&quot;8nuGAwkLMic93dfLxMPM&quot;,&quot;name&quot;:&quot;filament.livewire.notifications&quot;,&quot;path&quot;:&quot;login&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;children&quot;:[],&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;en&quot;},&quot;checksum&quot;:&quot;20f675f66800737734e170eafd0078b3332b9cdd523106a382104d30009d4b02&quot;}" wire:effects="{&quot;listeners&quot;:[&quot;notificationsSent&quot;,&quot;notificationSent&quot;,&quot;notificationClosed&quot;]}" wire:id="8nuGAwkLMic93dfLxMPM">
1538    <div
1539        class="fi-no pointer-events-none fixed inset-4 z-50 mx-auto flex gap-3 items-end flex-col-reverse justify-end"
1540        role="status"
1541    >
1542        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1543    </div>
1544
1545    <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1546</div>
1547
1548        
1549
1550        
1550<script>
1551        window.filamentData = []    </script>
1551
1552
1553            
1554            
1554<script
1555                src="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/js/filament/notifications/notifications.js?v=3.3.43.0"
1556                
1557                
1558                
1559                
1560                
1561                
1562            ></script>
1562
1563        
1564                
1565            
1565<script
1566                src="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/js/filament/support/support.js?v=3.3.43.0"
1567                
1568                
1569                
1570                
1571                
1572                
1573            ></script>
1573
1574        
1575                
1576            
1576<script
1577                src="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/js/filament/filament/echo.js?v=3.3.43.0"
1578                
1579                
1580                
1581                
1582                
1583                
1584            ></script>
1584
1585        
1586                
1587            
1587<script
1588                src="https://assets.globalsku.app/dd731a69-d675-4845-8769-0b208ad20c69/js/filament/filament/app.js?v=3.3.43.0"
1589                
1590                
1591                
1592                
1593                
1594                
1595            ></script>
1595
1596        
1597    
1598<style>
1599    :root {
1600            }
1601</style>
1602
1603        
1604                    
1604<script>
1605                loadDarkMode()
1606            </script>
1606
1607        
1608        
1609        
1610
1611        
1611<script>
1612        function copyAffiliateLink() {
1613            const input = document.getElementById('affiliate-link');
1614            const linkValue = input.value;
1615            navigator.clipboard.writeText(linkValue).then(() => {
1616                new FilamentNotification()
1617                    .title('Copied!')
1618                    .body('Affiliate link copied to clipboard.')
1619                    .success()
1620                    .send();
1621            });
1622        }
1623
1624        // Image Lightbox Function
1625        window.openImageLightbox = function(src) {
1626            if (!src) return;
1627
1628            // Create overlay
1629            const overlay = document.createElement('div');
1630            overlay.id = 'image-lightbox-overlay';
1631            overlay.style.cssText = 'position:fixed;inset:0;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:pointer;';
1632
1633            // Create image
1634            const img = document.createElement('img');
1635            img.src = src;
1636            img.style.cssText = 'max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,0.5);';
1637
1638            // Create close button
1639            const closeBtn = document.createElement('button');
1640            closeBtn.innerHTML = '&times;';
1641            closeBtn.style.cssText = 'position:absolute;top:20px;right:20px;background:none;border:none;color:white;font-size:40px;cursor:pointer;line-height:1;';
1642
1643            overlay.appendChild(img);
1644            overlay.appendChild(closeBtn);
1645            document.body.appendChild(overlay);
1646            document.body.style.overflow = 'hidden';
1647
1648            // Close on click
1649            const closeLightbox = () => {
1650                overlay.remove();
1651                document.body.style.overflow = '';
1652            };
1653            overlay.addEventListener('click', closeLightbox);
1654            document.addEventListener('keydown', function escHandler(e) {
1655                if (e.key === 'Escape') {
1656                    closeLightbox();
1657                    document.removeEventListener('keydown', escHandler);
1658                }
1659            });
1660        };
1661    </script>
1661
1662    
1662<script src="/livewire/livewire.min.js?id=df3a17f2"   data-csrf="Tpa2nqynYl8pi5qh13Fn8eSr8QBzsE9uTvIwrlQS" data-update-uri="/livewire/update" data-navigate-once="true"></script>
1662
1663</body>
1664</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.