@medialane/ui 0.313.0 → 0.315.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/components/approve-mint-dialog.cjs +1 -1
  2. package/dist/components/approve-mint-dialog.cjs.map +1 -1
  3. package/dist/components/approve-mint-dialog.js +1 -1
  4. package/dist/components/approve-mint-dialog.js.map +1 -1
  5. package/dist/components/asset-marketplace-panel.cjs +1 -1
  6. package/dist/components/asset-marketplace-panel.cjs.map +1 -1
  7. package/dist/components/asset-marketplace-panel.js +1 -1
  8. package/dist/components/asset-marketplace-panel.js.map +1 -1
  9. package/dist/components/badge.d.cts +1 -1
  10. package/dist/components/badge.d.ts +1 -1
  11. package/dist/components/button.d.cts +1 -1
  12. package/dist/components/button.d.ts +1 -1
  13. package/dist/components/fast-mint/fast-mint.d.cts +2 -2
  14. package/dist/components/fast-mint/fast-mint.d.ts +2 -2
  15. package/dist/components/fast-mint/success-view.cjs +1 -1
  16. package/dist/components/fast-mint/success-view.cjs.map +1 -1
  17. package/dist/components/fast-mint/success-view.js +1 -1
  18. package/dist/components/fast-mint/success-view.js.map +1 -1
  19. package/dist/components/home-page.cjs +1 -1
  20. package/dist/components/home-page.cjs.map +1 -1
  21. package/dist/components/home-page.js +1 -1
  22. package/dist/components/home-page.js.map +1 -1
  23. package/dist/components/launchpad/tier-mint-presets.cjs +3 -3
  24. package/dist/components/launchpad/tier-mint-presets.cjs.map +1 -1
  25. package/dist/components/launchpad/tier-mint-presets.js +3 -3
  26. package/dist/components/launchpad/tier-mint-presets.js.map +1 -1
  27. package/dist/components/listings-grid.cjs +1 -1
  28. package/dist/components/listings-grid.cjs.map +1 -1
  29. package/dist/components/listings-grid.js +1 -1
  30. package/dist/components/listings-grid.js.map +1 -1
  31. package/dist/components/portfolio-orders.cjs +1 -1
  32. package/dist/components/portfolio-orders.cjs.map +1 -1
  33. package/dist/components/portfolio-orders.js +1 -1
  34. package/dist/components/portfolio-orders.js.map +1 -1
  35. package/dist/components/rewards/rewards-dashboard.cjs +2 -2
  36. package/dist/components/rewards/rewards-dashboard.cjs.map +1 -1
  37. package/dist/components/rewards/rewards-dashboard.js +2 -2
  38. package/dist/components/rewards/rewards-dashboard.js.map +1 -1
  39. package/dist/components/route-error.cjs +2 -6
  40. package/dist/components/route-error.cjs.map +1 -1
  41. package/dist/components/route-error.d.cts +1 -2
  42. package/dist/components/route-error.d.ts +1 -2
  43. package/dist/components/route-error.js +2 -6
  44. package/dist/components/route-error.js.map +1 -1
  45. package/dist/index.cjs +0 -7
  46. package/dist/index.cjs.map +1 -1
  47. package/dist/index.d.cts +0 -1
  48. package/dist/index.d.ts +0 -1
  49. package/dist/index.js +0 -4
  50. package/dist/index.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/utils/sitemap-data.cjs +0 -104
  53. package/dist/utils/sitemap-data.cjs.map +0 -1
  54. package/dist/utils/sitemap-data.d.cts +0 -20
  55. package/dist/utils/sitemap-data.d.ts +0 -20
  56. package/dist/utils/sitemap-data.js +0 -78
  57. package/dist/utils/sitemap-data.js.map +0 -1
@@ -1,104 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var sitemap_data_exports = {};
20
- __export(sitemap_data_exports, {
21
- sitemapChunks: () => sitemapChunks,
22
- sitemapEntries: () => sitemapEntries,
23
- sitemapIndexXml: () => sitemapIndexXml
24
- });
25
- module.exports = __toCommonJS(sitemap_data_exports);
26
- var import_sdk = require("@medialane/sdk");
27
- const READS = {
28
- tokens: { pageSize: 48, pagesPerChunk: 40 },
29
- collections: { pageSize: 100, pagesPerChunk: 20 },
30
- creators: { pageSize: 50, pagesPerChunk: 40 }
31
- };
32
- const KINDS = Object.keys(READS);
33
- async function read(load) {
34
- try {
35
- return await load();
36
- } catch {
37
- return load();
38
- }
39
- }
40
- async function total(api, kind) {
41
- if (kind === "tokens") return (await read(() => api.tokens.list({ limit: 1 }))).meta?.total ?? 0;
42
- if (kind === "collections") return (await read(() => api.collections.list({ limit: 1 }))).meta?.total ?? 0;
43
- return (await read(() => api.creators.list({ limit: 1 }))).total ?? 0;
44
- }
45
- async function sitemapChunks(api) {
46
- const totals = await Promise.all(KINDS.map((kind) => total(api, kind)));
47
- return KINDS.flatMap((kind, i) => {
48
- const { pageSize, pagesPerChunk } = READS[kind];
49
- return Array.from({ length: Math.ceil(totals[i] / (pageSize * pagesPerChunk)) }, (_, index) => ({ kind, index }));
50
- });
51
- }
52
- async function sitemapEntries(api, { kind, index }, baseUrl) {
53
- const { pageSize, pagesPerChunk } = READS[kind];
54
- const first = index * pagesPerChunk + 1;
55
- const pages = Array.from({ length: pagesPerChunk }, (_, i) => first + i);
56
- const entries = [];
57
- for (const page of pages) {
58
- if (kind === "tokens") {
59
- const { data } = await read(() => api.tokens.list({ page, limit: pageSize, sort: "oldest" }));
60
- for (const t of data ?? []) {
61
- entries.push({
62
- url: `${baseUrl}${(0, import_sdk.assetHref)("STARKNET", t.contractAddress, t.tokenId)}`,
63
- lastModified: t.updatedAt ? new Date(t.updatedAt) : void 0,
64
- changeFrequency: "weekly",
65
- priority: 0.5
66
- });
67
- }
68
- if ((data?.length ?? 0) < pageSize) break;
69
- } else if (kind === "collections") {
70
- const { data } = await read(() => api.collections.list({ page, limit: pageSize }));
71
- for (const c of data ?? []) {
72
- entries.push({
73
- url: `${baseUrl}${(0, import_sdk.collectionHref)("STARKNET", c.contractAddress)}`,
74
- lastModified: c.updatedAt ? new Date(c.updatedAt) : void 0,
75
- changeFrequency: "weekly",
76
- priority: 0.7
77
- });
78
- }
79
- if ((data?.length ?? 0) < pageSize) break;
80
- } else {
81
- const { creators } = await read(() => api.creators.list({ page, limit: pageSize }));
82
- for (const c of creators ?? []) {
83
- if (c.username) entries.push({ url: `${baseUrl}/creator/${c.username}`, changeFrequency: "weekly", priority: 0.6 });
84
- }
85
- if ((creators?.length ?? 0) < pageSize) break;
86
- }
87
- }
88
- return entries;
89
- }
90
- function sitemapIndexXml(urls) {
91
- const items = urls.map((url) => ` <sitemap><loc>${url}</loc></sitemap>`).join("\n");
92
- return `<?xml version="1.0" encoding="UTF-8"?>
93
- <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
94
- ${items}
95
- </sitemapindex>
96
- `;
97
- }
98
- // Annotate the CommonJS export names for ESM import in node:
99
- 0 && (module.exports = {
100
- sitemapChunks,
101
- sitemapEntries,
102
- sitemapIndexXml
103
- });
104
- //# sourceMappingURL=sitemap-data.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/sitemap-data.ts"],"sourcesContent":["import { assetHref, collectionHref, type ApiClient } from \"@medialane/sdk\";\n\nexport type SitemapKind = \"tokens\" | \"collections\" | \"creators\";\n\nexport interface SitemapChunk {\n kind: SitemapKind;\n index: number;\n}\n\nexport interface SitemapEntry {\n url: string;\n lastModified?: Date;\n changeFrequency: \"weekly\";\n priority: number;\n}\n\nconst READS = {\n tokens: { pageSize: 48, pagesPerChunk: 40 },\n collections: { pageSize: 100, pagesPerChunk: 20 },\n creators: { pageSize: 50, pagesPerChunk: 40 },\n} as const;\n\nconst KINDS = Object.keys(READS) as SitemapKind[];\n\nasync function read<T>(load: () => Promise<T>): Promise<T> {\n try {\n return await load();\n } catch {\n return load();\n }\n}\n\nasync function total(api: ApiClient, kind: SitemapKind): Promise<number> {\n if (kind === \"tokens\") return (await read(() => api.tokens.list({ limit: 1 }))).meta?.total ?? 0;\n if (kind === \"collections\") return (await read(() => api.collections.list({ limit: 1 }))).meta?.total ?? 0;\n return (await read(() => api.creators.list({ limit: 1 }))).total ?? 0;\n}\n\n/** One chunk per slice of 1,920–2,000 rows, so each sitemap file stays cheap to build and the lists have no cap. */\nexport async function sitemapChunks(api: ApiClient): Promise<SitemapChunk[]> {\n const totals = await Promise.all(KINDS.map((kind) => total(api, kind)));\n return KINDS.flatMap((kind, i) => {\n const { pageSize, pagesPerChunk } = READS[kind];\n return Array.from({ length: Math.ceil(totals[i]! / (pageSize * pagesPerChunk)) }, (_, index) => ({ kind, index }));\n });\n}\n\n/** The entries of one chunk; throws if a page cannot be read, so a partial list is never published. */\nexport async function sitemapEntries(api: ApiClient, { kind, index }: SitemapChunk, baseUrl: string): Promise<SitemapEntry[]> {\n const { pageSize, pagesPerChunk } = READS[kind];\n const first = index * pagesPerChunk + 1;\n const pages = Array.from({ length: pagesPerChunk }, (_, i) => first + i);\n const entries: SitemapEntry[] = [];\n\n for (const page of pages) {\n if (kind === \"tokens\") {\n const { data } = await read(() => api.tokens.list({ page, limit: pageSize, sort: \"oldest\" }));\n for (const t of data ?? []) {\n entries.push({\n url: `${baseUrl}${assetHref(\"STARKNET\", t.contractAddress, t.tokenId)}`,\n lastModified: t.updatedAt ? new Date(t.updatedAt) : undefined,\n changeFrequency: \"weekly\",\n priority: 0.5,\n });\n }\n if ((data?.length ?? 0) < pageSize) break;\n } else if (kind === \"collections\") {\n const { data } = await read(() => api.collections.list({ page, limit: pageSize }));\n for (const c of data ?? []) {\n entries.push({\n url: `${baseUrl}${collectionHref(\"STARKNET\", c.contractAddress)}`,\n lastModified: c.updatedAt ? new Date(c.updatedAt) : undefined,\n changeFrequency: \"weekly\",\n priority: 0.7,\n });\n }\n if ((data?.length ?? 0) < pageSize) break;\n } else {\n const { creators } = await read(() => api.creators.list({ page, limit: pageSize }));\n for (const c of creators ?? []) {\n if (c.username) entries.push({ url: `${baseUrl}/creator/${c.username}`, changeFrequency: \"weekly\", priority: 0.6 });\n }\n if ((creators?.length ?? 0) < pageSize) break;\n }\n }\n return entries;\n}\n\nexport function sitemapIndexXml(urls: string[]): string {\n const items = urls.map((url) => ` <sitemap><loc>${url}</loc></sitemap>`).join(\"\\n\");\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\\n${items}\\n</sitemapindex>\\n`;\n}\n"],"mappings":"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","names":[]}
@@ -1,20 +0,0 @@
1
- import { ApiClient } from '@medialane/sdk';
2
-
3
- type SitemapKind = "tokens" | "collections" | "creators";
4
- interface SitemapChunk {
5
- kind: SitemapKind;
6
- index: number;
7
- }
8
- interface SitemapEntry {
9
- url: string;
10
- lastModified?: Date;
11
- changeFrequency: "weekly";
12
- priority: number;
13
- }
14
- /** One chunk per slice of 1,920–2,000 rows, so each sitemap file stays cheap to build and the lists have no cap. */
15
- declare function sitemapChunks(api: ApiClient): Promise<SitemapChunk[]>;
16
- /** The entries of one chunk; throws if a page cannot be read, so a partial list is never published. */
17
- declare function sitemapEntries(api: ApiClient, { kind, index }: SitemapChunk, baseUrl: string): Promise<SitemapEntry[]>;
18
- declare function sitemapIndexXml(urls: string[]): string;
19
-
20
- export { type SitemapChunk, type SitemapEntry, type SitemapKind, sitemapChunks, sitemapEntries, sitemapIndexXml };
@@ -1,20 +0,0 @@
1
- import { ApiClient } from '@medialane/sdk';
2
-
3
- type SitemapKind = "tokens" | "collections" | "creators";
4
- interface SitemapChunk {
5
- kind: SitemapKind;
6
- index: number;
7
- }
8
- interface SitemapEntry {
9
- url: string;
10
- lastModified?: Date;
11
- changeFrequency: "weekly";
12
- priority: number;
13
- }
14
- /** One chunk per slice of 1,920–2,000 rows, so each sitemap file stays cheap to build and the lists have no cap. */
15
- declare function sitemapChunks(api: ApiClient): Promise<SitemapChunk[]>;
16
- /** The entries of one chunk; throws if a page cannot be read, so a partial list is never published. */
17
- declare function sitemapEntries(api: ApiClient, { kind, index }: SitemapChunk, baseUrl: string): Promise<SitemapEntry[]>;
18
- declare function sitemapIndexXml(urls: string[]): string;
19
-
20
- export { type SitemapChunk, type SitemapEntry, type SitemapKind, sitemapChunks, sitemapEntries, sitemapIndexXml };
@@ -1,78 +0,0 @@
1
- import { assetHref, collectionHref } from "@medialane/sdk";
2
- const READS = {
3
- tokens: { pageSize: 48, pagesPerChunk: 40 },
4
- collections: { pageSize: 100, pagesPerChunk: 20 },
5
- creators: { pageSize: 50, pagesPerChunk: 40 }
6
- };
7
- const KINDS = Object.keys(READS);
8
- async function read(load) {
9
- try {
10
- return await load();
11
- } catch {
12
- return load();
13
- }
14
- }
15
- async function total(api, kind) {
16
- if (kind === "tokens") return (await read(() => api.tokens.list({ limit: 1 }))).meta?.total ?? 0;
17
- if (kind === "collections") return (await read(() => api.collections.list({ limit: 1 }))).meta?.total ?? 0;
18
- return (await read(() => api.creators.list({ limit: 1 }))).total ?? 0;
19
- }
20
- async function sitemapChunks(api) {
21
- const totals = await Promise.all(KINDS.map((kind) => total(api, kind)));
22
- return KINDS.flatMap((kind, i) => {
23
- const { pageSize, pagesPerChunk } = READS[kind];
24
- return Array.from({ length: Math.ceil(totals[i] / (pageSize * pagesPerChunk)) }, (_, index) => ({ kind, index }));
25
- });
26
- }
27
- async function sitemapEntries(api, { kind, index }, baseUrl) {
28
- const { pageSize, pagesPerChunk } = READS[kind];
29
- const first = index * pagesPerChunk + 1;
30
- const pages = Array.from({ length: pagesPerChunk }, (_, i) => first + i);
31
- const entries = [];
32
- for (const page of pages) {
33
- if (kind === "tokens") {
34
- const { data } = await read(() => api.tokens.list({ page, limit: pageSize, sort: "oldest" }));
35
- for (const t of data ?? []) {
36
- entries.push({
37
- url: `${baseUrl}${assetHref("STARKNET", t.contractAddress, t.tokenId)}`,
38
- lastModified: t.updatedAt ? new Date(t.updatedAt) : void 0,
39
- changeFrequency: "weekly",
40
- priority: 0.5
41
- });
42
- }
43
- if ((data?.length ?? 0) < pageSize) break;
44
- } else if (kind === "collections") {
45
- const { data } = await read(() => api.collections.list({ page, limit: pageSize }));
46
- for (const c of data ?? []) {
47
- entries.push({
48
- url: `${baseUrl}${collectionHref("STARKNET", c.contractAddress)}`,
49
- lastModified: c.updatedAt ? new Date(c.updatedAt) : void 0,
50
- changeFrequency: "weekly",
51
- priority: 0.7
52
- });
53
- }
54
- if ((data?.length ?? 0) < pageSize) break;
55
- } else {
56
- const { creators } = await read(() => api.creators.list({ page, limit: pageSize }));
57
- for (const c of creators ?? []) {
58
- if (c.username) entries.push({ url: `${baseUrl}/creator/${c.username}`, changeFrequency: "weekly", priority: 0.6 });
59
- }
60
- if ((creators?.length ?? 0) < pageSize) break;
61
- }
62
- }
63
- return entries;
64
- }
65
- function sitemapIndexXml(urls) {
66
- const items = urls.map((url) => ` <sitemap><loc>${url}</loc></sitemap>`).join("\n");
67
- return `<?xml version="1.0" encoding="UTF-8"?>
68
- <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
69
- ${items}
70
- </sitemapindex>
71
- `;
72
- }
73
- export {
74
- sitemapChunks,
75
- sitemapEntries,
76
- sitemapIndexXml
77
- };
78
- //# sourceMappingURL=sitemap-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/sitemap-data.ts"],"sourcesContent":["import { assetHref, collectionHref, type ApiClient } from \"@medialane/sdk\";\n\nexport type SitemapKind = \"tokens\" | \"collections\" | \"creators\";\n\nexport interface SitemapChunk {\n kind: SitemapKind;\n index: number;\n}\n\nexport interface SitemapEntry {\n url: string;\n lastModified?: Date;\n changeFrequency: \"weekly\";\n priority: number;\n}\n\nconst READS = {\n tokens: { pageSize: 48, pagesPerChunk: 40 },\n collections: { pageSize: 100, pagesPerChunk: 20 },\n creators: { pageSize: 50, pagesPerChunk: 40 },\n} as const;\n\nconst KINDS = Object.keys(READS) as SitemapKind[];\n\nasync function read<T>(load: () => Promise<T>): Promise<T> {\n try {\n return await load();\n } catch {\n return load();\n }\n}\n\nasync function total(api: ApiClient, kind: SitemapKind): Promise<number> {\n if (kind === \"tokens\") return (await read(() => api.tokens.list({ limit: 1 }))).meta?.total ?? 0;\n if (kind === \"collections\") return (await read(() => api.collections.list({ limit: 1 }))).meta?.total ?? 0;\n return (await read(() => api.creators.list({ limit: 1 }))).total ?? 0;\n}\n\n/** One chunk per slice of 1,920–2,000 rows, so each sitemap file stays cheap to build and the lists have no cap. */\nexport async function sitemapChunks(api: ApiClient): Promise<SitemapChunk[]> {\n const totals = await Promise.all(KINDS.map((kind) => total(api, kind)));\n return KINDS.flatMap((kind, i) => {\n const { pageSize, pagesPerChunk } = READS[kind];\n return Array.from({ length: Math.ceil(totals[i]! / (pageSize * pagesPerChunk)) }, (_, index) => ({ kind, index }));\n });\n}\n\n/** The entries of one chunk; throws if a page cannot be read, so a partial list is never published. */\nexport async function sitemapEntries(api: ApiClient, { kind, index }: SitemapChunk, baseUrl: string): Promise<SitemapEntry[]> {\n const { pageSize, pagesPerChunk } = READS[kind];\n const first = index * pagesPerChunk + 1;\n const pages = Array.from({ length: pagesPerChunk }, (_, i) => first + i);\n const entries: SitemapEntry[] = [];\n\n for (const page of pages) {\n if (kind === \"tokens\") {\n const { data } = await read(() => api.tokens.list({ page, limit: pageSize, sort: \"oldest\" }));\n for (const t of data ?? []) {\n entries.push({\n url: `${baseUrl}${assetHref(\"STARKNET\", t.contractAddress, t.tokenId)}`,\n lastModified: t.updatedAt ? new Date(t.updatedAt) : undefined,\n changeFrequency: \"weekly\",\n priority: 0.5,\n });\n }\n if ((data?.length ?? 0) < pageSize) break;\n } else if (kind === \"collections\") {\n const { data } = await read(() => api.collections.list({ page, limit: pageSize }));\n for (const c of data ?? []) {\n entries.push({\n url: `${baseUrl}${collectionHref(\"STARKNET\", c.contractAddress)}`,\n lastModified: c.updatedAt ? new Date(c.updatedAt) : undefined,\n changeFrequency: \"weekly\",\n priority: 0.7,\n });\n }\n if ((data?.length ?? 0) < pageSize) break;\n } else {\n const { creators } = await read(() => api.creators.list({ page, limit: pageSize }));\n for (const c of creators ?? []) {\n if (c.username) entries.push({ url: `${baseUrl}/creator/${c.username}`, changeFrequency: \"weekly\", priority: 0.6 });\n }\n if ((creators?.length ?? 0) < pageSize) break;\n }\n }\n return entries;\n}\n\nexport function sitemapIndexXml(urls: string[]): string {\n const items = urls.map((url) => ` <sitemap><loc>${url}</loc></sitemap>`).join(\"\\n\");\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\\n${items}\\n</sitemapindex>\\n`;\n}\n"],"mappings":"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","names":[]}