1import { 2 V as A, 3 M as D, 4 E, 5 mt as F, 6 n as I, 7 q as L, 8 b as M, 9 it as N, 10 O, 11 j as P, 12 r as R, 13 D as T, 14 ft as ae, 15 t as ce, 16 x as de, 17 xt as fe, 18 f as ie, 19 a as j, 20 St as k, 21 u as le, 22 U as ne, 23 h as oe, 24 z as pe, 25 at as re, 26 o as se, 27 ut as ue, 28 w as z, 29} from "./framer.CQopxS91.mjs" 30import { 31 a as C, 32 S, 33 r as ee, 34 t as te, 35 b as w, 36 N as x, 37} from "./motion.DT060rEt.mjs" 38import { 39 o as _, 40 L as a, 41 v as b, 42 P as c, 43 f as d, 44 g as f, 45 l as g, 46 k as h, 47 I as i, 48 R as l, 49 j as m, 50 C as n, 51 M as o, 52 h as p, 53 D as r, 54 N as s, 55 A as t, 56 c as u, 57 s as v, 58 u as y, 59} from "./react.jtNr-zv7.mjs" 60import { t as e } from "./rolldown-runtime.JmBsHQ-a.mjs" 61function me({ 62 radius: e = 30, 63 distortion: n = 50, 64 frost: r = 0.05, 65 chromatic: i = !0, 66}) { 67 const a = `lg-${b().replace(/:/g, ``)}`, 68 o = -(n * 3), 69 s = 0.7, 70 c = 1.5, 71 l = 1.1, 72 d = t(() => { 73 const t = 0.07 * 0.5 * 80, 74 n = `<svg viewBox="0 0 200 80" xmlns="http://www.w3.org/2000/svg"> 75 <defs> 76 <linearGradient id="r" x1="100%" y1="0%" x2="0%" y2="0%"> 77 <stop offset="0%" stop-color="#000"/> 78 <stop offset="100%" stop-color="red"/> 79 </linearGradient> 80 <linearGradient id="b" x1="0%" y1="0%" x2="0%" y2="100%"> 81 <stop offset="0%" stop-color="#000"/> 82 <stop offset="100%" stop-color="blue"/> 83 </linearGradient> 84 </defs> 85 <rect x="0" y="0" width="200" height="80" fill="black"/> 86 <rect x="0" y="0" width="200" height="80" rx="${e}" fill="url(#r)"/> 87 <rect x="0" y="0" width="200" height="80" rx="${e}" fill="url(#b)" style="mix-blend-mode:difference"/> 88 <rect x="${t}" y="${t}" width="${200 - t * 2}" height="${80 - t * 2}" rx="${e}" fill="hsl(0 0% 50% / 0.93)" style="filter:blur(11px)"/> 89 </svg>` 90 return `data:image/svg+xml,${encodeURIComponent(n)}` 91 }, [e]) 92 return g(v, { 93 children: [ 94 u(`svg`, { 95 xmlns: `http://www.w3.org/2000/svg`, 96 width: `0`, 97 height: `0`, 98 style: { position: `absolute`, pointerEvents: `none` }, 99 children: u(`defs`, { 100 children: t( 101 () => 102 i 103 ? g(`filter`, { 104 id: a, 105 colorInterpolationFilters: `sRGB`, 106 x: `0`, 107 y: `0`, 108 width: `100%`, 109 height: `100%`, 110 children: [ 111 u(`feImage`, { 112 x: `0`, 113 y: `0`, 114 width: `100%`, 115 height: `100%`, 116 href: d, 117 result: `map`, 118 }), 119 u(`feDisplacementMap`, { 120 in: `SourceGraphic`, 121 in2: `map`, 122 xChannelSelector: `R`, 123 yChannelSelector: `G`, 124 scale: o, 125 result: `dispRed`, 126 }), 127 u(`feColorMatrix`, { 128 in: `dispRed`, 129 type: `matrix`, 130 values: `1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0`, 131 result: `red`, 132 }), 133 u(`feDisplacementMap`, { 134 in: `SourceGraphic`, 135 in2: `map`, 136 xChannelSelector: `R`, 137 yChannelSelector: `G`, 138 scale: o + 10, 139 result: `dispGreen`, 140 }), 141 u(`feColorMatrix`, { 142 in: `dispGreen`, 143 type: `matrix`, 144 values: `0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0`, 145 result: `green`, 146 }), 147 u(`feDisplacementMap`, { 148 in: `SourceGraphic`, 149 in2: `map`, 150 xChannelSelector: `R`, 151 yChannelSelector: `G`, 152 scale: o + 20, 153 result: `dispBlue`, 154 }), 155 u(`feColorMatrix`, { 156 in: `dispBlue`, 157 type: `matrix`, 158 values: `0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0`, 159 result: `blue`, 160 }), 161 u(`feBlend`, { 162 in: `red`, 163 in2: `green`, 164 mode: `screen`, 165 result: `rg`, 166 }), 167 u(`feBlend`, { 168 in: `rg`, 169 in2: `blue`, 170 mode: `screen`, 171 result: `output`, 172 }), 173 u(`feGaussianBlur`, { in: `output`, stdDeviation: s }), 174 ], 175 }) 176 : g(`filter`, { 177 id: a, 178 colorInterpolationFilters: `sRGB`, 179 x: `0`, 180 y: `0`, 181 width: `100%`, 182 height: `100%`, 183 children: [ 184 u(`feImage`, { 185 x: `0`, 186 y: `0`, 187 width: `100%`, 188 height: `100%`, 189 href: d, 190 result: `map`, 191 }), 192 u(`feDisplacementMap`, { 193 in: `SourceGraphic`, 194 in2: `map`, 195 xChannelSelector: `R`, 196 yChannelSelector: `G`, 197 scale: o, 198 }), 199 u(`feGaussianBlur`, { stdDeviation: s }), 200 ], 201 }), 202 [a, d, o, i], 203 ), 204 }), 205 }), 206 u(`div`, { 207 style: { 208 width: `100%`, 209 height: `100%`, 210 borderRadius: e, 211 overflow: `hidden`, 212 display: `flex`,
213 alignItems: `center`, 214 justifyContent: `center`, 215 backdropFilter: `url(#${a}) brightness(${l}) saturate(${c})`, 216 WebkitBackdropFilter: `blur(12px) brightness(${l}) saturate(${c})`, 217 background: `hsl(0 0% 100% / ${r})`, 218 boxShadow: ` 219 0 0 2px 1px hsl(0 0% 50% / 0.15) inset, 220 0 0 10px 4px hsl(0 0% 50% / 0.1) inset, 221 0 4px 16px hsl(0 0% 10% / 0.05), 222 0 8px 24px hsl(0 0% 10% / 0.05) 223 `, 224 }, 225 }), 226 ], 227 }) 228} 229var he = e(() => { 230 _(), 231 L(), 232 n(), 233 O(me, { 234 radius: { 235 type: j.Number, 236 title: `Radius`, 237 defaultValue: 30, 238 min: 0, 239 max: 100, 240 step: 1, 241 }, 242 distortion: { 243 type: j.Number, 244 title: `Distortion`, 245 defaultValue: 50, 246 min: 0, 247 max: 100, 248 step: 1, 249 }, 250 frost: { 251 type: j.Number, 252 title: `Frost`, 253 defaultValue: 0.05, 254 min: 0, 255 max: 0.3, 256 step: 0.01, 257 }, 258 chromatic: { 259 type: j.Boolean, 260 title: `Chromatic Aberration`, 261 defaultValue: !0, 262 }, 263 }) 264 }), 265 ge, 266 _e, 267 ve, 268 ye, 269 be, 270 xe = e(() => { 271 _(), 272 L(), 273 n(), 274 (ge = `url('data:image/svg+xml,<svg display="block" role="presentation" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M 9.166 9.166 L 9.166 11 L 11 11 M 12.833 9.166 L 14.666 9.166 M 14.666 12.833 L 12.833 12.833 L 12.833 14.666 M 9.166 14.657 L 9.166 14.667 M 11 5.5 L 12.833 5.5 C 13.846 5.499 14.666 4.678 14.666 3.666 L 14.666 1.833 C 14.666 0.821 13.846 0 12.833 0 L 11 0 C 9.987 0 9.166 0.82 9.166 1.833 L 9.166 3.666 C 9.166 4.679 9.987 5.5 11 5.5 Z M 1.833 14.666 L 3.666 14.666 C 4.679 14.666 5.5 13.846 5.5 12.833 L 5.5 11 C 5.5 9.987 4.679 9.166 3.666 9.166 L 1.833 9.166 C 1.347 9.166 0.88 9.359 0.537 9.703 C 0.193 10.047 0 10.514 0 11 L 0 12.833 C 0 13.846 0.82 14.666 1.833 14.666 Z M 1.833 5.5 L 3.666 5.5 C 4.679 5.5 5.5 4.679 5.5 3.666 L 5.5 1.833 C 5.499 0.821 4.679 0 3.666 0 L 1.833 0 C 0.82 0 0 0.82 0 1.833 L 0 3.666 C 0 4.679 0.82 5.5 1.833 5.5 Z" fill="transparent" height="14.666999588012695px" id="hvsS7Y2fU" stroke-dasharray="" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.833" stroke="var(--1btux94, rgb(0, 0, 0))" transform="translate(5 5)" width="14.666000366210959px"/></svg>') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)`), 275 (_e = f((e, t) => { 276 const { animated: n, layoutId: r, children: i, ...a } = e 277 return n 278 ? u(S.div, { ...a, layoutId: r, ref: t }) 279 : u(`div`, { ...a, ref: t }) 280 })), 281 (ve = ({ fill: e, height: t, id: n, width: r, ...i }) => ({ 282 ...i, 283 qviYQoCyK: e ?? i.qviYQoCyK ?? `rgb(0, 0, 0)`, 284 })), 285 (ye = k( 286 f((e, t) => { 287 const { 288 style: n, 289 className: r, 290 layoutId: i, 291 variant: a, 292 qviYQoCyK: o, 293 ...s 294 } = ve(e) 295 return u(_e, { 296 ...s, 297 className: P(`framer-sj6pw`, r), 298 layoutId: i, 299 ref: t, 300 style: { "--1btux94": o, ...n }, 301 }) 302 }), 303 [ 304 `.framer-sj6pw { -webkit-mask: ${ge}; aspect-ratio: 1; background-color: var(--1btux94); mask: ${ge}; width: 24px; }`, 305 ], 306 `framer-sj6pw`, 307 )), 308 (ye.displayName = `QR`), 309 (be = ye), 310 O(ye, { 311 qviYQoCyK: { 312 defaultValue: `rgb(0, 0, 0)`, 313 hidden: !1, 314 title: `Fill`, 315 type: j.Color, 316 }, 317 }) 318 }) 319function Se(e, ...t) { 320 const n = {} 321 return t?.forEach((t) => t && Object.assign(n, e[t])), n 322} 323var Ce, 324 we, 325 Te, 326 Ee, 327 De, 328 Oe, 329 ke, 330 Ae, 331 je, 332 Me, 333 Ne, 334 Pe, 335 B, 336 Fe, 337 Ie = e(() => { 338 _(), 339 L(), 340 te(), 341 n(), 342 he(), 343 xe(), 344 (Ce = pe(me)), 345 (we = { 346 aGYDLY2H7: { hover: !0 }, 347 CDmiJb3pz: { hover: !0 }, 348 DMbHKcgQS: { hover: !0 }, 349 Nffp42wKw: { hover: !0 }, 350 th7a5cpM5: { hover: !0 }, 351 xuyliUwyU: { hover: !0 }, 352 }), 353 (Te = [ 354 `DMbHKcgQS`, 355 `Nffp42wKw`, 356 `aGYDLY2H7`, 357 `th7a5cpM5`, 358 `CDmiJb3pz`, 359 `xuyliUwyU`, 360 ]), 361 (Ee = `framer-k61hT`), 362 (De = { 363 aGYDLY2H7: `framer-v-1k2reya`, 364 CDmiJb3pz: `framer-v-1p959ci`, 365 DMbHKcgQS: `framer-v-g0vhc9`, 366 Nffp42wKw: `framer-v-1ooo8px`, 367 th7a5cpM5: `framer-v-1ai8ylj`, 368 xuyliUwyU: `framer-v-1rq1i0z`, 369 }), 370 (Oe = (e) => { 371 if (typeof e != `number`) return e 372 if (Number.isFinite(e)) return Math.max(0, e) + `px` 373 }), 374 (ke = { 375 delay: 0, 376 duration: 0.2, 377 ease: [0.12, 0.23, 0.5, 1], 378 type: `tween`, 379 }), 380 (Ae = ({ value: e, children: n }) => { 381 const r = h(C), 382 i = e ?? r.transition, 383 a = t(() => ({ ...r, transition: i }), [JSON.stringify(i)]) 384 return u(C.Provider, { value: a, children: n }) 385 }), 386 (je = { 387 "Dark w/o Icon": `CDmiJb3pz`, 388 "Transparent 50 w/Icon": `xuyliUwyU`, 389 "Transparent w/Icon": `Nffp42wKw`, 390 "Transparent w/o Icon": `aGYDLY2H7`, 391 "White w/ Icon": `DMbHKcgQS`, 392 "White w/o Icon": `th7a5cpM5`, 393 }), 394 (Me = S.create(s)), 395 (Ne = ({ 396 click: e, 397 height: t, 398 icon: n, 399 id: r, 400 link: i, 401 padding: a, 402 title: o, 403 width: s, 404 ...c 405 }) => ({ 406 ...c, 407 Dsu2AqL4z: a ?? c.Dsu2AqL4z ?? `12px 20px 12px 20px`, 408 LfCAZ8mam: n ?? c.LfCAZ8mam ?? be, 409 tLuskqcgA: i ?? c.tLuskqcgA, 410 UMF3qeFCK: o ?? c.UMF3qeFCK ?? `Get the app`, 411 variant: je[c.variant] ?? c.variant ?? `DMbHKcgQS`,
412 yKKheYUY3: e ?? c.yKKheYUY3, 413 })), 414 (Pe = (e, t) => 415 e.layoutDependency ? t.join(`-`) + e.layoutDependency : t.join(`-`)), 416 (B = k( 417 f((e, t) => { 418 const n = r(null), 419 i = t ?? n, 420 a = b(), 421 { activeLocale: o, setLocale: c } = ae() 422 re() 423 const { 424 style: l, 425 className: d, 426 layoutId: f, 427 variant: p, 428 tLuskqcgA: m, 429 UMF3qeFCK: h, 430 Dsu2AqL4z: _, 431 LfCAZ8mam: v, 432 yKKheYUY3: y, 433 ...x 434 } = Ne(e), 435 { 436 baseVariant: C, 437 classNames: w, 438 clearLoadingGesture: te, 439 gestureHandlers: T, 440 gestureVariant: D, 441 isLoading: O, 442 setGestureState: k, 443 setVariant: ne, 444 variants: A, 445 } = fe({ 446 cycleOrder: Te, 447 defaultVariant: `DMbHKcgQS`, 448 enabledGestures: we, 449 ref: i, 450 variant: p, 451 variantClassNames: De, 452 }), 453 j = Pe(e, A), 454 { activeVariantCallback: M, delay: F } = N(C), 455 I = M(async (...e) => { 456 if ((k({ isPressed: !1 }), y && (await y(...e)) === !1)) return !1 457 }), 458 se = P(Ee), 459 L = () => 460 !( 461 [ 462 `aGYDLY2H7-hover`, 463 `th7a5cpM5-hover`, 464 `CDmiJb3pz-hover`, 465 ].includes(D) || 466 [`aGYDLY2H7`, `th7a5cpM5`, `CDmiJb3pz`].includes(C) 467 ), 468 ce = () => 469 !!( 470 [ 471 `Nffp42wKw-hover`, 472 `aGYDLY2H7-hover`, 473 `xuyliUwyU-hover`, 474 ].includes(D) || 475 [`Nffp42wKw`, `aGYDLY2H7`, `xuyliUwyU`].includes(C) 476 ) 477 return u(ee, { 478 id: f ?? a, 479 children: u(Me, { 480 animate: A, 481 initial: !1, 482 children: u(Ae, { 483 value: ke, 484 children: u(oe, { 485 href: m, 486 motionChild: !0, 487 nodeId: `DMbHKcgQS`, 488 openInNewTab: !1, 489 scopeId: `chuLZPrm5`, 490 children: g(S.a, { 491 ...x, 492 ...T, 493 className: `${P(se, `framer-g0vhc9`, d, w)} framer-p7s1vq`, 494 "data-framer-name": `White w/ Icon`, 495 "data-highlight": !0, 496 layoutDependency: j, 497 layoutId: `DMbHKcgQS`, 498 onTap: I, 499 ref: i, 500 style: { 501 "--1pbymw4": Oe(_), 502 backdropFilter: `blur(20px)`, 503 backgroundColor: `rgba(255, 255, 255, 0.95)`, 504 borderBottomLeftRadius: 50, 505 borderBottomRightRadius: 50, 506 borderTopLeftRadius: 50, 507 borderTopRightRadius: 50, 508 boxShadow: `none`, 509 filter: `brightness(1)`, 510 rotate: 360, 511 WebkitBackdropFilter: `blur(20px)`, 512 WebkitFilter: `brightness(1)`, 513 ...l, 514 }, 515 variants: { 516 "aGYDLY2H7-hover": { 517 backgroundColor: `rgba(255, 255, 255, 0.03)`, 518 }, 519 "CDmiJb3pz-hover": { 520 boxShadow: `inset 0px 0px 16px 0px rgba(255, 255, 255, 0.25)`, 521 }, 522 "DMbHKcgQS-hover": { 523 backgroundColor: `rgb(255, 255, 255)`, 524 boxShadow: `none`, 525 filter: `brightness(1.2)`, 526 WebkitFilter: `brightness(1.2)`, 527 }, 528 "Nffp42wKw-hover": { 529 backgroundColor: `rgba(255, 255, 255, 0.03)`, 530 boxShadow: `inset 0px 1px 12px 0px rgba(255, 255, 255, 0.3)`, 531 }, 532 "th7a5cpM5-hover": { 533 backgroundColor: `rgb(255, 255, 255)`, 534 }, 535 "xuyliUwyU-hover": { 536 backgroundColor: `rgba(255, 255, 255, 0.1)`, 537 }, 538 aGYDLY2H7: { 539 backgroundColor: `rgba(255, 255, 255, 0)`, 540 boxShadow: `inset 0px 1px 10px 0px rgba(255, 255, 255, 0.2)`, 541 }, 542 CDmiJb3pz: { 543 backgroundColor: `rgba(22, 15, 41, 0.95)`, 544 boxShadow: `inset 0px 0px 10px 0px rgba(255, 255, 255, 0.25)`, 545 }, 546 Nffp42wKw: { 547 backgroundColor: `rgba(255, 255, 255, 0)`, 548 boxShadow: `inset 0px 1px 10px 0px rgba(255, 255, 255, 0.2)`, 549 }, 550 th7a5cpM5: { boxShadow: `none` }, 551 xuyliUwyU: { 552 backgroundColor: `rgba(255, 255, 255, 0.08)`, 553 boxShadow: `inset 0px 1px 10px 0px rgba(255, 255, 255, 0.2)`, 554 }, 555 }, 556 ...Se( 557 { 558 "aGYDLY2H7-hover": { "data-framer-name": void 0 }, 559 "CDmiJb3pz-hover": { "data-framer-name": void 0 }, 560 "DMbHKcgQS-hover": { "data-framer-name": void 0 }, 561 "Nffp42wKw-hover": { "data-framer-name": void 0 }, 562 "th7a5cpM5-hover": { "data-framer-name": void 0 }, 563 "xuyliUwyU-hover": { "data-framer-name": void 0 }, 564 aGYDLY2H7: {
565 "data-framer-name": `Transparent w/o Icon`, 566 }, 567 CDmiJb3pz: { "data-framer-name": `Dark w/o Icon` }, 568 Nffp42wKw: { "data-framer-name": `Transparent w/Icon` }, 569 th7a5cpM5: { "data-framer-name": `White w/o Icon` }, 570 xuyliUwyU: { 571 "data-framer-name": `Transparent 50 w/Icon`, 572 }, 573 }, 574 C, 575 D, 576 ), 577 children: [ 578 L() && 579 u(ie, { 580 animated: !0, 581 className: `framer-1kxzoov`, 582 Component: v, 583 layoutDependency: j, 584 layoutId: `IEG9ZQBX5`, 585 style: { "--1btux94": `rgb(0, 0, 0)` }, 586 variants: { 587 Nffp42wKw: { "--1btux94": `rgb(255, 255, 255)` }, 588 xuyliUwyU: { "--1btux94": `rgb(255, 255, 255)` }, 589 }, 590 }), 591 ce() && 592 u(R, { 593 children: u(E, { 594 className: `framer-1wxi83k-container`, 595 isAuthoredByUser: !0, 596 layoutDependency: j, 597 layoutId: `dLJ_L9jhP-container`, 598 nodeId: `dLJ_L9jhP`, 599 rendersWithMotion: !0, 600 scopeId: `chuLZPrm5`, 601 children: u(me, { 602 chromatic: !1, 603 distortion: 0, 604 frost: 0.1, 605 height: `100%`, 606 id: `dLJ_L9jhP`, 607 layoutId: `dLJ_L9jhP`, 608 radius: 100, 609 style: { height: `100%`, width: `100%` }, 610 width: `100%`, 611 ...Se({ aGYDLY2H7: { radius: 63 } }, C, D), 612 }), 613 }), 614 }), 615 u(z, { 616 __fromCanvasComponent: !0, 617 children: u(s, { 618 children: u(S.p, { 619 dir: `auto`, 620 style: { 621 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 622 "--framer-font-size": `17px`, 623 "--framer-font-weight": `600`, 624 "--framer-letter-spacing": `-0.01em`, 625 }, 626 children: `Get the app`, 627 }), 628 }), 629 className: `framer-s98q8e`, 630 fonts: [`Inter-SemiBold`], 631 layoutDependency: j, 632 layoutId: `BowWKUiVN`, 633 style: { 634 "--framer-link-text-color": `rgb(0, 153, 255)`, 635 "--framer-link-text-decoration": `underline`, 636 }, 637 text: h, 638 variants: { 639 "CDmiJb3pz-hover": { 640 "--extracted-r6o4lv": `rgb(255, 255, 255)`, 641 }, 642 aGYDLY2H7: { 643 "--extracted-r6o4lv": `rgb(255, 255, 255)`, 644 }, 645 CDmiJb3pz: { 646 "--extracted-r6o4lv": `rgba(255, 255, 255, 0.9)`, 647 }, 648 Nffp42wKw: { 649 "--extracted-r6o4lv": `rgb(255, 255, 255)`, 650 }, 651 xuyliUwyU: { 652 "--extracted-r6o4lv": `rgb(255, 255, 255)`, 653 }, 654 }, 655 verticalAlignment: `top`, 656 withExternalLayout: !0, 657 ...Se( 658 { 659 "CDmiJb3pz-hover": { 660 children: u(s, { 661 children: u(S.p, { 662 dir: `auto`, 663 style: { 664 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 665 "--framer-font-size": `17px`, 666 "--framer-font-weight": `600`, 667 "--framer-letter-spacing": `-0.01em`, 668 "--framer-text-color": `var(--extracted-r6o4lv, rgb(255, 255, 255))`, 669 }, 670 children: `Get the app`, 671 }), 672 }), 673 }, 674 aGYDLY2H7: { 675 children: u(s, { 676 children: u(S.p, { 677 dir: `auto`, 678 style: { 679 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 680 "--framer-font-size": `17px`, 681 "--framer-font-weight": `600`, 682 "--framer-letter-spacing": `-0.01em`, 683 "--framer-text-color": `var(--extracted-r6o4lv, rgb(255, 255, 255))`, 684 }, 685 children: `Get the app`, 686 }), 687 }), 688 }, 689 CDmiJb3pz: { 690 children: u(s, { 691 children: u(S.p, { 692 dir: `auto`, 693 style: { 694 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 695 "--framer-font-size": `17px`,
696 "--framer-font-weight": `600`, 697 "--framer-letter-spacing": `-0.01em`, 698 "--framer-text-color": `var(--extracted-r6o4lv, rgba(255, 255, 255, 0.9))`, 699 }, 700 children: `Get the app`, 701 }), 702 }), 703 }, 704 Nffp42wKw: { 705 children: u(s, { 706 children: u(S.p, { 707 dir: `auto`, 708 style: { 709 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 710 "--framer-font-size": `17px`, 711 "--framer-font-weight": `600`, 712 "--framer-letter-spacing": `-0.01em`, 713 "--framer-text-color": `var(--extracted-r6o4lv, rgb(255, 255, 255))`, 714 }, 715 children: `Get the app`, 716 }), 717 }), 718 }, 719 xuyliUwyU: { 720 children: u(s, { 721 children: u(S.p, { 722 dir: `auto`, 723 style: { 724 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 725 "--framer-font-size": `17px`, 726 "--framer-font-weight": `600`, 727 "--framer-letter-spacing": `-0.01em`, 728 "--framer-text-color": `var(--extracted-r6o4lv, rgb(255, 255, 255))`, 729 }, 730 children: `Get the app`, 731 }), 732 }), 733 }, 734 }, 735 C, 736 D, 737 ), 738 }), 739 ], 740 }), 741 }), 742 }), 743 }), 744 }) 745 }), 746 [ 747 `@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }`, 748 `.framer-k61hT.framer-p7s1vq, .framer-k61hT .framer-p7s1vq { display: block; }`, 749 `.framer-k61hT.framer-g0vhc9 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: 54px; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: var(--1pbymw4); position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }`, 750 `.framer-k61hT .framer-1kxzoov { flex: none; height: var(--framer-aspect-ratio-supported, 24px); position: relative; width: 24px; }`, 751 `.framer-k61hT .framer-1wxi83k-container { bottom: 0px; flex: none; left: 0px; position: absolute; right: 0px; top: 0px; z-index: 0; }`, 752 `.framer-k61hT .framer-s98q8e { flex: none; height: auto; position: relative; white-space: pre; width: auto; }`, 753 `.framer-k61hT.framer-v-1ooo8px .framer-1kxzoov, .framer-k61hT.framer-v-1rq1i0z .framer-1kxzoov { order: 1; }`, 754 `.framer-k61hT.framer-v-1ooo8px .framer-1wxi83k-container, .framer-k61hT.framer-v-1k2reya .framer-1wxi83k-container, .framer-k61hT.framer-v-1rq1i0z .framer-1wxi83k-container { order: 0; }`, 755 `.framer-k61hT.framer-v-1ooo8px .framer-s98q8e, .framer-k61hT.framer-v-1k2reya .framer-s98q8e, .framer-k61hT.framer-v-1rq1i0z .framer-s98q8e { order: 2; }`, 756 `.framer-k61hT.framer-v-1k2reya.framer-g0vhc9, .framer-k61hT.framer-v-1ai8ylj.framer-g0vhc9, .framer-k61hT.framer-v-1p959ci.framer-g0vhc9 { height: 46px; }`, 757 ], 758 `framer-k61hT`, 759 )), 760 (Fe = B), 761 (B.displayName = `Button`), 762 (B.defaultProps = { height: 54, width: 165 }), 763 O(B, { 764 variant: { 765 options: [ 766 `DMbHKcgQS`, 767 `Nffp42wKw`, 768 `aGYDLY2H7`, 769 `th7a5cpM5`, 770 `CDmiJb3pz`, 771 `xuyliUwyU`, 772 ], 773 optionTitles: [ 774 `White w/ Icon`, 775 `Transparent w/Icon`, 776 `Transparent w/o Icon`, 777 `White w/o Icon`, 778 `Dark w/o Icon`, 779 `Transparent 50 w/Icon`, 780 ], 781 title: `Variant`, 782 type: j.Enum, 783 }, 784 tLuskqcgA: { title: `Link`, type: j.Link }, 785 UMF3qeFCK: { 786 defaultValue: `Get the app`, 787 displayTextArea: !1, 788 title: `Title`, 789 type: j.String, 790 }, 791 onUMF3qeFCKChange: { changes: `UMF3qeFCK`, type: j.ChangeHandler }, 792 Dsu2AqL4z: { 793 defaultValue: `12px 20px 12px 20px`, 794 title: `Padding`, 795 type: j.Padding, 796 }, 797 LfCAZ8mam: { 798 defaultValue: { 799 identifier: `local-module:vector/VxyWH7BQN:default`, 800 moduleId: `Y9aLqt46mMYfWlzkg6ry`, 801 }, 802 setModuleId: `7rJbIzkfSZYktnuWoFwV`, 803 title: `Icon`, 804 type: j.VectorSetItem, 805 }, 806 yKKheYUY3: { title: `Click`, type: j.EventHandler }, 807 }), 808 T( 809 B, 810 [ 811 { 812 explicitInter: !0, 813 fonts: [ 814 { 815 cssFamilyName: `Inter`, 816 source: `framer`, 817 style: `normal`, 818 uiFamilyName: `Inter`, 819 unicodeRange: `U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F`, 820 url: `/framer-assets/fonts/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2`, 821 weight: `600`, 822 }, 823 { 824 cssFamilyName: `Inter`, 825 source: `framer`, 826 style: `normal`, 827 uiFamilyName: `Inter`, 828 unicodeRange: `U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116`, 829 url: `/framer-assets/fonts/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2`, 830 weight: `600`, 831 }, 832 { 833 cssFamilyName: `Inter`, 834 source: `framer`, 835 style: `normal`, 836 uiFamilyName: `Inter`, 837 unicodeRange: `U+1F00-1FFF`, 838 url: `/framer-assets/fonts/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2`, 839 weight: `600`, 840 }, 841 { 842 cssFamilyName: `Inter`, 843 source: `framer`, 844 style: `normal`, 845 uiFamilyName: `Inter`, 846 unicodeRange: `U+0370-03FF`, 847 url: `/framer-assets/fonts/lEJLP4R0yuCaMCjSXYHtJw72M.woff2`, 848 weight: `600`, 849 }, 850 { 851 cssFamilyName: `Inter`, 852 source: `framer`, 853 style: `normal`, 854 uiFamilyName: `Inter`, 855 unicodeRange: `U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF`,
856 url: `/framer-assets/fonts/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2`, 857 weight: `600`, 858 }, 859 { 860 cssFamilyName: `Inter`, 861 source: `framer`, 862 style: `normal`, 863 uiFamilyName: `Inter`, 864 unicodeRange: `U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD`, 865 url: `/framer-assets/fonts/yDtI2UI8XcEg1W2je9XPN3Noo.woff2`, 866 weight: `600`, 867 }, 868 { 869 cssFamilyName: `Inter`, 870 source: `framer`, 871 style: `normal`, 872 uiFamilyName: `Inter`, 873 unicodeRange: `U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB`, 874 url: `/framer-assets/fonts/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2`, 875 weight: `600`, 876 }, 877 ], 878 }, 879 ...Ce, 880 ], 881 { supportsExplicitInterCodegen: !0 }, 882 ) 883 }), 884 Le, 885 Re, 886 ze, 887 Be = e(() => { 888 L(), 889 (Le = { 890 position: `relative`, 891 width: `100%`, 892 height: `100%`, 893 display: `flex`, 894 justifyContent: `center`, 895 alignItems: `center`, 896 }), 897 (Re = { 898 ...Le, 899 borderRadius: 6, 900 background: `rgba(136, 85, 255, 0.3)`, 901 color: `#85F`, 902 border: `1px dashed #85F`, 903 flexDirection: `column`, 904 }), 905 (ze = { 906 onClick: { type: j.EventHandler }, 907 onMouseEnter: { type: j.EventHandler }, 908 onMouseLeave: { type: j.EventHandler }, 909 }), 910 j.Number, 911 j.Boolean, 912 j.String, 913 j.Enum 914 }) 915function Ve(e, t) { 916 return Ue(!0, e, t) 917} 918function He(e, t) { 919 return Ue(!1, e, t) 920} 921function Ue(e, t, n = !0) { 922 const r = ue() 923 o(() => { 924 n && r === e && t() 925 }, [r]) 926} 927var We = e(() => { 928 L(), n() 929 }), 930 Ge = e(() => { 931 n() 932 }), 933 Ke = e(() => { 934 L() 935 }), 936 qe = e(() => { 937 L() 938 }), 939 Je = e(() => { 940 n() 941 }), 942 Ye = e(() => { 943 L() 944 }), 945 Xe, 946 Ze, 947 Qe = e(() => { 948 i(), 949 n(), 950 (Xe = () => { 951 if (a !== void 0) { 952 const e = a.userAgent.toLowerCase() 953 return ( 954 (e.indexOf(`safari`) > -1 || 955 e.indexOf(`framermobile`) > -1 || 956 e.indexOf(`framerx`) > -1) && 957 e.indexOf(`chrome`) < 0 958 ) 959 } else return !1 960 }), 961 (Ze = () => t(() => Xe(), [])) 962 }), 963 $e = e(() => { 964 n(), qe() 965 }), 966 et = e(() => { 967 n(), L(), qe(), Ge() 968 }), 969 tt = e(() => { 970 L(), n(), Be() 971 }) 972function nt() { 973 return t(() => de.current(), []) 974} 975function rt() { 976 return t(() => de.current() === de.canvas, []) 977} 978var it = e(() => { 979 n(), L() 980 }), 981 at = e(() => { 982 n() 983 }) 984function ot(e) { 985 const { 986 borderRadius: n, 987 isMixedBorderRadius: r, 988 topLeftRadius: i, 989 topRightRadius: a, 990 bottomRightRadius: o, 991 bottomLeftRadius: s, 992 } = e 993 return t( 994 () => (r ? `${i}px ${a}px ${o}px ${s}px` : `${n}px`), 995 [n, r, i, a, o, s], 996 ) 997} 998var st, 999 ct = e(() => { 1000 n(), 1001 L(), 1002 (st = { 1003 borderRadius: { 1004 title: `Radius`, 1005 type: j.FusedNumber, 1006 toggleKey: `isMixedBorderRadius`, 1007 toggleTitles: [`Radius`, `Radius per corner`], 1008 valueKeys: [ 1009 `topLeftRadius`, 1010 `topRightRadius`, 1011 `bottomRightRadius`, 1012 `bottomLeftRadius`, 1013 ], 1014 valueLabels: [`TL`, `TR`, `BR`, `BL`], 1015 min: 0, 1016 }, 1017 }), 1018 j.FusedNumber 1019 }), 1020 lt = e(() => { 1021 Be(), 1022 We(), 1023 Ge(), 1024 Ke(), 1025 qe(), 1026 Je(), 1027 Ye(), 1028 Qe(), 1029 $e(), 1030 et(), 1031 tt(), 1032 it(), 1033 at(), 1034 ct() 1035 }) 1036function ut(e) { 1037 const { 1038 width: t, 1039 height: n, 1040 topLeft: r, 1041 topRight: i, 1042 bottomRight: a, 1043 bottomLeft: o, 1044 id: s, 1045 children: c, 1046 ...l 1047 } = e 1048 return l 1049} 1050function dt(e) { 1051 return u(yt, { ...ut(e) }) 1052} 1053function ft(e) { 1054 const t = ue(), 1055 n = r(!1), 1056 i = r(!1), 1057 a = m((t) => { 1058 if (!e.current) return 1059 const n = (t === 1 ? 0.999 : t) * e.current.duration, 1060 r = Math.abs(e.current.currentTime - n) < 0.1 1061 e.current.duration > 0 && !r && (e.current.currentTime = n) 1062 }, []) 1063 return { 1064 play: m(() => { 1065 const r = e.current 1066 r && 1067 ((r.preload = `auto`), 1068 !( 1069 r.currentTime > 0 && 1070 r.onplaying && 1071 !r.paused && 1072 !r.ended && 1073 r.readyState >= r.HAVE_CURRENT_DATA 1074 ) && 1075 r && 1076 !n.current && 1077 t && 1078 ((n.current = !0), 1079 (i.current = !0), 1080 r 1081 .play() 1082 .catch((e) => {}) 1083 .finally(() => (n.current = !1)))) 1084 }, []), 1085 pause: m(() => { 1086 !e.current || n.current || (e.current.pause(), (i.current = !1)) 1087 }, []), 1088 setProgress: a, 1089 isPlaying: i, 1090 } 1091} 1092function pt({ 1093 playingProp: e, 1094 muted: t, 1095 loop: n, 1096 playsinline: r, 1097 controls: i, 1098}) { 1099 const [a] = c(e), 1100 [o, s] = c(!1) 1101 e !== a && !o && s(!0) 1102 let l = a && t && n && r && !i && !o, 1103 u 1104 return (u = l ? `on-viewport` : a ? `on-mount` : `no-autoplay`), u 1105} 1106function mt(e) { 1107 return e.charAt(0).toUpperCase() + e.slice(1) 1108} 1109function ht(e) { 1110 return (e.match(/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\d+/gu) || []) 1111 .map(mt)
1112 .join(` `) 1113} 1114var gt, 1115 _t, 1116 vt, 1117 yt, 1118 bt, 1119 xt = e(() => { 1120 _(), 1121 L(), 1122 te(), 1123 lt(), 1124 n(), 1125 ((e) => { 1126 ;(e.Fill = `fill`), 1127 (e.Contain = `contain`), 1128 (e.Cover = `cover`), 1129 (e.None = `none`), 1130 (e.ScaleDown = `scale-down`) 1131 })((gt ||= {})), 1132 ((e) => { 1133 ;(e.Video = `Upload`), (e.Url = `URL`) 1134 })((_t ||= {})), 1135 (vt = `/framer-assets/videos/MLWPbW1dUQawJLhhun3dBwpgJak.mp4`), 1136 (yt = p((e) => { 1137 const { 1138 srcType: n = `URL`, 1139 srcUrl: i, 1140 srcFile: a = ``, 1141 posterEnabled: s = !1, 1142 controls: c = !1, 1143 playing: l = !0, 1144 loop: d = !0, 1145 muted: f = !0, 1146 playsinline: p = !0, 1147 restartOnEnter: m = !1, 1148 objectFit: h = `cover`, 1149 backgroundColor: g = `rgba(0,0,0,0)`, 1150 radius: _ = 0, 1151 volume: v = 25, 1152 startTime: y = 0, 1153 poster: b, 1154 playing: S, 1155 progress: C, 1156 onSeeked: ee, 1157 onPause: te, 1158 onPlay: T, 1159 onEnd: E, 1160 onClick: D, 1161 onMouseEnter: O, 1162 onMouseLeave: k, 1163 onMouseDown: ne, 1164 onMouseUp: A, 1165 } = e, 1166 j = r(), 1167 re = Ze(), 1168 M = r(null), 1169 ie = r(null), 1170 ae = rt(), 1171 oe = nt(), 1172 N = ae || oe === de.export, 1173 P = ot(e), 1174 F = N 1175 ? `no-autoplay` 1176 : pt({ 1177 playingProp: S, 1178 muted: f, 1179 loop: d, 1180 playsinline: p, 1181 controls: c, 1182 }), 1183 I = N ? !0 : x(j), 1184 se = N ? !1 : x(j, { margin: `10%`, once: !0 }), 1185 L = y === 100 ? 99.9 : y, 1186 { play: R, pause: ce, setProgress: le, isPlaying: ue } = ft(j) 1187 o(() => { 1188 N || (F !== `on-viewport` && (S ? R() : ce())) 1189 }, [F, S]), 1190 o(() => { 1191 N || 1192 (I && S && F !== `no-autoplay` && R(), 1193 F === `on-viewport` && ce()) 1194 }, [F, I, S]), 1195 o(() => { 1196 !ae || b || s || L || !j.current || (j.current.currentTime = 0.01) 1197 }, [s, b, L]) 1198 const z = r(!1) 1199 o(() => { 1200 if (!z.current) { 1201 z.current = !0 1202 return 1203 } 1204 le(((w(C) ? C.get() : (C ?? 0) * 0.01) ?? 0) || (L ?? 0) / 100) 1205 }, [L, a, i, C]), 1206 o(() => { 1207 if (w(C)) return C.on(`change`, (e) => le(e)) 1208 }, [C]), 1209 Ve(() => { 1210 M.current !== null && j.current && ((!ie && d) || !M.current) && R() 1211 }), 1212 He(() => { 1213 j.current && 1214 ((ie.current = j.current.ended), 1215 (M.current = j.current.paused), 1216 ce()) 1217 }) 1218 const fe = t(() => { 1219 if (n === `URL`) return i + `` 1220 if (n === `Upload`) return a + `` 1221 }, [n, a, i, L]) 1222 return ( 1223 o(() => { 1224 re && j.current && F === `on-mount` && setTimeout(() => R(), 50) 1225 }, []), 1226 o(() => { 1227 j.current && !f && (j.current.volume = (v ?? 0) / 100) 1228 }, [v]), 1229 u(`video`, { 1230 onClick: D, 1231 onMouseEnter: O, 1232 onMouseLeave: k, 1233 onMouseDown: ne, 1234 onMouseUp: A, 1235 src: fe, 1236 loop: d, 1237 ref: j, 1238 onSeeked: (e) => ee?.(e), 1239 onPause: (e) => te?.(e), 1240 onPlay: (e) => T?.(e), 1241 onEnded: (e) => E?.(e), 1242 autoPlay: 1243 ue.current || F === `on-mount` || (S && F === `on-viewport` && I), 1244 preload: ue.current 1245 ? `auto` 1246 : N && !b 1247 ? `metadata` 1248 : F !== `on-mount` && !se 1249 ? `none` 1250 : `metadata`, 1251 poster: 1252 s && !a && i === vt 1253 ? `/framer-assets/images/5ILRvlYXf72kHSVHqpa3snGzjU.jpg` 1254 : s && b 1255 ? b 1256 : void 0, 1257 onLoadedData: () => { 1258 const e = j.current 1259 e && 1260 (e.currentTime < 0.3 && L > 0 && le((L ?? 0) * 0.01), 1261 (ue.current || 1262 F === `on-mount` || 1263 (S && F === `on-viewport` && I)) && 1264 R()) 1265 }, 1266 controls: c, 1267 muted: N ? !0 : f, 1268 playsInline: p, 1269 style: { 1270 cursor: D ? `pointer` : `auto`, 1271 width: `100%`, 1272 height: `100%`, 1273 borderRadius: P, 1274 display: `block`, 1275 objectFit: h, 1276 backgroundColor: g, 1277 objectPosition: `50% 50%`, 1278 }, 1279 }) 1280 ) 1281 })), 1282 (dt.displayName = `Video`), 1283 (bt = [`cover`, `fill`, `contain`, `scale-down`, `none`]), 1284 O(dt, { 1285 srcType: { 1286 type: j.Enum, 1287 displaySegmentedControl: !0, 1288 title: `Source`, 1289 options: [`URL`, `Upload`],
1290 }, 1291 srcUrl: { 1292 type: j.String, 1293 title: `URL`, 1294 defaultValue: `/framer-assets/videos/MLWPbW1dUQawJLhhun3dBwpgJak.mp4`, 1295 hidden(e) { 1296 return e.srcType === `Upload` 1297 }, 1298 }, 1299 srcFile: { 1300 type: j.File, 1301 title: `File`, 1302 allowedFileTypes: [`mp4`, `webm`], 1303 description: `Only MP4 and WebM`, 1304 hidden(e) { 1305 return e.srcType === `URL` 1306 }, 1307 }, 1308 playing: { 1309 type: j.Boolean, 1310 title: `Playing`, 1311 enabledTitle: `Yes`, 1312 disabledTitle: `No`, 1313 }, 1314 ...st, 1315 posterEnabled: { 1316 type: j.Boolean, 1317 title: `Poster`, 1318 enabledTitle: `Yes`, 1319 disabledTitle: `No`, 1320 }, 1321 poster: { 1322 type: j.Image, 1323 title: `Image`, 1324 hidden: ({ posterEnabled: e }) => !e, 1325 description: `We recommend adding a poster. [Learn more](https://www.framer.com/help/articles/how-are-videos-optimized-in-framer/).`, 1326 }, 1327 backgroundColor: { 1328 type: j.Color, 1329 title: `Background`, 1330 defaultValue: `rgba(0,0,0,0)`, 1331 }, 1332 startTime: { 1333 title: `Start Time`, 1334 type: j.Number, 1335 min: 0, 1336 max: 100, 1337 step: 0.1, 1338 unit: `%`, 1339 }, 1340 loop: { 1341 type: j.Boolean, 1342 title: `Loop`, 1343 enabledTitle: `Yes`, 1344 disabledTitle: `No`, 1345 }, 1346 objectFit: { 1347 type: j.Enum, 1348 title: `Fit`, 1349 options: bt, 1350 optionTitles: bt.map(ht), 1351 }, 1352 controls: { 1353 type: j.Boolean, 1354 title: `Controls`, 1355 enabledTitle: `Show`, 1356 disabledTitle: `Hide`, 1357 defaultValue: !1, 1358 }, 1359 muted: { 1360 type: j.Boolean, 1361 title: `Muted`, 1362 enabledTitle: `Yes`, 1363 disabledTitle: `No`, 1364 }, 1365 volume: { 1366 type: j.Number, 1367 max: 100, 1368 min: 0, 1369 unit: `%`, 1370 hidden: ({ muted: e }) => e, 1371 defaultValue: 25, 1372 }, 1373 onEnd: { type: j.EventHandler }, 1374 onSeeked: { type: j.EventHandler }, 1375 onPause: { type: j.EventHandler }, 1376 onPlay: { type: j.EventHandler }, 1377 ...ze, 1378 }) 1379 }) 1380function St(e) { 1381 let t = se({ state: Object.freeze({ ...e }) }), 1382 n = (e) => { 1383 typeof e == `function` && (e = e(t.state)), 1384 (t.state = Object.freeze({ ...t.state, ...e })) 1385 }, 1386 r = typeof e == `object` ? Object.freeze({ ...e }) : e, 1387 i = new Set(), 1388 a = (e) => { 1389 typeof e == `function` && (e = e(r)), 1390 (r = typeof e == `object` ? Object.freeze({ ...r, ...e }) : e), 1391 i.forEach((e) => e(r)) 1392 } 1393 function s() { 1394 const [e, s] = c(r) 1395 return ( 1396 o(() => (i.add(s), () => i.delete(s)), []), 1397 F() === !0 ? (F(), [t.state, n]) : [e, a] 1398 ) 1399 } 1400 return s 1401} 1402var Ct = e(() => { 1403 n(), L() 1404 }), 1405 wt = e(() => { 1406 Ct() 1407 }) 1408async function Tt(e, t) { 1409 const n = await fetch(`${At}${e}`, { 1410 ...t, 1411 headers: { "Content-Type": `application/json`, ...(t?.headers || {}) }, 1412 }) 1413 if (!n.ok) throw Error(`Request failed: ${n.status}`) 1414 return n.json() 1415} 1416async function Et(e) { 1417 const t = await Tt(`/waitlist/validate-code/${encodeURIComponent(e)}`) 1418 return { valid: !!t?.data?.valid, inviterName: t?.data?.inviter_name || `` } 1419} 1420function Dt(e) { 1421 const { 1422 inviteParam: t, 1423 validTitle: n, 1424 validSubtitle: r, 1425 invalidSubtitle: i, 1426 fallbackName: a, 1427 titleFont: s, 1428 subtitleFont: d, 1429 codeFont: f, 1430 style: p, 1431 } = e, 1432 [m, h] = c(`loading`), 1433 [_, y] = c(``), 1434 [b, x] = kt() 1435 o(() => { 1436 if (l === void 0) return 1437 const e = new URLSearchParams(l.location.search).get(t || `invite`) 1438 if (!e) { 1439 h(`invalid`) 1440 return 1441 } 1442 x(e) 1443 let n = !1 1444 return ( 1445 Et(e) 1446 .then((e) => { 1447 n || 1448 (e.inviterName && y(e.inviterName), 1449 h(e.valid ? `valid` : `invalid`)) 1450 }) 1451 .catch(() => { 1452 n || h(`invalid`) 1453 }), 1454 () => { 1455 n = !0 1456 } 1457 ) 1458 }, []) 1459 const S = m === `valid`, 1460 C = m === `loading`, 1461 w = _ || a, 1462 ee = (b || `------`).toUpperCase() 1463 return ( 1464 Number(d?.fontSize ?? 16), 1465 Number(f?.fontSize ?? 18), 1466 g(`div`, { 1467 style: { 1468 position: `relative`, 1469 width: `100%`, 1470 height: `100%`, 1471 display: `flex`, 1472 alignItems: `center`, 1473 justifyContent: `space-between`, 1474 padding: `0px 40px 0px 40px`, 1475 }, 1476 children: [ 1477 u(`style`, { children: jt }), 1478 S && u(Ot, {}), 1479 u(`div`, { 1480 style: { 1481 position: `relative`, 1482 zIndex: 1, 1483 display: `flex`, 1484 flexDirection: `column`, 1485 gap: 8, 1486 flex: 1, 1487 minWidth: 0, 1488 }, 1489 children: C 1490 ? u(`div`, {}) 1491 : S 1492 ? g(v, { 1493 children: [ 1494 u(`div`, { 1495 style: { color: `#FFFFFF`, ...s }, 1496 children: n, 1497 }), 1498 g(`div`, { 1499 style: { color: `rgba(255,255,255,0.8)`, ...d }, 1500 children: [w, ` `, r], 1501 }), 1502 ], 1503 }) 1504 : g(`div`, { 1505 style: { color: `rgba(255,255,255,0.8)`, ...d }, 1506 children: [w, ` `, i], 1507 }), 1508 }), 1509 u(`div`, { 1510 style: { 1511 position: `relative`, 1512 zIndex: 1, 1513 padding: `10px 16px`, 1514 borderRadius: 999, 1515 border: `1px solid rgba(255,255,255,0.25)`, 1516 flexShrink: 0, 1517 ...(C ? Mt : { background: `rgba(0,0,0,0.06)` }), 1518 }, 1519 children: u(`span`, { 1520 style: { 1521 color: S ? `#FFFFFF` : `rgba(255,255,255,0.45)`, 1522 textDecoration: S || C ? `none` : `line-through`, 1523 ...f, 1524 }, 1525 children: ee, 1526 }), 1527 }), 1528 ], 1529 }) 1530 ) 1531} 1532function Ot() { 1533 const e = r(null), 1534 t = r(null) 1535 return ( 1536 o(() => { 1537 const n = e.current 1538 if (!n) return 1539 const r = n.getContext(`2d`) 1540 if (!r) return 1541 let i = l.devicePixelRatio || 1, 1542 a = 0, 1543 o = 0, 1544 s = () => { 1545 const e = n.getBoundingClientRect() 1546 ;(a = e.width), 1547 (o = e.height), 1548 (n.width = Math.floor(a * i)), 1549 (n.height = Math.floor(o * i)), 1550 r.setTransform(i, 0, 0, i, 0, 0) 1551 } 1552 s() 1553 const c = new ResizeObserver(s) 1554 c.observe(n) 1555 const u = [ 1556 `#FFD84D`, 1557 `#FF8A3D`, 1558 `#FF4D6D`, 1559 `#7B5BFF`, 1560 `#3DDC97`, 1561 `#FFFFFF`,
1562 `#B86BFF`, 1563 ], 1564 d = [], 1565 f = (e) => ({ 1566 x: Math.random() * (a || 600), 1567 y: e ? Math.random() * (o || 100) : -10 - Math.random() * 40, 1568 vx: (Math.random() - 0.5) * 0.4, 1569 vy: 0.3 + Math.random() * 0.7, 1570 size: 5 + Math.random() * 6, 1571 rot: Math.random() * Math.PI * 2, 1572 vr: (Math.random() - 0.5) * 0.08, 1573 color: u[Math.floor(Math.random() * u.length)], 1574 shape: Math.random() > 0.5 ? `rect` : `tri`, 1575 }) 1576 for (let e = 0; e < 36; e++) d.push(f(!0)) 1577 const p = () => { 1578 r.clearRect(0, 0, a, o) 1579 for (const e of d) 1580 (e.x += e.vx), 1581 (e.y += e.vy), 1582 (e.rot += e.vr), 1583 e.y > o + 20 && Object.assign(e, f(!1)), 1584 r.save(), 1585 r.translate(e.x, e.y), 1586 r.rotate(e.rot), 1587 (r.fillStyle = e.color), 1588 e.shape === `rect` 1589 ? r.fillRect(-e.size / 2, -e.size / 3, e.size, e.size / 1.5) 1590 : (r.beginPath(), 1591 r.moveTo(0, -e.size / 2), 1592 r.lineTo(e.size / 2, e.size / 2), 1593 r.lineTo(-e.size / 2, e.size / 2), 1594 r.closePath(), 1595 r.fill()), 1596 r.restore() 1597 t.current = requestAnimationFrame(p) 1598 } 1599 return ( 1600 (t.current = requestAnimationFrame(p)), 1601 () => { 1602 t.current != null && cancelAnimationFrame(t.current), c.disconnect() 1603 } 1604 ) 1605 }, []), 1606 u(`canvas`, { 1607 ref: e, 1608 style: { 1609 position: `absolute`, 1610 inset: 0, 1611 width: `100%`, 1612 height: `100%`, 1613 pointerEvents: `none`, 1614 zIndex: 0, 1615 }, 1616 }) 1617 ) 1618} 1619var kt, 1620 At, 1621 jt, 1622 Mt, 1623 Nt = e(() => { 1624 i(), 1625 _(), 1626 L(), 1627 n(), 1628 wt(), 1629 (kt = St(``)), 1630 (At = `https://cors-proxy-ten-virid.vercel.app/?proxy=https://api.extra.email`), 1631 (jt = ` 1632@keyframes inviteBannerShimmer { 1633 0% { background-position: 200% 0; } 1634 100% { background-position: -200% 0; } 1635} 1636`), 1637 (Mt = { 1638 background: `linear-gradient(90deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.22) 50%, rgba(255,255,255,0.08) 100%)`, 1639 backgroundSize: `200% 100%`, 1640 animation: `inviteBannerShimmer 1.4s ease-in-out infinite`, 1641 }), 1642 (Dt.defaultProps = { 1643 inviteParam: `invite`, 1644 validTitle: `You're in!`, 1645 validSubtitle: `has invited you to Extra`, 1646 invalidSubtitle: `has invited you to Extra but this code is no longer valid`, 1647 fallbackName: `Someone`, 1648 }), 1649 O(Dt, { 1650 inviteParam: { 1651 type: j.String, 1652 title: `URL Param`, 1653 defaultValue: `invite`, 1654 }, 1655 validTitle: { 1656 type: j.String, 1657 title: `Valid Title`, 1658 defaultValue: `You're in!`, 1659 }, 1660 validSubtitle: { 1661 type: j.String, 1662 title: `Valid Subtitle`, 1663 defaultValue: `has invited you to Extra`, 1664 }, 1665 invalidSubtitle: { 1666 type: j.String, 1667 title: `Invalid Subtitle`, 1668 defaultValue: `has invited you to Extra but this code is no longer valid`, 1669 displayTextArea: !0, 1670 }, 1671 fallbackName: { 1672 type: j.String, 1673 title: `Fallback Name`, 1674 defaultValue: `Someone`, 1675 }, 1676 titleFont: { 1677 type: j.Font, 1678 title: `Title Font`, 1679 controls: `extended`, 1680 defaultFontType: `sans-serif`, 1681 defaultValue: { fontSize: 28, variant: `Bold`, lineHeight: `1.1em` }, 1682 }, 1683 subtitleFont: { 1684 type: j.Font, 1685 title: `Subtitle Font`, 1686 controls: `extended`, 1687 defaultFontType: `sans-serif`, 1688 defaultValue: { 1689 fontSize: 16, 1690 variant: `Regular`, 1691 lineHeight: `1.3em`, 1692 }, 1693 }, 1694 codeFont: { 1695 type: j.Font, 1696 title: `Code Font`, 1697 controls: `extended`, 1698 defaultFontType: `sans-serif`, 1699 defaultValue: { 1700 fontSize: 18, 1701 variant: `Semibold`, 1702 lineHeight: `1em`, 1703 }, 1704 }, 1705 }) 1706 }) 1707function Pt(e) { 1708 return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim()) 1709} 1710function Ft(e) { 1711 const t = JSON.stringify({ flow: `invite`, inviteCode: e, attribution: {} }) 1712 return `https://accounts.google.com/o/oauth2/v2/auth?${new URLSearchParams({ client_id: Vt, redirect_uri: Ht, response_type: `code`, scope: Ut, access_type: `offline`, include_granted_scopes: `true`, state: t })}` 1713} 1714async function It(e, t) { 1715 const n = await fetch(`${Bt}${e}`, { 1716 ...t, 1717 headers: { "Content-Type": `application/json`, ...(t?.headers || {}) }, 1718 }) 1719 if (!n.ok) throw Error(`Request failed: ${n.status}`) 1720 return n.json() 1721} 1722async function Lt(e) { 1723 if ((await It(`/waitlist/validate-code/${e}`)).data?.valid) 1724 return { success: !0 } 1725 throw Error(`Invalid code`) 1726} 1727async function Rt(e) { 1728 if (!Pt(e)) throw Error(`Invalid email`) 1729 if ( 1730 (await It(`/waitlist/status`, { 1731 method: `POST`, 1732 body: JSON.stringify({ email: e }), 1733 }))?.data?.on_waitlist || 1734 ( 1735 await It(`/waitlist/signup`, { 1736 method: `POST`, 1737 body: JSON.stringify({ email: e, name: ``, source: `web` }), 1738 }) 1739 )?.data?.success 1740 ) 1741 return { success: !0 } 1742 throw Error(`Request failed`) 1743} 1744function zt({ 1745 placeholder: e = `Introduce your email...`, 1746 borderRadius: t = 20, 1747 fontSize: n = 32, 1748 borderColor: i = `rgba(0,0,0,0.08)`, 1749 activeBorderColor: a = `#FF9E6A`, 1750 errorBorderColor: s = `#FF6B6B`, 1751 backgroundColor: d = `#FFFFFF`, 1752 textColor: f = `#000000`, 1753 placeholderColor: p = `rgba(0,0,0,0.4)`, 1754 endpoint: m = `waitlist`, 1755 onSucess: h, 1756}) { 1757 const [_, v] = c(``), 1758 [y, b] = c(!1), 1759 [x, S] = c(`idle`), 1760 C = r(null), 1761 [w, ee] = kt() 1762 o(() => { 1763 w && m === `validate-code` && v(w) 1764 }, [w]) 1765 const te = async (e) => { 1766 e.preventDefault() 1767 try { 1768 if (x === `loading`) return 1769 S(`loading`), 1770 m === `waitlist` && (await Rt(_)).success && h(), 1771 m === `validate-code` && 1772 (await Lt(_)).success && 1773 (l.location.href = Ft(_)), 1774 S(`idle`) 1775 } catch { 1776 S(`error`), setTimeout(() => S(`idle`), 1e3) 1777 } 1778 }, 1779 T = x === `idle`, 1780 E = x === `error` 1781 return g(`form`, { 1782 onSubmit: te, 1783 style: { 1784 width: `100%`, 1785 height: `100%`, 1786 position: `relative`, 1787 borderRadius: t, 1788 border: E 1789 ? `2px solid ${s}` 1790 : y && T 1791 ? `2px solid ${a}` 1792 : `1px solid ${i}`, 1793 backgroundColor: d, 1794 overflow: `hidden`, 1795 display: `flex`, 1796 alignItems: `center`, 1797 justifyContent: `center`, 1798 transition: `border-color 0.2s ease, box-shadow 0.2s ease`,
1799 boxShadow: E ? `0 0 0 4px ${s}22` : y && T ? `0 0 0 4px ${a}22` : `none`, 1800 cursor: T ? `text` : `default`, 1801 }, 1802 children: [ 1803 u(`input`, { 1804 ref: C, 1805 type: m === `waitlist` ? `email` : `text`, 1806 value: _, 1807 placeholder: e, 1808 onChange: (e) => v(e.target.value), 1809 onFocus: () => b(!0), 1810 onBlur: () => b(!1), 1811 disabled: !T, 1812 style: { 1813 width: `100%`, 1814 height: `100%`, 1815 border: `none`, 1816 outline: `none`, 1817 background: `transparent`, 1818 fontFamily: `'Inter', -apple-system, BlinkMacSystemFont, sans-serif`, 1819 fontSize: n, 1820 lineHeight: 1.25, 1821 color: f, 1822 textAlign: `center`, 1823 padding: `0 32px`, 1824 caretColor: a, 1825 }, 1826 "aria-label": `Email input`, 1827 }), 1828 u(`style`, { 1829 children: ` 1830 input::placeholder { 1831 color: ${p}; 1832 opacity: 1; 1833 } 1834 `, 1835 }), 1836 ], 1837 }) 1838} 1839var Bt, 1840 Vt, 1841 Ht, 1842 Ut, 1843 Wt = e(() => { 1844 i(), 1845 _(), 1846 L(), 1847 n(), 1848 Nt(), 1849 (Bt = `https://cors-proxy-ten-virid.vercel.app/?proxy=https://api.extra.email`), 1850 (Vt = `1020069543124-0r5dnjfbqeffub5to3l5dqu7sptk31v1.apps.googleusercontent.com`), 1851 (Ht = `https://extra.email/oauth2callback`), 1852 (Ut = `https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email`), 1853 O(zt, { 1854 placeholder: { 1855 type: j.String, 1856 title: `Placeholder`, 1857 defaultValue: `Introduce your email...`, 1858 }, 1859 borderRadius: { 1860 type: j.Number, 1861 title: `Radius`, 1862 defaultValue: 20, 1863 min: 0, 1864 max: 60, 1865 step: 1, 1866 }, 1867 fontSize: { 1868 type: j.Number, 1869 title: `Font Size`, 1870 defaultValue: 16, 1871 min: 14, 1872 max: 64, 1873 step: 1, 1874 }, 1875 activeBorderColor: { 1876 type: j.Color, 1877 title: `Active Border`, 1878 defaultValue: `#FF9E6A`, 1879 }, 1880 errorBorderColor: { 1881 type: j.Color, 1882 title: `Error Border`, 1883 defaultValue: `#FF6B6B`, 1884 }, 1885 borderColor: { 1886 type: j.Color, 1887 title: `Border`, 1888 defaultValue: `rgba(0,0,0,0.08)`, 1889 }, 1890 backgroundColor: { 1891 type: j.Color, 1892 title: `Background`, 1893 defaultValue: `#FFFFFF`, 1894 }, 1895 textColor: { 1896 type: j.Color, 1897 title: `Text Color`, 1898 defaultValue: `#000000`, 1899 }, 1900 placeholderColor: { 1901 type: j.Color, 1902 title: `Placeholder`, 1903 defaultValue: `rgba(0,0,0,0.4)`, 1904 }, 1905 onSucess: { type: j.EventHandler }, 1906 endpoint: { 1907 type: j.Enum, 1908 defaultValue: `waitlist`, 1909 options: [`waitlist`, `validate-code`], 1910 optionTitles: [`Waitlist`, `Validate Code`], 1911 }, 1912 }) 1913 }) 1914function Gt(e, ...t) { 1915 const n = {} 1916 return t?.forEach((t) => t && Object.assign(n, e[t])), n 1917} 1918var Kt, 1919 qt, 1920 Jt, 1921 Yt, 1922 Xt, 1923 Zt, 1924 Qt, 1925 $t, 1926 en, 1927 tn, 1928 nn, 1929 rn, 1930 V, 1931 an, 1932 on = e(() => { 1933 _(), 1934 L(), 1935 te(), 1936 n(), 1937 Nt(), 1938 Wt(), 1939 (Kt = pe(Dt)), 1940 (qt = pe(zt)), 1941 (Jt = [`gRBXNOz9P`, `uY23qyflB`, `NlNPWaOFT`, `rp1OwFuDu`]), 1942 (Yt = `framer-NjXFf`), 1943 (Xt = { 1944 gRBXNOz9P: `framer-v-1sa6egx`, 1945 NlNPWaOFT: `framer-v-1o7x8i5`, 1946 rp1OwFuDu: `framer-v-7129h5`, 1947 uY23qyflB: `framer-v-1li9hut`, 1948 }), 1949 (Zt = { duration: 0, type: `tween` }), 1950 (Qt = (e, t) => `translateX(-50%) ${t}`), 1951 ($t = ({ value: e, children: n }) => { 1952 const r = h(C), 1953 i = e ?? r.transition, 1954 a = t(() => ({ ...r, transition: i }), [JSON.stringify(i)]) 1955 return u(C.Provider, { value: a, children: n }) 1956 }), 1957 (en = { 1958 "App Store": `gRBXNOz9P`, 1959 "Invite Code": `NlNPWaOFT`, 1960 "Validate Code": `rp1OwFuDu`, 1961 "Waitlist Success": `uY23qyflB`, 1962 }), 1963 (tn = S.create(s)), 1964 (nn = ({ height: e, id: t, width: n, ...r }) => ({ 1965 ...r, 1966 variant: en[r.variant] ?? r.variant ?? `gRBXNOz9P`, 1967 })), 1968 (rn = (e, t) => 1969 e.layoutDependency ? t.join(`-`) + e.layoutDependency : t.join(`-`)), 1970 (V = k( 1971 f((e, t) => { 1972 const n = r(null), 1973 i = t ?? n, 1974 a = b(), 1975 { activeLocale: o, setLocale: c } = ae(), 1976 l = re(), 1977 { style: d, className: f, layoutId: p, variant: m, ...h } = nn(e), 1978 { 1979 baseVariant: _, 1980 classNames: v, 1981 clearLoadingGesture: y, 1982 gestureHandlers: x, 1983 gestureVariant: C, 1984 isLoading: w, 1985 setGestureState: te, 1986 setVariant: T, 1987 variants: D, 1988 } = fe({ 1989 cycleOrder: Jt, 1990 defaultVariant: `gRBXNOz9P`, 1991 ref: i, 1992 variant: m, 1993 variantClassNames: Xt, 1994 }), 1995 O = rn(e, D), 1996 { activeVariantCallback: k, delay: ne } = N(_), 1997 j = k(async (...e) => { 1998 T(`uY23qyflB`) 1999 }), 2000 M = k(async (...e) => { 2001 T(`NlNPWaOFT`) 2002 }), 2003 ie = k(async (...e) => { 2004 T(`gRBXNOz9P`) 2005 }), 2006 oe = P(Yt), 2007 F = () => _ === `rp1OwFuDu`, 2008 I = () => ![`uY23qyflB`, `NlNPWaOFT`, `rp1OwFuDu`].includes(_), 2009 se = () => _ === `uY23qyflB`, 2010 L = () => _ === `NlNPWaOFT` 2011 return u(ee, { 2012 id: p ?? a, 2013 children: u(tn, { 2014 animate: D, 2015 initial: !1, 2016 children: u($t, { 2017 value: Zt, 2018 children: g(S.div, { 2019 ...h, 2020 ...x, 2021 className: P(oe, `framer-1sa6egx`, f, v),
2022 "data-framer-name": `App Store`, 2023 layoutDependency: O, 2024 layoutId: `gRBXNOz9P`, 2025 ref: i, 2026 style: { 2027 backgroundColor: `rgb(253, 253, 253)`, 2028 borderBottomLeftRadius: 40, 2029 borderBottomRightRadius: 40, 2030 borderTopLeftRadius: 40, 2031 borderTopRightRadius: 40, 2032 boxShadow: `0px 359px 143px 0px rgba(0, 0, 0, 0.04), 0px 202px 121px 0px rgba(0, 0, 0, 0.13), 0px 90px 90px 0px rgba(0, 0, 0, 0.22), 0px 22px 49px 0px rgba(0, 0, 0, 0.25)`, 2033 ...d, 2034 }, 2035 ...Gt( 2036 { 2037 NlNPWaOFT: { "data-framer-name": `Invite Code` }, 2038 rp1OwFuDu: { "data-framer-name": `Validate Code` }, 2039 uY23qyflB: { "data-framer-name": `Waitlist Success` }, 2040 }, 2041 _, 2042 C, 2043 ), 2044 children: [ 2045 F() && 2046 u(S.div, { 2047 className: `framer-1ikbmmn`, 2048 "data-framer-name": `You Are In`, 2049 layoutDependency: O, 2050 layoutId: `Zg3ZXjlAF`, 2051 style: { 2052 background: `linear-gradient(180deg, rgb(94, 0, 255) 0%, rgb(133, 62, 255) 93.24852195945947%)`, 2053 borderBottomLeftRadius: 28, 2054 borderBottomRightRadius: 28, 2055 borderTopLeftRadius: 28, 2056 borderTopRightRadius: 28, 2057 }, 2058 children: u(R, { 2059 children: u(E, { 2060 className: `framer-ttb9fs-container`, 2061 isAuthoredByUser: !0, 2062 layoutDependency: O, 2063 layoutId: `WMQE5tJh1-container`, 2064 nodeId: `WMQE5tJh1`, 2065 rendersWithMotion: !0, 2066 scopeId: `RvFNWSAU7`, 2067 children: u(Dt, { 2068 codeFont: { 2069 fontFamily: `"Inter", "Inter Placeholder", sans-serif`, 2070 fontSize: `24px`, 2071 fontStyle: `normal`, 2072 fontWeight: 500, 2073 letterSpacing: `0em`, 2074 lineHeight: `1em`, 2075 }, 2076 fallbackName: `Someone`, 2077 height: `100%`, 2078 id: `WMQE5tJh1`, 2079 invalidSubtitle: `has invited you to Extra but this code is no longer valid`, 2080 inviteParam: `invite`, 2081 layoutId: `WMQE5tJh1`, 2082 style: { height: `100%`, width: `100%` }, 2083 subtitleFont: { 2084 fontFamily: `"Inter", "Inter Placeholder", sans-serif`, 2085 fontSize: `16px`, 2086 fontStyle: `normal`, 2087 fontWeight: 500, 2088 letterSpacing: `0em`, 2089 lineHeight: `1.2em`, 2090 }, 2091 titleFont: { 2092 fontFamily: `"ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif`, 2093 fontSize: `28px`, 2094 fontStyle: `normal`, 2095 fontWeight: 600, 2096 letterSpacing: `0em`, 2097 lineHeight: `1em`, 2098 }, 2099 validSubtitle: `has invited you to Extra`, 2100 validTitle: `You're in!`, 2101 width: `100%`, 2102 }), 2103 }), 2104 }), 2105 }), 2106 g(S.div, { 2107 className: `framer-1vxhfto`, 2108 layoutDependency: O, 2109 layoutId: `MJj9KElZB`, 2110 children: [ 2111 g(S.div, { 2112 className: `framer-17ubovm`, 2113 "data-framer-name": `Header`, 2114 layoutDependency: O, 2115 layoutId: `bzEjntwLU`, 2116 style: { 2117 borderBottomLeftRadius: 28, 2118 borderBottomRightRadius: 28, 2119 borderTopLeftRadius: 28, 2120 borderTopRightRadius: 28, 2121 boxShadow: `0px 4px 34px 0px rgba(0, 0, 0, 0.1)`, 2122 }, 2123 children: [ 2124 u(le, { 2125 background: { 2126 alt: ``, 2127 fit: `fill`, 2128 intrinsicHeight: 806, 2129 intrinsicWidth: 1096, 2130 loading: A((l?.y || 0) + 16 + 0 + 0 + 0 + 0), 2131 pixelHeight: 806, 2132 pixelWidth: 1096, 2133 sizes: `548px`, 2134 src: `/framer-assets/images/LjDFwKB7KlJPgEKkFoNw2iRFA.3d51c7d4.webp`, 2135 srcSet: `/framer-assets/images/LjDFwKB7KlJPgEKkFoNw2iRFA.093128e1.webp 512w,/framer-assets/images/LjDFwKB7KlJPgEKkFoNw2iRFA.14f4d0fd.webp 1024w,/framer-assets/images/LjDFwKB7KlJPgEKkFoNw2iRFA.3d51c7d4.webp 1096w`, 2136 }, 2137 className: `framer-1lce3sz`, 2138 "data-framer-name": `Qr-code-scene`, 2139 layoutDependency: O, 2140 layoutId: `FPvyXMRie`, 2141 transformTemplate: Qt, 2142 ...Gt( 2143 { 2144 rp1OwFuDu: { 2145 background: { 2146 alt: ``, 2147 fit: `fill`, 2148 intrinsicHeight: 806, 2149 intrinsicWidth: 1096, 2150 loading: A( 2151 (l?.y || 0) + 16 + 128 + 0 + 0 + 0, 2152 ), 2153 pixelHeight: 806, 2154 pixelWidth: 1096, 2155 sizes: `548px`, 2156 src: `/framer-assets/images/LjDFwKB7KlJPgEKkFoNw2iRFA.3d51c7d4.webp`, 2157 srcSet: `/framer-assets/images/LjDFwKB7KlJPgEKkFoNw2iRFA.093128e1.webp 512w,/framer-assets/images/LjDFwKB7KlJPgEKkFoNw2iRFA.14f4d0fd.webp 1024w,/framer-assets/images/LjDFwKB7KlJPgEKkFoNw2iRFA.3d51c7d4.webp 1096w`, 2158 }, 2159 }, 2160 }, 2161 _, 2162 C, 2163 ), 2164 }), 2165 g(S.div, { 2166 className: `framer-zwomoq`, 2167 layoutDependency: O, 2168 layoutId: `bhhyETvWb`, 2169 children: [ 2170 u(z, { 2171 __fromCanvasComponent: !0, 2172 children: u(s, { 2173 children: u(S.p, { 2174 dir: `auto`, 2175 style: { 2176 "--font-selector": `Q1VTVE9NVjI7RVMgUmVib25kIEdyb3Rlc3F1ZSBUUklBTCBTZW1pYm9sZA==`, 2177 "--framer-font-family": `"ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif`, 2178 "--framer-font-size": `32px`,
2179 "--framer-font-weight": `600`, 2180 "--framer-letter-spacing": `-0.01em`, 2181 "--framer-line-height": `1em`, 2182 }, 2183 children: `Download`, 2184 }), 2185 }), 2186 className: `framer-1p9y3eo`, 2187 fonts: [ 2188 `CUSTOMV2;ES Rebond Grotesque TRIAL Semibold`, 2189 ], 2190 layoutDependency: O, 2191 layoutId: `Y9P3B_tPT`, 2192 style: { 2193 "--framer-link-text-color": `rgb(0, 153, 255)`, 2194 "--framer-link-text-decoration": `underline`, 2195 }, 2196 verticalAlignment: `top`, 2197 withExternalLayout: !0, 2198 }), 2199 g(S.div, { 2200 className: `framer-1ccckmb`, 2201 layoutDependency: O, 2202 layoutId: `uJmoBpfn0`, 2203 children: [ 2204 u(z, { 2205 __fromCanvasComponent: !0, 2206 children: u(s, { 2207 children: u(S.p, { 2208 dir: `auto`, 2209 style: { 2210 "--font-selector": `Q1VTVE9NVjI7RVMgUmVib25kIEdyb3Rlc3F1ZSBUUklBTCBTZW1pYm9sZA==`, 2211 "--framer-font-family": `"ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif`, 2212 "--framer-font-size": `32px`, 2213 "--framer-font-weight": `600`, 2214 "--framer-letter-spacing": `-0.01em`, 2215 "--framer-line-height": `1em`, 2216 }, 2217 children: `The`, 2218 }), 2219 }), 2220 className: `framer-wi41ls`, 2221 fonts: [ 2222 `CUSTOMV2;ES Rebond Grotesque TRIAL Semibold`, 2223 ], 2224 layoutDependency: O, 2225 layoutId: `NOLNjDME7`, 2226 style: { 2227 "--framer-link-text-color": `rgb(0, 153, 255)`, 2228 "--framer-link-text-decoration": `underline`, 2229 }, 2230 verticalAlignment: `top`, 2231 withExternalLayout: !0, 2232 }), 2233 u(le, { 2234 background: { 2235 alt: ``, 2236 fit: `fill`, 2237 intrinsicHeight: 32, 2238 intrinsicWidth: 32, 2239 loading: A( 2240 (l?.y || 0) + 2241 16 + 2242 0 + 2243 0 + 2244 0 + 2245 0 + 2246 32 + 2247 32 + 2248 0, 2249 ), 2250 pixelHeight: 64, 2251 pixelWidth: 64, 2252 sizes: `32px`, 2253 src: `/framer-assets/images/EAjmZyID9oceWpyiN1PF4HQaP4.1611d77b.png`, 2254 }, 2255 className: `framer-ffrxbc`, 2256 "data-framer-name": `App-store-logo`, 2257 layoutDependency: O, 2258 layoutId: `TN87g3iKz`, 2259 ...Gt( 2260 { 2261 rp1OwFuDu: { 2262 background: { 2263 alt: ``, 2264 fit: `fill`, 2265 intrinsicHeight: 32, 2266 intrinsicWidth: 32, 2267 loading: A( 2268 (l?.y || 0) + 2269 16 + 2270 128 + 2271 0 + 2272 0 + 2273 0 + 2274 32 + 2275 32 + 2276 0, 2277 ), 2278 pixelHeight: 64, 2279 pixelWidth: 64, 2280 sizes: `32px`, 2281 src: `/framer-assets/images/EAjmZyID9oceWpyiN1PF4HQaP4.1611d77b.png`, 2282 }, 2283 }, 2284 }, 2285 _, 2286 C, 2287 ), 2288 }), 2289 u(z, { 2290 __fromCanvasComponent: !0, 2291 children: u(s, { 2292 children: u(S.p, { 2293 dir: `auto`, 2294 style: { 2295 "--font-selector": `Q1VTVE9NVjI7RVMgUmVib25kIEdyb3Rlc3F1ZSBUUklBTCBTZW1pYm9sZA==`, 2296 "--framer-font-family": `"ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif`, 2297 "--framer-font-size": `32px`,
2298 "--framer-font-weight": `600`, 2299 "--framer-letter-spacing": `-0.01em`, 2300 "--framer-line-height": `1em`, 2301 }, 2302 children: `App`, 2303 }), 2304 }), 2305 className: `framer-18u724a`, 2306 fonts: [ 2307 `CUSTOMV2;ES Rebond Grotesque TRIAL Semibold`, 2308 ], 2309 layoutDependency: O, 2310 layoutId: `wrnNOWNCh`, 2311 style: { 2312 "--framer-link-text-color": `rgb(0, 153, 255)`, 2313 "--framer-link-text-decoration": `underline`, 2314 }, 2315 verticalAlignment: `top`, 2316 withExternalLayout: !0, 2317 }), 2318 ], 2319 }), 2320 ], 2321 }), 2322 ], 2323 }), 2324 g(S.div, { 2325 className: `framer-130e2ys`, 2326 "data-framer-name": `Body`, 2327 layoutDependency: O, 2328 layoutId: `CCrLyNvFB`, 2329 children: [ 2330 I() && 2331 g(S.div, { 2332 className: `framer-xvrf6v`, 2333 "data-framer-name": `Initial`, 2334 layoutDependency: O, 2335 layoutId: `vIn0w9SLo`, 2336 children: [ 2337 g(S.div, { 2338 className: `framer-18btr2i`, 2339 layoutDependency: O, 2340 layoutId: `szpEqE0kO`, 2341 children: [ 2342 u(z, { 2343 __fromCanvasComponent: !0, 2344 children: u(s, { 2345 children: u(S.p, { 2346 dir: `auto`, 2347 style: { 2348 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 2349 "--framer-font-size": `13px`, 2350 "--framer-font-weight": `600`, 2351 "--framer-text-alignment": `center`, 2352 "--framer-text-color": `var(--extracted-r6o4lv, rgba(22, 22, 23, 0.9))`, 2353 }, 2354 children: `Extra is invite only`, 2355 }), 2356 }), 2357 className: `framer-fv7d37`, 2358 fonts: [`Inter-SemiBold`], 2359 layoutDependency: O, 2360 layoutId: `aRNIaQo6T`, 2361 style: { 2362 "--extracted-r6o4lv": `rgba(22, 22, 23, 0.9)`, 2363 "--framer-link-text-color": `rgb(0, 153, 255)`, 2364 "--framer-link-text-decoration": `underline`, 2365 }, 2366 verticalAlignment: `top`, 2367 withExternalLayout: !0, 2368 }), 2369 g(S.div, { 2370 className: `framer-qp9rh8`, 2371 layoutDependency: O, 2372 layoutId: `LcF8kSO9B`, 2373 children: [ 2374 u(z, { 2375 __fromCanvasComponent: !0, 2376 children: u(s, { 2377 children: u(S.p, { 2378 dir: `auto`, 2379 style: { 2380 "--font-selector": `Q1VTVE9NVjI7RVMgUmVib25kIEdyb3Rlc3F1ZSBUUklBTCBTZW1pYm9sZA==`, 2381 "--framer-font-family": `"ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif`, 2382 "--framer-font-size": `32px`, 2383 "--framer-font-weight": `600`, 2384 "--framer-letter-spacing": `-0.01em`, 2385 "--framer-line-height": `1em`, 2386 "--framer-text-alignment": `center`, 2387 }, 2388 children: `Don't have an invite?`, 2389 }), 2390 }), 2391 className: `framer-1jeclye`, 2392 fonts: [ 2393 `CUSTOMV2;ES Rebond Grotesque TRIAL Semibold`, 2394 ], 2395 layoutDependency: O, 2396 layoutId: `lO9713Bo6`, 2397 style: { 2398 "--framer-link-text-color": `rgb(0, 153, 255)`, 2399 "--framer-link-text-decoration": `underline`, 2400 }, 2401 verticalAlignment: `top`, 2402 withExternalLayout: !0, 2403 }), 2404 u(z, { 2405 __fromCanvasComponent: !0, 2406 children: u(s, { 2407 children: u(S.p, { 2408 dir: `auto`, 2409 style: { 2410 "--font-selector": `Q1VTVE9NVjI7RVMgUmVib25kIEdyb3Rlc3F1ZSBUUklBTCBTZW1pYm9sZA==`, 2411 "--framer-font-family": `"ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif`, 2412 "--framer-font-size": `32px`,
2413 "--framer-font-weight": `600`, 2414 "--framer-letter-spacing": `-0.01em`, 2415 "--framer-line-height": `1em`, 2416 "--framer-text-alignment": `center`, 2417 }, 2418 children: u(S.span, { 2419 "data-text-fill": `true`, 2420 style: { 2421 backgroundImage: `linear-gradient(0deg, rgb(255, 91, 54) 0%, rgb(255, 146, 88) 100%)`, 2422 }, 2423 children: `Join our waitlist`, 2424 }), 2425 }), 2426 }), 2427 className: `framer-udajvh`, 2428 fonts: [ 2429 `CUSTOMV2;ES Rebond Grotesque TRIAL Semibold`, 2430 ], 2431 layoutDependency: O, 2432 layoutId: `IYJVKvM3X`, 2433 style: { 2434 "--framer-link-text-color": `rgb(0, 153, 255)`, 2435 "--framer-link-text-decoration": `underline`, 2436 }, 2437 verticalAlignment: `top`, 2438 withExternalLayout: !0, 2439 }), 2440 ], 2441 }), 2442 ], 2443 }), 2444 u(R, { 2445 children: u(E, { 2446 className: `framer-1bzhri9-container`, 2447 isAuthoredByUser: !0, 2448 layoutDependency: O, 2449 layoutId: `jvH1SIn7l-container`, 2450 nodeId: `jvH1SIn7l`, 2451 rendersWithMotion: !0, 2452 scopeId: `RvFNWSAU7`, 2453 children: u(zt, { 2454 activeBorderColor: `rgb(255, 158, 106)`, 2455 backgroundColor: `rgba(0, 0, 0, 0.05)`, 2456 borderColor: `rgba(0, 0, 0, 0)`, 2457 borderRadius: 50, 2458 endpoint: `waitlist`, 2459 errorBorderColor: `rgb(255, 107, 107)`, 2460 fontSize: 16, 2461 height: `100%`, 2462 id: `jvH1SIn7l`, 2463 layoutId: `jvH1SIn7l`, 2464 onSucess: j, 2465 placeholder: `Introduce your email`, 2466 placeholderColor: `rgba(0, 0, 0, 0.5)`, 2467 style: { 2468 height: `100%`, 2469 width: `100%`, 2470 }, 2471 textColor: `rgb(0, 0, 0)`, 2472 width: `100%`, 2473 }), 2474 }), 2475 }), 2476 g(S.div, { 2477 className: `framer-j0yacn`, 2478 layoutDependency: O, 2479 layoutId: `f5cu4TzZe`, 2480 children: [ 2481 u(z, { 2482 __fromCanvasComponent: !0, 2483 children: u(s, { 2484 children: u(S.p, { 2485 dir: `auto`, 2486 style: { 2487 "--font-selector": `SW50ZXItTWVkaXVt`, 2488 "--framer-font-size": `13px`, 2489 "--framer-font-weight": `500`, 2490 "--framer-letter-spacing": `0.01em`, 2491 "--framer-text-color": `var(--extracted-r6o4lv, rgba(22, 22, 23, 0.6))`, 2492 }, 2493 children: `Alredy have a code?`, 2494 }), 2495 }), 2496 className: `framer-17qa0a1`, 2497 fonts: [`Inter-Medium`], 2498 layoutDependency: O, 2499 layoutId: `RrxapFGnx`, 2500 style: { 2501 "--extracted-r6o4lv": `rgba(22, 22, 23, 0.6)`, 2502 "--framer-link-text-color": `rgb(0, 153, 255)`, 2503 "--framer-link-text-decoration": `underline`, 2504 }, 2505 verticalAlignment: `top`, 2506 withExternalLayout: !0, 2507 }), 2508 u(z, { 2509 __fromCanvasComponent: !0, 2510 children: u(s, { 2511 children: u(S.p, { 2512 dir: `auto`, 2513 style: { 2514 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 2515 "--framer-font-size": `13px`,
2516 "--framer-font-weight": `600`, 2517 "--framer-text-color": `var(--extracted-r6o4lv, rgba(22, 22, 23, 0.6))`, 2518 }, 2519 children: ` Enter to get access`, 2520 }), 2521 }), 2522 className: `framer-17aqy4m`, 2523 "data-highlight": !0, 2524 fonts: [`Inter-SemiBold`], 2525 layoutDependency: O, 2526 layoutId: `HulKVEX2C`, 2527 onTap: M, 2528 style: { 2529 "--extracted-r6o4lv": `rgba(22, 22, 23, 0.6)`, 2530 "--framer-link-text-color": `rgb(0, 153, 255)`, 2531 "--framer-link-text-decoration": `underline`, 2532 }, 2533 verticalAlignment: `top`, 2534 withExternalLayout: !0, 2535 }), 2536 ], 2537 }), 2538 ], 2539 }), 2540 se() && 2541 g(S.div, { 2542 className: `framer-l5fv4n`, 2543 "data-framer-name": `Waitlist Success`, 2544 layoutDependency: O, 2545 layoutId: `UZ59ZbQE4`, 2546 children: [ 2547 u(z, { 2548 __fromCanvasComponent: !0, 2549 children: u(s, { 2550 children: u(S.p, { 2551 dir: `auto`, 2552 style: { 2553 "--font-selector": `Q1VTVE9NVjI7RVMgUmVib25kIEdyb3Rlc3F1ZSBUUklBTCBTZW1pYm9sZA==`, 2554 "--framer-font-family": `"ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif`, 2555 "--framer-font-size": `32px`, 2556 "--framer-font-weight": `600`, 2557 "--framer-letter-spacing": `-0.01em`, 2558 "--framer-line-height": `1em`, 2559 "--framer-text-alignment": `center`, 2560 }, 2561 children: `You’re on the waitlist!`, 2562 }), 2563 }), 2564 className: `framer-1p4af7w`, 2565 fonts: [ 2566 `CUSTOMV2;ES Rebond Grotesque TRIAL Semibold`, 2567 ], 2568 layoutDependency: O, 2569 layoutId: `mGpWfjmmk`, 2570 style: { 2571 "--framer-link-text-color": `rgb(0, 153, 255)`, 2572 "--framer-link-text-decoration": `underline`, 2573 }, 2574 verticalAlignment: `top`, 2575 withExternalLayout: !0, 2576 }), 2577 u(z, { 2578 __fromCanvasComponent: !0, 2579 children: u(s, { 2580 children: u(S.p, { 2581 dir: `auto`, 2582 style: { 2583 "--font-selector": `SW50ZXItTWVkaXVt`, 2584 "--framer-font-weight": `500`, 2585 "--framer-line-height": `1.4em`, 2586 "--framer-text-alignment": `center`, 2587 "--framer-text-color": `var(--extracted-r6o4lv, rgba(22, 22, 23, 0.6))`, 2588 }, 2589 children: `Download the app now so you don’t miss your invite—we’ll notify you as soon as it’s ready.`, 2590 }), 2591 }), 2592 className: `framer-138g88t`, 2593 fonts: [`Inter-Medium`], 2594 layoutDependency: O, 2595 layoutId: `ULdm8sqNh`, 2596 style: { 2597 "--extracted-r6o4lv": `rgba(22, 22, 23, 0.6)`, 2598 "--framer-link-text-color": `rgb(0, 153, 255)`, 2599 "--framer-link-text-decoration": `underline`, 2600 }, 2601 verticalAlignment: `top`, 2602 withExternalLayout: !0, 2603 }), 2604 ], 2605 }), 2606 L() && 2607 g(S.div, { 2608 className: `framer-1rtfwmb`, 2609 "data-framer-name": `Invite code`, 2610 layoutDependency: O, 2611 layoutId: `D_LWPCw6P`, 2612 style: { 2613 backgroundColor: `rgb(255, 255, 255)`, 2614 }, 2615 children: [ 2616 g(S.div, { 2617 className: `framer-15q5s5x`, 2618 layoutDependency: O, 2619 layoutId: `c4uY0_xPJ`, 2620 children: [ 2621 u(z, { 2622 __fromCanvasComponent: !0, 2623 children: u(s, { 2624 children: u(S.p, { 2625 dir: `auto`, 2626 style: { 2627 "--font-selector": `Q1VTVE9NVjI7RVMgUmVib25kIEdyb3Rlc3F1ZSBUUklBTCBTZW1pYm9sZA==`, 2628 "--framer-font-family": `"ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif`, 2629 "--framer-font-size": `32px`,
2630 "--framer-font-weight": `600`, 2631 "--framer-letter-spacing": `-0.01em`, 2632 "--framer-line-height": `1em`, 2633 "--framer-text-alignment": `center`, 2634 }, 2635 children: `Enter invite code`, 2636 }), 2637 }), 2638 className: `framer-1yfgbva`, 2639 fonts: [ 2640 `CUSTOMV2;ES Rebond Grotesque TRIAL Semibold`, 2641 ], 2642 layoutDependency: O, 2643 layoutId: `ha54sEI3A`, 2644 style: { 2645 "--framer-link-text-color": `rgb(0, 153, 255)`, 2646 "--framer-link-text-decoration": `underline`, 2647 }, 2648 verticalAlignment: `top`, 2649 withExternalLayout: !0, 2650 }), 2651 u(R, { 2652 children: u(E, { 2653 className: `framer-1r23z4c-container`, 2654 isAuthoredByUser: !0, 2655 layoutDependency: O, 2656 layoutId: `Axb_bj0fk-container`, 2657 nodeId: `Axb_bj0fk`, 2658 rendersWithMotion: !0, 2659 scopeId: `RvFNWSAU7`, 2660 children: u(zt, { 2661 activeBorderColor: `rgb(255, 158, 106)`, 2662 backgroundColor: `rgba(0, 0, 0, 0.05)`, 2663 borderColor: `rgba(0, 0, 0, 0)`, 2664 borderRadius: 50, 2665 endpoint: `validate-code`, 2666 errorBorderColor: `rgb(255, 107, 107)`, 2667 fontSize: 16, 2668 height: `100%`, 2669 id: `Axb_bj0fk`, 2670 layoutId: `Axb_bj0fk`, 2671 placeholder: `Enter invite code`, 2672 placeholderColor: `rgba(0, 0, 0, 0.5)`, 2673 style: { 2674 height: `100%`, 2675 width: `100%`, 2676 }, 2677 textColor: `rgb(0, 0, 0)`, 2678 width: `100%`, 2679 }), 2680 }), 2681 }), 2682 ], 2683 }), 2684 g(S.div, { 2685 className: `framer-1iz294u`, 2686 layoutDependency: O, 2687 layoutId: `UgTPXWmPK`, 2688 children: [ 2689 u(z, { 2690 __fromCanvasComponent: !0, 2691 children: u(s, { 2692 children: u(S.p, { 2693 dir: `auto`, 2694 style: { 2695 "--font-selector": `SW50ZXItTWVkaXVt`, 2696 "--framer-font-size": `13px`, 2697 "--framer-font-weight": `500`, 2698 "--framer-letter-spacing": `0.01em`, 2699 "--framer-text-color": `var(--extracted-r6o4lv, rgba(22, 22, 23, 0.6))`, 2700 }, 2701 children: `Don’t have a code?`, 2702 }), 2703 }), 2704 className: `framer-1j2wzz3`, 2705 fonts: [`Inter-Medium`], 2706 layoutDependency: O, 2707 layoutId: `dFlgJzNz3`, 2708 style: { 2709 "--extracted-r6o4lv": `rgba(22, 22, 23, 0.6)`, 2710 "--framer-link-text-color": `rgb(0, 153, 255)`, 2711 "--framer-link-text-decoration": `underline`, 2712 }, 2713 verticalAlignment: `top`, 2714 withExternalLayout: !0, 2715 }), 2716 u(z, { 2717 __fromCanvasComponent: !0, 2718 children: u(s, { 2719 children: u(S.p, { 2720 dir: `auto`, 2721 style: { 2722 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 2723 "--framer-font-size": `13px`, 2724 "--framer-font-weight": `600`, 2725 "--framer-text-color": `var(--extracted-r6o4lv, rgba(22, 22, 23, 0.6))`, 2726 }, 2727 children: ` Join the waitlist`, 2728 }), 2729 }), 2730 className: `framer-3dj7vt`, 2731 "data-highlight": !0, 2732 fonts: [`Inter-SemiBold`], 2733 layoutDependency: O, 2734 layoutId: `ZGoOFC8i5`, 2735 onTap: ie, 2736 style: { 2737 "--extracted-r6o4lv": `rgba(22, 22, 23, 0.6)`, 2738 "--framer-link-text-color": `rgb(0, 153, 255)`, 2739 "--framer-link-text-decoration": `underline`, 2740 }, 2741 verticalAlignment: `top`, 2742 withExternalLayout: !0, 2743 }), 2744 ], 2745 }), 2746 ], 2747 }), 2748 F() && 2749 g(S.div, { 2750 className: `framer-1hh336h`, 2751 "data-framer-name": `Validate Code`, 2752 layoutDependency: O, 2753 layoutId: `TzZ6c9KHq`, 2754 children: [ 2755 u(z, { 2756 __fromCanvasComponent: !0, 2757 children: u(s, { 2758 children: u(S.p, { 2759 dir: `auto`, 2760 style: { 2761 "--font-selector": `SW50ZXItTWVkaXVt`, 2762 "--framer-font-size": `13px`,
2763 "--framer-font-weight": `500`, 2764 "--framer-letter-spacing": `0.01em`, 2765 "--framer-text-color": `var(--extracted-r6o4lv, rgba(22, 22, 23, 0.6))`, 2766 }, 2767 children: `Not on IOS?`, 2768 }), 2769 }), 2770 className: `framer-a0aok4`, 2771 fonts: [`Inter-Medium`], 2772 layoutDependency: O, 2773 layoutId: `rotFrYp5v`, 2774 style: { 2775 "--extracted-r6o4lv": `rgba(22, 22, 23, 0.6)`, 2776 "--framer-link-text-color": `rgb(0, 153, 255)`, 2777 "--framer-link-text-decoration": `underline`, 2778 }, 2779 verticalAlignment: `top`, 2780 withExternalLayout: !0, 2781 }), 2782 u(z, { 2783 __fromCanvasComponent: !0, 2784 children: u(s, { 2785 children: u(S.p, { 2786 dir: `auto`, 2787 style: { 2788 "--font-selector": `SW50ZXItU2VtaUJvbGQ=`, 2789 "--framer-font-size": `13px`, 2790 "--framer-font-weight": `600`, 2791 "--framer-text-color": `var(--extracted-r6o4lv, rgba(22, 22, 23, 0.6))`, 2792 }, 2793 children: ` Signup on Web`, 2794 }), 2795 }), 2796 className: `framer-wwd4ii`, 2797 "data-highlight": !0, 2798 fonts: [`Inter-SemiBold`], 2799 layoutDependency: O, 2800 layoutId: `yYD76DL5q`, 2801 onTap: M, 2802 style: { 2803 "--extracted-r6o4lv": `rgba(22, 22, 23, 0.6)`, 2804 "--framer-link-text-color": `rgb(0, 153, 255)`, 2805 "--framer-link-text-decoration": `underline`, 2806 }, 2807 verticalAlignment: `top`, 2808 withExternalLayout: !0, 2809 }), 2810 ], 2811 }), 2812 ], 2813 }), 2814 ], 2815 }), 2816 ], 2817 }), 2818 }), 2819 }), 2820 }) 2821 }), 2822 [ 2823 `@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }`, 2824 `.framer-NjXFf.framer-1h2hswr, .framer-NjXFf .framer-1h2hswr { display: block; }`, 2825 `.framer-NjXFf.framer-1sa6egx { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; min-height: 670px; overflow: var(--overflow-clip-fallback, clip); padding: 16px; position: relative; width: 580px; will-change: var(--framer-will-change-override, transform); }`, 2826 `.framer-NjXFf .framer-1ikbmmn { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 30px; height: 112px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }`, 2827 `.framer-NjXFf .framer-ttb9fs-container { flex: 1 0 0px; height: 100%; position: relative; width: 1px; }`, 2828 `.framer-NjXFf .framer-1vxhfto { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }`, 2829 `.framer-NjXFf .framer-17ubovm { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: 403px; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); }`, 2830 `.framer-NjXFf .framer-1lce3sz { aspect-ratio: 1.3598014888337469 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 403px); left: 50%; overflow: visible; position: absolute; top: 0px; width: 548px; z-index: 0; }`, 2831 `.framer-NjXFf .framer-zwomoq { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 32px 12px 0px 0px; position: relative; width: 1px; }`, 2832 `.framer-NjXFf .framer-1p9y3eo, .framer-NjXFf .framer-wi41ls, .framer-NjXFf .framer-18u724a, .framer-NjXFf .framer-17qa0a1, .framer-NjXFf .framer-1j2wzz3, .framer-NjXFf .framer-a0aok4 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }`, 2833 `.framer-NjXFf .framer-1ccckmb { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }`, 2834 `.framer-NjXFf .framer-ffrxbc { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 32px); overflow: visible; position: relative; width: 32px; }`, 2835 `.framer-NjXFf .framer-130e2ys { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }`, 2836 `.framer-NjXFf .framer-xvrf6v { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; max-width: 340px; overflow: visible; padding: 0px; position: relative; width: 1px; }`, 2837 `.framer-NjXFf .framer-18btr2i { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 2px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }`, 2838 `.framer-NjXFf .framer-fv7d37, .framer-NjXFf .framer-1jeclye, .framer-NjXFf .framer-udajvh, .framer-NjXFf .framer-1p4af7w, .framer-NjXFf .framer-1yfgbva { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }`, 2839 `.framer-NjXFf .framer-qp9rh8 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }`, 2840 `.framer-NjXFf .framer-1bzhri9-container, .framer-NjXFf .framer-1r23z4c-container { flex: none; height: 56px; position: relative; width: 100%; }`, 2841 `.framer-NjXFf .framer-j0yacn, .framer-NjXFf .framer-1iz294u { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }`, 2842 `.framer-NjXFf .framer-17aqy4m, .framer-NjXFf .framer-3dj7vt, .framer-NjXFf .framer-wwd4ii { cursor: pointer; flex: none; height: auto; position: relative; white-space: pre; width: auto; }`, 2843 `.framer-NjXFf .framer-l5fv4n { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 18px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1px; }`, 2844 `.framer-NjXFf .framer-138g88t { flex: none; height: auto; max-width: 288px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }`, 2845 `.framer-NjXFf .framer-1rtfwmb { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 43px; height: min-content; justify-content: center; max-width: 340px; overflow: visible; padding: 0px; position: relative; width: 1px; }`, 2846 `.framer-NjXFf .framer-15q5s5x { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }`,
2847 `.framer-NjXFf .framer-1hh336h { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }`, 2848 `.framer-NjXFf.framer-v-1o7x8i5 .framer-15q5s5x, .framer-NjXFf.framer-v-7129h5 .framer-1ikbmmn { order: 0; }`, 2849 `.framer-NjXFf.framer-v-1o7x8i5 .framer-1iz294u { order: 1; }`, 2850 `.framer-NjXFf.framer-v-7129h5.framer-1sa6egx { height: 611px; min-height: unset; }`, 2851 `.framer-NjXFf.framer-v-7129h5 .framer-1vxhfto { order: 2; }`, 2852 ], 2853 `framer-NjXFf`, 2854 )), 2855 (an = V), 2856 (V.displayName = `Modal`), 2857 (V.defaultProps = { height: 670, width: 580 }), 2858 O(V, { 2859 variant: { 2860 options: [`gRBXNOz9P`, `uY23qyflB`, `NlNPWaOFT`, `rp1OwFuDu`], 2861 optionTitles: [ 2862 `App Store`, 2863 `Waitlist Success`, 2864 `Invite Code`, 2865 `Validate Code`, 2866 ], 2867 title: `Variant`, 2868 type: j.Enum, 2869 }, 2870 }), 2871 T( 2872 V, 2873 [ 2874 { 2875 explicitInter: !0, 2876 fonts: [ 2877 { 2878 cssFamilyName: `ES Rebond Grotesque TRIAL Semibold`, 2879 source: `custom`, 2880 style: `normal`, 2881 uiFamilyName: `ES Rebond Grotesque TRIAL`, 2882 url: `/framer-assets/fonts/QUecpWp8V2fMxLOCOTwkfc2vk.woff2`, 2883 weight: `600`, 2884 }, 2885 { 2886 cssFamilyName: `Inter`, 2887 source: `framer`, 2888 style: `normal`, 2889 uiFamilyName: `Inter`, 2890 unicodeRange: `U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F`, 2891 url: `/framer-assets/fonts/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2`, 2892 weight: `500`, 2893 }, 2894 { 2895 cssFamilyName: `Inter`, 2896 source: `framer`, 2897 style: `normal`, 2898 uiFamilyName: `Inter`, 2899 unicodeRange: `U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116`, 2900 url: `/framer-assets/fonts/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2`, 2901 weight: `500`, 2902 }, 2903 { 2904 cssFamilyName: `Inter`, 2905 source: `framer`, 2906 style: `normal`, 2907 uiFamilyName: `Inter`, 2908 unicodeRange: `U+1F00-1FFF`, 2909 url: `/framer-assets/fonts/6mJuEAguuIuMog10gGvH5d3cl8.woff2`, 2910 weight: `500`, 2911 }, 2912 { 2913 cssFamilyName: `Inter`, 2914 source: `framer`, 2915 style: `normal`, 2916 uiFamilyName: `Inter`, 2917 unicodeRange: `U+0370-03FF`, 2918 url: `/framer-assets/fonts/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2`, 2919 weight: `500`, 2920 }, 2921 { 2922 cssFamilyName: `Inter`, 2923 source: `framer`, 2924 style: `normal`, 2925 uiFamilyName: `Inter`, 2926 unicodeRange: `U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF`, 2927 url: `/framer-assets/fonts/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2`, 2928 weight: `500`, 2929 }, 2930 { 2931 cssFamilyName: `Inter`, 2932 source: `framer`, 2933 style: `normal`, 2934 uiFamilyName: `Inter`, 2935 unicodeRange: `U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD`, 2936 url: `/framer-assets/fonts/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2`, 2937 weight: `500`, 2938 }, 2939 { 2940 cssFamilyName: `Inter`, 2941 source: `framer`, 2942 style: `normal`, 2943 uiFamilyName: `Inter`, 2944 unicodeRange: `U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB`, 2945 url: `/framer-assets/fonts/DolVirEGb34pEXEp8t8FQBSK4.woff2`, 2946 weight: `500`, 2947 }, 2948 { 2949 cssFamilyName: `Inter`, 2950 source: `framer`, 2951 style: `normal`, 2952 uiFamilyName: `Inter`, 2953 unicodeRange: `U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F`, 2954 url: `/framer-assets/fonts/hyOgCu0Xnghbimh0pE8QTvtt2AU.woff2`, 2955 weight: `600`, 2956 }, 2957 { 2958 cssFamilyName: `Inter`, 2959 source: `framer`, 2960 style: `normal`, 2961 uiFamilyName: `Inter`, 2962 unicodeRange: `U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116`, 2963 url: `/framer-assets/fonts/NeGmSOXrPBfEFIy5YZeHq17LEDA.woff2`, 2964 weight: `600`, 2965 }, 2966 { 2967 cssFamilyName: `Inter`, 2968 source: `framer`, 2969 style: `normal`, 2970 uiFamilyName: `Inter`, 2971 unicodeRange: `U+1F00-1FFF`, 2972 url: `/framer-assets/fonts/oYaAX5himiTPYuN8vLWnqBbfD2s.woff2`, 2973 weight: `600`, 2974 }, 2975 { 2976 cssFamilyName: `Inter`, 2977 source: `framer`, 2978 style: `normal`, 2979 uiFamilyName: `Inter`, 2980 unicodeRange: `U+0370-03FF`, 2981 url: `/framer-assets/fonts/lEJLP4R0yuCaMCjSXYHtJw72M.woff2`, 2982 weight: `600`, 2983 }, 2984 { 2985 cssFamilyName: `Inter`, 2986 source: `framer`, 2987 style: `normal`, 2988 uiFamilyName: `Inter`, 2989 unicodeRange: `U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF`,
2990 url: `/framer-assets/fonts/cRJyLNuTJR5jbyKzGi33wU9cqIQ.woff2`, 2991 weight: `600`, 2992 }, 2993 { 2994 cssFamilyName: `Inter`, 2995 source: `framer`, 2996 style: `normal`, 2997 uiFamilyName: `Inter`, 2998 unicodeRange: `U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD`, 2999 url: `/framer-assets/fonts/yDtI2UI8XcEg1W2je9XPN3Noo.woff2`, 3000 weight: `600`, 3001 }, 3002 { 3003 cssFamilyName: `Inter`, 3004 source: `framer`, 3005 style: `normal`, 3006 uiFamilyName: `Inter`, 3007 unicodeRange: `U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB`, 3008 url: `/framer-assets/fonts/A0Wcc7NgXMjUuFdquHDrIZpzZw0.woff2`, 3009 weight: `600`, 3010 }, 3011 ], 3012 }, 3013 ...Kt, 3014 ...qt, 3015 ], 3016 { supportsExplicitInterCodegen: !0 }, 3017 ) 3018 }), 3019 sn, 3020 cn, 3021 ln, 3022 un = e(() => { 3023 L(), 3024 D.loadFonts([`CUSTOMV2;ES Rebond Grotesque TRIAL Semibold`]), 3025 (sn = [ 3026 { 3027 explicitInter: !0, 3028 fonts: [ 3029 { 3030 cssFamilyName: `ES Rebond Grotesque TRIAL Semibold`, 3031 source: `custom`, 3032 style: `normal`, 3033 uiFamilyName: `ES Rebond Grotesque TRIAL`, 3034 url: `/framer-assets/fonts/QUecpWp8V2fMxLOCOTwkfc2vk.woff2`, 3035 weight: `600`, 3036 }, 3037 ], 3038 }, 3039 ]), 3040 (cn = [ 3041 `.framer-wNaBx .framer-styles-preset-1d0tfck:not(.rich-text-wrapper), .framer-wNaBx .framer-styles-preset-1d0tfck.rich-text-wrapper h1 { --framer-font-family: "ES Rebond Grotesque TRIAL Semibold", "ES Rebond Grotesque TRIAL Semibold Placeholder", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 72px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-letter-spacing: -0.01em; --framer-line-height: 0.9em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: #ffffff; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }`, 3042 ]), 3043 (ln = `framer-wNaBx`) 3044 }), 3045 dn, 3046 fn, 3047 pn, 3048 mn, 3049 hn, 3050 gn = e(() => { 3051 _(), 3052 L(), 3053 n(), 3054 (dn = `url('data:image/svg+xml,<svg display="block" role="presentation" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M 3.814 0.377 C 2.148 -0.652 0 0.547 0 2.504 L 0 14.027 C 0 15.985 2.148 17.183 3.814 16.154 L 13.142 10.393 C 14.724 9.416 14.724 7.116 13.142 6.139 Z" fill="var(--1btux94, rgb(0, 0, 0))" height="16.53111802637738px" id="nhN_954ld" transform="translate(5 4)" width="14.328499999999941px"/></svg>') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)`), 3055 (fn = f((e, t) => { 3056 const { animated: n, layoutId: r, children: i, ...a } = e 3057 return n 3058 ? u(S.div, { ...a, layoutId: r, ref: t }) 3059 : u(`div`, { ...a, ref: t }) 3060 })), 3061 (pn = ({ fill: e, height: t, id: n, width: r, ...i }) => ({ 3062 ...i, 3063 qviYQoCyK: e ?? i.qviYQoCyK ?? `rgb(0, 0, 0)`, 3064 })), 3065 (mn = k( 3066 f((e, t) => { 3067 const { 3068 style: n, 3069 className: r, 3070 layoutId: i, 3071 variant: a, 3072 qviYQoCyK: o, 3073 ...s 3074 } = pn(e) 3075 return u(fn, { 3076 ...s, 3077 className: P(`framer-t8LxZ`, r), 3078 layoutId: i, 3079 ref: t, 3080 style: { "--1btux94": o, ...n }, 3081 }) 3082 }), 3083 [ 3084 `.framer-t8LxZ { -webkit-mask: ${dn}; aspect-ratio: 1; background-color: var(--1btux94); mask: ${dn}; width: 24px; }`, 3085 ], 3086 `framer-t8LxZ`, 3087 )), 3088 (mn.displayName = `Play`), 3089 (hn = mn), 3090 O(mn, { 3091 qviYQoCyK: { 3092 defaultValue: `rgb(0, 0, 0)`, 3093 hidden: !1, 3094 title: `Fill`, 3095 type: j.Color, 3096 }, 3097 }) 3098 }) 3099function _n(e, t) { 3100 return { 3101 description: `Extra understands what matters to you - summarizing your day, organizing your inbox around your life, surfacing what needs action, and quietly handling the noise.`, 3102 favicon: `/framer-assets/images/4TmZPf8zyjelM7fyNcFXww3lcg.png`, 3103 robots: `max-image-preview:large`, 3104 socialImage: `/framer-assets/images/sSFazJBPcQSVwKWcVC8l7Rygtr8.webp`, 3105 title: `Extra - Your life's inbox`, 3106 } 3107} 3108var vn = e(() => {}) 3109function yn(e, t) { 3110 return { 3111 breakpoints: [ 3112 { hash: `72rtr7`, mediaQuery: `(min-width: 1000px)` }, 3113 { 3114 hash: `v0nwp0`, 3115 mediaQuery: `(min-width: 810px) and (max-width: 999.98px)`, 3116 }, 3117 { hash: `12k67ir`, mediaQuery: `(max-width: 809.98px)` }, 3118 ], 3119 description: _n(e, t).description, 3120 elements: { 3121 ALaRBLzl9: `reveal-phone-mockup`, 3122 AZ5lLqhM9: `send-button-scale`, 3123 BoegwibEN: `scale-down-phone-date`, 3124 BWpLGj9zr: `mobile-v-swap-2`, 3125 CUJWmVzNZ: `mobile-v-transform-scanner`, 3126 DD2eDpYRP: `categories-opacity`, 3127 DY7qbGmUu: `third-swap`, 3128 efVubQmrx: `mobile-v-swap-3`, 3129 ExfRvczV6: `mobile-v-scale-down-phone-date`, 3130 fYXzSYoFL: `mobile-scanner-line`, 3131 gto2AlH9a: `first-swap`, 3132 gtR4bbMmo: `mobile-v-translate-mockup`, 3133 HNHSkKeEs: `scroll-button-text-effect`, 3134 hRehzxMsA: `phone-typewritter`, 3135 hWAIP7G2T: `mobile-v-swap-1`, 3136 hYSsSwc6I: `translate-mockup`, 3137 J9KaSTV42: `inbox-analysis`, 3138 jEdwh7b68: `scroll-button-text-opacity`, 3139 kOSP9cZxZ: `pill-trigger`, 3140 lk939sFpA: `categories`, 3141 m6zUPJQC1: `scroll-attached`, 3142 MmUGisD4C: `text-opacity`, 3143 r1_RF_XIE: `t-target`, 3144 r3rXcxbpp: `attach-target`, 3145 rI6Q8VESl: `change-yellow-section`, 3146 rtgJpCSyP: `end-send-section`, 3147 rV61bbCMj: `scroll-1`, 3148 SO7n1p303: `second-swap`, 3149 suGwtSNFi: `end-cleanup-section`, 3150 UI9w9RhsI: `mobil-v-categories-section`, 3151 wMcsqMzVG: `scanner-line`, 3152 xNJqlBSzT: `today-feed`, 3153 yGx6nO_a0: `mobile-v-emojis-section`, 3154 ZM1PcInXH: `swap-mockup`, 3155 }, 3156 robots: `max-image-preview:large`, 3157 serializationId: `framer-IPfk1`, 3158 title: _n(e, t).title || `Home`, 3159 viewport: `width=device-width`, 3160 } 3161} 3162var bn, 3163 xn, 3164 Sn = e(() => { 3165 vn(), 3166 (bn = 1), 3167 (xn = { 3168 exports: { 3169 default: { 3170 type: `function`, 3171 annotations: { framerContractVersion: `1` }, 3172 }, 3173 metadataVersion: { 3174 type: `variable`, 3175 annotations: { framerContractVersion: `1` }, 3176 }, 3177 __FramerMetadata__: { type: `variable` }, 3178 }, 3179 }) 3180 }) 3181function Cn(e) { 3182 return new DataView(e.buffer, e.byteOffset, e.byteLength) 3183} 3184function H(e, ...t) { 3185 if (!e) 3186 throw Error(`Assertion Error` + (t.length > 0 ? `: ` + t.join(` `) : ``)) 3187} 3188function wn(e) { 3189 throw Error(`Unexpected value: ${e}`) 3190} 3191function U(e, t, n, r) { 3192 H(e >= t, e, `outside lower bound for`, r), 3193 H(e <= n, e, `outside upper bound for`, r) 3194} 3195function Tn(e) { 3196 return typeof e == `string` 3197} 3198function W(e) { 3199 return Number.isFinite(e) 3200} 3201function En(e) { 3202 return e === null 3203} 3204function Dn(e) { 3205 if (En(e)) return 0 3206 switch (e.type) { 3207 case j.Array: 3208 return 1 3209 case j.Boolean: 3210 return 2 3211 case j.Color: 3212 return 3 3213 case j.Date: 3214 return 4 3215 case j.Enum: 3216 return 5 3217 case j.File: 3218 return 6 3219 case j.ResponsiveImage: 3220 return 10 3221 case j.Link: 3222 return 7 3223 case j.Number: 3224 return 8 3225 case j.Object: 3226 return 9 3227 case j.RichText: 3228 return 11 3229 case j.String: 3230 return 12 3231 case j.VectorSetItem: 3232 return 13 3233 default: 3234 wn(e) 3235 } 3236} 3237function On(e) { 3238 const t = e.readUint16(), 3239 n = [] 3240 for (let r = 0; r < t; r++) { 3241 const t = G.read(e) 3242 n.push(t) 3243 } 3244 return { type: j.Array, value: n } 3245} 3246function kn(e, t) { 3247 for (const n of (e.writeUint16(t.value.length), t.value)) G.write(e, n) 3248} 3249function An(e, t, n) { 3250 const r = e.value.length, 3251 i = t.value.length 3252 if (r < i) return -1 3253 if (r > i) return 1 3254 for (let i = 0; i < r; i++) { 3255 const r = e.value[i], 3256 a = t.value[i], 3257 o = G.compare(r, a, n) 3258 if (o !== 0) return o 3259 } 3260 return 0 3261} 3262function jn(e) { 3263 return { type: j.Boolean, value: e.readUint8() !== 0 } 3264} 3265function Mn(e, t) { 3266 e.writeUint8(t.value ? 1 : 0) 3267} 3268function Nn(e, t) { 3269 return e.value < t.value ? -1 : e.value > t.value ? 1 : 0 3270} 3271function Pn(e) { 3272 return { type: j.Color, value: e.readString() } 3273} 3274function Fn(e, t) { 3275 e.writeString(t.value) 3276} 3277function In(e, t) { 3278 return e.value < t.value ? -1 : e.value > t.value ? 1 : 0 3279} 3280function Ln(e) { 3281 const t = e.readInt64(), 3282 n = new Date(t) 3283 return { type: j.Date, value: n.toISOString() } 3284} 3285function Rn(e, t) { 3286 const n = new Date(t.value).getTime() 3287 e.writeInt64(n) 3288} 3289function zn(e, t) { 3290 const n = new Date(e.value), 3291 r = new Date(t.value) 3292 return n < r ? -1 : n > r ? 1 : 0 3293} 3294function Bn(e) { 3295 return { type: j.Enum, value: e.readString() } 3296} 3297function Vn(e, t) { 3298 e.writeString(t.value) 3299} 3300function Hn(e, t) { 3301 return e.value < t.value ? -1 : e.value > t.value ? 1 : 0 3302} 3303function Un(e) { 3304 return { type: j.File, value: e.readString() } 3305} 3306function Wn(e, t) { 3307 e.writeString(t.value) 3308} 3309function Gn(e, t) { 3310 return e.value < t.value ? -1 : e.value > t.value ? 1 : 0 3311} 3312function Kn(e) { 3313 return { type: j.Link, value: e.readJson() } 3314} 3315function qn(e, t) { 3316 e.writeJson(t.value) 3317} 3318function Jn(e, t) { 3319 const n = JSON.stringify(e.value), 3320 r = JSON.stringify(t.value) 3321 return n < r ? -1 : n > r ? 1 : 0 3322} 3323function Yn(e) { 3324 return { type: j.Number, value: e.readFloat64() } 3325} 3326function Xn(e, t) { 3327 e.writeFloat64(t.value) 3328} 3329function Zn(e, t) { 3330 return e.value < t.value ? -1 : e.value > t.value ? 1 : 0 3331} 3332function Qn(e) { 3333 const t = e.readUint16(), 3334 n = {} 3335 for (let r = 0; r < t; r++) { 3336 const t = e.readString() 3337 n[t] = G.read(e) 3338 } 3339 return { type: j.Object, value: n } 3340} 3341function $n(e, t) { 3342 const n = Object.entries(t.value) 3343 for (const [t, r] of (e.writeUint16(n.length), n)) 3344 e.writeString(t), G.write(e, r) 3345} 3346function er(e, t, n) { 3347 const r = Object.keys(e.value).sort(), 3348 i = Object.keys(t.value).sort() 3349 if (r.length < i.length) return -1 3350 if (r.length > i.length) return 1 3351 for (let a = 0; a < r.length; a++) { 3352 const o = r[a], 3353 s = i[a] 3354 if (o < s) return -1 3355 if (o > s) return 1 3356 const c = e.value[o] ?? null, 3357 l = t.value[s] ?? null, 3358 u = G.compare(c, l, n) 3359 if (u !== 0) return u 3360 } 3361 return 0 3362} 3363function tr(e) { 3364 return { type: j.ResponsiveImage, value: e.readJson() } 3365} 3366function nr(e, t) { 3367 e.writeJson(t.value) 3368} 3369function rr(e, t) { 3370 const n = JSON.stringify(e.value), 3371 r = JSON.stringify(t.value) 3372 return n < r ? -1 : n > r ? 1 : 0 3373} 3374function ir(e) { 3375 const t = e.readInt8() 3376 if (t === 0) return { type: j.RichText, value: e.readUint32() }
3377 if (t === 1) return { type: j.RichText, value: e.readString() } 3378 throw Error(`Invalid rich text pointer`) 3379} 3380function ar(e, t) { 3381 if (W(t.value)) { 3382 e.writeInt8(0), e.writeUint32(t.value) 3383 return 3384 } 3385 if (Tn(t.value)) { 3386 e.writeInt8(1), e.writeString(t.value) 3387 return 3388 } 3389 throw Error(`Invalid rich text pointer`) 3390} 3391function or(e, t) { 3392 const n = e.value, 3393 r = t.value 3394 if ((W(n) && W(r)) || (Tn(n) && Tn(r))) return n < r ? -1 : n > r ? 1 : 0 3395 throw Error(`Invalid rich text pointer`) 3396} 3397function sr(e) { 3398 return { type: j.String, value: e.readString() } 3399} 3400function cr(e, t) { 3401 e.writeString(t.value) 3402} 3403function lr(e, t, n) { 3404 let r = e.value, 3405 i = t.value 3406 return ( 3407 n.type === 0 && ((r = e.value.toLowerCase()), (i = t.value.toLowerCase())), 3408 r < i ? -1 : r > i ? 1 : 0 3409 ) 3410} 3411function ur(e) { 3412 return { type: j.VectorSetItem, value: e.readUint32() } 3413} 3414function dr(e, t) { 3415 e.writeUint32(t.value) 3416} 3417function fr(e, t) { 3418 const n = e.value, 3419 r = t.value 3420 return n < r ? -1 : n > r ? 1 : 0 3421} 3422async function pr(e) { 3423 const t = Math.floor(Lr * (Math.random() + 1) * 2 ** (e - 1)) 3424 await new Promise((e) => { 3425 setTimeout(e, t) 3426 }) 3427} 3428async function mr(e, t) { 3429 let n = gr(t), 3430 r = [], 3431 i = 0 3432 for (const e of n) r.push(`${e.from}-${e.to - 1}`), (i += e.to - e.from) 3433 const a = new URL(e), 3434 o = r.join(`,`) 3435 a.searchParams.set(`range`, o) 3436 const s = await zr(a) 3437 if (s.status !== 200) 3438 throw Error(`Request failed: ${s.status} ${s.statusText}`) 3439 const c = await s.arrayBuffer(), 3440 l = new Uint8Array(c) 3441 if (l.length !== i) throw Error(`Request failed: Unexpected response length`) 3442 let u = new Br(), 3443 d = 0 3444 for (const e of n) { 3445 const t = e.to - e.from, 3446 n = d + t, 3447 r = l.subarray(d, n) 3448 u.write(e.from, r), (d = n) 3449 } 3450 return t.map((e) => u.read(e.from, e.to - e.from)) 3451} 3452function hr(e, t) { 3453 const n = e.length + t.length, 3454 r = new Uint8Array(n) 3455 return r.set(e, 0), r.set(t, e.length), r 3456} 3457function gr(e) { 3458 H(e.length > 0, `Must have at least one range`) 3459 const t = [...e].sort((e, t) => e.from - t.from), 3460 n = [] 3461 for (const e of t) { 3462 const t = n.length - 1, 3463 r = n[t] 3464 r && e.from <= r.to 3465 ? (n[t] = { from: r.from, to: Math.max(r.to, e.to) }) 3466 : n.push(e) 3467 } 3468 return n 3469} 3470var G, 3471 _r, 3472 vr, 3473 yr, 3474 br, 3475 xr, 3476 Sr, 3477 Cr, 3478 wr, 3479 Tr, 3480 Er, 3481 K, 3482 Dr, 3483 q, 3484 Or, 3485 kr, 3486 Ar, 3487 jr, 3488 Mr, 3489 Nr, 3490 J, 3491 Y, 3492 Pr, 3493 X, 3494 Fr, 3495 Ir, 3496 Lr, 3497 Rr, 3498 zr, 3499 Br, 3500 Z, 3501 Vr, 3502 Hr, 3503 Ur, 3504 Wr = e(() => { 3505 i(), 3506 L(), 3507 (_r = Object.create), 3508 (vr = Object.defineProperty), 3509 (yr = Object.getOwnPropertyDescriptor), 3510 (br = Object.getOwnPropertyNames), 3511 (xr = Object.getPrototypeOf), 3512 (Sr = Object.prototype.hasOwnProperty), 3513 (Cr = (e, t, n) => 3514 t in e 3515 ? vr(e, t, { 3516 enumerable: !0, 3517 configurable: !0, 3518 writable: !0, 3519 value: n, 3520 }) 3521 : (e[t] = n)), 3522 (wr = (e, t) => () => ( 3523 t || (0, e[br(e)[0]])((t = { exports: {} }).exports, t), t.exports 3524 )), 3525 (Tr = (e, t, n, r) => { 3526 if ((t && typeof t == `object`) || typeof t == `function`) 3527 for (const i of br(t)) 3528 Sr.call(e, i) || 3529 i === n || 3530 vr(e, i, { 3531 get: () => t[i], 3532 enumerable: !(r = yr(t, i)) || r.enumerable, 3533 }) 3534 return e 3535 }), 3536 (Er = (e, t, n) => ( 3537 (n = e == null ? {} : _r(xr(e))), 3538 Tr( 3539 !t && e && e.__esModule 3540 ? n 3541 : vr(n, `default`, { value: e, enumerable: !0 }), 3542 e, 3543 ) 3544 )), 3545 (K = (e, t, n) => Cr(e, typeof t == `symbol` ? t : t + ``, n)), 3546 (Dr = Er( 3547 wr({ 3548 "../../../node_modules/dataloader/index.js"(e, t) { 3549 var n, 3550 r = (() => { 3551 function e(e, t) { 3552 if (typeof e != `function`) 3553 throw TypeError( 3554 `DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but got: ` + 3555 e + 3556 `.`, 3557 ) 3558 ;(this._batchLoadFn = e), 3559 (this._maxBatchSize = ((e) => { 3560 if (!(!e || !1 !== e.batch)) return 1 3561 var t = e && e.maxBatchSize 3562 if (t === void 0) return 1 / 0 3563 if (typeof t != `number` || t < 1) 3564 throw TypeError( 3565 `maxBatchSize must be a positive number: ` + t, 3566 ) 3567 return t 3568 })(t)), 3569 (this._batchScheduleFn = ((e) => { 3570 var t = e && e.batchScheduleFn 3571 if (t === void 0) return i 3572 if (typeof t != `function`) 3573 throw TypeError( 3574 `batchScheduleFn must be a function: ` + t, 3575 ) 3576 return t 3577 })(t)), 3578 (this._cacheKeyFn = ((e) => { 3579 var t = e && e.cacheKeyFn 3580 if (t === void 0) return (e) => e 3581 if (typeof t != `function`) 3582 throw TypeError(`cacheKeyFn must be a function: ` + t) 3583 return t 3584 })(t)), 3585 (this._cacheMap = ((e) => { 3586 if (!(!e || !1 !== e.cache)) return null 3587 var t = e && e.cacheMap 3588 if (t === void 0) return new Map() 3589 if (t !== null) { 3590 var n = [`get`, `set`, `delete`, `clear`].filter( 3591 (e) => t && typeof t[e] != `function`, 3592 ) 3593 if (n.length !== 0) 3594 throw TypeError( 3595 `Custom cacheMap missing methods: ` + n.join(`, `), 3596 ) 3597 } 3598 return t 3599 })(t)), 3600 (this._batch = null),
3601 (this.name = t && t.name ? t.name : null) 3602 } 3603 var t = e.prototype 3604 return ( 3605 (t.load = function (e) { 3606 if (e == null) 3607 throw TypeError( 3608 `The loader.load() function must be called with a value, but got: ` + 3609 String(e) + 3610 `.`, 3611 ) 3612 var t = ((e) => { 3613 var t = e._batch 3614 if ( 3615 t !== null && 3616 !t.hasDispatched && 3617 t.keys.length < e._maxBatchSize 3618 ) 3619 return t 3620 var n = { hasDispatched: !1, keys: [], callbacks: [] } 3621 return ( 3622 (e._batch = n), 3623 e._batchScheduleFn(() => { 3624 ;((e, t) => { 3625 var n 3626 if ( 3627 ((t.hasDispatched = !0), t.keys.length === 0) 3628 ) { 3629 o(t) 3630 return 3631 } 3632 try { 3633 n = e._batchLoadFn(t.keys) 3634 } catch (n) { 3635 return a( 3636 e, 3637 t, 3638 TypeError( 3639 `DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function errored synchronously: ` + 3640 String(n) + 3641 `.`, 3642 ), 3643 ) 3644 } 3645 if (!n || typeof n.then != `function`) 3646 return a( 3647 e, 3648 t, 3649 TypeError( 3650 `DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise: ` + 3651 String(n) + 3652 `.`, 3653 ), 3654 ) 3655 n.then((e) => { 3656 if (!s(e)) 3657 throw TypeError( 3658 `DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array: ` + 3659 String(e) + 3660 `.`, 3661 ) 3662 if (e.length !== t.keys.length) 3663 throw TypeError( 3664 `DataLoader must be constructed with a function which accepts Array<key> and returns Promise<Array<value>>, but the function did not return a Promise of an Array of the same length as the Array of keys. 3665 3666Keys: 3667` + 3668 String(t.keys) + 3669 ` 3670 3671Values: 3672` + 3673 String(e), 3674 ) 3675 o(t) 3676 for (var n = 0; n < t.callbacks.length; n++) { 3677 var r = e[n] 3678 r instanceof Error 3679 ? t.callbacks[n].reject(r) 3680 : t.callbacks[n].resolve(r) 3681 } 3682 }).catch((n) => { 3683 a(e, t, n) 3684 }) 3685 })(e, n) 3686 }), 3687 n 3688 ) 3689 })(this), 3690 n = this._cacheMap, 3691 r = this._cacheKeyFn(e) 3692 if (n) { 3693 var i = n.get(r) 3694 if (i) { 3695 var c = (t.cacheHits ||= []) 3696 return new Promise((e) => { 3697 c.push(() => { 3698 e(i) 3699 }) 3700 }) 3701 } 3702 } 3703 t.keys.push(e) 3704 var l = new Promise((e, n) => { 3705 t.callbacks.push({ resolve: e, reject: n }) 3706 }) 3707 return n && n.set(r, l), l 3708 }), 3709 (t.loadMany = function (e) { 3710 if (!s(e)) 3711 throw TypeError( 3712 `The loader.loadMany() function must be called with Array<key> but got: ` + 3713 e + 3714 `.`, 3715 ) 3716 for (var t = [], n = 0; n < e.length; n++) 3717 t.push(this.load(e[n]).catch((e) => e)) 3718 return Promise.all(t) 3719 }), 3720 (t.clear = function (e) { 3721 var t = this._cacheMap 3722 if (t) { 3723 var n = this._cacheKeyFn(e) 3724 t.delete(n) 3725 } 3726 return this 3727 }), 3728 (t.clearAll = function () { 3729 var e = this._cacheMap 3730 return e && e.clear(), this 3731 }), 3732 (t.prime = function (e, t) { 3733 var n = this._cacheMap 3734 if (n) { 3735 var r, 3736 i = this._cacheKeyFn(e) 3737 n.get(i) === void 0 && 3738 (t instanceof Error 3739 ? (r = Promise.reject(t)).catch(() => {}) 3740 : (r = Promise.resolve(t)), 3741 n.set(i, r)) 3742 } 3743 return this 3744 }), 3745 e 3746 ) 3747 })(), 3748 i = 3749 typeof process == `object` && 3750 typeof process.nextTick == `function` 3751 ? (e) => { 3752 ;(n ||= Promise.resolve()), 3753 n.then(() => { 3754 process.nextTick(e) 3755 }) 3756 } 3757 : typeof setImmediate == `function` 3758 ? (e) => { 3759 setImmediate(e) 3760 } 3761 : (e) => { 3762 setTimeout(e) 3763 } 3764 function a(e, t, n) { 3765 o(t) 3766 for (var r = 0; r < t.keys.length; r++) 3767 e.clear(t.keys[r]), t.callbacks[r].reject(n) 3768 } 3769 function o(e) { 3770 if (e.cacheHits) 3771 for (var t = 0; t < e.cacheHits.length; t++) e.cacheHits[t]() 3772 } 3773 function s(e) { 3774 return ( 3775 typeof e == `object` && 3776 !!e && 3777 typeof e.length == `number` && 3778 (e.length === 0 || 3779 (e.length > 0 && 3780 Object.prototype.hasOwnProperty.call(e, e.length - 1))) 3781 ) 3782 } 3783 t.exports = r 3784 }, 3785 })(), 3786 1, 3787 )), 3788 (q = { 3789 Uint8: 1, 3790 Uint16: 2, 3791 Uint32: 4, 3792 BigUint64: 8, 3793 Int8: 1, 3794 Int16: 2, 3795 Int32: 4, 3796 BigInt64: 8, 3797 Float32: 4, 3798 Float64: 8, 3799 }), 3800 (Or = class { 3801 getOffset() { 3802 return this.offset 3803 } 3804 ensureLength(e) { 3805 const t = this.bytes.length 3806 if (!(this.offset + e <= t)) throw Error(`Reading out of bounds`) 3807 } 3808 readUint8() { 3809 const e = q.Uint8 3810 this.ensureLength(e) 3811 const t = this.view.getUint8(this.offset) 3812 return (this.offset += e), t 3813 } 3814 readUint16() { 3815 const e = q.Uint16 3816 this.ensureLength(e) 3817 const t = this.view.getUint16(this.offset) 3818 return (this.offset += e), t 3819 } 3820 readUint32() { 3821 const e = q.Uint32 3822 this.ensureLength(e) 3823 const t = this.view.getUint32(this.offset) 3824 return (this.offset += e), t 3825 } 3826 readUint64() { 3827 const e = this.readBigUint64() 3828 return Number(e) 3829 } 3830 readBigUint64() { 3831 const e = q.BigUint64 3832 this.ensureLength(e) 3833 const t = this.view.getBigUint64(this.offset) 3834 return (this.offset += e), t 3835 } 3836 readInt8() { 3837 const e = q.Int8 3838 this.ensureLength(e) 3839 const t = this.view.getInt8(this.offset) 3840 return (this.offset += e), t 3841 } 3842 readInt16() { 3843 const e = q.Int16 3844 this.ensureLength(e) 3845 const t = this.view.getInt16(this.offset) 3846 return (this.offset += e), t 3847 } 3848 readInt32() { 3849 const e = q.Int32 3850 this.ensureLength(e) 3851 const t = this.view.getInt32(this.offset) 3852 return (this.offset += e), t 3853 } 3854 readInt64() { 3855 const e = this.readBigInt64() 3856 return Number(e) 3857 } 3858 readBigInt64() { 3859 const e = q.BigInt64 3860 this.ensureLength(e) 3861 const t = this.view.getBigInt64(this.offset) 3862 return (this.offset += e), t 3863 } 3864 readFloat32() { 3865 const e = q.Float32 3866 this.ensureLength(e) 3867 const t = this.view.getFloat32(this.offset) 3868 return (this.offset += e), t 3869 } 3870 readFloat64() { 3871 const e = q.Float64 3872 this.ensureLength(e) 3873 const t = this.view.getFloat64(this.offset) 3874 return (this.offset += e), t 3875 } 3876 readBytes(e) { 3877 const t = this.offset, 3878 n = t + e, 3879 r = this.bytes.subarray(t, n) 3880 return (this.offset = n), r 3881 } 3882 readString() { 3883 const e = this.readUint32(), 3884 t = this.readBytes(e) 3885 return this.decoder.decode(t) 3886 } 3887 readJson() { 3888 const e = this.readString() 3889 return JSON.parse(e) 3890 } 3891 constructor(e) { 3892 ;(this.bytes = e), 3893 K(this, `offset`, 0), 3894 K(this, `view`), 3895 K(this, `decoder`, new TextDecoder()), 3896 (this.view = Cn(this.bytes)) 3897 } 3898 }), 3899 l !== void 0 && l.requestIdleCallback, 3900 (kr = 1024), 3901 (Ar = 1.5), 3902 (jr = (e) => 2 ** e - 1), 3903 (Mr = (e) => -(2 ** (e - 1))), 3904 (Nr = (e) => 2 ** (e - 1) - 1), 3905 (J = { 3906 Uint8: 0, 3907 Uint16: 0, 3908 Uint32: 0, 3909 Uint64: 0, 3910 BigUint64: 0, 3911 Int8: Mr(8), 3912 Int16: Mr(16), 3913 Int32: Mr(32), 3914 Int64: -(2 ** 53 - 1), 3915 BigInt64: -(BigInt(2) ** BigInt(63)), 3916 }), 3917 (Y = { 3918 Uint8: jr(8), 3919 Uint16: jr(16), 3920 Uint32: jr(32), 3921 Uint64: 2 ** 53 - 1, 3922 BigUint64: BigInt(2) ** BigInt(64) - BigInt(1), 3923 Int8: Nr(8), 3924 Int16: Nr(16), 3925 Int32: Nr(32), 3926 Int64: 2 ** 53 - 1, 3927 BigInt64: BigInt(2) ** BigInt(63) - BigInt(1), 3928 }), 3929 (Pr = class { 3930 getOffset() { 3931 return this.offset 3932 } 3933 slice(e = 0, t = this.offset) { 3934 return this.bytes.slice(e, t) 3935 } 3936 subarray(e = 0, t = this.offset) { 3937 return this.bytes.subarray(e, t) 3938 } 3939 ensureLength(e) { 3940 const t = this.bytes.length 3941 if (this.offset + e <= t) return 3942 const n = new Uint8Array(Math.ceil(t * Ar) + e) 3943 n.set(this.bytes), (this.bytes = n), (this.view = Cn(n)) 3944 } 3945 writeUint8(e) { 3946 U(e, J.Uint8, Y.Uint8, `Uint8`) 3947 const t = q.Uint8 3948 this.ensureLength(t), 3949 this.view.setUint8(this.offset, e), 3950 (this.offset += t) 3951 } 3952 writeUint16(e) { 3953 U(e, J.Uint16, Y.Uint16, `Uint16`) 3954 const t = q.Uint16 3955 this.ensureLength(t), 3956 this.view.setUint16(this.offset, e), 3957 (this.offset += t) 3958 } 3959 writeUint32(e) { 3960 U(e, J.Uint32, Y.Uint32, `Uint32`) 3961 const t = q.Uint32 3962 this.ensureLength(t), 3963 this.view.setUint32(this.offset, e), 3964 (this.offset += t) 3965 } 3966 writeUint64(e) { 3967 U(e, J.Uint64, Y.Uint64, `Uint64`) 3968 const t = BigInt(e) 3969 this.writeBigUint64(t) 3970 } 3971 writeBigUint64(e) { 3972 U(e, J.BigUint64, Y.BigUint64, `BigUint64`) 3973 const t = q.BigUint64 3974 this.ensureLength(t), 3975 this.view.setBigUint64(this.offset, e), 3976 (this.offset += t) 3977 } 3978 writeInt8(e) { 3979 U(e, J.Int8, Y.Int8, `Int8`) 3980 const t = q.Int8 3981 this.ensureLength(t), 3982 this.view.setInt8(this.offset, e), 3983 (this.offset += t) 3984 } 3985 writeInt16(e) { 3986 U(e, J.Int16, Y.Int16, `Int16`) 3987 const t = q.Int16 3988 this.ensureLength(t), 3989 this.view.setInt16(this.offset, e), 3990 (this.offset += t) 3991 } 3992 writeInt32(e) { 3993 U(e, J.Int32, Y.Int32, `Int32`) 3994 const t = q.Int32 3995 this.ensureLength(t), 3996 this.view.setInt32(this.offset, e), 3997 (this.offset += t) 3998 } 3999 writeInt64(e) { 4000 U(e, J.Int64, Y.Int64, `Int64`) 4001 const t = BigInt(e) 4002 this.writeBigInt64(t) 4003 } 4004 writeBigInt64(e) { 4005 U(e, J.BigInt64, Y.BigInt64, `BigInt64`) 4006 const t = q.BigInt64 4007 this.ensureLength(t), 4008 this.view.setBigInt64(this.offset, e), 4009 (this.offset += t) 4010 } 4011 writeFloat32(e) { 4012 const t = q.Float32 4013 this.ensureLength(t), 4014 this.view.setFloat32(this.offset, e), 4015 (this.offset += t) 4016 } 4017 writeFloat64(e) { 4018 const t = q.Float64 4019 this.ensureLength(t), 4020 this.view.setFloat64(this.offset, e), 4021 (this.offset += t) 4022 } 4023 writeBytes(e) { 4024 const t = e.length 4025 this.ensureLength(t), 4026 this.bytes.set(e, this.offset), 4027 (this.offset += t) 4028 } 4029 encodeString(e) { 4030 const t = this.encodedStrings.get(e) 4031 if (t) return t 4032 const n = this.encoder.encode(e) 4033 return this.encodedStrings.set(e, n), n 4034 } 4035 writeString(e) { 4036 const t = this.encodeString(e), 4037 n = t.length 4038 this.writeUint32(n), this.writeBytes(t) 4039 } 4040 writeJson(e) { 4041 const t = JSON.stringify(e) 4042 this.writeString(t) 4043 } 4044 constructor() { 4045 K(this, `offset`, 0), 4046 K(this, `bytes`, new Uint8Array(kr)), 4047 K(this, `view`, Cn(this.bytes)), 4048 K(this, `encoder`, new TextEncoder()), 4049 K(this, `encodedStrings`, new Map()) 4050 } 4051 }), 4052 (X = class e { 4053 static fromString(t) { 4054 const [n, r, i] = t.split(`/`).map(Number) 4055 return ( 4056 H(W(n), `Invalid chunkId`), 4057 H(W(r), `Invalid offset`), 4058 H(W(i), `Invalid length`), 4059 new e(n, r, i) 4060 ) 4061 } 4062 toString() { 4063 return `${this.chunkId}/${this.offset}/${this.length}` 4064 } 4065 static read(t) { 4066 return new e(t.readUint16(), t.readUint32(), t.readUint32()) 4067 } 4068 write(e) { 4069 e.writeUint16(this.chunkId), 4070 e.writeUint32(this.offset), 4071 e.writeUint32(this.length) 4072 } 4073 compare(e) { 4074 return this.chunkId < e.chunkId 4075 ? -1 4076 : this.chunkId > e.chunkId 4077 ? 1 4078 : this.offset < e.offset 4079 ? -1 4080 : this.offset > e.offset 4081 ? 1 4082 : (H(this.length === e.length), 0) 4083 } 4084 constructor(e, t, n) { 4085 ;(this.chunkId = e), (this.offset = t), (this.length = n) 4086 } 4087 }), 4088 ((e) => { 4089 ;(e.read = (e) => { 4090 const t = e.readUint8() 4091 switch (t) { 4092 case 0: 4093 return null 4094 case 1: 4095 return On(e) 4096 case 2: 4097 return jn(e) 4098 case 3: 4099 return Pn(e) 4100 case 4: 4101 return Ln(e) 4102 case 5: 4103 return Bn(e) 4104 case 6: 4105 return Un(e) 4106 case 7: 4107 return Kn(e) 4108 case 8: 4109 return Yn(e) 4110 case 9: 4111 return Qn(e) 4112 case 10: 4113 return tr(e) 4114 case 11: 4115 return ir(e) 4116 case 12: 4117 return sr(e) 4118 case 13: 4119 return ur(e) 4120 default: 4121 wn(t) 4122 } 4123 }), 4124 (e.write = (e, t) => { 4125 const n = Dn(t) 4126 if ((e.writeUint8(n), !En(t))) 4127 switch (t.type) { 4128 case j.Array: 4129 return kn(e, t) 4130 case j.Boolean: 4131 return Mn(e, t) 4132 case j.Color: 4133 return Fn(e, t) 4134 case j.Date: 4135 return Rn(e, t) 4136 case j.Enum: 4137 return Vn(e, t) 4138 case j.File: 4139 return Wn(e, t) 4140 case j.Link: 4141 return qn(e, t) 4142 case j.Number: 4143 return Xn(e, t) 4144 case j.Object: 4145 return $n(e, t) 4146 case j.ResponsiveImage: 4147 return nr(e, t) 4148 case j.RichText: 4149 return ar(e, t) 4150 case j.VectorSetItem: 4151 return dr(e, t) 4152 case j.String: 4153 return cr(e, t) 4154 default: 4155 wn(t) 4156 } 4157 }), 4158 (e.compare = (e, t, n) => { 4159 const r = Dn(e), 4160 i = Dn(t) 4161 if (r < i) return -1 4162 if (r > i) return 1 4163 if (En(e) || En(t)) return 0 4164 switch (e.type) { 4165 case j.Array: 4166 return H(t.type === j.Array), An(e, t, n) 4167 case j.Boolean: 4168 return H(t.type === j.Boolean), Nn(e, t) 4169 case j.Color: 4170 return H(t.type === j.Color), In(e, t) 4171 case j.Date: 4172 return H(t.type === j.Date), zn(e, t) 4173 case j.Enum: 4174 return H(t.type === j.Enum), Hn(e, t) 4175 case j.File: 4176 return H(t.type === j.File), Gn(e, t) 4177 case j.Link: 4178 return H(t.type === j.Link), Jn(e, t) 4179 case j.Number: 4180 return H(t.type === j.Number), Zn(e, t) 4181 case j.Object: 4182 return H(t.type === j.Object), er(e, t, n) 4183 case j.ResponsiveImage: 4184 return H(t.type === j.ResponsiveImage), rr(e, t) 4185 case j.RichText: 4186 return H(t.type === j.RichText), or(e, t) 4187 case j.VectorSetItem: 4188 return H(t.type === j.VectorSetItem), fr(e, t) 4189 case j.String: 4190 return H(t.type === j.String), lr(e, t, n) 4191 default: 4192 wn(e) 4193 } 4194 }) 4195 })((G ||= {})), 4196 (Fr = class e { 4197 sortEntries() { 4198 this.entries.sort((e, t) => { 4199 for (let n = 0; n < this.fieldNames.length; n++) { 4200 const r = e.values[n], 4201 i = t.values[n], 4202 a = G.compare(r, i, this.options.collation) 4203 if (a !== 0) return a 4204 } 4205 return e.pointer.compare(t.pointer) 4206 }) 4207 } 4208 static deserialize(t) { 4209 const n = new Or(t), 4210 r = n.readJson(), 4211 i = n.readUint8(), 4212 a = [] 4213 for (let e = 0; e < i; e++) { 4214 const e = n.readString() 4215 a.push(e) 4216 } 4217 const o = new e(a, { collation: r }), 4218 s = n.readUint32() 4219 for (let e = 0; e < s; e++) { 4220 const e = [] 4221 for (let t = 0; t < i; t++) { 4222 const t = G.read(n) 4223 e.push(t) 4224 } 4225 const t = X.read(n) 4226
4226 o.entries.push({ values: e, pointer: t }) 4227 } 4228 return o 4229 } 4230 serialize() { 4231 const e = new Pr() 4232 for (const t of (e.writeJson(this.options.collation), 4233 e.writeUint8(this.fieldNames.length), 4234 this.fieldNames)) 4235 e.writeString(t) 4236 for (const t of (this.sortEntries(), 4237 e.writeUint32(this.entries.length), 4238 this.entries)) { 4239 const { values: n, pointer: r } = t 4240 for (const t of n) G.write(e, t) 4241 r.write(e) 4242 } 4243 return e.subarray() 4244 } 4245 addItem(e, t) { 4246 const n = this.fieldNames.map((t) => e.getField(t) ?? null) 4247 this.entries.push({ values: n, pointer: t }) 4248 } 4249 constructor(e, t) { 4250 ;(this.fieldNames = e), (this.options = t), K(this, `entries`, []) 4251 } 4252 }), 4253 (Ir = 3), 4254 (Lr = 250), 4255 (Rr = [408, 429, 500, 502, 503, 504]), 4256 (zr = async (e, t) => { 4257 let n = 0 4258 for (;;) { 4259 try { 4260 const r = await fetch(e, t) 4261 if (!Rr.includes(r.status) || ++n > Ir) return r 4262 } catch (e) { 4263 if (t?.signal?.aborted || ++n > Ir) throw e 4264 } 4265 await pr(n) 4266 } 4267 }), 4268 (Br = class { 4269 read(e, t) { 4270 for (const n of this.chunks) { 4271 if (e < n.start) break 4272 if (e > n.end) continue 4273 if (e + t > n.end) break 4274 const r = e - n.start, 4275 i = r + t 4276 return n.data.slice(r, i) 4277 } 4278 throw Error(`Missing data`) 4279 } 4280 write(e, t) { 4281 let n = e, 4282 r = n + t.length, 4283 i = 0, 4284 a = this.chunks.length 4285 for (; i < a; i++) { 4286 const e = this.chunks[i] 4287 if ((H(e, `Missing chunk`), !(n > e.end))) { 4288 if (n > e.start) { 4289 const r = n - e.start 4290 ;(t = hr(e.data.subarray(0, r), t)), (n = e.start) 4291 } 4292 break 4293 } 4294 } 4295 for (; a > i; a--) { 4296 const e = this.chunks[a - 1] 4297 if ((H(e, `Missing chunk`), !(r < e.start))) { 4298 if (r < e.end) { 4299 const n = r - e.start, 4300 i = e.data.subarray(n) 4301 ;(t = hr(t, i)), (r = e.end) 4302 } 4303 break 4304 } 4305 } 4306 const o = { start: n, end: r, data: t }, 4307 s = a - i 4308 this.chunks.splice(i, s, o) 4309 } 4310 constructor() { 4311 K(this, `chunks`, []) 4312 } 4313 }), 4314 (Z = class { 4315 async loadModel() { 4316 const [e] = await mr(this.options.url, [this.options.range]) 4317 return H(e, `Failed to load model`), Fr.deserialize(e) 4318 } 4319 async getModel() { 4320 return ( 4321 (this.modelPromise ??= this.loadModel()), 4322 (this.model ??= await this.modelPromise), 4323 this.model 4324 ) 4325 } 4326 async lookupItems(e) { 4327 H(e.length === this.fields.length, `Invalid query length`) 4328 const t = await this.getModel(), 4329 n = e.reduce( 4330 (e, t, n) => 4331 e.flatMap((e) => { 4332 switch (t.type) { 4333 case `All`: 4334 return [e] 4335 case `Equals`: 4336 return this.queryEquals(e, t, n) 4337 case `NotEquals`: 4338 return this.queryNotEquals(e, t, n) 4339 case `LessThan`: 4340 return this.queryLessThan(e, t, n) 4341 case `GreaterThan`: 4342 return this.queryGreaterThan(e, t, n) 4343 case `Contains`: 4344 return this.queryContains(e, t, n) 4345 case `StartsWith`: 4346 return this.queryStartsWith(e, t, n) 4347 case `EndsWith`: 4348 return this.queryEndsWith(e, t, n) 4349 default: 4350 wn(t) 4351 } 4352 }), 4353 [t.entries], 4354 ), 4355 r = [] 4356 for (const e of n) 4357 for (const t of e) { 4358 const e = {} 4359 for (let n = 0; n < this.options.fieldNames.length; n++) { 4360 const r = this.options.fieldNames[n] 4361 e[r] = t.values[n] 4362 } 4363 r.push({ pointer: t.pointer.toString(), data: e }) 4364 } 4365 return r 4366 } 4367 queryEquals(e, t, n) { 4368 const r = this.getLeftMost(e, n, t.value), 4369 i = this.getRightMost(e, n, t.value), 4370 a = e.slice(r, i + 1) 4371 return a.length > 0 ? [a] : [] 4372 } 4373 queryNotEquals(e, t, n) { 4374 const r = this.getLeftMost(e, n, t.value), 4375 i = this.getRightMost(e, n, t.value), 4376 a = [], 4377 o = e.slice(0, r) 4378 o.length > 0 && a.push(o) 4379 const s = e.slice(i + 1) 4380 return s.length > 0 && a.push(s), a 4381 } 4382 queryLessThan(e, t, n) { 4383 const r = this.getRightMost(e, n, null) 4384 if (((e = e.slice(r + 1)), t.inclusive)) { 4385 const r = this.getRightMost(e, n, t.value), 4386 i = e.slice(0, r + 1) 4387 return i.length > 0 ? [i] : [] 4388 } 4389 const i = this.getLeftMost(e, n, t.value), 4390 a = e.slice(0, i) 4391 return a.length > 0 ? [a] : [] 4392 } 4393 queryGreaterThan(e, t, n) { 4394 const r = this.getRightMost(e, n, null) 4395 if (((e = e.slice(r + 1)), t.inclusive)) { 4396 const r = this.getLeftMost(e, n, t.value), 4397 i = e.slice(r) 4398 return i.length > 0 ? [i] : [] 4399 } 4400 const i = this.getRightMost(e, n, t.value), 4401 a = e.slice(i + 1) 4402 return a.length > 0 ? [a] : [] 4403 } 4404 queryContains(e, t, n) { 4405 return this.findItems(e, n, (e) => { 4406 if (e?.type !== j.String || t.value?.type !== j.String) return !1 4407 let n = e.value, 4408 r = t.value.value 4409 return ( 4410 this.collation.type === 0 && 4411 ((n = n.toLowerCase()), (r = r.toLowerCase())), 4412 n.includes(r) 4413 ) 4414 }) 4415 } 4416 queryStartsWith(e, t, n) { 4417 return this.findItems(e, n, (e) => { 4418 if (e?.type !== j.String || t.value?.type !== j.String) return !1 4419 let n = e.value, 4420 r = t.value.value 4421 return ( 4422 this.collation.type === 0 && 4423 ((n = n.toLowerCase()), (r = r.toLowerCase())), 4424 n.startsWith(r) 4425 ) 4426 }) 4427 } 4428 queryEndsWith(e, t, n) { 4429 return this.findItems(e, n, (e) => { 4430 if (e?.type !== j.String || t.value?.type !== j.String) return !1 4431 let n = e.value, 4432 r = t.value.value 4433 return ( 4434 this.collation.type === 0 && 4435 ((n = n.toLowerCase()), (r = r.toLowerCase())), 4436 n.endsWith(r) 4437 ) 4438 }) 4439 } 4440 getLeftMost(e, t, n) { 4441 let r = 0, 4442 i = e.length 4443 while (r < i) { 4444 const a = (r + i) >> 1, 4445 o = e[a].values[t] 4446 0 > G.compare(o, n, this.collation) ? (r = a + 1) : (i = a) 4447 } 4448 return r 4449 } 4450 getRightMost(e, t, n) { 4451 let r = 0, 4452 i = e.length 4453 while (r < i) { 4454 const a = (r + i) >> 1, 4455 o = e[a].values[t] 4456 G.compare(o, n, this.collation) > 0 ? (i = a) : (r = a + 1) 4457 } 4458 return i - 1 4459 } 4460 findItems(e, t, n) { 4461 let r = [], 4462 i = 0 4463 for (let a = 0; a < e.length; a++) { 4464 const o = e[a].values[t] 4465 if (!n(o)) { 4466 if (i < a) { 4467 const t = e.slice(i, a) 4468 r.push(t) 4469 } 4470 i = a + 1 4471 } 4472 } 4473 if (i < e.length) { 4474 const t = e.slice(i) 4475 r.push(t) 4476 } 4477 return r 4478 } 4479 constructor(e) { 4480 ;(this.options = e), 4481 K(this, `schema`), 4482 K(this, `fields`), 4483 K(this, `supportedLookupTypes`, [ 4484 `All`, 4485 `Equals`, 4486 `NotEquals`, 4487 `LessThan`, 4488 `GreaterThan`, 4489 `Contains`, 4490 `StartsWith`, 4491 `EndsWith`, 4492 ]), 4493 K(this, `modelPromise`), 4494 K(this, `model`), 4495 K(this, `collation`) 4496 const t = {}, 4497 n = [] 4498 for (const e of this.options.fieldNames) { 4499 const r = this.options.collectionSchema[e] 4500 H(r, `Missing definition for field`, e),
4501 (t[e] = r), 4502 n.push({ type: `Identifier`, name: e }) 4503 } 4504 ;(this.schema = t), 4505 (this.fields = n), 4506 (this.collation = this.options.collation) 4507 } 4508 }), 4509 (Vr = class e { 4510 static read(t) { 4511 const n = new e(), 4512 r = t.readUint16() 4513 for (let e = 0; e < r; e++) { 4514 const e = t.readString(), 4515 r = G.read(t) 4516 n.setField(e, r) 4517 } 4518 return n 4519 } 4520 write(e) { 4521 for (const [t, n] of (e.writeUint16(this.fields.size), this.fields)) 4522 e.writeString(t), G.write(e, n) 4523 } 4524 getData() { 4525 const e = {} 4526 for (const [t, n] of this.fields) e[t] = n 4527 return e 4528 } 4529 setField(e, t) { 4530 this.fields.set(e, t) 4531 } 4532 getField(e) { 4533 return this.fields.get(e) 4534 } 4535 constructor() { 4536 K(this, `fields`, new Map()) 4537 } 4538 }), 4539 (Hr = class { 4540 scanItems() { 4541 return ( 4542 (this.itemsPromise ??= zr(this.url).then(async (e) => { 4543 if (!e.ok) 4544 throw Error(`Request failed: ${e.status} ${e.statusText}`) 4545 const t = await e.arrayBuffer(), 4546 n = new Or(new Uint8Array(t)), 4547 r = [], 4548 i = n.readUint32() 4549 for (let e = 0; e < i; e++) { 4550 const e = n.getOffset(), 4551 t = Vr.read(n), 4552 i = n.getOffset() - e, 4553 a = new X(this.id, e, i).toString(), 4554 o = { pointer: a, data: t.getData() } 4555 this.itemLoader.prime(a, o), r.push(o) 4556 } 4557 return r 4558 })), 4559 this.itemsPromise 4560 ) 4561 } 4562 resolveItem(e) { 4563 return this.itemLoader.load(e) 4564 } 4565 constructor(e, t) { 4566 ;(this.id = e), 4567 (this.url = t), 4568 K(this, `itemsPromise`), 4569 K( 4570 this, 4571 `itemLoader`, 4572 new Dr.default( 4573 async (e) => { 4574 const t = e.map((e) => { 4575 const t = X.fromString(e) 4576 return { from: t.offset, to: t.offset + t.length } 4577 }) 4578 return (await mr(this.url, t)).map((t, n) => { 4579 const r = new Or(t), 4580 i = Vr.read(r), 4581 a = e[n] 4582 return ( 4583 H(a, `Missing pointer`), { pointer: a, data: i.getData() } 4584 ) 4585 }) 4586 }, 4587 { maxBatchSize: 250 }, 4588 ), 4589 ) 4590 } 4591 }), 4592 (Ur = class { 4593 async scanItems() { 4594 return ( 4595 await Promise.all(this.chunks.map(async (e) => e.scanItems())) 4596 ).flat() 4597 } 4598 resolveItems(e) { 4599 return Promise.all( 4600 e.map((e) => { 4601 const t = X.fromString(e), 4602 n = this.chunks[t.chunkId] 4603 return H(n, `Missing chunk`), n.resolveItem(e) 4604 }), 4605 ) 4606 } 4607 compareItems(e, t) { 4608 const n = X.fromString(e.pointer), 4609 r = X.fromString(t.pointer) 4610 return n.compare(r) 4611 } 4612 compareValues(e, t, n) { 4613 return G.compare(e, t, n) 4614 } 4615 constructor(e) { 4616 ;(this.options = e), 4617 K(this, `id`), 4618 K(this, `schema`), 4619 K(this, `indexes`), 4620 K(this, `resolveRichText`), 4621 K(this, `resolveVectorSetItem`), 4622 K(this, `chunks`), 4623 (this.chunks = this.options.chunks.map((e, t) => new Hr(t, e))), 4624 (this.schema = e.schema), 4625 (this.indexes = e.indexes), 4626 (this.resolveRichText = e.resolveRichText), 4627 (this.resolveVectorSetItem = e.resolveVectorSetItem), 4628 (this.id = e.id) 4629 } 4630 }) 4631 }) 4632function Gr(e) { 4633 return typeof e == `object` && !!e && !d(e) && Jr in e 4634} 4635function Kr(e, ...t) { 4636 if (!e) 4637 throw Error(`Assertion Error` + (t.length > 0 ? `: ` + t.join(` `) : ``)) 4638} 4639function qr(e) { 4640 const t = new Map() 4641 return (n) => { 4642 const r = t.get(n) 4643 if (r) return r 4644 const i = (function t(n) { 4645 switch (n[0]) { 4646 case 1: { 4647 const [, ...e] = n 4648 return y(s, void 0, ...e.map(t)) 4649 } 4650 case 2: { 4651 const [, e, ...r] = n 4652 return y(oe, e, ...r.map(t)) 4653 } 4654 case 3: { 4655 const [, r, i, a, o] = n 4656 for (const e of a) { 4657 const n = i[e] 4658 n && (i[e] = t(n)) 4659 } 4660 for (const t of o) { 4661 const n = i[t] 4662 if (typeof n != `string`) continue 4663 const r = e[n] 4664 r && (Gr(r) && r.preload(), (i[t] = r)) 4665 } 4666 const s = e[r] 4667 return ( 4668 Kr(s, `Module not found`), 4669 Gr(s) && s.preload(), 4670 u(I, { 4671 componentIdentifier: r, 4672 children: (e) => u(ce, { component: s, props: { ...e, ...i } }), 4673 }) 4674 ) 4675 } 4676 case 4: { 4677 const [, e, r, ...i] = n, 4678 a = i.map(t) 4679 return y(e === `a` ? S.a : e, r, ...a) 4680 } 4681 case 5: { 4682 const [, e] = n 4683 return e 4684 } 4685 } 4686 })(JSON.parse(n)) 4687 return t.set(n, i), i 4688 } 4689}
4689 4690var Q, 4691 Jr, 4692 Yr, 4693 Xr = e(() => { 4694 i(), 4695 _(), 4696 L(), 4697 n(), 4698 l !== void 0 && l.requestIdleCallback, 4699 (Jr = `preload`), 4700 (Yr = 4701 (((Q = Yr || {})[(Q.Fragment = 1)] = `Fragment`), 4702 (Q[(Q.Link = 2)] = `Link`), 4703 (Q[(Q.Module = 3)] = `Module`), 4704 (Q[(Q.Tag = 4)] = `Tag`), 4705 (Q[(Q.Text = 5)] = `Text`), 4706 Q)) 4707 }), 4708 $, 4709 Zr, 4710 Qr, 4711 $r, 4712 ei, 4713 ti, 4714 ni, 4715 ri, 4716 ii, 4717 ai, 4718 oi, 4719 si, 4720 ci, 4721 li, 4722 ui, 4723 di, 4724 fi, 4725 pi, 4726 mi, 4727 hi, 4728 gi = e(() => { 4729 L(), 4730 Wr(), 4731 Xr(), 4732 ($ = { 4733 BG5Gh3GNP: { isNullable: !0, type: j.String }, 4734 createdAt: { isNullable: !0, type: j.Date }, 4735 id: { isNullable: !1, type: j.String }, 4736 nextItemId: { isNullable: !0, type: j.String }, 4737 oTS9hKpKi: { isNullable: !0, type: j.String }, 4738 po3kv56Yb: { isNullable: !0, type: j.RichText }, 4739 previousItemId: { isNullable: !0, type: j.String }, 4740 updatedAt: { isNullable: !0, type: j.Date }, 4741 }), 4742 (Zr = [`id`]), 4743 (Qr = { type: 1 }), 4744 ($r = [`previousItemId`]), 4745 (ei = [`nextItemId`]), 4746 (ti = [`id`, `oTS9hKpKi`]), 4747 (ni = [`oTS9hKpKi`, `id`]), 4748 (ri = [`BG5Gh3GNP`]), 4749 (ii = { type: 0 }), 4750 (ai = [`oTS9hKpKi`]), 4751 (oi = [`po3kv56Yb`]), 4752 (si = []), 4753 (ci = (e) => { 4754 const t = si[e] 4755 if (t) return t().then((e) => e.default) 4756 }), 4757 (li = qr({})), 4758 (ui = new M()), 4759 (di = { 4760 collectionByLocaleId: { 4761 default: new Ur({ 4762 chunks: [ 4763 new URL( 4764 `./YYaVL7KRJ-chunk-default-0.framercms`, 4765 `/framer-assets/scripts/YYaVL7KRJ.js`, 4766 ).href.replace(`/modules/`, `/cms/`), 4767 ], 4768 id: `c1908267-d9c9-49dd-80d3-f0834cba3d76default`, 4769 indexes: [ 4770 new Z({ 4771 collation: Qr, 4772 collectionSchema: $, 4773 fieldNames: Zr, 4774 range: { from: 0, to: 49 }, 4775 url: new URL( 4776 `./YYaVL7KRJ-indexes-default-0.framercms`, 4777 `/framer-assets/scripts/YYaVL7KRJ.js`, 4778 ).href.replace(`/modules/`, `/cms/`), 4779 }), 4780 new Z({ 4781 collation: Qr, 4782 collectionSchema: $, 4783 fieldNames: $r, 4784 range: { from: 49, to: 97 }, 4785 url: new URL( 4786 `./YYaVL7KRJ-indexes-default-0.framercms`, 4787 `/framer-assets/scripts/YYaVL7KRJ.js`, 4788 ).href.replace(`/modules/`, `/cms/`), 4789 }), 4790 new Z({ 4791 collation: Qr, 4792 collectionSchema: $, 4793 fieldNames: ei, 4794 range: { from: 97, to: 141 }, 4795 url: new URL( 4796 `./YYaVL7KRJ-indexes-default-0.framercms`, 4797 `/framer-assets/scripts/YYaVL7KRJ.js`, 4798 ).href.replace(`/modules/`, `/cms/`), 4799 }), 4800 new Z({ 4801 collation: Qr, 4802 collectionSchema: $, 4803 fieldNames: ti, 4804 range: { from: 141, to: 224 }, 4805 url: new URL( 4806 `./YYaVL7KRJ-indexes-default-0.framercms`, 4807 `/framer-assets/scripts/YYaVL7KRJ.js`, 4808 ).href.replace(`/modules/`, `/cms/`), 4809 }), 4810 new Z({ 4811 collation: Qr, 4812 collectionSchema: $, 4813 fieldNames: ni, 4814 range: { from: 224, to: 307 }, 4815 url: new URL( 4816 `./YYaVL7KRJ-indexes-default-0.framercms`, 4817 `/framer-assets/scripts/YYaVL7KRJ.js`, 4818 ).href.replace(`/modules/`, `/cms/`), 4819 }), 4820 new Z({ 4821 collation: ii, 4822 collectionSchema: $, 4823 fieldNames: ri, 4824 range: { from: 307, to: 370 }, 4825 url: new URL( 4826 `./YYaVL7KRJ-indexes-default-0.framercms`, 4827 `/framer-assets/scripts/YYaVL7KRJ.js`, 4828 ).href.replace(`/modules/`, `/cms/`), 4829 }), 4830 new Z({ 4831 collation: ii, 4832 collectionSchema: $, 4833 fieldNames: ai, 4834 range: { from: 370, to: 433 }, 4835 url: new URL( 4836 `./YYaVL7KRJ-indexes-default-0.framercms`, 4837 `/framer-assets/scripts/YYaVL7KRJ.js`, 4838 ).href.replace(`/modules/`, `/cms/`), 4839 }), 4840 new Z({ 4841 collation: ii, 4842 collectionSchema: $, 4843 fieldNames: oi, 4844 range: { from: 433, to: 26491 }, 4845 url: new URL( 4846 `./YYaVL7KRJ-indexes-default-0.framercms`, 4847 `/framer-assets/scripts/YYaVL7KRJ.js`, 4848 ).href.replace(`/modules/`, `/cms/`), 4849 }), 4850 ], 4851 resolveRichText: li, 4852 resolveVectorSetItem: ci,
4853 schema: $, 4854 }), 4855 }, 4856 displayName: `Legal`, 4857 id: `c1908267-d9c9-49dd-80d3-f0834cba3d76`, 4858 }), 4859 (fi = di), 4860 O(di, { 4861 BG5Gh3GNP: { defaultValue: ``, title: `Title`, type: j.String }, 4862 oTS9hKpKi: { preventLocalization: !0, title: `Slug`, type: j.String }, 4863 po3kv56Yb: { defaultValue: ``, title: `Content`, type: j.RichText }, 4864 createdAt: { title: `Created`, type: j.Date }, 4865 updatedAt: { title: `Updated`, type: j.Date }, 4866 previousItemId: { 4867 dataIdentifier: `local-module:collection/YYaVL7KRJ:default`, 4868 title: `Previous`, 4869 type: j.CollectionReference, 4870 }, 4871 nextItemId: { 4872 dataIdentifier: `local-module:collection/YYaVL7KRJ:default`, 4873 title: `Next`, 4874 type: j.CollectionReference, 4875 }, 4876 }), 4877 (pi = {}), 4878 (mi = { 4879 async getSlugByRecordId(e, t) { 4880 const [n] = await ui.query( 4881 { 4882 from: { data: di, type: `Collection` }, 4883 limit: { type: `LiteralValue`, value: 1 }, 4884 select: [{ name: `oTS9hKpKi`, type: `Identifier` }], 4885 where: { 4886 left: { name: `id`, type: `Identifier` }, 4887 operator: `==`, 4888 right: { type: `LiteralValue`, value: e }, 4889 type: `BinaryOperation`, 4890 }, 4891 }, 4892 t, 4893 ) 4894 return n?.oTS9hKpKi 4895 }, 4896 async getRecordIdBySlug(e, t) { 4897 const [n] = await ui.query( 4898 { 4899 from: { data: di, type: `Collection` }, 4900 limit: { type: `LiteralValue`, value: 1 }, 4901 select: [{ name: `id`, type: `Identifier` }], 4902 where: { 4903 left: { name: `oTS9hKpKi`, type: `Identifier` }, 4904 operator: `==`, 4905 right: { type: `LiteralValue`, value: e }, 4906 type: `BinaryOperation`, 4907 }, 4908 }, 4909 t, 4910 ) 4911 return n?.id 4912 }, 4913 }), 4914 (hi = { 4915 exports: { 4916 utils: { 4917 type: `variable`, 4918 annotations: { framerContractVersion: `1` }, 4919 }, 4920 default: { 4921 type: `data`, 4922 name: `data`, 4923 annotations: { 4924 framerCollectionUtils: `1`, 4925 framerData: `true`, 4926 framerCollectionId: `YYaVL7KRJ`, 4927 framerRecordIdKey: `id`, 4928 framerEnumToDisplayNameUtils: `2`, 4929 framerContractVersion: `1`, 4930 framerColorSyntax: `false`, 4931 framerSlug: `oTS9hKpKi`, 4932 framerAutoSizeImages: `true`, 4933 }, 4934 }, 4935 enumToDisplayNameFunctions: { 4936 type: `variable`, 4937 annotations: { framerContractVersion: `1` }, 4938 }, 4939 __FramerMetadata__: { type: `variable` }, 4940 }, 4941 }) 4942 }) 4943function _i(e, t) { 4944 const n = e?.BG5Gh3GNP 4945 return { 4946 breakpoints: [{ hash: `lbyxm5` }], 4947 description: _n(e, t).description, 4948 elements: {}, 4949 robots: `max-image-preview:large`, 4950 serializationId: `framer-0nVTx`, 4951 title: `${n === void 0 ? `{{BG5Gh3GNP}}` : bi(n)} - Extra - Love Your Email`, 4952 viewport: `width=1200`, 4953 } 4954} 4955async function vi(e, t) { 4956 const n = new M(), 4957 r = { 4958 from: { alias: `P0UijHBEH`, data: fi, type: `Collection` }, 4959 select: [ 4960 { collection: `P0UijHBEH`, name: `BG5Gh3GNP`, type: `Identifier` }, 4961 ], 4962 where: ne(e, `P0UijHBEH`), 4963 }, 4964 i = await n.query(r, t) 4965 if (i.length === 0) throw Error(`No data matches pathVariables`) 4966 const a = i[0] 4967 return _i(a, t) 4968} 4969async function yi(e, t) { 4970 const n = new M(), 4971 r = { 4972 from: { alias: `P0UijHBEH`, data: fi, type: `Collection` }, 4973 select: [ 4974 { collection: `P0UijHBEH`, name: `BG5Gh3GNP`, type: `Identifier` }, 4975 ], 4976 } 4977 for (const t of e) 4978 r.select.push({ collection: `P0UijHBEH`, name: t, type: `Identifier` }) 4979 return (await n.query(r, t)).map((n) => ({ 4980 metadata: _i(n, t), 4981 pathVariables: Object.fromEntries(e.map((e) => [e, n[e]])), 4982 })) 4983} 4984var bi, 4985 xi, 4986 Si, 4987 Ci = e(() => { 4988 L(), 4989 gi(), 4990 vn(), 4991 (bi = (e) => (typeof e == `string` ? e : String(e))), 4992 (xi = 1), 4993 (Si = { 4994 exports: { 4995 fetchMetadata: { 4996 type: `function`, 4997 annotations: { framerContractVersion: `1` }, 4998 }, 4999 default: { 5000 type: `function`, 5001 annotations: { framerContractVersion: `1` }, 5002 }, 5003 metadataVersion: { 5004 type: `variable`, 5005 annotations: { framerContractVersion: `1` }, 5006 }, 5007 fetchAllMetadata: { 5008 type: `function`, 5009 annotations: { framerContractVersion: `1` }, 5010 }, 5011 __FramerMetadata__: { type: `variable` }, 5012 }, 5013 }) 5014 }) 5015export { 5016 ot as A, 5017 on as C, 5018 xt as D, 5019 dt as E, 5020 Fe as F, 5021 Ie as I, 5022 be as L, 5023 Le as M, 5024 ze as N, 5025 lt as O, 5026 Re as P, 5027 xe as R, 5028 an as S, 5029 St as T, 5030 hn as _, 5031 _i as a, 5032 sn as b, 5033 hi as c, 5034 mi as d, 5035 xn as f, 5036 gn as g, 5037 bn as h, 5038 Ci as i, 5039 rt as j, 5040 st as k, 5041 pi as l, 5042 yn as m, 5043 yi as n, 5044 xi as o, 5045 Sn as p, 5046 vi as r, 5047 fi as s, 5048 Si as t, 5049 gi as u, 5050 ln as v, 5051 wt as w, 5052 un as x, 5053 cn as y, 5054} 5055//# sourceMappingURL=shared-lib.DZoO7YJD.mjs.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.