decentraland-ui2 3.12.0 → 3.13.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.
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.d.ts +12 -0
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.js +165 -0
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.js.map +1 -0
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.styled.d.ts +17 -0
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.styled.js +29 -0
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.styled.js.map +1 -0
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.types.d.ts +36 -0
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.types.js +2 -0
- package/dist/components/AssetPreviewPlayer/AssetPreviewPlayer.types.js.map +1 -0
- package/dist/components/AssetPreviewPlayer/index.d.ts +2 -0
- package/dist/components/AssetPreviewPlayer/index.js +2 -0
- package/dist/components/AssetPreviewPlayer/index.js.map +1 -0
- package/dist/components/CatalogCard/CatalogCard.js +33 -4
- package/dist/components/CatalogCard/CatalogCard.js.map +1 -1
- package/dist/components/CatalogCard/CatalogCard.stories.d.ts +9 -1
- package/dist/components/CatalogCard/CatalogCard.stories.js +147 -4
- package/dist/components/CatalogCard/CatalogCard.stories.js.map +1 -1
- package/dist/components/CatalogCard/CatalogCard.styled.d.ts +56 -11
- package/dist/components/CatalogCard/CatalogCard.styled.js +187 -52
- package/dist/components/CatalogCard/CatalogCard.styled.js.map +1 -1
- package/dist/components/CatalogCard/CatalogCard.types.d.ts +16 -0
- package/dist/components/CatalogCard/CatalogCardPrice.js +2 -3
- package/dist/components/CatalogCard/CatalogCardPrice.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AssetPreviewPlayerContextValue, AssetPreviewPlayerProviderProps } from './AssetPreviewPlayer.types';
|
|
2
|
+
declare const PREVIEW_IFRAME_ID = "asset-preview-player-iframe";
|
|
3
|
+
/** Returns the player controls, or `null` when no enabled provider is mounted above. */
|
|
4
|
+
declare function useAssetPreviewPlayer(): AssetPreviewPlayerContextValue | null;
|
|
5
|
+
/**
|
|
6
|
+
* Single pre-warmed `WearablePreview` iframe shared by every card: it boots hidden,
|
|
7
|
+
* gets repositioned over the hovered card image and receives each asset via
|
|
8
|
+
* `postMessage(UPDATE)` — never one iframe per card (marketplace PRs #2640/#2648).
|
|
9
|
+
* Emotes are played by the avatar; wearables are rendered worn by the avatar.
|
|
10
|
+
*/
|
|
11
|
+
declare function AssetPreviewPlayerProvider({ enabled, peerUrl, marketplaceServerUrl, profile, dev, children }: AssetPreviewPlayerProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export { AssetPreviewPlayerProvider, useAssetPreviewPlayer, PREVIEW_IFRAME_ID };
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
4
|
+
import { Network, PreviewMessageType, Rarity, sendMessage } from '@dcl/schemas';
|
|
5
|
+
import { CircularProgress } from '@mui/material';
|
|
6
|
+
import { WearablePreview } from '../WearablePreview';
|
|
7
|
+
import { PlayerOverlay, SpinnerContainer } from './AssetPreviewPlayer.styled';
|
|
8
|
+
const PREVIEW_IFRAME_ID = 'asset-preview-player-iframe';
|
|
9
|
+
const DEFAULT_PEER_URL = 'https://peer.decentraland.org';
|
|
10
|
+
const DEFAULT_MARKETPLACE_SERVER_URL = 'https://marketplace-api.decentraland.org';
|
|
11
|
+
const AssetPreviewPlayerContext = createContext(null);
|
|
12
|
+
/** Returns the player controls, or `null` when no enabled provider is mounted above. */
|
|
13
|
+
function useAssetPreviewPlayer() {
|
|
14
|
+
return useContext(AssetPreviewPlayerContext);
|
|
15
|
+
}
|
|
16
|
+
const sourceToOptions = (src, env) => {
|
|
17
|
+
const base = {
|
|
18
|
+
profile: env.profile,
|
|
19
|
+
peerUrl: env.peerUrl,
|
|
20
|
+
marketplaceServerUrl: env.marketplaceServerUrl,
|
|
21
|
+
background: Rarity.getColor(src.rarity ?? Rarity.COMMON)
|
|
22
|
+
};
|
|
23
|
+
if (src.urn) {
|
|
24
|
+
return { ...base, urns: [src.urn] };
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
...base,
|
|
28
|
+
contractAddress: src.contractAddress ?? null,
|
|
29
|
+
itemId: src.itemId ?? null,
|
|
30
|
+
tokenId: src.tokenId ?? null
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The iframe only rebuilds (and therefore only emits LOAD) when the asset identity
|
|
35
|
+
* changes — tracking it by key keeps the spinner honest on re-hovers of an
|
|
36
|
+
* already-rendered asset (marketplace PR #2648).
|
|
37
|
+
*/
|
|
38
|
+
const keyOf = (src) => {
|
|
39
|
+
if (src.urn) {
|
|
40
|
+
return `urn:${src.urn}`;
|
|
41
|
+
}
|
|
42
|
+
if (src.network === Network.ETHEREUM) {
|
|
43
|
+
return `eth:${src.contractAddress ?? ''}:${src.tokenId ?? ''}`;
|
|
44
|
+
}
|
|
45
|
+
return `${src.contractAddress ?? ''}:${src.itemId ?? src.tokenId ?? ''}`;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Single pre-warmed `WearablePreview` iframe shared by every card: it boots hidden,
|
|
49
|
+
* gets repositioned over the hovered card image and receives each asset via
|
|
50
|
+
* `postMessage(UPDATE)` — never one iframe per card (marketplace PRs #2640/#2648).
|
|
51
|
+
* Emotes are played by the avatar; wearables are rendered worn by the avatar.
|
|
52
|
+
*/
|
|
53
|
+
function AssetPreviewPlayerProvider({ enabled, peerUrl = DEFAULT_PEER_URL, marketplaceServerUrl = DEFAULT_MARKETPLACE_SERVER_URL, profile = 'default', dev = false, children }) {
|
|
54
|
+
const [isVisible, setIsVisible] = useState(false);
|
|
55
|
+
const [isControllable, setIsControllable] = useState(false);
|
|
56
|
+
const [isAssetLoading, setIsAssetLoading] = useState(false);
|
|
57
|
+
const [rect, setRect] = useState(null);
|
|
58
|
+
const [overlayRarity, setOverlayRarity] = useState(Rarity.COMMON);
|
|
59
|
+
const targetRef = useRef(null);
|
|
60
|
+
const hasInitiallyLoadedRef = useRef(false);
|
|
61
|
+
const pendingSourceRef = useRef(null);
|
|
62
|
+
const currentKeyRef = useRef(null);
|
|
63
|
+
const loadedKeyRef = useRef(null);
|
|
64
|
+
const envConfig = useMemo(() => ({ profile, peerUrl, marketplaceServerUrl }), [profile, peerUrl, marketplaceServerUrl]);
|
|
65
|
+
const dispatchUpdate = useCallback((src) => {
|
|
66
|
+
const iframe = document.getElementById(PREVIEW_IFRAME_ID);
|
|
67
|
+
if (!iframe?.contentWindow) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
sendMessage(iframe.contentWindow, PreviewMessageType.UPDATE, { options: sourceToOptions(src, envConfig) });
|
|
71
|
+
return true;
|
|
72
|
+
}, [envConfig]);
|
|
73
|
+
const show = useCallback((target, source) => {
|
|
74
|
+
targetRef.current = target;
|
|
75
|
+
setOverlayRarity(source.rarity ?? Rarity.COMMON);
|
|
76
|
+
setIsVisible(true);
|
|
77
|
+
const key = keyOf(source);
|
|
78
|
+
currentKeyRef.current = key;
|
|
79
|
+
// If this asset is already rendered in the iframe the UPDATE won't trigger a
|
|
80
|
+
// rebuild (no LOAD will follow), so don't show a spinner that would never clear.
|
|
81
|
+
setIsAssetLoading(key !== loadedKeyRef.current);
|
|
82
|
+
if (!isControllable || !dispatchUpdate(source)) {
|
|
83
|
+
pendingSourceRef.current = source;
|
|
84
|
+
}
|
|
85
|
+
}, [isControllable, dispatchUpdate]);
|
|
86
|
+
const hide = useCallback(() => {
|
|
87
|
+
// Keep loadedKeyRef so re-hovering the same asset stays instant.
|
|
88
|
+
targetRef.current = null;
|
|
89
|
+
setIsVisible(false);
|
|
90
|
+
setRect(null);
|
|
91
|
+
}, []);
|
|
92
|
+
// Follow the hovered image rect (cards animate/scroll under the fixed overlay).
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
if (!isVisible) {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
let rafId = 0;
|
|
98
|
+
const tick = () => {
|
|
99
|
+
const el = targetRef.current;
|
|
100
|
+
if (el) {
|
|
101
|
+
const r = el.getBoundingClientRect();
|
|
102
|
+
setRect(prev => {
|
|
103
|
+
if (prev && prev.top === r.top && prev.left === r.left && prev.width === r.width && prev.height === r.height) {
|
|
104
|
+
return prev;
|
|
105
|
+
}
|
|
106
|
+
return { top: r.top, left: r.left, width: r.width, height: r.height };
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
rafId = requestAnimationFrame(tick);
|
|
110
|
+
};
|
|
111
|
+
rafId = requestAnimationFrame(tick);
|
|
112
|
+
return () => cancelAnimationFrame(rafId);
|
|
113
|
+
}, [isVisible]);
|
|
114
|
+
const handlePreviewLoad = useCallback(() => {
|
|
115
|
+
if (!hasInitiallyLoadedRef.current) {
|
|
116
|
+
// First LOAD is the iframe boot — it becomes controllable now.
|
|
117
|
+
hasInitiallyLoadedRef.current = true;
|
|
118
|
+
setIsControllable(true);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
loadedKeyRef.current = currentKeyRef.current;
|
|
122
|
+
setIsAssetLoading(false);
|
|
123
|
+
}, []);
|
|
124
|
+
const handlePreviewError = useCallback(() => {
|
|
125
|
+
setIsAssetLoading(false);
|
|
126
|
+
}, []);
|
|
127
|
+
// A hover that raced the iframe boot is flushed as soon as it becomes controllable.
|
|
128
|
+
useEffect(() => {
|
|
129
|
+
if (isControllable && pendingSourceRef.current) {
|
|
130
|
+
const pending = pendingSourceRef.current;
|
|
131
|
+
pendingSourceRef.current = null;
|
|
132
|
+
dispatchUpdate(pending);
|
|
133
|
+
}
|
|
134
|
+
}, [isControllable, dispatchUpdate]);
|
|
135
|
+
// Disabling tears the iframe down — reset every ref so the next boot is treated as such.
|
|
136
|
+
useEffect(() => {
|
|
137
|
+
if (!enabled) {
|
|
138
|
+
hasInitiallyLoadedRef.current = false;
|
|
139
|
+
pendingSourceRef.current = null;
|
|
140
|
+
currentKeyRef.current = null;
|
|
141
|
+
loadedKeyRef.current = null;
|
|
142
|
+
targetRef.current = null;
|
|
143
|
+
setIsControllable(false);
|
|
144
|
+
setIsVisible(false);
|
|
145
|
+
setIsAssetLoading(false);
|
|
146
|
+
setRect(null);
|
|
147
|
+
}
|
|
148
|
+
}, [enabled]);
|
|
149
|
+
const contextValue = useMemo(() => (enabled ? { show, hide } : null), [enabled, show, hide]);
|
|
150
|
+
const [lightColor, regularColor] = Rarity.getGradient(overlayRarity);
|
|
151
|
+
const overlayStyle = isVisible && rect
|
|
152
|
+
? {
|
|
153
|
+
top: rect.top,
|
|
154
|
+
left: rect.left,
|
|
155
|
+
width: rect.width,
|
|
156
|
+
height: rect.height,
|
|
157
|
+
backgroundImage: `radial-gradient(${lightColor}, ${regularColor})`
|
|
158
|
+
}
|
|
159
|
+
: undefined;
|
|
160
|
+
return (_jsxs(AssetPreviewPlayerContext.Provider, { value: contextValue, children: [children, enabled
|
|
161
|
+
? createPortal(_jsxs(PlayerOverlay, { visible: Boolean(isVisible && rect), style: overlayStyle, "aria-hidden": true, children: [_jsx(WearablePreview, { id: PREVIEW_IFRAME_ID, profile: profile, peerUrl: peerUrl, marketplaceServerUrl: marketplaceServerUrl, background: Rarity.getColor(Rarity.COMMON), disableAutoRotate: true, disableFadeEffect: true, dev: dev, onLoad: handlePreviewLoad, onError: handlePreviewError }), isAssetLoading ? (_jsx(SpinnerContainer, { children: _jsx(CircularProgress, { size: 28 }) })) : null] }), document.body)
|
|
162
|
+
: null] }));
|
|
163
|
+
}
|
|
164
|
+
export { AssetPreviewPlayerProvider, useAssetPreviewPlayer, PREVIEW_IFRAME_ID };
|
|
165
|
+
//# sourceMappingURL=AssetPreviewPlayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetPreviewPlayer.js","sourceRoot":"","sources":["../../../src/components/AssetPreviewPlayer/AssetPreviewPlayer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixed overlay that floats the shared preview iframe over the hovered card image.
|
|
3
|
+
* While "warming" (iframe booting, nothing hovered) it stays parked at the viewport
|
|
4
|
+
* origin hidden via `clip-path` — NOT `visibility: hidden`, which can pause the
|
|
5
|
+
* iframe's render loop and defeat the pre-warming.
|
|
6
|
+
*/
|
|
7
|
+
declare const PlayerOverlay: import("@emotion/styled").StyledComponent<{
|
|
8
|
+
theme?: import("@emotion/react").Theme;
|
|
9
|
+
as?: React.ElementType;
|
|
10
|
+
} & {
|
|
11
|
+
visible: boolean;
|
|
12
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
13
|
+
declare const SpinnerContainer: import("@emotion/styled").StyledComponent<{
|
|
14
|
+
theme?: import("@emotion/react").Theme;
|
|
15
|
+
as?: React.ElementType;
|
|
16
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
17
|
+
export { PlayerOverlay, SpinnerContainer };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
/**
|
|
3
|
+
* Fixed overlay that floats the shared preview iframe over the hovered card image.
|
|
4
|
+
* While "warming" (iframe booting, nothing hovered) it stays parked at the viewport
|
|
5
|
+
* origin hidden via `clip-path` — NOT `visibility: hidden`, which can pause the
|
|
6
|
+
* iframe's render loop and defeat the pre-warming.
|
|
7
|
+
*/
|
|
8
|
+
const PlayerOverlay = styled('div')(({ visible }) => ({
|
|
9
|
+
position: 'fixed',
|
|
10
|
+
// Above MUI dialogs (zIndex.modal = 1300) so cards hovered inside a profile/event
|
|
11
|
+
// modal still get their preview; pointer-events stays none so nothing is blocked.
|
|
12
|
+
zIndex: 1600,
|
|
13
|
+
borderRadius: 10,
|
|
14
|
+
overflow: 'hidden',
|
|
15
|
+
// Clicks fall through to the card underneath (navigation keeps working).
|
|
16
|
+
pointerEvents: 'none',
|
|
17
|
+
transition: 'opacity 120ms ease-out',
|
|
18
|
+
contain: 'layout paint',
|
|
19
|
+
...(visible ? { opacity: 1, clipPath: 'none' } : { top: 0, left: 0, width: 320, height: 320, opacity: 0, clipPath: 'inset(50%)' })
|
|
20
|
+
}));
|
|
21
|
+
const SpinnerContainer = styled('div')({
|
|
22
|
+
position: 'absolute',
|
|
23
|
+
inset: 0,
|
|
24
|
+
display: 'flex',
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
justifyContent: 'center'
|
|
27
|
+
});
|
|
28
|
+
export { PlayerOverlay, SpinnerContainer };
|
|
29
|
+
//# sourceMappingURL=AssetPreviewPlayer.styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetPreviewPlayer.styled.js","sourceRoot":"","sources":["../../../src/components/AssetPreviewPlayer/AssetPreviewPlayer.styled.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAA;AAEpC;;;;;GAKG;AACH,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAuB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,QAAQ,EAAE,OAAO;IACjB,kFAAkF;IAClF,kFAAkF;IAClF,MAAM,EAAE,IAAI;IACZ,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,QAAQ;IAClB,yEAAyE;IACzE,aAAa,EAAE,MAAM;IACrB,UAAU,EAAE,wBAAwB;IACpC,OAAO,EAAE,cAAc;IACvB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;CACnI,CAAC,CAAC,CAAA;AAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;CACzB,CAAC,CAAA;AAEF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Network, Rarity } from '@dcl/schemas';
|
|
2
|
+
/** Identifies the asset to render in the shared preview iframe. */
|
|
3
|
+
type AssetPreviewSource = {
|
|
4
|
+
/** Preferred identifier — resolves any collections item (wearable or emote). */
|
|
5
|
+
urn?: string | null;
|
|
6
|
+
/** Legacy identifier pair, used when no `urn` is available. */
|
|
7
|
+
contractAddress?: string;
|
|
8
|
+
itemId?: string | null;
|
|
9
|
+
tokenId?: string | null;
|
|
10
|
+
network?: Network;
|
|
11
|
+
/** Drives the overlay/iframe background color while the asset loads. */
|
|
12
|
+
rarity?: Rarity;
|
|
13
|
+
};
|
|
14
|
+
type AssetPreviewPlayerContextValue = {
|
|
15
|
+
/**
|
|
16
|
+
* Shows the preview overlay on top of `target`, rendering `source`: the avatar
|
|
17
|
+
* plays the asset when it is an emote and wears it when it is a wearable.
|
|
18
|
+
*/
|
|
19
|
+
show: (target: HTMLElement, source: AssetPreviewSource) => void;
|
|
20
|
+
/** Hides the overlay (the iframe stays warm for the next hover). */
|
|
21
|
+
hide: () => void;
|
|
22
|
+
};
|
|
23
|
+
type AssetPreviewPlayerProviderProps = {
|
|
24
|
+
/** Master switch — when false no iframe is mounted and `useAssetPreviewPlayer()` returns null. */
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
/** Catalyst peer used by the preview to resolve profiles/content. Defaults to prod. */
|
|
27
|
+
peerUrl?: string;
|
|
28
|
+
/** Marketplace API used by the preview to resolve items. Defaults to prod. */
|
|
29
|
+
marketplaceServerUrl?: string;
|
|
30
|
+
/** Avatar profile rendered wearing/playing the asset. Defaults to `"default"`. */
|
|
31
|
+
profile?: string;
|
|
32
|
+
/** Forwarded to the preview iframe (zone assets). */
|
|
33
|
+
dev?: boolean;
|
|
34
|
+
children: React.ReactNode;
|
|
35
|
+
};
|
|
36
|
+
export type { AssetPreviewPlayerContextValue, AssetPreviewPlayerProviderProps, AssetPreviewSource };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetPreviewPlayer.types.js","sourceRoot":"","sources":["../../../src/components/AssetPreviewPlayer/AssetPreviewPlayer.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/AssetPreviewPlayer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,13 +1,42 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { Network } from '@dcl/schemas';
|
|
4
4
|
import { Typography } from '@mui/material';
|
|
5
5
|
import { CatalogCardPrice } from './CatalogCardPrice';
|
|
6
|
+
import { useAssetPreviewPlayer } from '../../components/AssetPreviewPlayer';
|
|
6
7
|
import { RarityBadge } from '../../components/RarityBadge';
|
|
7
|
-
import {
|
|
8
|
+
import { i18n as rarityBadgeI18nDefault } from '../../components/RarityBadge/RarityBadge.i18n';
|
|
9
|
+
import { AssetAddress, AssetHeaderContainer, AssetImageContainer, AssetTitle, BadgeRow, BottomActionContainer, CardContentContainer, CatalogCardContainer, CatalogItemInformationContainer, CatalogItemInformationContent, CatalogRarityChip, ExtraInformationContainer, ExtraInformationContent, InfoBadgesContainer, RarityBadgeSlot } from './CatalogCard.styled';
|
|
8
10
|
const CatalogCard = React.memo((props) => {
|
|
9
|
-
const { asset, imageSrc, price, owners, extraInformation, action, actionIcon, withShadow, i18n } = props;
|
|
10
|
-
|
|
11
|
+
const { asset, imageSrc, price, owners, extraInformation, action, actionIcon, withShadow, i18n, creatorSlot, hideRarityOnHover, hoverShadow, bottomAction, infoBadges, disableInfoExpansion, subduedRarity, hoverPreviewUrn } = props;
|
|
12
|
+
const showDefaultCreator = creatorSlot === undefined && asset.network === Network.MATIC;
|
|
13
|
+
// Live asset preview on hover (marketplace PRs #2640/#2648): emotes are played by the
|
|
14
|
+
// avatar, wearables are shown worn by it. Only when the consumer provided the urn, an
|
|
15
|
+
// enabled AssetPreviewPlayerProvider is mounted above, and the pointer actually hovers
|
|
16
|
+
// (touch taps would race the card's navigation click).
|
|
17
|
+
const containerRef = useRef(null);
|
|
18
|
+
const assetPreviewPlayer = useAssetPreviewPlayer();
|
|
19
|
+
const [supportsHover, setSupportsHover] = useState(() => typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches);
|
|
20
|
+
// Pointer capability can change at runtime (tablet keyboard detach, external mouse).
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
const mql = window.matchMedia('(hover: hover) and (pointer: fine)');
|
|
23
|
+
const handler = (event) => setSupportsHover(event.matches);
|
|
24
|
+
mql.addEventListener('change', handler);
|
|
25
|
+
return () => mql.removeEventListener('change', handler);
|
|
26
|
+
}, []);
|
|
27
|
+
const canPreviewAsset = Boolean(hoverPreviewUrn && assetPreviewPlayer && supportsHover);
|
|
28
|
+
const handlePreviewHoverEnter = useCallback(() => {
|
|
29
|
+
if (!assetPreviewPlayer || !hoverPreviewUrn)
|
|
30
|
+
return;
|
|
31
|
+
const imageEl = containerRef.current?.querySelector('[data-role="catalog-card-image"]');
|
|
32
|
+
if (!imageEl)
|
|
33
|
+
return;
|
|
34
|
+
assetPreviewPlayer.show(imageEl, { urn: hoverPreviewUrn, network: asset.network, rarity: asset.rarity });
|
|
35
|
+
}, [assetPreviewPlayer, hoverPreviewUrn, asset.network, asset.rarity]);
|
|
36
|
+
const handlePreviewHoverLeave = useCallback(() => {
|
|
37
|
+
assetPreviewPlayer?.hide();
|
|
38
|
+
}, [assetPreviewPlayer]);
|
|
39
|
+
return (_jsxs(CatalogCardContainer, { ref: containerRef, withShadow: withShadow, hideRarityOnHover: hideRarityOnHover, hoverShadow: hoverShadow, disableInfoExpansion: disableInfoExpansion, onMouseEnter: canPreviewAsset ? handlePreviewHoverEnter : undefined, onMouseLeave: canPreviewAsset ? handlePreviewHoverLeave : undefined, children: [_jsx(AssetImageContainer, { "data-role": "catalog-card-image", name: asset.name, rarity: asset.rarity, src: imageSrc }), _jsxs(CardContentContainer, { children: [_jsxs(AssetHeaderContainer, { children: [_jsx(AssetTitle, { variant: "body1", children: asset.name }), showDefaultCreator ? _jsx(AssetAddress, { value: asset.creator }) : creatorSlot] }), action || actionIcon ? (_jsx(CatalogItemInformationContainer, { className: "CatalogItemInformationContainer", "data-role": "catalog-card-reveal", children: _jsxs(CatalogItemInformationContent, { children: [_jsx(Typography, { variant: "body2", children: action }), actionIcon] }) })) : null, price ? _jsx(CatalogCardPrice, { price: price, asset: asset }) : owners, extraInformation ? (_jsx(ExtraInformationContainer, { className: "ExtraInformationContainer", "data-role": "catalog-card-reveal", children: _jsx(ExtraInformationContent, { children: extraInformation }) })) : null, _jsxs(BadgeRow, { "data-role": bottomAction ? 'catalog-card-badge-row' : undefined, children: [_jsx(RarityBadgeSlot, { "data-role": "catalog-card-rarity", children: subduedRarity ? (_jsx(CatalogRarityChip, { rarity: asset.rarity, children: (i18n ?? rarityBadgeI18nDefault).rarities[asset.rarity] })) : (_jsx(RarityBadge, { square: true, rarity: asset.rarity, i18n: i18n })) }), infoBadges ? _jsx(InfoBadgesContainer, { children: infoBadges }) : null] })] }), bottomAction ? _jsx(BottomActionContainer, { "data-role": "catalog-card-bottom-action", children: bottomAction }) : null] }));
|
|
11
40
|
});
|
|
12
41
|
export { CatalogCard };
|
|
13
42
|
//# sourceMappingURL=CatalogCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogCard.js","sourceRoot":"","sources":["../../../src/components/CatalogCard/CatalogCard.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"CatalogCard.js","sourceRoot":"","sources":["../../../src/components/CatalogCard/CatalogCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,13 @@ import type { Meta, StoryObj } from '@storybook/react';
|
|
|
3
3
|
declare const meta: Meta<CatalogCardProps>;
|
|
4
4
|
type Story = StoryObj<CatalogCardProps>;
|
|
5
5
|
declare const Default: Story;
|
|
6
|
+
declare const WithInfoBadges: Story;
|
|
7
|
+
declare const WithInfoBadgesBaseMale: Story;
|
|
8
|
+
declare const WithInfoBadgesBaseFemale: Story;
|
|
9
|
+
declare const WithBottomActionAndInfoBadges: Story;
|
|
10
|
+
declare const StaticHoverNoExpansion: Story;
|
|
11
|
+
declare const SubduedRarityNoPrice: Story;
|
|
12
|
+
declare const EmotePlayOnHover: Story;
|
|
13
|
+
declare const WearableTryOnHover: Story;
|
|
6
14
|
export default meta;
|
|
7
|
-
export { Default };
|
|
15
|
+
export { Default, EmotePlayOnHover, StaticHoverNoExpansion, SubduedRarityNoPrice, WearableTryOnHover, WithBottomActionAndInfoBadges, WithInfoBadges, WithInfoBadgesBaseFemale, WithInfoBadgesBaseMale };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Network, Rarity } from '@dcl/schemas';
|
|
3
|
+
import { Box, Button, Typography } from '@mui/material';
|
|
3
4
|
import { CatalogCard } from './CatalogCard';
|
|
4
5
|
import { item } from '../../data/item';
|
|
5
|
-
import {
|
|
6
|
+
import { AssetPreviewPlayerProvider } from '../AssetPreviewPlayer';
|
|
7
|
+
import { BaseFemaleIcon, BaseMaleIcon, MintIcon, UnisexIcon, UpperBodyIcon } from '../Icon';
|
|
6
8
|
import { i18n as rarityBadgeI18n } from '../RarityBadge/RarityBadge.i18n';
|
|
7
9
|
const meta = {
|
|
8
10
|
component: CatalogCard,
|
|
@@ -74,7 +76,148 @@ const Default = {
|
|
|
74
76
|
i18n: rarityBadgeI18n
|
|
75
77
|
}
|
|
76
78
|
};
|
|
79
|
+
const WithInfoBadges = {
|
|
80
|
+
name: 'With info badges (category + body shape)',
|
|
81
|
+
args: {
|
|
82
|
+
withShadow: false,
|
|
83
|
+
price: '10',
|
|
84
|
+
imageSrc: item.thumbnail,
|
|
85
|
+
asset: item,
|
|
86
|
+
action: null,
|
|
87
|
+
extraInformation: null,
|
|
88
|
+
i18n: rarityBadgeI18n,
|
|
89
|
+
infoBadges: (_jsxs(_Fragment, { children: [_jsx(UpperBodyIcon, { fontSize: "small", titleAccess: "upper_body" }), _jsx(UnisexIcon, { fontSize: "small", titleAccess: "unisex" })] }))
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const WithInfoBadgesBaseMale = {
|
|
93
|
+
name: 'With info badges (base male only)',
|
|
94
|
+
args: {
|
|
95
|
+
withShadow: false,
|
|
96
|
+
price: '10',
|
|
97
|
+
imageSrc: item.thumbnail,
|
|
98
|
+
asset: item,
|
|
99
|
+
action: null,
|
|
100
|
+
extraInformation: null,
|
|
101
|
+
i18n: rarityBadgeI18n,
|
|
102
|
+
infoBadges: (_jsxs(_Fragment, { children: [_jsx(UpperBodyIcon, { fontSize: "small", titleAccess: "upper_body" }), _jsx(BaseMaleIcon, { fontSize: "small", titleAccess: "BaseMale" })] }))
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const WithInfoBadgesBaseFemale = {
|
|
106
|
+
name: 'With info badges (base female only)',
|
|
107
|
+
args: {
|
|
108
|
+
withShadow: false,
|
|
109
|
+
price: '10',
|
|
110
|
+
imageSrc: item.thumbnail,
|
|
111
|
+
asset: item,
|
|
112
|
+
action: null,
|
|
113
|
+
extraInformation: null,
|
|
114
|
+
i18n: rarityBadgeI18n,
|
|
115
|
+
infoBadges: (_jsxs(_Fragment, { children: [_jsx(UpperBodyIcon, { fontSize: "small", titleAccess: "upper_body" }), _jsx(BaseFemaleIcon, { fontSize: "small", titleAccess: "BaseFemale" })] }))
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const WithBottomActionAndInfoBadges = {
|
|
119
|
+
name: 'Hover: bottom action + info badges',
|
|
120
|
+
args: {
|
|
121
|
+
withShadow: false,
|
|
122
|
+
price: '10',
|
|
123
|
+
imageSrc: item.thumbnail,
|
|
124
|
+
asset: item,
|
|
125
|
+
action: null,
|
|
126
|
+
extraInformation: null,
|
|
127
|
+
i18n: rarityBadgeI18n,
|
|
128
|
+
hoverShadow: 'glow',
|
|
129
|
+
infoBadges: (_jsxs(_Fragment, { children: [_jsx(UpperBodyIcon, { fontSize: "small", titleAccess: "upper_body" }), _jsx(UnisexIcon, { fontSize: "small", titleAccess: "unisex" })] })),
|
|
130
|
+
bottomAction: (_jsx(Button, { variant: "contained", color: "primary", fullWidth: true, children: "BUY" }))
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const StaticHoverNoExpansion = {
|
|
134
|
+
name: 'Static hover (disableInfoExpansion)',
|
|
135
|
+
args: {
|
|
136
|
+
withShadow: false,
|
|
137
|
+
price: '10',
|
|
138
|
+
imageSrc: item.thumbnail,
|
|
139
|
+
asset: item,
|
|
140
|
+
action: null,
|
|
141
|
+
extraInformation: null,
|
|
142
|
+
i18n: rarityBadgeI18n,
|
|
143
|
+
hoverShadow: 'glow',
|
|
144
|
+
disableInfoExpansion: true,
|
|
145
|
+
infoBadges: (_jsxs(_Fragment, { children: [_jsx(UpperBodyIcon, { fontSize: "small", titleAccess: "upper_body" }), _jsx(UnisexIcon, { fontSize: "small", titleAccess: "unisex" })] }))
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const SubduedRarityNoPrice = {
|
|
149
|
+
name: 'Subdued rarity (no price)',
|
|
150
|
+
args: {
|
|
151
|
+
withShadow: false,
|
|
152
|
+
imageSrc: item.thumbnail,
|
|
153
|
+
asset: item,
|
|
154
|
+
action: null,
|
|
155
|
+
extraInformation: null,
|
|
156
|
+
i18n: rarityBadgeI18n,
|
|
157
|
+
subduedRarity: true,
|
|
158
|
+
hoverShadow: 'glow',
|
|
159
|
+
disableInfoExpansion: true,
|
|
160
|
+
infoBadges: (_jsxs(_Fragment, { children: [_jsx(UpperBodyIcon, { fontSize: "small", titleAccess: "upper_body" }), _jsx(UnisexIcon, { fontSize: "small", titleAccess: "unisex" })] }))
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
const peerThumbnail = (urn) => `https://peer.decentraland.org/lambdas/collections/contents/${urn}/thumbnail`;
|
|
164
|
+
const EMOTE_FIXTURES = [
|
|
165
|
+
{
|
|
166
|
+
name: 'Building Castles in the Sky',
|
|
167
|
+
urn: 'urn:decentraland:matic:collections-v2:0xedabe0283a5f87c2ca3d9a6326781c9125d6e556:0',
|
|
168
|
+
rarity: Rarity.MYTHIC,
|
|
169
|
+
creator: '0x4a6767c70796be741453cc6b74f0567eb886614d'
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: 'Jack Frost Sad Boi',
|
|
173
|
+
urn: 'urn:decentraland:matic:collections-v2:0x1d30377fe076d67f573179a6800d5cff1d5b3187:0',
|
|
174
|
+
rarity: Rarity.LEGENDARY,
|
|
175
|
+
creator: '0xb5658530f22c1009e1b920fa657f6ce21564f974'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
name: 'Say Hello, Friend',
|
|
179
|
+
urn: 'urn:decentraland:matic:collections-v2:0x145d8f54194283a6ae71ad4316040d4c13633194:1',
|
|
180
|
+
rarity: Rarity.EPIC,
|
|
181
|
+
creator: '0x9990a41efb8a6176199ee2676cf08f5424adf0fd'
|
|
182
|
+
}
|
|
183
|
+
];
|
|
184
|
+
const WEARABLE_FIXTURES = [
|
|
185
|
+
{
|
|
186
|
+
name: 'Grill Angel',
|
|
187
|
+
urn: 'urn:decentraland:matic:collections-v2:0x7dd2c14796d6a411439f3ed465071fb1626084a8:0',
|
|
188
|
+
rarity: Rarity.LEGENDARY,
|
|
189
|
+
creator: '0xdb760099f0f3359131e08716848f23c014d35b9e'
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
name: 'Calaca Headphones',
|
|
193
|
+
urn: 'urn:decentraland:matic:collections-v2:0x6bcc21bc566ca5359fc79bdea1b41c9aacc75bbe:1',
|
|
194
|
+
rarity: Rarity.EPIC,
|
|
195
|
+
creator: '0x8b4221b34efeb8f4ba874cf07d7f6c456c5cc347'
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
name: 'Sneakers Viva La Calaca',
|
|
199
|
+
urn: 'urn:decentraland:matic:collections-v2:0x4fde0297c458e7a0bc35f07c015f322ca31b459e:1',
|
|
200
|
+
rarity: Rarity.RARE,
|
|
201
|
+
creator: '0x8b4221b34efeb8f4ba874cf07d7f6c456c5cc347'
|
|
202
|
+
}
|
|
203
|
+
];
|
|
204
|
+
const renderHoverPreviewGrid = (fixtures) => (_jsx(AssetPreviewPlayerProvider, { enabled: true, children: _jsx(Box, { display: "flex", gap: 2, children: fixtures.map(fixture => (_jsx(CatalogCard, { asset: {
|
|
205
|
+
id: fixture.urn,
|
|
206
|
+
url: '/',
|
|
207
|
+
name: fixture.name,
|
|
208
|
+
rarity: fixture.rarity,
|
|
209
|
+
network: Network.MATIC,
|
|
210
|
+
creator: fixture.creator
|
|
211
|
+
}, imageSrc: peerThumbnail(fixture.urn), action: null, extraInformation: null, notForSale: false, withShadow: false, price: "10", i18n: rarityBadgeI18n, subduedRarity: true, hoverShadow: "glow", hoverPreviewUrn: fixture.urn }, fixture.urn))) }) }));
|
|
212
|
+
const EmotePlayOnHover = {
|
|
213
|
+
name: 'Emotes: avatar plays them on hover',
|
|
214
|
+
render: () => renderHoverPreviewGrid(EMOTE_FIXTURES)
|
|
215
|
+
};
|
|
216
|
+
const WearableTryOnHover = {
|
|
217
|
+
name: 'Wearables: avatar wears them on hover',
|
|
218
|
+
render: () => renderHoverPreviewGrid(WEARABLE_FIXTURES)
|
|
219
|
+
};
|
|
77
220
|
// eslint-disable-next-line import/no-default-export
|
|
78
221
|
export default meta;
|
|
79
|
-
export { Default };
|
|
222
|
+
export { Default, EmotePlayOnHover, StaticHoverNoExpansion, SubduedRarityNoPrice, WearableTryOnHover, WithBottomActionAndInfoBadges, WithInfoBadges, WithInfoBadgesBaseFemale, WithInfoBadgesBaseMale };
|
|
80
223
|
//# sourceMappingURL=CatalogCard.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogCard.stories.js","sourceRoot":"","sources":["../../../src/components/CatalogCard/CatalogCard.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"CatalogCard.stories.js","sourceRoot":"","sources":["../../../src/components/CatalogCard/CatalogCard.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { Rarity } from '@dcl/schemas';
|
|
2
|
+
import { Theme } from '@mui/material';
|
|
1
3
|
import { CatalogCardProps } from './CatalogCard.types';
|
|
2
4
|
declare const AssetImageContainer: import("@emotion/styled").StyledComponent<{
|
|
3
5
|
name: string;
|
|
4
|
-
rarity:
|
|
6
|
+
rarity: Rarity;
|
|
5
7
|
src: string;
|
|
6
8
|
} & import("react").HTMLAttributes<HTMLDivElement> & {
|
|
7
9
|
theme?: import("@emotion/react").Theme;
|
|
@@ -11,9 +13,9 @@ declare const CardContentContainer: import("@emotion/styled").StyledComponent<im
|
|
|
11
13
|
}, "className" | "style" | "classes" | "children" | "sx"> & {
|
|
12
14
|
theme?: import("@emotion/react").Theme;
|
|
13
15
|
}, {}, {}>;
|
|
14
|
-
declare const AssetHeaderContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<
|
|
16
|
+
declare const AssetHeaderContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
15
17
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
16
|
-
}, keyof import("@mui/system").BoxOwnProps<
|
|
18
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
17
19
|
theme?: import("@emotion/react").Theme;
|
|
18
20
|
}, {}, {}>;
|
|
19
21
|
declare const AssetTitle: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
|
|
@@ -24,24 +26,67 @@ declare const AssetTitle: import("@emotion/styled").StyledComponent<import("@mui
|
|
|
24
26
|
declare const AssetAddress: import("@emotion/styled").StyledComponent<import("../Address/Address.types").AddressProps & {
|
|
25
27
|
theme?: import("@emotion/react").Theme;
|
|
26
28
|
}, {}, {}>;
|
|
27
|
-
declare const CatalogItemInformationContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<
|
|
29
|
+
declare const CatalogItemInformationContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
28
30
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
29
|
-
}, keyof import("@mui/system").BoxOwnProps<
|
|
31
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
30
32
|
theme?: import("@emotion/react").Theme;
|
|
31
33
|
}, {}, {}>;
|
|
32
|
-
declare const
|
|
34
|
+
declare const CatalogItemInformationContent: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
33
35
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
34
|
-
}, keyof import("@mui/system").BoxOwnProps<
|
|
36
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
35
37
|
theme?: import("@emotion/react").Theme;
|
|
36
38
|
}, {}, {}>;
|
|
37
|
-
declare const
|
|
39
|
+
declare const CatalogCardPriceContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
38
40
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
39
|
-
}, keyof import("@mui/system").BoxOwnProps<
|
|
41
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
40
42
|
theme?: import("@emotion/react").Theme;
|
|
41
43
|
}, {}, {}>;
|
|
44
|
+
declare const PriceText: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
|
|
45
|
+
ref?: ((instance: HTMLSpanElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLSpanElement> | null | undefined;
|
|
46
|
+
}, "typography" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxShadow" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "border" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "className" | "style" | "classes" | "children" | "sx" | "variant" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "p" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "displayPrint" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & {
|
|
47
|
+
theme?: import("@emotion/react").Theme;
|
|
48
|
+
}, {}, {}>;
|
|
49
|
+
declare const ExtraInformationContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
50
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
51
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
52
|
+
theme?: import("@emotion/react").Theme;
|
|
53
|
+
}, {}, {}>;
|
|
54
|
+
declare const ExtraInformationContent: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
55
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
56
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
57
|
+
theme?: import("@emotion/react").Theme;
|
|
58
|
+
}, {}, {}>;
|
|
59
|
+
declare const BottomActionContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
60
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
61
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
62
|
+
theme?: import("@emotion/react").Theme;
|
|
63
|
+
}, {}, {}>;
|
|
64
|
+
declare const RarityBadgeSlot: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
65
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
66
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
67
|
+
theme?: import("@emotion/react").Theme;
|
|
68
|
+
}, {}, {}>;
|
|
69
|
+
declare const CatalogRarityChip: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
70
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
71
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
72
|
+
theme?: import("@emotion/react").Theme;
|
|
73
|
+
} & {
|
|
74
|
+
rarity: Rarity;
|
|
75
|
+
}, {}, {}>;
|
|
76
|
+
declare const BadgeRow: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
77
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
78
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
79
|
+
theme?: import("@emotion/react").Theme;
|
|
80
|
+
}, {}, {}>;
|
|
81
|
+
declare const InfoBadgesContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
82
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
83
|
+
}, keyof import("@mui/system").BoxOwnProps<Theme>> & {
|
|
84
|
+
theme?: import("@emotion/react").Theme;
|
|
85
|
+
}, {}, {}>;
|
|
86
|
+
type ContainerProps = Pick<CatalogCardProps, 'withShadow' | 'hideRarityOnHover' | 'hoverShadow' | 'disableInfoExpansion'>;
|
|
42
87
|
declare const CatalogCardContainer: import("@emotion/styled").StyledComponent<import("@mui/material").CardOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
43
88
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
44
89
|
}, "elevation" | "className" | "style" | "classes" | "children" | "square" | "sx" | "variant" | "raised"> & {
|
|
45
90
|
theme?: import("@emotion/react").Theme;
|
|
46
|
-
} &
|
|
47
|
-
export { CatalogCardContainer, AssetImageContainer, CatalogCardPriceContainer, AssetHeaderContainer, CardContentContainer, AssetAddress, AssetTitle, ExtraInformationContainer, CatalogItemInformationContainer };
|
|
91
|
+
} & ContainerProps, {}, {}>;
|
|
92
|
+
export { CatalogCardContainer, AssetImageContainer, CatalogCardPriceContainer, PriceText, AssetHeaderContainer, CardContentContainer, AssetAddress, AssetTitle, BadgeRow, BottomActionContainer, CatalogRarityChip, ExtraInformationContainer, ExtraInformationContent, CatalogItemInformationContainer, CatalogItemInformationContent, InfoBadgesContainer, RarityBadgeSlot };
|
|
@@ -1,22 +1,46 @@
|
|
|
1
|
+
import { Rarity } from '@dcl/schemas';
|
|
1
2
|
import styled from '@emotion/styled';
|
|
2
3
|
import { Box, Card, CardContent, Typography } from '@mui/material';
|
|
3
4
|
import { Address } from '../../components/Address';
|
|
5
|
+
import { neutral } from '../../theme/colors';
|
|
4
6
|
import { hexToRgba } from '../../utils/colors';
|
|
5
7
|
import { AssetImage } from '../AssetImage';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
// Figma 94:36542 (MarketplaceCards) — flat rarity surface (replaces the legacy radial
|
|
9
|
+
// gradient) with the thumbnail rendered as a fixed centered square and a soft drop shadow.
|
|
10
|
+
// The image area flexes inside the fixed-height card: it absorbs whatever vertical space
|
|
11
|
+
// the info section below doesn't need, so hover-revealed rows (bottomAction / action /
|
|
12
|
+
// extraInformation) shrink the image by EXACTLY their own height — no fixed jump, and no
|
|
13
|
+
// shrink at all when the card has nothing to reveal.
|
|
14
|
+
const AssetImageContainer = styled(AssetImage)(({ rarity }) => ({
|
|
15
|
+
borderRadius: '12px 12px 0 0',
|
|
16
|
+
backgroundImage: 'none',
|
|
17
|
+
backgroundColor: Rarity.getColor(rarity),
|
|
18
|
+
flex: '1 1 auto',
|
|
19
|
+
minHeight: 0,
|
|
20
|
+
height: 'auto',
|
|
21
|
+
'& img': {
|
|
22
|
+
width: '68%',
|
|
23
|
+
height: '68%',
|
|
24
|
+
objectFit: 'contain',
|
|
25
|
+
filter: 'drop-shadow(1px 4px 5px rgba(0, 0, 0, 0.10))'
|
|
12
26
|
}
|
|
13
27
|
}));
|
|
14
28
|
const CardContentContainer = styled(CardContent)(({ theme }) => ({
|
|
15
29
|
display: 'flex',
|
|
16
|
-
|
|
30
|
+
// Natural height: the section grows only when hover reveals extra rows, and the
|
|
31
|
+
// flexing image above gives up exactly that space (the card keeps its fixed height).
|
|
32
|
+
flex: '0 0 auto',
|
|
17
33
|
flexDirection: 'column',
|
|
18
34
|
flexFlow: 'column nowrap',
|
|
19
35
|
alignItems: 'flex-start',
|
|
36
|
+
// Figma 94:36542 Info section — translucent black over the page bg, hairline gray-2
|
|
37
|
+
// border on the three open sides and 12px bottom rounding.
|
|
38
|
+
backgroundColor: 'rgba(0, 0, 0, 0.4)',
|
|
39
|
+
border: `1px solid ${neutral.gray2}`,
|
|
40
|
+
borderTop: 'none',
|
|
41
|
+
borderRadius: '0 0 12px 12px',
|
|
42
|
+
// Keep gap tight — specific separations (e.g. price→rarity) are applied as margins
|
|
43
|
+
// on the target element rather than via the container gap.
|
|
20
44
|
gap: theme.spacing(0.25),
|
|
21
45
|
minHeight: theme.spacing(20)
|
|
22
46
|
}));
|
|
@@ -29,29 +53,46 @@ const AssetHeaderContainer = styled(Box)({
|
|
|
29
53
|
textOverflow: 'ellipsis',
|
|
30
54
|
maxWidth: '100%'
|
|
31
55
|
});
|
|
56
|
+
// Figma 94:36542 — Inter SemiBold 14, line 1.57, soft white
|
|
32
57
|
const AssetTitle = styled(Typography)({
|
|
33
58
|
fontWeight: 600,
|
|
59
|
+
fontSize: 14,
|
|
60
|
+
lineHeight: 1.57,
|
|
61
|
+
color: neutral.softWhite,
|
|
34
62
|
textOverflow: 'ellipsis',
|
|
35
63
|
overflow: 'hidden',
|
|
36
64
|
whiteSpace: 'nowrap',
|
|
37
65
|
maxWidth: '100%'
|
|
38
66
|
});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
67
|
+
// Figma 94:36542 — "By <creator>" row: Inter Regular 12, gray-2
|
|
68
|
+
const AssetAddress = styled(Address)({
|
|
69
|
+
fontSize: 12,
|
|
70
|
+
fontWeight: 400,
|
|
71
|
+
lineHeight: 1.43,
|
|
72
|
+
color: neutral.gray2
|
|
73
|
+
});
|
|
74
|
+
// Hover-revealed rows share one mechanic: a grid track animating 0fr → 1fr. The track
|
|
75
|
+
// height IS the row's natural height, so the image shrink always matches the revealed
|
|
76
|
+
// content — and the reveal animates smoothly without hardcoding any height.
|
|
77
|
+
// Below `sm` (touch) the action/extra rows are always visible, as before.
|
|
78
|
+
const hoverRevealRowStyles = (theme) => ({
|
|
79
|
+
width: '100%',
|
|
80
|
+
[theme.breakpoints.up('sm')]: {
|
|
81
|
+
display: 'grid',
|
|
82
|
+
gridTemplateRows: '0fr',
|
|
83
|
+
opacity: 0,
|
|
84
|
+
pointerEvents: 'none',
|
|
85
|
+
transition: 'grid-template-rows 0.3s ease-in-out, opacity 0.3s ease-in-out'
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
const CatalogItemInformationContainer = styled(Box)(({ theme }) => hoverRevealRowStyles(theme));
|
|
89
|
+
const CatalogItemInformationContent = styled(Box)(({ theme }) => ({
|
|
47
90
|
display: 'flex',
|
|
48
91
|
alignItems: 'center',
|
|
49
92
|
gap: theme.spacing(0.5),
|
|
50
93
|
[theme.breakpoints.up('sm')]: {
|
|
51
|
-
height: theme.spacing(0),
|
|
52
|
-
opacity: 0,
|
|
53
94
|
overflow: 'hidden',
|
|
54
|
-
|
|
95
|
+
minHeight: 0
|
|
55
96
|
}
|
|
56
97
|
}));
|
|
57
98
|
const CatalogCardPriceContainer = styled(Box)({
|
|
@@ -59,44 +100,138 @@ const CatalogCardPriceContainer = styled(Box)({
|
|
|
59
100
|
display: 'flex',
|
|
60
101
|
alignItems: 'center'
|
|
61
102
|
});
|
|
62
|
-
|
|
63
|
-
|
|
103
|
+
// Figma 94:36542 — price value: Inter SemiBold ~21, white
|
|
104
|
+
const PriceText = styled(Typography)({
|
|
105
|
+
fontSize: 20,
|
|
106
|
+
fontWeight: 600,
|
|
107
|
+
lineHeight: 'normal'
|
|
108
|
+
});
|
|
109
|
+
const ExtraInformationContainer = styled(Box)(({ theme }) => hoverRevealRowStyles(theme));
|
|
110
|
+
const ExtraInformationContent = styled(Box)(({ theme }) => ({
|
|
64
111
|
[theme.breakpoints.up('sm')]: {
|
|
65
|
-
height: theme.spacing(0),
|
|
66
|
-
opacity: 0,
|
|
67
112
|
overflow: 'hidden',
|
|
68
|
-
|
|
113
|
+
minHeight: 0
|
|
69
114
|
}
|
|
70
115
|
}));
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
116
|
+
// Slides in from the card's bottom edge on hover and rests over the badge-row slot —
|
|
117
|
+
// the badge row fades out underneath, so the action never ADDS height (the image above
|
|
118
|
+
// stays put). Hidden at every breakpoint when not hovered — touch devices simply never
|
|
119
|
+
// show it.
|
|
120
|
+
const BottomActionContainer = styled(Box)(({ theme }) => ({
|
|
121
|
+
position: 'absolute',
|
|
122
|
+
bottom: 0,
|
|
123
|
+
left: 0,
|
|
124
|
+
right: 0,
|
|
125
|
+
// Side gutters match the CardContent 16px padding; the bottom one sets where the
|
|
126
|
+
// slide-in rests (over the badge row slot).
|
|
127
|
+
padding: theme.spacing(0, 2, 2),
|
|
128
|
+
opacity: 0,
|
|
129
|
+
transform: 'translateY(100%)',
|
|
130
|
+
transition: 'opacity 0.3s ease-in-out, transform 0.3s ease-in-out',
|
|
131
|
+
pointerEvents: 'none'
|
|
132
|
+
}));
|
|
133
|
+
const RarityBadgeSlot = styled(Box)({
|
|
78
134
|
display: 'flex',
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
135
|
+
transition: 'opacity 0.2s ease-in-out'
|
|
136
|
+
});
|
|
137
|
+
// Figma marketplace-card spec — subdued rarity chip rendered on the dark info area
|
|
138
|
+
// (canonical rarity hue at 30% alpha, light hue text). The canonical hex per rarity is
|
|
139
|
+
// owned by `@dcl/schemas.Rarity.getColor` / `getGradient`; we derive the chip surface
|
|
140
|
+
// from those so the ui2 palette stays in sync with the schemas source of truth.
|
|
141
|
+
const CatalogRarityChip = styled(Box)(({ rarity }) => {
|
|
142
|
+
const baseHex = Rarity.getColor(rarity);
|
|
143
|
+
const [lightHex] = Rarity.getGradient(rarity);
|
|
144
|
+
return {
|
|
145
|
+
display: 'inline-flex',
|
|
146
|
+
alignItems: 'center',
|
|
147
|
+
borderRadius: 4,
|
|
148
|
+
padding: '2px 6px',
|
|
149
|
+
textTransform: 'uppercase',
|
|
150
|
+
fontFamily: '"Inter", sans-serif',
|
|
151
|
+
fontWeight: 400,
|
|
152
|
+
fontSize: 10.55,
|
|
153
|
+
lineHeight: '14.6px',
|
|
154
|
+
letterSpacing: 0,
|
|
155
|
+
whiteSpace: 'nowrap',
|
|
156
|
+
backgroundColor: hexToRgba(baseHex, 0.3),
|
|
157
|
+
color: lightHex
|
|
158
|
+
};
|
|
159
|
+
});
|
|
160
|
+
const BadgeRow = styled(Box)(({ theme }) => ({
|
|
161
|
+
display: 'flex',
|
|
162
|
+
alignItems: 'center',
|
|
163
|
+
gap: theme.spacing(1),
|
|
164
|
+
flexWrap: 'wrap',
|
|
165
|
+
// Anchor the badges to the bottom of the info area: when the card has no price the
|
|
166
|
+
// auto margin absorbs the free space, so the title block keeps its position instead
|
|
167
|
+
// of everything cramming together at the top. The padding keeps an 8px minimum
|
|
168
|
+
// separation from whatever sits above (price row / title).
|
|
169
|
+
marginTop: 'auto',
|
|
170
|
+
paddingTop: theme.spacing(1),
|
|
171
|
+
transition: 'opacity 0.2s ease-in-out'
|
|
100
172
|
}));
|
|
101
|
-
|
|
173
|
+
const InfoBadgesContainer = styled(Box)(({ theme }) => ({
|
|
174
|
+
display: 'flex',
|
|
175
|
+
alignItems: 'center',
|
|
176
|
+
gap: theme.spacing(0.75),
|
|
177
|
+
color: theme.palette.text.secondary
|
|
178
|
+
}));
|
|
179
|
+
const CatalogCardContainer = styled(Card, {
|
|
180
|
+
shouldForwardProp: prop => prop !== 'withShadow' && prop !== 'hideRarityOnHover' && prop !== 'hoverShadow' && prop !== 'disableInfoExpansion'
|
|
181
|
+
})(({ theme, withShadow, hideRarityOnHover, hoverShadow, disableInfoExpansion }) => {
|
|
182
|
+
const glow = hoverShadow === 'glow';
|
|
183
|
+
// data-role selectors don't depend on `@emotion/babel-plugin` running on this file,
|
|
184
|
+
// so they survive any consumer bundler setup (see ui2 CLAUDE.md §4).
|
|
185
|
+
const revealOnHover = disableInfoExpansion
|
|
186
|
+
? {}
|
|
187
|
+
: {
|
|
188
|
+
'& [data-role="catalog-card-reveal"]': {
|
|
189
|
+
gridTemplateRows: '1fr',
|
|
190
|
+
opacity: 1
|
|
191
|
+
},
|
|
192
|
+
// The action slides up from the card's bottom edge and covers the badge-row
|
|
193
|
+
// slot; the badge row fades out underneath (the attribute is only present on
|
|
194
|
+
// cards that actually carry a bottomAction).
|
|
195
|
+
'& [data-role="catalog-card-bottom-action"]': {
|
|
196
|
+
opacity: 1,
|
|
197
|
+
transform: 'translateY(0)',
|
|
198
|
+
pointerEvents: 'auto'
|
|
199
|
+
},
|
|
200
|
+
'& [data-role="catalog-card-badge-row"]': {
|
|
201
|
+
opacity: 0
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
return {
|
|
205
|
+
// The card height never changes — hover redistributes space between the flexing
|
|
206
|
+
// image and the growing info section instead of growing the card.
|
|
207
|
+
height: theme.spacing(45),
|
|
208
|
+
transition: 'transform 0.2s ease-in-out, box-shadow 0.3s ease-in-out',
|
|
209
|
+
// Figma 94:36542 — 12px rounding and a transparent card body: the image section paints
|
|
210
|
+
// the flat rarity color and the info section its own translucent black, so the page
|
|
211
|
+
// background shows through the hairline border corners.
|
|
212
|
+
borderRadius: 12,
|
|
213
|
+
backgroundColor: 'transparent',
|
|
214
|
+
backgroundImage: 'none',
|
|
215
|
+
boxShadow: 'none',
|
|
216
|
+
width: theme.spacing(36),
|
|
217
|
+
maxWidth: '100%',
|
|
218
|
+
position: 'relative',
|
|
219
|
+
display: 'flex',
|
|
220
|
+
flexDirection: 'column',
|
|
221
|
+
padding: 0,
|
|
222
|
+
overflow: 'hidden',
|
|
223
|
+
'&:hover': {
|
|
224
|
+
transform: glow ? 'translateY(-4px)' : 'none',
|
|
225
|
+
backgroundColor: glow ? 'rgba(255, 255, 255, 0.02)' : 'transparent',
|
|
226
|
+
boxShadow: glow
|
|
227
|
+
? '0px 2px 12px 12px rgba(255, 255, 255, 0.3)'
|
|
228
|
+
: withShadow
|
|
229
|
+
? `0px 0px 20px 6px ${hexToRgba(theme.palette.mode === 'dark' ? theme.palette.common.white : theme.palette.common.black, 0.37)}`
|
|
230
|
+
: 'none',
|
|
231
|
+
...revealOnHover,
|
|
232
|
+
'& [data-role="catalog-card-rarity"]': hideRarityOnHover ? { opacity: 0 } : {}
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
});
|
|
236
|
+
export { CatalogCardContainer, AssetImageContainer, CatalogCardPriceContainer, PriceText, AssetHeaderContainer, CardContentContainer, AssetAddress, AssetTitle, BadgeRow, BottomActionContainer, CatalogRarityChip, ExtraInformationContainer, ExtraInformationContent, CatalogItemInformationContainer, CatalogItemInformationContent, InfoBadgesContainer, RarityBadgeSlot };
|
|
102
237
|
//# sourceMappingURL=CatalogCard.styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogCard.styled.js","sourceRoot":"","sources":["../../../src/components/CatalogCard/CatalogCard.styled.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"CatalogCard.styled.js","sourceRoot":"","sources":["../../../src/components/CatalogCard/CatalogCard.styled.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,5 +11,21 @@ type CatalogCardProps = {
|
|
|
11
11
|
price?: string;
|
|
12
12
|
owners?: string;
|
|
13
13
|
i18n?: RarityBadgeI18N;
|
|
14
|
+
/** Replaces the default `<AssetAddress>` below the title. Pass `null` to hide it entirely. */
|
|
15
|
+
creatorSlot?: React.ReactNode;
|
|
16
|
+
/** Fade out the RarityBadge while the card is hovered (lets `bottomAction` take its visual slot). */
|
|
17
|
+
hideRarityOnHover?: boolean;
|
|
18
|
+
/** Shadow style on hover. `'glow'` uses the whats-on Live/Upcoming spotlight; `'default'` keeps the legacy depth shadow. */
|
|
19
|
+
hoverShadow?: 'default' | 'glow';
|
|
20
|
+
/** Full-width block revealed at the bottom of the card on hover (e.g. a "BUY" button). */
|
|
21
|
+
bottomAction?: React.ReactNode;
|
|
22
|
+
/** Always-visible badges rendered next to the RarityBadge (e.g. wearable category + body shape icons). */
|
|
23
|
+
infoBadges?: React.ReactNode;
|
|
24
|
+
/** When true, skips the hover reveal of `ExtraInformationContainer` / `CatalogItemInformationContainer` / `bottomAction` so the card visuals stay static. Useful when the card itself is the action target and no `bottomAction` needs room. */
|
|
25
|
+
disableInfoExpansion?: boolean;
|
|
26
|
+
/** When true, renders the rarity tag as a subdued pastel chip (rgba bg + light text) instead of the default solid `<RarityBadge>`. Matches the Figma marketplace-card spec for profile/equipped contexts. Opt-in to avoid touching every existing consumer. */
|
|
27
|
+
subduedRarity?: boolean;
|
|
28
|
+
/** URN of the asset to preview on hover: emotes are played by the avatar, wearables are shown worn by it. Requires an `<AssetPreviewPlayerProvider enabled>` above; without one (or on touch devices) the card stays static. */
|
|
29
|
+
hoverPreviewUrn?: string;
|
|
14
30
|
};
|
|
15
31
|
export { CatalogCardProps };
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { Typography } from '@mui/material';
|
|
4
3
|
import { Mana } from '../../components/Mana';
|
|
5
|
-
import { CatalogCardPriceContainer } from './CatalogCard.styled';
|
|
4
|
+
import { CatalogCardPriceContainer, PriceText } from './CatalogCard.styled';
|
|
6
5
|
const CatalogCardPrice = React.memo((props) => {
|
|
7
6
|
const { price, asset } = props;
|
|
8
|
-
return (_jsxs(CatalogCardPriceContainer, { children: [_jsx(Mana, { size: "large", network: asset.network }), _jsx(
|
|
7
|
+
return (_jsxs(CatalogCardPriceContainer, { children: [_jsx(Mana, { size: "large", network: asset.network }), _jsx(PriceText, { variant: "h4", children: price })] }));
|
|
9
8
|
});
|
|
10
9
|
export { CatalogCardPrice };
|
|
11
10
|
//# sourceMappingURL=CatalogCardPrice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogCardPrice.js","sourceRoot":"","sources":["../../../src/components/CatalogCard/CatalogCardPrice.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CatalogCardPrice.js","sourceRoot":"","sources":["../../../src/components/CatalogCard/CatalogCardPrice.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE5C,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3E,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAgD,EAAE,EAAE;IACvF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAC9B,OAAO,CACL,MAAC,yBAAyB,eACxB,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAI,EAC7C,KAAC,SAAS,IAAC,OAAO,EAAC,IAAI,YAAE,KAAK,GAAa,IACjB,CAC7B,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export * from './components/Footer';
|
|
|
39
39
|
export * from './components/FooterLanding';
|
|
40
40
|
export * from './components/LanguageDropdown';
|
|
41
41
|
export * from './components/RarityBadge';
|
|
42
|
+
export * from './components/AssetPreviewPlayer';
|
|
42
43
|
export * from './components/CatalogCard';
|
|
43
44
|
export * from './components/CreditsToggle';
|
|
44
45
|
export * from './components/SceneCard';
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,7 @@ export * from './components/Footer';
|
|
|
39
39
|
export * from './components/FooterLanding';
|
|
40
40
|
export * from './components/LanguageDropdown';
|
|
41
41
|
export * from './components/RarityBadge';
|
|
42
|
+
export * from './components/AssetPreviewPlayer';
|
|
42
43
|
export * from './components/CatalogCard';
|
|
43
44
|
export * from './components/CreditsToggle';
|
|
44
45
|
export * from './components/SceneCard';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "decentraland-ui2",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.13.0",
|
|
4
4
|
"description": "Decentraland's UI components and styles",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -117,5 +117,5 @@
|
|
|
117
117
|
"url": "https://github.com/decentraland/ui2/issues"
|
|
118
118
|
},
|
|
119
119
|
"homepage": "https://github.com/decentraland/ui2#readme",
|
|
120
|
-
"commit": "
|
|
120
|
+
"commit": "0745c2a1c2dc06c2c8498e057b635c076203d8bf"
|
|
121
121
|
}
|