Skip to content

Commit 651586b

Browse files
committed
Merge branch 'main' into greg/fix-flaky-test
2 parents f98a8a3 + dd99410 commit 651586b

File tree

212 files changed

+8448
-7919
lines changed

Some content is hidden

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

212 files changed

+8448
-7919
lines changed

.changeset/blue-geese-refuse.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"thirdweb": patch
3+
---
4+
5+
Single phase functionality for erc1155

.changeset/eager-buttons-shave.md

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

apps/dashboard/.storybook/preview.tsx

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,23 +81,18 @@ function StoryLayout(props: {
8181
return (
8282
<QueryClientProvider client={queryClient}>
8383
<div className="flex min-h-dvh min-w-0 flex-col bg-background text-foreground">
84-
<div className="flex justify-end gap-2 border-b p-4">
84+
<div className="fixed right-0 bottom-0 z-50 flex justify-end gap-2 p-4">
8585
<Button
86-
onClick={() => setTheme("dark")}
86+
onClick={() => setTheme(theme === "dark" ? "light" : "dark")}
8787
size="sm"
88-
variant={theme === "dark" ? "default" : "outline"}
88+
variant="outline"
8989
className="h-auto w-auto shrink-0 rounded-full p-2"
9090
>
91-
<MoonIcon className="size-4" />
92-
</Button>
93-
94-
<Button
95-
onClick={() => setTheme("light")}
96-
size="sm"
97-
variant={theme === "light" ? "default" : "outline"}
98-
className="h-auto w-auto shrink-0 rounded-full p-2"
99-
>
100-
<SunIcon className="size-4" />
91+
{theme === "dark" ? (
92+
<MoonIcon className="size-4" />
93+
) : (
94+
<SunIcon className="size-4" />
95+
)}
10196
</Button>
10297
</div>
10398

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/package.json

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,21 @@
4545
"@radix-ui/react-slot": "^1.1.2",
4646
"@radix-ui/react-switch": "^1.1.3",
4747
"@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",
48+
"@sentry/nextjs": "9.11.0",
49+
"@shazow/whatsabi": "0.21.0",
50+
"@tanstack/react-query": "5.71.10",
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",
@@ -78,24 +79,24 @@
7879
"pluralize": "^8.0.0",
7980
"posthog-js": "1.67.1",
8081
"qrcode": "^1.5.3",
81-
"react": "19.0.0",
82+
"react": "19.1.0",
8283
"react-children-utilities": "^2.10.0",
8384
"react-day-picker": "^8.10.1",
84-
"react-dom": "19.0.0",
85+
"react-dom": "19.1.0",
8586
"react-dropzone": "^14.3.8",
8687
"react-error-boundary": "^5.0.0",
87-
"react-hook-form": "7.54.2",
88+
"react-hook-form": "7.55.0",
8889
"react-markdown": "^9.0.1",
8990
"react-table": "^7.8.0",
90-
"recharts": "2.15.1",
91+
"recharts": "2.15.2",
9192
"remark-gfm": "4.0.1",
9293
"responsive-rsc": "0.0.7",
9394
"server-only": "^0.0.1",
9495
"shiki": "1.27.0",
95-
"sonner": "2.0.1",
96+
"sonner": "2.0.3",
9697
"spdx-correct": "^3.2.0",
9798
"stripe": "17.7.0",
98-
"swagger-ui-react": "^5.20.1",
99+
"swagger-ui-react": "^5.20.6",
99100
"tailwind-merge": "^2.6.0",
100101
"tailwindcss-animate": "^1.0.7",
101102
"thirdweb": "workspace:*",
@@ -109,38 +110,38 @@
109110
"@next/bundle-analyzer": "15.2.4",
110111
"@next/eslint-plugin-next": "15.2.4",
111112
"@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",
113+
"@storybook/addon-essentials": "8.6.12",
114+
"@storybook/addon-interactions": "8.6.12",
115+
"@storybook/addon-links": "8.6.12",
116+
"@storybook/addon-onboarding": "8.6.12",
117+
"@storybook/addon-viewport": "8.6.12",
118+
"@storybook/blocks": "8.6.12",
119+
"@storybook/nextjs": "8.6.12",
120+
"@storybook/react": "8.6.12",
121+
"@storybook/test": "8.6.12",
121122
"@types/color": "4.2.0",
122-
"@types/node": "22.13.10",
123+
"@types/node": "22.14.0",
123124
"@types/papaparse": "^5.3.15",
124125
"@types/pluralize": "^0.0.33",
125126
"@types/qrcode": "^1.5.5",
126-
"@types/react": "19.0.10",
127-
"@types/react-dom": "19.0.4",
127+
"@types/react": "19.1.0",
128+
"@types/react-dom": "19.1.1",
128129
"@types/react-table": "^7.7.20",
129130
"@types/spdx-correct": "^3.1.3",
130131
"@types/swagger-ui-react": "^4.19.0",
131132
"@typescript-eslint/eslint-plugin": "7.14.1",
132133
"@typescript-eslint/parser": "7.14.1",
133134
"autoprefixer": "^10.4.21",
134-
"checkly": "5.0.1",
135+
"checkly": "5.2.0",
135136
"eslint": "8.57.0",
136137
"eslint-config-biome": "1.9.4",
137-
"eslint-plugin-react-compiler": "19.0.0-beta-40c6c23-20250301",
138+
"eslint-plugin-react-compiler": "19.0.0-beta-e993439-20250328",
138139
"eslint-plugin-storybook": "0.12.0",
139-
"knip": "5.46.0",
140+
"knip": "5.46.5",
140141
"next-sitemap": "^4.2.3",
141142
"postcss": "8.5.3",
142-
"storybook": "8.6.4",
143+
"storybook": "8.6.12",
143144
"tailwindcss": "3.4.17",
144-
"typescript": "5.8.2"
145+
"typescript": "5.8.3"
145146
}
146147
}

apps/dashboard/src/@/components/blocks/Avatars/GradientAvatar.stories.tsx

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,27 @@ import { GradientAvatar } from "./GradientAvatar";
88
const meta = {
99
title: "blocks/Avatars/GradientAvatar",
1010
component: Story,
11-
parameters: {},
1211
} satisfies Meta<typeof Story>;
1312

1413
export default meta;
1514
type Story = StoryObj<typeof meta>;
1615

17-
export const Desktop: Story = {
16+
export const Variants: Story = {
1817
args: {},
1918
};
2019

2120
const client = getThirdwebClient();
2221

2322
function Story() {
2423
return (
25-
<div className="flex flex-col gap-10 p-10">
26-
<p> All images below are set with size-6 className </p>
24+
<div className="container flex max-w-6xl flex-col gap-10 py-10">
25+
<p> All images below are set with size-20 className </p>
2726

2827
<BadgeContainer label="No Src, No id - Skeleton">
2928
<GradientAvatar
3029
id={undefined}
3130
src={undefined}
32-
className="size-6"
31+
className="size-20"
3332
client={client}
3433
/>
3534
</BadgeContainer>
@@ -38,7 +37,7 @@ function Story() {
3837
<GradientAvatar
3938
id={"foo"}
4039
src={undefined}
41-
className="size-6"
40+
className="size-20"
4241
client={client}
4342
/>
4443
</BadgeContainer>
@@ -47,7 +46,7 @@ function Story() {
4746
<GradientAvatar
4847
id={"foo"}
4948
src={""}
50-
className="size-6"
49+
className="size-20"
5150
client={client}
5251
/>
5352
</BadgeContainer>
@@ -56,7 +55,7 @@ function Story() {
5655
<GradientAvatar
5756
id={"bar"}
5857
src={""}
59-
className="size-6"
58+
className="size-20"
6059
client={client}
6160
/>
6261
</BadgeContainer>
@@ -65,7 +64,7 @@ function Story() {
6564
<GradientAvatar
6665
src="invalid-src"
6766
id={undefined}
68-
className="size-6"
67+
className="size-20"
6968
client={client}
7069
/>
7170
</BadgeContainer>
@@ -74,7 +73,7 @@ function Story() {
7473
<GradientAvatar
7574
src="https://picsum.photos/200/300"
7675
id={undefined}
77-
className="size-6"
76+
className="size-20"
7877
client={client}
7978
/>
8079
</BadgeContainer>
@@ -83,7 +82,7 @@ function Story() {
8382
<GradientAvatar
8483
src="ipfs://QmZbeJYEs7kCJHyQxjxU2SJUtjSAr4m87wzJFJUyWomKdj/Smily.svg"
8584
id={undefined}
86-
className="size-6"
85+
className="size-20"
8786
client={client}
8887
/>
8988
</BadgeContainer>
@@ -123,14 +122,14 @@ function ToggleTest() {
123122
<GradientAvatar
124123
src={data?.src}
125124
id={data?.id}
126-
className="size-6"
125+
className="size-20"
127126
client={client}
128127
/>
129128
</BadgeContainer>
130129

131130
<BadgeContainer label="invalid Src">
132131
<GradientAvatar
133-
className="size-6"
132+
className="size-20"
134133
src={data ? "invalid-src" : undefined}
135134
id={undefined}
136135
client={client}

apps/dashboard/src/@/components/blocks/Avatars/ProjectAvatar.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ const meta = {
1414
export default meta;
1515
type Story = StoryObj<typeof meta>;
1616

17-
export const Desktop: Story = {
17+
export const Variants: Story = {
1818
args: {},
1919
};
2020

2121
const client = getThirdwebClient();
2222

2323
function Story() {
2424
return (
25-
<div className="flex flex-col gap-10 p-10">
25+
<div className="container flex max-w-6xl flex-col gap-10 py-10">
2626
<p> All images below are set with size-6 className </p>
2727

2828
<BadgeContainer label="No Src - Skeleton">

apps/dashboard/src/@/components/blocks/DangerSettingCard.stories.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Meta, StoryObj } from "@storybook/react";
2-
import { BadgeContainer, mobileViewport } from "../../../stories/utils";
2+
import { BadgeContainer } from "../../../stories/utils";
33
import { DangerSettingCard } from "./DangerSettingCard";
44

55
const meta = {
@@ -15,17 +15,10 @@ const meta = {
1515
export default meta;
1616
type Story = StoryObj<typeof meta>;
1717

18-
export const Desktop: Story = {
18+
export const Variants: Story = {
1919
args: {},
2020
};
2121

22-
export const Mobile: Story = {
23-
args: {},
24-
parameters: {
25-
viewport: mobileViewport("iphone14"),
26-
},
27-
};
28-
2922
function Story() {
3023
return (
3124
<div className="container flex max-w-[1000px] flex-col gap-8 py-10">

apps/dashboard/src/@/components/blocks/Img.stories.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@ import { Img } from "./Img";
99
const meta = {
1010
title: "blocks/Img",
1111
component: Story,
12-
parameters: {},
1312
} satisfies Meta<typeof Story>;
1413

1514
export default meta;
1615
type Story = StoryObj<typeof meta>;
1716

18-
export const Desktop: Story = {
17+
export const Variants: Story = {
1918
args: {},
2019
};
2120

0 commit comments

Comments
 (0)