format and fix

This commit is contained in:
tequ
2025-07-03 20:48:43 +09:00
parent 94db9037c4
commit 3b173fca64
20 changed files with 1353 additions and 271 deletions

View File

@@ -1,9 +1,10 @@
// @ts-check
import { defineConfig } from 'astro/config';
import react from '@astrojs/react';
import mdx from '@astrojs/mdx';
import tailwindcss from '@tailwindcss/vite';
import starlight from '@astrojs/starlight';
import mdx from '@astrojs/mdx'
import react from '@astrojs/react'
import starlight from '@astrojs/starlight'
import tailwindcss from '@tailwindcss/vite'
import { defineConfig } from 'astro/config'
import starlightOpenAPI, { openAPISidebarGroups } from 'starlight-openapi'
// https://astro.build/config
@@ -34,18 +35,15 @@ export default defineConfig({
base: 'docs/data-apis/data-api',
schema: './src/schemas/dataapi.json',
sidebar: {
label: 'Xahau Data API'
}
label: 'Xahau Data API',
},
},
]),
],
sidebar: [
{
label: 'Get started',
items: [
'docs',
'docs/what-is-different'
],
items: ['docs', 'docs/what-is-different'],
},
{
label: 'Features',
@@ -55,29 +53,29 @@ export default defineConfig({
{
label: 'Transaction Signing',
autogenerate: { directory: 'docs/features/transaction-signing' },
collapsed: true
collapsed: true,
},
{
label: 'Developer Tooling',
autogenerate: { directory: 'docs/features/developer-tooling' },
collapsed: true
collapsed: true,
},
{
label: 'HTTP / WebSocket APIs',
autogenerate: { directory: 'docs/features/http-websocket-apis' },
collapsed: true
collapsed: true,
},
{
label: 'Network Features',
autogenerate: { directory: 'docs/features/network-features' },
collapsed: true
collapsed: true,
},
'docs/features/faucet-and-explorer',
'docs/features/balance-adjustments',
'docs/features/governance-game',
'docs/features/burn-2-mint',
'docs/features/versioning-process',
]
],
},
{
label: 'Protocol Reference',
@@ -89,22 +87,31 @@ export default defineConfig({
'docs/protocol-reference/transactions',
{
label: 'Transaction Types',
autogenerate: { directory: 'docs/protocol-reference/transactions/transaction-types' },
autogenerate: {
directory:
'docs/protocol-reference/transactions/transaction-types',
},
collapsed: true,
},
{
label: 'Pseudo Transaction Types',
autogenerate: { directory: 'docs/protocol-reference/transactions/pseudo-transaction-types' },
autogenerate: {
directory:
'docs/protocol-reference/transactions/pseudo-transaction-types',
},
collapsed: true,
},
{
label: 'Transaction Results',
autogenerate: { directory: 'docs/protocol-reference/transactions/transaction-results' },
autogenerate: {
directory:
'docs/protocol-reference/transactions/transaction-results',
},
collapsed: true,
},
'docs/protocol-reference/transactions/transaction-common-fields',
'docs/protocol-reference/transactions/transaction-metadata',
]
],
},
{
label: 'Ledger Data',
@@ -113,12 +120,15 @@ export default defineConfig({
'docs/protocol-reference/ledger-data',
{
label: 'Ledger Objects Types',
autogenerate: { directory: 'docs/protocol-reference/ledger-data/ledger-objects-types' },
autogenerate: {
directory:
'docs/protocol-reference/ledger-data/ledger-objects-types',
},
collapsed: true,
},
'docs/protocol-reference/ledger-data/ledger-header',
'docs/protocol-reference/ledger-data/ledger-object-ids',
]
],
},
{
label: 'Data Types',
@@ -127,10 +137,10 @@ export default defineConfig({
'docs/protocol-reference/data-types',
'docs/protocol-reference/data-types/currency-formats',
'docs/protocol-reference/data-types/base-58-encodings',
]
],
},
'docs/protocol-reference/binary-format',
]
],
},
{
label: 'Hooks',
@@ -161,7 +171,7 @@ export default defineConfig({
'docs/hooks/concepts/floating-point-numbers-xfl',
'docs/hooks/concepts/emitted-transactions',
'docs/hooks/concepts/serialized-objects',
]
],
},
{
label: 'Functions',
@@ -175,7 +185,9 @@ export default defineConfig({
{
label: 'Developer Defined',
collapsed: true,
autogenerate: { directory: 'docs/hooks/functions/developer-defined' },
autogenerate: {
directory: 'docs/hooks/functions/developer-defined',
},
},
{
label: 'Control',
@@ -190,12 +202,16 @@ export default defineConfig({
{
label: 'Serialization',
collapsed: true,
autogenerate: { directory: 'docs/hooks/functions/serialization' },
autogenerate: {
directory: 'docs/hooks/functions/serialization',
},
},
{
label: 'Emitted Transaction',
collapsed: true,
autogenerate: { directory: 'docs/hooks/functions/emitted-transaction' },
autogenerate: {
directory: 'docs/hooks/functions/emitted-transaction',
},
},
{
label: 'Float',
@@ -210,7 +226,9 @@ export default defineConfig({
{
label: 'Hook Context',
collapsed: true,
autogenerate: { directory: 'docs/hooks/functions/hook-context' },
autogenerate: {
directory: 'docs/hooks/functions/hook-context',
},
},
{
label: 'Slot',
@@ -225,35 +243,38 @@ export default defineConfig({
{
label: 'Trace (Debug)',
collapsed: true,
autogenerate: { directory: 'docs/hooks/functions/trace-debug' },
autogenerate: {
directory: 'docs/hooks/functions/trace-debug',
},
},
{
label: 'Originating Transaction',
collapsed: true,
autogenerate: { directory: 'docs/hooks/functions/originating-transaction' },
autogenerate: {
directory: 'docs/hooks/functions/originating-transaction',
},
},
{
label: 'WebSocket APIs',
collapsed: true,
autogenerate: { directory: 'docs/hooks/functions/websocket-apis' },
autogenerate: {
directory: 'docs/hooks/functions/websocket-apis',
},
]
},
]
],
},
],
},
{
label: 'Data APIs',
items: [
'docs/data-apis',
...openAPISidebarGroups
]
items: ['docs/data-apis', ...openAPISidebarGroups],
},
{
label: 'Compliance',
items: [
'docs/compliance/security-audit',
'docs/compliance/responsible-disclosure',
]
],
},
{
label: 'Infrastructure',
@@ -265,7 +286,7 @@ export default defineConfig({
items: [
'docs/infrastructure/running-a-node/running-a-mainnet-node',
'docs/infrastructure/running-a-node/running-a-testnet-node',
]
],
},
{
label: 'Building Xahau (Dev)',
@@ -274,16 +295,13 @@ export default defineConfig({
'docs/infrastructure/building-xahau',
'docs/infrastructure/building-xahau/ubuntu-22-04',
'docs/infrastructure/building-xahau/mac-os-13-5-2',
]
}
]
],
},
],
},
{
label: 'Resources',
items: [
'docs/resources/whitepaper',
'docs/resources/media-kit',
],
items: ['docs/resources/whitepaper', 'docs/resources/media-kit'],
},
{
label: 'Support',
@@ -291,10 +309,10 @@ export default defineConfig({
},
],
}),
mdx()
mdx(),
],
vite: {
plugins: [tailwindcss()],
},
site: 'https://xahau.network/'
});
site: 'https://xahau.network/',
})

View File

@@ -6,6 +6,7 @@
"useIgnoreFile": false
},
"files": {
"includes": ["**", "!*/**/*.astro"],
"ignoreUnknown": false
},
"formatter": {

View File

@@ -1,73 +1,79 @@
import type { CookieConsentConfig } from 'vanilla-cookieconsent';
import type { CookieConsentConfig } from 'vanilla-cookieconsent'
export const config: CookieConsentConfig = {
guiOptions: {
consentModal: {
layout: "box",
position: "bottom left",
layout: 'box',
position: 'bottom left',
equalWeightButtons: true,
flipButtons: false
flipButtons: false,
},
preferencesModal: {
layout: "box",
position: "right",
layout: 'box',
position: 'right',
equalWeightButtons: true,
flipButtons: false
}
flipButtons: false,
},
},
categories: {
necessary: {
readOnly: true
readOnly: true,
},
functionality: {
enabled: true
enabled: true,
},
analytics: {
enabled: true
}
enabled: true,
},
},
language: {
default: "en",
default: 'en',
translations: {
en: {
consentModal: {
title: "Select your cookie preferences",
description: "We use cookies to ensure you get the best experience on our website.",
acceptAllBtn: "Accept all",
acceptNecessaryBtn: "Reject all",
showPreferencesBtn: "Manage preferences",
footer: "<a href=\"/privacy-policy\">Privacy Policy</a>"
title: 'Select your cookie preferences',
description:
'We use cookies to ensure you get the best experience on our website.',
acceptAllBtn: 'Accept all',
acceptNecessaryBtn: 'Reject all',
showPreferencesBtn: 'Manage preferences',
footer: '<a href="/privacy-policy">Privacy Policy</a>',
},
preferencesModal: {
title: "Consent Preferences Center",
acceptAllBtn: "Accept all",
acceptNecessaryBtn: "Reject all",
savePreferencesBtn: "Save preferences",
closeIconLabel: "Close modal",
serviceCounterLabel: "Service|Services",
title: 'Consent Preferences Center',
acceptAllBtn: 'Accept all',
acceptNecessaryBtn: 'Reject all',
savePreferencesBtn: 'Save preferences',
closeIconLabel: 'Close modal',
serviceCounterLabel: 'Service|Services',
sections: [
{
title: "Strictly Necessary Cookies <span class=\"pm__badge\">Always Enabled</span>",
description: "Some cookies are essential in order to use the website and use some of its features.",
linkedCategory: "necessary"
title:
'Strictly Necessary Cookies <span class="pm__badge">Always Enabled</span>',
description:
'Some cookies are essential in order to use the website and use some of its features.',
linkedCategory: 'necessary',
},
{
title: "Functionality Cookies",
description: "These cookies are used to enhance the performance and functionality of the website but are non-essential to their use. However, without these cookies, certain functionality (like videos) may become unavailable.",
linkedCategory: "functionality"
title: 'Functionality Cookies',
description:
'These cookies are used to enhance the performance and functionality of the website but are non-essential to their use. However, without these cookies, certain functionality (like videos) may become unavailable.',
linkedCategory: 'functionality',
},
{
title: "Analytics Cookies",
description: "We use analytics cookies to understand how you use our website so we can improve it.",
linkedCategory: "analytics"
title: 'Analytics Cookies',
description:
'We use analytics cookies to understand how you use our website so we can improve it.',
linkedCategory: 'analytics',
},
{
title: "More information",
description: "For any query in relation to the policy on cookies and your choices, please refer to the <a class=\"cc__link\" href=\"/privacy-policy\">Privacy Policy</a>."
}
]
}
}
}
}
};
title: 'More information',
description:
'For any query in relation to the policy on cookies and your choices, please refer to the <a class="cc__link" href="/privacy-policy">Privacy Policy</a>.',
},
],
},
},
},
},
}

View File

@@ -1,5 +1,5 @@
---
import 'vanilla-cookieconsent/dist/cookieconsent.css';
import 'vanilla-cookieconsent/dist/cookieconsent.css'
---
<script>
import { run } from 'vanilla-cookieconsent';

View File

@@ -1,5 +1,9 @@
---
import { ChevronDownIcon, Bars3Icon, XMarkIcon } from '@heroicons/react/20/solid'
import {
Bars3Icon,
ChevronDownIcon,
XMarkIcon,
} from '@heroicons/react/20/solid'
---
<starlight-menu-button class="print:hidden">

View File

@@ -1,5 +1,5 @@
---
import TableOfContents from '@astrojs/starlight/components/TableOfContents.astro';
import TableOfContents from '@astrojs/starlight/components/TableOfContents.astro'
---
{

View File

@@ -1,8 +1,8 @@
---
import SidebarPersister from '@astrojs/starlight/components/SidebarPersister.astro';
import SidebarSublist from '@astrojs/starlight/components/SidebarSublist.astro';
import SidebarPersister from '@astrojs/starlight/components/SidebarPersister.astro'
import SidebarSublist from '@astrojs/starlight/components/SidebarSublist.astro'
const { sidebar } = Astro.locals.starlightRoute;
const { sidebar } = Astro.locals.starlightRoute
---
<SidebarPersister>

View File

@@ -1,6 +1,7 @@
---
const { class: className, ...rest } = Astro.props
import { Image } from 'astro:assets';
import { Image } from 'astro:assets'
---
<a href={Astro.props.href} target="_blank" class:list={["flex hover:border-xahau-green hover:bg-gray-50 !text-black !no-underline items-center justify-center p-4 text-center bg-white font-bold border-black border-2",className]}>
{Astro.props.imageSrc ? <Image src={Astro.props.imageSrc} alt={Astro.props.title} class="w-auto h-auto max-h-2/5" /> : Astro.props.title}

View File

@@ -1,6 +1,6 @@
---
import { Image } from 'astro:assets'
import logo from '../assets/xahau-logo.svg'
import { Image } from 'astro:assets';
---
<footer class="bg-white text-base font-regular text-black **:text-black **:no-underline">

View File

@@ -1,6 +1,5 @@
'use client'
import { useState } from 'react'
import {
Dialog,
DialogPanel,
@@ -12,7 +11,12 @@ import {
PopoverGroup,
PopoverPanel,
} from '@headlessui/react'
import { ChevronDownIcon, Bars3Icon, XMarkIcon } from '@heroicons/react/20/solid'
import {
Bars3Icon,
ChevronDownIcon,
XMarkIcon,
} from '@heroicons/react/20/solid'
import { useState } from 'react'
const socials = [
{ name: 'X', href: 'https://x.com/XahauNetwork' },
@@ -43,34 +47,77 @@ export default function Header(props) {
return (
<header className="header bg-xahau-background z-20">
<nav aria-label="Global" className="mx-auto flex max-w-7xl items-center justify-between p-6">
<nav
aria-label="Global"
className="mx-auto flex max-w-7xl items-center justify-between p-6"
>
<div className="flex lg:flex-1">
<a href="/" className="-m-1.5 p-1.5">
<span className="sr-only">Xahau</span>
<img src={logo.src} width="222" height="40" />
<img src={logo.src} width="222" height="40" alt="Xahau Logo" />
</a>
</div>
<div className="flex lg:hidden">
<button type="button" onClick={() => setMobileMenuOpen(true)} className="border-none bg-transparent -m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700">
<button
type="button"
onClick={() => setMobileMenuOpen(true)}
className="border-none bg-transparent -m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700"
>
<span className="sr-only">Open main menu</span>
<Bars3Icon aria-hidden="true" className="size-6" />
</button>
</div>
<PopoverGroup className="hidden lg:flex lg:gap-x-12">
<a href="/about" className={`selected:no-underline no-underline text-base text-black ${props.url.pathname.slice(1).split('/')[0] == 'about' ? 'font-bold' : 'font-regular'}`}>About</a>
<a href="/features" className={`selected:no-underline no-underline text-base text-black ${props.url.pathname.slice(1).split('/')[0] == 'features' ? 'font-bold' : 'font-regular'}`}>Features</a>
<a href="/ecosystem" className={`selected:no-underline no-underline text-base text-black ${props.url.pathname.slice(1).split('/')[0] == 'ecosystem' ? 'font-bold' : 'font-regular'}`}>Ecosystem</a>
<a href="/roadmap" className={`selected:no-underline no-underline text-base text-black ${props.url.pathname.slice(1).split('/')[0] == 'roadmap' ? 'font-bold' : 'font-regular'}`}>Roadmap</a>
<a
href="/about"
className={`selected:no-underline no-underline text-base text-black ${props.url.pathname.slice(1).split('/')[0] === 'about' ? 'font-bold' : 'font-regular'}`}
>
About
</a>
<a
href="/features"
className={`selected:no-underline no-underline text-base text-black ${props.url.pathname.slice(1).split('/')[0] === 'features' ? 'font-bold' : 'font-regular'}`}
>
Features
</a>
<a
href="/ecosystem"
className={`selected:no-underline no-underline text-base text-black ${props.url.pathname.slice(1).split('/')[0] === 'ecosystem' ? 'font-bold' : 'font-regular'}`}
>
Ecosystem
</a>
<a
href="/roadmap"
className={`selected:no-underline no-underline text-base text-black ${props.url.pathname.slice(1).split('/')[0] === 'roadmap' ? 'font-bold' : 'font-regular'}`}
>
Roadmap
</a>
<Popover className="relative">
<PopoverButton className={`selected:no-underline no-underline p-0 border-none text-base text-black flex items-center gap-x-1 bg-transparent ${props.url.pathname.slice(1).split('/')[0] == 'docs' ? 'font-bold' : 'font-regular'}`}>
<PopoverButton
className={`selected:no-underline no-underline p-0 border-none text-base text-black flex items-center gap-x-1 bg-transparent ${props.url.pathname.slice(1).split('/')[0] === 'docs' ? 'font-bold' : 'font-regular'}`}
>
Documentation
<ChevronDownIcon aria-hidden="true" className="size-5 flex-none text-black" />
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none text-black"
/>
</PopoverButton>
<PopoverPanel transition className="absolute left-1/2 z-10 mt-3 w-screen max-w-max -translate-x-1/2 overflow-hidden bg-xahau-gray shadow-lg ring-1 ring-gray-900/5 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in">
<PopoverPanel
transition
className="absolute left-1/2 z-10 mt-3 w-screen max-w-max -translate-x-1/2 overflow-hidden bg-xahau-gray shadow-lg ring-1 ring-gray-900/5 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in"
>
<div className="p-4">
{docs.map((item) => (
<div key={item.name} className="group relative flex items-center gap-x-6 p-2 text-sm/6">
<a href={item.href} className="no-underline block font-regular text-white">{item.name}</a>
<div
key={item.name}
className="group relative flex items-center gap-x-6 p-2 text-sm/6"
>
<a
href={item.href}
className="no-underline block font-regular text-white"
>
{item.name}
</a>
</div>
))}
</div>
@@ -79,13 +126,28 @@ export default function Header(props) {
<Popover className="relative">
<PopoverButton className="flex p-0 border-none items-center gap-x-1 text-base font-regular text-black bg-transparent">
Connect
<ChevronDownIcon aria-hidden="true" className="size-5 flex-none text-black" />
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none text-black"
/>
</PopoverButton>
<PopoverPanel transition className="absolute left-1/2 z-10 mt-3 w-screen max-w-max -translate-x-1/2 overflow-hidden bg-xahau-gray shadow-lg ring-1 ring-gray-900/5 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in">
<PopoverPanel
transition
className="absolute left-1/2 z-10 mt-3 w-screen max-w-max -translate-x-1/2 overflow-hidden bg-xahau-gray shadow-lg ring-1 ring-gray-900/5 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in"
>
<div className="p-4">
{socials.map((item) => (
<div key={item.name} className="group relative flex items-center gap-x-6 p-2 text-sm/6">
<a href={item.href} target="_blank" className="no-underline block font-regular text-white">{item.name}</a>
<div
key={item.name}
className="group relative flex items-center gap-x-6 p-2 text-sm/6"
>
<a
href={item.href}
target="_blank"
className="no-underline block font-regular text-white"
>
{item.name}
</a>
</div>
))}
</div>
@@ -94,13 +156,28 @@ export default function Header(props) {
<Popover className="relative">
<PopoverButton className="flex p-0 border-none items-center gap-x-1 text-base font-regular text-black bg-transparent">
Explorers
<ChevronDownIcon aria-hidden="true" className="size-5 flex-none text-black" />
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none text-black"
/>
</PopoverButton>
<PopoverPanel transition className="absolute left-1/2 z-10 mt-3 w-screen max-w-max -translate-x-1/2 overflow-hidden bg-xahau-gray shadow-lg ring-1 ring-gray-900/5 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in">
<PopoverPanel
transition
className="absolute left-1/2 z-10 mt-3 w-screen max-w-max -translate-x-1/2 overflow-hidden bg-xahau-gray shadow-lg ring-1 ring-gray-900/5 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in"
>
<div className="p-4">
{explorers.map((item) => (
<div key={item.name} className="group relative flex items-center gap-x-6 p-2 text-sm/6">
<a href={item.href} target="_blank" className="no-underline block font-regular text-white">{item.name}</a>
<div
key={item.name}
className="group relative flex items-center gap-x-6 p-2 text-sm/6"
>
<a
href={item.href}
target="_blank"
className="no-underline block font-regular text-white"
>
{item.name}
</a>
</div>
))}
</div>
@@ -108,15 +185,33 @@ export default function Header(props) {
</Popover>
</PopoverGroup>
</nav>
<Dialog open={mobileMenuOpen} onClose={setMobileMenuOpen} className="lg:hidden">
<Dialog
open={mobileMenuOpen}
onClose={setMobileMenuOpen}
className="lg:hidden"
>
<div className="fixed inset-0 z-50" />
<DialogPanel className="fixed inset-y-0 right-0 z-50 w-full overflow-y-auto bg-white p-6 sm:max-w-sm sm:ring-1 sm:ring-gray-900/10">
<div className="flex items-center justify-between">
<a href="#" className="-m-1.5 p-1.5">
<span className="sr-only">Your Company</span>
<svg width="222" height="40" viewBox="0 0 222 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M196.582 22.9795C196.582 26.6118 195.814 29.7198 194.279 32.3037C192.744 34.8502 190.648 36.7791 187.989 38.0898C185.368 39.3631 182.448 40 179.228 40C176.008 40 173.124 39.3631 170.578 38.0898C168.07 36.7791 166.085 34.8502 164.625 32.3037C163.202 29.7573 162.491 26.6492 162.491 22.9795V22.5312L173.442 21.5986V22.9795C173.442 25.1139 173.93 26.762 174.903 27.9229C175.914 29.0835 177.431 29.664 179.452 29.6641C181.474 29.6641 182.991 29.0838 184.002 27.9229C185.05 26.7245 185.574 25.0765 185.574 22.9795V20.5645L196.582 19.627V22.9795ZM20.4434 10.9014L26.8457 0.00390625H39.3701L26.6777 19.9453L31.6494 27.168L19.6064 28.4375L19.5811 28.4795L19.5449 28.4277L12.9736 39.6064H0.449219L13.3105 19.3281L0 0.00390625H12.9736L20.4434 10.9014ZM40.2129 39.6064H27.2393L23.7236 34.499L35.9688 33.4414L40.2129 39.6064ZM52.8643 39.6064H41.2949L43.7871 32.7656L55.458 31.7578L52.8643 39.6064ZM82.7988 39.6064H71.1738L68.2148 30.6553L79.2041 29.7061L82.7988 39.6064ZM95.71 39.6064H84.7021V29.2314L95.71 28.2803V39.6064ZM95.71 20.374L109.133 18.9795V0.00390625H120.142V39.6064H109.133V27.1367L95.7178 28.2773V20.416L84.7021 21.5762V0.00390625H95.71V20.374ZM133.624 39.6035H122.055L127.171 25.5625L138.591 24.5762L133.624 39.6035ZM163.56 39.6035H151.934L146.733 23.873L146.777 23.8701L143.93 15.3359L143.912 15.3369L142.779 11.9092L141.563 15.585L130.378 16.7637L136.488 0H149.182L163.56 39.6035ZM76.5645 22.4336L65.8691 23.5615L62.0186 11.9121L57.8896 24.4023L46.3936 25.6143L55.7285 0.00390625H68.4219L76.5645 22.4336ZM173.442 12.249L162.491 13.3936V0.00390625H173.442V12.249ZM196.582 9.8291L185.574 10.9805V0.00390625H196.582V9.8291Z" fill="black" />
<path d="M220.158 11.4972C220.966 11.8662 221.06 12.946 220.327 13.441L208.951 21.1231C208.218 21.618 207.208 21.1569 207.133 20.293L205.97 6.88506C205.895 6.02116 206.811 5.40245 207.619 5.77138L220.158 11.4972Z" fill="black" />
<a href="/" className="-m-1.5 p-1.5">
<span className="sr-only">Xahau</span>
<svg
role="img"
aria-label="Xahau Logo"
width="222"
height="40"
viewBox="0 0 222 40"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M196.582 22.9795C196.582 26.6118 195.814 29.7198 194.279 32.3037C192.744 34.8502 190.648 36.7791 187.989 38.0898C185.368 39.3631 182.448 40 179.228 40C176.008 40 173.124 39.3631 170.578 38.0898C168.07 36.7791 166.085 34.8502 164.625 32.3037C163.202 29.7573 162.491 26.6492 162.491 22.9795V22.5312L173.442 21.5986V22.9795C173.442 25.1139 173.93 26.762 174.903 27.9229C175.914 29.0835 177.431 29.664 179.452 29.6641C181.474 29.6641 182.991 29.0838 184.002 27.9229C185.05 26.7245 185.574 25.0765 185.574 22.9795V20.5645L196.582 19.627V22.9795ZM20.4434 10.9014L26.8457 0.00390625H39.3701L26.6777 19.9453L31.6494 27.168L19.6064 28.4375L19.5811 28.4795L19.5449 28.4277L12.9736 39.6064H0.449219L13.3105 19.3281L0 0.00390625H12.9736L20.4434 10.9014ZM40.2129 39.6064H27.2393L23.7236 34.499L35.9688 33.4414L40.2129 39.6064ZM52.8643 39.6064H41.2949L43.7871 32.7656L55.458 31.7578L52.8643 39.6064ZM82.7988 39.6064H71.1738L68.2148 30.6553L79.2041 29.7061L82.7988 39.6064ZM95.71 39.6064H84.7021V29.2314L95.71 28.2803V39.6064ZM95.71 20.374L109.133 18.9795V0.00390625H120.142V39.6064H109.133V27.1367L95.7178 28.2773V20.416L84.7021 21.5762V0.00390625H95.71V20.374ZM133.624 39.6035H122.055L127.171 25.5625L138.591 24.5762L133.624 39.6035ZM163.56 39.6035H151.934L146.733 23.873L146.777 23.8701L143.93 15.3359L143.912 15.3369L142.779 11.9092L141.563 15.585L130.378 16.7637L136.488 0H149.182L163.56 39.6035ZM76.5645 22.4336L65.8691 23.5615L62.0186 11.9121L57.8896 24.4023L46.3936 25.6143L55.7285 0.00390625H68.4219L76.5645 22.4336ZM173.442 12.249L162.491 13.3936V0.00390625H173.442V12.249ZM196.582 9.8291L185.574 10.9805V0.00390625H196.582V9.8291Z"
fill="black"
/>
<path
d="M220.158 11.4972C220.966 11.8662 221.06 12.946 220.327 13.441L208.951 21.1231C208.218 21.618 207.208 21.1569 207.133 20.293L205.97 6.88506C205.895 6.02116 206.811 5.40245 207.619 5.77138L220.158 11.4972Z"
fill="black"
/>
</svg>
</a>
<button
@@ -131,15 +226,45 @@ export default function Header(props) {
<div className="mt-6 flow-root">
<div className="-my-6 divide-y divide-gray-500/10">
<div className="space-y-2 py-6">
<a href="/about" className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] == 'about' ? 'font-bold' : 'font-regular'}`}>About</a>
<a href="/features" className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] == 'features' ? 'font-bold' : 'font-regular'}`}>Features</a>
<a href="/resources/whitepaper" className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] == 'whitepaper' ? 'font-bold' : 'font-regular'}`}>Whitepaper</a>
<a href="/ecosystem" className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] == 'ecosystem' ? 'font-bold' : 'font-regular'}`}>Ecosystem</a>
<a href="/roadmap" className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] == 'roadmap' ? 'font-bold' : 'font-regular'}`}>Roadmap</a>
<a
href="/about"
className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] === 'about' ? 'font-bold' : 'font-regular'}`}
>
About
</a>
<a
href="/features"
className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] === 'features' ? 'font-bold' : 'font-regular'}`}
>
Features
</a>
<a
href="/resources/whitepaper"
className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] === 'whitepaper' ? 'font-bold' : 'font-regular'}`}
>
Whitepaper
</a>
<a
href="/ecosystem"
className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] === 'ecosystem' ? 'font-bold' : 'font-regular'}`}
>
Ecosystem
</a>
<a
href="/roadmap"
className={`selected:no-underline no-underline -mx-3 block rounded-lg px-3 py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black ${props.url.pathname.slice(1).split('/')[0] === 'roadmap' ? 'font-bold' : 'font-regular'}`}
>
Roadmap
</a>
<Disclosure as="div" className="-mx-3">
<DisclosureButton className={`selected:no-underline no-underline border-none block rounded-lg py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black bg-transparent group flex w-full items-center justify-between pr-3.5 pl-3 hover:bg-gray-50 ${props.url.pathname.slice(1).split('/')[0] == 'docs' ? 'font-bold' : 'font-regular'}`}>
<DisclosureButton
className={`selected:no-underline no-underline border-none block rounded-lg py-2 text-base/7 text-base/7 hover:bg-gray-50 text-black bg-transparent group flex w-full items-center justify-between pr-3.5 pl-3 hover:bg-gray-50 ${props.url.pathname.slice(1).split('/')[0] === 'docs' ? 'font-bold' : 'font-regular'}`}
>
Documentation
<ChevronDownIcon aria-hidden="true" className="size-5 flex-none group-data-open:rotate-180" />
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none group-data-open:rotate-180"
/>
</DisclosureButton>
<DisclosurePanel className="mt-2 space-y-2">
{[...docs].map((item) => (
@@ -157,7 +282,10 @@ export default function Header(props) {
<Disclosure as="div" className="-mx-3">
<DisclosureButton className="border-none bg-transparent group flex w-full items-center justify-between rounded-lg py-2 pr-3.5 pl-3 text-base/7 font-regular text-black hover:bg-gray-50">
Connect
<ChevronDownIcon aria-hidden="true" className="size-5 flex-none group-data-open:rotate-180" />
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none group-data-open:rotate-180"
/>
</DisclosureButton>
<DisclosurePanel className="mt-2 space-y-2">
{[...socials].map((item) => (
@@ -176,7 +304,10 @@ export default function Header(props) {
<Disclosure as="div" className="-mx-3">
<DisclosureButton className="border-none bg-transparent group flex w-full items-center justify-between rounded-lg py-2 pr-3.5 pl-3 text-base/7 font-regular text-black hover:bg-gray-50">
Explorers
<ChevronDownIcon aria-hidden="true" className="size-5 flex-none group-data-open:rotate-180" />
<ChevronDownIcon
aria-hidden="true"
className="size-5 flex-none group-data-open:rotate-180"
/>
</DisclosureButton>
<DisclosurePanel className="mt-2 space-y-2">
{[...explorers].map((item) => (

View File

@@ -1,49 +1,50 @@
---
const { class: className, ...rest } = Astro.props
import { Image } from 'astro:assets';
import gem1 from '../assets/gems/1.png';
import gem2 from '../assets/gems/2.png';
import gem3 from '../assets/gems/3.png';
import gem4 from '../assets/gems/4.png';
import gem5 from '../assets/gems/5.png';
import gem6 from '../assets/gems/6.png';
import gem7 from '../assets/gems/7.png';
import gem8 from '../assets/gems/8.png';
import gem9 from '../assets/gems/9.png';
import gem10 from '../assets/gems/10.png';
import gem11 from '../assets/gems/11.png';
import gem12 from '../assets/gems/12.png';
import gem13 from '../assets/gems/13.png';
import gem14 from '../assets/gems/14.png';
import gem15 from '../assets/gems/15.png';
import gem16 from '../assets/gems/16.png';
import gem17 from '../assets/gems/17.png';
import { Image } from 'astro:assets'
import gem1 from '../assets/gems/1.png'
import gem2 from '../assets/gems/2.png'
import gem3 from '../assets/gems/3.png'
import gem4 from '../assets/gems/4.png'
import gem5 from '../assets/gems/5.png'
import gem6 from '../assets/gems/6.png'
import gem7 from '../assets/gems/7.png'
import gem8 from '../assets/gems/8.png'
import gem9 from '../assets/gems/9.png'
import gem10 from '../assets/gems/10.png'
import gem11 from '../assets/gems/11.png'
import gem12 from '../assets/gems/12.png'
import gem13 from '../assets/gems/13.png'
import gem14 from '../assets/gems/14.png'
import gem15 from '../assets/gems/15.png'
import gem16 from '../assets/gems/16.png'
import gem17 from '../assets/gems/17.png'
const gemMap = {
"1": gem1,
"2": gem2,
"3": gem3,
"4": gem4,
"5": gem5,
"6": gem6,
"7": gem7,
"8": gem8,
"9": gem9,
"10": gem10,
"11": gem11,
"12": gem12,
"13": gem13,
"14": gem14,
"15": gem15,
"16": gem16,
"17": gem17,
};
'1': gem1,
'2': gem2,
'3': gem3,
'4': gem4,
'5': gem5,
'6': gem6,
'7': gem7,
'8': gem8,
'9': gem9,
'10': gem10,
'11': gem11,
'12': gem12,
'13': gem13,
'14': gem14,
'15': gem15,
'16': gem16,
'17': gem17,
}
const gem = gemMap[Astro.props.gem as keyof typeof gemMap] || gem1;
const gem = gemMap[Astro.props.gem as keyof typeof gemMap] || gem1
var gemSize = "size-80";
if (Astro.props.gemSize && Astro.props.gemSize === "large") {
gemSize = "size-120 -top-40";
var gemSize = 'size-80'
if (Astro.props.gemSize && Astro.props.gemSize === 'large') {
gemSize = 'size-120 -top-40'
}
---

View File

@@ -1,7 +1,7 @@
import { defineCollection } from 'astro:content';
import { docsLoader } from '@astrojs/starlight/loaders';
import { docsSchema } from '@astrojs/starlight/schema';
import { defineCollection } from 'astro:content'
import { docsLoader } from '@astrojs/starlight/loaders'
import { docsSchema } from '@astrojs/starlight/schema'
export const collections = {
docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }),
};
}

View File

@@ -1,12 +1,16 @@
---
import Header from '../components/Header.jsx';
import Footer from '../components/Footer.astro';
import CookieConsent from '../components/CookieConsent.astro';
import CookieConsent from '../components/CookieConsent.astro'
import Footer from '../components/Footer.astro'
import Header from '../components/Header.jsx'
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
const socialImageURL = new URL('/xahau-logo.png', Astro.site);
const title = Astro.props.frontmatter?.title ? `Xahau: ${Astro.props.frontmatter?.title}` : 'Xahau';
const description = Astro.props.frontmatter?.description ? Astro.props.frontmatter?.description : 'Xahau is a blockchain for the real world. It is a smart blockchain with account-based programmability. It is cheap and fast by design. It is built for the real world.';
const canonicalURL = new URL(Astro.url.pathname, Astro.site)
const socialImageURL = new URL('/xahau-logo.png', Astro.site)
const title = Astro.props.frontmatter?.title
? `Xahau: ${Astro.props.frontmatter?.title}`
: 'Xahau'
const description = Astro.props.frontmatter?.description
? Astro.props.frontmatter?.description
: 'Xahau is a blockchain for the real world. It is a smart blockchain with account-based programmability. It is cheap and fast by design. It is built for the real world.'
---
<html lang="en">
<head>

View File

@@ -1,11 +1,11 @@
---
import '../styles/docs.css';
import Header from '../components/Header.jsx';
import Footer from '../components/Footer.astro';
import CookieConsent from '../components/CookieConsent.astro';
import DocsMobileMenuToggle from '../components/DocsMobileMenuToggle.astro';
import '../styles/docs.css'
import CookieConsent from '../components/CookieConsent.astro'
import DocsMobileMenuToggle from '../components/DocsMobileMenuToggle.astro'
import Footer from '../components/Footer.astro'
import Header from '../components/Header.jsx'
const { hasSidebar } = Astro.locals.starlightRoute;
const { hasSidebar } = Astro.locals.starlightRoute
---
<link href="https://fonts.googleapis.com/css2?family=Onest:wght@400;700&display=swap" rel="stylesheet" />
<div class="font-[Onest] bg-xahau-background min-h-screen flex flex-col">

View File

@@ -1,8 +1,9 @@
---
import '../styles/main.css';
import BaseLayout from '../layouts/BaseLayout.astro';
import worldmap from '../assets/worldmap.svg';
const { frontmatter } = Astro.props;
import '../styles/main.css'
import worldmap from '../assets/worldmap.svg'
import BaseLayout from '../layouts/BaseLayout.astro'
const { frontmatter } = Astro.props
---
<BaseLayout frontmatter={frontmatter}>

View File

@@ -1,7 +1,8 @@
---
import '../styles/main.css';
import BaseLayout from '../layouts/BaseLayout.astro';
const { frontmatter } = Astro.props;
import '../styles/main.css'
import BaseLayout from '../layouts/BaseLayout.astro'
const { frontmatter } = Astro.props
---
<BaseLayout frontmatter={frontmatter}>

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,8 @@
@layer base, starlight, theme, components, utilities;
@import 'tailwindcss/theme.css' layer(theme);
@import 'tailwindcss/utilities.css' layer(utilities);
@import '../styles/global.css';
@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/utilities.css" layer(utilities);
@import "../styles/global.css";
header * {
line-height: 1.5;

View File

@@ -1,9 +1,9 @@
@theme {
--color-xahau-green: #5DE48C;
--color-xahau-green: #5de48c;
--color-xahau-green-dark: #007b3d;
--color-xahau-background: #F7F7F7;
--color-xahau-gray: #0F2328;
--color-xahau-secondary: #FAD7AE;
--color-xahau-background: #f7f7f7;
--color-xahau-gray: #0f2328;
--color-xahau-secondary: #fad7ae;
}
footer a:hover {

View File

@@ -1,5 +1,5 @@
@import "tailwindcss";
@import '../styles/global.css';
@import "../styles/global.css";
.page-content h1 {
@apply text-3xl font-bold mb-2 mt-24;
@@ -21,6 +21,6 @@
@apply text-xahau-green-dark underline;
}
.page-content a:hover {
@apply text-black
}
.page-content a:hover {
@apply text-black;
}