tealyo.com
Open in
urlscan Pro
23.227.38.67
Public Scan
Submitted URL: http://www.tealyo.com/
Effective URL: https://tealyo.com/
Submission: On February 15 via manual from PH — Scanned from CA
Effective URL: https://tealyo.com/
Submission: On February 15 via manual from PH — Scanned from CA
Form analysis
8 forms found in the DOMPOST /localization
<form method="post" action="/localization" id="nav-localization" accept-charset="UTF-8" class="form localization no-js-hidden" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization"><input type="hidden" name="utf8"
value="✓"><input type="hidden" name="_method" value="put"><input type="hidden" name="return_to"
value="/?fbclid=PAAaYuORhTWWvdBbOOkUqNqzfhWR3wF1hJx0aiRW6taOwd4iEBnkh4IbzJOQo_aem_AYbdbUn1KzlKsYqxayXY0ULo_gujYsABNvSTB6iFfHcwDJbIQZHNwtCyIcvqwoXRgls">
<div class="localization__grid">
<div class="localization__selector">
<input type="hidden" name="country_code" value="CA">
<country-selector><label class="label visually-hidden no-js-hidden" for="nav-localization-country-button">Country/Region</label>
<div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" aria-expanded="false" aria-haspopup="listbox" id="nav-localization-country-button">
<span class="text-start">Canada (CAD $)</span>
<svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true">
<path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path>
</svg>
</button>
<ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" aria-hidden="true" hidden="" aria-activedescendant="nav-localization-country-opt-0">
<li class="custom-select__option flex items-center js-option" id="nav-localization-country-opt-0" role="option" data-value="CA" aria-selected="true">
<span class="pointer-events-none">Canada (CAD $)</span>
</li>
</ul>
</div>
</country-selector>
</div>
</div>
<script>
customElements.whenDefined('custom-select').then(() => {
if (!customElements.get('country-selector')) {
class CountrySelector extends customElements.get('custom-select') {
constructor() {
super();
this.loaded = false;
}
async showListbox() {
if (this.loaded) {
super.showListbox();
return;
}
this.button.classList.add('is-loading');
this.button.setAttribute('aria-disabled', 'true');
try {
const response = await fetch('?section_id=country-selector');
if (!response.ok) throw new Error(response.status);
const tmpl = document.createElement('template');
tmpl.innerHTML = await response.text();
const el = tmpl.content.querySelector('.custom-select__listbox');
this.listbox.innerHTML = el.innerHTML;
this.options = this.querySelectorAll('.custom-select__option');
this.loaded = true;
} catch {
this.listbox.innerHTML = '<li>Error fetching countries, please try again.</li>';
} finally {
super.showListbox();
this.button.classList.remove('is-loading');
this.button.setAttribute('aria-disabled', 'false');
}
}
setButtonWidth() {
return;
}
}
customElements.define('country-selector', CountrySelector);
}
});
</script>
<script>
document.getElementById('nav-localization').addEventListener('change', (evt) => {
const input = evt.target.previousElementSibling;
if (input && input.tagName === 'INPUT') {
input.value = evt.detail.selectedValue;
evt.currentTarget.submit();
}
});
</script>
</form>
GET /search
<form class="search relative search--speech search--product-types" role="search" action="/search" method="get">
<label class="label visually-hidden" for="header-search">Search</label>
<script src="//tealyo.com/cdn/shop/t/6/assets/search-form.js?v=43677551656194261111707364599" defer="defer"></script>
<search-form class="search__form block">
<input type="hidden" name="type" value="product,page,">
<input type="hidden" name="options[prefix]" value="last">
<input type="search" class="search__input w-full input js-search-input" id="header-search" name="q" placeholder="Search for bundles" data-placeholder-one="Search for collection" data-placeholder-two="Search for bundles"
data-placeholder-three="Search for puzzles" data-placeholder-prompts-mob="false" data-typing-speed="100" data-deleting-speed="60" data-delay-after-deleting="500" data-delay-before-first-delete="2000" data-delay-after-word-typed="2400"
role="combobox" autocomplete="off" aria-autocomplete="list" aria-controls="predictive-search-results" aria-owns="predictive-search-results" aria-haspopup="listbox" aria-expanded="false" spellcheck="false">
<custom-select id="product_types" class="search__product-types absolute left-0 top-0 bottom-0 js-search-product-types"><label class="label visually-hidden no-js-hidden" for="product_types-button">Product type</label>
<div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" aria-expanded="false" aria-haspopup="listbox" id="product_types-button" style="--custom-select-button-width: 13px;">
<span class="text-start">All</span>
<svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true">
<path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path>
</svg>
</button>
<ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" aria-hidden="true" hidden="">
<li class="custom-select__option js-option" id="product_types-opt-default" role="option" data-value="">
<span class="pointer-events-none">All</span>
</li>
<li class="custom-select__option flex items-center js-option" id="product_types-opt-0" role="option" data-value="Islamic">
<span class="pointer-events-none">Islamic</span>
</li>
<li class="custom-select__option flex items-center js-option" id="product_types-opt-1" role="option" data-value="Puzzle">
<span class="pointer-events-none">Puzzle</span>
</li>
</ul>
</div>
</custom-select>
<input type="hidden" id="product_type_input" name="filter.p.product_type"><button type="button" class="search__reset text-current vertical-center absolute focus-inset js-search-reset" hidden="">
<span class="visually-hidden">Reset</span>
<svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linejoin="round" aria-hidden="true" focusable="false" role="presentation" class="icon">
<path d="M5 19 19 5M5 5l14 14"></path>
</svg>
</button><speech-search-button class="search__speech focus-inset right-0" tabindex="0" title="Search by voice" style="--speech-icon-color: #0e3341">
<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true" focusable="false" role="presentation" class="icon">
<path fill="currentColor"
d="M17.3 11c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.49 6-3.31 6-6.72m-8.2-6.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2M12 14a3 3 0 0 0 3-3V5a3 3 0 0 0-3-3 3 3 0 0 0-3 3v6a3 3 0 0 0 3 3Z">
</path>
</svg>
</speech-search-button>
<link href="//tealyo.com/cdn/shop/t/6/assets/speech-search.css?v=47207760375520952331707364599" rel="stylesheet" type="text/css" media="all">
<script src="//tealyo.com/cdn/shop/t/6/assets/speech-search.js?v=106462966657620737681707364599" defer="defer"></script>
</search-form>
<div class="js-search-results" tabindex="-1" data-predictive-search=""></div>
<span class="js-search-status visually-hidden" role="status" aria-hidden="true"></span>
</form>
POST /cart/add
<form method="post" action="/cart/add" id="quick-add-8257408467192" accept-charset="UTF-8" class="js-product-form" enctype="multipart/form-data" novalidate="novalidate"><input type="hidden" name="form_type" value="product"><input type="hidden"
name="utf8" value="✓"><input type="hidden" name="id" value="44396657639672"><button class="btn btn--primary w-full" data-add-to-cart-text="Add to cart" name="add" aria-haspopup="dialog">
<span class="quick-add-btn-icon">
<span class="visually-hidden">Add to cart</span>
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon">
<path
d="M12.12 20.44H5.6V9.56h12.8v3.73c.06.4.4.69.8.7.44 0 .8-.35.8-.8v-4.5a.792.792 0 0 0-.8-.69H17V6.5C16.9 4 14.7 2 12 2S7 4.09 7 6.67V8H4.71c-.4.04-.71.37-.71.78v12.53a.8.8 0 0 0 .8.69h7.43c.38-.06.67-.39.67-.78 0-.43-.35-.78-.78-.78ZM8.66 6.67c0-1.72 1.49-3.11 3.33-3.11s3.33 1.39 3.33 3.11V8H8.65V6.67Z">
</path>
<path d="M20 17.25h-2.4v-2.5a.817.817 0 0 0-.8-.7c-.44 0-.8.36-.8.8v2.4h-2.5c-.4.06-.7.4-.7.8 0 .44.36.8.8.8H16v2.5c.06.4.4.7.8.7.44 0 .8-.36.8-.8v-2.4h2.5c.4-.06.69-.4.7-.8 0-.44-.35-.8-.8-.8Z"></path>
</svg>
</span>
<span class="quick-add-btn-text">Add to cart</span>
</button>
<a href="/products/sustainable-city-puzzle" class="btn btn--secondary quick-add-view-btn">View details</a><input type="hidden" name="product-id" value="8257408467192"><input type="hidden" name="section-id"
value="template--17393888100600__featured-collection">
</form>
POST /cart/add
<form method="post" action="/cart/add" id="quick-add-8268169511160" accept-charset="UTF-8" class="js-product-form" enctype="multipart/form-data" novalidate="novalidate"><input type="hidden" name="form_type" value="product"><input type="hidden"
name="utf8" value="✓"><input type="hidden" name="id" value="44427338776824"><button class="btn btn--primary w-full" data-add-to-cart-text="Add to cart" name="add" aria-haspopup="dialog">
<span class="quick-add-btn-icon">
<span class="visually-hidden">Add to cart</span>
<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon">
<path
d="M12.12 20.44H5.6V9.56h12.8v3.73c.06.4.4.69.8.7.44 0 .8-.35.8-.8v-4.5a.792.792 0 0 0-.8-.69H17V6.5C16.9 4 14.7 2 12 2S7 4.09 7 6.67V8H4.71c-.4.04-.71.37-.71.78v12.53a.8.8 0 0 0 .8.69h7.43c.38-.06.67-.39.67-.78 0-.43-.35-.78-.78-.78ZM8.66 6.67c0-1.72 1.49-3.11 3.33-3.11s3.33 1.39 3.33 3.11V8H8.65V6.67Z">
</path>
<path d="M20 17.25h-2.4v-2.5a.817.817 0 0 0-.8-.7c-.44 0-.8.36-.8.8v2.4h-2.5c-.4.06-.7.4-.7.8 0 .44.36.8.8.8H16v2.5c.06.4.4.7.8.7.44 0 .8-.36.8-.8v-2.4h2.5c.4-.06.69-.4.7-.8 0-.44-.35-.8-.8-.8Z"></path>
</svg>
</span>
<span class="quick-add-btn-text">Add to cart</span>
</button>
<a href="/products/city-roll" class="btn btn--secondary quick-add-view-btn">View details</a><input type="hidden" name="product-id" value="8268169511160"><input type="hidden" name="section-id" value="template--17393888100600__featured-collection">
</form>
POST /contact#template--17393888100600__pop_up_Ar968Q-sign-up_form
<form method="post" action="/contact#template--17393888100600__pop_up_Ar968Q-sign-up_form" id="template--17393888100600__pop_up_Ar968Q-sign-up_form" accept-charset="UTF-8" class="form"><input type="hidden" name="form_type" value="customer"><input
type="hidden" name="utf8" value="✓">
<input type="hidden" name="contact[tags]" value="prospect, pop-up">
<div class="form__field">
<label class="label visually-hidden" for="template--17393888100600__pop_up_Ar968Q-sign-up">Email</label>
<div class="input-with-button"><input type="email" class="input w-full focus-inset" id="template--17393888100600__pop_up_Ar968Q-sign-up" name="contact[email]" value="" placeholder="Your email" autocomplete="email" aria-required="true"
required=""><button class="btn focus-inset has-ltr-icon">
<span class="visually-hidden">Subscribe</span>
<svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon">
<path d="M4.696 12h14.686m-7.007-7.5 7.5 7.5-7.5 7.5"></path>
</svg>
</button></div>
</div>
</form>
POST /cart
<form class="form" id="cart-drawer-form" action="/cart" method="post">
<cart-items id="cart-items" data-section="cart-drawer" data-empty="true">
<div class="cart-empty flex flex-col justify-center items-center h-full js-cart-empty"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" role="presentation" class="icon">
<path
d="M12 2c2.761 0 5 2.089 5 4.667V8h2.2a.79.79 0 0 1 .8.778v12.444a.79.79 0 0 1-.8.778H4.8a.789.789 0 0 1-.8-.778V8.778A.79.79 0 0 1 4.8 8H7V6.667C7 4.09 9.239 2 12 2zm6.4 7.556H5.6v10.888h12.8V9.556zm-6.4-6c-1.84 0-3.333 1.392-3.333 3.11V8h6.666V6.667c0-1.719-1.492-3.111-3.333-3.111z">
</path>
</svg>
<p>Your cart is empty</p><a class="btn btn--primary" href="/collections/all">Start shopping</a>
</div>
<p class="visually-hidden" id="cart-live-region-text" role="status" aria-live="polite"> Subtotal:$0.00 CAD </p>
<p class="visually-hidden" id="cart-line-item-status" role="status" aria-live="polite" aria-hidden="true">Loading...</p>
<div class="alert mt-6 bg-error-bg text-error-text" id="cart-errors" role="alert" hidden=""></div>
</cart-items>
</form>
POST /contact#footer-signup_form
<form method="post" action="/contact#footer-signup_form" id="footer-signup_form" accept-charset="UTF-8" class="form"><input type="hidden" name="form_type" value="customer"><input type="hidden" name="utf8" value="✓">
<input type="hidden" name="contact[tags]" value="prospect, newsletter">
<div class="form__field">
<label class="label visually-hidden" for="footer-signup">Email</label>
<div class="input-with-button"><input type="email" class="input w-full focus-inset" id="footer-signup" name="contact[email]" value="" placeholder="Your email" autocomplete="email" aria-required="true" required=""><button
class="btn focus-inset has-ltr-icon">
<span class="visually-hidden">Subscribe</span>
<svg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon">
<path d="M4.696 12h14.686m-7.007-7.5 7.5 7.5-7.5 7.5"></path>
</svg>
</button></div>
</div>
</form>
POST /localization
<form method="post" action="/localization" id="footer-localization" accept-charset="UTF-8" class="form localization no-js-hidden" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization"><input type="hidden"
name="utf8" value="✓"><input type="hidden" name="_method" value="put"><input type="hidden" name="return_to"
value="/?fbclid=PAAaYuORhTWWvdBbOOkUqNqzfhWR3wF1hJx0aiRW6taOwd4iEBnkh4IbzJOQo_aem_AYbdbUn1KzlKsYqxayXY0ULo_gujYsABNvSTB6iFfHcwDJbIQZHNwtCyIcvqwoXRgls">
<div class="localization__grid">
<div class="localization__selector">
<input type="hidden" name="country_code" value="CA">
<country-selector><label class="label visually-hidden no-js-hidden" for="footer-localization-country-button">Country/Region</label>
<div class="custom-select relative w-full no-js-hidden"><button class="custom-select__btn input items-center" type="button" aria-expanded="false" aria-haspopup="listbox" id="footer-localization-country-button">
<span class="text-start">Canada (CAD $)</span>
<svg width="20" height="20" viewBox="0 0 24 24" class="icon" role="presentation" focusable="false" aria-hidden="true">
<path d="M20 8.5 12.5 16 5 8.5" stroke="currentColor" stroke-width="1.5" fill="none"></path>
</svg>
</button>
<ul class="custom-select__listbox absolute invisible" role="listbox" tabindex="-1" aria-hidden="true" hidden="" aria-activedescendant="footer-localization-country-opt-0">
<li class="custom-select__option flex items-center js-option" id="footer-localization-country-opt-0" role="option" data-value="CA" aria-selected="true">
<span class="pointer-events-none">Canada (CAD $)</span>
</li>
</ul>
</div>
</country-selector>
</div>
</div>
<script>
customElements.whenDefined('custom-select').then(() => {
if (!customElements.get('country-selector')) {
class CountrySelector extends customElements.get('custom-select') {
constructor() {
super();
this.loaded = false;
}
async showListbox() {
if (this.loaded) {
super.showListbox();
return;
}
this.button.classList.add('is-loading');
this.button.setAttribute('aria-disabled', 'true');
try {
const response = await fetch('?section_id=country-selector');
if (!response.ok) throw new Error(response.status);
const tmpl = document.createElement('template');
tmpl.innerHTML = await response.text();
const el = tmpl.content.querySelector('.custom-select__listbox');
this.listbox.innerHTML = el.innerHTML;
this.options = this.querySelectorAll('.custom-select__option');
this.loaded = true;
} catch {
this.listbox.innerHTML = '<li>Error fetching countries, please try again.</li>';
} finally {
super.showListbox();
this.button.classList.remove('is-loading');
this.button.setAttribute('aria-disabled', 'false');
}
}
setButtonWidth() {
return;
}
}
customElements.define('country-selector', CountrySelector);
}
});
</script>
<script>
document.getElementById('footer-localization').addEventListener('change', (evt) => {
const input = evt.target.previousElementSibling;
if (input && input.tagName === 'INPUT') {
input.value = evt.detail.selectedValue;
evt.currentTarget.submit();
}
});
</script>
</form>
Text Content
Skip to content Free shipping in USA for orders over $80. Worldwide Shipping is available Get Free Shipping in Canada for orders over $ 70 CAD Country/Region Canada (CAD $) * Canada (CAD $) Search Product type All * All * Islamic * Puzzle Reset Search Bag Menu * Collection * Back * Collection * Ramadan/Eid Theme * Wooden Masjid Kit * Lantern Treat Bags * Tasbeeh Craft Kit * Eid Coloring Roll * Eid Puzzle Card * City Theme * City Coloring Roll * Sustainable City Puzzle * Bundles * Back * Bundles * Ramadan * Eid Set * City Join the Ramadan festivities and grab our amazing trio package! Celebrate Eid with a delightful assortment of 2 festive kits! Have fun on-the-go with a bundle of 2 sustainable city-related packs! * About Us SIGN UP to Our Newsletter and unlock %10 on your first order PLAY, CREATE, INSPIRE Ramadan is fast approaching, soon followed by Eid, where faith and joy await. Shop Ramadan/Eid COLLECTIONS * Ramadan/Eid View collection * City Theme View collection CITY THEME View all SUSTAINABILITY We prioritize creating sustainable and eco-friendly products. Our first theme introduces kids to sustainability through coloring and puzzle-solving. * Sustainable City Puzzle $16.99 CAD Unit price / Unavailable Add to cart Add to cart View details * City Roll $14.99 CAD Unit price / Unavailable Add to cart Add to cart View details Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info Meet Us at Our Next Market Montreal March 2nd, 3rd More Info PROMOTIONS Bundle & Save RAMADAN SET Bundle & Save EID SET Bundle & Save CITY SET Close SIGN UP AND SAVE Sign up to our Newsletter and get 10% on your first order! Email Subscribe YOUR CART Close Your cart is empty Start shopping Subtotal:$0.00 CAD Loading... Back to top ORIGINAL TOYS FOR ALL AGES We are located in Canada. Specialized in producing toys, games, and puzzles that are made from environmentally friendly materials. CONTACT US * Contact Us NEWSLETTER Sign up for exclusive offers, original stories, events and more. Email Subscribe Payment methods accepted * American Express * Apple Pay * Diners Club * Discover * Google Pay * Mastercard * PayPal * Shop Pay * Visa Country/Region Canada (CAD $) * Canada (CAD $) -------------------------------------------------------------------------------- © 2024 Tealyo. Powered by Shopify * Collection * Bundles * About Us Back CHOOSE OPTIONS Close Close Item added to your cart. View cart