{
  "name": "drawer-invite",
  "kind": "block",
  "primary": "drawer-ui",
  "page": "/apps/saas/app/members/members.contents.html",
  "slots": [],
  "nested": [],
  "attrs": {
    "side": "right",
    "size": "md"
  },
  "html": "<drawer-ui id=\"drawer-invite\" side=\"right\" size=\"md\">\n  <header>\n    <span slot=\"icon\">\n      <avatar-ui icon=\"envelope\"></avatar-ui>\n    </span>\n    <span slot=\"heading\">\n      <text-ui strong data-invite-email>Invite</text-ui>\n      <badge-ui data-invite-role text=\"Member\" variant=\"info\"></badge-ui>\n    </span>\n    <span slot=\"action\"></span>\n  </header>\n  <section>\n    <text-ui color=\"subtle\" size=\"sm\">Pending invitation — not yet accepted.</text-ui>\n  </section>\n  <section>\n    <col-ui gap=\"4\">\n      <grid-ui columns=\"1 2@sm\" gap=\"3\">\n        <card-ui\n          ><section><stat-ui label=\"Sent\" data-invite-sent value=\"—\"></stat-ui></section\n        ></card-ui>\n        <card-ui\n          ><section><stat-ui label=\"Expires\" data-invite-expires value=\"—\"></stat-ui></section\n        ></card-ui>\n      </grid-ui>\n      <divider-ui></divider-ui>\n      <col-ui gap=\"3\">\n        <text-ui strong>Invitation</text-ui>\n        <field-ui label=\"Email\">\n          <input-ui data-invite-email readonly></input-ui>\n        </field-ui>\n        <field-ui label=\"Role\">\n          <select-ui data-invite-role value=\"Member\">\n            <option value=\"Admin\">Admin · invite, remove, billing</option>\n            <option value=\"Member\">Member · edit + invite</option>\n            <option value=\"Viewer\">Viewer · read-only</option>\n          </select-ui>\n        </field-ui>\n        <field-ui label=\"Invited by\">\n          <input-ui data-invite-inviter readonly></input-ui>\n        </field-ui>\n        <field-ui label=\"Personal message (optional)\">\n          <textarea-ui rows=\"2\" placeholder=\"Add a note to include in the invitation email.\"></textarea-ui>\n        </field-ui>\n      </col-ui>\n      <divider-ui></divider-ui>\n      <col-ui gap=\"3\">\n        <text-ui strong>Delivery</text-ui>\n        <field-ui label=\"Also notify on Slack\" inline>\n          <switch-ui checked></switch-ui>\n        </field-ui>\n        <field-ui label=\"Remind 24h before expiry\" inline>\n          <switch-ui checked></switch-ui>\n        </field-ui>\n        <field-ui label=\"Include workspace welcome guide\" inline>\n          <switch-ui></switch-ui>\n        </field-ui>\n      </col-ui>\n    </col-ui>\n  </section>\n  <footer slot=\"footer\">\n    <grid-ui>\n      <button-ui id=\"drawer-invite-revoke\" text=\"Revoke\" icon=\"x\" color=\"danger\"></button-ui>\n      <button-ui text=\"Cancel\" variant=\"ghost\" onclick=\"this.closest('drawer-ui').open = false\"></button-ui>\n      <button-ui text=\"Resend\" icon=\"paper-plane-tilt\" variant=\"primary\" onclick=\"this.closest('drawer-ui').open = false\"></button-ui>\n    </grid-ui>\n  </footer>\n</drawer-ui>",
  "source": "apps/saas/app/members/members.contents.html",
  "metadata": {
    "domain": "settings",
    "description": "Drawer side panel — slide-in right-anchored overlay panel showing invite detail with form fields, stats, and footer action buttons. Triggered from a table row.",
    "keywords": [
      "drawer",
      "side",
      "panel",
      "slide-in",
      "sheet",
      "overlay",
      "drawer-ui",
      "right",
      "left",
      "panel",
      "modal",
      "sidebar",
      "form",
      "invite",
      "team",
      "member",
      "email",
      "role",
      "settings"
    ]
  },
  "captured_at": "2026-06-07T19:28:13.657Z",
  "template": [
    {
      "id": "avatar",
      "component": "Avatar",
      "icon": "envelope"
    },
    {
      "id": "text",
      "component": "Text",
      "variant": "body",
      "slot": "icon",
      "children": [
        "avatar"
      ]
    },
    {
      "id": "text-3",
      "component": "Text",
      "strong": true,
      "textContent": "Invite",
      "data-invite-email": ""
    },
    {
      "id": "badge",
      "component": "Badge",
      "text": "Member",
      "variant": "info",
      "data-invite-role": ""
    },
    {
      "id": "text-2",
      "component": "Text",
      "variant": "body",
      "slot": "heading",
      "children": [
        "text-3",
        "badge"
      ]
    },
    {
      "id": "text-4",
      "component": "Text",
      "variant": "body",
      "slot": "action"
    },
    {
      "id": "header",
      "component": "Header",
      "children": [
        "text",
        "text-2",
        "text-4"
      ]
    },
    {
      "id": "text-5",
      "component": "Text",
      "color": "subtle",
      "size": "sm",
      "textContent": "Pending invitation — not yet accepted."
    },
    {
      "id": "section",
      "component": "Section",
      "children": [
        "text-5"
      ]
    },
    {
      "id": "stat",
      "component": "Stat",
      "label": "Sent",
      "value": "—",
      "data-invite-sent": ""
    },
    {
      "id": "section-3",
      "component": "Section",
      "children": [
        "column-2"
      ]
    },
    {
      "id": "column-2",
      "component": "Column",
      "children": [
        "stat"
      ]
    },
    {
      "id": "card",
      "component": "Card",
      "children": [
        "section-3"
      ]
    },
    {
      "id": "stat-2",
      "component": "Stat",
      "label": "Expires",
      "value": "—",
      "data-invite-expires": ""
    },
    {
      "id": "section-4",
      "component": "Section",
      "children": [
        "column-3"
      ]
    },
    {
      "id": "column-3",
      "component": "Column",
      "children": [
        "stat-2"
      ]
    },
    {
      "id": "card-2",
      "component": "Card",
      "children": [
        "section-4"
      ]
    },
    {
      "id": "grid",
      "component": "Grid",
      "columns": "1 2@sm",
      "gap": "3",
      "children": [
        "card",
        "card-2"
      ]
    },
    {
      "id": "divider",
      "component": "Divider"
    },
    {
      "id": "text-6",
      "component": "Text",
      "strong": true,
      "textContent": "Invitation"
    },
    {
      "id": "input",
      "component": "Input",
      "readonly": true,
      "data-invite-email": ""
    },
    {
      "id": "field",
      "component": "Field",
      "label": "Email",
      "children": [
        "input"
      ]
    },
    {
      "id": "choice-picker",
      "component": "ChoicePicker",
      "value": "Member",
      "options": [
        {
          "value": "Admin",
          "label": "Admin · invite, remove, billing"
        },
        {
          "value": "Member",
          "label": "Member · edit + invite"
        },
        {
          "value": "Viewer",
          "label": "Viewer · read-only"
        }
      ],
      "data-invite-role": ""
    },
    {
      "id": "field-2",
      "component": "Field",
      "label": "Role",
      "children": [
        "choice-picker"
      ]
    },
    {
      "id": "input-2",
      "component": "Input",
      "readonly": true,
      "data-invite-inviter": ""
    },
    {
      "id": "field-3",
      "component": "Field",
      "label": "Invited by",
      "children": [
        "input-2"
      ]
    },
    {
      "id": "text-area",
      "component": "TextArea",
      "placeholder": "Add a note to include in the invitation email.",
      "rows": "2"
    },
    {
      "id": "field-4",
      "component": "Field",
      "label": "Personal message (optional)",
      "children": [
        "text-area"
      ]
    },
    {
      "id": "column-4",
      "component": "Column",
      "gap": "3",
      "children": [
        "text-6",
        "field",
        "field-2",
        "field-3",
        "field-4"
      ]
    },
    {
      "id": "divider-2",
      "component": "Divider"
    },
    {
      "id": "text-7",
      "component": "Text",
      "strong": true,
      "textContent": "Delivery"
    },
    {
      "id": "toggle",
      "component": "Toggle",
      "checked": true
    },
    {
      "id": "field-5",
      "component": "Field",
      "inline": true,
      "label": "Also notify on Slack",
      "children": [
        "toggle"
      ]
    },
    {
      "id": "toggle-2",
      "component": "Toggle",
      "checked": true
    },
    {
      "id": "field-6",
      "component": "Field",
      "inline": true,
      "label": "Remind 24h before expiry",
      "children": [
        "toggle-2"
      ]
    },
    {
      "id": "toggle-3",
      "component": "Toggle"
    },
    {
      "id": "field-7",
      "component": "Field",
      "inline": true,
      "label": "Include workspace welcome guide",
      "children": [
        "toggle-3"
      ]
    },
    {
      "id": "column-5",
      "component": "Column",
      "gap": "3",
      "children": [
        "text-7",
        "field-5",
        "field-6",
        "field-7"
      ]
    },
    {
      "id": "column",
      "component": "Column",
      "gap": "4",
      "children": [
        "grid",
        "divider",
        "column-4",
        "divider-2",
        "column-5"
      ]
    },
    {
      "id": "section-2",
      "component": "Section",
      "children": [
        "column"
      ]
    },
    {
      "id": "drawer-invite-revoke",
      "component": "Button",
      "color": "danger",
      "icon": "x",
      "text": "Revoke"
    },
    {
      "id": "button",
      "component": "Button",
      "text": "Cancel",
      "variant": "ghost"
    },
    {
      "id": "button-2",
      "component": "Button",
      "icon": "paper-plane-tilt",
      "text": "Resend",
      "variant": "primary"
    },
    {
      "id": "grid-2",
      "component": "Grid",
      "children": [
        "drawer-invite-revoke",
        "button",
        "button-2"
      ]
    },
    {
      "id": "footer",
      "component": "Footer",
      "slot": "footer",
      "children": [
        "grid-2"
      ]
    },
    {
      "id": "root",
      "component": "Drawer",
      "side": "right",
      "size": "md",
      "children": [
        "header",
        "section",
        "section-2",
        "footer"
      ]
    }
  ]
}
