local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Core_0 = l_Parent_1.Core;
local l_Parent_2 = l_Parent_1.Parent;
local v4 = require(l_Parent_2.Roact);
local v5 = require(l_Parent_2.t);
local v6 = require(l_Parent_1.UIBloxConfig);
local v7 = require(l_Core_0.Style.withStyle);
local v8 = require(l_Core_0.Control.Interactable);
local v9 = require(l_Core_0.Control.Enum.ControlState);
local v10 = require(l_Parent_1.App.Loading.LoadableImage);
local v11 = require(l_Parent_0.ImageSet.Images);
local v12 = require(l_Core_0.ImageSet.ImageSetComponent);
local v13 = require(l_Parent_1.App.Tile.ItemSplitTile.ItemSplitTileFooter);
local v14 = UDim.new(0, 8);
local v15 = UDim.new(0, 8);
local v16 = UDim.new(0, 12);
local v17 = 146 + (not v6.enableFontNameMapping and 84 or 87);
local v18 = v4.PureComponent:extend("ItemSplitTile");
v18.validateProps = v5.strictInterface({
    itemName = v5.optional(v5.string),
    priceText = v5.optional(v5.string),
    isOwned = v5.optional(v5.boolean),
    hasBackground = v5.optional(v5.boolean),
    isHovered = v5.optional(v5.boolean),
    onActivated = v5.optional(v5.callback),
    thumbnail = v5.optional(v5.string)
});
v18.defaultProps = {
    itemName = "--",
    priceText = "--",
    hasBackground = true,
    isHovered = false
};
v18.init = function(v19)
    v19:setState({
        controlState = v9.Initialize
    });
    v19.onStateChanged = function(_, v21)
        v19:setState({
            controlState = v21
        });
    end;
end;
v18.renderImageFrame = function(_, v23, v24, v25, v26)
    local l_Theme_0 = v26.Theme;
    local v28 = v25 or not v24;
    return v4.createElement("Frame", {
        Position = UDim2.fromScale(0, not v24 and 0 or 0.5),
        Size = UDim2.fromScale(1, not v25 and 0.5 or 1),
        ClipsDescendants = true,
        BackgroundTransparency = 1
    }, {
        Image = if not (typeof(v23) == "table") then v4.createElement(v10, {
            BackgroundColor3 = l_Theme_0.PlaceHolder.Color,
            BackgroundTransparency = 1,
            Image = v23,
            Position = UDim2.fromScale(0.5, not v24 and 1 or 0),
            Size = UDim2.fromScale(1, not v25 and 2 or 1),
            AnchorPoint = Vector2.new(0.5, not v25 and 0.5 or 1),
            cornerRadius = if not v28 then nil else v14,
            showFailedStateWhenLoadingFailed = true,
            useShimmerAnimationWhileLoading = true
        }) else v4.createElement(v12.Label, {
            BackgroundColor3 = l_Theme_0.PlaceHolder.Color,
            BackgroundTransparency = 1,
            Image = v23,
            Position = UDim2.fromScale(0, not v24 and 0 or -1),
            Size = UDim2.fromScale(1, not v25 and 2 or 1)
        }, {
            UICorner = if not v28 then nil else v4.createElement("UICorner", {
                CornerRadius = v14
            })
        })
    });
end;
v18.renderTopContent = function(v29, v30)
    local l_hasBackground_0 = v29.props.hasBackground;
    local l_isHovered_0 = v29.props.isHovered;
    local v33 = not l_hasBackground_0;
    local l_Theme_1 = v30.Theme;
    local v35 = v11[l_Theme_1.ItemBackgroundDefault.Image];
    return v4.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        SizeConstraint = Enum.SizeConstraint.RelativeXX,
        ZIndex = 2
    }, {
        BackgroundImage = if not v29.props.thumbnail then nil else v4.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            TopImageFrame = v29:renderImageFrame(v35, false, v33, v30),
            BottomImageFrame = if v33 then nil else v29:renderImageFrame(v35, true, false, v30)
        }),
        ItemImage = v4.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            TopImageFrame = v29:renderImageFrame(v29.props.thumbnail, false, v33, v30),
            BottomImageFrame = if v33 then nil else v29:renderImageFrame(v29.props.thumbnail, true, false, v30)
        }),
        HoverShadow = if not l_isHovered_0 or l_hasBackground_0 then nil else v4.createElement(v12.Label, {
            ZIndex = 0,
            Position = UDim2.new(0.5, 0, 0.5, 2),
            AnchorPoint = Vector2.new(0.5, 0.5),
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, 12),
            Image = v11["component_assets/dropshadow_24_6"],
            ImageColor3 = l_Theme_1.DropShadow.Color,
            ImageTransparency = l_Theme_1.DropShadow.Transparency,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(18, 18, 18, 18)
        })
    });
end;
v18.renderBottomContent = function(v36, v37)
    local l_itemName_0 = v36.props.itemName;
    local l_hasBackground_1 = v36.props.hasBackground;
    local l_Font_0 = v37.Font;
    local v41 = math.ceil(v37.Font.BaseSize * v37.Font.Header2.RelativeSize);
    local l_Theme_2 = v37.Theme;
    local v43 = if (v36.props.isHovered or v36.state.controlState == v9.Pressed) and l_hasBackground_1 then v16 else v15;
    local v44 = (v41 * 3 + v15.Offset) + v43.Offset * 2;
    local v45 = if not v6.useNewThemeColorPalettes then l_Theme_2.TextEmphasis else l_Theme_2.TextDefault;
    return v4.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, v44),
        BackgroundTransparency = 1,
        LayoutOrder = 2
    }, {
        UIListLayout = v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = v15
        }),
        Padding = v4.createElement("UIPadding", {
            PaddingLeft = if not l_hasBackground_1 then nil else v43,
            PaddingRight = if not l_hasBackground_1 then nil else v43,
            PaddingTop = if not l_hasBackground_1 then v15 else v43,
            PaddingBottom = if not l_hasBackground_1 then v15 else v43
        }),
        TitleArea = if not not l_itemName_0 and string.len(l_itemName_0) > 0 then v4.createElement("TextLabel", {
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            Text = l_itemName_0,
            Font = l_Font_0.Header2.Font,
            TextSize = v41,
            TextTransparency = v45.Transparency,
            TextColor3 = v45.Color,
            TextWrapped = true,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            LayoutOrder = 1
        }, {
            UISizeConstraint = v4.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(math.huge, v41 * 2)
            })
        }) else nil,
        Footer = v4.createElement(v13, {
            priceText = v36.props.priceText,
            isOwned = v36.props.isOwned,
            layoutOrder = 2
        })
    });
end;
v18.renderTileContent = function(v46, v47)
    local l_hasBackground_2 = v46.props.hasBackground;
    local l_onActivated_0 = v46.props.onActivated;
    local l_Theme_3 = v47.Theme;
    return v4.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundColor3 = if not l_hasBackground_2 then nil else l_Theme_3.BackgroundUIDefault.Color,
        BackgroundTransparency = not l_hasBackground_2 and 1 or l_Theme_3.BackgroundUIDefault.Transparency,
        ClipsDescendants = true,
        ZIndex = 1
    }, {
        UICorner = v4.createElement("UICorner", {
            CornerRadius = v14
        }),
        Panel = v4.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            UIListLayout = v4.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            TopContentPlaceholder = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                SizeConstraint = Enum.SizeConstraint.RelativeXX,
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }),
            BottomContent = v46:renderBottomContent(v47)
        }),
        TopContent = v46:renderTopContent(v47),
        TileOverlay = v4.createElement(v8, {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            onStateChanged = v46.onStateChanged,
            [v4.Event.Activated] = l_onActivated_0,
            ZIndex = 3
        }, {
            UICorner = v4.createElement("UICorner", {
                CornerRadius = v14
            }),
            BorderFrame = v4.createElement("Frame", {
                Size = UDim2.new(1, -2, 1, -2),
                Position = UDim2.fromOffset(1, 1),
                BackgroundTransparency = 1,
                SizeConstraint = if l_hasBackground_2 then nil else Enum.SizeConstraint.RelativeXX
            }, {
                UIStroke = v4.createElement("UIStroke", {
                    Color = l_Theme_3.Divider.Color,
                    Transparency = l_Theme_3.Divider.Transparency,
                    Thickness = 1
                }),
                UICorner = v4.createElement("UICorner", {
                    CornerRadius = v14
                })
            })
        })
    });
end;
v18.render = function(v51)
    local l_hasBackground_3 = v51.props.hasBackground;
    local l_isHovered_1 = v51.props.isHovered;
    return v7(function(v54)
        local l_Theme_4 = v54.Theme;
        return v4.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            UISizeConstraint = v4.createElement("UISizeConstraint", {
                MinSize = Vector2.new(146, v17)
            }),
            TileContent = v51:renderTileContent(v54),
            HoverShadow = if not not l_isHovered_1 and l_hasBackground_3 then v4.createElement(v12.Label, {
                ZIndex = 0,
                Position = UDim2.new(0.5, 0, 0.5, 2),
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 10, 1, 12),
                Image = v11["component_assets/dropshadow_24_6"],
                ImageColor3 = l_Theme_4.DropShadow.Color,
                ImageTransparency = l_Theme_4.DropShadow.Transparency,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(18, 18, 18, 18)
            }) else nil
        });
    end);
end;
return v18;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.Roact);
local v4 = require(l_Parent_2.t);
local v5 = require(l_Parent_1.Core.Style.withStyle);
local v6 = require(l_Parent_1.App.ImageSet.Images);
local v7 = require(l_Parent_1.App.Loading.ShimmerPanel);
local v8 = require(l_Parent_1.Core.ImageSet.ImageSetComponent);
local v9 = require(l_Parent_0.ImageSet.Enum.IconSize);
local v10 = require(l_Parent_0.ImageSet.getIconSizeUDim2);
local v11 = v3.PureComponent:extend("ItemSplitTileFooter");
v11.validateProps = v4.strictInterface({
    priceText = v4.optional(v4.string),
    isOwned = v4.optional(v4.boolean),
    layoutOrder = v4.optional(v4.number)
});
v11.render = function(v12)
    local l_priceText_0 = v12.props.priceText;
    local l_isOwned_0 = v12.props.isOwned;
    local v15 = if not l_isOwned_0 then v6["icons/common/robux_small"] else v6["icons/status/item/owned"];
    return v5(function(v16)
        local l_Font_0 = v16.Font.Body.Font;
        local v18 = v16.Font.BaseSize * v16.Font.Body.RelativeSize;
        local l_Theme_0 = v16.Theme;
        local v20 = l_priceText_0 and ((not not l_priceText_0 and tonumber(l_priceText_0:sub(1, 1)) or l_priceText_0 == "--") or l_isOwned_0);
        local v21 = v10(v9.Small);
        local v22 = not v20 and 0 or v21.Width.Offset + 4;
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, v18),
            BackgroundTransparency = 1,
            LayoutOrder = v12.props.layoutOrder
        }, {
            Shimmer = if l_priceText_0 then nil else v3.createElement(v7, {
                Size = UDim2.new(0.8, 0, 0, v18)
            }),
            Icon = v20 and v3.createElement(v8.Label, {
                BackgroundTransparency = 1,
                Image = v15,
                ImageColor3 = l_Theme_0.TextMuted.Color,
                ImageTransparency = l_Theme_0.TextMuted.Transparency,
                Size = v21,
                Position = UDim2.new(0, 0, 0.5, 0),
                AnchorPoint = Vector2.new(0, 0.5)
            }),
            TextLabel = l_priceText_0 and v3.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Position = UDim2.new(0, v22, 0, 0),
                Size = UDim2.new(1, -v22, 1, 0),
                Font = l_Font_0,
                TextColor3 = l_Theme_0.TextMuted.Color,
                TextTransparency = l_Theme_0.TextMuted.Transparency,
                TextSize = v18,
                Text = l_priceText_0,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Center
            })
        });
    end);
end;
return v11;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.Roact);
local v4 = require(l_Parent_2.t);
local v5 = require(l_Parent_1.Core.Style.withStyle);
local v6 = require(l_Parent_1.App.ImageSet.Images);
local v7 = require(l_Parent_1.Core.ImageSet.ImageSetComponent);
local v8 = require(l_Parent_0.Enum.ItemTileEnums);
local v9 = v3.PureComponent:extend("ItemIcon");
local v10 = {
    [v8.ItemIconType.AnimationBundle] = v6["icons/status/item/bundle"],
    [v8.ItemIconType.Bundle] = v6["icons/status/item/bundle"],
    [v8.ItemIconType.DynamicHead] = v6["icons/status/dynamicHead_small"]
};
v9.validateProps = v4.strictInterface({
    itemIconType = v4.intersection(v8.ItemIconType.isEnumValue, function(v11)
        if not v10[v11] then
            return false, "Unknown ItemType " .. v11;
        else
            return true;
        end;
    end)
});
v9.render = function(v12)
    local v13 = v10[v12.props.itemIconType];
    local v14 = v13.ImageRectSize / v6.ImagesResolutionScale;
    return v5(function(v15)
        local l_Theme_0 = v15.Theme;
        return v3.createElement(v7.Label, {
            AnchorPoint = Vector2.new(1, 1),
            BackgroundTransparency = 1,
            Image = v13,
            ImageColor3 = l_Theme_0.IconEmphasis.Color,
            ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
            Position = UDim2.new(1, -12, 1, -12),
            Size = UDim2.new(0, v14.X, 0, v14.Y)
        });
    end);
end;
return v9;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.Roact);
local v4 = require(l_Parent_2.t);
local v5 = require(l_Parent_1.Core.Style.withStyle);
local v6 = require(l_Parent_1.Core.Text.GetTextSize);
local v7 = require(l_Parent_1.App.ImageSet.Images);
local v8 = require(l_Parent_1.Core.ImageSet.ImageSetComponent);
local v9 = require(l_Parent_0.Enum.ItemTileEnums);
local v10 = v3.PureComponent:extend("ItemRestrictionStatus");
local v11 = Vector2.new(50, 20);
local v12 = Vector2.new(8, 8);
v10.validateProps = v4.strictInterface({
    restrictionTypes = v4.map(v9.Restriction.isEnumValue, v4.boolean),
    restrictionInfo = v4.optional(v4.table)
});
local function _(v13, v14)
    local v15 = "";
    if v13[v9.Restriction.LimitedUnique] then
        v15 = "#";
    end;
    if not v13[v9.Restriction.Collectible] then
        if not (not v14 or not v14.limitedSerialNumber) then
            v15 = v15 .. " " .. v14.limitedSerialNumber;
        end;
        return v15;
    else
        return "#";
    end;
end;
local function _(v17)
    if not v17[v9.Restriction.Collectible] then
        if not v17[v9.Restriction.Limited] and not v17[v9.Restriction.LimitedUnique] then
            return nil;
        else
            return v7["icons/status/item/limited"];
        end;
    else
        return v7["icons/status/item/limited"];
    end;
end;
v10.render = function(v19)
    return v5(function(v20)
        local l_Theme_0 = v20.Theme;
        local l_Font_0 = v20.Font;
        local l_restrictionInfo_0 = v19.props.restrictionInfo;
        local l_restrictionTypes_0 = v19.props.restrictionTypes;
        local v25 = "";
        if l_restrictionTypes_0[v9.Restriction.LimitedUnique] then
            v25 = "#";
        end;
        local v26;
        if not l_restrictionTypes_0[v9.Restriction.Collectible] then
            if not (not l_restrictionInfo_0 or not l_restrictionInfo_0.limitedSerialNumber) then
                v25 = v25 .. " " .. l_restrictionInfo_0.limitedSerialNumber;
            end;
            v26 = v25;
        else
            v26 = "#";
        end;
        v25 = l_Font_0.CaptionHeader.Font;
        local v27 = l_Font_0.BaseSize * l_Font_0.CaptionHeader.RelativeSize;
        local v28 = v6(v26, v27, v25, v11);
        local v29 = if not l_restrictionTypes_0[v9.Restriction.Collectible] then if l_restrictionTypes_0[v9.Restriction.Limited] or l_restrictionTypes_0[v9.Restriction.LimitedUnique] then v7["icons/status/item/limited"] else nil else v7["icons/status/item/limited"];
        local v30 = not not v29 and v29.ImageRectSize / v7.ImagesResolutionScale or Vector2.new(0, 0);
        return v3.createElement(v8.Label, {
            AnchorPoint = Vector2.new(0, 1),
            BackgroundTransparency = 1,
            Image = v7["component_assets/circle_17"],
            ImageColor3 = l_Theme_0.UIDefault.Color,
            ImageTransparency = l_Theme_0.UIDefault.Transparency,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(8, 8, 9, 9),
            Position = UDim2.new(0, 12, 1, -12),
            Size = UDim2.new(0, (v30.X + v28.X) + v12.X, 0, math.max(v30.Y, v28.Y) + v12.Y)
        }, {
            Icon = v29 and v3.createElement(v8.Label, {
                AnchorPoint = Vector2.new(0, 0.5),
                BackgroundTransparency = 1,
                Image = v29,
                ImageColor3 = l_Theme_0.IconEmphasis.Color,
                ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
                Position = UDim2.new(0, v12.X / 2, 0.5, 0),
                Size = UDim2.new(0, v30.X, 0, v30.Y)
            }),
            Text = v3.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Font = v25,
                TextSize = v27,
                Text = v26,
                TextColor3 = l_Theme_0.TextMuted.Color,
                TextTransparency = l_Theme_0.TextMuted.TextTransparency,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Center,
                TextYAlignment = Enum.TextYAlignment.Center,
                Position = UDim2.new(0, v30.X, 0, 0),
                Size = UDim2.new(0, v28.X + 10, 1, 0)
            })
        });
    end);
end;
return v10;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.Roact);
local v3 = require(l_Parent_1.t);
local v4 = require(l_Parent_0.Core.Style.withStyle);
local v5 = require(l_Parent_0.App.ImageSet.Images);
local v6 = require(l_Parent_0.App.Loading.ShimmerPanel);
local v7 = require(l_Parent_0.Core.ImageSet.ImageSetComponent);
local v8 = v2.PureComponent:extend("ItemTileFooter");
v8.validateProps = v3.strictInterface({
    priceText = v3.optional(v3.string),
    isOwned = v3.optional(v3.boolean)
});
v8.render = function(v9)
    local l_priceText_0 = v9.props.priceText;
    local l_isOwned_0 = v9.props.isOwned;
    local v12 = v5["icons/common/robux_small"];
    if l_isOwned_0 then
        v12 = v5["icons/status/item/owned"];
    end;
    return v4(function(v13)
        local l_Font_0 = v13.Font.SubHeader1.Font;
        local v15 = v13.Font.BaseSize * v13.Font.SubHeader1.RelativeSize;
        local l_Theme_0 = v13.Theme;
        local v17 = v12.ImageRectSize / v5.ImagesResolutionScale;
        local v18 = l_priceText_0 and (l_priceText_0 and tonumber(l_priceText_0:sub(1, 1)) or l_isOwned_0);
        local v19 = 0;
        if v18 then
            v19 = v17.X + 4;
        end;
        return v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            Shimmer = not l_priceText_0 and v2.createElement(v6, {
                Size = UDim2.new(0.8, 0, 0, v15)
            }),
            icon = v18 and v2.createElement(v7.Label, {
                BackgroundTransparency = 1,
                Image = v12,
                ImageColor3 = l_Theme_0.IconEmphasis.Color,
                ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
                Size = UDim2.new(0, v17.X, 0, v17.Y)
            }),
            TextLabel = l_priceText_0 and v2.createElement("TextLabel", {
                AnchorPoint = Vector2.new(1, 0),
                BackgroundTransparency = 1,
                Position = UDim2.new(1, 0, 0, 0),
                Size = UDim2.new(1, -v19, 1, 0),
                Font = l_Font_0,
                TextColor3 = l_Theme_0.SecondaryContent.Color,
                TextTransparency = l_Theme_0.SecondaryContent.Transparency,
                TextSize = v15,
                Text = l_priceText_0,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top
            })
        });
    end);
end;
return v8;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.Roact);
local v4 = require(l_Parent_2.t);
local v5 = require(l_Parent_1.Core.Style.withStyle);
local v6 = require(l_Parent_1.Core.Text.GetTextSize);
local v7 = require(l_Parent_1.App.ImageSet.Images);
local v8 = require(l_Parent_1.Core.ImageSet.ImageSetComponent);
local v9 = require(l_Parent_0.Enum.ItemTileEnums);
local v10 = v3.PureComponent:extend("ItemTileStatus");
local v11 = Vector2.new(50, 20);
local v12 = Vector2.new(10, 6);
v10.validateProps = v4.strictInterface({
    statusText = v4.string,
    statusStyle = v9.StatusStyle.isEnumValue
});
local function v15(v13, v14)
    if v14 == v9.StatusStyle.Info then
        return {
            Background = v13.SystemPrimaryDefault,
            Text = v13.SystemPrimaryContent
        };
    elseif v14 == v9.StatusStyle.Alert then
        return {
            Background = v13.Alert,
            Text = v13.TextEmphasis
        };
    else
        return {
            Background = v13.SystemPrimaryDefault,
            Text = v13.SystemPrimaryContent
        };
    end;
end;
v10.render = function(v16)
    return v5(function(v17)
        local l_Theme_0 = v17.Theme;
        local l_Font_0 = v17.Font;
        local l_statusText_0 = v16.props.statusText;
        local l_statusStyle_0 = v16.props.statusStyle;
        local l_Font_1 = l_Font_0.CaptionHeader.Font;
        local v23 = l_Font_0.BaseSize * l_Font_0.CaptionHeader.RelativeSize;
        local v24 = v6(l_statusText_0, v23, l_Font_1, v11);
        local v25 = v15(l_Theme_0, l_statusStyle_0);
        return v3.createElement(v8.Label, {
            BackgroundTransparency = 1,
            Image = v7["component_assets/circle_17"],
            ImageColor3 = v25.Background.Color,
            ImageTransparency = v25.Background.Transparency,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(8, 8, 9, 9),
            Position = UDim2.new(0, 12, 0, 12),
            Size = UDim2.new(0, v24.X + v12.X, 0, v24.Y + v12.Y)
        }, {
            Text = v3.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Font = l_Font_1,
                TextSize = v23,
                Text = l_statusText_0,
                TextColor3 = v25.Text.Color,
                TextTransparency = v25.Text.TextTransparency,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Center,
                TextYAlignment = Enum.TextYAlignment.Center,
                Size = UDim2.new(1, 0, 1, 0)
            })
        });
    end);
end;
return v10;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Core_0 = l_Parent_1.Core;
local l_Parent_2 = l_Parent_1.Parent;
local v4 = require(l_Parent_2.Otter);
local v5 = require(l_Parent_2.Roact);
local v6 = require(l_Parent_2.t);
local v7 = require(l_Parent_0.Indicator.Badge);
local v8 = require(l_Parent_0.Indicator.Enum.BadgeStates);
local v9 = require(l_Parent_0.ImageSet.Enum.IconSize);
local v10 = require(l_Parent_0.ImageSet.getIconSize);
local v11 = require(l_Parent_0.SelectionImage.withSelectionCursorProvider);
local v12 = require(l_Parent_0.SelectionImage.CursorKind);
local v13 = require(l_Core_0.Control.Enum.ControlState);
local v14 = require(l_Core_0.Control.Interactable);
local v15 = require(l_Core_0.ImageSet.ImageSetComponent);
local v16 = require(l_Core_0.ImageSet.Validator.validateImage);
local v17 = require(l_Parent_1.Core.Style.Validator.validateColorInfo);
local v18 = require(l_Parent_1.Core.Style.Validator.validateFontInfo);
local v19 = require(l_Parent_1.Core.Style.Validator.validateTypographyInfo);
local v20 = require(l_Parent_1.Core.Style.withStyle);
local v21 = require(l_Parent_1.Utility.divideTransparency);
local v22 = require(l_Parent_0.SelectionCursor.withCursor);
local v23 = require(l_Parent_0.SelectionCursor.CursorType);
local v24 = require(l_Parent_1.UIBloxConfig);
local v25 = require(l_Parent_1.Core.Text.GetTextSize);
local v26 = UDim.new(0, 12);
local v27 = UDim.new(0, 8);
local v28 = {
    frequency = 6,
    dampingRatio = 1
};
local v29 = {
    BACKGROUND = 1,
    HOVER_MASK = 2,
    ICON_AND_TITLE_CONTAINER = 3,
    BADGE_CONTAINER = 4,
    ROUNDED_CORNERS_MASK = 5
};
local v30 = {
    ICON = 1,
    TITLE = 2
};
local v31 = v5.Component:extend("MenuTile");
v31.defaultProps = {
    size = UDim2.fromScale(1, 1),
    styleProps = {}
};
v31.validateProps = v6.strictInterface({
    size = v6.optional(v6.UDim2),
    position = v6.optional(v6.UDim2),
    layoutOrder = v6.optional(v6.number),
    badgeValue = v6.optional(v6.union(v6.string, v6.number, v8.isEnumValue)),
    icon = v6.optional(v16),
    title = v6.string,
    onActivated = v6.callback,
    styleProps = v6.optional(v6.strictInterface({
        iconStyle = v6.optional(v17),
        iconSize = v6.optional(v9.isEnumValue),
        titleStyle = v6.optional(v17),
        titleFont = v6.optional(v6.union(v18, v19))
    }))
});
local function v36(v32)
    return v20(function(v33)
        return v11(function(v34)
            if not v24.migrateToNewSelectionCursor then
                return v32(v33, v34);
            else
                return v22(function(v35)
                    return v32(v33, v34, (v35.getCursorByType(v23.RoundedRect)));
                end);
            end;
        end);
    end);
end;
local function v40(v37, v38)
    local l_Theme_0 = v38.Theme;
    return {
        iconStyle = v37.iconStyle or l_Theme_0.IconDefault,
        iconSize = if not v37.iconSize then v10(v9.Large) else v10(v37.iconSize, v38),
        titleStyle = v37.titleStyle or l_Theme_0.TextDefault,
        titleFont = v37.titleFont or v38.Font.SubHeader1
    };
end;
v31.init = function(v41)
    local v42, v43 = v5.createBinding(1);
    v41.hoverTransparency = v42;
    v41.updateHoverTransparency = v43;
    v41.hoverTransparencyMotor = v4.createSingleMotor(1);
    v41.hoverTransparencyMotor:onStep(v41.updateHoverTransparency);
    v41.hoverTransparencyMotor:onComplete(function(v44)
        if v44 == 1 then
            v41:setState({
                showHoverMask = false
            });
        end;
    end);
    v41:setState({
        backgroundTransparency = 0,
        iconTransparency = 0,
        titleTransparency = 0,
        showHoverMask = false
    });
end;
v31.render = function(v45)
    local l_backgroundTransparency_0 = v45.state.backgroundTransparency;
    local l_iconTransparency_0 = v45.state.iconTransparency;
    local l_titleTransparency_0 = v45.state.titleTransparency;
    local l_badgeValue_0 = v45.props.badgeValue;
    local l_icon_0 = v45.props.icon;
    local l_layoutOrder_0 = v45.props.layoutOrder;
    local l_onActivated_0 = v45.props.onActivated;
    local l_position_0 = v45.props.position;
    local l_size_0 = v45.props.size;
    local l_title_0 = v45.props.title;
    return v36(function(v56, v57, v58)
        local l_Theme_1 = v56.Theme;
        local v60 = v40(v45.props.styleProps, v56);
        local l_BackgroundUIDefault_0 = l_Theme_1.BackgroundUIDefault;
        local l_BackgroundOnHover_0 = l_Theme_1.BackgroundOnHover;
        local l_iconStyle_0 = v60.iconStyle;
        local l_iconSize_0 = v60.iconSize;
        local l_titleStyle_0 = v60.titleStyle;
        local l_titleFont_0 = v60.titleFont;
        local v67 = if not l_titleFont_0.RelativeSize then l_titleFont_0.FontSize else l_titleFont_0.RelativeSize * v56.Font.BaseSize;
        local l_Y_0 = v25(l_title_0, v67, l_titleFont_0.Font, Vector2.new(100, v67)).Y;
        return v5.createElement(v14, {
            Size = l_size_0,
            Position = l_position_0,
            BackgroundTransparency = 1,
            SelectionImageObject = if not v24.migrateToNewSelectionCursor then v57(v12.RoundedRect) else v58,
            LayoutOrder = l_layoutOrder_0,
            onStateChanged = function(_, v70)
                if v70 == v13.Hover then
                    v45:setState({
                        backgroundTransparency = l_BackgroundUIDefault_0.Transparency,
                        iconTransparency = l_iconStyle_0.Transparency,
                        titleTransparency = l_titleStyle_0.Transparency,
                        showHoverMask = true
                    });
                    v45.hoverTransparencyMotor:setGoal(v4.spring(l_BackgroundOnHover_0.Transparency, v28));
                    return ;
                elseif v70 == v13.Default then
                    v45:setState({
                        backgroundTransparency = l_BackgroundUIDefault_0.Transparency,
                        iconTransparency = l_iconStyle_0.Transparency,
                        titleTransparency = l_titleStyle_0.Transparency
                    });
                    v45.hoverTransparencyMotor:setGoal(v4.spring(1, v28));
                    return ;
                else
                    if v70 == v13.Pressed then
                        v45:setState({
                            backgroundTransparency = v21(l_BackgroundUIDefault_0.Transparency, 2),
                            iconTransparency = v21(l_iconStyle_0.Transparency, 2),
                            titleTransparency = v21(l_titleStyle_0.Transparency, 2),
                            showHoverMask = false
                        });
                        v45.hoverTransparencyMotor:setGoal(v4.instant(1));
                    end;
                    return ;
                end;
            end,
            [v5.Event.Activated] = l_onActivated_0
        }, {
            MenuTileFrame = v5.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = l_size_0
            }, {
                Background = v5.createElement("Frame", {
                    BackgroundColor3 = l_BackgroundUIDefault_0.Color,
                    BackgroundTransparency = l_backgroundTransparency_0,
                    BorderSizePixel = 0,
                    Size = UDim2.fromScale(1, 1),
                    ZIndex = v29.BACKGROUND
                }, {
                    RoundedCornerUI = v5.createElement("UICorner", {
                        CornerRadius = UDim.new(0, 8)
                    })
                }),
                HoverMask = v45.state.showHoverMask and v5.createElement("Frame", {
                    BackgroundColor3 = l_BackgroundOnHover_0.Color,
                    BackgroundTransparency = v45.hoverTransparency,
                    BorderSizePixel = 0,
                    Size = UDim2.fromScale(1, 1),
                    ZIndex = v29.HOVER_MASK
                }, {
                    RoundedCornerUI = v5.createElement("UICorner", {
                        CornerRadius = UDim.new(0, 8)
                    })
                }),
                IconAndTitleContainer = v5.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.fromScale(1, 1),
                    ZIndex = v29.ICON_AND_TITLE_CONTAINER
                }, {
                    IconAndTitleUIListLayout = v5.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Vertical,
                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                        Padding = v26,
                        VerticalAlignment = Enum.VerticalAlignment.Center
                    }),
                    IconAndTitleUIPadding = v5.createElement("UIPadding", {
                        PaddingBottom = v27,
                        PaddingLeft = v27,
                        PaddingRight = v27,
                        PaddingTop = v27 + UDim.new(0, l_Y_0)
                    }),
                    Icon = l_icon_0 and v5.createElement(v15.Label, {
                        BackgroundTransparency = 1,
                        Image = l_icon_0,
                        ImageColor3 = l_iconStyle_0.Color,
                        ImageTransparency = l_iconTransparency_0,
                        LayoutOrder = v30.ICON,
                        Size = UDim2.fromOffset(l_iconSize_0, l_iconSize_0)
                    }),
                    Title = l_title_0 and v5.createElement("TextLabel", {
                        BackgroundTransparency = 1,
                        Font = l_titleFont_0.Font,
                        LayoutOrder = v30.TITLE,
                        Size = UDim2.new(1, 0, 0, l_Y_0 * 2),
                        Text = l_title_0,
                        TextColor3 = l_titleStyle_0.Color,
                        TextSize = v67,
                        TextTransparency = l_titleTransparency_0,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        TextWrapped = true,
                        TextYAlignment = Enum.TextYAlignment.Top
                    })
                }),
                BadgeContainer = l_badgeValue_0 and v5.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.fromScale(1, 1),
                    ZIndex = v29.BADGE_CONTAINER
                }, {
                    BadgeUIListLayout = v5.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Vertical,
                        HorizontalAlignment = Enum.HorizontalAlignment.Right,
                        Padding = v26,
                        VerticalAlignment = Enum.VerticalAlignment.Top
                    }),
                    BadgeUIPadding = v5.createElement("UIPadding", {
                        PaddingBottom = v27,
                        PaddingLeft = v27,
                        PaddingRight = v27,
                        PaddingTop = v27
                    }),
                    Badge = v5.createElement(v7, {
                        value = l_badgeValue_0
                    })
                })
            })
        });
    end);
end;
v31.willUnmount = function(v71)
    if v71.hoverTransparencyMotor then
        v71.hoverTransparencyMotor:destroy();
    end;
end;
return v31;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("App");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_Core_0 = l_Parent_0.Core;
local l_Parent_1 = l_Parent_0.Parent;
local v4 = require(l_Parent_1.t);
local v5 = require(l_Parent_1.Roact);
local v6 = require(l_script_FirstAncestor_0.Button.Button);
local v7 = require(l_script_FirstAncestor_0.Button.Enum.ButtonType);
local v8 = require(l_Core_0.Control.Enum.ControlState);
local v9 = v5.PureComponent:extend("PlayerTileButton");
v9.validateProps = v4.strictInterface({
    buttonHeight = v4.optional(v4.number),
    buttonWidth = v4.optional(v4.number),
    outerButtonPadding = v4.optional(v4.number),
    icon = v4.union(v4.string, v4.table),
    onActivated = v4.optional(v4.callback),
    isSecondary = v4.optional(v4.boolean),
    isDisabled = v4.optional(v4.boolean),
    tileSize = v4.optional(v4.UDim2),
    mouseEnter = v4.optional(v4.callback),
    mouseLeave = v4.optional(v4.callback)
});
v9.defaultProps = {
    isSecondary = false,
    isDisabled = false,
    buttonHeight = 36,
    outerButtonPadding = 10,
    tileSize = UDim2.new(0, 150, 0, 150)
};
v9.render = function(v10)
    return v5.createElement(v6, {
        buttonType = not not v10.props.isSecondary and v7.Secondary or v7.PrimarySystem,
        automaticSize = Enum.AutomaticSize.XY,
        position = UDim2.new(1, 0, 1, 0),
        size = UDim2.new(0, v10.props.tileSize.X.Offset / 2 - v10.props.outerButtonPadding * 1.5, 0, v10.props.buttonHeight),
        anchorPoint = Vector2.new(1, 1),
        onActivated = v10.props.onActivated or function()
        end,
        isDisabled = v10.props.isDisabled,
        icon = v10.props.icon,
        onStateChanged = function(v11, v12)
            if v11 == v8.Hover then
                v10.props.mouseEnter();
                return ;
            else
                if v12 == v8.Hover then
                    v10.props.mouseLeave();
                end;
                return ;
            end;
        end
    });
end;
return v9;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.Roact);
local v4 = require(l_Parent_2.Cryo);
local v5 = require(l_Parent_2.t);
local v6 = require(l_Parent_1.UIBloxConfig);
local v7 = require(l_Parent_1.App.ImageSet.Images);
local v8 = require(l_Parent_0.BaseTile.Tile);
local v9 = require(l_Parent_1.Core.Style.withStyle);
local v10 = v3.PureComponent:extend("SaveTile");
v10.validateProps = v5.strictInterface({
    hasRoundedCorners = v5.optional(v5.boolean),
    onActivated = v5.optional(v5.callback),
    isDisabled = v5.optional(v5.boolean),
    thumbnail = v5.optional(v5.union(v5.string, v5.table)),
    thumbnailSize = v5.optional(v5.UDim2),
    thumbnailColor = v5.optional(v5.Color3),
    thumbnailTransparency = v5.optional(v5.number),
    NextSelectionLeft = v5.optional(v5.table),
    NextSelectionRight = v5.optional(v5.table),
    NextSelectionUp = v5.optional(v5.table),
    NextSelectionDown = v5.optional(v5.table),
    thumbnailRef = v5.optional(v5.table)
});
v10.defaultProps = {
    hasRoundedCorners = true,
    thumbnail = v7["icons/actions/edit/add"],
    thumbnailSize = UDim2.new(0, 36, 0, 36),
    thumbnailTransparency = 0
};
v10.renderWithStyleProvider = function(v11, v12)
    return v3.createElement(v8, {
        hasRoundedCorners = v11.props.hasRoundedCorners,
        name = "",
        onActivated = v11.props.onActivated,
        isDisabled = v11.props.isDisabled,
        thumbnail = v11.props.thumbnail,
        thumbnailSize = v11.props.thumbnailSize,
        thumbnailColor = v11.props.thumbnailColor or v12.Theme.IconDefault.Color,
        thumbnailTransparency = v11.props.thumbnailTransparency,
        NextSelectionLeft = v11.props.NextSelectionLeft,
        NextSelectionRight = v11.props.NextSelectionRight,
        NextSelectionUp = v11.props.NextSelectionUp,
        NextSelectionDown = v11.props.NextSelectionDown,
        [v3.Ref] = v11.props.thumbnailRef
    });
end;
v10.render = function(v13)
    if not v6.useNewThemeColorPalettes then
        return v3.createElement(v8, {
            hasRoundedCorners = v13.props.hasRoundedCorners,
            name = "",
            onActivated = v13.props.onActivated,
            isDisabled = v13.props.isDisabled,
            thumbnail = v13.props.thumbnail,
            thumbnailSize = v13.props.thumbnailSize,
            thumbnailTransparency = v13.props.thumbnailTransparency,
            NextSelectionLeft = v13.props.NextSelectionLeft,
            NextSelectionRight = v13.props.NextSelectionRight,
            NextSelectionUp = v13.props.NextSelectionUp,
            NextSelectionDown = v13.props.NextSelectionDown,
            [v3.Ref] = v13.props.thumbnailRef
        });
    else
        return v9(function(v14)
            return v13:renderWithStyleProvider(v14);
        end);
    end;
end;
return v3.forwardRef(function(v15, v16)
    return v3.createElement(v10, v4.Dictionary.join(v15, {
        thumbnailRef = v16
    }));
end);


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local l_Core_0 = l_Parent_3.Core;
local l_Parent_4 = l_Parent_3.Parent;
local v6 = require(l_Parent_4.Cryo);
local v7 = require(l_Parent_4.React);
local v8 = require(l_Parent_4.Roact);
local v9 = require(l_Parent_3.Utility.getControlStateColor);
local v10 = require(l_Parent_3.UIBloxConfig);
local v11 = require(l_Core_0.Style.useStyle);
local v12 = require(l_Core_0.Control.Interactable);
local v13 = require(l_Core_0.Control.useControlState);
local _ = require(l_Parent_2.Style.StyleTypes);
local _ = require(l_Parent_2.Style.Fonts);
local v16 = require(l_Parent_2.SelectionImage.useSelectionCursor);
local v17 = require(l_Parent_2.SelectionImage.CursorKind);
local v18 = require(l_Parent_2.SelectionCursor.useCursor);
local v19 = require(l_Core_0.ImageSet.ImageSetComponent);
local v20 = require(l_Core_0.Text.GenericTextLabel.GenericTextLabel);
local _ = require(l_Parent_2.ImageSet.ImagesTypes);
local v22 = require(l_Parent_0.Constants);
local v23 = require(l_Parent_1.VerticalTile.VerticalTile);
local v24 = {
    isHoverEnabled = false
};
local function v29(v25, v26, v27, v28)
    return v7.createElement(v25, v27, {
        Padding = v7.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v26.Left),
            PaddingRight = UDim.new(0, v26.Right),
            PaddingTop = UDim.new(0, v26.Top),
            PaddingBottom = UDim.new(0, v26.Bottom)
        }),
        Content = v8.createFragment(v28)
    });
end;
return function(v30)
    local v31 = v11();
    local v32 = v6.Dictionary.join(v22.getDefaultStyleProps(v31), v30.styleProps or {});
    local l_backgroundColor_0 = v32.backgroundColor;
    local l_border_0 = v32.border;
    local l_dropShadow_0 = v32.dropShadow;
    local l_topContentPadding_0 = v32.topContentPadding;
    local l_overlayColors_0 = v32.overlayColors;
    local l_selectionCursorPadding_0 = v32.selectionCursorPadding;
    local l_contentGap_0 = v32.contentGap;
    local l_titleFont_0 = v32.titleFont;
    local l_iconSize_0 = v32.iconSize;
    local l_iconImageColor_0 = v32.iconImageColor;
    local l_titleTextColor_0 = v32.titleTextColor;
    v30 = v6.Dictionary.join(v24, v30);
    local v44 = nil;
    if v30.title then
        v44 = l_titleFont_0.RelativeSize * v31.Font.BaseSize;
    end;
    local v46 = v7.useCallback(function(_)
        return v29("Frame", l_topContentPadding_0, {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            Content = v7.createElement("Frame", {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.new(1, 0, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                ClipsDescendants = true,
                BackgroundTransparency = 1
            }, {
                v7.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, l_contentGap_0)
                });
                Icon = if not v30.icon then nil else v7.createElement(v19.Label, {
                    Size = UDim2.fromOffset(l_iconSize_0, l_iconSize_0),
                    BackgroundTransparency = 1,
                    Image = v30.icon,
                    ImageColor3 = l_iconImageColor_0.Color,
                    ImageTransparency = l_iconImageColor_0.Transparency,
                    LayoutOrder = 1
                }),
                Title = if not v30.title then nil else v7.createElement(v20, {
                    Text = v30.title,
                    Size = UDim2.new(1, 0, 0, v44),
                    TextXAlignment = Enum.TextXAlignment.Center,
                    LayoutOrder = 2,
                    fontStyle = l_titleFont_0,
                    colorStyle = l_titleTextColor_0,
                    TextTruncate = Enum.TextTruncate.AtEnd
                })
            })
        });
    end, {
        l_contentGap_0,
        v30.title,
        v30.icon,
        l_iconSize_0,
        v44,
        l_titleFont_0,
        l_topContentPadding_0,
        v31
    });
    local v47, v48 = v13();
    local v49 = if not v10.useNewSelectionCursor then v16(v17.RoundedRect) else v18(l_border_0.CornerRadius);
    local v50 = v9(v47, l_overlayColors_0);
    local v51 = nil;
    local v52 = nil;
    if v50 ~= nil then
        v51 = v50.Color;
        v52 = v50.Transparency;
    else
        v51 = nil;
        v52 = 1;
    end;
    return v29(v12, l_selectionCursorPadding_0, {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        SelectionImageObject = v49,
        onStateChanged = v48,
        [v7.Event.Activated] = v30.onActivated
    }, {
        VerticalTile = v7.createElement(v23, {
            hasBackground = true,
            hasOutline = true,
            isHoverEnabled = v30.isHoverEnabled,
            isOverlayVisible = false,
            isActive = false,
            renderTopContent = v46,
            renderBottomContent = nil,
            renderFooterRow = nil,
            reservedBottomHeight = 0,
            backgroundColor = l_backgroundColor_0,
            border = l_border_0,
            dropShadow = l_dropShadow_0
        }),
        OverlayColor = v7.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = v51,
            BackgroundTransparency = v52
        }, {
            Corner = v7.createElement("UICorner", {
                CornerRadius = l_border_0.CornerRadius
            })
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local _ = require(l_Parent_0.Style.StyleTypes);
local _ = require(l_Parent_0.Style.Fonts);
return {
    getDefaultStyleProps = function(v3)
        assert(v3.Tokens ~= nil, "Design token support is not enabled");
        return {
            backgroundColor = {
                Color = v3.Tokens.Component.VerticalTile.Base.Container.Background.Color3,
                Transparency = v3.Tokens.Component.VerticalTile.Base.Container.Background.Transparency
            },
            border = {
                BorderColor = {
                    Color = v3.Tokens.Component.VerticalTile.Base.Container.BorderColor.Color3,
                    Transparency = v3.Tokens.Component.VerticalTile.Base.Container.BorderColor.Transparency
                },
                CornerRadius = UDim.new(0, v3.Tokens.Component.VerticalTile.Base.Container.BorderRadius.LeadingTop),
                Width = v3.Tokens.Component.VerticalTile.Base.Container.BorderWidth
            },
            topContentPadding = {
                Left = v3.Tokens.Component.VerticalTile.Base.ContentTop.Spacing.Leading,
                Right = v3.Tokens.Component.VerticalTile.Base.ContentTop.Spacing.Trailing,
                Top = v3.Tokens.Component.VerticalTile.Base.ContentTop.Spacing.Top,
                Bottom = v3.Tokens.Component.VerticalTile.Base.ContentTop.Spacing.Bottom
            },
            overlayColors = {},
            selectionCursorPadding = {
                Left = 0,
                Right = 0,
                Top = 0,
                Bottom = 0
            },
            contentGap = v3.Tokens.Global.Space_50,
            titleFont = v3.Font.Header2,
            titleTextColor = {
                Color = v3.Tokens.Semantic.Color.Text.Emphasis.Color3,
                Transparency = v3.Tokens.Semantic.Color.Text.Emphasis.Transparency
            },
            iconSize = v3.Tokens.Semantic.Icon.Size.Medium,
            iconImageColor = {
                Color = v3.Tokens.Semantic.Color.Icon.Emphasis.Color3,
                Transparency = v3.Tokens.Semantic.Color.Icon.Emphasis.Transparency
            },
            dropShadow = {
                Position = UDim2.new(0.5, 0, 0.5, 2),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Size = UDim2.new(1, 10, 1, 12),
                ImageColor = {
                    Color = v3.Tokens.Semantic.Color.Common.DropShadow.Color3,
                    Transparency = v3.Tokens.Semantic.Color.Common.DropShadow.Transparency
                },
                ImageAssetName = "component_assets/dropshadow_24_6",
                SliceCenter = Rect.new(18, 18, 18, 18)
            }
        };
    end
};


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local _ = require(l_Parent_0.Style.StyleTypes);
local _ = require(l_Parent_0.Style.Fonts);
return {
    getDefaultStyleProps = function(v3)
        assert(v3.Tokens ~= nil, "Design token support is not enabled");
        return {
            backgroundColor = {
                Color = v3.Tokens.Component.VerticalTile.Base.Container.Background.Color3,
                Transparency = v3.Tokens.Component.VerticalTile.Base.Container.Background.Transparency
            },
            border = {
                BorderColor = {
                    Color = v3.Tokens.Component.VerticalTile.Base.Container.BorderColor.Color3,
                    Transparency = v3.Tokens.Component.VerticalTile.Base.Container.BorderColor.Transparency
                },
                CornerRadius = UDim.new(0, v3.Tokens.Component.VerticalTile.Base.Container.BorderRadius.LeadingTop),
                Width = v3.Tokens.Component.VerticalTile.Base.Container.BorderWidth
            },
            topContentPadding = {
                Left = v3.Tokens.Component.VerticalTile.Base.ContentTop.Spacing.Leading,
                Right = v3.Tokens.Component.VerticalTile.Base.ContentTop.Spacing.Trailing,
                Top = v3.Tokens.Component.VerticalTile.Base.ContentTop.Spacing.Top,
                Bottom = v3.Tokens.Component.VerticalTile.Base.ContentTop.Spacing.Bottom
            },
            bottomContentPadding = {
                Left = v3.Tokens.Component.VerticalTile.Base.ContentBottom.Spacing.Leading,
                Right = v3.Tokens.Component.VerticalTile.Base.ContentBottom.Spacing.Trailing,
                Top = v3.Tokens.Component.VerticalTile.Base.ContentBottom.Spacing.Top,
                Bottom = v3.Tokens.Component.VerticalTile.Base.ContentBottom.Spacing.Bottom
            },
            overlayColors = {},
            selectionCursorPadding = {
                Left = 0,
                Right = 0,
                Top = 0,
                Bottom = 0
            },
            dropShadow = {
                Position = UDim2.new(0.5, 0, 0.5, 2),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Size = UDim2.new(1, 10, 1, 12),
                ImageColor = {
                    Color = v3.Tokens.Semantic.Color.Common.DropShadow.Color3,
                    Transparency = v3.Tokens.Semantic.Color.Common.DropShadow.Transparency
                },
                ImageAssetName = "component_assets/dropshadow_24_6",
                SliceCenter = Rect.new(18, 18, 18, 18)
            },
            contentTitlePadding = v3.Tokens.Global.Space_100,
            contentTitleFont = v3.Font.Header2
        };
    end,
    DEFAULT_FOOTER_HEIGHT = 22,
    DEFAULT_TEXT_LINE_COUNT = 2
};


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Parent.Parent.React);
local v2 = require(l_Parent_0.Button.Button);
local v3 = require(l_Parent_0.Button.Enum.ButtonType);
local v4 = require(l_Parent_0.ImageSet.Images);
local function v5()
end;
return function(v6)
    local l_isActionable_0 = v6.isActionable;
    local v8 = v6.horizontalPadding or 6;
    local v9 = v6.verticalPadding or 6;
    return v1.createElement(v2, {
        buttonType = v3.PrimaryContextual,
        text = v6.text,
        icon = v6.icon or if l_isActionable_0 then v4["icons/common/play"] else v4["icons/status/unavailable"],
        size = UDim2.new(1, -2 * v8, 0, (v6.height or 48) - 2 * v9),
        position = UDim2.new(0, v8, 1, -v9 - 36),
        userInteractionEnabled = l_isActionable_0,
        onActivated = v6.onPlayPressed or v5,
        isDisabled = not l_isActionable_0,
        feedbackType = v6.feedbackType
    });
end;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local l_Core_0 = l_Parent_3.Core;
local l_Parent_4 = l_Parent_3.Parent;
local v6 = require(l_Parent_4.Cryo);
local v7 = require(l_Parent_4.React);
local v8 = require(l_Parent_4.Roact);
local v9 = require(l_Parent_3.Utility.getControlStateColor);
local v10 = require(l_Parent_3.Utility.setDefault);
local v11 = require(l_Core_0.Style.useStyle);
local v12 = require(l_Core_0.Control.Interactable);
local v13 = require(l_Core_0.Control.useControlState);
local _ = require(l_Parent_2.Style.StyleTypes);
local _ = require(l_Parent_2.Style.Fonts);
local v16 = require(l_Parent_2.SelectionImage.useSelectionCursor);
local v17 = require(l_Parent_2.SelectionImage.CursorKind);
local v18 = require(l_Parent_2.SelectionCursor.useCursor);
local v19 = require(l_Parent_0.Constants);
local v20 = require(l_Parent_0.ExperienceActionRow);
local v21 = require(l_Parent_0.Enum.AspectRatioMode);
local v22 = require(l_Parent_0.getAspectRatio);
local v23 = require(l_Parent_1.VerticalTile.VerticalTile);
local v24 = require(l_Parent_1.TileContentPanel);
local v25 = require(l_Parent_1.VerticalTile.VerticalTileThumbnail);
local v26 = require(l_Parent_3.UIBloxConfig);
local function v31(v27, v28, v29, v30)
    return v7.createElement(v27, v6.Dictionary.join({
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, v29), {
        Padding = v7.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v28.Left),
            PaddingRight = UDim.new(0, v28.Right),
            PaddingTop = UDim.new(0, v28.Top),
            PaddingBottom = UDim.new(0, v28.Bottom)
        }),
        Content = v8.createFragment(v30)
    });
end;
local function _(v32, v33)
    if v32 ~= nil then
        if not v33 then
            return v32;
        else
            return v21.Wide;
        end;
    elseif not v33 then
        return v21.Square;
    else
        return v21.Wide;
    end;
end;
return function(v35)
    local v36 = v11();
    local v37 = v10(v35.footerHeight, v19.DEFAULT_FOOTER_HEIGHT);
    local v38 = v10(v35.isHoverEnabled, false);
    local v39 = v10(v35.hasBackground, true);
    local v40 = v6.Dictionary.join(v19.getDefaultStyleProps(v36), v35.styleProps or {});
    local l_backgroundColor_0 = v40.backgroundColor;
    local l_border_0 = v40.border;
    local l_dropShadow_0 = v40.dropShadow;
    local l_topContentPadding_0 = v40.topContentPadding;
    local l_bottomContentPadding_0 = v40.bottomContentPadding;
    local l_overlayColors_0 = v40.overlayColors;
    local l_selectionCursorPadding_0 = v40.selectionCursorPadding;
    local l_contentTitlePadding_0 = v40.contentTitlePadding;
    local l_contentTitleFont_0 = v40.contentTitleFont;
    local v50 = v10(v35.contentTextLineCount, v19.DEFAULT_TEXT_LINE_COUNT);
    local v55 = v7.useCallback(function(v51)
        v51 = v51 and not v36.Settings.ReducedMotion;
        local l_thumbnailAspectRatioOverride_0 = v35.thumbnailAspectRatioOverride;
        local l_v51_0 = v51;
        local v54 = if l_thumbnailAspectRatioOverride_0 ~= nil then if l_v51_0 then v21.Wide else l_thumbnailAspectRatioOverride_0 else if l_v51_0 then v21.Wide else v21.Square;
        l_thumbnailAspectRatioOverride_0 = v22(v54);
        return v31("Frame", l_topContentPadding_0, {
            Size = UDim2.new(1, 0, l_thumbnailAspectRatioOverride_0, 0),
            SizeConstraint = Enum.SizeConstraint.RelativeXX,
            ZIndex = 3
        }, {
            Thumbnail = v7.createElement(v25, {
                aspectRatio = l_thumbnailAspectRatioOverride_0,
                border = l_border_0,
                isTopRounded = true,
                isBottomRounded = not v39,
                thumbnail = if v54 == v21.Wide then v35.wideThumbnail else v35.thumbnail
            }),
            TopContentOverlay = if v35.renderTopContentOverlay ~= nil then v8.createFragment((v35.renderTopContentOverlay(v51, l_border_0))) else nil
        });
    end, {
        v35.renderTopContentOverlay,
        v35.wideThumbnail,
        v35.thumbnail,
        v35.thumbnailAspectRatioOverride,
        l_topContentPadding_0,
        l_border_0,
        v39
    });
    local v58 = v7.useCallback(function(v56)
        local v57 = ((math.floor((v50 * l_contentTitleFont_0.RelativeSize) * v36.Font.BaseSize + l_contentTitlePadding_0) + v37) + l_bottomContentPadding_0.Top) + l_bottomContentPadding_0.Bottom;
        if v35.renderBottomContent ~= nil then
            return v31("Frame", l_bottomContentPadding_0, {
                Size = UDim2.new(1, 0, 0, v57)
            }, {
                BottomContent = v35.renderBottomContent(v56, l_border_0)
            });
        else
            return v7.createElement(v24, {
                contentTitle = v35.experienceName,
                panelHeight = UDim.new(0, v57),
                outerPadding = l_bottomContentPadding_0,
                footerHeight = UDim.new(0, v37),
                textLineCount = v50,
                titleFont = l_contentTitleFont_0,
                titlePadding = l_contentTitlePadding_0,
                contentFooter = if not v56 then nil else v35.footer,
                hasSidePadding = true
            });
        end;
    end, {
        v35.experienceName,
        v35.renderBottomContent,
        v35.footer,
        v50,
        l_contentTitlePadding_0,
        l_bottomContentPadding_0,
        v37,
        l_contentTitleFont_0,
        l_border_0,
        v36
    });
    local v60 = v7.useCallback(function(v59)
        if v35.renderBottomContent ~= nil then
            return nil;
        elseif not v59 then
            return v31("Frame", l_bottomContentPadding_0, {
                Size = UDim2.new(1, 0, 0, (v37 + l_bottomContentPadding_0.Top) + l_bottomContentPadding_0.Bottom),
                Position = UDim2.new(0, 0, 1, 0),
                AnchorPoint = Vector2.new(0, 1)
            }, {
                FooterContent = v7.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 0),
                    Position = UDim2.new(0, 0, 1, 0),
                    AnchorPoint = Vector2.new(0, 1),
                    BackgroundTransparency = 1,
                    AutomaticSize = Enum.AutomaticSize.Y
                }, {
                    Footer = v35.footer
                })
            });
        elseif v35.renderActionRow ~= nil then
            return v35.renderActionRow();
        else
            return v7.createElement(v20, v35.actionRowProps);
        end;
    end, {
        v35.footer,
        v35.actionRowProps,
        v35.renderBottomContent,
        v35.renderActionRow,
        l_bottomContentPadding_0,
        v37
    });
    local v61, v62 = v13();
    local v63 = if not v26.useNewSelectionCursor then v16(v17.RoundedRect) else v18(l_border_0.CornerRadius);
    local v64 = v9(v61, l_overlayColors_0);
    local v65 = nil;
    local v66 = nil;
    if v64 ~= nil then
        v65 = v64.Color;
        v66 = v64.Transparency;
    else
        v65 = nil;
        v66 = 1;
    end;
    return v31(v12, l_selectionCursorPadding_0, {
        Size = UDim2.new(1, 0, 1, 0),
        SelectionImageObject = v63,
        onStateChanged = v62,
        [v7.Event.Activated] = v35.onActivated
    }, {
        VerticalTile = v7.createElement(v23, {
            hasBackground = v39,
            hasOutline = v10(v35.hasOutline, true),
            isHoverEnabled = v38,
            hoverDelay = v35.hoverDelay,
            onHoverChanged = v35.onHoverChanged,
            isOverlayVisible = false,
            isActive = false,
            renderTopContent = v55,
            renderBottomContent = v58,
            renderFooterRow = v60,
            reservedBottomHeight = 0,
            backgroundColor = l_backgroundColor_0,
            border = l_border_0,
            dropShadow = l_dropShadow_0
        }),
        OverlayColor = v7.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = v65,
            ZIndex = 10,
            BackgroundTransparency = v66
        }, {
            Corner = v7.createElement("UICorner", {
                CornerRadius = l_border_0.CornerRadius
            })
        })
    });
end;


local v0 = require(script.Parent.Enum.AspectRatioMode);
local v1 = {
    [v0.Wide] = 0.5625,
    [v0.Square] = 1
};
return function(v2)
    local v3 = v1[v2];
    if not v3 then
        error("Unkown aspect ratio " .. tostring(v2));
    end;
    return v3;
end;


local l_Parent_0 = script.Parent;
local _ = require(l_Parent_0.Parent.Parent.Parent.Style.StyleTypes);
local _ = require(l_Parent_0.Constants);
local _ = require(l_Parent_0.Enum.AspectRatioMode);
local v4 = require(l_Parent_0.getExperienceTileRelativeHeight);
return function(v5, v6, v7, v8, v9, v10)
    local v11 = v4(v5, v7, v8, v9, v10);
    return (math.floor(v6 * v11.Scale + v11.Offset));
end;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.Parent.Cryo);
local _ = require(l_Parent_1.Style.StyleTypes);
local v5 = require(l_Parent_2.Utility.setDefault);
local v6 = require(l_Parent_0.Constants);
local v7 = require(l_Parent_0.Enum.AspectRatioMode);
local v8 = require(l_Parent_0.getAspectRatio);
return function(v9, v10, v11, v12, v13)
    local v14 = v3.Dictionary.join(v6.getDefaultStyleProps(v9), v13 or {});
    local v15 = v5(v12, v6.DEFAULT_FOOTER_HEIGHT);
    local v16 = v5(v11, v6.DEFAULT_TEXT_LINE_COUNT);
    local v17 = v5(v10, v7.Square);
    local l_topContentPadding_0 = v14.topContentPadding;
    local l_bottomContentPadding_0 = v14.bottomContentPadding;
    local l_contentTitleFont_0 = v14.contentTitleFont;
    local l_contentTitlePadding_0 = v14.contentTitlePadding;
    local l_selectionCursorPadding_0 = v14.selectionCursorPadding;
    local v23 = ((l_selectionCursorPadding_0.Left + l_selectionCursorPadding_0.Right) + l_topContentPadding_0.Left) + l_topContentPadding_0.Right;
    local v24 = math.floor((v16 * l_contentTitleFont_0.RelativeSize) * v9.Font.BaseSize + l_contentTitlePadding_0) + v15;
    local v25 = ((l_topContentPadding_0.Top + l_topContentPadding_0.Bottom) + (l_bottomContentPadding_0.Top + l_bottomContentPadding_0.Bottom)) + (l_selectionCursorPadding_0.Top + l_selectionCursorPadding_0.Bottom);
    local v26 = v8(v17);
    return UDim.new(v26, ((-1 * v23) * v26 + v24) + v25);
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Core_0 = l_Parent_0.Core;
local v2 = require(l_Parent_0.Parent.React);
local v3 = require(l_Core_0.Style.useStyle);
local _ = require(l_Parent_0.App.Style.Fonts);
local _ = require(l_Parent_0.App.Style.StyleTypes);
local v6 = require(l_Parent_0.Utility.setDefault);
local v7 = require(l_Parent_0.UIBloxConfig);
return function(v8)
    local v9 = v3();
    local v10 = not v9.Settings.ReducedMotion and 8 or 6;
    local l_contentTitle_0 = v8.contentTitle;
    local l_contentFooter_0 = v8.contentFooter;
    local v13 = v6(v8.textLineCount, 2);
    local v14 = v6(v8.hasSidePadding, true);
    local v15 = nil;
    local v16 = nil;
    local v17 = nil;
    local v18 = nil;
    if not (v8.outerPadding ~= nil) or type(v8.outerPadding) == "number" then
        local v19 = v6(v8.outerPadding, v10);
        v15 = v19;
        v16 = v19;
        v17 = v19;
        v18 = v19;
    else
        v15 = v6(v8.outerPadding.Left, v10);
        v16 = v6(v8.outerPadding.Right, v10);
        v17 = v6(v8.outerPadding.Top, v10);
        v18 = v6(v8.outerPadding.Bottom, v10);
    end;
    local v20 = v6(v8.titlePadding, v10);
    local l_panelHeight_0 = v8.panelHeight;
    local l_footerHeight_0 = v8.footerHeight;
    local l_Font_0 = v9.Font;
    local v24 = v6(v8.titleFont, l_Font_0.Header2);
    local l_Theme_0 = v9.Theme;
    local v26 = (l_Font_0.BaseSize * v24.RelativeSize) * v13;
    local v27 = if not v7.useNewThemeColorPalettes then l_Theme_0.TextEmphasis else l_Theme_0.TextDefault;
    return v2.createElement("Frame", {
        Size = UDim2.new(UDim.new(1, 0), l_panelHeight_0),
        BackgroundTransparency = 1
    }, {
        UIListLayout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, v20)
        }),
        Padding = v2.createElement("UIPadding", {
            PaddingLeft = if not v14 then nil else UDim.new(0, v15),
            PaddingRight = if not v14 then nil else UDim.new(0, v16),
            PaddingTop = UDim.new(0, v17),
            PaddingBottom = UDim.new(0, v18)
        }),
        TitleText = if (v13 > 0 and l_contentTitle_0) and string.len(l_contentTitle_0) > 0 then v2.createElement("TextLabel", {
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            Text = l_contentTitle_0,
            Font = v24.Font,
            TextSize = l_Font_0.BaseSize * v24.RelativeSize,
            TextTransparency = v27.Transparency,
            TextColor3 = v27.Color,
            TextWrapped = true,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            LayoutOrder = 1
        }, {
            UISizeConstraint = v2.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(math.huge, v26)
            })
        }) else nil,
        ContentFooter = if not l_contentFooter_0 then nil else v2.createElement("Frame", {
            Size = UDim2.new(UDim.new(1, 0), l_footerHeight_0),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            LayoutOrder = 2
        }, {
            l_contentFooter_0
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Core_0 = l_Parent_0.Core;
local v2 = require(l_Parent_0.Parent.React);
local v3 = require(l_Core_0.Control.Interactable);
local v4 = require(l_Core_0.Control.useControlState);
local v5 = require(l_Core_0.Style.useStyle);
local v6 = require(l_Core_0.Control.Enum.ControlState);
local v7 = require(l_Parent_0.Utility.setDefault);
local v8 = UDim.new(0, 8);
return function(v9)
    local l_onActivated_0 = v9.onActivated;
    local v11 = v7(v9.isVisible, true);
    local v12 = v7(v9.isActive, true);
    local v13 = v9.reservedBottomHeight or 0;
    local v14 = v13 > 0;
    if v11 or v12 then
        local v15, v16 = v4();
        local l_Theme_0 = v5().Theme;
        local v18 = nil;
        local v19 = 1;
        if not (not v11 or not v12) then
            if v15 == v6.Pressed then
                v18 = l_Theme_0.BackgroundOnPress.Color;
                v19 = l_Theme_0.BackgroundOnPress.Transparency;
            elseif v15 == v6.Hover then
                v18 = l_Theme_0.BackgroundOnHover.Color;
                v19 = l_Theme_0.BackgroundOnHover.Transparency;
            end;
        end;
        return v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            ZIndex = v9.zIndex
        }, {
            UICorner = v2.createElement("UICorner", {
                CornerRadius = v8
            }),
            ClippingFrame = v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, not v14 and 0 or -v13),
                BackgroundTransparency = 1,
                ClipsDescendants = true
            }, {
                Interactable = v2.createElement(v3, {
                    Size = UDim2.new(1, 0, 1, not v14 and 0 or v8.Offset),
                    BackgroundColor3 = v18,
                    BackgroundTransparency = v19,
                    AutoButtonColor = false,
                    onStateChanged = v16,
                    [v2.Event.Activated] = if not v12 then nil else l_onActivated_0,
                    ZIndex = 3
                }, {
                    UICorner = v2.createElement("UICorner", {
                        CornerRadius = v8
                    })
                })
            })
        });
    else
        return nil;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local l_Core_0 = l_Parent_2.Core;
local l_Parent_3 = l_Parent_2.Parent;
local v5 = require(l_Parent_3.Cryo);
local v6 = require(l_Parent_3.React);
local l_useDebouncedState_0 = require(l_Parent_3.ReactUtils).useDebouncedState;
local v8 = require(l_Core_0.Style.useStyle);
local v9 = require(l_Core_0.ImageSet.ImageSetComponent);
local v10 = require(l_Parent_1.ImageSet.Images);
local v11 = require(l_Parent_0.SplitTile.TileOverlay);
local _ = require(l_Parent_1.Style.StyleTypes);
local v13 = UDim.new(0, 8);
local function v18(v14, v15)
    local v16, v17 = l_useDebouncedState_0(false, v14);
    v6.useLayoutEffect(function()
        if v15 ~= nil then
            v15(v16);
        end;
    end, {
        v15,
        v16
    });
    return v16, v17;
end;
return function(v19)
    local l_Theme_0 = v8().Theme;
    local v21 = v5.Dictionary.join({
        hasBackground = true,
        hasOutline = true,
        isHoverEnabled = true,
        isOverlayVisible = true,
        isActive = true,
        backgroundColor = {
            Color = l_Theme_0.BackgroundUIDefault.Color,
            Transparency = l_Theme_0.BackgroundUIDefault.Transparency
        },
        border = {
            BorderColor = {
                Color = l_Theme_0.Divider.Color,
                Transparency = l_Theme_0.Divider.Transparency
            },
            CornerRadius = v13,
            Width = 1
        },
        dropShadow = {
            Position = UDim2.new(0.5, 0, 0.5, 2),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Size = UDim2.new(1, 10, 1, 12),
            ImageColor = {
                Color = l_Theme_0.DropShadow.Color,
                Transparency = l_Theme_0.DropShadow.Transparency
            },
            ImageAssetName = "component_assets/dropshadow_24_6",
            SliceCenter = Rect.new(18, 18, 18, 18)
        }
    }, v19);
    local l_hasBackground_0 = v21.hasBackground;
    local l_isHoverEnabled_0 = v21.isHoverEnabled;
    local v24, v25 = v18(v21.hoverDelay, v21.onHoverChanged);
    local v27 = v6.useCallback(function(v26)
        return function()
            v25(v26);
        end;
    end, {});
    local v28 = v24 and l_isHoverEnabled_0;
    return v6.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        UISizeConstraint = if not v21.minTileSize then nil else v6.createElement("UISizeConstraint", {
            MinSize = v21.minTileSize
        }),
        TileContent = v6.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = if not l_hasBackground_0 then nil else v21.backgroundColor.Color,
            BackgroundTransparency = not l_hasBackground_0 and 1 or v21.backgroundColor.Transparency,
            [v6.Event.MouseEnter] = if not l_isHoverEnabled_0 then nil else v27(true),
            [v6.Event.MouseLeave] = if not l_isHoverEnabled_0 then nil else v27(false),
            ClipsDescendants = false,
            ZIndex = 1
        }, {
            UICorner = v6.createElement("UICorner", {
                CornerRadius = v21.border.CornerRadius
            }),
            Panel = v6.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                ZIndex = 2
            }, {
                UIListLayout = v6.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    SortOrder = Enum.SortOrder.Name
                }),
                Content1 = if not v21.renderTopContent then nil else v21.renderTopContent(v28),
                Content2 = if not v21.renderBottomContent then nil else v21.renderBottomContent(v28)
            }),
            FooterRow = if not v21.renderFooterRow then nil else v21.renderFooterRow(v28),
            Overlay = v6.createElement(v11, {
                reservedBottomHeight = v21.reservedBottomHeight,
                isVisible = v21.isOverlayVisible,
                isActive = v21.isActive,
                onActivated = v21.onActivated,
                zIndex = 3
            })
        }),
        BorderFrame = if not v21.hasOutline then nil else v6.createElement("Frame", {
            Size = UDim2.new(1, -2 * v21.border.Width, 1, -2 * v21.border.Width),
            AnchorPoint = if not l_hasBackground_0 then nil else Vector2.new(0.5, 0.5),
            Position = if not l_hasBackground_0 then UDim2.fromOffset(v21.border.Width, v21.border.Width) else UDim2.fromScale(0.5, 0.5),
            BackgroundTransparency = 1,
            SizeConstraint = if l_hasBackground_0 then nil else Enum.SizeConstraint.RelativeXX,
            ZIndex = 4
        }, {
            UIStroke = v6.createElement("UIStroke", {
                Color = v21.border.BorderColor.Color,
                Transparency = v21.border.BorderColor.Transparency,
                Thickness = v21.border.Width
            }),
            UICorner = v6.createElement("UICorner", {
                CornerRadius = v21.border.CornerRadius
            })
        }),
        HoverShadow = if not not v28 and l_hasBackground_0 then v6.createElement(v9.Label, {
            ZIndex = 0,
            Position = v21.dropShadow.Position,
            AnchorPoint = v21.dropShadow.AnchorPoint,
            BackgroundTransparency = 1,
            Size = v21.dropShadow.Size,
            Image = v10[v21.dropShadow.ImageAssetName],
            ImageColor3 = v21.dropShadow.ImageColor.Color,
            ImageTransparency = v21.dropShadow.ImageColor.Transparency,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = v21.dropShadow.SliceCenter
        }) else nil
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Parent.Parent.React);
local v2 = require(l_Parent_0.Loading.LoadableImage);
local _ = require(l_Parent_0.Style.StyleTypes);
local v4 = UDim.new(0, 8);
return function(v5)
    local l_aspectRatio_0 = v5.aspectRatio;
    local l_isTopRounded_0 = v5.isTopRounded;
    local l_isBottomRounded_0 = v5.isBottomRounded;
    local l_thumbnail_0 = v5.thumbnail;
    local l_border_0 = v5.border;
    local v11 = l_isTopRounded_0 and l_isBottomRounded_0;
    local v12 = not v11 and (l_isTopRounded_0 or l_isBottomRounded_0);
    local v13 = if l_border_0 ~= nil then l_border_0.CornerRadius else v4;
    return v1.createElement("Frame", {
        Size = if not l_aspectRatio_0 then UDim2.new(1, 0, 1, 0) else UDim2.new(1, 0, l_aspectRatio_0, 0),
        SizeConstraint = if not l_aspectRatio_0 then nil else Enum.SizeConstraint.RelativeXX,
        BackgroundTransparency = 1
    }, {
        TopFrame = v1.createElement("Frame", {
            Position = UDim2.fromScale(0, 0),
            Size = UDim2.fromScale(1, v12 and 0.5 or 1),
            ClipsDescendants = true,
            BackgroundTransparency = 1
        }, {
            TopImage = v1.createElement(v2, {
                BackgroundTransparency = 1,
                Image = l_thumbnail_0,
                Position = UDim2.fromScale(0, 0),
                Size = UDim2.fromScale(1, v12 and 2 or 1),
                cornerRadius = if v11 or l_isTopRounded_0 then v13 else nil,
                showFailedStateWhenLoadingFailed = true,
                useShimmerAnimationWhileLoading = true
            })
        }),
        BottomFrame = if not v12 then nil else v1.createElement("Frame", {
            Position = UDim2.fromScale(0, 0.5),
            Size = UDim2.fromScale(1, 0.5),
            ClipsDescendants = true,
            BackgroundTransparency = 1
        }, {
            BottomImage = v1.createElement(v2, {
                BackgroundTransparency = 1,
                Image = l_thumbnail_0,
                Position = UDim2.fromScale(0, -1),
                Size = UDim2.fromScale(1, 2),
                cornerRadius = if v11 or l_isBottomRounded_0 then v13 else nil,
                showFailedStateWhenLoadingFailed = true,
                useShimmerAnimationWhileLoading = true
            })
        })
    });
end;


return require(script.Parent.Parent.Parent.Parent.Parent.enumerate)(script.Name, {
    "Up",
    "Down",
    "Left",
    "Right"
});


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local v2 = require(l_Parent_1.Parent.Roact);
local v3 = require(l_Parent_1.Parent.t);
local v4 = require(l_Parent_0.Enum.SlidingDirection);
local v5 = require(l_Parent_1.Utility.SpringAnimatedItem);
local v6 = {
    dampingRatio = 1,
    frequency = 4
};
local v7 = v2.PureComponent:extend("SlidingContainer");
local v8 = {
    [v4.Up] = UDim2.new(0, 0, 1, 0),
    [v4.Down] = UDim2.new(0, 0, -1, 0),
    [v4.Left] = UDim2.new(1, 0, 0, 0),
    [v4.Right] = UDim2.new(-1, 0, 0, 0)
};
v7.validateProps = v3.strictInterface({
    layoutOrder = v3.optional(v3.integer),
    onComplete = v3.optional(v3.callback),
    show = v3.optional(v3.boolean),
    slidingDirection = v4.isEnumValue,
    springOptions = v3.optional(v3.table),
    [v2.Children] = v3.optional(v3.table)
});
v7.defaultProps = {
    springOptions = v6
};
v7.render = function(v9)
    local l_show_0 = v9.props.show;
    local l_slidingDirection_0 = v9.props.slidingDirection;
    return v2.createElement(v5.AnimatedFrame, {
        springOptions = v9.props.springOptions,
        animatedValues = {
            step = not l_show_0 and 1 or 0
        },
        mapValuesToProps = function(v12)
            local v13 = v8[l_slidingDirection_0];
            return {
                Position = UDim2.new(v13.X.Scale * v12.step, 0, v13.Y.Scale * v12.step, 0)
            };
        end,
        regularProps = {
            BackgroundTransparency = 1,
            LayoutOrder = v9.props.layoutOrder,
            Position = not not l_show_0 and v8[l_slidingDirection_0] or UDim2.new(0, 0, 0, 0),
            Size = UDim2.new(1, 0, 1, 0)
        },
        onComplete = v9.props.onComplete,
        [v2.Children] = v9.props[v2.Children]
    });
end;
return v7;


local l_RunService_0 = game:GetService("RunService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Parent.Roact);
local v3 = require(l_Parent_0.Parent.t);
local l_Label_0 = require(l_Parent_0.Core.ImageSet.ImageSetComponent).Label;
local v5 = v2.PureComponent:extend("SpinningImage");
v5.validateProps = v3.strictInterface({
    image = v3.table,
    size = v3.optional(v3.UDim2),
    anchorPoint = v3.optional(v3.Vector2),
    position = v3.optional(v3.union(v3.UDim2, v3.table)),
    rotationRate = v3.optional(v3.number)
});
v5.defaultProps = {
    rotationRate = 360
};
v5.init = function(v6)
    v6.state = {
        angle = 0
    };
end;
v5.didMount = function(v7)
    v7.heartbeatConnection = l_RunService_0.Heartbeat:Connect(function(v8)
        local v9 = v7.state.angle + v7.props.rotationRate * v8;
        if v9 > 360 then
            v9 = v9 - 360;
        elseif v9 < 0 then
            v9 = v9 + 360;
        end;
        v7:setState({
            angle = v9
        });
    end);
end;
v5.willUnmount = function(v10)
    v10.heartbeatConnection:Disconnect();
end;
v5.getDerivedStateFromProps = function(v11, _)
    local l_ImageRectSize_0 = v11.image.ImageRectSize;
    return {
        size = v11.size or UDim2.fromOffset(l_ImageRectSize_0.X, l_ImageRectSize_0.Y)
    };
end;
v5.render = function(v14)
    return v2.createElement("Frame", {
        Size = v14.state.size,
        AnchorPoint = v14.props.anchorPoint,
        Position = v14.props.position,
        BackgroundTransparency = 1
    }, {
        inner = v2.createElement(l_Label_0, {
            Size = v14.state.size,
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            Image = v14.props.image,
            Rotation = v14.state.angle,
            BackgroundTransparency = 1
        })
    });
end;
return v5;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.Otter);
local v3 = require(l_Parent_0.t);
local v4 = v1.PureComponent:extend("AnimatedComponent");
v4.validateProps = v3.strictInterface({
    values = v3.table,
    render = v3.callback,
    options = v3.optional(v3.table)
});
v4.update = function(v5, v6)
    local v7 = {};
    for v8, v9 in pairs(v6) do
        if type(v8) == "function" then
            v8(v9);
        else
            v7[v8] = v9;
        end;
    end;
    for v10, _ in pairs(v5.state) do
        if not v6[v10] then
            v7[v10] = v1.None;
        end;
    end;
    if next(v7) ~= nil then
        v5:setState(v7);
    end;
end;
v4.init = function(v12)
    v12:update(v12.props.values);
    v12.motor = v2.createGroupMotor(v12.props.values);
    v12.motor:onStep(function(v13)
        v12:update(v13);
    end);
end;
v4.didUpdate = function(v14, v15)
    local l_values_0 = v14.props.values;
    local l_options_0 = v14.props.options;
    local v18 = l_values_0 ~= v15.values;
    local v19 = l_options_0 ~= v15.options;
    if not (not v18 and not v19) then
        local v20 = {};
        for v21, v22 in pairs(l_values_0) do
            v20[v21] = v2.spring(v22, l_options_0);
        end;
        v14.motor:setGoal(v20);
    end;
end;
v4.render = function(v23)
    return v23.props.render(v23.state);
end;
v4.willUnmount = function(v24)
    if v24.motor then
        v24.motor:destroy();
        v24.motor = nil;
    end;
end;
return function(v25, v26, v27)
    return v1.createElement(v4, {
        values = v25,
        options = v27,
        render = v26
    });
end;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local v2 = require(l_Parent_1.t);
local v3 = require(l_Parent_1.Cryo);
local v4 = require(l_Parent_1.Roact);
local v5 = require(l_Parent_1.FitFrame);
local v6 = require(l_Parent_0.Utility.bindingValidator);
local v7 = v4.PureComponent:extend("ThreeSectionBar");
v7.validateProps = v2.strictInterface({
    BackgroundColor3 = v2.optional(v2.Color3),
    BackgroundTransparency = v2.optional(v2.union(v2.number, v6(v2.number))),
    barHeight = v2.optional(v2.number),
    contentPaddingLeft = v2.optional(v2.UDim),
    contentPaddingRight = v2.optional(v2.UDim),
    estimatedCenterWidth = v2.optional(v2.number),
    marginLeft = v2.optional(v2.number),
    marginRight = v2.optional(v2.number),
    onWidthChange = v2.optional(v2.callback),
    renderCenter = v2.optional(v2.callback),
    renderLeft = v2.optional(v2.callback),
    renderRight = v2.optional(v2.callback),
    automaticHeight = v2.optional(v2.boolean),
    sectionSpacing = v2.optional(v2.number)
});
v7.defaultProps = {
    barHeight = 32,
    BackgroundTransparency = 0,
    marginLeft = 0,
    marginRight = 0,
    contentPaddingLeft = UDim.new(0, 0),
    contentPaddingRight = UDim.new(0, 0),
    renderLeft = nil,
    renderRight = nil,
    renderCenter = nil,
    onWidthChange = function()
        return nil;
    end,
    estimatedCenterWidth = math.huge,
    automaticHeight = false,
    sectionSpacing = 8
};
v7.init = function(v8)
    local v9, v10 = v4.createBinding(0);
    v8.leftWidth = v9;
    v8.updateLeftWidth = v10;
    v9, v10 = v4.createBinding(0);
    v8.rightWidth = v9;
    v8.updateRightWidth = v10;
    v9, v10 = v4.createBinding(0);
    v8.fullWidth = v9;
    v8.updateFullWidth = v10;
    v8.computeCenteredSize = function(v11)
        local v12 = v11[1];
        local v13 = v11[2];
        local v14 = v11[3];
        local v15 = math.max(v12, v13);
        local l_magnitude_0 = (Vector2.new(v14 / 2, 0) - Vector2.new(v15, 0)).magnitude;
        if v8.props.renderLeft and v8.props.renderRight then
            return UDim2.new(0, l_magnitude_0 * 2, 1, 0);
        else
            return UDim2.new(1, -v15, 1, 0);
        end;
    end;
    v8.computeBumpedPosition = function(v17)
        local v18 = v17[1];
        return UDim2.new(0, v18 + ((v17[3] - v18) - v17[2]) / 2, 0.5, 0);
    end;
    v8.computeBumpedSize = function(v19)
        return UDim2.new(1, -v19[1] - v19[2], 1, 0);
    end;
end;
v7.didUpdate = function(v20)
    if not v20.props.renderLeft then
        v20.updateLeftWidth(0);
    end;
    if not v20.props.renderRight then
        v20.updateRightWidth(0);
    end;
end;
v7.render = function(v21)
    local v22 = Vector2.new(0.5, 0.5);
    local v23 = nil;
    v23 = if not v21.props.renderLeft and v21.props.renderRight then UDim2.fromScale(0, 0.5) else if not v21.props.renderLeft or v21.props.renderRight then UDim2.fromScale(0.5, 0.5) else UDim2.fromScale(1, 0.5);
    return v4.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, v21.props.barHeight),
        BackgroundColor3 = v21.props.BackgroundColor3,
        BackgroundTransparency = v21.props.BackgroundTransparency,
        BorderSizePixel = 0,
        AutomaticSize = if not v21.props.automaticHeight then nil else Enum.AutomaticSize.Y,
        [v4.Change.AbsoluteSize] = function(v24)
            v21.props.onWidthChange(v24.AbsoluteSize.X);
            v21.updateFullWidth(v24.AbsoluteSize.X);
        end
    }, {
        leftFrame = v21.props.renderLeft and v4.createElement(v5.FitFrameHorizontal, {
            AnchorPoint = Vector2.new(0, 0),
            Position = UDim2.fromScale(0, 0),
            BackgroundTransparency = 1,
            minimumSize = UDim.new(0, 200),
            height = UDim.new(1, 0),
            FillDirection = Enum.FillDirection.Horizontal,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            contentPadding = v21.props.contentPaddingLeft,
            margin = {
                top = 0,
                left = v21.props.marginLeft,
                right = v21.props.sectionSpacing,
                bottom = 0
            },
            [v4.Change.AbsoluteSize] = function(v25)
                v21.updateLeftWidth(v25.AbsoluteSize.X);
            end
        }, {
            leftContent = v21.props.renderLeft(v3.Dictionary.join(v21.props, {
                [v4.Children] = {
                    sizeConstraint = v4.createElement("UISizeConstraint", {
                        MaxSize = v4.joinBindings({
                            v21.leftWidth,
                            v21.rightWidth,
                            v21.fullWidth
                        }):map(function(v26)
                            local _ = v26[1];
                            return Vector2.new(math.max(0, (v26[3] - v26[2]) - v21.props.marginLeft), math.huge);
                        end)
                    })
                }
            }))
        }),
        centerFrame = v21.props.renderCenter and v4.createElement("Frame", {
            AnchorPoint = v22,
            BackgroundTransparency = 1,
            Position = v4.joinBindings({
                v21.leftWidth,
                v21.rightWidth,
                v21.fullWidth
            }):map(function(v28)
                if math.abs(v21.computeCenteredSize(v28).X.Offset) <= v21.props.estimatedCenterWidth then
                    return v21.computeBumpedPosition(v28);
                else
                    return v23;
                end;
            end),
            Size = v4.joinBindings({
                v21.leftWidth,
                v21.rightWidth,
                v21.fullWidth
            }):map(function(v29)
                local v30 = v21.computeCenteredSize(v29);
                if math.abs(v30.X.Offset) <= v21.props.estimatedCenterWidth then
                    return v21.computeBumpedSize(v29);
                else
                    return v30;
                end;
            end)
        }, {
            UIPadding = v4.createElement("UIPadding", {
                PaddingLeft = not not v21.props.renderLeft and UDim.new(0, 0) or UDim.new(0, v21.props.marginLeft),
                PaddingRight = not not v21.props.renderRight and UDim.new(0, 0) or UDim.new(0, v21.props.marginRight)
            }),
            ["$layout"] = v4.createElement("UIListLayout", {
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            centerContent = v21.props.renderCenter(v21.props)
        }),
        rightFrame = v21.props.renderRight and v4.createElement(v5.FitFrameHorizontal, {
            AnchorPoint = Vector2.new(1, 0),
            Position = UDim2.fromScale(1, 0),
            BackgroundTransparency = 1,
            minimumSize = UDim.new(0, 200),
            height = UDim.new(1, 0),
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            contentPadding = v21.props.contentPaddingRight,
            margin = {
                top = 0,
                left = v21.props.sectionSpacing,
                right = v21.props.marginRight,
                bottom = 0
            },
            [v4.Change.AbsoluteSize] = function(v31)
                v21.updateRightWidth(v31.AbsoluteSize.X);
            end
        }, {
            rightContent = v21.props.renderRight(v21.props)
        })
    });
end;
return v7;


return require(script.Parent.Parent.Parent.Parent.Parent.enumerate)("StandardButtonSize", {
    "Regular",
    "Small",
    "XSmall"
});