inbuxa's mark was ihasmail's cat-and-envelope reused unchanged. The new one keeps the family's face, paws and colors, over a server with a bay for each piece of the suite: the letter (webmail), a prompt (console), status lights (server). - The built-in sign-in and calendar RSVP pages, and the web logo, drew the old cat as an embedded PNG. They now draw the mark as vector in the same slot, keeping class="symbol"; each page is about 31 KB lighter. The .min copies are updated the same way and the .min.gz regenerated with gzip -9 -n, as minify_html.sh does. - resources/branding: email-logo.png (the compact lockup at 380x80 on white, as before) with its .b64 regenerated byte-for-byte in the old 76-column form, and favicon-64.png. - img/brand: the logo bundle, now pure vector, with its README.
1 line
31 KiB
Plaintext
1 line
31 KiB
Plaintext
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="referrer" content="no-referrer"> <meta name="color-scheme" content="light dark"> <title>Respond to invitation · inbuxa</title> <link rel="icon" type="image/png" href="data:image/png;base64,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"> <style>*,::after,::before{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light dark;--bg:#f6f8fa;--card:#ffffff;--border:#e3e7ec;--line:#eef1f4;--text:#111827;--muted:#5b6472;--subtle:#f6f8fa;--accent:#0f766e;--accent-fg:#ffffff;--info:#0e7490;--success:#15803d;--warning:#b45309;--danger:#dc2626;--brand:#0f766e;--radius:10px;--input-bg:#ffffff;--brand-ink:#1C4053}@media(prefers-color-scheme:dark){:root{--bg:#0b1220;--card:#111a2b;--border:#1f2a3d;--line:#1f2a3d;--text:#e5e9f0;--muted:#9aa5b8;--subtle:#0d1524;--accent:#2dd4bf;--accent-fg:#052e2b;--info:#67e8f9;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--input-bg:#0d1524;--brand-ink:#e5e9f0}}body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;align-items:safe center;justify-content:center;padding:1.5rem 1rem;-webkit-font-smoothing:antialiased}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem 1.5rem 1.75rem;width:100%;max-width:34rem}@media (min-width:40em){.card{padding:.75rem 2.5rem 2rem;max-width:40rem}}@media (min-width:64em){.card{padding:1rem 3rem 2.25rem;max-width:46rem}}.logo-wrap{display:flex;align-items:center;justify-content:center;width:100%;min-height:72px;margin:.25rem auto .75rem}.logo-wrap svg.default-logo{display:block;width:calc(100% + 1rem);height:auto;margin:-.25rem auto .1rem;max-width:300px}.logo-wrap[data-loading] .default-logo{visibility:hidden}.logo-wrap img.custom-logo{display:block;max-width:200px;max-height:88px;width:auto;height:auto;object-fit:contain}.default-logo .wordmark{fill:var(--brand-ink)}.eyebrow{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.375rem}.eyebrow.cancelled{color:var(--danger)}h1{font-size:1.3125rem;font-weight:600;letter-spacing:-.02em;line-height:1.25;overflow-wrap:anywhere}.byline{font-size:.8125rem;color:var(--muted);margin-top:.375rem;overflow-wrap:anywhere}.meta{display:flex;flex-direction:column;gap:.625rem;background:var(--subtle);border:1px solid var(--line);border-radius:9px;padding:.875rem;margin-top:1.25rem}.meta-row{display:flex;align-items:flex-start;gap:.625rem;font-size:.875rem;line-height:1.4;min-width:0}.meta-row>div{min-width:0;overflow-wrap:anywhere}.meta-row svg{flex-shrink:0;margin-top:1px;color:var(--muted)}.meta-row .tz{color:var(--muted)}.meta-row a{color:var(--info);overflow-wrap:anywhere}@media (min-width:40em){.meta{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.25rem;padding:1rem 1.125rem}}.section{margin-top:1.375rem}.section-title{font-size:.6875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}.desc{font-size:.875rem;line-height:1.55;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.desc.clamped{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.linkish{display:inline-block;margin-top:.375rem;font-size:.8125rem;font-weight:500;color:var(--info);background:0 0;border:none;padding:0;font-family:inherit;cursor:pointer}.linkish:hover{text-decoration:underline}.people{display:flex;flex-direction:column;gap:.4375rem}.person{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;line-height:1.3}.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--muted);opacity:.45}.dot.accepted{background:var(--success);opacity:1}.dot.declined{background:var(--danger);opacity:1}.dot.tentative{background:var(--warning);opacity:1}.person .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person .tag{font-size:.6875rem;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.0625rem .375rem;flex-shrink:0}hr{border:none;border-top:1px solid var(--line);margin:1.5rem 0 1.25rem}.reply-as{font-size:.8125rem;color:var(--muted);margin-bottom:.625rem;overflow-wrap:anywhere}.reply-as strong{color:var(--text);font-weight:600}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3125rem;padding:.75rem .25rem;font-family:inherit;font-size:.8125rem;font-weight:500;color:var(--text);background:var(--input-bg);border:1px solid var(--border);border-radius:9px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.choice svg{color:var(--muted);transition:color .15s}.choice:hover{border-color:color-mix(in srgb,var(--text) 25%,transparent)}.choice[aria-checked=true]{background:color-mix(in srgb,var(--info) 9%,transparent);border-color:color-mix(in srgb,var(--info) 55%,transparent);color:var(--info)}.choice[aria-checked=true] svg{color:var(--info)}.choice[data-value=accepted][aria-checked=true]{background:color-mix(in srgb,var(--success) 9%,transparent);border-color:color-mix(in srgb,var(--success) 55%,transparent);color:var(--success)}.choice[data-value=accepted][aria-checked=true] svg{color:var(--success)}.choice[data-value=tentative][aria-checked=true]{background:color-mix(in srgb,var(--warning) 10%,transparent);border-color:color-mix(in srgb,var(--warning) 55%,transparent);color:var(--warning)}.choice[data-value=tentative][aria-checked=true] svg{color:var(--warning)}.choice[data-value=declined][aria-checked=true]{background:color-mix(in srgb,var(--danger) 9%,transparent);border-color:color-mix(in srgb,var(--danger) 55%,transparent);color:var(--danger)}.choice[data-value=declined][aria-checked=true] svg{color:var(--danger)}.note-wrap{margin-top:.875rem}.note-label{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:500;color:var(--muted);letter-spacing:.03em;margin-bottom:.3125rem}textarea{width:100%;min-height:72px;resize:vertical;padding:.5625rem .75rem;font-size:.875rem;font-family:inherit;line-height:1.45;background:var(--input-bg);border:1px solid var(--border);border-radius:8px;color:var(--text);outline:0;transition:border-color .15s;-webkit-appearance:none}textarea:focus{border-color:color-mix(in srgb,var(--info) 60%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--info) 12%,transparent)}textarea::placeholder{color:var(--muted);opacity:.7}.btn{width:100%;margin-top:1rem;padding:.6875rem 0;font-size:.9375rem;font-weight:500;font-family:inherit;background:var(--accent);color:var(--accent-fg);border:none;border-radius:8px;cursor:pointer;letter-spacing:-.01em;transition:opacity .15s}.btn:hover{opacity:.88}.btn:active{opacity:.75;transform:scale(.995)}.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}.alert{display:flex;align-items:flex-start;gap:.625rem;padding:.625rem .75rem;background:color-mix(in srgb,var(--brand) 10%,transparent);border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);border-radius:8px;font-size:.8125rem;line-height:1.4;color:var(--danger);margin-top:.875rem}.alert svg{flex-shrink:0;margin-top:1px}.outcome{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.625rem;padding:.25rem 0 0}.badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}.badge.tentative{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning)}.badge.declined{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.badge.neutral{background:color-mix(in srgb,var(--muted) 18%,transparent);color:var(--muted)}.outcome h2{font-size:1rem;font-weight:600;letter-spacing:-.01em}.outcome p{font-size:.8125rem;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}.skeleton{display:flex;flex-direction:column;gap:.75rem;padding:.5rem 0 1rem}.sk{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--subtle) 25%,var(--line) 37%,var(--subtle) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}.sk.title{height:22px;width:70%}.sk.short{width:45%}.sk.box{height:84px;border-radius:9px}@keyframes shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}@media (prefers-reduced-motion:reduce){.sk{animation:none}}[hidden]{display:none!important}.noscript{font-size:.875rem;line-height:1.55;color:var(--text);text-align:center;padding:.5rem 0 1rem}.noscript+#view-loading{display:none}</style> </head> <body> <main class="card"> <div class="logo-wrap" id="logo-wrap" data-loading> <svg class="default-logo" xmlns="http://www.w3.org/2000/svg" viewBox="165 35 616 130" role="img" aria-label="inbuxa"> <g class="symbol" transform="translate(156.02,30.31) scale(1.0082)"><g stroke="#1C4053" stroke-linecap="round" stroke-linejoin="round"><g transform="translate(0 -12)"><path d="M18 58 L32 60 M19 67 L32 65 M110 58 L96 60 M109 67 L96 65" stroke-width="3" fill="none"/><g transform="translate(64 62) scale(0.9) translate(-64 -60)"><path d="M31 64 C30 50 31 38 34 27 Q36 20 42 23 L55 32 Q64 29.5 73 32 L86 23 Q92 20 94 27 C97 38 98 50 97 64 C96 83 82 92 64 92 C46 92 32 83 31 64 Z" fill="#F9A34C" stroke-width="5"/><path d="M38 30 L50 37.5 L40 45.5 Z M90 30 L78 37.5 L88 45.5 Z" fill="#F47F35" stroke="none"/><path d="M44 60 Q49.5 53 55 60 M73 60 Q78.5 53 84 60" stroke-width="4.2" fill="none"/><path d="M60.8 65.5 h6.4 l-3.2 3.6 z" fill="#1C4053" stroke-width="2"/><path d="M56 71.5 Q60 76.5 64 71.5 Q68 76.5 72 71.5" stroke-width="3.5" fill="none"/></g></g><rect x="12" y="73" width="104" height="51" rx="9" fill="#46CAC3" stroke-width="4.5"/><rect x="21" y="89" width="86" height="10" rx="2.5" fill="#1C4053" stroke="none"/><rect x="27" y="85.5" width="26" height="14" rx="2" fill="#FFFFFF" stroke-width="2.8"/><path d="M28.5 87 L40 93.5 L51.5 87" stroke-width="2.3" fill="none"/><circle cx="99" cy="94" r="2.5" fill="#9FF0E9" stroke="none"/><rect x="21" y="103" width="86" height="9" rx="2.5" fill="#1C4053" stroke="none"/><path d="M28 104.8 L31.8 107.5 L28 110.2 M34.8 110.2 H41" stroke="#9FF0E9" stroke-width="1.9" fill="none"/><circle cx="99" cy="107.5" r="2.5" fill="#9FF0E9" stroke="none"/><rect x="21" y="115.5" width="86" height="4.5" rx="2" fill="#2B8A86" stroke="none"/><circle cx="28" cy="117.75" r="1.6" fill="#F9A34C" stroke="none"/><circle cx="34" cy="117.75" r="1.6" fill="#9FF0E9" stroke="none"/><circle cx="40" cy="117.75" r="1.6" fill="#9FF0E9" stroke="none"/><g transform="translate(0 -12)"><path d="M36.5 90 C36 81 40 76.5 46 76.5 C52 76.5 56 81 55.5 90 C55.5 94 51 96 46 96 C41 96 36.5 94 36.5 90 Z" fill="#F9A34C" stroke-width="4"/><path d="M91.5 90 C92 81 88 76.5 82 76.5 C76 76.5 72 81 72.5 90 C72.5 94 77 96 82 96 C87 96 91.5 94 91.5 90 Z" fill="#F9A34C" stroke-width="4"/><path d="M43 88.5 V93 M49 88.5 V93 M79 88.5 V93 M85 88.5 V93" stroke-width="2.4" fill="none"/></g></g></g> <g class="wordmark"><path d="M70 0V496H196V0ZM133 554Q99 554 75.5 576.0Q52 598 52 634Q52 670 75.5 692.0Q99 714 133 714Q168 714 191.0 692.0Q214 670 214 634Q214 598 191.0 576.0Q168 554 133 554Z" transform="translate(303.25,151.90) scale(0.150000,-0.150000)"/><path d="M70 0V496H194V431H212Q224 457 257.0 480.5Q290 504 357 504Q415 504 458.5 477.5Q502 451 526.0 404.5Q550 358 550 296V0H424V286Q424 342 396.5 370.0Q369 398 318 398Q260 398 228.0 359.5Q196 321 196 252V0Z" transform="translate(340.15,151.90) scale(0.150000,-0.150000)"/><path d="M368 -14Q301 -14 265.0 9.0Q229 32 212 60H194V0H70V700H196V439H214Q225 457 243.5 473.0Q262 489 292.5 499.5Q323 510 368 510Q428 510 479.0 480.5Q530 451 561.0 394.0Q592 337 592 256V240Q592 159 561.0 102.0Q530 45 479.0 15.5Q428 -14 368 -14ZM330 96Q388 96 427.0 133.5Q466 171 466 243V253Q466 325 427.5 362.5Q389 400 330 400Q272 400 233.0 362.5Q194 325 194 253V243Q194 171 233.0 133.5Q272 96 330 96Z" transform="translate(429.55,151.90) scale(0.150000,-0.150000)"/><path d="M259 -8Q201 -8 157.5 18.5Q114 45 90.0 92.0Q66 139 66 200V496H192V210Q192 154 219.5 126.0Q247 98 298 98Q356 98 388.0 136.5Q420 175 420 244V496H546V0H422V65H404Q392 40 359.0 16.0Q326 -8 259 -8Z" transform="translate(522.25,151.90) scale(0.150000,-0.150000)"/><path d="M26 0 206 250 28 496H174L287 331H305L418 496H564L386 250L566 0H418L305 167H287L174 0Z" transform="translate(611.65,151.90) scale(0.150000,-0.150000)"/><path d="M224 -14Q171 -14 129.0 4.5Q87 23 62.5 58.5Q38 94 38 145Q38 196 62.5 230.5Q87 265 130.5 282.5Q174 300 230 300H366V328Q366 363 344.0 385.5Q322 408 274 408Q227 408 204.0 386.5Q181 365 174 331L58 370Q70 408 96.5 439.5Q123 471 167.5 490.5Q212 510 276 510Q374 510 431.0 461.0Q488 412 488 319V134Q488 104 516 104H556V0H472Q435 0 411.0 18.0Q387 36 387 66V67H368Q364 55 350.0 35.5Q336 16 306.0 1.0Q276 -14 224 -14ZM246 88Q299 88 332.5 117.5Q366 147 366 196V206H239Q204 206 184.0 191.0Q164 176 164 149Q164 122 185.0 105.0Q206 88 246 88Z" transform="translate(697.45,151.90) scale(0.150000,-0.150000)"/></g> </svg> </div> <noscript> <p class="noscript">This page needs JavaScript to load the invitation. Enable it, or respond from your calendar application instead.</p> </noscript> <div id="view-loading" class="skeleton" aria-live="polite"> <div class="sk short"></div> <div class="sk title"></div> <div class="sk box"></div> </div> <div id="view-error" class="outcome" hidden aria-live="polite"> <div class="badge neutral" id="error-badge"> <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"/> <line x1="12" y1="8" x2="12" y2="12"/> <line x1="12" y1="16" x2="12.01" y2="16"/> </svg> </div> <h2 id="error-title" tabindex="-1">Something went wrong</h2> <p id="error-detail"></p> </div> <div id="view-event" hidden> <div class="eyebrow" id="kind">Invitation</div> <h1 id="summary"></h1> <div class="byline" id="byline" hidden></div> <div class="meta" id="meta"> <div class="meta-row" id="row-when" hidden> <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="4" width="18" height="18" rx="2"/> <line x1="16" y1="2" x2="16" y2="6"/> <line x1="8" y1="2" x2="8" y2="6"/> <line x1="3" y1="10" x2="21" y2="10"/> </svg> <div id="when"></div> </div> <div class="meta-row" id="row-repeat" hidden> <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <polyline points="17 1 21 5 17 9"/> <path d="M3 11V9a4 4 0 0 1 4-4h14"/> <polyline points="7 23 3 19 7 15"/> <path d="M21 13v2a4 4 0 0 1-4 4H3"/> </svg> <div id="repeat"></div> </div> <div class="meta-row" id="row-where" hidden> <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/> <circle cx="12" cy="10" r="3"/> </svg> <div id="where"></div> </div> <div class="meta-row" id="row-conference" hidden> <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <polygon points="23 7 16 12 23 17 23 7"/> <rect x="1" y="5" width="15" height="14" rx="2" ry="2"/> </svg> <div><a id="conference" href="#" rel="noreferrer noopener" target="_blank"></a></div> </div> </div> <div class="section" id="section-desc" hidden> <div class="section-title" id="desc-title">Description</div> <div class="desc clamped" id="desc"></div> <button type="button" class="linkish" id="desc-toggle" aria-expanded="false" aria-controls="desc" hidden>Show more</button> </div> <div class="section" id="section-people" hidden> <div class="section-title" id="people-title">Attendees</div> <div class="people" id="people"></div> <button type="button" class="linkish" id="people-toggle" aria-expanded="false" aria-controls="people" hidden></button> </div> <div id="respond"> <hr> <div class="reply-as" id="reply-as"></div> <div class="choices" id="choices" role="radiogroup" aria-labelledby="reply-as"> <button type="button" class="choice" data-value="accepted" role="radio" aria-checked="false" tabindex="0"> <svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <polyline points="20 6 9 17 4 12"/> </svg> <span id="label-accepted">Yes</span> </button> <button type="button" class="choice" data-value="tentative" role="radio" aria-checked="false" tabindex="-1"> <svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/> <line x1="12" y1="17" x2="12.01" y2="17"/> <circle cx="12" cy="12" r="10"/> </svg> <span id="label-tentative">Maybe</span> </button> <button type="button" class="choice" data-value="declined" role="radio" aria-checked="false" tabindex="-1"> <svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="6" x2="6" y2="18"/> <line x1="6" y1="6" x2="18" y2="18"/> </svg> <span id="label-declined">No</span> </button> </div> <div class="note-wrap" id="note-wrap" hidden> <div class="note-label"> <label for="note" id="note-label">Note to the organizer (optional)</label> <span id="note-count"></span> </div> <textarea id="note" maxlength="512" rows="3" placeholder="Running ten minutes late, start without me."></textarea> </div> <div class="alert" id="alert" hidden aria-live="polite"> <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"/> <line x1="12" y1="8" x2="12" y2="12"/> <line x1="12" y1="16" x2="12.01" y2="16"/> </svg> <span id="alert-msg"></span> </div> <button type="button" class="btn" id="send" disabled="disabled">Send response</button> </div> <div id="recorded" hidden aria-live="polite"> <hr> <div class="outcome"> <div class="badge" id="recorded-badge"> <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <polyline points="20 6 9 17 4 12"/> </svg> </div> <h2 id="recorded-title" tabindex="-1">Your response has been recorded</h2> <p id="recorded-detail"></p> <button type="button" class="linkish" id="change">Change my response</button> </div> </div> </div> </main> <script>!function(){"use strict";var e=function(e){return document.getElementById(e)};function t(e,t){e&&(e.textContent=null==t?"":String(t))}function n(e){e&&(e.hidden=!1)}function r(e){e&&(e.hidden=!0)}var a={invitation:"Invitation",updatedInvitation:"Updated invitation",cancelled:"Cancelled",description:"Description",attendees:"Attendees",organizer:"Organizer",location:"Location",conference:"Conference",when:"When",you:"you",yes:"Yes",maybe:"Maybe",no:"No",replyAs:"Reply as $name",note:"Note to the organizer (optional)",noteHint:"Add a short message for the organizer.",send:"Send response",update:"Update response",change:"Change my response",recorded:"Your RSVP has been recorded",notified:"The organizer has been notified.",accepted:"Accepted",tentative:"Tentative",declined:"Declined",showMore:"Show more",showLess:"Show less",failed:"RSVP failed",invalidLink:"This RSVP link is not valid.",error:"Temporary server failure. If the problem persists, contact your administrator."},o=["accepted","tentative","declined"];function i(e){return-1!==o.indexOf(e)}var c=a;function l(e,t){var n=c&&c[e]||a[e]||e;return null!=t&&(n=n.replace("$name",t)),n}var d,s,u=new URL(window.location.href),p=u.searchParams.get("i")||"",f=(u.searchParams.get("m")||"").toLowerCase(),v=(d=u.pathname.replace(/\/+$/,""),((s=d.lastIndexOf("/calendar/rsvp"))>=0?d.slice(0,s):"")+"/api/calendar/rsvp");function h(e){return fetch(v,{method:"POST",credentials:"omit",cache:"no-store",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(function(e){return e.json().catch(function(){return{type:"error",reason:"serverError"}})})}var g=null,m="",w=!1,y=!1;function b(){r(e("alert"))}function C(r){t(e("alert-msg"),r),n(e("alert"))}function L(a,o){r(e("view-loading")),r(e("view-event")),a=a||l("failed"),document.title=a,t(e("error-title"),a),t(e("error-detail"),o||l("error")),n(e("view-error")),e("error-title").focus()}function k(){for(var a=g.attendees||[],o=e("people");o.firstChild;)o.removeChild(o.firstChild);if(a.length){for(var i=w?a.length:Math.min(a.length,5),c=0;c<i;c++){var d=a[c],s=document.createElement("div");s.className="person";var u=document.createElement("span");u.className="dot "+String(d.partstat||"").toLowerCase(),s.appendChild(u);var p=document.createElement("span");if(p.className="who",t(p,d.name||d.email),s.appendChild(p),d.isOrganizer){var f=document.createElement("span");f.className="tag",t(f,l("organizer")),s.appendChild(f)}if(g.attendee&&d.email&&d.email.toLowerCase()===String(g.attendee.email||"").toLowerCase()){var v=document.createElement("span");v.className="tag",t(v,l("you")),s.appendChild(v)}o.appendChild(s)}var h=e("people-toggle");a.length>5?(t(h,l(w?"showLess":"showMore")),n(h)):r(h),n(e("section-people"))}else r(e("section-people"))}function A(t){if(!y&&i(t)){m=t;for(var r=e("choices").querySelectorAll(".choice"),a=0;a<r.length;a++){var o=r[a].getAttribute("data-value")===t;r[a].setAttribute("aria-checked",o?"true":"false"),r[a].tabIndex=o?0:-1}n(e("note-wrap")),e("send").disabled=!t,b()}}function S(){var n=e("note").value.length;t(e("note-count"),n?n+" / 512":"")}function E(t){var n=e("logo-wrap");var r=v.replace(/\/api\/calendar\/rsvp$/,"")+"/logo";t&&(r+="?domain="+encodeURIComponent(t));var a=new Image;a.className="custom-logo",a.alt="Logo",a.onload=function(){for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(a),n.removeAttribute("data-loading")},a.onerror=function(){n.removeAttribute("data-loading")},a.src=r}function N(e){for(var t=e&&e.attendees||[],n=0;n<t.length;n++)if(t[n].isOrganizer)return t[n];return null}if(e("choices").addEventListener("click",function(e){var t=e.target.closest?e.target.closest(".choice"):null;t&&A(t.getAttribute("data-value"))}),e("choices").addEventListener("keydown",function(t){var n="ArrowRight"===t.key||"ArrowDown"===t.key?1:"ArrowLeft"===t.key||"ArrowUp"===t.key?-1:0;if(n){t.preventDefault();var r=o.indexOf(m),a=o[(r+n+o.length)%o.length];A(a);var i=e("choices").querySelector('.choice[data-value="'+a+'"]');i&&i.focus()}}),e("send").addEventListener("click",function(){if(!y&&i(m)){var a=e("send");y=!0,a.disabled=!0,b(),h({token:p,partstat:m,comment:e("note").value.trim()}).then(function(o){if(o&&"recorded"===o.type)return g.partstat=o.partstat||m,i=String(g.partstat).toLowerCase(),e("recorded-badge").className="badge"+("accepted"===i?"":" "+i),t(e("recorded-title"),l("recorded")),t(e("recorded-detail"),l(i)+". "+l("notified")),t(e("change"),l("change")),r(e("respond")),n(e("recorded")),void e("recorded-title").focus();var i;y=!1,a.disabled=!1,C(o&&o.message||l("error"))}).catch(function(){y=!1,a.disabled=!1,C(l("error"))})}}),e("note").addEventListener("input",S),e("desc-toggle").addEventListener("click",function(){var n=e("desc").classList.toggle("clamped");t(e("desc-toggle"),l(n?"showMore":"showLess")),e("desc-toggle").setAttribute("aria-expanded",n?"false":"true")}),e("people-toggle").addEventListener("click",function(){w=!w,e("people-toggle").setAttribute("aria-expanded",w?"true":"false"),k()}),e("change").addEventListener("click",function(){y=!1,r(e("recorded")),n(e("respond")),e("send").disabled=!m,t(e("send"),l("update"))}),!p)return E(""),void L(null,a.invalidLink);h({token:p}).then(function(o){E(function(e){var t=N(e),n=t&&t.email,r=n?String(n).lastIndexOf("@"):-1;return-1!==r?String(n).slice(r+1).toLowerCase():""}(o)),function(e){if(e&&e.language){var t=document.documentElement;t.lang=e.language,t.dir="rtl"===e.dir?"rtl":"ltr"}}(o),o&&o.labels&&(c=o.labels),o&&"invitation"===o.type?(g=o,function(){c=g.labels||a;var o=g.kind||"invitation",d=e("kind");t(d,l("update"===o?"updatedInvitation":"cancel"===o?"cancelled":"invitation")),"cancel"===o&&(d.className="eyebrow cancelled"),t(e("summary"),g.summary||l("invitation")),document.title=g.summary||l("invitation");var s=N(g);if(s&&(t(e("byline"),l("organizer")+": "+(s.name||s.email)),n(e("byline"))),g.when&&(t(e("when"),g.when),n(e("row-when"))),g.recurrence&&(t(e("repeat"),g.recurrence),n(e("row-repeat"))),g.location&&(t(e("where"),g.location),n(e("row-where"))),g.conference){var u=e("conference");t(u,g.conference.value),g.conference.url?u.href=g.conference.url:u.removeAttribute("href"),n(e("row-conference"))}g.when||g.recurrence||g.location||g.conference||r(e("meta")),g.description&&(t(e("desc-title"),l("description")),t(e("desc"),g.description),n(e("section-desc"))),t(e("people-title"),l("attendees")),k(),t(e("label-accepted"),l("yes")),t(e("label-tentative"),l("maybe")),t(e("label-declined"),l("no")),t(e("note-label"),l("note")),e("note").placeholder=l("noteHint"),S();var p=g.attendee||{};t(e("reply-as"),l("replyAs",p.name?p.name+" ("+p.email+")":p.email));var v=String(g.partstat||"").toLowerCase(),h=i(v);if(t(e("send"),l(h?"update":"send")),r(e("view-loading")),n(e("view-event")),g.description){var m=e("desc");m.scrollHeight-m.clientHeight>4&&(t(e("desc-toggle"),l("showMore")),n(e("desc-toggle")))}"cancel"!==o?i(f)?A(f):h&&A(v):r(e("respond"))}()):L(o&&o.title,o&&o.message)}).catch(function(){E(""),L()})}()</script> </body> </html> |