सामग्री पर जाएँ
अनुभाग
भाषा, अभी हिन्दी
Rastrillo डिज़ाइन सिस्टम

रूट

वे टुकड़े जो पूरा उत्तर हैं, किसी उत्तर का हिस्सा नहीं।

हर उदाहरण असली है, पर उसके लिंक कहीं नहीं ले जाते। HTML कॉपी करने के लिए मार्कअप दिखाता है।

error-page

त्रुटि प्रतिक्रिया का पूरा हिस्सा: स्थिति, एक सच्चा वाक्य, वापस जाने का रास्ता, और 500 के संदर्भ जो एक प्रशासक काम में ले सके।

404: नहीं मिला

पूर्वावलोकन
<div rst-error>
  <p rst-error-status>404</p>
  <h1 rst-error-title>वह पृष्ठ नहीं मिला</h1>
  <p rst-error-body>हो सकता है कि लिंक पुराना हो, या पृष्ठ किसी और पते पर चला गया हो। पता जाँचें, या शुरुआत पर वापस जाएँ।</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">आरंभ पृष्ठ</a>
  </p>
</div>
{{template "error-page" dict "Status" 404 "HomeHref" "/"}}

403: पहुँच नहीं

पूर्वावलोकन
<div rst-error>
  <p rst-error-status>403</p>
  <h1 rst-error-title>आप इसे नहीं देख सकते</h1>
  <p rst-error-body>आपके खाते के पास यहाँ पहुँच नहीं है। अगर आपको लगता है कि होनी चाहिए, तो इस साइट को चलाने वाले से पूछें।</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">आरंभ पृष्ठ</a>
    <a rst-btn href="/posts">वापस जाएँ</a>
  </p>
</div>
{{template "error-page" dict "Status" 403 "HomeHref" "/" "BackHref" "/posts"}}

422: संसाधित नहीं हो सका

पूर्वावलोकन
<div rst-error>
  <p rst-error-status>422</p>
  <h1 rst-error-title>यह भेजा नहीं जा सका</h1>
  <p rst-error-body>जो भेजा गया उसमें कुछ सही नहीं था। वापस जाकर फिर कोशिश करें; कुछ भी सहेजा नहीं गया।</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">आरंभ पृष्ठ</a>
    <a rst-btn href="/posts/1/edit">वापस जाएँ</a>
  </p>
</div>
{{template "error-page" dict
    "Status" 422
    "HomeHref" "/"
    "BackHref" "/posts/1/edit"}}

500: सर्वर त्रुटि

पूर्वावलोकन
<div rst-error>
  <p rst-error-status>500</p>
  <h1 rst-error-title>हमारी ओर से कुछ गड़बड़ हो गई</h1>
  <p rst-error-body>यह आपकी गलती नहीं है। समस्या दर्ज कर ली गई है। थोड़ी देर में फिर कोशिश करें; अगर ऐसा होता रहे, तो नीचे दिया गया संदर्भ बताएँ।</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">आरंभ पृष्ठ</a>
  </p>
  <p class="rst-mono" rst-error-ref dir="auto">संदर्भ: k3f9tq</p>
</div>
{{template "error-page" dict "Status" 500 "HomeHref" "/" "Ref" "k3f9tq"}}

500 अकेली ऐसी स्थिति है जिसके साथ संदर्भ आता है: संचालक उसे लॉग में grep कर सकता है।

503: उपलब्ध नहीं

पूर्वावलोकन
<div rst-error>
  <p rst-error-status>503</p>
  <h1 rst-error-title>हम थोड़ी देर के लिए उपलब्ध नहीं हैं</h1>
  <p rst-error-body>साइट अपडेट हो रही है या व्यस्त है। एक मिनट बाद फिर कोशिश करें।</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">आरंभ पृष्ठ</a>
  </p>
</div>
{{template "error-page" dict "Status" 503 "HomeHref" "/"}}

बाक़ी सब कुछ: सामान्य जोड़ी

पूर्वावलोकन
<div rst-error>
  <p rst-error-status>418</p>
  <h1 rst-error-title>कुछ ठीक नहीं है</h1>
  <p rst-error-body>वह अनुरोध पूरा नहीं हो सका। वापस जाकर फिर कोशिश करें।</p>
  <p rst-error-cta>
    <a rst-btn="primary" href="/">आरंभ पृष्ठ</a>
  </p>
</div>
{{template "error-page" dict "Status" 418 "HomeHref" "/"}}

पाँच स्थितियों के शब्द फ़्रेमवर्क कैटलॉग में लिखे हैं। छठी सामान्य जोड़ी पर लौट आती है, बजाय इसके कि पाठक के सामने कोई ग़ायब कुंजी का नाम रख दिया जाए।

back-nav

एक स्तर ऊपर लौटने वाला लिंक, दिखाने या संपादन स्क्रीन के ऊपर।

किसी रिकॉर्ड पर वापस

पूर्वावलोकन
<nav rst-back-nav>
  <a href="/orders/1">← ऑर्डर AB3PX</a>
</nav>
{{template "back-nav" dict "Href" "/orders/1" "Label" "ऑर्डर AB3PX"}}

locale-menu

भाषा बदलने वाला: एक details मेन्यू, जिसमें /_locale को भेजे जाने वाले एक-फ़ील्ड POST फ़ॉर्म हैं, ताकि चुनाव locale कुकी में जा बैठे और पाठक उसी पथ पर बना रहे।

बारह भाषाएँ, मौजूदा भाषा उभरी हुई।

पूर्वावलोकन
<details rst-dropdown rst-locale name="rst-menus">
  <summary>
    भाषा
    <span rst-caret aria-hidden="true">
      <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg>
    </span>
  </summary>
  <div rst-dropdown-menu>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="en">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="en">English</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="ga">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="ga">Gaeilge</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="zh-Hans">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="zh-Hans">简体中文</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="es">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="es">Español</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="hi">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="hi" aria-current="true">हिन्दी</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="pt-PT">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="pt-PT">Português</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="bn">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="bn">বাংলা</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="ru">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="ru">Русский</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="ja">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="ja">日本語</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="yue">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="yue">廣東話</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="vi">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="vi">Tiếng Việt</button>
    </form>
    <form method="post" action="/_locale">
      <input type="hidden" name="locale" value="ar">
      <input type="hidden" name="return" value="/">
      <button type="submit" lang="ar">العربية</button>
    </form>
  </div>
</details>
{{template "locale-menu" dict "Items" .Locales "Return" "/"}}

यह /_locale पर पोस्ट करता है, इसलिए इसे सर्वर चाहिए। इसके Items rastrillo.LocaleItems(r) से आते हैं। इस पृष्ठ के अपने हेडर वाला स्विचर सिर्फ़ लिंक वाला संस्करण है।

scheme-menu

रंग योजना स्विच: /_theme पर एक-फ़ील्ड POST फ़ॉर्म का details मेनू, हल्का, गहरा और सिस्टम के लिए, ताकि चुनाव योजना कुकी में दर्ज हो और पाठक उसी पृष्ठ पर बना रहे।

तीन विकल्प, मौजूदा गहरा।

पूर्वावलोकन
<details rst-dropdown rst-scheme name="rst-menus">
  <summary>
    रंग योजना
    <span rst-caret aria-hidden="true">
      <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 9 6 6 6-6"/></svg>
    </span>
  </summary>
  <div rst-dropdown-menu role="group" aria-label="रंग योजना">
    <form method="post" action="/_theme">
      <input type="hidden" name="scheme" value="light">
      <input type="hidden" name="return" value="/">
      <button type="submit">हल्का</button>
    </form>
    <form method="post" action="/_theme">
      <input type="hidden" name="scheme" value="dark">
      <input type="hidden" name="return" value="/">
      <button type="submit" aria-current="true">गहरा</button>
    </form>
    <form method="post" action="/_theme">
      <input type="hidden" name="scheme" value="system">
      <input type="hidden" name="return" value="/">
      <button type="submit">सिस्टम</button>
    </form>
  </div>
</details>
{{template "scheme-menu" dict "Scheme" "dark" "Return" "/"}}

यह /_theme पर पोस्ट करता है, इसलिए इसे सर्वर चाहिए। इसका Scheme rastrillo.SchemeFrom(r) से आता है; ui.ForRequest इसे साथ रखता है। इस पृष्ठ की अपनी पट्टी वाला स्विच गैलरी का अपना है।

api-tokens

apitoken के PageData से टोकन पेज: एक बार दिखने वाला सीक्रेट, बनाने का फ़ॉर्म, सूची और रद्द करने के बटन।

चार टोकन, जिनमें दो सक्रिय

पूर्वावलोकन
<div rst-tokens>
  <section rst-box>
    <form rst-form method="post" action="/tokens">
      <div rst-field>
        <label rst-field-label for="agent">एजेंट का नाम</label>
        <input rst-input type="text" id="agent" name="agent" maxlength="40">
      </div>
      <label rst-switch>
        <input type="checkbox" name="for_self" value="on">
        <span rst-switch-track aria-hidden="true"></span>
        यह टोकन मेरे लिए है, किसी एजेंट के लिए नहीं
      </label>
      <fieldset rst-choice>
        <legend>एक्सेस</legend>
        <div rst-choice-cards>
          <label>
            <input type="radio" name="access" value="write" checked>
            <span>
              <span rst-choice-title>पढ़ना और लिखना</span>
            </span>
          </label>
          <label>
            <input type="radio" name="access" value="read">
            <span>
              <span rst-choice-title>केवल पढ़ना</span>
            </span>
          </label>
        </div>
      </fieldset>
      <div rst-field>
        <label rst-field-label for="expiry">समाप्ति</label>
        <select rst-input="short" id="expiry" name="expiry">
          <option value="30">30 दिन</option>
          <option value="90" selected>90 दिन</option>
          <option value="365">1 साल</option>
          <option value="never">कभी नहीं</option>
        </select>
      </div>
      <div rst-form-foot>
        <button rst-btn="primary lg" type="submit">टोकन बनाएँ</button>
      </div>
    </form>
  </section>
  <div rst-card rst-tokens-list>
    <div rst-lrow="head">
      <span>टोकन</span>
      <span class="rst-m-hide">एक्सेस</span>
      <span class="rst-m-hide">बनाया गया</span>
      <span class="rst-m-hide">आख़िरी बार इस्तेमाल</span>
      <span class="rst-m-hide">समाप्ति</span>
      <span></span>
      <span></span>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper के लिए Claude</span>
        <small>
          <code>k3Jx9QpL2mWa</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>एक्सेस</span>पढ़ना और लिखना</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>बनाया गया</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>आख़िरी बार इस्तेमाल</span><time datetime="2026-08-11">2026-08-11</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>समाप्ति</span><time datetime="2026-10-31">2026-10-31</time></span>
      <span rst-tokens-state></span>
      <details rst-row-menu name="rst-menus">
        <summary aria-label="Grace Hopper के लिए Claude के लिए कार्रवाइयाँ">
          <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>
        </summary>
        <div rst-row-menu-panel>
          <form method="post" action="/tokens/revoke">
            <input type="hidden" name="id" value="k3Jx9QpL2mWa">
            <button type="submit">रद्द करें</button>
          </form>
        </div>
      </details>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper</span>
        <small>
          <code>Qm2vR8sT4xYb</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>एक्सेस</span>केवल पढ़ना</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>बनाया गया</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>आख़िरी बार इस्तेमाल</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>समाप्ति</span>कभी नहीं</span>
      <span rst-tokens-state></span>
      <details rst-row-menu name="rst-menus">
        <summary aria-label="Grace Hopper के लिए कार्रवाइयाँ">
          <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>
        </summary>
        <div rst-row-menu-panel>
          <form method="post" action="/tokens/revoke">
            <input type="hidden" name="id" value="Qm2vR8sT4xYb">
            <button type="submit">रद्द करें</button>
          </form>
        </div>
      </details>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper के लिए Codex</span>
        <small>
          <code>Zp7wN1cH6kLd</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>एक्सेस</span>पढ़ना और लिखना</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>बनाया गया</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>आख़िरी बार इस्तेमाल</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>समाप्ति</span>कभी नहीं</span>
      <span rst-tokens-state><span rst-status rst-tone="neutral">रद्द</span></span>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper के लिए Nightly import</span>
        <small>
          <code>Vb4tG9yK3nMe</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>एक्सेस</span>केवल पढ़ना</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>बनाया गया</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>आख़िरी बार इस्तेमाल</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>समाप्ति</span><time datetime="2026-08-11">2026-08-11</time></span>
      <span rst-tokens-state><span rst-status rst-tone="warning">समाप्त</span></span>
    </div>
  </div>
  <div rst-tokens-revoke>
    <form method="post" action="/tokens/revoke-agent">
      <input type="hidden" name="agent" value="Claude">
      <button rst-btn type="submit">इस एजेंट के सभी टोकन रद्द करें: Claude</button>
    </form>
    <form method="post" action="/tokens/revoke-all">
      <button rst-btn="danger" type="submit">सभी टोकन रद्द करें</button>
    </form>
  </div>
</div>
{{template "api-tokens" dict "Page" .Page "Path" "/tokens"}}

Handlers जो Render को देता है उसे Page के रूप में और पेज का अपना पाथ Path के रूप में दें। रद्द करने के फ़ॉर्म Path/revoke, Path/revoke-agent और Path/revoke-all पर भेजते हैं; किसी एक को बदलने के लिए RevokePath, RevokeAgentPath या RevokeAllPath सेट करें।

अभी बनाया गया: सीक्रेट, एक बार दिखाया गया

पूर्वावलोकन
<div rst-tokens>
  <div rst-callout rst-tone="positive" tabindex="-1" autofocus>
    <span rst-callout-ic aria-hidden="true">
      <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>
    </span>
    <div rst-callout-body>
      <strong>इस टोकन को अभी कॉपी करें। यह दोबारा नहीं दिखाया जाएगा।</strong>
      <p>
        <code rst-tokens-secret>harbour_k3Jx9QpL2mWa_6bD2qK9xWz4rT8vN1mP3sL7yF5hJ0cG2aE4uB</code>
      </p>
    </div>
  </div>
  <section rst-box>
    <form rst-form method="post" action="/tokens">
      <div rst-field>
        <label rst-field-label for="agent">एजेंट का नाम</label>
        <input rst-input type="text" id="agent" name="agent" maxlength="40">
      </div>
      <label rst-switch>
        <input type="checkbox" name="for_self" value="on">
        <span rst-switch-track aria-hidden="true"></span>
        यह टोकन मेरे लिए है, किसी एजेंट के लिए नहीं
      </label>
      <fieldset rst-choice>
        <legend>एक्सेस</legend>
        <div rst-choice-cards>
          <label>
            <input type="radio" name="access" value="write" checked>
            <span>
              <span rst-choice-title>पढ़ना और लिखना</span>
            </span>
          </label>
          <label>
            <input type="radio" name="access" value="read">
            <span>
              <span rst-choice-title>केवल पढ़ना</span>
            </span>
          </label>
        </div>
      </fieldset>
      <div rst-field>
        <label rst-field-label for="expiry">समाप्ति</label>
        <select rst-input="short" id="expiry" name="expiry">
          <option value="30">30 दिन</option>
          <option value="90" selected>90 दिन</option>
          <option value="365">1 साल</option>
          <option value="never">कभी नहीं</option>
        </select>
      </div>
      <div rst-form-foot>
        <button rst-btn="primary lg" type="submit">टोकन बनाएँ</button>
      </div>
    </form>
  </section>
  <div rst-card rst-tokens-list>
    <div rst-lrow="head">
      <span>टोकन</span>
      <span class="rst-m-hide">एक्सेस</span>
      <span class="rst-m-hide">बनाया गया</span>
      <span class="rst-m-hide">आख़िरी बार इस्तेमाल</span>
      <span class="rst-m-hide">समाप्ति</span>
      <span></span>
      <span></span>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper के लिए Claude</span>
        <small>
          <code>k3Jx9QpL2mWa</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>एक्सेस</span>पढ़ना और लिखना</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>बनाया गया</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>आख़िरी बार इस्तेमाल</span><time datetime="2026-08-11">2026-08-11</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>समाप्ति</span><time datetime="2026-10-31">2026-10-31</time></span>
      <span rst-tokens-state></span>
      <details rst-row-menu name="rst-menus">
        <summary aria-label="Grace Hopper के लिए Claude के लिए कार्रवाइयाँ">
          <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>
        </summary>
        <div rst-row-menu-panel>
          <form method="post" action="/tokens/revoke">
            <input type="hidden" name="id" value="k3Jx9QpL2mWa">
            <button type="submit">रद्द करें</button>
          </form>
        </div>
      </details>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper</span>
        <small>
          <code>Qm2vR8sT4xYb</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>एक्सेस</span>केवल पढ़ना</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>बनाया गया</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>आख़िरी बार इस्तेमाल</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>समाप्ति</span>कभी नहीं</span>
      <span rst-tokens-state></span>
      <details rst-row-menu name="rst-menus">
        <summary aria-label="Grace Hopper के लिए कार्रवाइयाँ">
          <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>
        </summary>
        <div rst-row-menu-panel>
          <form method="post" action="/tokens/revoke">
            <input type="hidden" name="id" value="Qm2vR8sT4xYb">
            <button type="submit">रद्द करें</button>
          </form>
        </div>
      </details>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper के लिए Codex</span>
        <small>
          <code>Zp7wN1cH6kLd</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>एक्सेस</span>पढ़ना और लिखना</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>बनाया गया</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>आख़िरी बार इस्तेमाल</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>समाप्ति</span>कभी नहीं</span>
      <span rst-tokens-state><span rst-status rst-tone="neutral">रद्द</span></span>
    </div>
    <div rst-lrow>
      <span class="rst-nm"><span rst-actor>Grace Hopper के लिए Nightly import</span>
        <small>
          <code>Vb4tG9yK3nMe</code>
        </small>
      </span>
      <span rst-tokens-fact><span rst-tokens-fact-label>एक्सेस</span>केवल पढ़ना</span>
      <span rst-tokens-fact><span rst-tokens-fact-label>बनाया गया</span><time datetime="2026-08-02">2026-08-02</time></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>आख़िरी बार इस्तेमाल</span></span>
      <span rst-tokens-fact><span rst-tokens-fact-label>समाप्ति</span><time datetime="2026-08-11">2026-08-11</time></span>
      <span rst-tokens-state><span rst-status rst-tone="warning">समाप्त</span></span>
    </div>
  </div>
  <div rst-tokens-revoke>
    <form method="post" action="/tokens/revoke-agent">
      <input type="hidden" name="agent" value="Claude">
      <button rst-btn type="submit">इस एजेंट के सभी टोकन रद्द करें: Claude</button>
    </form>
    <form method="post" action="/tokens/revoke-all">
      <button rst-btn="danger" type="submit">सभी टोकन रद्द करें</button>
    </form>
  </div>
</div>
{{template "api-tokens" dict "Page" .Page "Path" "/tokens"}}

बनाने के फ़ॉर्म का जवाब Created सेट करके रेंडर करें और उसे रीडायरेक्ट न करें: सीक्रेट उसी जवाब में है, और कहीं नहीं।

अभी कोई टोकन नहीं

पूर्वावलोकन
<div rst-tokens>
  <section rst-box>
    <form rst-form method="post" action="/tokens">
      <div rst-field>
        <label rst-field-label for="agent">एजेंट का नाम</label>
        <input rst-input type="text" id="agent" name="agent" maxlength="40">
      </div>
      <label rst-switch>
        <input type="checkbox" name="for_self" value="on">
        <span rst-switch-track aria-hidden="true"></span>
        यह टोकन मेरे लिए है, किसी एजेंट के लिए नहीं
      </label>
      <fieldset rst-choice>
        <legend>एक्सेस</legend>
        <div rst-choice-cards>
          <label>
            <input type="radio" name="access" value="write" checked>
            <span>
              <span rst-choice-title>पढ़ना और लिखना</span>
            </span>
          </label>
          <label>
            <input type="radio" name="access" value="read">
            <span>
              <span rst-choice-title>केवल पढ़ना</span>
            </span>
          </label>
        </div>
      </fieldset>
      <div rst-field>
        <label rst-field-label for="expiry">समाप्ति</label>
        <select rst-input="short" id="expiry" name="expiry">
          <option value="30">30 दिन</option>
          <option value="90" selected>90 दिन</option>
          <option value="365">1 साल</option>
          <option value="never">कभी नहीं</option>
        </select>
      </div>
      <div rst-form-foot>
        <button rst-btn="primary lg" type="submit">टोकन बनाएँ</button>
      </div>
    </form>
  </section>
  <div rst-empty>
    <p rst-empty-body>अभी कोई टोकन नहीं है।</p>
  </div>
</div>
{{template "api-tokens" dict "Page" .Page "Path" "/tokens"}}