@valpro-labs/ui 1.11.4 → 1.11.5

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.
@@ -5,9 +5,9 @@ interface RankProgress {
5
5
  value: number;
6
6
  /** Maximum progress value. Defaults to `100` for normal RR tiers. */
7
7
  max?: number;
8
- /** Left-side label below the bar. Defaults to `"RANK RATING"`. */
8
+ /** Deprecated: progress no longer renders a text label. */
9
9
  label?: string;
10
- /** Right-side value below the bar. Defaults to `"value/max"`. */
10
+ /** Right-side value next to the bar. Defaults to `"value/max"`. */
11
11
  valueLabel?: string;
12
12
  }
13
13
  interface RankCardProps {
@@ -23,7 +23,7 @@ interface RankCardProps {
23
23
  rankedRating?: number;
24
24
  /** Suffix shown after the RR value (default `"RR"`). Pass `""` to hide. */
25
25
  rrLabel?: string;
26
- /** Optional full-width rank-rating rail shown below the rank summary row. */
26
+ /** Optional rank-rating rail shown inside the tier column. */
27
27
  rankProgress?: RankProgress;
28
28
  /** Header shown above the pyramid, e.g. `"ACT RANK"`. */
29
29
  actRankLabel: string;
@@ -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;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"}
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,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,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,8DAA8D;IAC9D,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,2CA+Ff;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Pressable, View } from 'react-native';
3
3
  import { RankPyramid } from '../../components/blocks/rank-pyramid';
4
4
  import { RankTierCard } from '../../components/blocks/rank-tier-card';
@@ -6,8 +6,8 @@ import { Progress } from '../../components/ui/progress';
6
6
  import { Skeleton } from '../../components/ui/skeleton';
7
7
  import { Text } from '../../components/ui/text';
8
8
  import { cn } from '../../lib/utils';
9
- const RANK_SUMMARY_MIN_HEIGHT = 108;
10
9
  const RANK_PYRAMID_VISUAL_OFFSET_Y = -8;
10
+ const RANK_SUMMARY_MIN_HEIGHT = 100;
11
11
  const CHEVRON_WIDTH = 14;
12
12
  const CHEVRON_RIGHT_OFFSET = 12;
13
13
  function normalizeHex(input) {
@@ -38,7 +38,7 @@ function RankCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rr
38
38
  const showProgressSkeleton = isLoading && showRankProgressSkeleton;
39
39
  const showProgressRail = showProgressSkeleton || (!isLoading && !!rankProgress);
40
40
  const showChevron = !!chevron && !!onPress;
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
+ 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: cn('w-36 self-stretch', showProgressRail && 'justify-between gap-y-0'), bodyClassName: showProgressRail ? undefined : 'flex-1 justify-center', seasonTitle: seasonTitle, tierIcon: tierIcon, tierName: tierName, tierColor: tierColor, rankedRating: rankedRating, rrLabel: rrLabel, showRankedRating: !rankProgress && !showProgressSkeleton, isLoading: isLoading, footer: showProgressRail ? (_jsx(View, { className: "w-full flex-row items-center gap-x-2", children: showProgressSkeleton ? (_jsxs(_Fragment, { children: [_jsx(Skeleton, { className: "h-1 flex-1 rounded-full" }), _jsx(Skeleton, { className: "h-3 w-11 shrink-0 rounded-md" })] })) : (_jsxs(_Fragment, { children: [_jsx(Progress, { value: progressPercent, className: "bg-muted/70 h-1 flex-1", indicatorStyle: color ? { backgroundColor: color } : undefined }), rankProgress ? (_jsx(Text, { className: "text-muted-foreground shrink-0 text-xs leading-none font-semibold tabular-nums", numberOfLines: 1, children: getProgressValueLabel(rankProgress) })) : null] })) })) : null }), _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(RankPyramid, { filledTiers: isLoading ? undefined : filledTiers, borderIcon: isLoading ? undefined : borderIcon, reserveBorderSpace: isLoading, size: pyramidSize, visualOffsetY: RANK_PYRAMID_VISUAL_OFFSET_Y })] })] }) }), showChevron ? (_jsx(View, { pointerEvents: "none", style: {
42
42
  position: 'absolute',
43
43
  top: 0,
44
44
  right: CHEVRON_RIGHT_OFFSET,
@@ -1 +1 @@
1
- {"version":3,"file":"rank-card.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rank-card.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-card.tsx"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ interface RankPyramidProps {
8
8
  reserveBorderSpace?: boolean;
9
9
  /** Outer width in px. Height derives to equilateral proportions. */
10
10
  size?: number;
11
+ /** Visual Y offset applied to the artwork, also adjusting layout height by the same amount. */
12
+ visualOffsetY?: number;
11
13
  /** Row count when collapsed. */
12
14
  rowsCollapsed?: number;
13
15
  /** Row count when expanded. */
@@ -26,7 +28,7 @@ interface RankPyramidProps {
26
28
  * Data-free: the consumer resolves tier triangle icons and border URLs and
27
29
  * passes them in as a pre-sorted list.
28
30
  */
29
- declare function RankPyramid({ filledTiers, borderIcon, reserveBorderSpace, size, rowsCollapsed, rowsExpanded, defaultExpanded, className, }: RankPyramidProps): import("react/jsx-runtime").JSX.Element;
31
+ declare function RankPyramid({ filledTiers, borderIcon, reserveBorderSpace, size, visualOffsetY, rowsCollapsed, rowsExpanded, defaultExpanded, className, }: RankPyramidProps): import("react/jsx-runtime").JSX.Element;
30
32
  export { RankPyramid };
31
33
  export type { RankPyramidProps, RankPyramidTier };
32
34
  //# 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":"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
+ {"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,+FAA+F;IAC/F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,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,aAAiB,EACjB,aAAsC,EACtC,YAAoC,EACpC,eAAuB,EACvB,SAAS,GACV,EAAE,gBAAgB,2CAyBlB;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}
@@ -14,14 +14,15 @@ const ROWS_EXPANDED_DEFAULT = 7;
14
14
  * Data-free: the consumer resolves tier triangle icons and border URLs and
15
15
  * passes them in as a pre-sorted list.
16
16
  */
17
- function RankPyramid({ filledTiers, borderIcon, reserveBorderSpace = false, size = 100, rowsCollapsed = ROWS_COLLAPSED_DEFAULT, rowsExpanded = ROWS_EXPANDED_DEFAULT, defaultExpanded = false, className, }) {
17
+ function RankPyramid({ filledTiers, borderIcon, reserveBorderSpace = false, size = 100, visualOffsetY = 0, rowsCollapsed = ROWS_COLLAPSED_DEFAULT, rowsExpanded = ROWS_EXPANDED_DEFAULT, defaultExpanded = false, className, }) {
18
18
  const [expanded, setExpanded] = useState(defaultExpanded);
19
19
  const numRows = expanded ? rowsExpanded : rowsCollapsed;
20
20
  const frame = getRankPyramidArtworkFrame(size);
21
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 }) }));
22
+ const baseHeight = shouldUseBorderFrame ? frame.visualHeight : frame.height;
23
+ const height = Math.max(0, baseHeight + visualOffsetY);
24
+ const artworkOffsetTop = (shouldUseBorderFrame ? frame.offsetY : 0) + visualOffsetY;
25
+ return (_jsx(Pressable, { onPress: () => setExpanded((v) => !v), hitSlop: visualOffsetY < 0 ? { top: -visualOffsetY } : undefined, 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 }) }));
25
26
  }
26
27
  export { RankPyramid };
27
28
  //# 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,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"}
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;AAuBhC;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,EACnB,WAAW,EACX,UAAU,EACV,kBAAkB,GAAG,KAAK,EAC1B,IAAI,GAAG,GAAG,EACV,aAAa,GAAG,CAAC,EACjB,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,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IAEpF,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACrC,OAAO,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,EAChE,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"}
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  interface RankTierCardSkeletonProps {
2
3
  /** Show the ranked rating placeholder row. */
3
4
  showRankedRating?: boolean;
@@ -5,13 +6,15 @@ interface RankTierCardSkeletonProps {
5
6
  className?: string;
6
7
  /** Extra classes merged onto the icon/name/rating body wrapper. */
7
8
  bodyClassName?: string;
9
+ /** Optional content rendered at the bottom of the tier column. */
10
+ footer?: ReactNode;
8
11
  }
9
12
  /**
10
13
  * Loading placeholder for `RankTierCard`. Mirrors the season label, 64×64 tier
11
14
  * icon, tier name, and optional RR row so the layout doesn't shift once rank
12
15
  * data resolves.
13
16
  */
14
- declare function RankTierCardSkeleton({ showRankedRating, className, bodyClassName, }: RankTierCardSkeletonProps): import("react/jsx-runtime").JSX.Element;
17
+ declare function RankTierCardSkeleton({ showRankedRating, className, bodyClassName, footer, }: RankTierCardSkeletonProps): import("react/jsx-runtime").JSX.Element;
15
18
  export { RankTierCardSkeleton };
16
19
  export type { RankTierCardSkeletonProps };
17
20
  //# 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;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"}
1
+ {"version":3,"file":"rank-tier-card-skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,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;IACvB,kEAAkE;IAClE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;;;GAIG;AACH,iBAAS,oBAAoB,CAAC,EAC5B,gBAAuB,EACvB,SAAS,EACT,aAAa,EACb,MAAM,GACP,EAAE,yBAAyB,2CAY3B;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, 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] })] }));
10
+ function RankTierCardSkeleton({ showRankedRating = true, className, bodyClassName, footer, }) {
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] }), footer] }));
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;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"}
1
+ {"version":3,"file":"rank-tier-card-skeleton.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card-skeleton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAajC;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,EAC5B,gBAAgB,GAAG,IAAI,EACvB,SAAS,EACT,aAAa,EACb,MAAM,GACoB;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,EACN,MAAM,IACF,CACR,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from 'react';
1
2
  interface RankTierCardProps {
2
3
  /** Section header above the tier icon, e.g. `"E11 A2"`. */
3
4
  seasonTitle: string;
@@ -19,6 +20,8 @@ interface RankTierCardProps {
19
20
  className?: string;
20
21
  /** Extra classes merged onto the icon/name/rating body wrapper. */
21
22
  bodyClassName?: string;
23
+ /** Optional content rendered at the bottom of the tier column. */
24
+ footer?: ReactNode;
22
25
  }
23
26
  /**
24
27
  * Rank tier summary column — season label, tier icon, tier name, and RR,
@@ -27,7 +30,7 @@ interface RankTierCardProps {
27
30
  *
28
31
  * Data-free: the consumer resolves tier metadata.
29
32
  */
30
- declare function RankTierCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rrLabel, showRankedRating, isLoading, className, bodyClassName, }: RankTierCardProps): import("react/jsx-runtime").JSX.Element;
33
+ declare function RankTierCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rrLabel, showRankedRating, isLoading, className, bodyClassName, footer, }: RankTierCardProps): import("react/jsx-runtime").JSX.Element;
31
34
  export { RankTierCard };
32
35
  export type { RankTierCardProps };
33
36
  //# 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;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"}
1
+ {"version":3,"file":"rank-tier-card.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,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;IACvB,kEAAkE;IAClE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;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,EACb,MAAM,GACP,EAAE,iBAAiB,2CAiDnB;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, bodyClassName, }) {
19
+ function RankTierCard({ seasonTitle, tierIcon, tierName, tierColor, rankedRating, rrLabel = 'RR', showRankedRating = true, isLoading = false, className, bodyClassName, footer, }) {
20
20
  if (isLoading) {
21
- return (_jsx(RankTierCardSkeleton, { showRankedRating: showRankedRating, className: className, bodyClassName: bodyClassName }));
21
+ return (_jsx(RankTierCardSkeleton, { showRankedRating: showRankedRating, className: className, bodyClassName: bodyClassName, footer: footer }));
22
22
  }
23
23
  const color = normalizeHex(tierColor);
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] })] }));
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] }), footer] }));
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;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"}
1
+ {"version":3,"file":"rank-tier-card.js","sourceRoot":"","sources":["../../../src/components/blocks/rank-tier-card.tsx"],"names":[],"mappings":";AAEA,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;AA2BjC,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,EACb,MAAM,GACY;IAClB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,KAAC,oBAAoB,IACnB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,GACd,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,EACN,MAAM,IACF,CACR,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@valpro-labs/ui",
3
- "version": "1.11.4",
3
+ "version": "1.11.5",
4
4
  "description": "Cross-platform UI component library for Valpro Labs",
5
5
  "homepage": "https://github.com/valpro-labs/ui#readme",
6
6
  "bugs": {