CoolFace
Apppublic

build-small-hackathon/hackathon-advisor

sourceHugging Facemitupdated 3mo agoView on Hugging Face
16likes
index.html414 linesDownload Raw Back to static
1<!doctype html>2<html lang="en">3  <head>4    <meta charset="utf-8" />5    <meta name="viewport" content="width=device-width, initial-scale=1" />6    <title>The Unwritten Almanac</title>7    <link rel="stylesheet" href="/static/styles.css" />8  </head>9  <body>10    <svg class="icon-sprite" aria-hidden="true">11      <symbol id="icon-quill" viewBox="0 0 24 24">12        <path d="M20 4c-6 1-11 5-13 11l-2 5 5-2c6-2 10-7 11-13z" />13        <path d="M9 15c2-3 4-5 7-7" />14      </symbol>15      <symbol id="icon-gap" viewBox="0 0 24 24">16        <path d="M12 3v4M12 17v4M3 12h4M17 12h4" />17        <circle cx="12" cy="12" r="3.2" />18      </symbol>19      <symbol id="icon-plan" viewBox="0 0 24 24">20        <path d="M5 4h11l3 3v13H5z" />21        <path d="M9 9h6M9 13h6M9 17h3" />22      </symbol>23      <symbol id="icon-rank" viewBox="0 0 24 24">24        <path d="M6 20V10M12 20V4M18 20v-7" />25      </symbol>26      <symbol id="icon-example" viewBox="0 0 24 24">27        <path d="M12 3l2.2 5.6L20 9l-4 4 1 6-5-3-5 3 1-6-4-4 5.8-.4z" />28      </symbol>29      <symbol id="icon-download" viewBox="0 0 24 24">30        <path d="M12 4v11M7 11l5 5 5-5M5 20h14" />31      </symbol>32      <symbol id="icon-reset" viewBox="0 0 24 24">33        <path d="M4 5v5h5" />34        <path d="M5.5 14a7 7 0 1 0 1.2-6.7L4 10" />35      </symbol>36      <symbol id="icon-search" viewBox="0 0 24 24">37        <circle cx="11" cy="11" r="6" />38        <path d="M16 16l4 4" />39      </symbol>40      <symbol id="icon-x" viewBox="0 0 24 24">41        <path d="M6 6l12 12M18 6L6 18" />42      </symbol>43      <symbol id="icon-chat" viewBox="0 0 24 24">44        <path d="M4 5h16v11H9l-5 4z" />45        <path d="M8 9h8M8 12h5" />46      </symbol>47      <symbol id="icon-check" viewBox="0 0 24 24">48        <path d="M5 12l4 4 10-11" />49      </symbol>50      <symbol id="icon-mic" viewBox="0 0 24 24">51        <path d="M12 3a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3z" />52        <path d="M5 11a7 7 0 0 0 14 0M12 18v3M9 21h6" />53      </symbol>54      <symbol id="icon-upload" viewBox="0 0 24 24">55        <path d="M12 17V4M7 9l5-5 5 5M5 20h14" />56      </symbol>57    </svg>58 59    <div class="desk-glow"></div>60    <main id="atlas-view" class="atlas-shell" aria-label="Live project atlas">61      <section class="atlas-stage">62        <header class="atlas-topbar">63          <div class="atlas-title-block">64            <p class="atlas-kicker">Live project atlas</p>65            <h1>Idea Map</h1>66          </div>67          <form id="atlas-search-form" class="atlas-search" role="search">68            <label class="sr-only" for="atlas-search">Search the project atlas</label>69            <svg class="icon" aria-hidden="true"><use href="#icon-search"></use></svg>70            <input71              id="atlas-search"72              type="search"73              autocomplete="off"74              spellcheck="false"75              placeholder="Search projects, ideas, quests..."76            />77            <button id="atlas-search-clear" class="atlas-search-clear" type="button" title="Clear search" hidden>78              <svg class="icon" aria-hidden="true"><use href="#icon-x"></use></svg>79            </button>80          </form>81          <div class="atlas-actions">82            <span id="atlas-status" class="atlas-status" aria-live="polite">Loading atlas.</span>83            <button id="refresh-dashboard" class="btn btn-ghost" type="button" title="Refresh the project atlas">84              <svg class="icon"><use href="#icon-reset"></use></svg>85              Refresh map86            </button>87            <button88              id="open-atlas-chat"89              class="btn btn-ghost"90              type="button"91              title="Chat with the atlas guide"92              aria-haspopup="dialog"93              aria-controls="atlas-chat"94            >95              <svg class="icon"><use href="#icon-chat"></use></svg>96              Ask the atlas97            </button>98            <button id="open-advisor" class="btn btn-ink" type="button" title="Open the idea advisor">99              <svg class="icon"><use href="#icon-quill"></use></svg>100              Open advisor101            </button>102          </div>103        </header>104 105        <section class="atlas-layout">106          <aside class="atlas-panel atlas-left" aria-label="Atlas filters">107            <div class="atlas-stat-grid" id="atlas-stats"></div>108            <section id="atlas-search-section" class="atlas-section atlas-search-section" hidden>109              <div class="eyebrow">Best matches</div>110              <p id="atlas-search-summary" class="atlas-search-summary"></p>111              <div id="atlas-search-results" class="atlas-list"></div>112            </section>113            <section class="atlas-section">114              <div class="eyebrow">Clusters</div>115              <div id="atlas-clusters" class="atlas-list"></div>116            </section>117            <section class="atlas-section">118              <div class="eyebrow">Quests</div>119              <div id="atlas-quests" class="atlas-list"></div>120            </section>121          </aside>122 123          <section class="atlas-map-wrap" aria-label="Embedding project map">124            <svg id="atlas-svg" class="atlas-svg" viewBox="0 0 100 100" role="img" aria-label="Project embedding map"></svg>125            <div id="atlas-refresh-progress" class="atlas-refresh-progress" hidden></div>126          </section>127 128          <aside class="atlas-panel atlas-right" aria-label="Project details">129            <section class="atlas-section">130              <div class="eyebrow">Selected project</div>131              <div id="atlas-detail" class="atlas-detail"></div>132            </section>133            <section class="atlas-section">134              <div class="eyebrow">Cluster report</div>135              <div id="atlas-report" class="atlas-report"></div>136            </section>137          </aside>138        </section>139 140        <div id="atlas-chat-scrim" class="atlas-chat-scrim" hidden></div>141        <aside142          id="atlas-chat"143          class="atlas-chat-drawer"144          role="dialog"145          aria-modal="false"146          aria-label="Atlas guide chat"147          hidden148        >149          <header class="atlas-chat-header">150            <div class="atlas-chat-title">151              <p class="atlas-kicker">Atlas guide</p>152              <h2>Ask the field</h2>153            </div>154            <div class="atlas-chat-header-actions">155              <button id="atlas-chat-clear" class="atlas-chat-iconbtn" type="button" title="Clear conversation">156                <svg class="icon"><use href="#icon-reset"></use></svg>157              </button>158              <button id="atlas-chat-close" class="atlas-chat-iconbtn" type="button" title="Close chat" aria-label="Close chat">159                <svg class="icon"><use href="#icon-x"></use></svg>160              </button>161            </div>162          </header>163          <div id="atlas-chat-action" class="atlas-chat-action" hidden></div>164          <div id="atlas-chat-log" class="atlas-chat-log"></div>165          <div id="atlas-chat-status" class="sr-only" role="status" aria-live="polite"></div>166          <div id="atlas-chat-suggestions" class="atlas-chat-suggestions"></div>167          <form id="atlas-chat-form" class="atlas-chat-composer">168            <label class="sr-only" for="atlas-chat-input">Ask about the atlas</label>169            <input170              id="atlas-chat-input"171              type="text"172              autocomplete="off"173              spellcheck="false"174              placeholder="Ask what everyone is building..."175            />176            <button id="atlas-chat-send" class="btn btn-ink" type="submit">Ask</button>177          </form>178        </aside>179      </section>180    </main>181 182    <main id="advisor-view" class="almanac advisor-shell" hidden>183      <section class="sheet" aria-label="The Unwritten Almanac">184        <header class="masthead">185          <div class="masthead-l">186            <svg class="crest" viewBox="0 0 64 64" aria-hidden="true">187              <g188                fill="none"189                stroke="currentColor"190                stroke-width="1.5"191                stroke-linecap="round"192                stroke-linejoin="round"193              >194                <path d="M32 30c-6-12-18-16-26-10 2 9 9 17 20 18" />195                <path d="M32 30c6-12 18-16 26-10-2 9-9 17-20 18" />196                <path d="M32 32c-5 9-14 12-21 9 2-6 7-11 15-12" opacity=".6" />197                <path d="M32 32c5 9 14 12 21 9-2-6-7-11-15-12" opacity=".6" />198                <path199                  d="M32 20c-2.4 0-4 2-4 6s1.6 14 4 18c2.4-4 4-14 4-18s-1.6-6-4-6z"200                  fill="currentColor"201                  fill-opacity=".08"202                />203                <circle cx="28.5" cy="24.5" r="2.3" fill="currentColor" fill-opacity=".15" />204                <circle cx="35.5" cy="24.5" r="2.3" fill="currentColor" fill-opacity=".15" />205                <circle cx="28.5" cy="24.5" r=".7" fill="currentColor" />206                <circle cx="35.5" cy="24.5" r=".7" fill="currentColor" />207                <path d="M30 19c-1-2-2-3.4-3.6-4M34 19c1-2 2-3.4 3.6-4" />208              </g>209            </svg>210            <div>211              <h1>The Unwritten Almanac</h1>212              <div class="sub">Originality map and build plan for your next idea</div>213            </div>214          </div>215          <div class="masthead-r">216            <div id="provenance" class="provenance" aria-live="polite">Opening the current map.</div>217            <button id="open-atlas" class="btn btn-ghost" type="button" title="Return to the atlas">Atlas</button>218          </div>219        </header>220 221        <nav class="mobile-nav" aria-label="Sections">222          <button type="button" class="active" data-tab="page">Page</button>223          <button type="button" data-tab="proof">Evidence</button>224          <button type="button" data-tab="almanac">Board</button>225        </nav>226 227        <div id="spread" class="spread" data-tab="page">228          <aside class="col col-margin" aria-label="Idea board and setup">229            <section class="section">230              <div class="eyebrow">Idea board <span id="idea-count" class="count">0</span></div>231              <div id="ideas" class="idea-list"></div>232            </section>233 234            <section class="section">235              <div class="eyebrow">Builder profile</div>236              <div id="profile" class="profile-grid"></div>237            </section>238 239            <section class="section">240              <div class="eyebrow">Goals <span id="goal-count" class="count">0</span></div>241              <div id="goals" class="goal-list"></div>242            </section>243          </aside>244 245          <section class="col col-page" aria-label="Current idea">246            <form id="turn-form" class="composer">247              <label class="sr-only" for="message">Describe your idea</label>248              <textarea249                id="message"250                name="message"251                class="prompt"252                rows="2"253                autocomplete="off"254                placeholder="A local-first agent that helps..."255              ></textarea>256              <div class="underline"></div>257 258              <div class="toolbar voice-row" aria-label="Voice input">259                <button id="record-voice" class="btn btn-voice" type="button" title="Record an idea">260                  <svg class="icon"><use href="#icon-mic"></use></svg>261                  Speak262                </button>263                <button id="upload-voice" class="btn btn-ghost" type="button" title="Transcribe a voice note">264                  <svg class="icon"><use href="#icon-upload"></use></svg>265                  Voice note266                </button>267                <input id="voice-file" type="file" accept="audio/*" hidden />268              </div>269 270              <div class="toolbar command-row" aria-label="Advisor commands">271                <button id="submit" class="btn btn-ink" type="submit" title="Score this idea against the map">272                  <svg class="icon"><use href="#icon-quill"></use></svg>273                  Score idea274                </button>275 276                <div class="menu" data-menu="actions">277                  <button278                    type="button"279                    id="actions-trigger"280                    class="btn menu-trigger"281                    aria-haspopup="true"282                    aria-expanded="false"283                    title="More advisor actions"284                  >285                    Actions286                    <span class="caret" aria-hidden="true">▾</span>287                  </button>288                  <div class="menu-list" id="actions-menu" role="menu" hidden>289                    <button type="button" class="menu-item" role="menuitem" data-command="write bolder and find whitespace">290                      <svg class="icon"><use href="#icon-gap"></use></svg>291                      <span class="mi-text"><strong>Find a gap</strong><small>An under-explored direction to try</small></span>292                    </button>293                    <button type="button" class="menu-item" role="menuitem" data-command="make a build plan">294                      <svg class="icon"><use href="#icon-plan"></use></svg>295                      <span class="mi-text"><strong>Make a plan</strong><small>Draft build steps for the current idea</small></span>296                    </button>297                    <button type="button" class="menu-item" role="menuitem" data-command="compare ideas">298                      <svg class="icon"><use href="#icon-rank"></use></svg>299                      <span class="mi-text"><strong>Compare ideas</strong><small>Rank the ideas on your board</small></span>300                    </button>301                  </div>302                </div>303 304                <span class="spacer"></span>305 306                <div class="menu" data-menu="more">307                  <button308                    type="button"309                    id="more-trigger"310                    class="btn btn-ghost menu-trigger btn-icon"311                    aria-haspopup="true"312                    aria-expanded="false"313                    title="Export and session options"314                    aria-label="More options"315                  >316                    <span class="caret-dots" aria-hidden="true">⋯</span>317                  </button>318                  <div class="menu-list menu-list-right" id="more-menu" role="menu" hidden>319                    <button type="button" id="load-demo" class="menu-item" role="menuitem" aria-label="Load example idea board">320                      <svg class="icon"><use href="#icon-example"></use></svg>321                      Example board322                    </button>323                    <button type="button" id="export-notes" class="menu-item" role="menuitem" aria-label="Export build notes" disabled>324                      <svg class="icon"><use href="#icon-download"></use></svg>325                      Build notes326                    </button>327                    <button type="button" id="export-chapter" class="menu-item" role="menuitem" aria-label="Export idea-board chapter" disabled>328                      <svg class="icon"><use href="#icon-download"></use></svg>329                      Chapter330                    </button>331                    <button type="button" id="export-artifact" class="menu-item" role="menuitem" aria-label="Export current page as PNG" disabled>332                      <svg class="icon"><use href="#icon-download"></use></svg>333                      Page PNG334                    </button>335                    <button type="button" id="reset-session" class="menu-item menu-item-danger" role="menuitem" aria-label="Reset session">336                      <svg class="icon"><use href="#icon-reset"></use></svg>337                      Reset session338                    </button>339                  </div>340                </div>341              </div>342            </form>343 344            <div id="corrections" class="marginalia" aria-live="polite"></div>345 346            <div id="turn-progress" class="turn-progress" hidden aria-live="polite">347              <div class="turn-stage">348                <span id="turn-stage-icon" class="ts-icon">🪶</span>349                <span id="turn-stage-text" class="ts-text">Thinking</span>350                <span id="turn-tokens" class="ts-tokens"></span>351                <span id="turn-eta" class="ts-eta"></span>352              </div>353              <div class="turn-bar" role="progressbar" aria-label="Turn progress">354                <div id="turn-bar-fill" class="turn-bar-fill"></div>355              </div>356              <div id="tool-chips" class="tool-chips"></div>357            </div>358 359            <article class="fate">360              <span id="verdict-stamp" class="verdict-stamp verdict-ready">361                <span class="seal-dot"></span>362                <span id="verdict">READY</span>363              </span>364              <p id="ink" class="prophecy">365                The book is open. Describe a project idea, compare it against the current map, then turn the result into366                concrete build steps.367              </p>368            </article>369 370            <section class="section plan">371              <div class="eyebrow">Build path</div>372              <ol id="plan" class="plan-list"></ol>373            </section>374          </section>375 376          <aside class="col col-proof" aria-label="Score and evidence">377            <section class="section">378              <div class="eyebrow">Score</div>379              <div class="seal-wrap">380                <div id="seal" class="seal">381                  <span id="overall" class="seal-overall">0.0</span>382                  <span class="seal-of">out of ten</span>383                </div>384                <div class="seal-meta">385                  <div id="seal-verdict" class="v ready">READY</div>386                  <div id="seal-copy" class="t">No idea has been scored yet.</div>387                </div>388              </div>389              <div id="score" class="quadrants" aria-label="Score breakdown"></div>390            </section>391 392            <section class="section">393              <div class="eyebrow">Idea map</div>394              <div id="wood-map" class="wood-map"></div>395            </section>396 397            <section class="section">398              <div class="eyebrow">Closest project echoes</div>399              <div id="projects" class="project-list"></div>400            </section>401 402            <section class="section">403              <div class="eyebrow">Directions to test</div>404              <div id="whitespace" class="whitespace-list"></div>405            </section>406          </aside>407        </div>408      </section>409    </main>410 411    <script type="module" src="/static/app.js"></script>412  </body>413</html>414