{"id":6769,"date":"2026-08-31T20:16:48","date_gmt":"2026-08-31T16:16:48","guid":{"rendered":"https:\/\/mintuae.com\/?page_id=6769"},"modified":"2026-08-31T20:37:44","modified_gmt":"2026-08-31T16:37:44","slug":"personalize-your-order","status":"publish","type":"page","link":"https:\/\/mintuae.com\/ar\/personalize-your-order\/","title":{"rendered":"Personalize Your Order"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6769\" class=\"elementor elementor-6769\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-092553c e-con-full e-flex e-con e-parent\" data-id=\"092553c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ef7a24 elementor-widget elementor-widget-shortcode\" data-id=\"1ef7a24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><script>window.MINT_BUILD={\"endpoint\":\"https:\\\/\\\/mintuae.com\\\/ar\\\/wp-json\\\/mint\\\/v1\\\/build\",\"nonce\":\"c21dcb2c4b\",\"cartUrl\":\"https:\\\/\\\/mintuae.com\\\/ar\\\/cart\\\/\",\"stock\":{\"6556\":{\"in\":true},\"6554\":{\"in\":true},\"6546\":{\"in\":true},\"6542\":{\"in\":true,\"v\":{\"6543\":false,\"6544\":true}},\"6534\":{\"in\":true,\"v\":{\"6535\":false,\"6536\":true}},\"6530\":{\"in\":true,\"v\":{\"6531\":false,\"6532\":true}},\"6526\":{\"in\":true,\"v\":{\"6527\":false,\"6528\":true}},\"6522\":{\"in\":true,\"v\":{\"6523\":false,\"6524\":true}},\"6518\":{\"in\":true,\"v\":{\"6519\":false,\"6520\":true}},\"6514\":{\"in\":true,\"v\":{\"6515\":false,\"6516\":true}},\"6510\":{\"in\":true,\"v\":{\"6511\":false,\"6512\":true}},\"6506\":{\"in\":true,\"v\":{\"6507\":false,\"6508\":true}},\"6486\":{\"in\":true,\"v\":{\"6487\":false,\"6488\":true}},\"6450\":{\"in\":true},\"6449\":{\"in\":true},\"6448\":{\"in\":true},\"6447\":{\"in\":true},\"6446\":{\"in\":true},\"6445\":{\"in\":true},\"6444\":{\"in\":true},\"6443\":{\"in\":true},\"6442\":{\"in\":true},\"6426\":{\"in\":true},\"5400\":{\"in\":true},\"5399\":{\"in\":true},\"5398\":{\"in\":true},\"5397\":{\"in\":true},\"5396\":{\"in\":true,\"v\":{\"6136\":false,\"6137\":true}},\"5381\":{\"in\":false,\"v\":{\"5977\":false,\"5976\":false}}}};<\/script><title>Build Your MINT<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,600&display=swap\">\n<style>\n:root{\n  --white:#FFFFFF; --ink:#1F1F1F; --ink-2:#4A4A4A; --mute:#8A8A8A; --faint:#B0B0B0;\n  --rule:#ECECEC; --rule-2:#DCDCDC; --tile:#F7F7F6; --black:#1A1A1A; --accent:#FFDD00;\n}\n*{box-sizing:border-box}\n\/* Any class here that sets `display` outranks the browser's [hidden] rule, so an\n   element toggled with .hidden = true stays on screen. Stating it once, with\n   !important, closes that off for every element rather than one at a time. *\/\n[hidden]{display:none!important}\nbody{margin:0;background:var(--white);color:var(--ink-2);\n  font:15px\/1.6 Poppins,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;\n  -webkit-font-smoothing:antialiased}\n.wrap{max-width:1140px;margin:0 auto;padding:0 22px 120px}\n.lbl{font:600 10px\/1 Poppins,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}\n\n\/* ---- masthead: one line, no clutter ---- *\/\n.mast{text-align:center;padding:46px 0 30px}\nh1{font:600 clamp(26px,3.8vw,36px)\/1.2 Poppins,sans-serif;color:var(--ink);margin:0;letter-spacing:-.015em}\n.mast p{margin:10px auto 0;max-width:44ch;color:var(--mute);font-size:15px}\n.proto{display:inline-flex;align-items:center;gap:7px;margin-top:16px;\n  font:600 9.5px\/1 Poppins,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}\n.proto i{width:6px;height:6px;border-radius:50%;background:var(--accent);display:block}\n\n\/* ---- layout ---- *\/\n.layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:52px;align-items:start}\n@media(max-width:960px){.layout{grid-template-columns:1fr;gap:28px}}\n\n\/* ---- preview ---- *\/\n.stagewrap{position:sticky;top:24px}\n@media(max-width:960px){.stagewrap{position:static}}\n.stage{position:relative;background:var(--tile);\n  display:flex;align-items:center;justify-content:center;padding:26px;border-radius:3px}\n@media(max-width:720px){.stage{padding:16px}}\n.frame{position:relative;width:100%;max-width:440px;aspect-ratio:var(--ar,660\/880)}\n.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}\n.namelayer{position:absolute;inset:0;pointer-events:none}\n.nametxt{position:absolute;transform:translate(-50%,-50%);white-space:nowrap;line-height:1;\n  font-family:Poppins,sans-serif;font-weight:700;letter-spacing:.07em;text-transform:uppercase;\n  transition:color .2s,left .25s,top .25s}\n.nametxt.script{font-weight:600;letter-spacing:.03em;text-transform:none;font-style:italic}\n.nametxt.deboss{color:rgba(0,0,0,.38);text-shadow:0 1px 0 rgba(255,255,255,.2)}\n\n.charmchip{position:absolute;right:18px;bottom:18px;width:78px;background:#fff;\n  border:1px solid rgba(0,0,0,.10);padding:6px;text-align:center;border-radius:2px;\n  box-shadow:0 2px 12px rgba(0,0,0,.08);animation:pop .3s ease}\n.charmchip img{width:100%;display:block}\n.charmchip span{display:block;margin-top:4px;font:600 8px\/1.3 Poppins,sans-serif;\n  letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}\n.giftflag{position:absolute;left:18px;top:18px;display:flex;align-items:center;gap:6px;\n  padding:6px 11px;background:#fff;border-radius:999px;\n  font:600 9px\/1 Poppins,sans-serif;letter-spacing:.1em;text-transform:uppercase;\n  color:var(--ink);box-shadow:0 2px 12px rgba(0,0,0,.08);animation:pop .3s ease}\n.giftflag i{width:7px;height:7px;border-radius:50%;background:var(--accent);display:block}\n\/* transform only - visibility must never depend on an animation finishing *\/\n@keyframes pop{from{transform:translateY(5px)}to{transform:none}}\n.caption{margin-top:14px;text-align:center}\n.caption .now{font:600 15px\/1.4 Poppins,sans-serif;color:var(--ink);display:block}\n.caption .hint{font-size:12px;color:var(--faint);display:block;margin-top:3px}\n\n\/* ---- steps: one open at a time ---- *\/\n.steps{border-top:1px solid var(--rule)}\n.step{border-bottom:1px solid var(--rule)}\n.step > button.head{\n  appearance:none;width:100%;background:none;border:0;cursor:pointer;text-align:left;\n  display:flex;align-items:center;gap:14px;padding:20px 2px;font:inherit;color:inherit}\n.step > button.head:focus-visible{outline:2px solid var(--black);outline-offset:-2px}\n.head .n{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;\n  font:700 10px\/1 Poppins,sans-serif;background:var(--tile);color:var(--mute);\n  transition:background .2s,color .2s}\n.step.done .head .n{background:var(--ink);color:#fff}\n.step.open .head .n{background:var(--ink);color:#fff}\n.head .t{font:600 15px\/1.3 Poppins,sans-serif;color:var(--ink)}\n.head .v{margin-left:auto;font:400 13px\/1.3 Poppins,sans-serif;color:var(--mute);\n  text-align:right;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.step.open .head .v{display:none}\n.head .chev{flex:none;width:9px;height:9px;border-right:1.5px solid var(--faint);\n  border-bottom:1.5px solid var(--faint);transform:rotate(45deg);margin-left:12px;\n  transition:transform .2s;position:relative;top:-2px}\n.step.open .head .chev{transform:rotate(-135deg);top:2px}\n.step .body{display:none;padding:0 2px 26px}\n.step.open .body{display:block}\n.step .why{margin:0 0 14px;font-size:13px;color:var(--mute)}\n\n\/* ---- option pills ---- *\/\n.opts{display:flex;flex-wrap:wrap;gap:8px}\nbutton.opt{appearance:none;cursor:pointer;font:inherit;color:var(--ink-2);background:#fff;\n  border:1px solid var(--rule-2);border-radius:999px;padding:11px 18px;\n  font:500 13.5px\/1 Poppins,sans-serif;transition:border-color .15s,color .15s,background .15s}\nbutton.opt:hover:not(:disabled){border-color:var(--ink)}\nbutton.opt:focus-visible{outline:2px solid var(--black);outline-offset:2px}\nbutton.opt[aria-pressed=\"true\"]{border-color:var(--ink);background:var(--ink);color:#fff}\nbutton.opt:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}\nbutton.opt small{display:block;font:400 11px\/1.3 Poppins,sans-serif;opacity:.7;margin-top:2px}\n\n\/* ---- colour swatches ---- *\/\n.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:14px 10px}\nbutton.sw{appearance:none;cursor:pointer;background:none;border:0;padding:0;text-align:center}\nbutton.sw .chip{display:block;width:100%;aspect-ratio:1;border-radius:50%;\n  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:transform .15s,box-shadow .15s}\nbutton.sw:hover .chip{transform:scale(1.06)}\nbutton.sw:focus-visible .chip{outline:2px solid var(--black);outline-offset:3px}\nbutton.sw[aria-pressed=\"true\"] .chip{box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 0 0 2px #fff,0 0 0 4px var(--ink)}\nbutton.sw .nm{display:block;margin-top:8px;font-size:11px;line-height:1.3;color:var(--ink-2)}\nbutton.sw[aria-pressed=\"true\"] .nm{color:var(--ink);font-weight:600}\nbutton.sw.oos{cursor:not-allowed}\nbutton.sw.oos .chip{opacity:.3;filter:grayscale(.7)}\nbutton.sw.oos .nm{color:var(--faint)}\nbutton.sw .so{display:block;font:600 9px\/1.4 Poppins,sans-serif;letter-spacing:.08em;\n  text-transform:uppercase;color:var(--faint)}\n\n\/* ---- name ---- *\/\n.field input{font:600 17px\/1.3 Poppins,sans-serif;letter-spacing:.06em;text-transform:uppercase;\n  padding:14px 16px;border:1px solid var(--rule-2);border-radius:3px;background:#fff;\n  color:var(--ink);width:100%;max-width:340px}\n.field input::placeholder{color:var(--faint);font-weight:400;letter-spacing:normal;text-transform:none}\n.field input:focus{outline:2px solid var(--black);outline-offset:1px;border-color:var(--black)}\n.meta{display:flex;gap:14px;margin-top:8px;font-size:12px;color:var(--faint);max-width:340px}\n.meta .count{margin-left:auto;font-variant-numeric:tabular-nums}\n.sub{margin:20px 0 0}\n.sub > span.lbl{display:block;margin-bottom:9px}\n.inks{display:flex;gap:8px;flex-wrap:wrap}\nbutton.ink{appearance:none;cursor:pointer;display:flex;align-items:center;gap:8px;background:#fff;\n  border:1px solid var(--rule-2);border-radius:999px;padding:9px 15px;\n  font:500 12.5px\/1 Poppins,sans-serif;color:var(--ink-2)}\nbutton.ink:hover{border-color:var(--ink)}\nbutton.ink:focus-visible{outline:2px solid var(--black);outline-offset:2px}\nbutton.ink[aria-pressed=\"true\"]{border-color:var(--ink);background:var(--ink);color:#fff}\nbutton.ink i{width:12px;height:12px;border-radius:50%;display:block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}\nbutton.ink i.none{background:repeating-linear-gradient(45deg,#EDEDED 0 3px,#CFCFCF 3px 6px)}\n\n\/* ---- charms ---- *\/\n.charmgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}\n@media(max-width:640px){.charmgrid{grid-template-columns:repeat(2,1fr)}}\nbutton.cm{appearance:none;cursor:pointer;background:#fff;border:1px solid var(--rule-2);\n  border-radius:3px;padding:6px;text-align:center;transition:border-color .15s,transform .15s}\nbutton.cm:hover:not(:disabled){border-color:var(--ink);transform:translateY(-2px)}\nbutton.cm:focus-visible{outline:2px solid var(--black);outline-offset:2px}\nbutton.cm[aria-pressed=\"true\"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}\nbutton.cm img{width:100%;display:block;aspect-ratio:1;object-fit:contain;background:var(--tile)}\nbutton.cm .nm{display:block;margin-top:6px;font-size:10px;line-height:1.3;color:var(--ink-2)}\nbutton.cm.none{display:grid;place-items:center;min-height:104px;font-size:12px;color:var(--mute)}\nbutton.cm.oos{opacity:.4;cursor:not-allowed}\nbutton.cm.oos em{font-style:normal;display:block;font-size:9px;letter-spacing:.06em;\n  text-transform:uppercase;color:var(--faint)}\n\n\/* ---- gift toggle ---- *\/\n.gift{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:20px;\n  border-top:1px solid var(--rule)}\n.gift .txt{flex:1}\n.gift .txt b{display:block;font:600 13.5px\/1.4 Poppins,sans-serif;color:var(--ink)}\n.gift .txt span{font-size:12.5px;color:var(--mute)}\nbutton.tgl{appearance:none;cursor:pointer;flex:none;width:46px;height:26px;border-radius:999px;\n  border:1px solid var(--rule-2);background:#fff;position:relative;transition:background .18s,border-color .18s}\nbutton.tgl::after{content:\"\";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;\n  background:var(--rule-2);transition:transform .18s,background .18s}\nbutton.tgl[aria-pressed=\"true\"]{background:var(--ink);border-color:var(--ink)}\nbutton.tgl[aria-pressed=\"true\"]::after{transform:translateX(20px);background:#fff}\nbutton.tgl:focus-visible{outline:2px solid var(--black);outline-offset:2px}\n\n\/* ---- bottom bar ---- *\/\n.bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(255,255,255,.97);\n  backdrop-filter:blur(8px);border-top:1px solid var(--rule-2)}\n.barin{max-width:1140px;margin:0 auto;padding:13px 22px;display:flex;align-items:center;gap:18px}\n.sum{flex:1;min-width:0}\n.sum .k{display:block;font:600 9px\/1 Poppins,sans-serif;letter-spacing:.15em;\n  text-transform:uppercase;color:var(--faint);margin-bottom:4px}\n.sum .v{font:700 22px\/1 Poppins,sans-serif;color:var(--ink);font-variant-numeric:tabular-nums}\n.sum .d{font-size:11.5px;color:var(--mute);margin-left:10px}\n@media(max-width:560px){.sum .d{display:none}}\nbutton.cta{appearance:none;cursor:pointer;border:0;border-radius:999px;padding:15px 34px;\n  background:var(--black);color:#fff;font:600 12.5px\/1 Poppins,sans-serif;\n  letter-spacing:.08em;text-transform:uppercase;transition:opacity .15s;white-space:nowrap}\nbutton.cta:hover:not(:disabled){opacity:.85}\nbutton.cta:focus-visible{outline:2px solid var(--black);outline-offset:3px}\nbutton.cta:disabled{opacity:.28;cursor:not-allowed}\n\ndialog{border:0;padding:0;max-width:400px;width:calc(100% - 34px);background:#fff;\n  color:var(--ink-2);border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.25)}\ndialog::backdrop{background:rgba(26,26,26,.5)}\n.dlg{padding:26px}\n.dlg h3{margin:0 0 10px;font:600 19px\/1.2 Poppins,sans-serif;color:var(--ink)}\n.dlg dl{margin:16px 0 0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px}\n.dlg dt{color:var(--faint)}\n.dlg dd{margin:0;color:var(--ink);text-align:right}\n.dlg .close{margin-top:22px;width:100%}\n.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;\n  justify-content:center;text-align:center;color:var(--faint)}\n.empty p{margin:8px 0 0;font-size:13.5px;max-width:22ch}\n@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}\n<\/style>\n<div class=\"wrap\">\n\n<header class=\"mast\">\n  <h1>Build your MINT.<\/h1>\n  <p>Four choices. The preview updates as you go.<\/p>\n  <div class=\"proto\" id=\"proto\"><i><\/i>Prototype &mdash; not connected to checkout<\/div>\n<\/header>\n<div class=\"layout\">\n\n  <div class=\"stagewrap\">\n    <div class=\"stage\" id=\"stage\">\n      <div class=\"frame\" id=\"frame\">\n        <img id=\"shotimg\" alt=\"\" hidden>\n        <div class=\"namelayer\" id=\"namelayer\"><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"caption\">\n      <span class=\"now\" id=\"capnow\"><\/span>\n      <span class=\"hint\" id=\"caphint\"><\/span>\n    <\/div>\n  <\/div>\n<div class=\"steps\" id=\"steps\"><\/div>\n<\/div><\/div>\n\n<div class=\"bar\"><div class=\"barin\">\n  <div class=\"sum\"><span class=\"k\">Total<\/span>\n    <span class=\"v\" id=\"total\">AED 0<\/span><span class=\"d\" id=\"detail\"><\/span><\/div>\n  <button class=\"cta\" id=\"cta\" disabled>Review build<\/button>\n<\/div><\/div>\n<dialog id=\"dlg\"><div class=\"dlg\">\n  <h3 id=\"dlgtitle\">Your build<\/h3>\n  <p id=\"dlgnote\" style=\"margin:0;font-size:13px;color:var(--mute)\"><\/p>\n  <dl id=\"sum\"><\/dl>\n  <button class=\"cta close\" id=\"dlgclose\">Close<\/button>\n<\/div><\/dialog>\n<script>\nconst D = {\"devices\": [{\"id\": \"laptop_sleeve\", \"label\": \"Laptop Sleeve\", \"blurb\": \"Slim leather sleeve, doubles as a mouse pad.\", \"sizes\": [{\"slug\": \"13-14-inch\", \"label\": \"13-14 inch\"}, {\"slug\": \"15-16-inch\", \"label\": \"15-16 inch\"}]}, {\"id\": \"ipad_sleeve\", \"label\": \"iPad Sleeve\", \"blurb\": \"Cushioned interior, doubles as an Apple Pencil surface.\", \"sizes\": []}], \"colourways\": {\"laptop_sleeve\": [{\"slug\": \"al-ain-fc-macbook-sleeves\", \"id\": 6542, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6543, \"13-14-inch\": 6544}, \"name\": \"Al Ain FC\", \"full\": \"Al Ain FC Laptop Sleeve\", \"price\": 249, \"swatch\": \"#674691\", \"box\": [12.42, 5.0, 75.15, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/al-ain-fc-macbook-sleeves.webp\"}, {\"slug\": \"presidential-blue-macbook-sleeves\", \"id\": 5381, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 5977, \"13-14-inch\": 5976}, \"name\": \"Presidential Blue\", \"full\": \"Presidential Blue Laptop Sleeve\", \"price\": 249, \"swatch\": \"#23273c\", \"box\": [12.73, 5.0, 74.55, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/presidential-blue-macbook-sleeves.webp\"}, {\"slug\": \"presidential-light-beige-macbook-sleeves\", \"id\": 6486, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6487, \"13-14-inch\": 6488}, \"name\": \"Presidential Light Beige\", \"full\": \"Presidential Light Beige Laptop Sleeve\", \"price\": 249, \"swatch\": \"#dfbd9f\", \"box\": [14.85, 5.0, 70.3, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/presidential-light-beige-macbook-sleeves.webp\"}, {\"slug\": \"presidential-maroon-macbook-sleeves\", \"id\": 6518, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6519, \"13-14-inch\": 6520}, \"name\": \"Presidential Maroon\", \"full\": \"Presidential Maroon Laptop Sleeve\", \"price\": 249, \"swatch\": \"#5b2b2e\", \"box\": [10.91, 5.0, 78.03, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/presidential-maroon-macbook-sleeves.webp\"}, {\"slug\": \"presidential-olive-green-macbook-sleeves\", \"id\": 6514, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6515, \"13-14-inch\": 6516}, \"name\": \"Presidential Olive Green\", \"full\": \"Presidential Olive Green Laptop Sleeve\", \"price\": 249, \"swatch\": \"#3e4b40\", \"box\": [13.33, 5.0, 73.33, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/presidential-olive-green-macbook-sleeves.webp\"}, {\"slug\": \"presidential-phantom-black-macbook-sleeves\", \"id\": 6510, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6511, \"13-14-inch\": 6512}, \"name\": \"Presidential Phantom Black\", \"full\": \"Presidential Phantom Black Laptop Sleeve\", \"price\": 249, \"swatch\": \"#1e1e1e\", \"box\": [12.42, 5.0, 75.15, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/presidential-phantom-black-macbook-sleeves.webp\"}, {\"slug\": \"presidential-purple-macbook-sleeves\", \"id\": 6506, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6507, \"13-14-inch\": 6508}, \"name\": \"Presidential Purple\", \"full\": \"Presidential Purple Laptop Sleeve\", \"price\": 249, \"swatch\": \"#674691\", \"box\": [12.27, 5.0, 75.3, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/presidential-purple-macbook-sleeves.webp\"}, {\"slug\": \"blue-macbook-sleeves\", \"id\": 6534, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6535, \"13-14-inch\": 6536}, \"name\": \"Blue\", \"full\": \"Blue Laptop Sleeve\", \"price\": 229, \"swatch\": \"#282f3f\", \"box\": [11.52, 5.0, 76.97, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/blue-macbook-sleeves.webp\"}, {\"slug\": \"maroon-macbook-sleeves\", \"id\": 6530, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6531, \"13-14-inch\": 6532}, \"name\": \"Maroon\", \"full\": \"Maroon Laptop Sleeve\", \"price\": 229, \"swatch\": \"#7d3e46\", \"box\": [13.18, 5.0, 73.64, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/maroon-macbook-sleeves.webp\"}, {\"slug\": \"olive-green-macbook-sleeves\", \"id\": 6526, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6527, \"13-14-inch\": 6528}, \"name\": \"Olive Green\", \"full\": \"Olive Green Laptop Sleeve\", \"price\": 229, \"swatch\": \"#364339\", \"box\": [13.18, 5.0, 73.64, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/olive-green-macbook-sleeves.webp\"}, {\"slug\": \"phantom-black-macbook-sleeves\", \"id\": 6522, \"type\": \"variable\", \"variations\": {\"15-16-inch\": 6523, \"13-14-inch\": 6524}, \"name\": \"Phantom Black\", \"full\": \"Phantom Black Laptop Sleeve\", \"price\": 229, \"swatch\": \"#2a2a2d\", \"box\": [11.06, 5.0, 77.73, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/phantom-black-macbook-sleeves.webp\"}, {\"slug\": \"titanium-grey-macbook-sleeves\", \"id\": 5396, \"type\": \"variable\", \"variations\": {\"13-14-inch\": 6136, \"15-16-inch\": 6137}, \"name\": \"Titanium Grey\", \"full\": \"Titanium Grey Laptop Sleeve\", \"price\": 229, \"swatch\": \"#d1cfcd\", \"box\": [18.48, 5.0, 63.03, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/titanium-grey-macbook-sleeves.webp\"}], \"ipad_sleeve\": [{\"slug\": \"presidential-black-ipad-sleeves\", \"id\": 6554, \"type\": \"simple\", \"variations\": {}, \"name\": \"Presidential Black\", \"full\": \"Presidential Black iPad Sleeve\", \"price\": 249, \"swatch\": \"#28272c\", \"box\": [7.58, 5.0, 84.7, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/presidential-black-ipad-sleeves.webp\"}, {\"slug\": \"presidential-blue-ipad-sleeves\", \"id\": 6556, \"type\": \"simple\", \"variations\": {}, \"name\": \"Presidential Blue\", \"full\": \"Presidential Blue iPad Sleeve\", \"price\": 249, \"swatch\": \"#282e41\", \"box\": [6.97, 5.0, 85.91, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/presidential-blue-ipad-sleeves.webp\"}, {\"slug\": \"olive-green-ipad-sleeves\", \"id\": 5400, \"type\": \"simple\", \"variations\": {}, \"name\": \"Olive Green\", \"full\": \"Olive Green iPad Sleeve\", \"price\": 229, \"swatch\": \"#475243\", \"box\": [15.91, 5.0, 68.18, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/olive-green-ipad-sleeves.webp\"}, {\"slug\": \"pearl-blue-ipad-sleeves\", \"id\": 5397, \"type\": \"simple\", \"variations\": {}, \"name\": \"Pearl Blue\", \"full\": \"Pearl Blue iPad Sleeve\", \"price\": 229, \"swatch\": \"#91b3b5\", \"box\": [16.52, 5.0, 66.82, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/pearl-blue-ipad-sleeves.webp\"}, {\"slug\": \"phantom-black-ipad-sleeves\", \"id\": 5398, \"type\": \"simple\", \"variations\": {}, \"name\": \"Phantom Black\", \"full\": \"Phantom Black iPad Sleeve\", \"price\": 229, \"swatch\": \"#37373a\", \"box\": [15.15, 5.0, 69.7, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/phantom-black-ipad-sleeves.webp\"}, {\"slug\": \"pink-ipad-sleeves\", \"id\": 6546, \"type\": \"simple\", \"variations\": {}, \"name\": \"Pink\", \"full\": \"Pink iPad Sleeve\", \"price\": 229, \"swatch\": \"#efc8d0\", \"box\": [10.0, 5.0, 79.85, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/pink-ipad-sleeves.webp\"}, {\"slug\": \"titanium-grey-ipad-sleeves\", \"id\": 5399, \"type\": \"simple\", \"variations\": {}, \"name\": \"Titanium Grey\", \"full\": \"Titanium Grey iPad Sleeve\", \"price\": 229, \"swatch\": \"#dddce0\", \"box\": [15.45, 5.0, 68.94, 90.0], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/titanium-grey-ipad-sleeves.webp\"}]}, \"charms\": [{\"slug\": \"abu-dhabi-charm\", \"id\": 6426, \"type\": \"simple\", \"variations\": {}, \"name\": \"Abu Dhabi\", \"full\": \"Abu Dhabi Charm\", \"price\": 25, \"swatch\": \"#e0d4c8\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/abu-dhabi-charm.webp\"}, {\"slug\": \"abu-dhabi-presidential-charm\", \"id\": 6442, \"type\": \"simple\", \"variations\": {}, \"name\": \"Abu Dhabi Presidential\", \"full\": \"Abu Dhabi Presidential Charm\", \"price\": 25, \"swatch\": \"#96999c\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/abu-dhabi-presidential-charm.webp\"}, {\"slug\": \"al-nahyan-charm\", \"id\": 6447, \"type\": \"simple\", \"variations\": {}, \"name\": \"Al Nahyan\", \"full\": \"Al Nahyan Charm\", \"price\": 25, \"swatch\": \"#4a473e\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/al-nahyan-charm.webp\"}, {\"slug\": \"always-together-charm\", \"id\": 6444, \"type\": \"simple\", \"variations\": {}, \"name\": \"Always Together\", \"full\": \"Always Together Charm\", \"price\": 25, \"swatch\": \"#7f8383\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/always-together-charm.webp\"}, {\"slug\": \"heart-and-soul-charm\", \"id\": 6450, \"type\": \"simple\", \"variations\": {}, \"name\": \"Heart and Soul\", \"full\": \"Heart and Soul Charm\", \"price\": 25, \"swatch\": \"#c1b8b9\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/heart-and-soul-charm.webp\"}, {\"slug\": \"mare-charm\", \"id\": 6448, \"type\": \"simple\", \"variations\": {}, \"name\": \"Mare\", \"full\": \"Mare Charm\", \"price\": 25, \"swatch\": \"#848183\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/mare-charm.webp\"}, {\"slug\": \"pride-of-uae-charm\", \"id\": 6443, \"type\": \"simple\", \"variations\": {}, \"name\": \"Pride of UAE\", \"full\": \"Pride of UAE Charm\", \"price\": 25, \"swatch\": \"#c4bfbd\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/pride-of-uae-charm.webp\"}, {\"slug\": \"sheikh-mohammed-bin-rashid-charm\", \"id\": 6445, \"type\": \"simple\", \"variations\": {}, \"name\": \"Sheikh Mohammed bin Rashid\", \"full\": \"Sheikh Mohammed bin Rashid Charm\", \"price\": 25, \"swatch\": \"#888887\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/sheikh-mohammed-bin-rashid-charm.webp\"}, {\"slug\": \"sheikh-sultan-al-qasimi-charm\", \"id\": 6449, \"type\": \"simple\", \"variations\": {}, \"name\": \"Sheikh Sultan Al Qasimi\", \"full\": \"Sheikh Sultan Al Qasimi Charm\", \"price\": 25, \"swatch\": \"#949ca5\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/sheikh-sultan-al-qasimi-charm.webp\"}, {\"slug\": \"uae-charm\", \"id\": 6446, \"type\": \"simple\", \"variations\": {}, \"name\": \"UAE\", \"full\": \"UAE Charm\", \"price\": 25, \"swatch\": \"#d0c4b6\", \"box\": [0, 0, 100, 100], \"inStock\": true, \"img\": \"\/wp-content\/uploads\/mint-build\/uae-charm.webp\"}], \"printable\": [\"laptop_sleeve\", \"ipad_sleeve\"], \"nameAt\": {\"x\": 0.22, \"y\": 0.9}, \"canvas\": [355, 460], \"extras\": {\"printing\": 25, \"charm\": 25, \"packaging\": 0}};\nconst S = {device:null, size:null, colour:null, name:\"\", style:\"block\", ink:\"gold\",\n           charm:null, gift:false, open:0};\nconst $ = s => document.querySelector(s);\nconst el = (t,c,h) => { const n=document.createElement(t); if(c)n.className=c;\n                        if(h!==undefined)n.innerHTML=h; return n; };\nconst INKS = {gold:\"#C9A227\", black:\"#1A1A1A\", grey:\"#8C8C8C\", deboss:null};\nconst INK_LABEL = {gold:\"Gold\", black:\"Black\", grey:\"Grey\", deboss:\"No colour\"};\nconst STYLE_LABEL = {block:\"Block caps\", script:\"Script\"};\n\n\/* ---------- stock ---------- *\/\nconst WP = (typeof window !== \"undefined\" && window.MINT_BUILD) || null;\nfunction stockOf(id){ return (WP && WP.stock && WP.stock[String(id)]) || null; }\nfunction variationInStock(c, vid){\n  const st = stockOf(c.id);\n  if(st && st.v && Object.prototype.hasOwnProperty.call(st.v, String(vid))) return !!st.v[String(vid)];\n  return st ? !!st.in : (c.inStock !== false);\n}\nfunction sizesInStock(c){\n  if(!c || c.type !== \"variable\") return [];\n  return Object.entries(c.variations).filter(([, v]) => variationInStock(c, v)).map(([s]) => s);\n}\nfunction itemInStock(c){\n  const st = stockOf(c.id);\n  const base = st ? !!st.in : (c.inStock !== false);\n  if(!base) return false;\n  return c.type === \"variable\" ? sizesInStock(c).length > 0 : true;\n}\n\nconst canPrint = () => S.device && D.printable.includes(S.device);\nconst currentColour = () => S.colour ? D.colourways[S.device].find(c => c.slug === S.colour) : null;\nconst printedName = () => canPrint() ? S.name.trim() : \"\";\nconst dev = () => S.device ? D.devices.find(d => d.id === S.device) : null;\n\nfunction sizeLabel(){\n  const d = dev(); const m = d && d.sizes.find(x => x.slug === S.size);\n  return m ? m.label : \"\";\n}\n\nfunction price(){\n  const c = currentColour(), items = [];\n  if(c) items.push([c.full, c.price]);\n  if(printedName()) items.push([\"Printed name\", D.extras.printing]);\n  \/* the charm's own catalogue price, which is also what the server charges *\/\n  if(S.charm){ const ch = D.charms.find(x => x.slug === S.charm); items.push([ch.full, ch.price]); }\n  if(S.gift) items.push([\"Gift box\", D.extras.packaging]);\n  return {items, total: items.reduce((a,b) => a+b[1], 0)};\n}\n\n\/* ---------- deboss, derived from the leather itself ---------- *\/\nfunction mix(hex, target, t){\n  const n = parseInt(hex.slice(1),16), c = [n>>16&255, n>>8&255, n&255];\n  return \"rgb(\" + c.map((v,i) => Math.round(v + (target[i]-v)*t)).join(\",\") + \")\";\n}\nfunction lum(hex){\n  const n = parseInt(hex.slice(1),16);\n  return (0.2126*(n>>16&255) + 0.7152*(n>>8&255) + 0.0722*(n&255))\/255;\n}\nfunction debossStyle(swatch){\n  const L = lum(swatch);\n  return {color: mix(swatch,[0,0,0], L<0.22?0.55:0.42),\n          shadow: \"0 1px 1.5px \" + mix(swatch,[255,255,255], L<0.22?0.24:0.16)\n                + \", 0 -1px 1px \" + mix(swatch,[0,0,0],0.70)};\n}\n\n\/* ---------- steps ---------- *\/\nconst STEPS = [\n  {id:\"device\", title:\"Device\"},\n  {id:\"colour\", title:\"Colour\"},\n  {id:\"name\",   title:\"Add a name\", optional:true},\n  {id:\"extras\", title:\"Charm & packaging\", optional:true},\n];\n\nfunction stepValue(i){\n  if(i === 0){ const d = dev(); if(!d) return \"\"; \n    return d.label + (S.size ? \" \u00b7 \" + sizeLabel() : \"\"); }\n  if(i === 1){ const c = currentColour(); return c ? c.name : \"\"; }\n  if(i === 2){ return printedName() ? printedName() + \" \u00b7 \" + INK_LABEL[S.ink]\n                                    : (S.device && !canPrint() ? \"Not available\" : \"None\"); }\n  if(i === 3){ const bits = [];\n    if(S.charm) bits.push(D.charms.find(c => c.slug === S.charm).name);\n    if(S.gift) bits.push(\"Gift box\");\n    return bits.length ? bits.join(\" \u00b7 \") : \"None\"; }\n  return \"\";\n}\nfunction stepDone(i){\n  if(i === 0) return !!S.device && (!dev().sizes.length || !!S.size);\n  if(i === 1) return !!S.colour;\n  return true;   \/\/ the optional steps are never blocking\n}\nfunction openStep(i){ S.open = (S.open === i) ? -1 : i; paint(); }\nfunction advance(from){\n  for(let i = from+1; i < STEPS.length; i++){ if(!stepDone(i) || i === from+1){ S.open = i; return; } }\n  S.open = -1;\n}\n\nfunction selectColour(c){\n  S.colour = c.slug;\n  if(c.type === \"variable\"){\n    const ok = sizesInStock(c);\n    if(!ok.includes(S.size)) S.size = ok[0] || null;\n  }\n}\nfunction selectionUsable(){\n  const c = currentColour();\n  if(!c || !itemInStock(c)) return false;\n  if(c.type === \"variable\") return !!(S.size && variationInStock(c, c.variations[S.size]));\n  return true;\n}\n\n\/* ---------- preview ---------- *\/\nfunction paint(){\n  const c = currentColour();\n  const shot = $(\"#shotimg\"), layer = $(\"#namelayer\");\n  layer.innerHTML = \"\";\n  $(\"#charmchip\")?.remove(); $(\"#giftflag\")?.remove(); $(\"#emptymsg\")?.remove();\n\n  if(!c){\n    shot.hidden = true; shot.removeAttribute(\"src\");\n    const e = el(\"div\",\"empty\",'<span class=\"lbl\">Preview<\/span><p>Pick a device and colour.<\/p>');\n    e.id = \"emptymsg\"; $(\"#stage\").appendChild(e);\n  } else {\n    shot.hidden = false; shot.src = c.img; shot.alt = c.full + \" preview\";\n    const txt = printedName();\n    if(txt){\n      const b = c.box;\n      const t = el(\"div\",\"nametxt \" + S.style + (S.ink === \"deboss\" ? \" deboss\" : \"\"), txt);\n      t.style.left = (b[0] + b[2]*D.nameAt.x) + \"%\";\n      t.style.top  = (b[1] + b[3]*D.nameAt.y) + \"%\";\n      if(INKS[S.ink]) t.style.color = INKS[S.ink];\n      else { const d = debossStyle(c.swatch); t.style.color = d.color; t.style.textShadow = d.shadow; }\n      t.style.fontSize = \"clamp(7px, \" + (b[2]\/100*4.4) + \"vw, 15px)\";\n      layer.appendChild(t);\n    }\n  }\n  if(S.charm){\n    const ch = D.charms.find(x => x.slug === S.charm);\n    const chip = el(\"div\",\"charmchip\",'<img decoding=\"async\" src=\"'+ch.img+'\" alt=\"'+ch.full+'\"><span>'+ch.name+'<\/span>');\n    chip.id = \"charmchip\"; $(\"#stage\").appendChild(chip);\n  }\n  if(S.gift){ const g = el(\"div\",\"giftflag\",'<i><\/i>Gift boxed'); g.id = \"giftflag\"; $(\"#stage\").appendChild(g); }\n\n  $(\"#capnow\").textContent = c ? c.full : \"Nothing selected yet\";\n  $(\"#caphint\").textContent = c && printedName() ? \"Print position is indicative.\" : \"\";\n  render(); bar();\n}\n\n\/* ---------- render the accordion ---------- *\/\nfunction render(){\n  const host = $(\"#steps\"); host.innerHTML = \"\";\n  STEPS.forEach((st, i) => {\n    const open = S.open === i;\n    const wrap = el(\"section\", \"step\" + (open ? \" open\" : \"\") + (stepDone(i) && !open ? \" done\" : \"\"));\n    const head = el(\"button\",\"head\",\n      '<span class=\"n\">' + (i+1) + '<\/span><span class=\"t\">' + st.title + '<\/span>' +\n      '<span class=\"v\">' + stepValue(i) + '<\/span><span class=\"chev\"><\/span>');\n    head.type = \"button\";\n    head.setAttribute(\"aria-expanded\", open);\n    head.onclick = () => openStep(i);\n    wrap.appendChild(head);\n    const body = el(\"div\",\"body\");\n    wrap.appendChild(body);\n    host.appendChild(wrap);\n    if(open) BUILD[st.id](body);\n  });\n}\n\nconst BUILD = {\n  device(b){\n    const row = el(\"div\",\"opts\");\n    D.devices.forEach(d => {\n      const btn = el(\"button\",\"opt\", d.label);\n      btn.type = \"button\"; btn.setAttribute(\"aria-pressed\", S.device === d.id);\n      btn.onclick = () => {\n        if(S.device !== d.id){ S.device = d.id; S.colour = null;\n          S.size = d.sizes.length ? d.sizes[0].slug : null; }\n        if(!d.sizes.length) advance(0);\n        paint();\n      };\n      row.appendChild(btn);\n    });\n    b.appendChild(row);\n\n    const d = dev();\n    if(d && d.sizes.length){\n      const sub = el(\"div\",\"sub\",'<span class=\"lbl\">Size<\/span>');\n      const sr = el(\"div\",\"opts\");\n      const c = currentColour();\n      d.sizes.forEach(sz => {\n        const ok = !c || c.type !== \"variable\" || variationInStock(c, c.variations[sz.slug]);\n        const btn = el(\"button\",\"opt\", sz.label + (ok ? \"\" : \"<small>Sold out<\/small>\"));\n        btn.type = \"button\"; btn.disabled = !ok;\n        btn.setAttribute(\"aria-pressed\", S.size === sz.slug);\n        if(ok) btn.onclick = () => { S.size = sz.slug; advance(0); paint(); };\n        sr.appendChild(btn);\n      });\n      sub.appendChild(sr); b.appendChild(sub);\n    }\n  },\n\n  colour(b){\n    if(!S.device){ b.appendChild(el(\"p\",\"why\",\"Choose a device first.\")); return; }\n    const grid = el(\"div\",\"swatches\");\n    D.colourways[S.device].forEach(c => {\n      const ok = itemInStock(c);\n      const btn = el(\"button\",\"sw\" + (ok ? \"\" : \" oos\"),\n        '<span class=\"chip\" style=\"background:'+c.swatch+'\"><\/span>' +\n        '<span class=\"nm\">'+c.name+'<\/span>' +\n        (ok ? '' : '<span class=\"so\">Sold out<\/span>'));\n      btn.type = \"button\"; btn.disabled = !ok;\n      btn.title = ok ? c.full + \" \u2014 AED \" + c.price : c.full + \" \u2014 out of stock\";\n      btn.setAttribute(\"aria-pressed\", S.colour === c.slug);\n      if(ok) btn.onclick = () => { selectColour(c); advance(1); paint(); };\n      grid.appendChild(btn);\n    });\n    b.appendChild(grid);\n  },\n\n  name(b){\n    if(S.device && !canPrint()){\n      b.appendChild(el(\"p\",\"why\",\"Printing is available on sleeves only.\"));\n      return;\n    }\n    b.appendChild(el(\"p\",\"why\",\"Printed at the lower left, opposite the MINT mark. AED \"\n      + D.extras.printing + \".\"));\n    const f = el(\"div\",\"field\");\n    const inp = el(\"input\"); inp.type = \"text\"; inp.maxLength = 11; inp.value = S.name;\n    inp.placeholder = \"Your name\"; inp.setAttribute(\"aria-label\",\"Name to print\");\n    inp.oninput = e => {\n      S.name = e.target.value.slice(0,11);\n      const keep = document.activeElement === inp, pos = inp.selectionStart;\n      paint();\n      if(keep){ const ni = $(\"#steps input\"); if(ni){ ni.focus(); try{ ni.setSelectionRange(pos,pos); }catch(_){} } }\n    };\n    f.appendChild(inp);\n    f.appendChild(el(\"div\",\"meta\",'<span>Up to 11 characters<\/span>' +\n      '<span class=\"count\">' + S.name.length + ' \/ 11<\/span>'));\n    b.appendChild(f);\n\n    \/* Style and colour only appear once there is something to print. *\/\n    if(printedName()){\n      const s1 = el(\"div\",\"sub\",'<span class=\"lbl\">Style<\/span>');\n      const r1 = el(\"div\",\"opts\");\n      Object.keys(STYLE_LABEL).forEach(k => {\n        const btn = el(\"button\",\"opt\", STYLE_LABEL[k]);\n        btn.type = \"button\"; btn.setAttribute(\"aria-pressed\", S.style === k);\n        btn.onclick = () => { S.style = k; paint(); };\n        r1.appendChild(btn);\n      });\n      s1.appendChild(r1); b.appendChild(s1);\n\n      const s2 = el(\"div\",\"sub\",'<span class=\"lbl\">Print colour<\/span>');\n      const r2 = el(\"div\",\"inks\");\n      Object.keys(INKS).forEach(k => {\n        const dot = INKS[k] ? '<i style=\"background:'+INKS[k]+'\"><\/i>' : '<i class=\"none\"><\/i>';\n        const btn = el(\"button\",\"ink\", dot + INK_LABEL[k]);\n        btn.type = \"button\"; btn.setAttribute(\"aria-pressed\", S.ink === k);\n        btn.title = k === \"deboss\" ? \"Pressed into the leather with no ink, like the MINT mark\" : \"\";\n        btn.onclick = () => { S.ink = k; paint(); };\n        r2.appendChild(btn);\n      });\n      s2.appendChild(r2); b.appendChild(s2);\n    }\n  },\n\n  extras(b){\n    const grid = el(\"div\",\"charmgrid\");\n    const none = el(\"button\",\"cm none\",\"No charm\");\n    none.type = \"button\"; none.setAttribute(\"aria-pressed\", S.charm === null);\n    none.onclick = () => { S.charm = null; paint(); };\n    grid.appendChild(none);\n    D.charms.forEach(ch => {\n      const ok = itemInStock(ch);\n      const btn = el(\"button\",\"cm\" + (ok ? \"\" : \" oos\"),\n        '<img decoding=\"async\" src=\"'+ch.img+'\" alt=\"\"><span class=\"nm\">'+ch.name+(ok?'':' <em>Sold out<\/em>')+'<\/span>');\n      btn.type = \"button\"; btn.disabled = !ok;\n      btn.title = ok ? ch.full + \" \u2014 AED \" + ch.price : ch.full + \" \u2014 out of stock\";\n      btn.setAttribute(\"aria-pressed\", S.charm === ch.slug);\n      if(ok) btn.onclick = () => { S.charm = S.charm === ch.slug ? null : ch.slug; paint(); };\n      grid.appendChild(btn);\n    });\n    b.appendChild(grid);\n\n    const gift = el(\"div\",\"gift\",\n      '<span class=\"txt\"><b>Gift box<\/b><span>Rigid presentation box, included free.<\/span><\/span>');\n    const tg = el(\"button\",\"tgl\"); tg.type = \"button\";\n    tg.setAttribute(\"aria-pressed\", S.gift); tg.setAttribute(\"aria-label\",\"Gift box\");\n    tg.onclick = () => { S.gift = !S.gift; paint(); };\n    gift.appendChild(tg); b.appendChild(gift);\n  }\n};\n\n\/* ---------- bottom bar ---------- *\/\nfunction bar(){\n  const {items,total} = price();\n  $(\"#total\").textContent = \"AED \" + total;\n  $(\"#detail\").textContent = items.length > 1 ? \"one bundled item\" : \"\";\n  $(\"#cta\").disabled = !selectionUsable();\n}\n\n\/* ---------- cart ---------- *\/\nfunction buildPayload(){\n  const c = currentColour();\n  return {product_id:c.id,\n          variation_id:(c.type === \"variable\" && S.size) ? (c.variations[S.size] || 0) : 0,\n          name:printedName(), style:S.style, ink:S.ink,\n          charm_id:S.charm ? D.charms.find(x => x.slug === S.charm).id : 0,\n          gift:S.gift ? 1 : 0};\n}\nfunction showError(msg){\n  $(\"#dlgtitle\").textContent = \"Something went wrong\";\n  $(\"#dlgnote\").textContent = msg; $(\"#sum\").innerHTML = \"\"; $(\"#dlg\").showModal();\n}\nasync function addToCart(){\n  const btn = $(\"#cta\"), original = btn.textContent, c = currentColour();\n  if(c.type === \"variable\" && !c.variations[S.size])\n    return showError(\"That size is not available in this colour. Please pick another size.\");\n  btn.disabled = true; btn.textContent = \"Adding\u2026\";\n  try{\n    const res = await fetch(WP.endpoint, {method:\"POST\", credentials:\"same-origin\",\n      headers:{\"Content-Type\":\"application\/json\",\"X-WP-Nonce\":WP.nonce},\n      body:JSON.stringify(buildPayload())});\n    const body = await res.json().catch(() => ({}));\n    console.log(\"[Build your MINT] status\", res.status, body);\n    if(!res.ok) throw new Error((body.message || \"Request failed\") + \" (\" + res.status + \")\");\n    \/* A 200 with an empty cart means the item went into a different session -\n       redirecting there would just show an empty cart and look like nothing\n       happened, so say so instead. *\/\n    if(!body.count){\n      throw new Error(\"The store accepted the request but the cart came back empty. \"\n        + \"Please reload the page and try again \u2014 if it keeps happening, send me the \"\n        + \"line starting [Build your MINT] from the browser console.\");\n    }\n    window.location.href = body.cart_url || WP.cartUrl;\n  }catch(err){\n    btn.disabled = false; btn.textContent = original;\n    const offline = (err instanceof TypeError) || \/failed to fetch|networkerror\/i.test(err.message||\"\");\n    showError(offline ? \"Could not reach the store. Please check your connection and try again.\"\n                      : (err.message || \"Could not add this to the cart. Please try again.\"));\n  }\n}\n$(\"#cta\").addEventListener(\"click\", () => {\n  if(WP) return addToCart();\n  const {items,total} = price();\n  $(\"#dlgtitle\").textContent = \"Your build\";\n  $(\"#dlgnote\").textContent = \"This is where the configured item would be added to the cart.\";\n  $(\"#sum\").innerHTML = items.map(i => '<dt>'+i[0]+'<\/dt><dd>'+(i[1]?'AED '+i[1]:'Free')+'<\/dd>').join(\"\")\n    + (S.size?'<dt>Size<\/dt><dd>'+sizeLabel()+'<\/dd>':'')\n    + (printedName()?'<dt>Name<\/dt><dd>'+printedName()+' ('+INK_LABEL[S.ink]+')<\/dd>':'')\n    + '<dt>Total<\/dt><dd><b>AED '+total+'<\/b><\/dd>';\n  $(\"#dlg\").showModal();\n});\n$(\"#dlgclose\").addEventListener(\"click\", () => $(\"#dlg\").close());\n\n$(\"#frame\").style.setProperty(\"--ar\", D.canvas[0] + \"\/\" + D.canvas[1]);\nif(WP) $(\"#cta\").textContent = \"Add to cart\";\n$(\"#proto\").hidden = !!WP;\npaint();\n<\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-6769","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Personalize Your Laptop &amp; iPad Sleeve | Mint UAE<\/title>\n<meta name=\"description\" content=\"Put your name on a premium leather laptop or iPad sleeve. Choose the colour, print and charm, preview it live, and get it gift boxed free across the UAE.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mintuae.com\/ar\/personalize-your-order\/\" \/>\n<meta property=\"og:locale\" content=\"ar_AR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Personalize Your Order\" \/>\n<meta property=\"og:description\" content=\"Put your name on a premium leather laptop or iPad sleeve. Choose the colour, print and charm, preview it live, and get it gift boxed free across the UAE.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mintuae.com\/ar\/personalize-your-order\/\" \/>\n<meta property=\"og:site_name\" content=\"Mint UAE\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-31T16:37:44+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mintuae.com\\\/personalize-your-order\\\/\",\"url\":\"https:\\\/\\\/mintuae.com\\\/personalize-your-order\\\/\",\"name\":\"Personalize Your Laptop & iPad Sleeve | Mint UAE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mintuae.com\\\/#website\"},\"datePublished\":\"2026-08-31T16:16:48+00:00\",\"dateModified\":\"2026-08-31T16:37:44+00:00\",\"description\":\"Put your name on a premium leather laptop or iPad sleeve. Choose the colour, print and charm, preview it live, and get it gift boxed free across the UAE.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mintuae.com\\\/personalize-your-order\\\/#breadcrumb\"},\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mintuae.com\\\/personalize-your-order\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mintuae.com\\\/personalize-your-order\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mintuae.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Personalize Your Order\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mintuae.com\\\/#website\",\"url\":\"https:\\\/\\\/mintuae.com\\\/\",\"name\":\"Mint UAE\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/mintuae.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mintuae.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ar\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mintuae.com\\\/#organization\",\"name\":\"Mint UAE\",\"url\":\"https:\\\/\\\/mintuae.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/mintuae.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mintuae.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/cropped-favicon.webp\",\"contentUrl\":\"https:\\\/\\\/mintuae.com\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/cropped-favicon.webp\",\"width\":512,\"height\":512,\"caption\":\"Mint UAE\"},\"image\":{\"@id\":\"https:\\\/\\\/mintuae.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Personalize Your Laptop & iPad Sleeve | Mint UAE","description":"Put your name on a premium leather laptop or iPad sleeve. Choose the colour, print and charm, preview it live, and get it gift boxed free across the UAE.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mintuae.com\/ar\/personalize-your-order\/","og_locale":"ar_AR","og_type":"article","og_title":"Personalize Your Order","og_description":"Put your name on a premium leather laptop or iPad sleeve. Choose the colour, print and charm, preview it live, and get it gift boxed free across the UAE.","og_url":"https:\/\/mintuae.com\/ar\/personalize-your-order\/","og_site_name":"Mint UAE","article_modified_time":"2026-08-31T16:37:44+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u0648\u0642\u062a \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0627\u0644\u0645\u064f\u0642\u062f\u0651\u0631":"\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mintuae.com\/personalize-your-order\/","url":"https:\/\/mintuae.com\/personalize-your-order\/","name":"Personalize Your Laptop & iPad Sleeve | Mint UAE","isPartOf":{"@id":"https:\/\/mintuae.com\/#website"},"datePublished":"2026-08-31T16:16:48+00:00","dateModified":"2026-08-31T16:37:44+00:00","description":"Put your name on a premium leather laptop or iPad sleeve. Choose the colour, print and charm, preview it live, and get it gift boxed free across the UAE.","breadcrumb":{"@id":"https:\/\/mintuae.com\/personalize-your-order\/#breadcrumb"},"inLanguage":"ar","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mintuae.com\/personalize-your-order\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mintuae.com\/personalize-your-order\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mintuae.com\/"},{"@type":"ListItem","position":2,"name":"Personalize Your Order"}]},{"@type":"WebSite","@id":"https:\/\/mintuae.com\/#website","url":"https:\/\/mintuae.com\/","name":"Mint UAE","description":"","publisher":{"@id":"https:\/\/mintuae.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mintuae.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ar"},{"@type":"Organization","@id":"https:\/\/mintuae.com\/#organization","name":"Mint UAE","url":"https:\/\/mintuae.com\/","logo":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/mintuae.com\/#\/schema\/logo\/image\/","url":"https:\/\/mintuae.com\/wp-content\/uploads\/2025\/11\/cropped-favicon.webp","contentUrl":"https:\/\/mintuae.com\/wp-content\/uploads\/2025\/11\/cropped-favicon.webp","width":512,"height":512,"caption":"Mint UAE"},"image":{"@id":"https:\/\/mintuae.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/mintuae.com\/ar\/wp-json\/wp\/v2\/pages\/6769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mintuae.com\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mintuae.com\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mintuae.com\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mintuae.com\/ar\/wp-json\/wp\/v2\/comments?post=6769"}],"version-history":[{"count":10,"href":"https:\/\/mintuae.com\/ar\/wp-json\/wp\/v2\/pages\/6769\/revisions"}],"predecessor-version":[{"id":6782,"href":"https:\/\/mintuae.com\/ar\/wp-json\/wp\/v2\/pages\/6769\/revisions\/6782"}],"wp:attachment":[{"href":"https:\/\/mintuae.com\/ar\/wp-json\/wp\/v2\/media?parent=6769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}