ߵiiѵiAccept-Encoding,User-Agent^4]Ak)Z KEY: https://blockultra.com.br/_astro/HomeCarousel.DG_tZpO5.js HTTP/1.1 200 OK Date: Sat, 14 Mar 2026 21:20:05 GMT Server: Apache Last-Modified: Tue, 24 Feb 2026 17:45:08 GMT Accept-Ranges: bytes Content-Length: 38715 Vary: Accept-Encoding,User-Agent Connection: close Content-Type: application/javascript import { c as $t, j as q } from "./createLucideIcon.EVWAhPkv.js"; import { r as et } from "./index.BGzeIQFi.js"; const sn = { active: !0, breakpoints: {}, delay: 4e3, jump: !1, playOnInit: !0, stopOnFocusIn: !0, stopOnInteraction: !0, stopOnMouseEnter: !1, stopOnLastSnap: !1, rootNode: null }; function cn(t, n) { const e = t.scrollSnapList(); return typeof n == "number" ? e.map(() => n) : n(e, t) } function un(t, n) { const e = t.rootNode(); return n && n(e) || e } function Tt(t = {}) { let n, e, s, c, r = null, o = 0, u = !1, i = !1, a = !1, h = !1; function d(D, k) { e = D; const { mergeOptions: z, optionsAtMedia: R } = k, U = z(sn, Tt.globalOptions), $ = z(U, t); if (n = R($), e.scrollSnapList().length <= 1) return; h = n.jump, s = !1, c = cn(e, n.delay); const { eventStore: Q, ownerDocument: G } = e.internalEngine(), X = !!e.internalEngine().options.watchDrag, Y = un(e, n.rootNode); Q.add(G, "visibilitychange", l), X && e.on("pointerDown", x), X && !n.stopOnInteraction && e.on("pointerUp", v), n.stopOnMouseEnter && Q.add(Y, "mouseenter", w), n.stopOnMouseEnter && !n.stopOnInteraction && Q.add(Y, "mouseleave", I), n.stopOnFocusIn && e.on("slideFocusStart", g), n.stopOnFocusIn && !n.stopOnInteraction && Q.add(e.containerNode(), "focusout", p), n.playOnInit && p() } function m() { e.off("pointerDown", x).off("pointerUp", v).off("slideFocusStart", g), g(), s = !0, u = !1 } function b() { const { ownerWindow: D } = e.internalEngine(); D.clearTimeout(o), o = D.setTimeout(T, c[e.selectedScrollSnap()]), r = new Date().getTime(), e.emit("autoplay:timerset") } function f() { const { ownerWindow: D } = e.internalEngine(); D.clearTimeout(o), o = 0, r = null, e.emit("autoplay:timerstopped") } function p() { if (!s) { if (y()) { a = !0; return } u || e.emit("autoplay:play"), b(), u = !0 } } function g() { s || (u && e.emit("autoplay:stop"), f(), u = !1) } function l() { if (y()) return a = u, g(); a && p() } function y() { const { ownerDocument: D } = e.internalEngine(); return D.visibilityState === "hidden" } function x() { i || g() } function v() { i || p() } function w() { i = !0, g() } function I() { i = !1, p() } function E(D) { typeof D < "u" && (h = D), p() } function L() { u && g() } function O() { u && p() } function N() { return u } function T() { const { index: D } = e.internalEngine(), k = D.clone().add(1).get(), z = e.scrollSnapList().length - 1, R = n.stopOnLastSnap && k === z; if (e.canScrollNext() ? e.scrollNext(h) : e.scrollTo(0, h), e.emit("autoplay:select"), R) return g(); p() } function F() { if (!r) return null; const D = c[e.selectedScrollSnap()], k = new Date().getTime() - r; return D - k } return { name: "autoplay", options: t, init: d, destroy: m, play: E, stop: L, reset: O, isPlaying: N, timeUntilNext: F } } Tt.globalOptions = void 0; const an = { src: "/banner/ultra.jpg", width: 1240, height: 625, format: "jpg" }, ln = { src: "/banner/impermeabilizacao.jpg", width: 1240, height: 625, format: "jpg" }, fn = { src: "/banner/piscina.jpg", width: 1240, height: 625, format: "jpg" }; function mn(t) { return Object.prototype.toString.call(t) === "[object Object]" } function Gt(t) { return mn(t) || Array.isArray(t) } function gn() { return !!(typeof window < "u" && window.document && window.document.createElement) } function wt(t, n) { const e = Object.keys(t), s = Object.keys(n); if (e.length !== s.length) return !1; const c = JSON.stringify(Object.keys(t.breakpoints || {})), r = JSON.stringify(Object.keys(n.breakpoints || {})); return c !== r ? !1 : e.every(o => { const u = t[o], i = n[o]; return typeof u == "function" ? `${u}` == `${i}` : !Gt(u) || !Gt(i) ? u === i : wt(u, i) }) } function Ht(t) { return t.concat().sort((n, e) => n.name > e.name ? 1 : -1).map(n => n.options) } function hn(t, n) { if (t.length !== n.length) return !1; const e = Ht(t), s = Ht(n); return e.every((c, r) => { const o = s[r]; return wt(c, o) }) } function Dt(t) { return typeof t == "number" } function It(t) { return typeof t == "string" } function St(t) { return typeof t == "boolean" } function _t(t) { return Object.prototype.toString.call(t) === "[object Object]" } function M(t) { return Math.abs(t) } function At(t) { return Math.sign(t) } function ft(t, n) { return M(t - n) } function yn(t, n) { if (t === 0 || n === 0 || M(t) <= M(n)) return 0; const e = ft(M(t), M(n)); return M(e / t) } function Sn(t) { return Math.round(t * 100) / 100 } function dt(t) { return pt(t).map(Number) } function K(t) { return t[gt(t)] } function gt(t) { return Math.max(0, t.length - 1) } function jt(t, n) { return n === gt(t) } function Ut(t, n = 0) { return Array.from(Array(t), (e, s) => n + s) } function pt(t) { return Object.keys(t) } function qt(t, n) { return [t, n].reduce((e, s) => (pt(s).forEach(c => { const r = e[c], o = s[c], u = _t(r) && _t(o); e[c] = u ? qt(r, o) : o }), e), {}) } function Ot(t, n) { return typeof n.MouseEvent < "u" && t instanceof n.MouseEvent } function bn(t, n) { const e = { start: s, center: c, end: r }; function s() { return 0 } function c(i) { return r(i) / 2 } function r(i) { return n - i } function o(i, a) { return It(t) ? e[t](i) : t(n, i, a) } return { measure: o } } function mt() { let t = []; function n(c, r, o, u = { passive: !0 }) { let i; if ("addEventListener" in c) c.addEventListener(r, o, u), i = () => c.removeEventListener(r, o, u); else { const a = c; a.addListener(o), i = () => a.removeListener(o) } return t.push(i), s } function e() { t = t.filter(c => c()) } const s = { add: n, clear: e }; return s } function xn(t, n, e, s) { const c = mt(), r = 1e3 / 60; let o = null, u = 0, i = 0; function a() { c.add(t, "visibilitychange", () => { t.hidden && f() }) } function h() { b(), c.clear() } function d(g) { if (!i) return; o || (o = g, e(), e()); const l = g - o; for (o = g, u += l; u >= r;) e(), u -= r; const y = u / r; s(y), i && (i = n.requestAnimationFrame(d)) } function m() { i || (i = n.requestAnimationFrame(d)) } function b() { n.cancelAnimationFrame(i), o = null, u = 0, i = 0 } function f() { o = null, u = 0 } return { init: a, destroy: h, start: m, stop: b, update: e, render: s } } function En(t, n) { const e = n === "rtl", s = t === "y", c = s ? "y" : "x", r = s ? "x" : "y", o = !s && e ? -1 : 1, u = h(), i = d(); function a(f) { const { height: p, width: g } = f; return s ? p : g } function h() { return s ? "top" : e ? "right" : "left" } function d() { return s ? "bottom" : e ? "left" : "right" } function m(f) { return f * o } return { scroll: c, cross: r, startEdge: u, endEdge: i, measureSize: a, direction: m } } function st(t = 0, n = 0) { const e = M(t - n); function s(a) { return a < t } function c(a) { return a > n } function r(a) { return s(a) || c(a) } function o(a) { return r(a) ? s(a) ? t : n : a } function u(a) { return e ? a - e * Math.ceil((a - n) / e) : a } return { length: e, max: n, min: t, constrain: o, reachedAny: r, reachedMax: c, reachedMin: s, removeOffset: u } } function Kt(t, n, e) { const { constrain: s } = st(0, t), c = t + 1; let r = o(n); function o(m) { return e ? M((c + m) % c) : s(m) } function u() { return r } function i(m) { return r = o(m), d } function a(m) { return h().set(u() + m) } function h() { return Kt(t, u(), e) } const d = { get: u, set: i, add: a, clone: h }; return d } function Ln(t, n, e, s, c, r, o, u, i, a, h, d, m, b, f, p, g, l, y) { const { cross: x, direction: v } = t, w = ["INPUT", "SELECT", "TEXTAREA"], I = { passive: !1 }, E = mt(), L = mt(), O = st(50, 225).constrain(b.measure(20)), N = { mouse: 300, touch: 400 }, T = { mouse: 500, touch: 600 }, F = f ? 43 : 25; let _ = !1, D = 0, k = 0, z = !1, R = !1, U = !1, $ = !1; function Q(S) { if (!y) return; function A(B) { (St(y) || y(S, B)) && ut(B) } const P = n; E.add(P, "dragstart", B => B.preventDefault(), I).add(P, "touchmove", () => {}, I).add(P, "touchend", () => {}).add(P, "touchstart", A).add(P, "mousedown", A).add(P, "touchcancel", C).add(P, "contextmenu", C).add(P, "click", W, !0) } function G() { E.clear(), L.clear() } function X() { const S = $ ? e : n; L.add(S, "touchmove", V, I).add(S, "touchend", C).add(S, "mousemove", V, I).add(S, "mouseup", C) } function Y(S) { const A = S.nodeName || ""; return w.includes(A) } function Z() { return (f ? T : N)[$ ? "mouse" : "touch"] } function ct(S, A) { const P = d.add(At(S) * -1), B = h.byDistance(S, !f).distance; return f || M(S) < O ? B : g && A ? B * .5 : h.byIndex(P.get(), 0).distance } function ut(S) { const A = Ot(S, s); $ = A, U = f && A && !S.buttons && _, _ = ft(c.get(), o.get()) >= 2, !(A && S.button !== 0) && (Y(S.target) || (z = !0, r.pointerDown(S), a.useFriction(0).useDuration(0), c.set(o), X(), D = r.readPoint(S), k = r.readPoint(S, x), m.emit("pointerDown"))) } function V(S) { if (!Ot(S, s) && S.touches.length >= 2) return C(S); const P = r.readPoint(S), B = r.readPoint(S, x), J = ft(P, D), tt = ft(B, k); if (!R && !$ && (!S.cancelable || (R = J > tt, !R))) return C(S); const ot = r.pointerMove(S); J > p && (U = !0), a.useFriction(.3).useDuration(.75), u.start(), c.add(v(ot)), S.preventDefault() } function C(S) { const P = h.byDistance(0, !1).index !== d.get(), B = r.pointerUp(S) * Z(), J = ct(v(B), P), tt = yn(B, J), ot = F - 10 * tt, nt = l + tt / 50; R = !1, z = !1, L.clear(), a.useDuration(ot).useFriction(nt), i.distance(J, !f), $ = !1, m.emit("pointerUp") } function W(S) { U && (S.stopPropagation(), S.preventDefault(), U = !1) } function H() { return z } return { init: Q, destroy: G, pointerDown: H } } function vn(t, n) { let s, c; function r(d) { return d.timeStamp } function o(d, m) { const f = `client${(m||t.scroll)==="x"?"X":"Y"}`; return (Ot(d, n) ? d : d.touches[0])[f] } function u(d) { return s = d, c = d, o(d) } function i(d) { const m = o(d) - o(c), b = r(d) - r(s) > 170; return c = d, b && (s = d), m } function a(d) { if (!s || !c) return 0; const m = o(c) - o(s), b = r(d) - r(s), f = r(d) - r(c) > 170, p = m / b; return b && !f && M(p) > .1 ? p : 0 } return { pointerDown: u, pointerMove: i, pointerUp: a, readPoint: o } } function In() { function t(e) { const { offsetTop: s, offsetLeft: c, offsetWidth: r, offsetHeight: o } = e; return { top: s, right: c + r, bottom: s + o, left: c, width: r, height: o } } return { measure: t } } function On(t) { function n(s) { return t * (s / 100) } return { measure: n } } function Tn(t, n, e, s, c, r, o) { const u = [t].concat(s); let i, a, h = [], d = !1; function m(g) { return c.measureSize(o.measure(g)) } function b(g) { if (!r) return; a = m(t), h = s.map(m); function l(y) { for (const x of y) { if (d) return; const v = x.target === t, w = s.indexOf(x.target), I = v ? a : h[w], E = m(v ? t : s[w]); if (M(E - I) >= .5) { g.reInit(), n.emit("resize"); break } } } i = new ResizeObserver(y => { (St(r) || r(g, y)) && l(y) }), e.requestAnimationFrame(() => { u.forEach(y => i.observe(y)) }) } function f() { d = !0, i && i.disconnect() } return { init: b, destroy: f } } function wn(t, n, e, s, c, r) { let o = 0, u = 0, i = c, a = r, h = t.get(), d = 0; function m() { const I = s.get() - t.get(), E = !i; let L = 0; return E ? (o = 0, e.set(s), t.set(s), L = I) : (e.set(t), o += I / i, o *= a, h += o, t.add(o), L = h - d), u = At(L), d = h, w } function b() { const I = s.get() - n.get(); return M(I) < .001 } function f() { return i } function p() { return u } function g() { return o } function l() { return x(c) } function y() { return v(r) } function x(I) { return i = I, w } function v(I) { return a = I, w } const w = { direction: p, duration: f, velocity: g, seek: m, settled: b, useBaseFriction: y, useBaseDuration: l, useFriction: v, useDuration: x }; return w } function Dn(t, n, e, s, c) { const r = c.measure(10), o = c.measure(50), u = st(.1, .99); let i = !1; function a() { return !(i || !t.reachedAny(e.get()) || !t.reachedAny(n.get())) } function h(b) { if (!a()) return; const f = t.reachedMin(n.get()) ? "min" : "max", p = M(t[f] - n.get()), g = e.get() - n.get(), l = u.constrain(p / o); e.subtract(g * l), !b && M(g) < r && (e.set(t.constrain(e.get())), s.useDuration(25).useBaseFriction()) } function d(b) { i = !b } return { shouldConstrain: a, constrain: h, toggleActive: d } } function An(t, n, e, s, c) { const r = st(-n + t, 0), o = d(), u = h(), i = m(); function a(f, p) { return ft(f, p) <= 1 } function h() { const f = o[0], p = K(o), g = o.lastIndexOf(f), l = o.indexOf(p) + 1; return st(g, l) } function d() { return e.map((f, p) => { const { min: g, max: l } = r, y = r.constrain(f), x = !p, v = jt(e, p); return x ? l : v || a(g, y) ? g : a(l, y) ? l : y }).map(f => parseFloat(f.toFixed(3))) } function m() { if (n <= t + c) return [r.max]; if (s === "keepSnaps") return o; const { min: f, max: p } = u; return o.slice(f, p) } return { snapsContained: i, scrollContainLimit: u } } function jn(t, n, e) { const s = n[0], c = e ? s - t : K(n); return { limit: st(c, s) } } function Mn(t, n, e, s) { const r = n.min + .1, o = n.max + .1, { reachedMin: u, reachedMax: i } = st(r, o); function a(m) { return m === 1 ? i(e.get()) : m === -1 ? u(e.get()) : !1 } function h(m) { if (!a(m)) return; const b = t * (m * -1); s.forEach(f => f.add(b)) } return { loop: h } } function Nn(t) { const { max: n, length: e } = t; function s(r) { const o = r - n; return e ? o / -e : 0 } return { get: s } } function Pn(t, n, e, s, c) { const { startEdge: r, endEdge: o } = t, { groupSlides: u } = c, i = d().map(n.measure), a = m(), h = b(); function d() { return u(s).map(p => K(p)[o] - p[0][r]).map(M) } function m() { return s.map(p => e[r] - p[r]).map(p => -M(p)) } function b() { return u(a).map(p => p[0]).map((p, g) => p + i[g]) } return { snaps: a, snapsAligned: h } } function Fn(t, n, e, s, c, r) { const { groupSlides: o } = c, { min: u, max: i } = s, a = h(); function h() { const m = o(r), b = !t || n === "keepSnaps"; return e.length === 1 ? [r] : b ? m : m.slice(u, i).map((f, p, g) => { const l = !p, y = jt(g, p); if (l) { const x = K(g[0]) + 1; return Ut(x) } if (y) { const x = gt(r) - K(g)[0] + 1; return Ut(x, K(g)[0]) } return f }) } return { slideRegistry: a } } function kn(t, n, e, s, c) { const { reachedAny: r, removeOffset: o, constrain: u } = s; function i(f) { return f.concat().sort((p, g) => M(p) - M(g))[0] } function a(f) { const p = t ? o(f) : u(f), g = n.map((y, x) => ({ diff: h(y - p, 0), index: x })).sort((y, x) => M(y.diff) - M(x.diff)), { index: l } = g[0]; return { index: l, distance: p } } function h(f, p) { const g = [f, f + e, f - e]; if (!t) return f; if (!p) return i(g); const l = g.filter(y => At(y) === p); return l.length ? i(l) : K(g) - e } function d(f, p) { const g = n[f] - c.get(), l = h(g, p); return { index: f, distance: l } } function m(f, p) { const g = c.get() + f, { index: l, distance: y } = a(g), x = !t && r(g); if (!p || x) return { index: l, distance: f }; const v = n[l] - y, w = f + h(v, 0); return { index: l, distance: w } } return { byDistance: m, byIndex: d, shortcut: h } } function Cn(t, n, e, s, c, r, o) { function u(d) { const m = d.distance, b = d.index !== n.get(); r.add(m), m && (s.duration() ? t.start() : (t.update(), t.render(1), t.update())), b && (e.set(n.get()), n.set(d.index), o.emit("select")) } function i(d, m) { const b = c.byDistance(d, m); u(b) } function a(d, m) { const b = n.clone().set(d), f = c.byIndex(b.get(), m); u(f) } return { distance: i, index: a } } function Bn(t, n, e, s, c, r, o, u) { const i = { passive: !0, capture: !0 }; let a = 0; function h(b) { if (!u) return; function f(p) { if (new Date().getTime() - a > 10) return; o.emit("slideFocusStart"), t.scrollLeft = 0; const y = e.findIndex(x => x.includes(p)); Dt(y) && (c.useDuration(0), s.index(y, 0), o.emit("slideFocus")) } r.add(document, "keydown", d, !1), n.forEach((p, g) => { r.add(p, "focus", l => { (St(u) || u(b, l)) && f(g) }, i) }) } function d(b) { b.code === "Tab" && (a = new Date().getTime()) } return { init: h } } function lt(t) { let n = t; function e() { return n } function s(i) { n = o(i) } function c(i) { n += o(i) } function r(i) { n -= o(i) } function o(i) { return Dt(i) ? i : i.get() } return { get: e, set: s, add: c, subtract: r } } function Qt(t, n) { const e = t.scroll === "x" ? o : u, s = n.style; let c = null, r = !1; function o(m) { return `translate3d(${m}px,0px,0px)` } function u(m) { return `translate3d(0px,${m}px,0px)` } function i(m) { if (r) return; const b = Sn(t.direction(m)); b !== c && (s.transform = e(b), c = b) } function a(m) { r = !m } function h() { r || (s.transform = "", n.getAttribute("style") || n.removeAttribute("style")) } return { clear: h, to: i, toggleActive: a } } function Vn(t, n, e, s, c, r, o, u, i) { const h = dt(c), d = dt(c).reverse(), m = l().concat(y()); function b(E, L) { return E.reduce((O, N) => O - c[N], L) } function f(E, L) { return E.reduce((O, N) => b(O, L) > 0 ? O.concat([N]) : O, []) } function p(E) { return r.map((L, O) => ({ start: L - s[O] + .5 + E, end: L + n - .5 + E })) } function g(E, L, O) { const N = p(L); return E.map(T => { const F = O ? 0 : -e, _ = O ? e : 0, D = O ? "end" : "start", k = N[T][D]; return { index: T, loopPoint: k, slideLocation: lt(-1), translate: Qt(t, i[T]), target: () => u.get() > k ? F : _ } }) } function l() { const E = o[0], L = f(d, E); return g(L, e, !1) } function y() { const E = n - o[0] - 1, L = f(h, E); return g(L, -e, !0) } function x() { return m.every(({ index: E }) => { const L = h.filter(O => O !== E); return b(L, n) <= .1 }) } function v() { m.forEach(E => { const { target: L, translate: O, slideLocation: N } = E, T = L(); T !== N.get() && (O.to(T), N.set(T)) }) } function w() { m.forEach(E => E.translate.clear()) } return { canLoop: x, clear: w, loop: v, loopPoints: m } } function zn(t, n, e) { let s, c = !1; function r(i) { if (!e) return; function a(h) { for (const d of h) if (d.type === "childList") { i.reInit(), n.emit("slidesChanged"); break } } s = new MutationObserver(h => { c || (St(e) || e(i, h)) && a(h) }), s.observe(t, { childList: !0 }) } function o() { s && s.disconnect(), c = !0 } return { init: r, destroy: o } } function Rn(t, n, e, s) { const c = {}; let r = null, o = null, u, i = !1; function a() { u = new IntersectionObserver(f => { i || (f.forEach(p => { const g = n.indexOf(p.target); c[g] = p }), r = null, o = null, e.emit("slidesInView")) }, { root: t.parentElement, threshold: s }), n.forEach(f => u.observe(f)) } function h() { u && u.disconnect(), i = !0 } function d(f) { return pt(c).reduce((p, g) => { const l = parseInt(g), { isIntersecting: y } = c[l]; return (f && y || !f && !y) && p.push(l), p }, []) } function m(f = !0) { if (f && r) return r; if (!f && o) return o; const p = d(f); return f && (r = p), f || (o = p), p } return { init: a, destroy: h, get: m } } function Gn(t, n, e, s, c, r) { const { measureSize: o, startEdge: u, endEdge: i } = t, a = e[0] && c, h = f(), d = p(), m = e.map(o), b = g(); function f() { if (!a) return 0; const y = e[0]; return M(n[u] - y[u]) } function p() { if (!a) return 0; const y = r.getComputedStyle(K(s)); return parseFloat(y.getPropertyValue(`margin-${i}`)) } function g() { return e.map((y, x, v) => { const w = !x, I = jt(v, x); return w ? m[x] + h : I ? m[x] + d : v[x + 1][u] - y[u] }).map(M) } return { slideSizes: m, slideSizesWithGaps: b, startGap: h, endGap: d } } function Hn(t, n, e, s, c, r, o, u, i) { const { startEdge: a, endEdge: h, direction: d } = t, m = Dt(e); function b(l, y) { return dt(l).filter(x => x % y === 0).map(x => l.slice(x, x + y)) } function f(l) { return l.length ? dt(l).reduce((y, x, v) => { const w = K(y) || 0, I = w === 0, E = x === gt(l), L = c[a] - r[w][a], O = c[a] - r[x][h], N = !s && I ? d(o) : 0, T = !s && E ? d(u) : 0, F = M(O - T - (L + N)); return v && F > n + i && y.push(x), E && y.push(l.length), y }, []).map((y, x, v) => { const w = Math.max(v[x - 1] || 0); return l.slice(w, y) }) : [] } function p(l) { return m ? b(l, e) : f(l) } return { groupSlides: p } } function _n(t, n, e, s, c, r, o) { const { align: u, axis: i, direction: a, startIndex: h, loop: d, duration: m, dragFree: b, dragThreshold: f, inViewThreshold: p, slidesToScroll: g, skipSnaps: l, containScroll: y, watchResize: x, watchSlides: v, watchDrag: w, watchFocus: I } = r, E = 2, L = In(), O = L.measure(n), N = e.map(L.measure), T = En(i, a), F = T.measureSize(O), _ = On(F), D = bn(u, F), k = !d && !!y, z = d || !!y, { slideSizes: R, slideSizesWithGaps: U, startGap: $, endGap: Q } = Gn(T, O, N, e, z, c), G = Hn(T, F, g, d, O, N, $, Q, E), { snaps: X, snapsAligned: Y } = Pn(T, D, O, N, G), Z = -K(X) + K(U), { snapsContained: ct, scrollContainLimit: ut } = An(F, Z, Y, y, E), V = k ? ct : Y, { limit: C } = jn(Z, V, d), W = Kt(gt(V), h, d), H = W.clone(), j = dt(e), S = ({ dragHandler: it, scrollBody: Lt, scrollBounds: vt, options: { loop: ht } }) => { ht || vt.constrain(it.pointerDown()), Lt.seek() }, A = ({ scrollBody: it, translate: Lt, location: vt, offsetLocation: ht, previousLocation: Yt, scrollLooper: Zt, slideLooper: Wt, dragHandler: tn, animation: nn, eventHandler: kt, scrollBounds: en, options: { loop: Ct } }, Bt) => { const Vt = it.settled(), on = !en.shouldConstrain(), zt = Ct ? Vt : Vt && on, Rt = zt && !tn.pointerDown(); Rt && nn.stop(); const rn = vt.get() * Bt + Yt.get() * (1 - Bt); ht.set(rn), Ct && (Zt.loop(it.direction()), Wt.loop()), Lt.to(ht.get()), Rt && kt.emit("settle"), zt || kt.emit("scroll") }, P = xn(s, c, () => S(Et), it => A(Et, it)), B = .68, J = V[W.get()], tt = lt(J), ot = lt(J), nt = lt(J), rt = lt(J), at = wn(tt, nt, ot, rt, m, B), bt = kn(d, V, Z, C, rt), xt = Cn(P, W, H, at, bt, rt, o), Nt = Nn(C), Pt = mt(), Jt = Rn(n, e, o, p), { slideRegistry: Ft } = Fn(k, y, V, ut, G, j), Xt = Bn(t, e, Ft, xt, at, Pt, o, I), Et = { ownerDocument: s, ownerWindow: c, eventHandler: o, containerRect: O, slideRects: N, animation: P, axis: T, dragHandler: Ln(T, t, s, c, rt, vn(T, c), tt, P, xt, at, bt, W, o, _, b, f, l, B, w), eventStore: Pt, percentOfView: _, index: W, indexPrevious: H, limit: C, location: tt, offsetLocation: nt, previousLocation: ot, options: r, resizeHandler: Tn(n, o, c, e, T, x, L), scrollBody: at, scrollBounds: Dn(C, nt, rt, at, _), scrollLooper: Mn(Z, C, nt, [tt, nt, ot, rt]), scrollProgress: Nt, scrollSnapList: V.map(Nt.get), scrollSnaps: V, scrollTarget: bt, scrollTo: xt, slideLooper: Vn(T, F, Z, R, U, X, V, nt, e), slideFocus: Xt, slidesHandler: zn(n, o, v), slidesInView: Jt, slideIndexes: j, slideRegistry: Ft, slidesToScroll: G, target: rt, translate: Qt(T, n) }; return Et } function Un() { let t = {}, n; function e(a) { n = a } function s(a) { return t[a] || [] } function c(a) { return s(a).forEach(h => h(n, a)), i } function r(a, h) { return t[a] = s(a).concat([h]), i } function o(a, h) { return t[a] = s(a).filter(d => d !== h), i } function u() { t = {} } const i = { init: e, emit: c, off: o, on: r, clear: u }; return i } const $n = { align: "center", axis: "x", container: null, slides: null, containScroll: "trimSnaps", direction: "ltr", slidesToScroll: 1, inViewThreshold: 0, breakpoints: {}, dragFree: !1, dragThreshold: 10, loop: !1, skipSnaps: !1, duration: 25, startIndex: 0, active: !0, watchDrag: !0, watchResize: !0, watchSlides: !0, watchFocus: !0 }; function qn(t) { function n(r, o) { return qt(r, o || {}) } function e(r) { const o = r.breakpoints || {}, u = pt(o).filter(i => t.matchMedia(i).matches).map(i => o[i]).reduce((i, a) => n(i, a), {}); return n(r, u) } function s(r) { return r.map(o => pt(o.breakpoints || {})).reduce((o, u) => o.concat(u), []).map(t.matchMedia) } return { mergeOptions: n, optionsAtMedia: e, optionsMediaQueries: s } } function Kn(t) { let n = []; function e(r, o) { return n = o.filter(({ options: u }) => t.optionsAtMedia(u).active !== !1), n.forEach(u => u.init(r, t)), o.reduce((u, i) => Object.assign(u, { [i.name]: i }), {}) } function s() { n = n.filter(r => r.destroy()) } return { init: e, destroy: s } } function yt(t, n, e) { const s = t.ownerDocument, c = s.defaultView, r = qn(c), o = Kn(r), u = mt(), i = Un(), { mergeOptions: a, optionsAtMedia: h, optionsMediaQueries: d } = r, { on: m, off: b, emit: f } = i, p = T; let g = !1, l, y = a($n, yt.globalOptions), x = a(y), v = [], w, I, E; function L() { const { container: j, slides: S } = x; I = (It(j) ? t.querySelector(j) : j) || t.children[0]; const P = It(S) ? I.querySelectorAll(S) : S; E = [].slice.call(P || I.children) } function O(j) { const S = _n(t, I, E, s, c, j, i); if (j.loop && !S.slideLooper.canLoop()) { const A = Object.assign({}, j, { loop: !1 }); return O(A) } return S } function N(j, S) { g || (y = a(y, j), x = h(y), v = S || v, L(), l = O(x), d([y, ...v.map(({ options: A }) => A)]).forEach(A => u.add(A, "change", T)), x.active && (l.translate.to(l.location.get()), l.animation.init(), l.slidesInView.init(), l.slideFocus.init(H), l.eventHandler.init(H), l.resizeHandler.init(H), l.slidesHandler.init(H), l.options.loop && l.slideLooper.loop(), I.offsetParent && E.length && l.dragHandler.init(H), w = o.init(H, v))) } function T(j, S) { const A = G(); F(), N(a({ startIndex: A }, j), S), i.emit("reInit") } function F() { l.dragHandler.destroy(), l.eventStore.clear(), l.translate.clear(), l.slideLooper.clear(), l.resizeHandler.destroy(), l.slidesHandler.destroy(), l.slidesInView.destroy(), l.animation.destroy(), o.destroy(), u.clear() } function _() { g || (g = !0, u.clear(), F(), i.emit("destroy"), i.clear()) } function D(j, S, A) { !x.active || g || (l.scrollBody.useBaseFriction().useDuration(S === !0 ? 0 : x.duration), l.scrollTo.index(j, A || 0)) } function k(j) { const S = l.index.add(1).get(); D(S, j, -1) } function z(j) { const S = l.index.add(-1).get(); D(S, j, 1) } function R() { return l.index.add(1).get() !== G() } function U() { return l.index.add(-1).get() !== G() } function $() { return l.scrollSnapList } function Q() { return l.scrollProgress.get(l.offsetLocation.get()) } function G() { return l.index.get() } function X() { return l.indexPrevious.get() } function Y() { return l.slidesInView.get() } function Z() { return l.slidesInView.get(!1) } function ct() { return w } function ut() { return l } function V() { return t } function C() { return I } function W() { return E } const H = { canScrollNext: R, canScrollPrev: U, containerNode: C, internalEngine: ut, destroy: _, off: b, on: m, emit: f, plugins: ct, previousScrollSnap: X, reInit: p, rootNode: V, scrollNext: k, scrollPrev: z, scrollProgress: Q, scrollSnapList: $, scrollTo: D, selectedScrollSnap: G, slideNodes: W, slidesInView: Y, slidesNotInView: Z }; return N(n, e), setTimeout(() => i.emit("init"), 0), H } yt.globalOptions = void 0; function Mt(t = {}, n = []) { const e = et.useRef(t), s = et.useRef(n), [c, r] = et.useState(), [o, u] = et.useState(), i = et.useCallback(() => { c && c.reInit(e.current, s.current) }, [c]); return et.useEffect(() => { wt(e.current, t) || (e.current = t, i()) }, [t, i]), et.useEffect(() => { hn(s.current, n) || (s.current = n, i()) }, [n, i]), et.useEffect(() => { if (gn() && o) { yt.globalOptions = Mt.globalOptions; const a = yt(o, e.current, s.current); return r(a), () => a.destroy() } else r(void 0) }, [o, r]), [u, c] } Mt.globalOptions = void 0; /** * @license lucide-react v0.552.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */ const Qn = [ ["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }] ], Jn = $t("chevron-left", Qn); /** * @license lucide-react v0.552.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */ const Xn = [ ["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }] ], Yn = $t("chevron-right", Xn), Zn = [{ image: an, href: "/sobre" }, { image: ln, href: "/produto/total-pro" }, { image: fn, href: "/produto/piscina" }]; function ne() { const [t, n] = Mt({ axis: "x", loop: !0, align: "center", duration: 20 }, [Tt({ delay: 8e3 })]); return q.jsxs("div", { className: "relative", children: [q.jsx("div", { className: "absolute top-0 left-0 h-full grid place-items-center z-10 px-3", children: q.jsx("button", { onClick: () => n?.scrollPrev(), className: "p-2.5 bg-black/40 text-white rounded-full", children: q.jsx(Jn, {}) }) }), q.jsx("div", { className: "absolute top-0 right-0 h-full grid place-items-center z-10 px-3", children: q.jsx("button", { onClick: () => n?.scrollNext(), className: "p-2.5 bg-black/40 text-white rounded-full", children: q.jsx(Yn, {}) }) }), q.jsx("div", { ref: t, children: q.jsx("div", { className: "flex items-center gap-8", children: Zn.map(({ image: e, href: s }, c) => q.jsx("a", { href: s, className: "min-w-0 shrink-0 grow-0 basis-full", children: q.jsx("img", { src: e.src, className: "object-cover w-full rounded-xl overflow-hidden" }) }, c)) }) })] }) } export { ne as HomeCarousel };