@valpro-labs/ui 1.11.2 → 1.11.4
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/blocks/rank-card.d.ts.map +1 -1
- package/dist/components/blocks/rank-card.js +2 -1
- package/dist/components/blocks/rank-card.js.map +1 -1
- package/dist/components/blocks/rank-pyramid-artwork.d.ts +45 -0
- package/dist/components/blocks/rank-pyramid-artwork.d.ts.map +1 -0
- package/dist/components/blocks/rank-pyramid-artwork.js +114 -0
- package/dist/components/blocks/rank-pyramid-artwork.js.map +1 -0
- package/dist/components/blocks/rank-pyramid-border-image.d.ts +22 -0
- package/dist/components/blocks/rank-pyramid-border-image.d.ts.map +1 -0
- package/dist/components/blocks/rank-pyramid-border-image.js +13 -0
- package/dist/components/blocks/rank-pyramid-border-image.js.map +1 -0
- package/dist/components/blocks/rank-pyramid.d.ts +4 -7
- package/dist/components/blocks/rank-pyramid.d.ts.map +1 -1
- package/dist/components/blocks/rank-pyramid.js +9 -79
- package/dist/components/blocks/rank-pyramid.js.map +1 -1
- package/dist/components/blocks/rank-tier-card-skeleton.d.ts +3 -1
- package/dist/components/blocks/rank-tier-card-skeleton.d.ts.map +1 -1
- package/dist/components/blocks/rank-tier-card-skeleton.js +2 -2
- package/dist/components/blocks/rank-tier-card-skeleton.js.map +1 -1
- package/dist/components/blocks/rank-tier-card.d.ts +3 -1
- package/dist/components/blocks/rank-tier-card.d.ts.map +1 -1
- package/dist/components/blocks/rank-tier-card.js +3 -3
- package/dist/components/blocks/rank-tier-card.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rank-card.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"rank-card.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAYrF,UAAU,YAAY;IACpB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC7C,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gGAAgG;IAChG,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iGAAiG;IACjG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD;;;;;;;GAOG;AACH,iBAAS,QAAQ,CAAC,EAChB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAgB,EAChB,OAAO,EACP,OAAO,EACP,SAAiB,EACjB,wBAA+B,EAC/B,SAAS,GACV,EAAE,aAAa,2CAoGf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { Skeleton } from '../../components/ui/skeleton';
|
|
|
7
7
|
import { Text } from '../../components/ui/text';
|
|
8
8
|
import { cn } from '../../lib/utils';
|
|
9
9
|
const RANK_SUMMARY_MIN_HEIGHT = 108;
|
|
10
|
+
const RANK_PYRAMID_VISUAL_OFFSET_Y = -8;
|
|
10
11
|
const CHEVRON_WIDTH = 14;
|
|
11
12
|
const CHEVRON_RIGHT_OFFSET = 12;
|
|
12
13
|
function normalizeHex(input) {
|
|
@@ -37,7 +38,7 @@ function RankCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rr
|
|
|
37
38
|
const showProgressSkeleton = isLoading && showRankProgressSkeleton;
|
|
38
39
|
const showProgressRail = showProgressSkeleton || (!isLoading && !!rankProgress);
|
|
39
40
|
const showChevron = !!chevron && !!onPress;
|
|
40
|
-
const content = (_jsxs(View, { className: cn('relative px-4 py-3', className), children: [_jsx(View, { className: "flex-row
|
|
41
|
+
const content = (_jsxs(View, { className: cn('relative px-4 py-3', className), children: [_jsx(View, { className: "flex-row", style: { minHeight: RANK_SUMMARY_MIN_HEIGHT }, children: _jsxs(View, { className: "flex-1 flex-row items-stretch justify-center gap-x-6", children: [_jsx(RankTierCard, { className: "w-36 self-stretch", bodyClassName: "flex-1 justify-center", seasonTitle: seasonTitle, tierIcon: tierIcon, tierName: tierName, tierColor: tierColor, rankedRating: rankedRating, rrLabel: rrLabel, showRankedRating: !rankProgress && !showProgressSkeleton, isLoading: isLoading }), _jsxs(View, { className: "items-center", children: [_jsx(Text, { className: "text-muted-foreground text-xs font-medium tracking-widest uppercase", style: { marginBottom: 10 }, children: actRankLabel }), _jsx(View, { style: { transform: [{ translateY: RANK_PYRAMID_VISUAL_OFFSET_Y }] }, children: _jsx(RankPyramid, { filledTiers: isLoading ? undefined : filledTiers, borderIcon: isLoading ? undefined : borderIcon, reserveBorderSpace: isLoading, size: pyramidSize }) })] })] }) }), showProgressRail ? (_jsxs(View, { className: "mt-1", children: [showProgressSkeleton ? (_jsx(Skeleton, { className: "h-1.5 w-full rounded-full" })) : (_jsx(Progress, { value: progressPercent, className: "bg-muted/70 h-1.5", indicatorStyle: color ? { backgroundColor: color } : undefined })), _jsx(View, { className: "mt-1 flex-row items-center justify-between", children: showProgressSkeleton ? (_jsxs(_Fragment, { children: [_jsx(Skeleton, { className: "h-4 w-20 rounded-md" }), _jsx(Skeleton, { className: "h-4 w-10 rounded-md" })] })) : rankProgress ? (_jsxs(_Fragment, { children: [_jsx(Text, { className: "text-muted-foreground text-xs font-medium tracking-wide uppercase", children: rankProgress.label ?? 'RANK RATING' }), _jsx(Text, { className: "text-muted-foreground text-xs font-semibold tabular-nums", children: getProgressValueLabel(rankProgress) })] })) : null })] })) : null, showChevron ? (_jsx(View, { pointerEvents: "none", style: {
|
|
41
42
|
position: 'absolute',
|
|
42
43
|
top: 0,
|
|
43
44
|
right: CHEVRON_RIGHT_OFFSET,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rank-card.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-card.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAwB,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAgDhC,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAsB;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC;IAChC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAsB;IACnD,OAAO,QAAQ,CAAC,UAAU,IAAI,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAC,EAChB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,GAAG,EAAE,EAChB,OAAO,EACP,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,wBAAwB,GAAG,IAAI,EAC/B,SAAS,GACK;IACd,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,oBAAoB,GAAG,SAAS,IAAI,wBAAwB,CAAC;IACnE,MAAM,gBAAgB,GAAG,oBAAoB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;IAE3C,MAAM,OAAO,GAAG,CACd,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,SAAS,CAAC,aAClD,KAAC,IAAI,IAAC,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"rank-card.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { View, type ImageStyle, type StyleProp } from 'react-native';
|
|
3
|
+
declare const RANK_PYRAMID_HEIGHT_RATIO: number;
|
|
4
|
+
declare const RANK_PYRAMID_BORDER_SCALE = 1.8;
|
|
5
|
+
declare const RANK_PYRAMID_BORDER_OFFSET_Y = -1;
|
|
6
|
+
declare function getRankPyramidArtworkFrame(size: number): {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
borderWidth: number;
|
|
10
|
+
borderHeight: number;
|
|
11
|
+
borderLeft: number;
|
|
12
|
+
borderTop: number;
|
|
13
|
+
offsetX: number;
|
|
14
|
+
offsetY: number;
|
|
15
|
+
visualWidth: number;
|
|
16
|
+
visualHeight: number;
|
|
17
|
+
};
|
|
18
|
+
interface RankPyramidTier {
|
|
19
|
+
/** Icon URL to use when the slot is geometrically up-facing. */
|
|
20
|
+
upIcon?: string;
|
|
21
|
+
/** Icon URL to use when the slot is geometrically down-facing. */
|
|
22
|
+
downIcon?: string;
|
|
23
|
+
}
|
|
24
|
+
type RankPyramidArtworkProps = React.ComponentProps<typeof View> & {
|
|
25
|
+
/** Pre-sorted (highest tier first) list of filled slots. Excess entries beyond the triangle count are ignored. */
|
|
26
|
+
filledTiers?: ReadonlyArray<RankPyramidTier>;
|
|
27
|
+
/** Background border image URL drawn behind the triangles. */
|
|
28
|
+
borderIcon?: string;
|
|
29
|
+
/** Inner pyramid grid width in px. Height derives to equilateral proportions. */
|
|
30
|
+
size?: number;
|
|
31
|
+
/** Number of rows to draw. */
|
|
32
|
+
rows?: number;
|
|
33
|
+
/** Whether to draw empty triangle slots. */
|
|
34
|
+
showEmptyTriangles?: boolean;
|
|
35
|
+
/** Fill color for empty triangle slots. Defaults to the card token. */
|
|
36
|
+
emptyFillColor?: string;
|
|
37
|
+
/** Optional border tint override. Defaults to the muted-foreground token. */
|
|
38
|
+
tintColor?: string;
|
|
39
|
+
/** Extra style merged onto the border image. */
|
|
40
|
+
imageStyle?: StyleProp<ImageStyle>;
|
|
41
|
+
};
|
|
42
|
+
declare function RankPyramidArtwork({ filledTiers, borderIcon, size, rows, showEmptyTriangles, emptyFillColor, tintColor, imageStyle, className, style, ...props }: RankPyramidArtworkProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
export { getRankPyramidArtworkFrame, RankPyramidArtwork, RANK_PYRAMID_BORDER_OFFSET_Y, RANK_PYRAMID_BORDER_SCALE, RANK_PYRAMID_HEIGHT_RATIO, };
|
|
44
|
+
export type { RankPyramidArtworkProps, RankPyramidTier };
|
|
45
|
+
//# sourceMappingURL=rank-pyramid-artwork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rank-pyramid-artwork.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-pyramid-artwork.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAQrE,QAAA,MAAM,yBAAyB,QAAmB,CAAC;AACnD,QAAA,MAAM,yBAAyB,MAAM,CAAC;AACtC,QAAA,MAAM,4BAA4B,KAAK,CAAC;AAExC,iBAAS,0BAA0B,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;EAyB/C;AA4DD,UAAU,eAAe;IACvB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,uBAAuB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG;IACjE,kHAAkH;IAClH,WAAW,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC7C,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CACpC,CAAC;AAEF,iBAAS,kBAAkB,CAAC,EAC1B,WAAW,EACX,UAAU,EACV,IAAU,EACV,IAAQ,EACR,kBAAyB,EACzB,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,uBAAuB,2CAwFzB;AAED,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,GAC1B,CAAC;AACF,YAAY,EAAE,uBAAuB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import { useCSSVariable } from 'uniwind';
|
|
5
|
+
import { Image } from '../../components/ui/image';
|
|
6
|
+
import { Path, Svg } from '../../lib/svg-shim';
|
|
7
|
+
import { cn } from '../../lib/utils';
|
|
8
|
+
const RANK_PYRAMID_HEIGHT_RATIO = Math.sqrt(3) / 2;
|
|
9
|
+
const RANK_PYRAMID_BORDER_SCALE = 1.8;
|
|
10
|
+
const RANK_PYRAMID_BORDER_OFFSET_Y = -1;
|
|
11
|
+
function getRankPyramidArtworkFrame(size) {
|
|
12
|
+
const width = size;
|
|
13
|
+
const height = size * RANK_PYRAMID_HEIGHT_RATIO;
|
|
14
|
+
const borderWidth = width * RANK_PYRAMID_BORDER_SCALE;
|
|
15
|
+
const borderHeight = height * RANK_PYRAMID_BORDER_SCALE;
|
|
16
|
+
const borderLeft = -(width * (RANK_PYRAMID_BORDER_SCALE - 1)) / 2;
|
|
17
|
+
const borderTop = RANK_PYRAMID_BORDER_OFFSET_Y - (height * (RANK_PYRAMID_BORDER_SCALE - 1)) / 2;
|
|
18
|
+
const minX = Math.min(0, borderLeft);
|
|
19
|
+
const minY = Math.min(0, borderTop);
|
|
20
|
+
const maxX = Math.max(width, borderLeft + borderWidth);
|
|
21
|
+
const maxY = Math.max(height, borderTop + borderHeight);
|
|
22
|
+
return {
|
|
23
|
+
width,
|
|
24
|
+
height,
|
|
25
|
+
borderWidth,
|
|
26
|
+
borderHeight,
|
|
27
|
+
borderLeft,
|
|
28
|
+
borderTop,
|
|
29
|
+
offsetX: -minX,
|
|
30
|
+
offsetY: -minY,
|
|
31
|
+
visualWidth: maxX - minX,
|
|
32
|
+
visualHeight: maxY - minY,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function buildTrianglePositions(width, height, numRows) {
|
|
36
|
+
const positions = [];
|
|
37
|
+
const rowHeight = height / numRows;
|
|
38
|
+
for (let row = 0; row < numRows; row++) {
|
|
39
|
+
const count = 2 * row + 1;
|
|
40
|
+
const topRowWidth = width / numRows;
|
|
41
|
+
const rowWidth = topRowWidth * (row + 1);
|
|
42
|
+
const triWidth = rowWidth / (row + 1);
|
|
43
|
+
const xOffset = (width - rowWidth) / 2;
|
|
44
|
+
const yTop = row * rowHeight;
|
|
45
|
+
const yBottom = yTop + rowHeight;
|
|
46
|
+
for (let col = 0; col < count; col++) {
|
|
47
|
+
const isUp = col % 2 === 0;
|
|
48
|
+
const pairIndex = Math.floor(col / 2);
|
|
49
|
+
let path;
|
|
50
|
+
let bbox;
|
|
51
|
+
if (isUp) {
|
|
52
|
+
const left = xOffset + pairIndex * triWidth;
|
|
53
|
+
const right = left + triWidth;
|
|
54
|
+
const topX = (left + right) / 2;
|
|
55
|
+
path = `M ${topX} ${yTop} L ${right} ${yBottom} L ${left} ${yBottom} Z`;
|
|
56
|
+
bbox = { x: left, y: yTop, w: triWidth, h: rowHeight };
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const left = xOffset + pairIndex * triWidth;
|
|
60
|
+
const right = left + triWidth;
|
|
61
|
+
const topX = (left + right) / 2 + triWidth / 2;
|
|
62
|
+
path = `M ${left + triWidth / 2} ${yTop} L ${right + triWidth / 2} ${yTop} L ${topX} ${yBottom} Z`;
|
|
63
|
+
bbox = { x: left + triWidth / 2, y: yTop, w: triWidth, h: rowHeight };
|
|
64
|
+
}
|
|
65
|
+
positions.push({ row, col, up: isUp, path, bbox });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return positions;
|
|
69
|
+
}
|
|
70
|
+
function useColorVar(name) {
|
|
71
|
+
const value = useCSSVariable(name);
|
|
72
|
+
return typeof value === 'string' ? value : '';
|
|
73
|
+
}
|
|
74
|
+
function RankPyramidArtwork({ filledTiers, borderIcon, size = 100, rows = 3, showEmptyTriangles = true, emptyFillColor, tintColor, imageStyle, className, style, ...props }) {
|
|
75
|
+
const frame = getRankPyramidArtworkFrame(size);
|
|
76
|
+
const { width, height } = frame;
|
|
77
|
+
const triangles = React.useMemo(() => buildTrianglePositions(width, height, rows), [width, height, rows]);
|
|
78
|
+
const slots = React.useMemo(() => (filledTiers ?? []).slice(0, triangles.length), [filledTiers, triangles.length]);
|
|
79
|
+
const foreground = useColorVar('--color-foreground');
|
|
80
|
+
const mutedForeground = useColorVar('--color-muted-foreground');
|
|
81
|
+
const card = useColorVar('--color-card');
|
|
82
|
+
const resolvedTintColor = (tintColor ?? mutedForeground) || undefined;
|
|
83
|
+
const resolvedEmptyFillColor = emptyFillColor ?? card;
|
|
84
|
+
return (_jsxs(View, { className: cn(className), style: [{ width, height }, style], ...props, children: [borderIcon ? (_jsx(Image, { source: borderIcon, style: [
|
|
85
|
+
{
|
|
86
|
+
position: 'absolute',
|
|
87
|
+
width: frame.borderWidth,
|
|
88
|
+
height: frame.borderHeight,
|
|
89
|
+
left: frame.borderLeft,
|
|
90
|
+
top: frame.borderTop,
|
|
91
|
+
tintColor: resolvedTintColor,
|
|
92
|
+
},
|
|
93
|
+
imageStyle,
|
|
94
|
+
], contentFit: "contain", pointerEvents: "none" })) : null, showEmptyTriangles ? (_jsx(Svg, { style: { position: 'absolute' }, width: width, height: height, viewBox: `0 0 ${width} ${height}`, children: triangles.map((tri, index) => {
|
|
95
|
+
const isFilled = index < slots.length;
|
|
96
|
+
if (isFilled)
|
|
97
|
+
return null;
|
|
98
|
+
return (_jsx(Path, { d: tri.path, fill: resolvedEmptyFillColor, stroke: foreground, strokeWidth: 0.5, strokeOpacity: 0.3 }, `${tri.row}-${tri.col}`));
|
|
99
|
+
}) })) : null, slots.map((slot, index) => {
|
|
100
|
+
const tri = triangles[index];
|
|
101
|
+
const iconUrl = tri.up ? slot.upIcon : slot.downIcon;
|
|
102
|
+
if (!iconUrl)
|
|
103
|
+
return null;
|
|
104
|
+
return (_jsx(Image, { source: iconUrl, style: {
|
|
105
|
+
position: 'absolute',
|
|
106
|
+
left: tri.bbox.x,
|
|
107
|
+
top: tri.bbox.y,
|
|
108
|
+
width: tri.bbox.w,
|
|
109
|
+
height: tri.bbox.h,
|
|
110
|
+
}, contentFit: "fill" }, `img-${tri.row}-${tri.col}`));
|
|
111
|
+
})] }));
|
|
112
|
+
}
|
|
113
|
+
export { getRankPyramidArtworkFrame, RankPyramidArtwork, RANK_PYRAMID_BORDER_OFFSET_Y, RANK_PYRAMID_BORDER_SCALE, RANK_PYRAMID_HEIGHT_RATIO, };
|
|
114
|
+
//# sourceMappingURL=rank-pyramid-artwork.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rank-pyramid-artwork.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-pyramid-artwork.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { View, type ImageStyle, type StyleProp } from 'react-native';
|
|
3
|
+
type RankPyramidBorderImageProps = React.ComponentProps<typeof View> & {
|
|
4
|
+
/** Season border display icon URL. */
|
|
5
|
+
borderIcon?: string;
|
|
6
|
+
/** Square artwork box size in px. */
|
|
7
|
+
size?: number;
|
|
8
|
+
/** Draw the inner triangle grid on top of the border image. */
|
|
9
|
+
showTriangles?: boolean;
|
|
10
|
+
/** Number of triangle rows. */
|
|
11
|
+
triangleRows?: number;
|
|
12
|
+
/** Fill color for the triangle grid. Defaults to the card token. */
|
|
13
|
+
triangleFillColor?: string;
|
|
14
|
+
/** Optional tint override. Defaults to the muted-foreground token. */
|
|
15
|
+
tintColor?: string;
|
|
16
|
+
/** Extra style merged onto the border image. */
|
|
17
|
+
imageStyle?: StyleProp<ImageStyle>;
|
|
18
|
+
};
|
|
19
|
+
declare function RankPyramidBorderImage({ borderIcon, size, showTriangles, triangleRows, triangleFillColor, tintColor, imageStyle, className, style, ...props }: RankPyramidBorderImageProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export { RankPyramidBorderImage };
|
|
21
|
+
export type { RankPyramidBorderImageProps };
|
|
22
|
+
//# sourceMappingURL=rank-pyramid-border-image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rank-pyramid-border-image.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-pyramid-border-image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AASrE,KAAK,2BAA2B,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG;IACrE,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CACpC,CAAC;AAEF,iBAAS,sBAAsB,CAAC,EAC9B,UAAU,EACV,IAAU,EACV,aAAqB,EACrB,YAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,2BAA2B,2CAwB7B;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,YAAY,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { getRankPyramidArtworkFrame, RankPyramidArtwork, RANK_PYRAMID_BORDER_SCALE, } from '../../components/blocks/rank-pyramid-artwork';
|
|
4
|
+
import { cn } from '../../lib/utils';
|
|
5
|
+
function RankPyramidBorderImage({ borderIcon, size = 120, showTriangles = false, triangleRows = 3, triangleFillColor, tintColor, imageStyle, className, style, ...props }) {
|
|
6
|
+
const pyramidSize = size / RANK_PYRAMID_BORDER_SCALE;
|
|
7
|
+
const frame = getRankPyramidArtworkFrame(pyramidSize);
|
|
8
|
+
const pyramidLeft = (size - frame.visualWidth) / 2 + frame.offsetX;
|
|
9
|
+
const pyramidTop = (size - frame.visualHeight) / 2 + frame.offsetY;
|
|
10
|
+
return (_jsx(View, { className: cn(className), style: [{ width: size, height: size }, style], ...props, children: _jsx(RankPyramidArtwork, { borderIcon: borderIcon, size: pyramidSize, rows: triangleRows, showEmptyTriangles: showTriangles, emptyFillColor: triangleFillColor, tintColor: tintColor, imageStyle: imageStyle, pointerEvents: "none", style: { position: 'absolute', left: pyramidLeft, top: pyramidTop } }) }));
|
|
11
|
+
}
|
|
12
|
+
export { RankPyramidBorderImage };
|
|
13
|
+
//# sourceMappingURL=rank-pyramid-border-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rank-pyramid-border-image.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-pyramid-border-image.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAmC,MAAM,cAAc,CAAC;AAErE,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAmBjC,SAAS,sBAAsB,CAAC,EAC9B,UAAU,EACV,IAAI,GAAG,GAAG,EACV,aAAa,GAAG,KAAK,EACrB,YAAY,GAAG,CAAC,EAChB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACoB;IAC5B,MAAM,WAAW,GAAG,IAAI,GAAG,yBAAyB,CAAC;IACrD,MAAM,KAAK,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IACnE,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IAEnE,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EACxB,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,KACzC,KAAK,YACT,KAAC,kBAAkB,IACjB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,YAAY,EAClB,kBAAkB,EAAE,aAAa,EACjC,cAAc,EAAE,iBAAiB,EACjC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GACnE,GACG,CACR,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
/** Icon URL to use when the slot is geometrically up-facing. */
|
|
3
|
-
upIcon?: string;
|
|
4
|
-
/** Icon URL to use when the slot is geometrically down-facing. */
|
|
5
|
-
downIcon?: string;
|
|
6
|
-
}
|
|
1
|
+
import { type RankPyramidTier } from '../../components/blocks/rank-pyramid-artwork';
|
|
7
2
|
interface RankPyramidProps {
|
|
8
3
|
/** Pre-sorted (highest tier first) list of filled slots. Excess entries beyond the triangle count are ignored. */
|
|
9
4
|
filledTiers?: ReadonlyArray<RankPyramidTier>;
|
|
10
5
|
/** Background border image URL drawn behind the triangles, tinted with the muted-foreground token. */
|
|
11
6
|
borderIcon?: string;
|
|
7
|
+
/** Reserve the full border frame even when no border image is available. */
|
|
8
|
+
reserveBorderSpace?: boolean;
|
|
12
9
|
/** Outer width in px. Height derives to equilateral proportions. */
|
|
13
10
|
size?: number;
|
|
14
11
|
/** Row count when collapsed. */
|
|
@@ -29,7 +26,7 @@ interface RankPyramidProps {
|
|
|
29
26
|
* Data-free: the consumer resolves tier triangle icons and border URLs and
|
|
30
27
|
* passes them in as a pre-sorted list.
|
|
31
28
|
*/
|
|
32
|
-
declare function RankPyramid({ filledTiers, borderIcon, size, rowsCollapsed, rowsExpanded, defaultExpanded, className, }: RankPyramidProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
declare function RankPyramid({ filledTiers, borderIcon, reserveBorderSpace, size, rowsCollapsed, rowsExpanded, defaultExpanded, className, }: RankPyramidProps): import("react/jsx-runtime").JSX.Element;
|
|
33
30
|
export { RankPyramid };
|
|
34
31
|
export type { RankPyramidProps, RankPyramidTier };
|
|
35
32
|
//# sourceMappingURL=rank-pyramid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rank-pyramid.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-pyramid.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rank-pyramid.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-pyramid.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,0CAA0C,CAAC;AAMlD,UAAU,gBAAgB;IACxB,kHAAkH;IAClH,WAAW,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC7C,sGAAsG;IACtG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,iBAAS,WAAW,CAAC,EACnB,WAAW,EACX,UAAU,EACV,kBAA0B,EAC1B,IAAU,EACV,aAAsC,EACtC,YAAoC,EACpC,eAAuB,EACvB,SAAS,GACV,EAAE,gBAAgB,2CAuBlB;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,53 +1,10 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
3
|
import { Pressable } from 'react-native';
|
|
4
|
-
import {
|
|
5
|
-
import { Image } from '../../components/ui/image';
|
|
6
|
-
import { Path, Svg } from '../../lib/svg-shim';
|
|
4
|
+
import { getRankPyramidArtworkFrame, RankPyramidArtwork, } from '../../components/blocks/rank-pyramid-artwork';
|
|
7
5
|
import { cn } from '../../lib/utils';
|
|
8
6
|
const ROWS_COLLAPSED_DEFAULT = 3;
|
|
9
7
|
const ROWS_EXPANDED_DEFAULT = 7;
|
|
10
|
-
const BORDER_SCALE = 1.8;
|
|
11
|
-
const BORDER_OFFSET_Y = -1;
|
|
12
|
-
function buildTrianglePositions(width, height, numRows) {
|
|
13
|
-
const positions = [];
|
|
14
|
-
const rowHeight = height / numRows;
|
|
15
|
-
for (let row = 0; row < numRows; row++) {
|
|
16
|
-
const count = 2 * row + 1;
|
|
17
|
-
const topRowWidth = width / numRows;
|
|
18
|
-
const rowWidth = topRowWidth * (row + 1);
|
|
19
|
-
const triWidth = rowWidth / (row + 1);
|
|
20
|
-
const xOffset = (width - rowWidth) / 2;
|
|
21
|
-
const yTop = row * rowHeight;
|
|
22
|
-
const yBottom = yTop + rowHeight;
|
|
23
|
-
for (let col = 0; col < count; col++) {
|
|
24
|
-
const isUp = col % 2 === 0;
|
|
25
|
-
const pairIndex = Math.floor(col / 2);
|
|
26
|
-
let path;
|
|
27
|
-
let bbox;
|
|
28
|
-
if (isUp) {
|
|
29
|
-
const left = xOffset + pairIndex * triWidth;
|
|
30
|
-
const right = left + triWidth;
|
|
31
|
-
const topX = (left + right) / 2;
|
|
32
|
-
path = `M ${topX} ${yTop} L ${right} ${yBottom} L ${left} ${yBottom} Z`;
|
|
33
|
-
bbox = { x: left, y: yTop, w: triWidth, h: rowHeight };
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
const left = xOffset + pairIndex * triWidth;
|
|
37
|
-
const right = left + triWidth;
|
|
38
|
-
const topX = (left + right) / 2 + triWidth / 2;
|
|
39
|
-
path = `M ${left + triWidth / 2} ${yTop} L ${right + triWidth / 2} ${yTop} L ${topX} ${yBottom} Z`;
|
|
40
|
-
bbox = { x: left + triWidth / 2, y: yTop, w: triWidth, h: rowHeight };
|
|
41
|
-
}
|
|
42
|
-
positions.push({ row, col, up: isUp, path, bbox });
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return positions;
|
|
46
|
-
}
|
|
47
|
-
function useColorVar(name) {
|
|
48
|
-
const value = useCSSVariable(name);
|
|
49
|
-
return typeof value === 'string' ? value : '';
|
|
50
|
-
}
|
|
51
8
|
/**
|
|
52
9
|
* Act-rank pyramid: a stack of up- and down-facing triangles representing
|
|
53
10
|
* competitive wins, with an optional border image tinted behind it. Pressing
|
|
@@ -57,41 +14,14 @@ function useColorVar(name) {
|
|
|
57
14
|
* Data-free: the consumer resolves tier triangle icons and border URLs and
|
|
58
15
|
* passes them in as a pre-sorted list.
|
|
59
16
|
*/
|
|
60
|
-
function RankPyramid({ filledTiers, borderIcon, size = 100, rowsCollapsed = ROWS_COLLAPSED_DEFAULT, rowsExpanded = ROWS_EXPANDED_DEFAULT, defaultExpanded = false, className, }) {
|
|
61
|
-
const width = size;
|
|
62
|
-
const height = size * (Math.sqrt(3) / 2);
|
|
17
|
+
function RankPyramid({ filledTiers, borderIcon, reserveBorderSpace = false, size = 100, rowsCollapsed = ROWS_COLLAPSED_DEFAULT, rowsExpanded = ROWS_EXPANDED_DEFAULT, defaultExpanded = false, className, }) {
|
|
63
18
|
const [expanded, setExpanded] = useState(defaultExpanded);
|
|
64
19
|
const numRows = expanded ? rowsExpanded : rowsCollapsed;
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
return (_jsxs(Pressable, { onPress: () => setExpanded((v) => !v), style: { width, height }, className: cn(className), children: [borderIcon ? (_jsx(Image, { source: borderIcon, style: {
|
|
71
|
-
position: 'absolute',
|
|
72
|
-
width: width * BORDER_SCALE,
|
|
73
|
-
height: height * BORDER_SCALE,
|
|
74
|
-
left: -(width * (BORDER_SCALE - 1)) / 2,
|
|
75
|
-
top: BORDER_OFFSET_Y - (height * (BORDER_SCALE - 1)) / 2,
|
|
76
|
-
tintColor: mutedForeground || undefined,
|
|
77
|
-
}, contentFit: "contain", pointerEvents: "none" })) : null, _jsx(Svg, { style: { position: 'absolute' }, width: width, height: height, viewBox: `0 0 ${width} ${height}`, children: triangles.map((tri, index) => {
|
|
78
|
-
const isFilled = index < slots.length;
|
|
79
|
-
if (isFilled)
|
|
80
|
-
return null;
|
|
81
|
-
return (_jsx(Path, { d: tri.path, fill: card, stroke: foreground, strokeWidth: 0.5, strokeOpacity: 0.3 }, `${tri.row}-${tri.col}`));
|
|
82
|
-
}) }), slots.map((slot, index) => {
|
|
83
|
-
const tri = triangles[index];
|
|
84
|
-
const iconUrl = tri.up ? slot.upIcon : slot.downIcon;
|
|
85
|
-
if (!iconUrl)
|
|
86
|
-
return null;
|
|
87
|
-
return (_jsx(Image, { source: iconUrl, style: {
|
|
88
|
-
position: 'absolute',
|
|
89
|
-
left: tri.bbox.x,
|
|
90
|
-
top: tri.bbox.y,
|
|
91
|
-
width: tri.bbox.w,
|
|
92
|
-
height: tri.bbox.h,
|
|
93
|
-
}, contentFit: "fill" }, `img-${tri.row}-${tri.col}`));
|
|
94
|
-
})] }));
|
|
20
|
+
const frame = getRankPyramidArtworkFrame(size);
|
|
21
|
+
const shouldUseBorderFrame = !!borderIcon || reserveBorderSpace;
|
|
22
|
+
const height = shouldUseBorderFrame ? frame.visualHeight : frame.height;
|
|
23
|
+
const artworkOffsetTop = shouldUseBorderFrame ? frame.offsetY : 0;
|
|
24
|
+
return (_jsx(Pressable, { onPress: () => setExpanded((v) => !v), style: { width: size, height, overflow: 'visible' }, className: cn(className), children: _jsx(RankPyramidArtwork, { filledTiers: filledTiers, borderIcon: borderIcon, size: size, rows: numRows, pointerEvents: "none", style: shouldUseBorderFrame ? { position: 'absolute', top: artworkOffsetTop } : undefined }) }));
|
|
95
25
|
}
|
|
96
26
|
export { RankPyramid };
|
|
97
27
|
//# sourceMappingURL=rank-pyramid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rank-pyramid.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-pyramid.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rank-pyramid.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-pyramid.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GAEnB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAqBhC;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,EACnB,WAAW,EACX,UAAU,EACV,kBAAkB,GAAG,KAAK,EAC1B,IAAI,GAAG,GAAG,EACV,aAAa,GAAG,sBAAsB,EACtC,YAAY,GAAG,qBAAqB,EACpC,eAAe,GAAG,KAAK,EACvB,SAAS,GACQ;IACjB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;IACxD,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,oBAAoB,GAAG,CAAC,CAAC,UAAU,IAAI,kBAAkB,CAAC;IAChE,MAAM,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IACxE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACrC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EACnD,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YACxB,KAAC,kBAAkB,IACjB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,OAAO,EACb,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,GACzF,GACQ,CACb,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -3,13 +3,15 @@ interface RankTierCardSkeletonProps {
|
|
|
3
3
|
showRankedRating?: boolean;
|
|
4
4
|
/** Extra classes merged onto the outer column wrapper. */
|
|
5
5
|
className?: string;
|
|
6
|
+
/** Extra classes merged onto the icon/name/rating body wrapper. */
|
|
7
|
+
bodyClassName?: string;
|
|
6
8
|
}
|
|
7
9
|
/**
|
|
8
10
|
* Loading placeholder for `RankTierCard`. Mirrors the season label, 64×64 tier
|
|
9
11
|
* icon, tier name, and optional RR row so the layout doesn't shift once rank
|
|
10
12
|
* data resolves.
|
|
11
13
|
*/
|
|
12
|
-
declare function RankTierCardSkeleton({ showRankedRating, className }: RankTierCardSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare function RankTierCardSkeleton({ showRankedRating, className, bodyClassName, }: RankTierCardSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
13
15
|
export { RankTierCardSkeleton };
|
|
14
16
|
export type { RankTierCardSkeletonProps };
|
|
15
17
|
//# sourceMappingURL=rank-tier-card-skeleton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rank-tier-card-skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card-skeleton.tsx"],"names":[],"mappings":"AAKA,UAAU,yBAAyB;IACjC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"rank-tier-card-skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card-skeleton.tsx"],"names":[],"mappings":"AAKA,UAAU,yBAAyB;IACjC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,iBAAS,oBAAoB,CAAC,EAC5B,gBAAuB,EACvB,SAAS,EACT,aAAa,GACd,EAAE,yBAAyB,2CAW3B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -7,8 +7,8 @@ import { cn } from '../../lib/utils';
|
|
|
7
7
|
* icon, tier name, and optional RR row so the layout doesn't shift once rank
|
|
8
8
|
* data resolves.
|
|
9
9
|
*/
|
|
10
|
-
function RankTierCardSkeleton({ showRankedRating = true, className }) {
|
|
11
|
-
return (_jsxs(View, { className: cn('items-center', className), children: [_jsx(Skeleton, { className: "
|
|
10
|
+
function RankTierCardSkeleton({ showRankedRating = true, className, bodyClassName, }) {
|
|
11
|
+
return (_jsxs(View, { className: cn('items-center gap-y-2.5', className), children: [_jsx(Skeleton, { className: "h-4 w-12 rounded-md" }), _jsxs(View, { className: cn('items-center gap-y-1', bodyClassName), children: [_jsx(Skeleton, { style: { width: 64, height: 64 }, className: "rounded-md" }), _jsx(Skeleton, { className: "h-6 w-24 rounded-md" }), showRankedRating ? _jsx(Skeleton, { className: "h-5 w-14 rounded-md" }) : null] })] }));
|
|
12
12
|
}
|
|
13
13
|
export { RankTierCardSkeleton };
|
|
14
14
|
//# sourceMappingURL=rank-tier-card-skeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rank-tier-card-skeleton.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card-skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"rank-tier-card-skeleton.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card-skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAWjC;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,EAC5B,gBAAgB,GAAG,IAAI,EACvB,SAAS,EACT,aAAa,GACa;IAC1B,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,aACtD,KAAC,QAAQ,IAAC,SAAS,EAAC,qBAAqB,GAAG,EAC5C,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,aAAa,CAAC,aACxD,KAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,EAAC,YAAY,GAAG,EACrE,KAAC,QAAQ,IAAC,SAAS,EAAC,qBAAqB,GAAG,EAC3C,gBAAgB,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,SAAS,EAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,IAAI,IAClE,IACF,CACR,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -17,6 +17,8 @@ interface RankTierCardProps {
|
|
|
17
17
|
isLoading?: boolean;
|
|
18
18
|
/** Extra classes merged onto the outer column wrapper. */
|
|
19
19
|
className?: string;
|
|
20
|
+
/** Extra classes merged onto the icon/name/rating body wrapper. */
|
|
21
|
+
bodyClassName?: string;
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
24
|
* Rank tier summary column — season label, tier icon, tier name, and RR,
|
|
@@ -25,7 +27,7 @@ interface RankTierCardProps {
|
|
|
25
27
|
*
|
|
26
28
|
* Data-free: the consumer resolves tier metadata.
|
|
27
29
|
*/
|
|
28
|
-
declare function RankTierCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rrLabel, showRankedRating, isLoading, className, }: RankTierCardProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
declare function RankTierCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rrLabel, showRankedRating, isLoading, className, bodyClassName, }: RankTierCardProps): import("react/jsx-runtime").JSX.Element;
|
|
29
31
|
export { RankTierCard };
|
|
30
32
|
export type { RankTierCardProps };
|
|
31
33
|
//# sourceMappingURL=rank-tier-card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rank-tier-card.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card.tsx"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"rank-tier-card.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card.tsx"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD;;;;;;GAMG;AACH,iBAAS,YAAY,CAAC,EACpB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,OAAc,EACd,gBAAuB,EACvB,SAAiB,EACjB,SAAS,EACT,aAAa,GACd,EAAE,iBAAiB,2CA+CnB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -16,12 +16,12 @@ function normalizeHex(input) {
|
|
|
16
16
|
*
|
|
17
17
|
* Data-free: the consumer resolves tier metadata.
|
|
18
18
|
*/
|
|
19
|
-
function RankTierCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rrLabel = 'RR', showRankedRating = true, isLoading = false, className, }) {
|
|
19
|
+
function RankTierCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rrLabel = 'RR', showRankedRating = true, isLoading = false, className, bodyClassName, }) {
|
|
20
20
|
if (isLoading) {
|
|
21
|
-
return _jsx(RankTierCardSkeleton, { showRankedRating: showRankedRating, className: className });
|
|
21
|
+
return (_jsx(RankTierCardSkeleton, { showRankedRating: showRankedRating, className: className, bodyClassName: bodyClassName }));
|
|
22
22
|
}
|
|
23
23
|
const color = normalizeHex(tierColor);
|
|
24
|
-
return (_jsxs(View, { className: cn('items-center', className), children: [_jsx(Text, { className: "text-muted-foreground
|
|
24
|
+
return (_jsxs(View, { className: cn('items-center gap-y-2.5', className), children: [_jsx(Text, { className: "text-muted-foreground text-xs font-medium tracking-widest uppercase", children: seasonTitle }), _jsxs(View, { className: cn('items-center gap-y-1', bodyClassName), children: [_jsx(View, { className: "h-16 w-16", children: tierIcon ? (_jsx(Image, { source: tierIcon, style: { width: '100%', height: '100%' }, contentFit: "contain" })) : null }), tierName ? (_jsx(Text, { className: "text-foreground text-base font-bold tracking-wide uppercase", style: color ? { color } : undefined, numberOfLines: 1, adjustsFontSizeToFit: true, children: tierName })) : null, showRankedRating ? (_jsxs(Text, { className: "text-muted-foreground text-sm font-medium", children: [rankedRating ?? 0, rrLabel ? ` ${rrLabel}` : ''] })) : null] })] }));
|
|
25
25
|
}
|
|
26
26
|
export { RankTierCard };
|
|
27
27
|
//# sourceMappingURL=rank-tier-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rank-tier-card.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"rank-tier-card.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAyBjC,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,EACpB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,OAAO,GAAG,IAAI,EACd,gBAAgB,GAAG,IAAI,EACvB,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,aAAa,GACK;IAClB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,KAAC,oBAAoB,IACnB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAEtC,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,aACtD,KAAC,IAAI,IAAC,SAAS,EAAC,qEAAqE,YAClF,WAAW,GACP,EACP,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,aAAa,CAAC,aACxD,KAAC,IAAI,IAAC,SAAS,EAAC,WAAW,YACxB,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,KAAK,IACJ,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EACxC,UAAU,EAAC,SAAS,GACpB,CACH,CAAC,CAAC,CAAC,IAAI,GACH,EACN,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,IAAI,IACH,SAAS,EAAC,6DAA6D,EACvE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EACpC,aAAa,EAAE,CAAC,EAChB,oBAAoB,kBAEnB,QAAQ,GACJ,CACR,CAAC,CAAC,CAAC,IAAI,EACP,gBAAgB,CAAC,CAAC,CAAC,CAClB,MAAC,IAAI,IAAC,SAAS,EAAC,2CAA2C,aACxD,YAAY,IAAI,CAAC,EACjB,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IACxB,CACR,CAAC,CAAC,CAAC,IAAI,IACH,IACF,CACR,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,6 +32,8 @@ export { RankTierCardSkeleton } from './components/blocks/rank-tier-card-skeleto
|
|
|
32
32
|
export type { RankTierCardSkeletonProps } from './components/blocks/rank-tier-card-skeleton';
|
|
33
33
|
export { RankPyramid } from './components/blocks/rank-pyramid';
|
|
34
34
|
export type { RankPyramidProps, RankPyramidTier } from './components/blocks/rank-pyramid';
|
|
35
|
+
export { RankPyramidBorderImage } from './components/blocks/rank-pyramid-border-image';
|
|
36
|
+
export type { RankPyramidBorderImageProps } from './components/blocks/rank-pyramid-border-image';
|
|
35
37
|
export { RankCard } from './components/blocks/rank-card';
|
|
36
38
|
export type { RankCardProps } from './components/blocks/rank-card';
|
|
37
39
|
export { AgentCard } from './components/blocks/agent-card';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpF,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,YAAY,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,YAAY,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAE9F,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,YAAY,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,YAAY,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ export { LevelBorder } from './components/blocks/level-border';
|
|
|
17
17
|
export { RankTierCard } from './components/blocks/rank-tier-card';
|
|
18
18
|
export { RankTierCardSkeleton } from './components/blocks/rank-tier-card-skeleton';
|
|
19
19
|
export { RankPyramid } from './components/blocks/rank-pyramid';
|
|
20
|
+
export { RankPyramidBorderImage } from './components/blocks/rank-pyramid-border-image';
|
|
20
21
|
export { RankCard } from './components/blocks/rank-card';
|
|
21
22
|
export { AgentCard } from './components/blocks/agent-card';
|
|
22
23
|
export { RoleCard } from './components/blocks/role-card';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,iCAAiC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGpF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAGnF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,iCAAiC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGpF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAGnF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAGvF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAM5E,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAO7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAOrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAQjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAM/E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAGnF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAMvE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAO9E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAMxE,kBAAkB;AAClB,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC"}
|