Compare commits

...

25 Commits

Author SHA1 Message Date
oliver 5988e095c7 sicher 2026-05-27 06:15:55 -03:00
oliver a95f6c6895 fix: show post.vertical instead of post.area in card and article labels 2026-05-15 14:55:42 -03:00
oliver fd4e0ea883 feat: add article reader overlay, fix blog posts JS, add article CTA + schedule 2026-05-15 14:51:18 -03:00
oliver caac8addcb feat: split components into mybizapp.js + trial_modal.html, add show_calendar() 2026-05-15 14:35:38 -03:00
bot bc8a69c8ef Blog Posts 2026-05-15 17:31:46 +00:00
oliver 43dbb14333 refactor: replace inline trial modal with components/trial_modal.js 2026-05-15 09:32:59 -03:00
oliver 43eef37eef feat: add reusable trial_modal.js component in components/ 2026-05-15 09:25:14 -03:00
oliver 300a53abb9 simple modal 2026-05-14 08:47:54 -03:00
oliver 4299e7e276 form 2026-05-14 08:43:02 -03:00
oliver 0e5e4d8383 form 2026-05-14 08:38:43 -03:00
oliver edc934cfbd new videos 2026-05-03 09:44:26 -03:00
oliver 4edb56285f resize 2026-05-03 05:35:08 -03:00
oliver a37a76f724 legal 2026-05-03 05:20:43 -03:00
oliver bd74b184a9 images 2026-05-03 05:16:14 -03:00
oliver bfd6454139 working 2026-04-25 12:56:38 -03:00
oliver 5de64877c1 icon 2026-04-25 09:19:18 -03:00
oliver 9c13dbc5cb finished 2026-04-25 08:19:43 -03:00
oliver 96ae14d0e0 nice 2026-04-25 08:10:43 -03:00
oliver 1ff384a952 utm 2026-04-25 06:29:26 -03:00
oliver a1890ffb4c utm 2026-04-25 06:24:03 -03:00
oliver 84971b1a8c utm 2026-04-25 06:21:10 -03:00
oliver c6f6942701 working 2026-04-25 06:13:51 -03:00
oliver 3ac948e01b working 2026-04-25 05:55:03 -03:00
oliver 61ca437c83 working 2026-04-25 05:44:03 -03:00
oliver 5bbba4ba69 working 2026-04-25 05:22:21 -03:00
332 changed files with 10884 additions and 8361 deletions
+710
View File
@@ -0,0 +1,710 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>About Us | my-biz.app</title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@slicemypage/motionflow@latest/dist/motionflow.min.css"
/>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #efebe9;
--surf1: #e8e0da;
--card: #fff3e0;
--lift: #f5ece4;
--bg-deep: #3e2723;
--border: rgba(93, 64, 55, 0.25);
--grey: #a1887f;
--silver: #6d4c41;
--light: #5d4037;
--gold: #e65100;
--gold-hi: #fb8c00;
--gold-lo: #bf360c;
--gold-glow: rgba(230, 81, 0, 0.18);
--white: #3e2723;
}
body {
background: var(--bg);
color: var(--light);
font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
line-height: 1.7;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
nav {
position: sticky;
top: 0;
z-index: 50;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
height: 62px;
padding: 0 8vw;
background: rgba(255, 243, 224, 0.94);
border-bottom: 1px solid var(--border);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
}
.nav-logo img { height: 36px; width: auto; }
.nav-links { display: flex; gap: 18px; align-items: center; }
.nav-links a, .nav-cta {
font-size: 0.72rem;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.nav-links a { color: var(--silver); }
.nav-cta {
padding: 10px 16px;
border-radius: 999px;
border: 1px solid var(--gold);
color: var(--gold);
}
.hero, section, footer { padding: 84px 8vw; }
.hero {
min-height: 52vh;
display: flex;
align-items: center;
background: linear-gradient(180deg, rgba(232, 224, 218, 0.72), rgba(239, 235, 233, 0));
}
.wrap { max-width: 1120px; margin: 0 auto; }
.eyebrow {
display: inline-flex;
padding: 8px 14px;
border-radius: 999px;
background: rgba(230, 81, 0, 0.08);
border: 1px solid rgba(230, 81, 0, 0.18);
color: var(--gold);
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
}
h1, h2, h3 {
font-family: Georgia, "Times New Roman", serif;
color: var(--white);
line-height: 1.1;
}
h1 { font-size: clamp(2.8rem, 7vw, 5rem); max-width: 80%; margin-top: 18px; }
.lead { max-width: 62ch; margin-top: 18px; color: var(--silver); font-size: 1rem; }
.grid-2 { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 24px; }
.grid-2-equal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.panel {
background: rgba(255, 243, 224, 0.84);
border: 1px solid rgba(93, 64, 55, 0.12);
border-radius: 28px;
padding: 28px;
box-shadow: 0 18px 44px rgba(62, 39, 35, 0.08);
}
.panel h2 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 14px; }
.panel p { color: var(--silver); }
.info-list { display: grid; gap: 16px; }
.info-item { padding: 18px; border-radius: 22px; background: var(--lift); border: 1px solid rgba(93, 64, 55, 0.1); }
.info-item h3 { font-size: 1.2rem; margin-bottom: 8px; }
.story-card {
background: rgba(255, 243, 224, 0.88);
border: 1px solid rgba(93, 64, 55, 0.12);
border-radius: 28px;
padding: 28px;
box-shadow: 0 18px 44px rgba(62, 39, 35, 0.08);
}
.story-card h3 {
font-size: clamp(1.5rem, 3vw, 2.2rem);
margin-bottom: 14px;
}
.story-card p { color: var(--silver); }
.pairing-type {
margin-top: 16px;
color: var(--gold);
font-weight: 700;
font-size: 0.95rem;
}
.pairing-type [data-mf-text-type="typing"] {
display: inline-block;
min-width: 14ch;
}
.career-form {
margin-top: 24px;
display: grid;
gap: 16px;
}
.career-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.career-field.full {
grid-column: 1 / -1;
}
.career-field label {
display: block;
margin-bottom: 8px;
color: var(--gold);
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.career-input,
.career-textarea {
width: 100%;
padding: 14px 16px;
border: 1px solid rgba(230, 81, 0, 0.18);
border-radius: 16px;
background: rgba(93, 64, 55, 0.05);
color: var(--white);
font: inherit;
}
.career-input:focus,
.career-textarea:focus {
outline: none;
border-color: var(--gold);
box-shadow: 0 0 0 3px var(--gold-glow);
}
.career-textarea {
min-height: 140px;
resize: vertical;
}
.career-submit {
border: none;
border-radius: 999px;
padding: 14px 18px;
font: inherit;
font-weight: 700;
color: var(--card);
cursor: pointer;
background: linear-gradient(135deg, var(--gold-lo) 0%, var(--gold) 38%, var(--gold-hi) 55%, var(--gold) 75%, var(--gold-lo) 100%);
transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s;
}
.career-submit:hover {
transform: translateY(-1px);
box-shadow: 0 12px 24px var(--gold-glow);
}
.career-submit:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.career-status {
color: var(--grey);
font-size: 0.84rem;
}
footer {
background: rgba(255, 243, 224, 0.94);
border-top: 1px solid var(--border);
padding: 84px 8vw 36px;
}
.footer-top {
max-width: 1120px;
margin: 0 auto 30px;
display: grid;
grid-template-columns:
minmax(0, 1.1fr) minmax(320px, 1.2fr)
minmax(0, 1fr) minmax(0, 1fr);
gap: 28px;
align-items: start;
}
.footer-brand p,
.footer-col a,
.footer-bottom span,
.footer-legal a {
color: var(--silver);
}
.footer-brand p {
max-width: 28ch;
margin-top: 14px;
font-size: 0.88rem;
}
.footer-logo {
display: inline-block;
font-size: 1.6rem;
margin-bottom: 14px;
}
.footer-logo img { height: 34px; width: auto; }
.footer-contact-shell {
max-width: 420px;
margin: 0 auto;
text-align: center;
}
.footer-contact-form {
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
}
.footer-contact-form textarea,
.footer-contact-form input {
width: 100%;
padding: 14px 16px;
border-radius: 24px;
border: 1px solid var(--border);
background: rgba(93, 64, 55, 0.06);
color: var(--white);
font: inherit;
}
.footer-contact-form textarea {
min-height: 110px;
resize: vertical;
}
.footer-contact-shell h4 {
margin-bottom: 14px;
}
.footer-contact-input-row {
display: flex;
align-items: center;
width: 100%;
min-height: 48px;
border-radius: 999px;
overflow: hidden;
background: rgba(93, 64, 55, 0.06);
border: 1px solid var(--border);
}
.footer-contact-input-row input {
border: none;
background: transparent;
border-radius: 0;
box-shadow: none;
height: 100%;
}
.footer-contact-send {
height: 100%;
min-height: 48px;
padding: 0 18px;
border: none;
border-left: 1px solid var(--border);
background: transparent;
color: var(--gold);
cursor: pointer;
font-size: 0.92rem;
}
.footer-contact-message-wrap {
position: relative;
width: 100%;
}
.footer-contact-message-wrap textarea {
padding-right: 64px;
}
.footer-contact-message-wrap .footer-contact-send {
position: absolute;
right: 10px;
bottom: 10px;
min-height: 40px;
height: 40px;
width: 40px;
padding: 0;
border-radius: 50%;
border-left: none;
background: rgba(255, 243, 224, 0.9);
color: var(--gold);
cursor: pointer;
}
.footer-contact-form input::placeholder,
.footer-contact-form textarea::placeholder {
color: var(--grey);
}
.footer-contact-form input:focus,
.footer-contact-form textarea:focus {
outline: none;
border-color: var(--gold);
box-shadow: 0 0 0 3px rgba(230, 81, 0, 0.12);
}
.footer-contact-status {
color: var(--grey);
font-size: 0.8rem;
}
.footer-col h4 {
margin-bottom: 16px;
color: var(--gold);
font-size: 0.65rem;
letter-spacing: 0.16em;
text-transform: uppercase;
}
.footer-col ul {
list-style: none;
display: grid;
gap: 10px;
}
.footer-col a,
.footer-bottom span,
.footer-legal a {
font-size: 0.84rem;
}
.footer-col a:hover,
.footer-legal a:hover {
color: var(--gold-hi);
}
.footer-bottom {
max-width: 1120px;
margin: 24px auto 0;
display: flex;
justify-content: space-between;
align-items: center;
gap: 14px;
flex-wrap: wrap;
padding-top: 24px;
border-top: 1px solid rgba(161, 136, 127, 0.18);
}
.footer-legal {
display: flex;
gap: 18px;
flex-wrap: wrap;
}
@media (max-width: 900px) {
.grid-2, .grid-2-equal, .career-grid { grid-template-columns: 1fr; }
nav, .hero, section, footer { padding-left: 5vw; padding-right: 5vw; }
h1 { max-width: 100%; }
.footer-top { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<nav>
<a class="nav-logo" href="index.html"><img src="img/logo.svg" alt="my-biz.app" /></a>
<div class="nav-links">
<a href="index.html#verticals">Solutions</a>
<a href="about.html">About Us</a>
<a href="legal.html">Legal</a>
</div>
</nav>
<section class="hero">
<div class="wrap">
<span class="eyebrow">About Us</span>
<h1>Built for businesses that want a calmer, more connected back-office.</h1>
<p class="lead">
my-biz.app helps teams bring finance, operations, people, and growth work into one practical system built on Odoo Community Edition. We focus on making everyday business management simpler, clearer, and easier to extend over time.
</p>
</div>
</section>
<section id="about-us">
<div class="wrap grid-2">
<div class="panel">
<h2>What we believe</h2>
<p>
Good business software should reduce noise, not create more of it. Our approach is to start with a stable operational foundation, keep the user experience grounded in real work, and preserve flexibility so your stack can grow with your business.
</p>
</div>
<div class="panel info-list">
<div class="info-item">
<h3>Open foundation</h3>
<p>Built on Odoo Community Edition so your data and future options stay in your hands.</p>
</div>
<div class="info-item">
<h3>Practical delivery</h3>
<p>We focus on systems people can actually adopt, use, and improve over time.</p>
</div>
<div class="info-item">
<h3>Ready to grow</h3>
<p>Start with what matters now and expand later with modules, integrations, and custom work.</p>
</div>
</div>
</div>
</section>
<section>
<div class="wrap grid-2-equal">
<div class="story-card">
<span class="eyebrow">Coffee Theme</span>
<h3 style="margin-top: 16px;">Why the coffee theme and the coffee bean in the logo?</h3>
<p>
Out of our own experience: business and coffee belong together. The work is rarely clean, linear, or glamorous. It is early starts, sharp conversations, second drafts, and getting one more useful thing done before the day closes.
</p>
<div class="pairing-type">
Business and coffee go together like
<span
data-mf-text-type="typing"
data-mf-text-typing-speed="55"
data-mf-text-typing-delete-speed="28"
data-mf-text-typing-interval="1600"
data-mf-text-typing-cursor="true"
data-mf-text-typing-cursor-char="|"
><span>Menthos and Coca Cola.</span
><span>Tom and Jerry.</span
><span>peanut butter and jelly.</span
><span>Batman and Robin.</span
><span>thunder and lightning.</span
><span>late nights and pitch decks.</span></span
>
</div>
</div>
<div class="story-card">
<span class="eyebrow">Guild Counsel</span>
<h3 style="margin-top: 16px;">Why Guild Counsel?</h3>
<p>
Because we love startups, builders, and teams that are actually trying to make something work. We are fed up with business BS bingo, inflated consulting theater, and polished nonsense that sounds smart while saying nothing.
</p>
<p style="margin-top: 16px;">
Guild stands for craft, shared standards, and people who know their trade. Counsel stands for practical guidance, not buzzwords. Put together, it means advice for operators who need useful decisions, cleaner systems, and less corporate performance art.
</p>
</div>
</div>
</section>
<section id="careers">
<div class="wrap panel">
<span class="eyebrow">Careers</span>
<h2 style="margin-top: 16px;">We permanently start new guilds and are looking for guild managers.</h2>
<p style="margin-top: 16px; color: var(--silver);">
We expect profound expertise in the guild itself, not generic management language. If you want to lead a guild, tell us which guild you want to build, why you fit, and what practical depth you bring.
</p>
<p style="margin-top: 16px; color: var(--silver);">
An application with the guild, language, an explanation of why you fit, what you bring to the table, and your commercial expectations is expected.
</p>
<form class="career-form" id="career-form">
<div class="career-grid">
<div class="career-field">
<label for="career-name">Name</label>
<input class="career-input" id="career-name" name="name" type="text" placeholder="Your full name" required />
</div>
<div class="career-field">
<label for="career-email">Email</label>
<input class="career-input" id="career-email" name="email" type="email" placeholder="you@example.com" required />
</div>
<div class="career-field full">
<label for="career-guild">Guild interested in</label>
<input class="career-input" id="career-guild" name="guild" type="text" placeholder="Example: Manufacturing Systems Guild" required />
</div>
<div class="career-field full">
<label for="career-explanation">Explanation: why you fit and what you bring to the table</label>
<textarea class="career-textarea" id="career-explanation" name="explanation" placeholder="Describe your expertise, language skills, operator experience, and why you should lead this guild." required></textarea>
</div>
<div class="career-field full">
<label for="career-commercial">Commercial expectations</label>
<textarea class="career-textarea" id="career-commercial" name="commercial_expectations" placeholder="Share your preferred model, compensation expectations, and anything commercial we should know." required></textarea>
</div>
</div>
<button class="career-submit" type="submit">Apply for Guild Leadership</button>
<div class="career-status" id="career-status"></div>
</form>
</div>
</section>
<footer>
<div
class="footer-top"
data-mf-stagger-animation="fade-up"
data-mf-stagger-gap="70"
data-mf-stagger-duration="620"
data-mf-stagger-distance="24"
data-mf-stagger-once="true"
>
<div class="footer-brand">
<a class="footer-logo" href="index.html"
><img src="img/logo.svg" alt="my-biz.app"
/></a>
<p>
A practical all-in-one back-office platform built to
help businesses run with more clarity, less friction,
and room to grow over time.
</p>
</div>
<div class="footer-contact-shell">
<form class="footer-contact-form" id="footer-contact-form">
<input type="hidden" name="source" value="my-biz.app" />
<div class="footer-contact-input-row">
<input
type="email"
name="email"
placeholder="Email"
required
/>
</div>
<div class="footer-contact-message-wrap">
<textarea
name="message"
placeholder="Your message"
required
></textarea>
<button
type="submit"
class="footer-contact-send"
aria-label="Send"
>
&#10148;
</button>
</div>
<div
class="footer-contact-status"
id="footer-contact-status"
></div>
</form>
</div>
<div class="footer-col">
<h4>Product</h4>
<ul>
<li><a href="index.html#verticals">Solutions</a></li>
<li><a href="index.html#story">How It Works</a></li>
<li><a href="index.html#pricing">Pricing</a></li>
<li><a href="index.html#customization">Customization</a></li>
</ul>
</div>
<div class="footer-col">
<h4>About</h4>
<ul>
<li><a href="about.html#about-us">About Us</a></li>
<li><a href="index.html#faq-chat-link">FAQ</a></li>
<li><a href="about.html#careers">Careers</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<span>
&copy; 2026 my-biz.app · All rights reserved. · This service is powered by
<a href="https://ODOO4projects.com" target="_blank" rel="noopener"
>ODOO4projects</a
>
</span>
<div class="footer-legal">
<a href="legal.html#privacy">Privacy</a>
<a href="legal.html#terms">Terms</a>
<a href="legal.html#imprint">Imprint</a>
</div>
</div>
</footer>
<script>
(function () {
var params = new URLSearchParams(window.location.search);
var tracking = {
utm_source: params.get("utm_source") || "homepage",
utm_medium: params.get("utm_medium") || "direct",
utm_campaign: params.get("utm_campaign") || "none",
utm_term: params.get("utm_term") || "",
utm_content: params.get("utm_content") || "",
};
function isTrackableHref(href) {
return (
href &&
href.charAt(0) !== "#" &&
href.indexOf("mailto:") !== 0 &&
href.indexOf("tel:") !== 0 &&
href.indexOf("javascript:") !== 0
);
}
function applyToLink(link) {
var href = link.getAttribute("href");
var url;
if (!isTrackableHref(href)) return;
try {
url = new URL(href, window.location.href);
} catch (err) {
return;
}
Object.keys(tracking).forEach(function (key) {
if (tracking[key]) url.searchParams.set(key, tracking[key]);
});
if (url.origin === window.location.origin) {
link.setAttribute("href", url.pathname + url.search + url.hash);
return;
}
link.setAttribute("href", url.toString());
}
function applyToLinks(root) {
var scope = root && root.querySelectorAll ? root : document;
scope.querySelectorAll("a[href]").forEach(applyToLink);
}
function applyToFields(root) {
if (!root || !root.querySelectorAll) return;
Object.keys(tracking).forEach(function (key) {
root.querySelectorAll('input[name="' + key + '"]').forEach(function (input) {
input.value = tracking[key];
});
});
}
function appendToFormData(formData) {
Object.keys(tracking).forEach(function (key) {
formData.set(key, tracking[key]);
});
return formData;
}
applyToFields(document);
applyToLinks(document);
window._mbsTracking = {
params: tracking,
applyToLinks: applyToLinks,
applyToFields: applyToFields,
appendToFormData: appendToFormData,
};
})();
</script>
<script>
(function () {
var WEBHOOK =
"https://002-001-5dd6e535-4d1c-46bc-9bd9-42ad4bc5f082.odoo4projects.com/webhook/41f1356d-2b0b-443c-b381-37195f547198";
var form = document.getElementById("footer-contact-form");
var status = document.getElementById("footer-contact-status");
if (!form) return;
form.addEventListener("submit", function (e) {
e.preventDefault();
var button = form.querySelector("button[type='submit']");
var formData = new FormData(form);
if (window._mbsTracking)
formData = window._mbsTracking.appendToFormData(formData);
status.textContent = "Sending...";
button.disabled = true;
fetch(WEBHOOK, {
method: "POST",
body: formData,
})
.then(function () {
status.textContent = "Message received. We will get back to you soon.";
form.reset();
})
.catch(function () {
status.textContent = "Message received. We will get back to you soon.";
form.reset();
})
.finally(function () {
button.disabled = false;
});
});
})();
</script>
<script>
(function () {
var WEBHOOK =
"https://002-001-5dd6e535-4d1c-46bc-9bd9-42ad4bc5f082.odoo4projects.com/webhook/b901fc80-c7d0-4204-a6ee-b01fb6c9d3c9";
var form = document.getElementById("career-form");
var status = document.getElementById("career-status");
if (!form) return;
form.addEventListener("submit", function (e) {
e.preventDefault();
var button = form.querySelector("button[type='submit']");
var formData = new FormData(form);
if (window._mbsTracking)
formData = window._mbsTracking.appendToFormData(formData);
status.textContent = "Sending application...";
button.disabled = true;
fetch(WEBHOOK, {
method: "POST",
body: formData,
})
.then(function () {
status.textContent = "Application received. We will review it and come back to you.";
form.reset();
})
.catch(function () {
status.textContent = "Application received. We will review it and come back to you.";
form.reset();
})
.finally(function () {
button.disabled = false;
});
});
})();
</script>
<script src="https://cdn.jsdelivr.net/npm/@slicemypage/motionflow@latest/dist/motionflow.min.js"></script>
</body>
</html>
+629
View File
@@ -0,0 +1,629 @@
/**
* mybizapp.js — my-biz.app UI Components
* ========================================
* Provides two global modal functions:
*
* show_trial(plan?) — free-trial sign-up modal
* HTML lives in components/trial_modal.html (lazy-fetched)
*
* show_calendar() — book-a-meeting modal (Google Calendar iframe)
*
* CONFIGURATION (set before this script loads)
* ----------------------------------------------
* window.TrialModalConfig = {
* webhook : string — POST endpoint (multipart/form-data)
* product : string — hidden field value (default: "odoo_19")
* title : string — modal heading
* subtitle : string — modal sub-heading
* submitLabel : string — submit button label
* confirmTitle : string — success heading
* confirmSub : string — success body text
* calendarUrl : string — Google Calendar embed URL
* triggerSelector : string — CSS selectors for trial triggers
* (default: "#open-modal, .open-modal")
* calendarSelector : string — CSS selectors for calendar triggers
* (default: ".open-calendar")
* locations : Array<{ value: string, label: string }>
* utm_source / utm_medium / utm_campaign / utm_term / utm_content
* }
*
* AUTO-WIRING (on DOMContentLoaded)
* ------------------------------------
* #open-modal, .open-modal → show_trial(data-plan?)
* .open-calendar → show_calendar()
*
* DESIGN TOKENS (CSS custom properties, fallback to my-biz.app theme)
* --------------------------------------------------------------------
* --tm-bg, --tm-card, --tm-white, --tm-silver, --tm-grey
* --tm-gold, --tm-gold-hi, --tm-gold-lo, --tm-gold-glow, --tm-border, --tm-radius
*/
(function () {
"use strict";
/* ------------------------------------------------------------------ */
/* 1. BASE PATH (resolved from this script's src) */
/* ------------------------------------------------------------------ */
var _scriptBase = (function () {
var s = document.currentScript;
if (s && s.src) return s.src.replace(/\/[^/]+$/, "/") + "/";
return "components/";
})();
/* ------------------------------------------------------------------ */
/* 2. CONFIG */
/* ------------------------------------------------------------------ */
var DEFAULTS = {
webhook: "",
product: "odoo_19",
title: "Start Your 4 Weeks Free Trial",
subtitle: "Test drive your back-office in a 4-week free trial.",
submitLabel: "Start Free Trial",
confirmTitle: "Thank you! \uD83C\uDF89",
confirmSub: "We\u2019ve received your request and a specialist will be in touch within one business day.",
calendarUrl: "https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ3DDbaiHFlhNhWySszAQoPXE_H73QLqYT3w7H9IYWC76RA_TgNIhLESjb4N7ep_D2D_OyW9q4-c",
triggerSelector: "#open-modal, .open-modal",
calendarSelector: ".open-calendar",
locations: [
{ value: "boston", label: "\uD83C\uDDFA\uD83C\uDDF8 Boston" },
{ value: "manchester", label: "\uD83C\uDDEC\uD83C\uDDE7 Manchester" },
{ value: "mumbai", label: "\uD83C\uDDEE\uD83C\uDDF3 Mumbai" },
{ value: "saopaulo", label: "\uD83C\uDDE7\uD83C\uDDF7 S\u00e3o Paulo" },
{ value: "meppel", label: "\uD83C\uDDF3\uD83C\uDDF1 Meppel" },
{ value: "sydney", label: "\uD83C\uDDE6\uD83C\uDDFA Sydney" },
],
utm_source: "homepage",
utm_medium: "direct",
utm_campaign: "none",
utm_term: "",
utm_content: "",
};
var cfg = {};
for (var k in DEFAULTS) {
if (Object.prototype.hasOwnProperty.call(DEFAULTS, k)) cfg[k] = DEFAULTS[k];
}
var userCfg = window.TrialModalConfig || {};
for (var k in userCfg) {
if (Object.prototype.hasOwnProperty.call(userCfg, k)) cfg[k] = userCfg[k];
}
/* URL query string overrides UTM config */
var urlParams = new URLSearchParams(window.location.search);
["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"].forEach(function (p) {
var v = urlParams.get(p);
if (v) cfg[p] = v;
});
/* ------------------------------------------------------------------ */
/* 3. INJECT SHARED CSS */
/* ------------------------------------------------------------------ */
var CSS = [
/* Token fallbacks — scoped so host-page :root overrides still win */
"#tm-overlay, #cal-overlay {",
" --tm-bg: rgba(62,39,35,0.84);",
" --tm-card: #fff3e0;",
" --tm-white: #3e2723;",
" --tm-silver: #6d4c41;",
" --tm-grey: #a1887f;",
" --tm-gold: #e65100;",
" --tm-gold-hi: #fb8c00;",
" --tm-gold-lo: #bf360c;",
" --tm-gold-glow: rgba(230,81,0,0.18);",
" --tm-border: rgba(230,81,0,0.18);",
" --tm-radius: 28px;",
"}",
/* ---- Shared overlay ---- */
"#tm-overlay, #cal-overlay {",
" position: fixed; inset: 0; z-index: 9900;",
" display: none; align-items: center; justify-content: center;",
" padding: 20px;",
" background: var(--tm-bg);",
" backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);",
" box-sizing: border-box;",
"}",
/* ================================================================ */
/* TRIAL MODAL */
/* ================================================================ */
"#tm-box {",
" position: relative; width: 100%; max-width: 640px;",
" padding: 44px; background: var(--tm-card);",
" border-radius: var(--tm-radius);",
" border: 1px solid rgba(230,81,0,0.24);",
" box-shadow: 0 30px 90px rgba(0,0,0,0.3);",
" box-sizing: border-box;",
"}",
"#tm-close {",
" position: absolute; top: 18px; right: 18px;",
" width: 40px; height: 40px; border-radius: 50%;",
" color: var(--tm-grey); background: rgba(93,64,55,0.05);",
" font-size: 1.2rem; border: none; cursor: pointer; line-height: 1;",
"}",
"#tm-close:hover { color: var(--tm-gold); }",
"#tm-box .tm-title {",
" font-family: Georgia, 'Times New Roman', serif;",
" font-size: 2.2rem; font-weight: 700; line-height: 1.05; margin: 0 0 10px;",
" background: linear-gradient(135deg, var(--tm-gold-lo) 0%, var(--tm-gold) 38%, var(--tm-gold-hi) 55%, var(--tm-gold) 75%, var(--tm-gold-lo) 100%);",
" -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;",
"}",
"#tm-box .tm-subtitle {",
" font-size: 0.9rem; color: var(--tm-silver); margin: 0 0 26px;",
"}",
".tm-grid {",
" display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px;",
"}",
".tm-field-group { margin-bottom: 18px; }",
".tm-grid .tm-field-group.full { grid-column: 1 / -1; }",
".tm-label {",
" display: block; margin-bottom: 8px;",
" font-size: 0.62rem; font-family: system-ui, -apple-system, sans-serif;",
" text-transform: uppercase; letter-spacing: 0.08em; color: var(--tm-gold);",
"}",
".tm-field {",
" width: 100%; padding: 14px 16px; border-radius: 16px;",
" background: rgba(93,64,55,0.05); border: 1px solid var(--tm-border);",
" color: var(--tm-white); box-sizing: border-box; font: inherit; outline: none;",
"}",
".tm-field:focus { border-color: var(--tm-gold); box-shadow: 0 0 0 3px var(--tm-gold-glow); }",
".tm-field::placeholder { color: var(--tm-grey); }",
".tm-select { position: relative; }",
".tm-select-btn { position: relative; text-align: left; cursor: pointer; padding-right: 42px; background: none; border: none; }",
".tm-select-btn::after {",
" content: ''; position: absolute; right: 16px; top: 50%;",
" width: 14px; height: 8px; transform: translateY(-50%);",
" background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23E65100' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");",
" background-repeat: no-repeat; background-position: center; pointer-events: none;",
"}",
".tm-select-btn.is-placeholder { color: var(--tm-grey); }",
".tm-select-menu {",
" position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 3;",
" max-height: 220px; padding: 8px; background: var(--tm-card);",
" border: 1px solid var(--tm-border); border-radius: 16px;",
" box-shadow: 0 18px 40px rgba(62,39,35,0.16); overflow-y: auto; display: none;",
"}",
".tm-select.open .tm-select-menu { display: block; }",
".tm-select-option {",
" width: 100%; padding: 10px 12px; border: none; border-radius: 12px;",
" background: transparent; color: var(--tm-white);",
" text-align: left; font: inherit; cursor: pointer;",
" transition: background 0.2s, color 0.2s;",
"}",
".tm-select-option:hover, .tm-select-option:focus-visible, .tm-select-option.is-selected {",
" outline: none; background: rgba(230,81,0,0.1); color: var(--tm-gold);",
"}",
".tm-submit {",
" width: 100%; margin-top: 8px; padding: 15px 20px; border-radius: 50px; border: none;",
" cursor: pointer; font-family: system-ui, -apple-system, sans-serif;",
" font-size: 0.95rem; font-weight: 600; letter-spacing: 0.02em;",
" color: var(--tm-card);",
" background: linear-gradient(135deg, var(--tm-gold-lo) 0%, var(--tm-gold) 38%, var(--tm-gold-hi) 55%, var(--tm-gold) 75%, var(--tm-gold-lo) 100%);",
" transition: opacity 0.2s;",
"}",
".tm-submit:hover { opacity: 0.88; }",
".tm-submit:disabled { opacity: 0.56; cursor: not-allowed; }",
"#tm-confirm { display: none; text-align: center; padding-top: 8px; }",
"#tm-confirm .tm-confirm-title {",
" font-family: Georgia, 'Times New Roman', serif;",
" font-size: 1.6rem; color: var(--tm-gold-hi); margin: 0 0 12px;",
"}",
"#tm-confirm .tm-confirm-sub { color: var(--tm-silver); font-size: 0.9rem; margin: 0 0 24px; }",
/* ================================================================ */
/* CALENDAR MODAL */
/* ================================================================ */
"#cal-box {",
" position: relative; width: 100%; max-width: 780px;",
" background: var(--tm-card);",
" border-radius: var(--tm-radius);",
" border: 1px solid rgba(230,81,0,0.24);",
" box-shadow: 0 30px 90px rgba(0,0,0,0.3);",
" box-sizing: border-box; overflow: hidden;",
"}",
"#cal-header {",
" display: flex; align-items: center; justify-content: space-between;",
" padding: 22px 32px;",
" border-bottom: 1px solid var(--tm-border);",
"}",
"#cal-header .cal-title {",
" font-family: Georgia, 'Times New Roman', serif;",
" font-size: 1.5rem; font-weight: 700; margin: 0;",
" background: linear-gradient(135deg, var(--tm-gold-lo) 0%, var(--tm-gold) 38%, var(--tm-gold-hi) 55%, var(--tm-gold) 75%, var(--tm-gold-lo) 100%);",
" -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;",
"}",
"#cal-close {",
" width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;",
" color: var(--tm-grey); background: rgba(93,64,55,0.05);",
" font-size: 1.2rem; border: none; cursor: pointer; line-height: 1;",
"}",
"#cal-close:hover { color: var(--tm-gold); }",
"#cal-frame {",
" width: 100%; height: 620px; border: none; display: block;",
"}",
/* ================================================================ */
/* RESPONSIVE */
/* ================================================================ */
"@media (max-width: 860px) {",
" #tm-box { padding: 34px 22px; }",
" .tm-grid { grid-template-columns: 1fr; }",
" #cal-header { padding: 18px 20px; }",
" #cal-frame { height: 540px; }",
"}",
"@media (max-width: 480px) {",
" #tm-box .tm-title { font-size: 1.8rem; }",
" #cal-header .cal-title { font-size: 1.2rem; }",
" #cal-frame { height: 480px; }",
"}",
].join("\n");
var _styleEl = document.createElement("style");
_styleEl.id = "mba-styles";
_styleEl.textContent = CSS;
document.head.appendChild(_styleEl);
/* ================================================================== */
/* TRIAL MODAL */
/* ================================================================== */
var _trialLoading = false;
var _trialLoaded = false;
var _trialQueue = []; /* pending plan args while HTML is fetching */
/* --- show_trial(plan?) -------------------------------------------- */
function show_trial(plan) {
if (_trialLoaded) {
_openTrial(plan);
return;
}
_trialQueue.push(plan !== undefined ? plan : null);
if (!_trialLoading) {
_trialLoading = true;
_loadTrialModal();
}
}
/* --- Fetch + inject trial_modal.html ------------------------------ */
function _loadTrialModal() {
var url = _scriptBase + "trial_modal.html";
fetch(url)
.then(function (r) {
if (!r.ok) throw new Error("[mybizapp] trial_modal.html fetch failed: " + r.status);
return r.text();
})
.then(function (html) {
var tmp = document.createElement("div");
tmp.innerHTML = html;
var node = tmp.firstElementChild;
document.body.appendChild(node);
_applyTrialConfig();
_wireTrialEvents();
_trialLoaded = true;
_trialLoading = false;
if (_trialQueue.length) {
var plan = _trialQueue[_trialQueue.length - 1];
_trialQueue = [];
_openTrial(plan);
}
})
.catch(function (err) {
console.error(err);
_trialLoading = false;
_trialQueue = [];
});
}
/* --- Apply TrialModalConfig overrides after HTML is in the DOM ---- */
function _applyTrialConfig() {
/* Text content */
var titleEl = document.getElementById("tm-title");
if (titleEl) titleEl.textContent = cfg.title;
var subEl = document.querySelector("#tm-box .tm-subtitle");
if (subEl) subEl.textContent = cfg.subtitle;
var submitEl = document.querySelector("#tm-form .tm-submit");
if (submitEl) submitEl.textContent = cfg.submitLabel;
var confirmTitleEl = document.querySelector("#tm-confirm .tm-confirm-title");
if (confirmTitleEl) confirmTitleEl.textContent = cfg.confirmTitle;
var confirmSubEl = document.querySelector("#tm-confirm .tm-confirm-sub");
if (confirmSubEl) confirmSubEl.textContent = cfg.confirmSub;
/* Locations — rebuild menu only if config provides a custom list */
if (userCfg.locations) {
var menu = document.getElementById("tm-location-menu");
if (menu) {
menu.innerHTML = cfg.locations.map(function (loc) {
return '<button type="button" class="tm-select-option" data-value="'
+ _esc(loc.value) + '">' + _esc(loc.label) + "</button>";
}).join("\n");
}
}
/* UTM hidden fields */
var form = document.getElementById("tm-form");
if (form) {
var utmMap = {
utm_source: cfg.utm_source,
utm_medium: cfg.utm_medium,
utm_campaign: cfg.utm_campaign,
utm_term: cfg.utm_term,
utm_content: cfg.utm_content,
};
Object.keys(utmMap).forEach(function (name) {
var el = form.querySelector('[name="' + name + '"]');
if (el) el.value = utmMap[name];
});
}
}
/* --- Wire all trial modal events ---------------------------------- */
function _wireTrialEvents() {
var overlay = document.getElementById("tm-overlay");
var box = document.getElementById("tm-box");
var closeBtn = document.getElementById("tm-close");
var form = document.getElementById("tm-form");
var confirmDiv = document.getElementById("tm-confirm");
var confirmClose = document.getElementById("tm-confirm-close");
var planField = document.getElementById("tm-plan");
var productField = document.getElementById("tm-product");
var locationField = document.getElementById("tm-location");
var locationSelect = document.getElementById("tm-location-select");
var locationBtn = document.getElementById("tm-location-btn");
var locationMenu = document.getElementById("tm-location-menu");
var defaultProduct = productField.value;
/* Location picker */
function _syncLabel() {
var val = locationField.value || "";
var selected = null;
locationMenu.querySelectorAll(".tm-select-option").forEach(function (opt) {
var isSel = opt.getAttribute("data-value") === val;
if (isSel) selected = opt;
opt.classList.toggle("is-selected", isSel);
opt.setAttribute("aria-selected", isSel ? "true" : "false");
});
locationBtn.textContent = selected ? selected.textContent.trim() : "Select your server location";
locationBtn.classList.toggle("is-placeholder", !selected);
locationBtn.setAttribute("aria-expanded", locationSelect.classList.contains("open") ? "true" : "false");
}
function _openLoc() { locationSelect.classList.add("open"); _syncLabel(); }
function _closeLoc() { locationSelect.classList.remove("open"); _syncLabel(); }
locationBtn.addEventListener("click", function () {
locationSelect.classList.contains("open") ? _closeLoc() : _openLoc();
});
locationMenu.querySelectorAll(".tm-select-option").forEach(function (opt) {
opt.addEventListener("click", function () {
locationField.value = opt.getAttribute("data-value") || "";
_closeLoc();
});
});
document.addEventListener("click", function (e) {
if (!locationSelect.contains(e.target)) _closeLoc();
});
/* Store open/close functions so show_trial() can call them */
overlay._openTrial = function (plan) {
planField.value = plan || "General Free Trial";
productField.value = defaultProduct; /* always pinned */
if (window._mbsTracking) window._mbsTracking.applyToFields(form);
_closeLoc();
overlay.style.display = "flex";
document.body.style.overflow = "hidden";
};
overlay._closeTrial = function () {
overlay.style.display = "none";
document.body.style.overflow = "";
setTimeout(function () {
form.style.display = "";
confirmDiv.style.display = "none";
form.reset();
planField.value = "General Free Trial";
productField.value = defaultProduct;
locationField.value = "";
if (window._mbsTracking) window._mbsTracking.applyToFields(form);
_closeLoc();
var btn = form.querySelector(".tm-submit");
btn.textContent = cfg.submitLabel;
btn.disabled = false;
}, 200);
};
/* Close triggers */
closeBtn.addEventListener("click", function () { overlay._closeTrial(); });
confirmClose.addEventListener("click", function () { overlay._closeTrial(); });
overlay.addEventListener("click", function (e) {
if (e.target === overlay || !box.contains(e.target)) overlay._closeTrial();
});
document.addEventListener("keydown", function (e) {
if (e.key === "Escape") {
if (locationSelect.classList.contains("open")) { _closeLoc(); return; }
if (overlay.style.display === "flex") overlay._closeTrial();
}
});
/* Form submit */
form.addEventListener("submit", function (e) {
e.preventDefault();
if (!cfg.webhook) {
console.warn("[mybizapp] No webhook URL set. Add window.TrialModalConfig.webhook.");
return;
}
var btn = form.querySelector(".tm-submit");
var formData = new FormData(form);
if (window._mbsTracking) {
formData = window._mbsTracking.appendToFormData(formData);
window._mbsTracking.trackEvent("Trial", { source: planField.value || "General Free Trial" });
}
btn.textContent = "Sending\u2026";
btn.disabled = true;
/* Show confirmation regardless — webhook may not return CORS headers */
fetch(cfg.webhook, { method: "POST", body: formData })
.then(function () { form.style.display = "none"; confirmDiv.style.display = "block"; })
.catch(function () { form.style.display = "none"; confirmDiv.style.display = "block"; });
});
}
/* --- Internal open helper (called after HTML is confirmed ready) -- */
function _openTrial(plan) {
var overlay = document.getElementById("tm-overlay");
if (overlay && overlay._openTrial) overlay._openTrial(plan);
}
/* ================================================================== */
/* CALENDAR MODAL */
/* ================================================================== */
var _calInjected = false;
/* --- show_calendar() ---------------------------------------------- */
function show_calendar() {
if (!_calInjected) _buildCalendarModal();
var overlay = document.getElementById("cal-overlay");
if (overlay) {
overlay.style.display = "flex";
document.body.style.overflow = "hidden";
}
}
/* --- Build and inject the calendar modal HTML --------------------- */
function _buildCalendarModal() {
var html = [
'<div id="cal-overlay" role="dialog" aria-modal="true" aria-labelledby="cal-title">',
' <div id="cal-box">',
' <div id="cal-header">',
' <h2 class="cal-title" id="cal-title">Book a Meeting</h2>',
' <button id="cal-close" aria-label="Close">&times;</button>',
' </div>',
' <iframe',
' id="cal-frame"',
' src="' + _esc(cfg.calendarUrl) + '"',
' title="Book a Meeting"',
' loading="lazy"',
' ></iframe>',
' </div>',
'</div>',
].join("\n");
var tmp = document.createElement("div");
tmp.innerHTML = html;
document.body.appendChild(tmp.firstElementChild);
_calInjected = true;
_wireCalendarEvents();
}
/* --- Wire calendar modal events ----------------------------------- */
function _wireCalendarEvents() {
var overlay = document.getElementById("cal-overlay");
var box = document.getElementById("cal-box");
var closeBtn = document.getElementById("cal-close");
function _closeCalendar() {
overlay.style.display = "none";
document.body.style.overflow = "";
}
closeBtn.addEventListener("click", _closeCalendar);
overlay.addEventListener("click", function (e) {
if (e.target === overlay || !box.contains(e.target)) _closeCalendar();
});
document.addEventListener("keydown", function (e) {
if (e.key === "Escape" && overlay.style.display === "flex") _closeCalendar();
});
}
/* ================================================================== */
/* DOM AUTO-WIRING */
/* ================================================================== */
function _wireAll() {
/* Trial triggers */
var primary = document.getElementById("open-modal");
if (primary) {
primary.addEventListener("click", function (e) {
e.preventDefault();
show_trial();
});
}
try {
document.querySelectorAll(cfg.triggerSelector).forEach(function (el) {
if (el.id === "open-modal") return; /* already handled above */
el.addEventListener("click", function (e) {
e.preventDefault();
show_trial(el.getAttribute("data-plan") || undefined);
});
});
} catch (err) {
console.warn("[mybizapp] invalid triggerSelector:", cfg.triggerSelector, err);
}
/* Calendar triggers */
try {
document.querySelectorAll(cfg.calendarSelector).forEach(function (el) {
el.addEventListener("click", function (e) {
e.preventDefault();
show_calendar();
});
});
} catch (err) {
console.warn("[mybizapp] invalid calendarSelector:", cfg.calendarSelector, err);
}
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", _wireAll);
} else {
_wireAll();
}
/* ================================================================== */
/* UTILITIES */
/* ================================================================== */
function _esc(str) {
return String(str)
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;");
}
/* ================================================================== */
/* PUBLIC API */
/* ================================================================== */
window.show_trial = show_trial;
window.show_calendar = show_calendar;
})();
+64
View File
@@ -0,0 +1,64 @@
<div id="tm-overlay" role="dialog" aria-modal="true" aria-labelledby="tm-title">
<div id="tm-box">
<button id="tm-close" aria-label="Close">&times;</button>
<h2 class="tm-title" id="tm-title">Start Your 4 Weeks Free Trial</h2>
<p class="tm-subtitle">Test drive your back-office in a 4-week free trial.</p>
<form id="tm-form" novalidate>
<div class="tm-grid">
<div class="tm-field-group full">
<label class="tm-label" for="tm-email">Work Email</label>
<input
type="email"
id="tm-email"
name="email"
class="tm-field"
placeholder="you@company.com"
required
/>
</div>
<div class="tm-field-group full tm-select" id="tm-location-select">
<label class="tm-label" for="tm-location">Server Location</label>
<button
type="button"
class="tm-field tm-select-btn is-placeholder"
id="tm-location-btn"
aria-haspopup="listbox"
aria-expanded="false"
aria-controls="tm-location-menu"
>
Select your server location
</button>
<div
class="tm-select-menu"
id="tm-location-menu"
role="listbox"
aria-labelledby="tm-location-btn"
>
<button type="button" class="tm-select-option" data-value="boston">🇺🇸 Boston</button>
<button type="button" class="tm-select-option" data-value="manchester">🇬🇧 Manchester</button>
<button type="button" class="tm-select-option" data-value="mumbai">🇮🇳 Mumbai</button>
<button type="button" class="tm-select-option" data-value="saopaulo">🇧🇷 São Paulo</button>
<button type="button" class="tm-select-option" data-value="meppel">🇳🇱 Meppel</button>
<button type="button" class="tm-select-option" data-value="sydney">🇦🇺 Sydney</button>
</div>
<input type="hidden" id="tm-location" name="location" value="" required />
</div>
</div>
<input type="hidden" id="tm-product" name="product" value="odoo_19" />
<input type="hidden" id="tm-plan" name="plan" value="General Free Trial" />
<input type="hidden" name="utm_source" value="" />
<input type="hidden" name="utm_medium" value="" />
<input type="hidden" name="utm_campaign" value="" />
<input type="hidden" name="utm_term" value="" />
<input type="hidden" name="utm_content" value="" />
<button type="submit" class="tm-submit">Start Free Trial</button>
</form>
<div id="tm-confirm">
<p class="tm-confirm-title">Thank you! 🎉</p>
<p class="tm-confirm-sub">
We've received your request and a specialist will be in touch within one business day.
</p>
<button id="tm-confirm-close" class="tm-submit">Close</button>
</div>
</div>
</div>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+212
View File
@@ -0,0 +1,212 @@
[
{
"name": "Startup_Book_Stack.jpg",
"objects": ["notebook", "books", "desk"],
"scenes": ["workspace"],
"feeling": "old school, productive, learning"
},
{
"name": "manufacturing_drilling.jpg",
"objects": ["industrial equipment", "machinery"],
"scenes": ["industrial", "workshop"],
"feeling": "productive, industrial, focused"
},
{
"name": "manufacturing_flex.jpg",
"objects": ["flexible machinery", "industrial equipment"],
"scenes": ["industrial", "workshop"],
"feeling": "modern, productive, efficient"
},
{
"name": "manufacturing_fraese.jpg",
"objects": ["cnc machine", "machinery", "tools"],
"scenes": ["industrial", "workshop"],
"feeling": "precise, professional, productive"
},
{
"name": "manufacturing_lehte.jpg",
"objects": ["sheet metal", "industrial equipment"],
"scenes": ["industrial", "workshop"],
"feeling": "industrial, modern, efficient"
},
{
"name": "manufacturing_pipes.jpg",
"objects": ["pipes", "industrial equipment"],
"scenes": ["industrial", "warehouse"],
"feeling": "industrial, structured, productive"
},
{
"name": "manufacturing_pottery.jpg",
"objects": ["pottery", "ceramics", "craft"],
"scenes": ["workshop", "artisan"],
"feeling": "creative, handcraft, traditional"
},
{
"name": "manufacturing_textil.jpg",
"objects": ["textile", "fabric", "machinery"],
"scenes": ["industrial", "factory"],
"feeling": "industrial, productive, modern"
},
{
"name": "manufacturing_workshop.jpg",
"objects": ["workshop", "tools", "machinery"],
"scenes": ["workshop", "industrial"],
"feeling": "productive, professional, focused"
},
{
"name": "manufacturing_workshop2.jpg",
"objects": ["workshop", "tools", "equipment"],
"scenes": ["workshop", "industrial"],
"feeling": "productive, skilled, traditional"
},
{
"name": "ngo_books.jpg",
"objects": ["books", "notebook", "desk"],
"scenes": ["office", "workspace"],
"feeling": "learning, educational, old school"
},
{
"name": "ngo_campus.jpg",
"objects": ["buildings", "city", "outdoor"],
"scenes": ["nature", "urban"],
"feeling": "professional, organized, community"
},
{
"name": "ngo_cowork.jpg",
"objects": ["laptop", "desk", "coworking space"],
"scenes": ["workspace", "office"],
"feeling": "collaborative, modern, communication"
},
{
"name": "ngo_hospital.jpg",
"objects": ["hospital", "medical", "building"],
"scenes": ["medical", "urban"],
"feeling": "caring, professional, community"
},
{
"name": "ngo_office.jpg",
"objects": ["desk", "office", "workspace"],
"scenes": ["office", "workspace"],
"feeling": "productive, organized, professional"
},
{
"name": "ngo_office3.jpg",
"objects": ["office", "meeting room", "workspace"],
"scenes": ["office", "meeting"],
"feeling": "professional, collaborative, modern"
},
{
"name": "ngo_scheduöe.jpg",
"objects": ["schedule", "planning", "calendar"],
"scenes": ["workspace", "office"],
"feeling": "organized, productive, structured"
},
{
"name": "ngo_success.jpg",
"objects": ["team", "office", "celebration"],
"scenes": ["workspace", "office"],
"feeling": "success, teamwork, communication"
},
{
"name": "pos_burger.jpg",
"objects": ["food", "burger", "restaurant"],
"scenes": ["restaurant", "workspace"],
"feeling": "modern, fast-paced, productive"
},
{
"name": "pos_coffe.jpg",
"objects": ["coffee", "cafe", "drink"],
"scenes": ["cafe", "restaurant"],
"feeling": "cozy, communication, relaxed"
},
{
"name": "pos_delivery.jpg",
"objects": ["delivery", "food", "vehicle"],
"scenes": ["workspace", "urban"],
"feeling": "modern, fast-paced, productive"
},
{
"name": "pos_restaurant.jpg",
"objects": ["restaurant", "food", "dining"],
"scenes": ["restaurant", "workspace"],
"feeling": "modern, professional, productive"
},
{
"name": "pos_restaurant_2.jpg",
"objects": ["restaurant", "dining", "interior"],
"scenes": ["restaurant", "workspace"],
"feeling": "modern, cozy, inviting"
},
{
"name": "pos_vintage_cafe.jpg",
"objects": ["cafe", "vintage", "coffee"],
"scenes": ["cafe", "workspace"],
"feeling": "old school, cozy, communication"
},
{
"name": "startup_couple.jpg",
"objects": ["people", "laptop", "workspace"],
"scenes": ["workspace", "meeting"],
"feeling": "collaborative, communication, productive"
},
{
"name": "startup_desk.jpg",
"objects": ["laptop", "desk", "workspace"],
"scenes": ["workspace"],
"feeling": "productive, modern, focused"
},
{
"name": "startup_fun.jpg",
"objects": ["team", "people", "fun activities"],
"scenes": ["workspace", "meeting"],
"feeling": "fun, communication, teamwork"
},
{
"name": "startup_manager.jpg",
"objects": ["manager", "laptop", "desk"],
"scenes": ["workspace", "office"],
"feeling": "professional, leadership, productive"
},
{
"name": "startup_meeting.jpg",
"objects": ["meeting room", "laptop", "team"],
"scenes": ["meeting", "workspace"],
"feeling": "communication, collaboration, productive"
},
{
"name": "startup_nature.jpg",
"objects": ["nature", "outdoor", "laptop"],
"scenes": ["nature", "workspace"],
"feeling": "creative, fresh, productive"
},
{
"name": "startup_night.jpg",
"objects": ["city", "night", "workspace"],
"scenes": ["urban", "workspace"],
"feeling": "modern, city, productive"
},
{
"name": "startup_open.jpg",
"objects": ["open space", "coworking", "laptop"],
"scenes": ["workspace", "open"],
"feeling": "open, collaborative, modern"
},
{
"name": "startup_open2.jpg",
"objects": ["open space", "coworking", "office"],
"scenes": ["workspace", "open"],
"feeling": "collaborative, modern, flexible"
},
{
"name": "startup_small_business.jpg",
"objects": ["small business", "desk", "workspace"],
"scenes": ["workspace", "office"],
"feeling": "entrepreneurial, productive, personal"
},
{
"name": "startup_write_plan.jpg",
"objects": ["notebook", "writing", "planning"],
"scenes": ["workspace"],
"feeling": "productive, creative, planning"
}
]
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

+38
View File
@@ -0,0 +1,38 @@
Bild von <a href="https://pixabay.com/de/users/gumigasuki-793585/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=645620">加藤 俊</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=645620">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/jannonivergall-19088294/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=5736096">Janno Nivergall</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=5736096">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/ralphs_fotos-1767157/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3738903">Ralph</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3738903">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/gumigasuki-793585/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=645617">加藤 俊</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=645617">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/bakhrom_media-25181840/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6967964">Bakhrom Tursunov</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6967964">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/hnhiri-8787/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=108639">Hassan Nhiri</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=108639">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/thmilherou-5808126/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4863393">Thierry Milherou</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4863393">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/gpoulsen-6673015/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6665608">G Poulsen</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6665608">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/pexels-2286921/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1837150">Pexels</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1837150">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/neshom-447256/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=449952">Nenad Maric</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=449952">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/randgruppe-12327121/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4217255">Nico Franz</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4217255">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/stocksnap-894430/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2572522">StockSnap</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2572522">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/kaboompics-1013994/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=791942">Karolina Grabowska</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=791942">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/sunriseforever-6314823/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6974507">Sunrise</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6974507">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/konkapo-55292388/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=10237219">kazuharu kondo</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=10237219">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/geralt-9301/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2411763">Gerd Altmann</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2411763">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/pexels-2286921/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1868015">Pexels</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1868015">Pixabay</a>Bild von <a href="https://pixabay.com/de/users/peggy_marco-1553824/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1607503">Peggy und Marco Lachmann-Anke</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1607503">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/pexels-2286921/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1868667">Pexels</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1868667">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/alandavidrobb-1467112/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=966315">Alan Robb</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=966315">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/publicdomainpictures-14/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=14612">PublicDomainPictures</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=14612">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/publicdomainpictures-14/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=14612">PublicDomainPictures</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=14612">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/publicdomainpictures-14/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=14612">PublicDomainPictures</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=14612">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/peggy_marco-1553824/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=5050731">Peggy und Marco Lachmann-Anke</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=5050731">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/qluglobal-19620160/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=5851598">QLU Global</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=5851598">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/halcyonmarine-9714076/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3579026">Halcyon Marine Healthcare Systems</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3579026">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/fulopszokemariann-10698699/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3816835">Mariann Szőke</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3816835">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/lernestorod-5382836/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2476806">Ernesto Rodriguez</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2476806">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/lernestorod-5382836/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2476806">Ernesto Rodriguez</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2476806">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/webandi-1460261/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1021419">Andreas Lischka</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1021419">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/standsome-18205472/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6816316">Standsome</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=6816316">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/infoniqa_com-14413006/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4653983">Infoniqa_com</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4653983">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/pexels-2286921/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1866533">Pexels</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1866533">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/sarahblocks-8094083/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4156018">sarah blocksidge</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=4156018">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/stocksnap-894430/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2564273">StockSnap</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2564273">Pixabay</a>
Bild von <a href="https://pixabay.com/de/users/stocksnap-894430/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2578008">StockSnap</a> auf <a href="https://pixabay.com/de//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=2578008">Pixabay</a>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

Some files were not shown because too many files have changed in this diff Show More