Skip to content

Commit 1954f6b

Browse files
authored
Merge branch 'main' into Joe-COTI-Chainpage
2 parents 3892626 + ca382f4 commit 1954f6b

File tree

160 files changed

+8575
-7559
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+8575
-7559
lines changed

.changeset/chilly-bats-cheat.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/loose-comics-serve.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.npmrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
public-hoist-pattern[]=*import-in-the-middle*
2+
public-hoist-pattern[]=*require-in-the-middle*

apps/dashboard/knip.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"ignoreDependencies": [
1313
"@storybook/blocks",
1414
"@thirdweb-dev/service-utils",
15-
"@types/color"
15+
"@types/color",
16+
"fast-xml-parser"
1617
]
1718
}

apps/dashboard/next-sitemap.config.js

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
// @ts-check
2+
// eslint-disable-next-line @typescript-eslint/no-var-requires
3+
const { XMLParser } = require("fast-xml-parser");
24

35
/**
4-
*
6+
* @returns {Promise<Array<{chainId: number, name: string, slug: string}>>}
57
*/
68
async function fetchChainsFromApi() {
79
const res = await fetch("https://api.thirdweb.com/v1/chains", {
@@ -82,16 +84,20 @@ module.exports = {
8284
};
8385
},
8486
additionalPaths: async (config) => {
85-
// eslint-disable-next-line @typescript-eslint/no-var-requires
86-
const FRAMER_PATHS = require("./framer-rewrites");
87-
const allChains = await fetchChainsFromApi();
87+
const [framerUrls, allChains] = await Promise.all([
88+
getFramerXML(),
89+
fetchChainsFromApi(),
90+
]);
91+
8892
return [
89-
...FRAMER_PATHS.map((path) => ({
90-
loc: path,
91-
changefreq: config.changefreq,
92-
priority: config.priority,
93-
lastmod: config.autoLastmod ? new Date().toISOString() : undefined,
94-
})),
93+
...framerUrls.map((url) => {
94+
return {
95+
loc: url.loc,
96+
changefreq: config.changefreq,
97+
priority: config.priority,
98+
lastmod: config.autoLastmod ? new Date().toISOString() : undefined,
99+
};
100+
}),
95101
...allChains.map((chain) => {
96102
return {
97103
loc: `/${chain.slug}`,
@@ -136,3 +142,19 @@ async function createSearchRecordSitemaps(config) {
136142
// filter out any failed requests
137143
return chainsForLines.filter(Boolean);
138144
}
145+
146+
async function getFramerXML() {
147+
const framerSiteMapText = await fetch(
148+
"https://landing.thirdweb.com/sitemap.xml",
149+
).then((res) => res.text());
150+
151+
const parser = new XMLParser();
152+
const xmlObject = parser.parse(framerSiteMapText);
153+
154+
/**
155+
* @type {Array<{loc: string}>}
156+
*/
157+
const urls = xmlObject.urlset.url;
158+
159+
return urls;
160+
}

apps/dashboard/next.config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ function getConfig(): NextConfig {
203203
type: "memory",
204204
});
205205
}
206-
config.externals.push("pino-pretty");
207206
config.module = {
208207
...config.module,
209208
exprContextCritical: false,

apps/dashboard/package.json

Lines changed: 46 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -29,36 +29,37 @@
2929
"@emotion/styled": "11.14.0",
3030
"@hookform/resolvers": "^3.9.1",
3131
"@marsidev/react-turnstile": "^1.1.0",
32-
"@radix-ui/react-accordion": "^1.2.3",
33-
"@radix-ui/react-alert-dialog": "^1.1.6",
34-
"@radix-ui/react-avatar": "^1.1.3",
35-
"@radix-ui/react-checkbox": "^1.1.4",
36-
"@radix-ui/react-dialog": "1.1.6",
37-
"@radix-ui/react-dropdown-menu": "^2.1.6",
38-
"@radix-ui/react-hover-card": "^1.1.6",
39-
"@radix-ui/react-label": "^2.1.2",
40-
"@radix-ui/react-popover": "^1.1.6",
41-
"@radix-ui/react-progress": "^1.1.2",
42-
"@radix-ui/react-radio-group": "^1.2.3",
43-
"@radix-ui/react-select": "^2.1.6",
44-
"@radix-ui/react-separator": "^1.1.2",
45-
"@radix-ui/react-slot": "^1.1.2",
46-
"@radix-ui/react-switch": "^1.1.3",
47-
"@radix-ui/react-tooltip": "1.1.8",
48-
"@sentry/nextjs": "9.5.0",
49-
"@shazow/whatsabi": "0.20.0",
50-
"@tanstack/react-query": "5.67.3",
32+
"@radix-ui/react-accordion": "^1.2.4",
33+
"@radix-ui/react-alert-dialog": "^1.1.7",
34+
"@radix-ui/react-avatar": "^1.1.4",
35+
"@radix-ui/react-checkbox": "^1.1.5",
36+
"@radix-ui/react-dialog": "1.1.7",
37+
"@radix-ui/react-dropdown-menu": "^2.1.7",
38+
"@radix-ui/react-hover-card": "^1.1.7",
39+
"@radix-ui/react-label": "^2.1.3",
40+
"@radix-ui/react-popover": "^1.1.7",
41+
"@radix-ui/react-progress": "^1.1.3",
42+
"@radix-ui/react-radio-group": "^1.2.4",
43+
"@radix-ui/react-select": "^2.1.7",
44+
"@radix-ui/react-separator": "^1.1.3",
45+
"@radix-ui/react-slot": "^1.2.0",
46+
"@radix-ui/react-switch": "^1.1.4",
47+
"@radix-ui/react-tooltip": "1.2.0",
48+
"@sentry/nextjs": "9.12.0",
49+
"@shazow/whatsabi": "0.21.0",
50+
"@tanstack/react-query": "5.72.1",
5151
"@tanstack/react-table": "^8.21.2",
5252
"@thirdweb-dev/service-utils": "workspace:*",
5353
"@vercel/functions": "2.0.0",
54-
"@vercel/og": "^0.6.5",
54+
"@vercel/og": "^0.6.8",
5555
"abitype": "1.0.8",
5656
"chakra-react-select": "^4.7.6",
5757
"class-variance-authority": "^0.7.1",
5858
"clsx": "^2.1.1",
5959
"color": "5.0.0",
6060
"compare-versions": "^6.1.0",
6161
"date-fns": "4.1.0",
62+
"fast-xml-parser": "^5.2.0",
6263
"fetch-event-stream": "0.1.5",
6364
"flat": "^6.0.1",
6465
"framer-motion": "12.5.0",
@@ -67,7 +68,7 @@
6768
"input-otp": "^1.4.1",
6869
"ioredis": "^5.6.0",
6970
"ipaddr.js": "^2.2.0",
70-
"lucide-react": "0.483.0",
71+
"lucide-react": "0.487.0",
7172
"next": "15.2.4",
7273
"next-plausible": "^3.12.4",
7374
"next-themes": "^0.4.6",
@@ -77,25 +78,26 @@
7778
"papaparse": "^5.5.2",
7879
"pluralize": "^8.0.0",
7980
"posthog-js": "1.67.1",
81+
"prettier": "3.5.3",
8082
"qrcode": "^1.5.3",
81-
"react": "19.0.0",
83+
"react": "19.1.0",
8284
"react-children-utilities": "^2.10.0",
8385
"react-day-picker": "^8.10.1",
84-
"react-dom": "19.0.0",
86+
"react-dom": "19.1.0",
8587
"react-dropzone": "^14.3.8",
8688
"react-error-boundary": "^5.0.0",
87-
"react-hook-form": "7.54.2",
89+
"react-hook-form": "7.55.0",
8890
"react-markdown": "^9.0.1",
8991
"react-table": "^7.8.0",
90-
"recharts": "2.15.1",
92+
"recharts": "2.15.2",
9193
"remark-gfm": "4.0.1",
9294
"responsive-rsc": "0.0.7",
9395
"server-only": "^0.0.1",
9496
"shiki": "1.27.0",
95-
"sonner": "2.0.1",
97+
"sonner": "2.0.3",
9698
"spdx-correct": "^3.2.0",
9799
"stripe": "17.7.0",
98-
"swagger-ui-react": "^5.20.1",
100+
"swagger-ui-react": "^5.20.7",
99101
"tailwind-merge": "^2.6.0",
100102
"tailwindcss-animate": "^1.0.7",
101103
"thirdweb": "workspace:*",
@@ -109,38 +111,38 @@
109111
"@next/bundle-analyzer": "15.2.4",
110112
"@next/eslint-plugin-next": "15.2.4",
111113
"@playwright/test": "1.51.1",
112-
"@storybook/addon-essentials": "8.6.4",
113-
"@storybook/addon-interactions": "8.6.4",
114-
"@storybook/addon-links": "8.6.4",
115-
"@storybook/addon-onboarding": "8.6.4",
116-
"@storybook/addon-viewport": "8.6.4",
117-
"@storybook/blocks": "8.6.4",
118-
"@storybook/nextjs": "8.6.4",
119-
"@storybook/react": "8.6.4",
120-
"@storybook/test": "8.6.4",
114+
"@storybook/addon-essentials": "8.6.12",
115+
"@storybook/addon-interactions": "8.6.12",
116+
"@storybook/addon-links": "8.6.12",
117+
"@storybook/addon-onboarding": "8.6.12",
118+
"@storybook/addon-viewport": "8.6.12",
119+
"@storybook/blocks": "8.6.12",
120+
"@storybook/nextjs": "8.6.12",
121+
"@storybook/react": "8.6.12",
122+
"@storybook/test": "8.6.12",
121123
"@types/color": "4.2.0",
122-
"@types/node": "22.13.10",
124+
"@types/node": "22.14.0",
123125
"@types/papaparse": "^5.3.15",
124126
"@types/pluralize": "^0.0.33",
125127
"@types/qrcode": "^1.5.5",
126-
"@types/react": "19.0.10",
127-
"@types/react-dom": "19.0.4",
128+
"@types/react": "19.1.0",
129+
"@types/react-dom": "19.1.1",
128130
"@types/react-table": "^7.7.20",
129131
"@types/spdx-correct": "^3.1.3",
130132
"@types/swagger-ui-react": "^4.19.0",
131133
"@typescript-eslint/eslint-plugin": "7.14.1",
132134
"@typescript-eslint/parser": "7.14.1",
133135
"autoprefixer": "^10.4.21",
134-
"checkly": "5.0.1",
136+
"checkly": "5.2.0",
135137
"eslint": "8.57.0",
136138
"eslint-config-biome": "1.9.4",
137-
"eslint-plugin-react-compiler": "19.0.0-beta-40c6c23-20250301",
139+
"eslint-plugin-react-compiler": "19.0.0-beta-e993439-20250405",
138140
"eslint-plugin-storybook": "0.12.0",
139-
"knip": "5.46.0",
141+
"knip": "5.47.0",
140142
"next-sitemap": "^4.2.3",
141143
"postcss": "8.5.3",
142-
"storybook": "8.6.4",
144+
"storybook": "8.6.12",
143145
"tailwindcss": "3.4.17",
144-
"typescript": "5.8.2"
146+
"typescript": "5.8.3"
145147
}
146148
}

apps/dashboard/src/@/components/blocks/charts/area-chart.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ type ThirdwebAreaChartProps<TConfig extends ChartConfig> = {
3030
description?: string;
3131
titleClassName?: string;
3232
};
33+
customHeader?: React.ReactNode;
3334
// chart config
3435
config: TConfig;
3536
data: Array<Record<keyof TConfig, number> & { time: number | string | Date }>;
@@ -60,6 +61,8 @@ export function ThirdwebAreaChart<TConfig extends ChartConfig>(
6061
</CardHeader>
6162
)}
6263

64+
{props.customHeader && props.customHeader}
65+
6366
<CardContent className={cn(!props.header && "pt-6")}>
6467
<ChartContainer config={props.config} className={props.chartClassName}>
6568
{props.isPending ? (

0 commit comments

Comments
 (0)