Skip to content
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
46f9732
initial realm migration steps
V-Shadbolt Sep 12, 2025
4d30622
css and theme scaffolding
V-Shadbolt Sep 15, 2025
f53429c
updated redirects, fixed redocly config, implemented more scaffolding…
V-Shadbolt Sep 16, 2025
4de0e9a
fixed sidebar, more css
V-Shadbolt Sep 17, 2025
d4d7217
Fixed table formatting
V-Shadbolt Sep 19, 2025
db1046f
fixed sidebar links and adjusted main overview styling
V-Shadbolt Sep 19, 2025
3586780
centralized styling, implemented dark mode styling
V-Shadbolt Sep 19, 2025
bbee61a
Implemented new tab structure for code blocks
V-Shadbolt Sep 23, 2025
62065f0
Fixed code block button color
V-Shadbolt Sep 23, 2025
334a3e7
added registry api schema
V-Shadbolt Nov 11, 2025
b64d951
Remote content /apis/loginref/openapi.yaml (#213)
redocly[bot] Nov 11, 2025
1ccdba4
update resolution api key access guide
V-Shadbolt Nov 11, 2025
d5ccebb
hardcoded openapi as stop-gap
V-Shadbolt Nov 11, 2025
437ad76
Remote content /apis/metadata/openapi.yaml (#214)
redocly[bot] Nov 12, 2025
f4aa1f9
fixed redirects and updated yaml config
V-Shadbolt Nov 12, 2025
558c85e
fixed outstanding vulnerabilities
V-Shadbolt Nov 14, 2025
31300bb
api try it styling
V-Shadbolt Nov 14, 2025
95de9ad
removed package resolution due to broken dependency
V-Shadbolt Nov 14, 2025
2a1aa60
styling
V-Shadbolt Nov 14, 2025
5b58d64
updated copy and fixed typeforms
V-Shadbolt Nov 18, 2025
878138f
remove WAGMI login guide per RND-84
V-Shadbolt Nov 18, 2025
3a86f14
remove web3-modal as it was merged with wallet connect per LOG-912
V-Shadbolt Nov 18, 2025
f0d66be
remove moralis login as uauth/moralis relies on moralis v1 which is d…
V-Shadbolt Nov 18, 2025
65584b2
fixed admonitions
V-Shadbolt Nov 18, 2025
a51588d
new light/dark images, minor guide improvements, fixed footer
V-Shadbolt Nov 20, 2025
f425e85
swapped dark mode tile images
V-Shadbolt Nov 20, 2025
b76d240
Merge branch 'main' into vincent/portal-upgrade
V-Shadbolt Nov 20, 2025
6f82a0f
Merge branch 'main' into vincent/portal-upgrade
V-Shadbolt Nov 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
14
20.19.0
15 changes: 0 additions & 15 deletions 404.mdx

This file was deleted.

13 changes: 13 additions & 0 deletions 404.page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import * as React from 'react';

export default function Page() {
return (
<main style={{ padding: '4rem 1rem', textAlign: 'center' }}>
<h1 style={{ marginTop: 0 }}>Page not found</h1>
<p style={{ color: '#555' }}>The page may have been removed or renamed.</p>
<div style={{ marginTop: '1rem' }}>
<a href="/" style={{ padding: '0.5rem 1rem', background: '#0D67FE', color: '#fff', borderRadius: 6, textDecoration: 'none' }}>Return home</a>
</div>
</main>
);
}
34 changes: 34 additions & 0 deletions @theme/components/DeveloperSurvey.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import * as React from 'react';

export function DeveloperSurvey() {
return (
<div className="margin-top-bottom-30">
<div className="developer-survey">
<h2>
Help us improve our products!
</h2>
<p>
We're always looking for ways to improve how developers use and integrate our products into their applications. We'd love to hear about your experience to help us get better.
</p>
<div className="developer-survey-actions">
<button
data-tf-slider="uHPQyHO6"
data-tf-width="550"
data-tf-iframe-props="title=Developer Research Survey"
data-tf-medium="snippet"
>
Take Our Developer Survey
</button>
<button
data-tf-slider="OC87toiF"
data-tf-width="550"
data-tf-iframe-props="title=Developer Research Survey"
data-tf-medium="snippet"
>
Take Our Partner API Survey
</button>
</div>
</div>
</div>
);
}
66 changes: 66 additions & 0 deletions @theme/components/RotatingQuotes.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import React, { useState, useEffect } from 'react';

const quotes = [
{
text: "Integrating Unstoppable into Ebisu's Bay was seamless, their team made the process quick, clear, and hassle-free. Best of all, our community loves having custom domains they can truly own and show off. It's been a win all around.",
author: "Ebisu's Bay"
},
{
text: "The integration was exceptionally smooth! We integrated the Partner API which was well documented and straight forward to utilize, having just a few steps. The logical flow of searching, checking availability, and then registering was very efficient - all without any blockchain calls. The addition of a sandbox environment to test it all is a huge plus.",
author: "Permission"
},
];

const QuoteContent: React.FC<{ quote: typeof quotes[0] | undefined }> = ({ quote }) => {
if (!quote) return null;

return (
<>
<blockquote>
"{quote.text}"
</blockquote>
{quote.author && (
<p>— {quote.author}</p>
)}
</>
);
};

export const RotatingQuotes: React.FC = () => {
const [currentQuoteIndex, setCurrentQuoteIndex] = useState(0);
const [isTransitioning, setIsTransitioning] = useState(false);

useEffect(() => {
if (quotes.length <= 1) return;

const interval = setInterval(() => {
setIsTransitioning(true);
setTimeout(() => {
setCurrentQuoteIndex((prevIndex) => (prevIndex + 1) % quotes.length);
setIsTransitioning(false);
}, 1000);
}, 8000);

return () => clearInterval(interval);
}, []);

const currentQuote = quotes[currentQuoteIndex];
const nextQuote = quotes[(currentQuoteIndex + 1) % quotes.length];

return (
<>
<div className="quotes-wrapper">
<div className="quote-box">
<div className={`quote-container ${isTransitioning ? 'slide-out' : ''}`}>
<QuoteContent quote={currentQuote} />
</div>
{isTransitioning && quotes.length > 1 && (
<div className="quote-container slide-in">
<QuoteContent quote={nextQuote} />
</div>
)}
</div>
</div>
</>
);
};
10 changes: 4 additions & 6 deletions components/Video.tsx → @theme/components/Video.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export default function Video(props) {
let parsed_height = parse_dimension_value(props?.height);

// Retrieve and/or calculate video-container styles
let container_styles : React.CSSProperties = {margin: props.centered ? "auto" : ""};
let container_styles : React.CSSProperties = {};

if (parsed_width) container_styles["--video-max-width"] = parsed_width;
if (props?.type === "iframe") {
Expand All @@ -18,13 +18,12 @@ export default function Video(props) {
container_styles["--video-aspect-ratio"] = `calc(${parseFloat(parsed_height)} / ${parseFloat(parsed_width)})`;
}
} else if (props?.type === "video") {
container_styles.height = "auto";
container_styles.paddingBottom = "0";
// For direct <video> embeds we toggle an additional class that adjusts container behavior
}

// Create video container and select embed type
let video_container = (
<div className={props.type ? "video-container" : ""} style={container_styles}>
<div className={`${props.type ? "video-container" : ""} ${props?.type === "video" ? "is-video" : ""} ${props.centered ? "video-centered" : ""}`} style={container_styles}>

{ props.type === "iframe" ?
<iframe
Expand All @@ -35,14 +34,13 @@ export default function Video(props) {
/>
: props.type === "video" ?
<video
style={{width: "100%"}}
src = {props.src}
title = {props?.title}
autoPlay = {props?.autoplay || false}
loop = {props?.loop || false}
/>
:
<div style={{color: "red", textAlign: "center"}}>Invalid type property. Specify either "iframe" or "video."</div>
<div className="video-error">Invalid type property. Specify either "iframe" or "video."</div>
}
</div>
);
Expand Down
Loading