local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local l_Parent_3 = l_Parent_2.Parent;
if require(l_Parent_2.UIBloxConfig).useNewHeaderBar then
    local v4 = require(l_Parent_3.React);
    local v5 = require(l_Parent_3.Cryo);
    local _ = require(l_Parent_1.Style.StyleTypes);
    local _ = require(l_Parent_1.Style.Fonts);
    local v8 = require(l_Parent_2.Core.Style.useStyle);
    local v9 = require(l_Parent_2.Core.Text.GenericTextLabel.GenericTextLabel);
    local v10 = require(l_Parent_2.Core.Text.GetTextSize);
    local v11 = require(l_Parent_2.Core.Bar.ThreeSectionBar);
    local v12 = {
        barHeight = 48,
        title = "",
        isTitleCentered = true,
        isSecondary = false,
        isOnMedia = false,
        hasDivider = false
    };
    local function v28(v13, v14)
        local l_Tokens_0 = v14.Tokens;
        local l_Theme_0 = v14.Theme;
        local l_backgroundStyle_0 = v13.backgroundStyle;
        local l_backgroundTransparency_0 = v13.backgroundTransparency;
        local l_isOnMedia_0 = v13.isOnMedia;
        local v21 = v4.useMemo(function()
            if not l_isOnMedia_0 then
                local v20 = l_backgroundStyle_0 or {
                    Color3 = l_Theme_0.BackgroundDefault.Color,
                    Transparency = l_Theme_0.BackgroundDefault.Transparency
                };
                if l_backgroundTransparency_0 then
                    v20.Transparency = l_backgroundTransparency_0;
                end;
                return v20;
            else
                return {};
            end;
        end, {
            l_isOnMedia_0,
            l_backgroundStyle_0,
            l_backgroundTransparency_0,
            l_Theme_0
        });
        local l_paddingTop_0 = v13.paddingTop;
        local l_paddingRight_0 = v13.paddingRight;
        local l_paddingBottom_0 = v13.paddingBottom;
        local l_paddingLeft_0 = v13.paddingLeft;
        local l_margin_0 = v13.margin;
        return {
            BackgroundStyle = v21,
            Padding = v4.useMemo(function()
                local v27 = {
                    Top = l_paddingTop_0 or UDim.new(0, l_Tokens_0.Global.Space_100),
                    Right = l_paddingRight_0 or UDim.new(0, l_Tokens_0.Global.Space_250),
                    Bottom = l_paddingBottom_0 or UDim.new(0, l_Tokens_0.Global.Space_100),
                    Left = l_paddingLeft_0 or UDim.new(0, l_Tokens_0.Global.Space_250)
                };
                if l_margin_0 then
                    v27.Left = UDim.new(0, l_margin_0);
                    v27.Right = UDim.new(0, l_margin_0);
                end;
                return v27;
            end, {
                l_paddingTop_0,
                l_paddingRight_0,
                l_paddingBottom_0,
                l_paddingLeft_0,
                l_margin_0,
                l_Tokens_0
            })
        };
    end;
    local function v46(v29, v30)
        return v4.useMemo(function()
            local l_title_0 = v29.title;
            local l_renderLeft_0 = v29.renderLeft;
            local l_isTitleCentered_0 = v29.isTitleCentered;
            local l_isSecondary_0 = v29.isSecondary;
            local l_shouldHideSecondaryLeftItem_0 = v29.shouldHideSecondaryLeftItem;
            local v36 = true;
            if l_renderLeft_0 ~= nil then
                v36 = l_renderLeft_0 == v4.None;
            end;
            local l_Tokens_1 = v30.Tokens;
            local l_renderLeft_1 = v29.renderLeft;
            if v36 and string.len(l_title_0) > 0 then
                return function(v39)
                    return v4.createElement(v4.Fragment, nil, {
                        Text = v4.createElement(v9, {
                            fluidSizing = true,
                            Text = l_title_0,
                            TextTruncate = Enum.TextTruncate.AtEnd,
                            TextXAlignment = Enum.TextXAlignment.Left,
                            fontStyle = l_Tokens_1.Semantic.Typography.Title,
                            LineHeight = l_Tokens_1.Semantic.Typography.Title.LineHeight,
                            colorStyle = l_Tokens_1.Semantic.Color.Text.Emphasis
                        }, (v5.Dictionary.join(v39.children, {
                            TextPadding = v4.createElement("UIPadding", {
                                PaddingTop = UDim.new(0, l_Tokens_1.Global.Space_25),
                                PaddingBottom = UDim.new(0, l_Tokens_1.Global.Space_25)
                            })
                        })))
                    });
                end;
            elseif not (not l_isSecondary_0 or l_shouldHideSecondaryLeftItem_0) and string.len(l_title_0) > 0 then
                local l_Theme_1 = v30.Theme;
                local l_Font_0 = v30.Font;
                local l_Header2_0 = l_Font_0.Header2;
                local v43 = l_Header2_0.RelativeSize * l_Font_0.BaseSize;
                return function()
                    return v4.createElement(v4.Fragment, nil, {
                        Text = v4.createElement("Frame", {
                            Size = UDim2.new(1, 0, 0, v43),
                            BorderSizePixel = 0,
                            BackgroundTransparency = 1
                        }, {
                            Layout = v4.createElement("UIListLayout", {
                                SortOrder = Enum.SortOrder.LayoutOrder,
                                FillDirection = Enum.FillDirection.Horizontal,
                                VerticalAlignment = Enum.VerticalAlignment.Center,
                                Padding = UDim.new(0, 12)
                            }),
                            Left = v4.createElement("Frame", {
                                LayoutOrder = 1,
                                Selectable = false,
                                Size = UDim2.fromOffset(0, 0),
                                BorderSizePixel = 0,
                                BackgroundTransparency = 1,
                                AutomaticSize = Enum.AutomaticSize.XY
                            }, {
                                LeftContent = if not l_renderLeft_0 then nil else l_renderLeft_0()
                            }),
                            Divider = v4.createElement("Frame", {
                                LayoutOrder = 2,
                                Selectable = false,
                                BackgroundColor3 = l_Theme_1.Divider.Color,
                                BackgroundTransparency = l_Theme_1.Divider.Transparency,
                                BorderSizePixel = 0,
                                Size = UDim2.new(0, 1, 1, 0)
                            }),
                            TextLabel = v4.createElement(v9, {
                                LayoutOrder = 3,
                                Selectable = false,
                                ClipsDescendants = true,
                                Text = l_title_0,
                                TextTruncate = Enum.TextTruncate.AtEnd,
                                TextWrapped = false,
                                TextXAlignment = Enum.TextXAlignment.Left,
                                fontStyle = l_Header2_0,
                                colorStyle = l_Theme_1.TextEmphasis
                            })
                        })
                    });
                end;
            else
                if not (l_isSecondary_0 or l_isTitleCentered_0) then
                    local l_Header_0 = l_Tokens_1.Semantic.Typography.Header;
                    local l_FontSize_0 = l_Header_0.FontSize;
                    l_renderLeft_1 = function()
                        return v4.createElement(v4.Fragment, nil, {
                            LeftFrame = v4.createElement("Frame", {
                                Selectable = false,
                                Size = UDim2.new(1, 0, 0, l_FontSize_0),
                                BorderSizePixel = 0,
                                BackgroundTransparency = 1
                            }, {
                                Layout = v4.createElement("UIListLayout", {
                                    SortOrder = Enum.SortOrder.LayoutOrder,
                                    FillDirection = Enum.FillDirection.Horizontal,
                                    VerticalAlignment = Enum.VerticalAlignment.Center,
                                    Padding = UDim.new(0, l_Tokens_1.Global.Space_150)
                                }),
                                Left = v4.createElement("Frame", {
                                    LayoutOrder = 1,
                                    Selectable = false,
                                    Size = UDim2.fromOffset(0, 0),
                                    BorderSizePixel = 0,
                                    BackgroundTransparency = 1,
                                    AutomaticSize = Enum.AutomaticSize.XY
                                }, {
                                    LeftContent = if not l_renderLeft_0 then nil else l_renderLeft_0()
                                }),
                                TextLabel = v4.createElement(v9, {
                                    LayoutOrder = 2,
                                    Selectable = false,
                                    ClipsDescendants = true,
                                    Text = l_title_0,
                                    TextTruncate = Enum.TextTruncate.AtEnd,
                                    TextWrapped = false,
                                    TextXAlignment = Enum.TextXAlignment.Left,
                                    fontStyle = l_Header_0,
                                    colorStyle = l_Tokens_1.Semantic.Color.Text.Emphasis
                                }, {
                                    TextPadding = v4.createElement("UIPadding", {
                                        PaddingTop = UDim.new(0, l_Tokens_1.Global.Space_25),
                                        PaddingBottom = UDim.new(0, l_Tokens_1.Global.Space_25)
                                    })
                                })
                            })
                        });
                    end;
                end;
                return l_renderLeft_1;
            end;
        end, {
            v29.title,
            v29.isTitleCentered,
            v29.renderLeft,
            v29.isSecondary,
            v29.shouldHideSecondaryLeftItem,
            v30
        });
    end;
    return function(v47)
        local v48 = v5.Dictionary.join(v12, v47);
        local v49 = v8();
        local l_Tokens_2 = v49.Tokens;
        local l_title_1 = v48.title;
        local l_renderCenter_0 = v48.renderCenter;
        local l_renderRight_0 = v48.renderRight;
        local l_isTitleCentered_1 = v48.isTitleCentered;
        local l_isSecondary_1 = v48.isSecondary;
        local l_onHeaderActivated_0 = v48.onHeaderActivated;
        local l_contentPaddingRight_0 = v48.contentPaddingRight;
        local l_automaticHeight_0 = v48.automaticHeight;
        local l_isOnMedia_1 = v48.isOnMedia;
        local l_zIndex_0 = v48.zIndex;
        local l_hasDivider_0 = v48.hasDivider;
        local v62 = true;
        if v48.renderLeft ~= nil then
            v62 = v48.renderLeft == v4.None;
        end;
        local v63 = v46(v48, v49);
        local v67 = v4.useMemo(function()
            local l_l_renderCenter_0_0 = l_renderCenter_0;
            if not (((l_l_renderCenter_0_0 or v62) or l_isSecondary_1) or not l_isTitleCentered_1) then
                local l_Header_1 = l_Tokens_2.Semantic.Typography.Header;
                local l_FontSize_1 = l_Header_1.FontSize;
                l_l_renderCenter_0_0 = function()
                    return v4.createElement(v9, {
                        Selectable = false,
                        ClipsDescendants = true,
                        Size = UDim2.new(1, 0, 0, l_FontSize_1),
                        Text = l_title_1,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        TextWrapped = false,
                        fontStyle = l_Header_1,
                        colorStyle = l_Tokens_2.Semantic.Color.Text.Emphasis
                    }, {
                        TextPadding = v4.createElement("UIPadding", {
                            PaddingTop = UDim.new(0, l_Tokens_2.Global.Space_25),
                            PaddingBottom = UDim.new(0, l_Tokens_2.Global.Space_25)
                        })
                    });
                end;
            end;
            return l_l_renderCenter_0_0;
        end, {
            l_renderCenter_0,
            v62,
            l_isSecondary_1,
            l_isTitleCentered_1,
            l_Tokens_2
        });
        local v69 = v4.useMemo(function()
            if (not v63 or not l_renderCenter_0) or not l_renderRight_0 then
                if ((l_renderCenter_0 or v62) or l_isSecondary_1) or not l_isTitleCentered_1 then
                    return math.huge;
                else
                    local l_Header_2 = l_Tokens_2.Semantic.Typography.Header;
                    return v10(l_title_1, l_Header_2.FontSize, l_Header_2.Font, Vector2.new(math.huge, math.huge)).X;
                end;
            else
                return 0;
            end;
        end, {
            l_title_1,
            l_isTitleCentered_1,
            v62,
            v63,
            l_renderCenter_0,
            l_renderRight_0,
            l_isSecondary_1,
            l_Tokens_2
        });
        local v70 = v4.useMemo(function()
            if not l_contentPaddingRight_0 then
                if not v62 then
                    return UDim.new(0, l_Tokens_2.Global.Space_300);
                else
                    return UDim.new(0, 0);
                end;
            else
                return l_contentPaddingRight_0;
            end;
        end, {
            l_contentPaddingRight_0,
            v62,
            l_Tokens_2
        });
        local v71 = v28(v48, v49);
        local l_BackgroundStyle_0 = v71.BackgroundStyle;
        local l_Padding_0 = v71.Padding;
        return v4.createElement("Frame", {
            Selectable = false,
            Size = UDim2.new(1, 0, 0, if not l_isOnMedia_1 then v48.barHeight else v48.barHeight + l_Tokens_2.Global.Size_500),
            BorderSizePixel = 0,
            BackgroundColor3 = l_BackgroundStyle_0.Color3,
            BackgroundTransparency = l_BackgroundStyle_0.Transparency,
            AutomaticSize = if not l_automaticHeight_0 then nil else Enum.AutomaticSize.Y,
            ZIndex = l_zIndex_0
        }, {
            Gradient = if not l_isOnMedia_1 then nil else v4.createElement("UIGradient", {
                Rotation = 90,
                Color = ColorSequence.new({
                    ColorSequenceKeypoint.new(0, Color3.new(0, 0, 0)),
                    ColorSequenceKeypoint.new(1, Color3.new(0, 0, 0))
                }),
                Transparency = NumberSequence.new({
                    NumberSequenceKeypoint.new(0, 0.7),
                    NumberSequenceKeypoint.new(1, 1)
                })
            }),
            OnMediaExtendedHeight = if not l_isOnMedia_1 then nil else v4.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, l_Tokens_2.Global.Size_500)
            }),
            Bar = v4.createElement("Frame", {
                Selectable = false,
                Size = UDim2.fromScale(1, 0),
                BorderSizePixel = 0,
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y
            }, {
                Padding = v4.createElement("UIPadding", {
                    PaddingTop = l_Padding_0.Top,
                    PaddingRight = l_Padding_0.Right,
                    PaddingBottom = l_Padding_0.Bottom,
                    PaddingLeft = l_Padding_0.Left
                }),
                ThreeSectionBar = v4.createElement(v11, {
                    BackgroundTransparency = 1,
                    barHeight = if not l_automaticHeight_0 then math.max(0, (v48.barHeight - l_Padding_0.Top.Offset) - l_Padding_0.Bottom.Offset) else 0,
                    automaticHeight = l_automaticHeight_0,
                    renderLeft = v63,
                    renderCenter = v67,
                    renderRight = l_renderRight_0,
                    estimatedCenterWidth = v69,
                    sectionSpacing = l_Tokens_2.Global.Space_150,
                    contentPaddingRight = v70
                })
            }),
            HeaderClickArea = if not l_onHeaderActivated_0 then nil else v4.createElement("TextButton", {
                AutoButtonColor = false,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Text = "",
                Size = UDim2.fromScale(1, 1),
                Selectable = false,
                [v4.Event.Activated] = l_onHeaderActivated_0,
                ZIndex = 0
            }),
            BottomDivider = if not l_hasDivider_0 then nil else v4.createElement("Frame", {
                Selectable = false,
                Size = UDim2.new(1, 0, 0, l_Tokens_2.Global.Stroke_100),
                Position = UDim2.new(0, 0, 1, -l_Tokens_2.Global.Stroke_100),
                BackgroundColor3 = l_Tokens_2.Semantic.Color.Common.Divider.Color3,
                BackgroundTransparency = l_Tokens_2.Semantic.Color.Common.Divider.Transparency,
                BorderSizePixel = 0,
                ZIndex = 1
            })
        });
    end;
else
    return require(l_Parent_0.HeaderBar_DEPRECATED);
end;


local l_Parent_0 = script.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_0.ImageSet.Images);
local v6 = require(l_Parent_0.ImageSet.Enum.IconSize);
local v7 = require(l_Parent_0.Container.getPageMargin);
local v8 = require(l_Parent_1.Core.Style.withStyle);
local v9 = require(l_Parent_1.App.Button.IconButton);
local v10 = require(l_Parent_1.Core.Text.GenericTextLabel.GenericTextLabel);
local v11 = require(l_Parent_1.Core.Text.GetTextSize);
local v12 = require(l_Parent_1.Core.Bar.ThreeSectionBar);
local v13 = v3.PureComponent:extend("HeaderBar");
v13.renderLeft = {
    backButton = function(v14)
        return function(_)
            return v3.createElement(v9, {
                size = UDim2.fromOffset(0, 0),
                iconSize = v6.Medium,
                icon = v5["icons/navigation/pushBack"],
                onActivated = v14
            });
        end;
    end
};
v13.validateProps = v4.strictInterface({
    title = v4.optional(v4.string),
    margin = v4.optional(v4.number),
    contentPaddingRight = v4.optional(v4.UDim),
    barHeight = v4.optional(v4.number),
    renderRight = v4.optional(v4.callback),
    renderLeft = v4.optional(v4.callback),
    renderCenter = v4.optional(v4.callback),
    backgroundTransparency = v4.optional(v4.number),
    onHeaderActivated = v4.optional(v4.callback),
    memoKey = v4.optional(v4.number),
    isSecondary = v4.optional(v4.boolean),
    shouldHideSecondaryLeftItem = v4.optional(v4.boolean)
});
v13.defaultProps = {
    barHeight = 48,
    title = "",
    isSecondary = false
};
v13.init = function(v16)
    v16.state = {
        margin = 0
    };
    v16.onResize = function(v17)
        v16:setState({
            margin = v7(v17.AbsoluteSize.X)
        });
    end;
    v16.ref = v3.createRef();
end;
v13.render = function(v18)
    return v8(function(v19)
        local l_Theme_0 = v19.Theme;
        local l_Font_0 = v19.Font;
        local l_renderLeft_0 = v18.props.renderLeft;
        local v23 = true;
        if l_renderLeft_0 ~= nil then
            v23 = l_renderLeft_0 == v3.None;
        end;
        local l_renderCenter_0 = v18.props.renderCenter;
        local l_renderRight_0 = v18.props.renderRight;
        local l_huge_0 = math.huge;
        if v23 and string.len(v18.props.title) > 0 then
            l_renderLeft_0 = function(v27)
                return v3.createFragment({
                    Text = v3.createElement(v10, {
                        fluidSizing = true,
                        Text = v18.props.title,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        fontStyle = l_Font_0.Title,
                        colorStyle = l_Theme_0.TextEmphasis
                    }, v27[v3.Children])
                });
            end;
        end;
        if not ((not v18.props.isSecondary or v23) or v18.props.shouldHideSecondaryLeftItem) and string.len(v18.props.title) > 0 then
            local l_Header2_0 = l_Font_0.Header2;
            local v29 = l_Header2_0.RelativeSize * l_Font_0.BaseSize;
            local l_v29_0 = v29 --[[ copy: 9 -> 10 ]];
            local l_l_Header2_0_0 = l_Header2_0 --[[ copy: 8 -> 11 ]];
            l_renderLeft_0 = function()
                return v3.createFragment({
                    Text = v3.createElement("Frame", {
                        Size = UDim2.new(1, 0, 0, l_v29_0),
                        BackgroundTransparency = 1,
                        Transparency = 1
                    }, {
                        Layout = v3.createElement("UIListLayout", {
                            SortOrder = Enum.SortOrder.LayoutOrder,
                            FillDirection = Enum.FillDirection.Horizontal,
                            VerticalAlignment = Enum.VerticalAlignment.Center,
                            Padding = UDim.new(0, 12)
                        }),
                        renderLeft = v18.props.renderLeft(v18.props),
                        Divider = v3.createElement("Frame", {
                            BackgroundColor3 = l_Theme_0.Divider.Color,
                            BackgroundTransparency = l_Theme_0.Divider.Transparency,
                            BorderSizePixel = 0,
                            Size = UDim2.new(0, 1, 1, 0),
                            LayoutOrder = 1
                        }),
                        TextLabel = v3.createElement(v10, {
                            ClipsDescendants = true,
                            Text = v18.props.title,
                            TextTruncate = Enum.TextTruncate.AtEnd,
                            TextWrapped = false,
                            TextXAlignment = Enum.TextXAlignment.Left,
                            fontStyle = l_l_Header2_0_0,
                            colorStyle = l_Theme_0.TextEmphasis,
                            LayoutOrder = 2
                        })
                    })
                });
            end;
        end;
        if not ((not l_renderLeft_0 or not l_renderCenter_0) or not l_renderRight_0) then
            l_huge_0 = 0;
        end;
        if not ((l_renderCenter_0 or v23) or v18.props.isSecondary) then
            local l_Header1_0 = l_Font_0.Header1;
            local v33 = l_Header1_0.RelativeSize * l_Font_0.BaseSize;
            l_renderCenter_0 = function()
                return v3.createElement(v10, {
                    ClipsDescendants = true,
                    Size = UDim2.new(1, 0, 0, v33),
                    Text = v18.props.title,
                    TextTruncate = Enum.TextTruncate.AtEnd,
                    TextWrapped = false,
                    fontStyle = l_Header1_0,
                    colorStyle = l_Theme_0.TextEmphasis
                });
            end;
            l_huge_0 = v11(v18.props.title, v33, l_Header1_0.Font, Vector2.new(1000, 1000)).X;
        end;
        return v3.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, v18.props.barHeight),
            [v3.Change.AbsoluteSize] = v18.onResize
        }, {
            HeaderClickArea = not not v18.props.onHeaderActivated and v3.createElement("TextButton", {
                AutoButtonColor = false,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 1, 0),
                Selectable = false,
                [v3.Event.Activated] = v18.props.onHeaderActivated,
                ZIndex = 0
            }) or nil,
            ThreeSectionBar = v3.createElement(v12, {
                BackgroundTransparency = v18.props.backgroundTransparency or l_Theme_0.BackgroundDefault.Transparency,
                BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
                barHeight = v18.props.barHeight,
                marginLeft = v18.props.margin or v18.state.margin,
                marginRight = v18.props.margin or v18.state.margin,
                renderLeft = l_renderLeft_0,
                renderCenter = l_renderCenter_0,
                estimatedCenterWidth = l_huge_0,
                contentPaddingRight = v18.props.contentPaddingRight or UDim.new(0, not v23 and 12 or 0),
                renderRight = l_renderRight_0
            })
        });
    end);
end;
v13.didMount = function(v34)
    if v34.ref.current then
        v34.onResize(v34.ref.current);
    end;
end;
return v13;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local v4 = require(l_Parent_3.Roact);
local v5 = require(l_Parent_3.Cryo);
local v6 = require(l_Parent_3.RoactGamepad);
local v7 = require(l_Parent_3.t);
local l_FitFrameOnAxis_0 = require(l_Parent_3.FitFrame).FitFrameOnAxis;
local v9 = require(l_Parent_0.Button);
local v10 = require(l_Parent_0.IconButton);
local v11 = require(l_Parent_0.TextButton);
local v12 = require(l_Parent_0.Enum.ButtonType);
local v13 = require(l_Parent_2.Core.Style.withStyle);
local v14 = require(l_Parent_1.ImageSet.Enum.IconSize);
local v15 = require(l_Parent_1.Container.getPageMargin);
local v16 = require(l_Parent_1.Style.Constants);
local v17 = v4.PureComponent:extend("ActionBar");
v17.init = function(v18)
    v18.buttonRefs = v6.createRefCache();
    v18.state = {
        frameWidth = 0
    };
    v18.frameRef = v18.props.frameRef or v4.createRef();
    v18.updateFrameSize = function(v19)
        local l_X_0 = v19.AbsoluteSize.X;
        if l_X_0 ~= v18.state.frameWidth then
            v18:setState({
                frameWidth = l_X_0
            });
        end;
        if v18.props.onAbsoluteSizeChanged then
            v18.props.onAbsoluteSizeChanged(v19.AbsoluteSize);
        end;
    end;
    v18.getGamepadNextSelectionLeft = function(v21, _)
        return v21 > 1 and v18.buttonRefs[v21 - 1] or nil;
    end;
    v18.getGamepadNextSelectionRight = function(v23, v24)
        return v23 < v24 and v18.buttonRefs[v23 + 1] or nil;
    end;
end;
v17.validateProps = v7.strictInterface({
    button = v7.optional(v7.strictInterface({
        props = v9.validateProps
    })),
    iconSize = v7.optional(v7.number),
    buttonHeight = v7.optional(v7.number),
    buttonPadding = v7.optional(v7.number),
    enableButtonAtStart = v7.optional(v7.boolean),
    icons = v7.optional(v7.array(v7.strictInterface({
        props = v10.validateProps
    }))),
    marginOverride = v7.optional(v7.strictInterface({
        left = v7.number,
        right = v7.number,
        top = v7.number,
        bottom = v7.number
    })),
    horizontalAlignment = v7.optional(v7.enum(Enum.HorizontalAlignment)),
    onAbsoluteSizeChanged = v7.optional(v7.callback),
    [v4.Children] = v7.optional(v7.table),
    NextSelectionLeft = v7.optional(v7.table),
    NextSelectionRight = v7.optional(v7.table),
    NextSelectionUp = v7.optional(v7.table),
    NextSelectionDown = v7.optional(v7.table),
    frameRef = v7.optional(v7.table),
    textButtons = v7.optional(v7.array(v7.strictInterface({
        props = v11.validateProps
    })))
});
v17.defaultProps = {
    horizontalAlignment = Enum.HorizontalAlignment.Center,
    iconSize = 36,
    buttonHeight = 48,
    buttonPadding = 12
};
v17.render = function(v25)
    return v13(function(_)
        local v27 = v15(v25.state.frameWidth);
        local v28 = v25.state.frameWidth - v27 * 2;
        local l_Medium_0 = v14.Medium;
        local v30 = nil;
        v30 = if not v25.props.marginOverride then {
            left = v27,
            right = v27,
            top = 0,
            bottom = v16.Layout.ActionBar.PositionOffset
        } else v25.props.marginOverride;
        local v31 = 0;
        if not (not v25.props.icons or not #v25.props.icons) then
            v31 = #v25.props.icons;
        end;
        local v32 = 0;
        if not (not v25.props.textButtons or not #v25.props.textButtons) then
            v32 = #v25.props.textButtons;
        end;
        local v33 = v25.props.button ~= nil and 1 or 0;
        local v34 = false;
        if v25.props.enableButtonAtStart == true then
            v34 = v33 ~= 0;
        end;
        local v35 = (v32 + v31) + v33;
        local v36 = {};
        if v31 ~= 0 then
            for v37, v38 in ipairs(v25.props.icons) do
                local v39 = not not v34 and v37 + v33 or v37;
                local v40 = v5.Dictionary.join({
                    layoutOrder = v39,
                    iconSize = l_Medium_0
                }, v38.props);
                table.insert(v36, v4.createElement(v6.Focusable.Frame, {
                    key = "Button" .. tostring(v39),
                    Size = UDim2.fromOffset(v25.props.iconSize, v25.props.iconSize),
                    BackgroundTransparency = 1,
                    [v4.Ref] = v25.buttonRefs[v39],
                    NextSelectionUp = nil,
                    NextSelectionDown = nil,
                    NextSelectionLeft = v25.getGamepadNextSelectionLeft(v39, v35),
                    NextSelectionRight = v25.getGamepadNextSelectionRight(v39, v35),
                    inputBindings = {
                        Activated = not not v40.onActivated and v6.Input.onBegin(Enum.KeyCode.ButtonA, v40.onActivated) or nil
                    }
                }, {
                    Icon = v4.createElement(v10, v40)
                }));
            end;
        end;
        if v32 ~= 0 then
            for v41, v42 in ipairs(v25.props.textButtons) do
                local v43 = if not v34 then v41 else v41 + v33 + v31;
                local v44 = v5.Dictionary.join({
                    layoutOrder = v43
                }, v42.props);
                table.insert(v36, v4.createElement(v6.Focusable.Frame, {
                    key = "Button" .. tostring(v43),
                    Size = UDim2.fromOffset(0, v25.props.iconSize),
                    AutomaticSize = Enum.AutomaticSize.X,
                    BackgroundTransparency = 1,
                    [v4.Ref] = v25.buttonRefs[v43],
                    NextSelectionUp = nil,
                    NextSelectionDown = nil,
                    NextSelectionLeft = v25.getGamepadNextSelectionLeft(v43, v35),
                    NextSelectionRight = v25.getGamepadNextSelectionRight(v43, v35),
                    inputBindings = {
                        Activated = not not v44.onActivated and v6.Input.onBegin(Enum.KeyCode.ButtonA, v44.onActivated) or nil
                    }
                }, {
                    TextButton = v4.createElement(v11, v44)
                }));
            end;
        end;
        if v33 ~= 0 then
            local v45 = UDim2.fromOffset(v28 - v31 * (v25.props.iconSize + v25.props.buttonPadding), v25.props.buttonHeight);
            local v46 = if not v34 then v31 + 1 else 1;
            local v47 = v5.Dictionary.join({
                layoutOrder = v46,
                size = v45
            }, v25.props.button.props);
            local v48 = {
                key = "Button" .. v46,
                Size = v45,
                BackgroundTransparency = 1,
                [v4.Ref] = v25.buttonRefs[v46],
                NextSelectionUp = nil,
                NextSelectionDown = nil,
                NextSelectionLeft = v25.getGamepadNextSelectionLeft(v46, v35),
                NextSelectionRight = v25.getGamepadNextSelectionRight(v46, v35),
                inputBindings = {
                    Activated = v6.Input.onBegin(Enum.KeyCode.ButtonA, v47.onActivated)
                }
            };
            if v47.buttonType == nil then
                v47.buttonType = if v31 == 0 then v12.PrimarySystem else v12.PrimaryContextual;
            end;
            table.insert(v36, if not v34 then v35 else 1, v4.createElement(v6.Focusable.Frame, v48, {
                Icon = v4.createElement(v9, v47)
            }));
        end;
        if v25.props[v4.Children] then
            v36 = v25.props[v4.Children];
        end;
        return v4.createElement(v6.Focusable[l_FitFrameOnAxis_0], {
            BackgroundTransparency = 1,
            minimumSize = UDim2.new(1, 0, 0, v25.props.buttonHeight),
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = v25.props.horizontalAlignment,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Position = UDim2.new(0, 0, 1, 0),
            AnchorPoint = Vector2.new(0, 1),
            contentPadding = UDim.new(0, 12),
            [v4.Ref] = v25.frameRef,
            [v4.Change.AbsoluteSize] = v25.updateFrameSize,
            margin = v30,
            NextSelectionLeft = v25.props.NextSelectionLeft,
            NextSelectionRight = v25.props.NextSelectionRight,
            NextSelectionUp = v25.props.NextSelectionUp,
            NextSelectionDown = v25.props.NextSelectionDown
        }, v36);
    end);
end;
v17.didMount = function(v49)
    if v49.frameRef.current then
        v49.updateFrameSize(v49.frameRef.current);
    end;
end;
local v52 = v4.forwardRef(function(v50, v51)
    return v4.createElement(v17, v5.Dictionary.join(v50, {
        frameRef = v51
    }));
end);
v52.validateProps = v17.validateProps;
return v52;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local l_Core_0 = l_Parent_2.Core;
local v5 = require(l_Parent_3.React);
local v6 = require(l_Parent_3.Cryo);
local v7 = require(l_Parent_3.RoactGamepad);
local v8 = require(l_Parent_3.t);
local v9 = require(l_Core_0.ImageSet.Validator.validateImage);
local v10 = require(l_Core_0.Style.Validator.validateFontInfo);
local v11 = require(l_Parent_2.Core.Style.Validator.validateTypographyInfo);
local v12 = require(l_Parent_0.Enum.ButtonType);
local v13 = require(l_Core_0.Button.Enum.StandardButtonSize);
local v14 = require(l_Core_0.Button.GenericButton);
local v15 = require(l_Core_0.Control.Enum.ControlState);
local v16 = require(l_Parent_2.Utility.isReactTagProp);
local v17 = require(l_Parent_1.ImageSet.Images);
local v18 = require(l_Parent_1.SelectionImage.CursorKind);
local v19 = require(l_Parent_1.SelectionImage.withSelectionCursorProvider);
local v20 = require(l_Parent_2.App.SelectionCursor.useCursor);
local v21 = require(l_Parent_2.UIBloxConfig);
local v22 = v5.PureComponent:extend("Button");
local v23 = {
    [v12.Alert] = {
        [v15.Default] = "Alert"
    },
    [v12.PrimaryContextual] = {
        [v15.Default] = "ContextualPrimaryDefault",
        [v15.Hover] = "ContextualPrimaryOnHover"
    },
    [v12.PrimarySystem] = {
        [v15.Default] = "SystemPrimaryDefault",
        [v15.Hover] = "SystemPrimaryOnHover"
    },
    [v12.Secondary] = {
        [v15.Default] = "SecondaryDefault",
        [v15.Hover] = "SecondaryOnHover"
    }
};
local v24 = {
    [v12.Alert] = {
        [v15.Default] = "Alert"
    },
    [v12.PrimaryContextual] = {
        [v15.Default] = "ContextualPrimaryContent"
    },
    [v12.PrimarySystem] = {
        [v15.Default] = "SystemPrimaryContent"
    },
    [v12.Secondary] = {
        [v15.Default] = "SecondaryContent",
        [v15.Hover] = "SecondaryOnHover"
    }
};
local v25 = {
    [v12.Alert] = v17["component_assets/circle_17_stroke_1"],
    [v12.PrimaryContextual] = v17["component_assets/circle_17"],
    [v12.PrimarySystem] = v17["component_assets/circle_17"],
    [v12.Secondary] = v17["component_assets/circle_17_stroke_1"]
};
local v26 = {
    [v12.PrimaryContextual] = v17["component_assets/bulletRight_17"],
    [v12.PrimarySystem] = v17["component_assets/bulletRight_17"]
};
local v27 = {
    [v12.Alert] = false,
    [v12.PrimaryContextual] = true,
    [v12.PrimarySystem] = false,
    [v12.Secondary] = false
};
local v28 = UDim.new(0, 8);
v22.validateProps = v8.strictInterface({
    [v5.Tag] = v16,
    buttonType = v8.optional(v12.isEnumValue),
    automaticSize = v8.optional(v8.EnumItem),
    size = v8.optional(v8.UDim2),
    standardSize = v8.optional(v13.isEnumValue),
    maxWidth = v8.optional(v8.numberPositive),
    fitContent = v8.optional(v8.boolean),
    anchorPoint = v8.optional(v8.Vector2),
    position = v8.optional(v8.UDim2),
    layoutOrder = v8.optional(v8.number),
    icon = v8.optional(v9),
    text = v8.optional(v8.string),
    inputIcon = v8.optional(v9),
    fontStyle = v8.optional(v8.union(v8.string, v10, v11)),
    buttonTextOverride = v8.optional(v8.table),
    isDisabled = v8.optional(v8.boolean),
    isLoading = v8.optional(v8.boolean),
    isHoverBackgroundEnabled = v8.optional(v8.boolean),
    isDelayedInput = v8.optional(v8.boolean),
    enableInputDelayed = v8.optional(v8.boolean),
    delayInputSeconds = v8.optional(v8.numberPositive),
    onActivated = v8.callback,
    onStateChanged = v8.optional(v8.callback),
    userInteractionEnabled = v8.optional(v8.boolean),
    feedbackType = v8.optional(v8.string),
    NextSelectionDown = v8.optional(v8.table),
    NextSelectionUp = v8.optional(v8.table),
    NextSelectionLeft = v8.optional(v8.table),
    NextSelectionRight = v8.optional(v8.table),
    buttonRef = v8.optional(v8.union(v8.table, v8.callback)),
    cursor = v8.optional(v8.any),
    [v5.Change.AbsoluteSize] = v8.optional(v8.callback),
    [v5.Change.AbsolutePosition] = v8.optional(v8.callback)
});
v22.defaultProps = {
    buttonType = v12.PrimarySystem,
    isDisabled = false,
    isLoading = false
};
v22.render = function(v29)
    return v19(function(v30)
        return v5.createElement(v7.Focusable[v14], {
            [v5.Tag] = v29.props[v5.Tag],
            Size = v29.props.size,
            standardSize = v29.props.standardSize,
            maxWidth = v29.props.maxWidth,
            fitContent = v29.props.fitContent,
            AnchorPoint = v29.props.anchorPoint,
            Position = v29.props.position,
            LayoutOrder = v29.props.layoutOrder,
            SelectionImageObject = if not v29.props.cursor then v30(v18.RoundedRectNoInset) else v29.props.cursor,
            icon = v29.props.icon,
            text = v29.props.text,
            inputIcon = v29.props.inputIcon,
            fontStyle = v29.props.fontStyle,
            isDisabled = v29.props.isDisabled,
            isLoading = v29.props.isLoading,
            isHoverBackgroundEnabled = v27[v29.props.buttonType],
            isDelayedInput = v29.props.isDelayedInput,
            enableInputDelayed = v29.props.enableInputDelayed,
            delayInputSeconds = v29.props.delayInputSeconds,
            onActivated = v29.props.onActivated,
            onStateChanged = v29.props.onStateChanged,
            userInteractionEnabled = v29.props.userInteractionEnabled,
            buttonImage = v25[v29.props.buttonType],
            delayedInputImage = v26[v29.props.buttonType],
            buttonStateColorMap = v23[v29.props.buttonType],
            contentStateColorMap = v24[v29.props.buttonType],
            buttonTextOverride = v29.props.buttonTextOverride,
            NextSelectionUp = v29.props.NextSelectionUp,
            NextSelectionDown = v29.props.NextSelectionDown,
            NextSelectionLeft = v29.props.NextSelectionLeft,
            NextSelectionRight = v29.props.NextSelectionRight,
            ref = v29.props.buttonRef,
            feedbackType = v29.props.feedbackType,
            [v5.Change.AbsoluteSize] = v29.props[v5.Change.AbsoluteSize],
            [v5.Change.AbsolutePosition] = v29.props[v5.Change.AbsolutePosition]
        });
    end);
end;
local function v32(v31)
    return v5.createElement(v22, (v6.Dictionary.join({
        cursor = v20(v28)
    }, v31)));
end;
local v35 = v5.forwardRef(function(v33, v34)
    return v5.createElement(if not v21.useNewSelectionCursor then v22 else v32, v6.Dictionary.join(v33, {
        buttonRef = v34
    }));
end);
v35.validateProps = v22.validateProps;
return v35;


local l_Parent_0 = script.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.RoactGamepad);
local v6 = require(l_Parent_2.t);
local v7 = require(l_Parent_0.Button);
local v8 = require(l_Parent_0.Enum.ButtonType);
local v9 = require(l_Parent_1.Core.Text.GetTextSize);
local v10 = require(l_Parent_1.Core.Style.withStyle);
local v11 = require(l_Parent_1.UIBloxConfig);
local l_FitFrameOnAxis_0 = require(l_Parent_2.FitFrame).FitFrameOnAxis;
local v13 = v3.PureComponent:extend("ButtonStack");
v13.validateProps = v6.strictInterface({
    buttons = v6.array(v6.strictInterface({
        buttonType = v6.optional(v8.isEnumValue),
        props = v7.validateProps,
        isDefaultChild = v6.optional(v6.boolean)
    })),
    buttonHeight = v6.optional(v6.numberMin(0)),
    forcedFillDirection = v6.optional(v6.enum(Enum.FillDirection)),
    marginBetween = v6.optional(v6.numberMin(0)),
    minHorizontalButtonPadding = v6.optional(v6.numberMin(0)),
    disableRoactGamepadButtonSelection = v6.optional(v6.boolean),
    disableGamepadRefs = v6.optional(v6.boolean),
    NextSelectionLeft = v6.optional(v6.table),
    NextSelectionRight = v6.optional(v6.table),
    NextSelectionUp = v6.optional(v6.table),
    NextSelectionDown = v6.optional(v6.table),
    frameRef = v6.optional(v6.table)
});
v13.defaultProps = {
    buttonHeight = 36,
    marginBetween = 12,
    minHorizontalButtonPadding = 8
};
v13.init = function(v14)
    v14.buttonRefs = v5.createRefCache();
    v14.state = {
        frameWidth = 0
    };
    v14.updateFrameSize = function(v15)
        local l_X_0 = v15.AbsoluteSize.X;
        if l_X_0 ~= v14.state.frameWidth then
            v14:setState({
                frameWidth = l_X_0
            });
        end;
    end;
end;
v13.render = function(v17)
    return v10(function(v18)
        local l_Font_0 = v18.Font;
        local v20 = l_Font_0.Body.RelativeSize * l_Font_0.BaseSize;
        local l_buttons_0 = v17.props.buttons;
        local v22 = #l_buttons_0 > 1 and v17.props.marginBetween or 0;
        local v23 = v17.state.frameWidth / #l_buttons_0 - (v22 * (#l_buttons_0 - 1)) / #l_buttons_0;
        local v24 = false;
        local v25 = nil;
        local v26 = nil;
        if not v17.props.forcedFillDirection then
            for _, v28 in ipairs(l_buttons_0) do
                if v23 - 2 * v17.props.minHorizontalButtonPadding < v9(v28.props.text or "", v20, l_Font_0.Body.Font, Vector2.new(v17.state.frameWidth, v17.props.buttonHeight), not not v11.ignoreRichTextTagsForTextSizeCalculation and if v28.props.buttonTextOverride then v28.props.buttonTextOverride.RichText else false).X then
                    v24 = true;
                    break;
                end;
            end;
            v25 = not not v24 and Enum.FillDirection.Vertical or Enum.FillDirection.Horizontal;
        else
            v24 = v17.props.forcedFillDirection == Enum.FillDirection.Vertical;
            v25 = v17.props.forcedFillDirection;
        end;
        local v29 = not not v24 and UDim2.new(1, 0, 0, v17.props.buttonHeight) or UDim2.new(0, v23, 0, v17.props.buttonHeight);
        local v30 = {};
        for v31, v32 in ipairs(l_buttons_0) do
            local v33 = v4.Dictionary.join({
                key = tostring(v31),
                layoutOrder = not not v24 and #l_buttons_0 - v31 or v31,
                size = v29,
                buttonType = v32.buttonType or v8.Secondary
            }, v32.props);
            if v32.isDefaultChild then
                v26 = v31;
            end;
            if not v17.props.disableGamepadRefs then
                local _ = nil;
                v33 = v4.Dictionary.join(v33, if not v17.props.disableRoactGamepadButtonSelection then {
                    [v3.Ref] = v17.buttonRefs[v31],
                    NextSelectionUp = (not not v24 and v31 > 1) and v17.buttonRefs[v31 - 1] or nil,
                    NextSelectionDown = (not not v24 and v31 < #l_buttons_0) and v17.buttonRefs[v31 + 1] or nil,
                    NextSelectionLeft = (not v24 and v31 > 1) and v17.buttonRefs[v31 - 1] or nil,
                    NextSelectionRight = (not v24 and v31 < #l_buttons_0) and v17.buttonRefs[v31 + 1] or nil
                } else {
                    [v3.Ref] = v17.buttonRefs[v31]
                });
            end;
            table.insert(v30, v3.createElement(v7, v33));
        end;
        return v3.createElement(v5.Focusable[l_FitFrameOnAxis_0], {
            BackgroundTransparency = 1,
            contentPadding = UDim.new(0, v22),
            FillDirection = v25,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            LayoutOrder = 3,
            minimumSize = UDim2.new(1, 0, 0, v17.props.buttonHeight),
            [v3.Ref] = v17.props.frameRef,
            [v3.Change.AbsoluteSize] = v17.updateFrameSize,
            NextSelectionLeft = v17.props.NextSelectionLeft,
            NextSelectionRight = v17.props.NextSelectionRight,
            NextSelectionUp = v17.props.NextSelectionUp,
            NextSelectionDown = v17.props.NextSelectionDown,
            defaultChild = not not v26 and v17.buttonRefs[v26] or nil
        }, v30);
    end);
end;
local v37 = v3.forwardRef(function(v35, v36)
    return v3.createElement(v13, v4.Dictionary.join(v35, {
        frameRef = v36
    }));
end);
v37.validateProps = v13.validateProps;
return v37;


return require(script.Parent.Parent.Parent.Parent.Parent.enumerate)("ButtonType", {
    "Alert",
    "PrimaryContextual",
    "PrimarySystem",
    "Secondary"
});


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_Parent_1.enumerate);
local v7 = require(l_Parent_1.UIBlox.UIBloxConfig);
local v8 = require(l_Core_0.Control.Interactable);
local v9 = require(l_Core_0.Control.Enum.ControlState);
local v10 = require(l_Core_0.Button.getContentStyle);
local v11 = require(l_script_FirstAncestor_0.ImageSet.getIconSize);
local v12 = require(l_Core_0.Utility.bindingValidator);
local v13 = require(l_Core_0.ImageSet.Validator.validateImage);
local v14 = require(l_Core_0.Style.Validator.validateColorInfo);
local v15 = require(l_Core_0.Style.withStyle);
local v16 = require(l_Core_0.Button.HoverButtonBackground);
local v17 = require(l_Core_0.ImageSet.ImageSetComponent);
local v18 = require(l_script_FirstAncestor_0.ImageSet.Enum.IconSize);
local v19 = require(l_script_FirstAncestor_0.SelectionImage.withSelectionCursorProvider);
local v20 = require(l_script_FirstAncestor_0.SelectionImage.CursorKind);
local l_Focusable_0 = require(l_Parent_1.RoactGamepad).Focusable;
local v22 = require(l_Parent_0.Utility.isCallable);
local v23 = require(l_Parent_0.App.SelectionCursor.withCursor);
local v24 = UDim.new(0, 8);
local v25 = v5.PureComponent:extend("IconButton");
v25.debugProps = v6("debugProps", {
    "controlState"
});
v25.validateProps = v4.strictInterface({
    onStateChanged = v4.optional(v22),
    isDisabled = v4.optional(v4.boolean),
    colorStyleDefault = v4.optional(v4.string),
    colorStyleHover = v4.optional(v4.string),
    colorDefault = v4.optional(v14),
    colorHover = v4.optional(v14),
    userInteractionEnabled = v4.optional(v4.boolean),
    onActivated = v4.optional(v22),
    onAbsolutePositionChanged = v4.optional(v22),
    anchorPoint = v4.optional(v4.Vector2),
    layoutOrder = v4.optional(v4.number),
    position = v4.optional(v4.union(v4.UDim2, v4.table)),
    size = v4.optional(v4.union(v4.UDim2, v4.table)),
    icon = v4.optional(v13),
    iconSize = v4.optional(v18.isEnumValue),
    iconColor3 = v4.optional(v4.Color3),
    iconTransparency = v4.optional(v4.union(v4.number, v12(v4.number))),
    showBackground = v4.optional(v4.boolean),
    backgroundColor = v4.optional(v14),
    backgroundTransparency = v4.optional(v4.union(v4.number, v12(v4.number))),
    [v5.Children] = v4.optional(v4.table),
    [v25.debugProps.controlState] = v4.optional(v9.isEnumValue),
    NextSelectionLeft = v4.optional(v4.table),
    NextSelectionRight = v4.optional(v4.table),
    NextSelectionUp = v4.optional(v4.table),
    NextSelectionDown = v4.optional(v4.table),
    inputBindings = v4.optional(v4.table),
    buttonRef = v4.optional(v4.union(v4.callback, v4.table)),
    [v5.Change.AbsoluteSize] = v4.optional(v4.callback)
});
v25.defaultProps = {
    anchorPoint = Vector2.new(0, 0),
    layoutOrder = 0,
    position = UDim2.new(0, 0, 0, 0),
    size = nil,
    icon = "",
    iconSize = v18.Medium,
    colorStyleDefault = "SystemPrimaryDefault",
    colorStyleHover = "SystemPrimaryDefault",
    iconColor3 = nil,
    iconTransparency = nil,
    showBackground = false,
    backgroundColor = nil,
    backgroundTransparency = nil,
    isDisabled = false,
    userInteractionEnabled = true,
    [v25.debugProps.controlState] = nil
};
v25.init = function(v26)
    v26:setState({
        controlState = v9.Initialize
    });
    v26.onStateChanged = function(v27, v28)
        v26:setState({
            controlState = v28
        });
        if v26.props.onStateChanged then
            v26.props.onStateChanged(v27, v28);
        end;
    end;
    local v29 = {
        [v18.Small] = 1,
        [v18.Medium] = 2,
        [v18.Large] = 3,
        [v18.XLarge] = 4,
        [v18.XXLarge] = 5
    };
    v26.getSize = function(v30)
        if not v26.props.size then
            local v31 = v30 + 4 * v29[v26.props.iconSize];
            return UDim2.fromOffset(v31, v31);
        else
            return v26.props.size;
        end;
    end;
end;
v25.render = function(v32)
    return v15(function(v33)
        return v19(function(v34)
            if not v7.useNewSelectionCursor then
                return v32:renderWithProviders(v33, v34);
            else
                return v23(function(v35)
                    return v32:renderWithProviders(v33, v34, v35.getCursor);
                end);
            end;
        end);
    end);
end;
v25.renderWithProviders = function(v36, v37, v38, v39)
    local v40 = v11(v36.props.iconSize, v37);
    local v41 = v36.getSize(v40);
    local l_showBackground_0 = v36.props.showBackground;
    local v43 = v36.props[v25.debugProps.controlState] or v36.state.controlState;
    local v44 = v10({
        [v9.Default] = v36.props.colorStyleDefault,
        [v9.Hover] = v36.props.colorStyleHover
    }, v43, v37);
    local v45 = nil;
    v45 = if v36.props.backgroundColor == nil then v37.Theme.UIMuted else v36.props.backgroundColor;
    return v5.createElement(l_Focusable_0[v8], {
        AnchorPoint = v36.props.anchorPoint,
        LayoutOrder = v36.props.layoutOrder,
        Position = v36.props.position,
        Size = v41,
        isDisabled = v36.props.isDisabled,
        onStateChanged = v36.onStateChanged,
        userInteractionEnabled = v36.props.userInteractionEnabled,
        BackgroundTransparency = 1,
        AutoButtonColor = false,
        [v5.Change.AbsoluteSize] = v36.props[v5.Change.AbsoluteSize],
        [v5.Change.AbsolutePosition] = v36.props.onAbsolutePositionChanged,
        [v5.Event.Activated] = v36.props.onActivated,
        [v5.Ref] = v36.props.buttonRef,
        NextSelectionLeft = v36.props.NextSelectionLeft,
        NextSelectionRight = v36.props.NextSelectionRight,
        NextSelectionUp = v36.props.NextSelectionUp,
        NextSelectionDown = v36.props.NextSelectionDown,
        inputBindings = v36.props.inputBindings,
        SelectionImageObject = if not v7.useNewSelectionCursor then v38(v20.RoundedRectNoInset) else v39(v24)
    }, {
        sizeConstraint = v5.createElement("UISizeConstraint", {
            MinSize = Vector2.new(v40, v40)
        }),
        imageLabel = v5.createElement(v17.Label, {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            Size = UDim2.fromOffset(v40, v40),
            BackgroundTransparency = 1,
            Image = v36.props.icon,
            ImageColor3 = v36.props.iconColor3 or v44.Color,
            ImageTransparency = v36.props.iconTransparency or v44.Transparency
        }, v36.props[v5.Children]),
        hoverBackground = v43 == v9.Hover and v5.createElement(v16) or nil,
        background = not not l_showBackground_0 and v5.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            BackgroundColor3 = v45.Color,
            BackgroundTransparency = v36.props.backgroundTransparency or v45.Transparency,
            ZIndex = not v7.useNewThemeColorPalettes and 0 or -10
        }, {
            corner = v5.createElement("UICorner", {
                CornerRadius = v24
            })
        }) or nil
    });
end;
return v25;


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_Parent_1.enumerate);
local v7 = require(l_Core_0.Control.Interactable);
local v8 = require(l_Core_0.Control.Enum.ControlState);
local v9 = require(l_Core_0.Button.getContentStyle);
local v10 = require(l_Core_0.Text.GetTextSize);
local v11 = require(l_Core_0.Text.CleanRichTextTags);
local v12 = require(l_Core_0.Style.withStyle);
local v13 = require(l_Core_0.Text.GenericTextLabel.GenericTextLabel);
local v14 = require(l_Core_0.Button.HoverButtonBackground);
local v15 = require(l_script_FirstAncestor_0.SelectionImage.withSelectionCursorProvider);
local v16 = require(l_script_FirstAncestor_0.SelectionCursor.withCursor);
local v17 = require(l_script_FirstAncestor_0.SelectionCursor.CursorType);
local l_Focusable_0 = require(l_Parent_1.RoactGamepad).Focusable;
local v19 = require(l_Parent_0.UIBloxConfig);
local v20 = v5.PureComponent:extend("LinkButton");
v20.debugProps = v6("debugProps", {
    "getTextSize",
    "controlState"
});
v20.validateProps = v4.strictInterface({
    onStateChanged = v4.optional(v4.callback),
    isDisabled = v4.optional(v4.boolean),
    fontStyle = v4.optional(v4.string),
    colorStyleDefault = v4.optional(v4.string),
    colorStyleHover = v4.optional(v4.string),
    hoverBackgroundEnabled = v4.optional(v4.boolean),
    underlineAlwaysEnabled = v4.optional(v4.boolean),
    userInteractionEnabled = v4.optional(v4.boolean),
    onActivated = v4.optional(v4.callback),
    anchorPoint = v4.optional(v4.Vector2),
    layoutOrder = v4.optional(v4.number),
    position = v4.optional(v4.UDim2),
    size = v4.optional(v4.UDim2),
    text = v4.optional(v4.string),
    minPaddingX = v4.optional(v4.number),
    minPaddingY = v4.optional(v4.number),
    selectionCursorKind = v4.optional(v4.userdata),
    [v20.debugProps.getTextSize] = v4.optional(v4.callback),
    [v20.debugProps.controlState] = v4.optional(v8.isEnumValue),
    NextSelectionLeft = v4.optional(v4.table),
    NextSelectionRight = v4.optional(v4.table),
    NextSelectionUp = v4.optional(v4.table),
    NextSelectionDown = v4.optional(v4.table),
    buttonRef = v4.optional(v4.union(v4.callback, v4.table))
});
v20.defaultProps = {
    anchorPoint = Vector2.new(0, 0),
    layoutOrder = 0,
    position = UDim2.new(0, 0, 0, 0),
    size = UDim2.fromScale(0, 0),
    text = "",
    fontStyle = "Header2",
    colorStyleDefault = "TextLink",
    colorStyleHover = "TextLink",
    hoverBackgroundEnabled = false,
    underlineAlwaysEnabled = false,
    isDisabled = false,
    userInteractionEnabled = true,
    minPaddingX = 8,
    minPaddingY = 11,
    [v20.debugProps.getTextSize] = v10,
    [v20.debugProps.controlState] = nil
};
v20.init = function(v21)
    v21:setState({
        controlState = v8.Initialize
    });
    v21.applyRichTextUnderline = function(v22)
        return "<u>" .. v22 .. "</u>";
    end;
    v21.onStateChanged = function(v23, v24)
        v21:setState({
            controlState = v24
        });
        if v21.props.onStateChanged then
            v21.props.onStateChanged(v23, v24);
        end;
    end;
end;
v20.render = function(v25)
    if not v19.migrateToNewSelectionCursor then
        return v15(function(v26)
            return v25:renderWithSelectionCursorProvider(v26);
        end);
    else
        return v16(function(v27)
            return v25:renderWithSelectionCursorProvider(nil, (v27.getCursorByType(v17.RoundedRectNoInset)));
        end);
    end;
end;
v20.renderWithSelectionCursorProvider = function(v28, v29, v30)
    return v12(function(v31)
        local v32 = v28.props[v20.debugProps.controlState] or v28.state.controlState;
        local v33 = v9({
            [v8.Default] = v28.props.colorStyleDefault,
            [v8.Hover] = v28.props.colorStyleHover
        }, v32, v31);
        local v34 = v31.Font[v28.props.fontStyle];
        if v28.props.underlineAlwaysEnabled == true and v32 == v8.Hover then
            v33.Transparency = 0.3;
        end;
        local v35 = v34.RelativeSize * v31.Font.BaseSize;
        local l_X_0 = v28.props[v20.debugProps.getTextSize](v11(v28.props.text), v35, v34.Font, Vector2.new(10000, 0)).X;
        local l_text_0 = v28.props.text;
        if not (not v28.props.underlineAlwaysEnabled and v32 ~= v8.Hover) or v32 == v8.Pressed then
            l_text_0 = v28.applyRichTextUnderline(v28.props.text);
        end;
        local v38 = Vector2.new(l_X_0 + v28.props.minPaddingX * 2, v35 + v28.props.minPaddingY * 2);
        local v39 = nil;
        if not v19.migrateToNewSelectionCursor then
            if v28.props.selectionCursorKind ~= nil then
                v39 = v29(v28.props.selectionCursorKind);
            end;
        else
            v39 = v30;
        end;
        local l_createElement_0 = v5.createElement;
        local v41 = if not v19.enableLinkButtonGamepadSupport then v7 else l_Focusable_0[v7];
        local v42 = {
            AnchorPoint = v28.props.anchorPoint,
            LayoutOrder = v28.props.layoutOrder,
            Position = v28.props.position,
            Size = v28.props.size,
            isDisabled = v28.props.isDisabled,
            onStateChanged = v28.onStateChanged,
            userInteractionEnabled = v28.props.userInteractionEnabled,
            BackgroundTransparency = 1,
            AutoButtonColor = false,
            SelectionImageObject = v39,
            [v5.Event.Activated] = v28.props.onActivated,
            [v5.Ref] = if not v19.enableLinkButtonGamepadSupport then nil else v28.props.buttonRef,
            NextSelectionLeft = if not v19.enableLinkButtonGamepadSupport then nil else v28.props.NextSelectionLeft,
            NextSelectionRight = if not v19.enableLinkButtonGamepadSupport then nil else v28.props.NextSelectionRight,
            NextSelectionUp = if not v19.enableLinkButtonGamepadSupport then nil else v28.props.NextSelectionUp,
            NextSelectionDown = if not v19.enableLinkButtonGamepadSupport then nil else v28.props.NextSelectionDown
        };
        local v43 = {
            sizeConstraint = v5.createElement("UISizeConstraint", {
                MinSize = v38
            }),
            textLabel = v5.createElement(v13, {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5),
                BackgroundTransparency = 1,
                Text = l_text_0,
                fontStyle = v34,
                colorStyle = v33,
                RichText = true
            })
        };
        local l_hoverBackgroundEnabled_0 = v28.props.hoverBackgroundEnabled;
        if l_hoverBackgroundEnabled_0 then
            l_hoverBackgroundEnabled_0 = false;
            if v32 == v8.Hover then
                l_hoverBackgroundEnabled_0 = v5.createElement(v14);
            end;
        end;
        v43.background = l_hoverBackgroundEnabled_0;
        return l_createElement_0(v41, v42, v43);
    end);
end;
return v20;


local l_Parent_0 = script.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.t);
local v6 = require(l_Parent_3.Roact);
local l_Label_0 = require(l_Core_0.ImageSet.ImageSetComponent).Label;
local v8 = require(l_Core_0.Text.GenericTextLabel.GenericTextLabel);
local v9 = require(l_Core_0.ImageSet.Validator.validateImage);
local v10 = require(l_Parent_1.ImageSet.Enum.IconSize);
local v11 = require(l_Parent_1.ImageSet.getIconSize);
local v12 = require(l_Core_0.Style.withStyle);
local v13 = require(l_Core_0.Text.GetTextSize);
local v14 = require(l_Parent_0.ActionBar);
local v15 = v11(v10.Large);
local v16 = v6.PureComponent:extend("StickyActionBar");
v16.validateProps = v5.strictInterface({
    actionBarProps = v5.optional(v14.validateProps),
    infoProps = v5.optional(v5.strictInterface({
        title = v5.string,
        icon = v5.optional(v9),
        enableInfoAtStart = v5.optional(v5.boolean),
        infoSectionWidth = v5.optional(v5.integer)
    })),
    width = v5.optional(v5.integer),
    layoutOrder = v5.optional(v5.integer)
});
v16.defaultProps = {
    actionBarProps = nil,
    infoProps = nil,
    layoutOrder = 1,
    width = nil
};
v16.init = function(v17)
    v17.state = {
        containerWidth = nil
    };
    v17.onContainerSizeChange = function(v18)
        v17:setState(function(_, _)
            return {
                containerWidth = v18.AbsoluteSize.X
            };
        end);
    end;
    local function _()
        return UDim2.fromOffset(380, 48);
    end;
    local function _(v22, v23, v24)
        if not v24 or not v24.infoSectionWidth then
            return not not v23 and (v22 - 80) - UDim2.fromOffset(380, 48).X.Offset or v22 - 80;
        else
            return v24.infoSectionWidth;
        end;
    end;
    local function v33(v26, v27, v28, v29)
        if not v29 and v28 then
            local v30 = (v26 - v27) / 2;
            local v31 = nil;
            v31 = v26 < 1280 and 24 or 80;
            local l_Offset_0 = UDim2.fromOffset(380, 48).X.Offset;
            return {
                left = math.max(l_Offset_0 + v31, v30) - l_Offset_0,
                right = 24
            };
        else
            return {
                horizontalAlignment = Enum.HorizontalAlignment.Left,
                left = 24,
                right = 24
            };
        end;
    end;
    local function _(v34, v35, v36)
        return v13(v34, v35.RelativeSize * v36.Font.BaseSize, v35.Font, (Vector2.new(10000, 10000))).X;
    end;
    v17.getLayoutConfig = function(v38, v39, v40, v41, v42, v43, v44)
        local v45 = not not v17.props.infoProps and (v17.props.infoProps.enableInfoAtStart and true or false);
        return {
            layoutOrder = not not v45 and {
                infoSection = 1,
                actionBarSection = 2
            } or {
                infoSection = 2,
                actionBarSection = 1
            },
            infoHorizontalAlignment = Enum.HorizontalAlignment.Left,
            infoSectionWidth = if not not v40 and v40.infoSectionWidth then v40.infoSectionWidth else not not v39 and (v38 - 80) - UDim2.fromOffset(380, 48).X.Offset or v38 - 80,
            infoSectionPadding = v33(v38, (v13(v42, v43.RelativeSize * v44.Font.BaseSize, v43.Font, (Vector2.new(10000, 10000))).X + v41) + (v41 > 0 and 12 or 0), v39, v45),
            actionBarSectionSize = UDim2.fromOffset(380, 48),
            actionBarSectionMarginOverride = {
                left = 0,
                right = 0,
                top = 0,
                bottom = 0
            }
        };
    end;
end;
v16.render = function(v46)
    local v47 = v46.props.actionBarProps ~= nil;
    local v48 = v46.props.infoProps ~= nil;
    local v49 = v46.props.width or v46.state.containerWidth;
    assert(v47 or v48, "Either actionbar or info should be present");
    return v12(function(v50)
        local v51 = (not not v48 and v46.props.infoProps.icon) and v15 or 0;
        local v52 = not not v48 and v46.props.infoProps.title or "";
        local l_Header2_0 = v50.Font.Header2;
        local v54 = v46.getLayoutConfig(v49 or 0, v47, v46.props.infoProps, v51, v52, l_Header2_0, v50);
        local l_v46_0 = v46;
        local v56 = {
            layoutOrder = v46.props.layoutOrder,
            size = not not v46.props.width and UDim2.new(0, v46.props.width, 1, 0) or UDim2.fromScale(1, 1),
            onContainerSizeChange = v46.onContainerSizeChange,
            horizontalAlignment = Enum.HorizontalAlignment.Left,
            padding = {
                left = 56,
                right = 24
            }
        };
        local v57 = {
            ActionBarSection = not not v47 and v46:renderHorizontalLayout({
                layoutOrder = v54.layoutOrder.actionBarSection,
                size = v54.actionBarSectionSize,
                horizontalAlignment = Enum.HorizontalAlignment.Left
            }, {
                ActionBar = v6.createElement(v14, {
                    button = v46.props.actionBarProps.button,
                    icons = v46.props.actionBarProps.icons,
                    marginOverride = v54.actionBarSectionMarginOverride,
                    enableButtonAtStart = true
                })
            }) or nil
        };
        local l_v48_0 = v48;
        if l_v48_0 then
            l_v48_0 = false;
            if v49 ~= nil then
                l_v48_0 = v46:renderHorizontalLayout({
                    layoutOrder = v54.layoutOrder.infoSection,
                    width = v54.infoSectionWidth,
                    horizontalAlignment = v54.infoHorizontalAlignment,
                    padding = v54.infoSectionPadding,
                    internalSpacing = 12
                }, {
                    Icon = not not v46.props.infoProps.icon and v6.createElement(l_Label_0, {
                        Size = UDim2.new(0, v51, 0, v51),
                        LayoutOrder = 1,
                        Position = UDim2.new(0, 0, 0, 0),
                        Image = v46.props.infoProps.icon,
                        BackgroundTransparency = 1,
                        ScaleType = Enum.ScaleType.Crop
                    }, {
                        RoundCorner = v6.createElement("UICorner", {
                            CornerRadius = UDim.new(0, 8)
                        })
                    }) or nil,
                    Title = v6.createElement(v8, {
                        LayoutOrder = 2,
                        Size = UDim2.new(0, 0, 0, 48),
                        AutomaticSize = Enum.AutomaticSize.X,
                        Position = UDim2.new(0, v15 + 12, 0, 0),
                        Text = v52,
                        fluidSizing = false,
                        TextWrapped = true,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        colorStyle = v50.Theme.TextEmphasis,
                        fontStyle = l_Header2_0,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        BackgroundTransparency = 1
                    })
                });
            end;
        end;
        v57.InfoSection = l_v48_0;
        return l_v46_0:renderHorizontalLayout(v56, v57);
    end);
end;
v16.renderHorizontalLayout = function(_, v60, v61)
    return v6.createElement("Frame", {
        Size = not not v60.size and v60.size or UDim2.new(0, v60.width, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        LayoutOrder = v60.layoutOrder,
        [v6.Change.AbsoluteSize] = v60.onContainerSizeChange
    }, {
        Layout = v6.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = v60.horizontalAlignment,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, v60.internalSpacing or 0)
        }),
        Padding = if not v60.padding then nil else v6.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v60.padding.left or 0),
            PaddingRight = UDim.new(0, v60.padding.right or 0),
            PaddingTop = UDim.new(0, v60.padding.top or 0),
            PaddingBottom = UDim.new(0, v60.padding.bottom or 0)
        }),
        Elements = v6.createFragment(v61)
    });
end;
return v16;


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_Parent_1.React);
local v7 = require(l_Parent_1.enumerate);
local v8 = require(l_Core_0.Control.Interactable);
local v9 = require(l_Core_0.Control.Enum.ControlState);
local v10 = require(l_Core_0.Button.getContentStyle);
local v11 = require(l_Core_0.Text.GetTextSize);
local v12 = require(l_Core_0.Text.CleanRichTextTags);
local v13 = require(l_Parent_0.Utility.isReactTagProp);
local v14 = require(l_script_FirstAncestor_0.SelectionImage.withSelectionCursorProvider);
local v15 = require(l_script_FirstAncestor_0.SelectionImage.CursorKind);
local v16 = require(l_Core_0.Style.Validator.validateColorInfo);
local v17 = require(l_Core_0.Style.withStyle);
local v18 = require(l_Core_0.Text.GenericTextLabel.GenericTextLabel);
local v19 = require(l_Core_0.Button.HoverButtonBackground);
local v20 = require(l_Parent_1.UIBlox.UIBloxConfig);
local v21 = require(l_Parent_0.App.SelectionCursor.withCursor);
local v22 = UDim.new(0, 8);
local v23 = v5.PureComponent:extend("TextButton");
v23.debugProps = v7("debugProps", {
    "getTextSize",
    "controlState"
});
v23.validateProps = v4.strictInterface({
    [v6.Tag] = v13,
    onStateChanged = v4.optional(v4.callback),
    isDisabled = v4.optional(v4.boolean),
    fontStyle = v4.optional(v4.string),
    colorStyleDefault = v4.optional(v4.string),
    colorStyleHover = v4.optional(v4.string),
    hoverBackgroundEnabled = v4.optional(v4.boolean),
    richText = v4.optional(v4.boolean),
    showBackground = v4.optional(v4.boolean),
    backgroundColor = v4.optional(v16),
    horizontalPadding = v4.optional(v4.number),
    verticalPadding = v4.optional(v4.number),
    userInteractionEnabled = v4.optional(v4.boolean),
    onActivated = v4.optional(v4.callback),
    anchorPoint = v4.optional(v4.Vector2),
    layoutOrder = v4.optional(v4.number),
    position = v4.optional(v4.UDim2),
    size = v4.optional(v4.UDim2),
    text = v4.optional(v4.string),
    [v23.debugProps.getTextSize] = v4.optional(v4.callback),
    [v23.debugProps.controlState] = v4.optional(v9.isEnumValue)
});
v23.defaultProps = {
    anchorPoint = Vector2.new(0, 0),
    layoutOrder = 0,
    position = UDim2.new(0, 0, 0, 0),
    size = UDim2.fromScale(0, 0),
    text = "",
    verticalPadding = 11,
    horizontalPadding = 8,
    showBackground = false,
    fontStyle = "Header2",
    colorStyleDefault = "SystemPrimaryDefault",
    colorStyleHover = "SystemPrimaryDefault",
    hoverBackgroundEnabled = true,
    richText = false,
    isDisabled = false,
    userInteractionEnabled = true,
    [v23.debugProps.getTextSize] = v11,
    [v23.debugProps.controlState] = nil
};
v23.init = function(v24)
    v24:setState({
        controlState = v9.Initialize
    });
    v24.onStateChanged = function(v25, v26)
        v24:setState({
            controlState = v26
        });
        if v24.props.onStateChanged then
            v24.props.onStateChanged(v25, v26);
        end;
    end;
end;
v23.render = function(v27)
    return v17(function(v28)
        return v14(function(v29)
            if not v20.useNewSelectionCursor then
                return v27:renderWithProviders(v28, v29);
            else
                return v21(function(v30)
                    return v27:renderWithProviders(v28, v29, v30.getCursor);
                end);
            end;
        end);
    end);
end;
v23.renderWithProviders = function(v31, v32, v33, v34)
    local v35 = v31.props[v23.debugProps.controlState] or v31.state.controlState;
    local v36 = v10({
        [v9.Default] = v31.props.colorStyleDefault,
        [v9.Hover] = v31.props.colorStyleHover
    }, v35, v32);
    local v37 = v32.Font[v31.props.fontStyle];
    local v38 = v37.RelativeSize * v32.Font.BaseSize;
    local l_X_0 = v31.props[v23.debugProps.getTextSize](not not v31.props.richText and v12(v31.props.text) or v31.props.text, v38, v37.Font, Vector2.new(10000, 0)).X;
    local l_showBackground_0 = v31.props.showBackground;
    local v41 = v31.props.backgroundColor or v32.Theme.UIMuted;
    local l_verticalPadding_0 = v31.props.verticalPadding;
    local l_horizontalPadding_0 = v31.props.horizontalPadding;
    local l_createElement_0 = v5.createElement;
    local l_v8_0 = v8;
    local v46 = {
        [v6.Tag] = v31.props[v6.Tag],
        AnchorPoint = v31.props.anchorPoint,
        LayoutOrder = v31.props.layoutOrder,
        Position = v31.props.position,
        Size = v31.props.size,
        isDisabled = v31.props.isDisabled,
        onStateChanged = v31.onStateChanged,
        userInteractionEnabled = v31.props.userInteractionEnabled,
        BackgroundTransparency = 1,
        AutoButtonColor = false,
        SelectionImageObject = if not v34 then v33 and v33(v15.RoundedRectNoInset) else v34(v22),
        [v5.Event.Activated] = v31.props.onActivated
    };
    local v47 = {
        sizeConstraint = v5.createElement("UISizeConstraint", {
            MinSize = Vector2.new(l_X_0 + l_horizontalPadding_0 * 2, v38 + l_verticalPadding_0 * 2)
        }),
        textLabel = v5.createElement(v18, {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            BackgroundTransparency = 1,
            Text = v31.props.text,
            fontStyle = v37,
            colorStyle = v36,
            RichText = v31.props.richText
        })
    };
    local l_hoverBackgroundEnabled_0 = v31.props.hoverBackgroundEnabled;
    if l_hoverBackgroundEnabled_0 then
        l_hoverBackgroundEnabled_0 = false;
        if v35 == v9.Hover then
            l_hoverBackgroundEnabled_0 = v5.createElement(v19);
        end;
    end;
    v47.hoverBackground = l_hoverBackgroundEnabled_0;
    v47.background = not not l_showBackground_0 and v5.createElement("Frame", {
        Size = UDim2.fromScale(1, 1),
        BackgroundColor3 = v41.Color,
        BackgroundTransparency = v31.props.backgroundTransparency or v41.Transparency,
        ZIndex = not v20.useNewThemeColorPalettes and 0 or -10
    }, {
        corner = v5.createElement("UICorner", {
            CornerRadius = v22
        })
    }) or nil;
    return l_createElement_0(l_v8_0, v46, v47);
end;
return v23;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v3 = require(l_Parent_1.React);
local v4 = require(l_Parent_1.Cryo);
local l_Label_0 = require(l_Parent_0.Core.ImageSet.ImageSetComponent).Label;
local v6 = require(l_Parent_0.Core.Style.useStyle);
local _ = require(l_Parent_0.App.ImageSet.ImagesTypes);
local _ = require(l_Parent_0.App.Style.StyleTypes);
local l_withHoverTooltip_0 = require(l_Parent_0.App.Dialog.TooltipV2.Controllers).withHoverTooltip;
local v10 = require(l_Parent_0.App.Dialog.Tooltip.Enum.TooltipOrientation);
local v11 = require(l_Parent_0.Core.Control.StateLayer);
local v12 = require(l_Parent_0.App.Indicator.Badge);
local v13 = {
    tooltipTarget = l_CoreGui_0,
    disableOutset = false,
    onMedia = false
};
return function(v14)
    local v15 = v4.Dictionary.join(v13, v14);
    local l_anchorPoint_0 = v15.anchorPoint;
    local l_position_0 = v15.position;
    local l_layoutOrder_0 = v15.layoutOrder;
    local l_icon_0 = v15.icon;
    local l_badgeValue_0 = v15.badgeValue;
    local l_tooltipText_0 = v15.tooltipText;
    local l_tooltipTarget_0 = v15.tooltipTarget;
    local l_disableOutset_0 = v15.disableOutset;
    local l_onMedia_0 = v15.onMedia;
    local l_onActivated_0 = v15.onActivated;
    local l_Tokens_0 = v6().Tokens;
    local l_Size_500_0 = l_Tokens_0.Global.Size_500;
    local l_Medium_0 = l_Tokens_0.Semantic.Icon.Size.Medium;
    local v29 = if not v15.iconColor then if not l_onMedia_0 then l_Tokens_0.Semantic.Color.Icon.Emphasis else l_Tokens_0.Global.Color.White else v15.iconColor;
    local v30 = not l_onMedia_0 and "Standard" or "Darken";
    local v31 = Vector2.new(0, 1);
    local v32 = UDim2.new(0.5, l_Tokens_0.Global.Size_25, 0.5, -l_Tokens_0.Global.Size_25);
    local v33 = v3.useMemo(function()
        if not l_disableOutset_0 then
            return {
                top = UDim.new(0, l_Tokens_0.Global.Size_50),
                right = UDim.new(0, l_Tokens_0.Global.Size_50),
                bottom = UDim.new(0, l_Tokens_0.Global.Size_50),
                left = UDim.new(0, l_Tokens_0.Global.Size_50)
            };
        else
            return nil;
        end;
    end, {
        l_disableOutset_0,
        l_Tokens_0
    });
    local v35 = v3.useMemo(function()
        local v34 = UDim.new(0, l_Size_500_0);
        if not v33 then
            return (UDim2.new(v34, v34));
        else
            return (UDim2.new((v34 + v33.left) + v33.right, (v34 + v33.top) + v33.bottom));
        end;
    end, {
        l_Size_500_0,
        v33
    });
    return l_withHoverTooltip_0({
        bodyText = l_tooltipText_0
    }, {
        disabled = not l_tooltipText_0 and true or false,
        preferredOrientation = v10.Bottom,
        guiTarget = l_tooltipTarget_0,
        DEBUG_useTargetDirectly = v15._DEBUG_is_plugin,
        DisplayOrder = 10
    }, function(v36, v37)
        return v3.createElement("Frame", {
            Selectable = false,
            Size = v35,
            AnchorPoint = l_anchorPoint_0,
            Position = l_position_0,
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            LayoutOrder = l_layoutOrder_0,
            [v3.Change.AbsoluteSize] = v36,
            [v3.Change.AbsolutePosition] = v36
        }, {
            Background = if not l_onMedia_0 then nil else v3.createElement("Frame", {
                Selectable = false,
                Size = UDim2.fromOffset(l_Size_500_0, l_Size_500_0),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5),
                BorderSizePixel = 0,
                BackgroundColor3 = l_Tokens_0.Global.Color.Black.Color3,
                BackgroundTransparency = 0.5,
                ZIndex = 1
            }, {
                UICorner = v3.createElement("UICorner", {
                    CornerRadius = UDim.new(0, l_Tokens_0.Semantic.Radius.Circle)
                })
            }),
            StateLayer = v3.createElement(v11, {
                size = UDim2.fromOffset(l_Size_500_0, l_Size_500_0),
                anchorPoint = Vector2.new(0.5, 0.5),
                position = UDim2.fromScale(0.5, 0.5),
                cornerRadius = UDim.new(0, l_Tokens_0.Semantic.Radius.Circle),
                zIndex = 2,
                stateStyle = v30,
                outset = v33,
                onStateChanged = v37,
                onActivated = l_onActivated_0
            }),
            Icon = v3.createElement(l_Label_0, {
                Selectable = false,
                Size = UDim2.fromOffset(l_Medium_0, l_Medium_0),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5),
                Image = l_icon_0,
                ImageColor3 = v29.Color3,
                ImageTransparency = v29.Transparency,
                BackgroundTransparency = 1,
                ZIndex = 3
            }, {
                UICorner = v3.createElement("UICorner", {
                    CornerRadius = UDim.new(0, l_Tokens_0.Semantic.Radius.Circle)
                }),
                Badge = if not l_badgeValue_0 then nil else v3.createElement(v12, {
                    position = v32,
                    anchorPoint = v31,
                    value = l_badgeValue_0
                })
            })
        });
    end);
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_Parent_0.t);
local v4 = require(l_Parent_0.UIBlox.App.ImageSet.Images);
local v5 = require(l_Parent_0.UIBlox.Core.Cell.GenericSelectionCell);
local v6 = v4["component_assets/circle_24_stroke_1"];
local v7 = v4["component_assets/circle_16"];
local v8 = v1.PureComponent:extend("SmallRadioButtonCell");
v8.validateProps = v3.strictInterface({
    id = v3.string,
    text = v3.optional(v3.string),
    onActivated = v3.optional(v3.callback),
    isSelected = v3.optional(v3.boolean),
    isDisabled = v3.optional(v3.boolean),
    useDefaultControlState = v3.optional(v3.boolean),
    layoutOrder = v3.optional(v3.number),
    controlRef = v3.optional(v3.table),
    NextSelectionLeft = v3.optional(v3.table),
    NextSelectionRight = v3.optional(v3.table),
    NextSelectionUp = v3.optional(v3.table),
    NextSelectionDown = v3.optional(v3.table),
    SelectionImageObject = v3.optional(v3.table)
});
v8.defaultProps = {
    text = "",
    isSelected = false
};
v8.init = function(v9)
    v9.onSetValue = function()
        v9.props.onActivated(v9.props.id);
    end;
end;
v8.render = function(v10)
    assert(v10.validateProps(v10.props));
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 56),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        LayoutOrder = v10.props.layoutOrder
    }, {
        GenericSelectionCell = v1.createElement(v5, {
            isSelected = v10.props.isSelected,
            isDisabled = v10.props.isDisabled,
            defaultImage = v6,
            selectedImage = v7,
            defaultImageSize = 24,
            selectedImageSize = 16,
            text = v10.props.text,
            onActivated = v10.onSetValue,
            useDefaultControlState = v10.props.useDefaultControlState,
            [v1.Ref] = v10.props.controlRef,
            NextSelectionUp = v10.props.NextSelectionUp,
            NextSelectionDown = v10.props.NextSelectionDown,
            NextSelectionLeft = v10.props.NextSelectionLeft,
            NextSelectionRight = v10.props.NextSelectionRight,
            SelectionImageObject = v10.props.SelectionImageObject
        })
    });
end;
return v1.forwardRef(function(v11, v12)
    return v1.createElement(v8, v2.Dictionary.join(v11, {
        controlRef = v12
    }));
end);


local l_Parent_0 = script.Parent.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.Cryo);
local v5 = require(l_Parent_2.RoactGamepad);
local v6 = require(l_Parent_2.t);
local v7 = require(l_Parent_1.App.SelectionImage.withSelectionCursorProvider);
local v8 = require(l_Parent_1.App.SelectionImage.CursorKind);
local v9 = require(l_Parent_0.SelectionCursor.withCursor);
local v10 = require(l_Parent_0.SelectionCursor.CursorType);
local v11 = require(l_Parent_1.UIBloxConfig);
local v12 = require(l_Parent_1.App.Cell.Small.SelectionGroup.SmallRadioButtonCell);
local v13 = v3.PureComponent:extend("SmallRadioButtonGroup");
v13.validateProps = v6.strictInterface({
    items = v6.optional(v6.array(v6.tuple((v6.strictInterface({
        text = v6.string,
        id = v6.string,
        isDisabled = v6.optional(v6.boolean)
    }))))),
    selectedValue = v6.optional(v6.string),
    onActivated = v6.callback,
    layoutOrder = v6.optional(v6.number),
    useDefaultControlState = v6.optional(v6.boolean),
    NextSelectionLeft = v6.optional(v6.table),
    NextSelectionRight = v6.optional(v6.table),
    NextSelectionUp = v6.optional(v6.table),
    NextSelectionDown = v6.optional(v6.table),
    frameRef = v6.optional(v6.table)
});
v13.defaultProps = {
    selectedValue = nil
};
v13.init = function(v14)
    v14.gamepadRefs = v5.createRefCache();
end;
v13.render = function(v15)
    assert(v15.validateProps(v15.props));
    local v16 = {
        layout = v3.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 1)
        })
    };
    for v17, v18 in ipairs(v15.props.items) do
        if not v11.migrateToNewSelectionCursor then
            v16["smallRadioButtonCell" .. v18.id] = v7(function(v19)
                return v3.createElement(v5.Focusable[v12], {
                    id = v18.id,
                    text = v18.text,
                    onActivated = v15.props.onActivated,
                    isSelected = v15.props.selectedValue == v18.id,
                    isDisabled = v18.isDisabled,
                    layoutOrder = v17,
                    useDefaultControlState = v15.props.useDefaultControlState,
                    [v3.Ref] = v15.gamepadRefs[v17],
                    NextSelectionUp = v17 > 1 and v15.gamepadRefs[v17 - 1] or nil,
                    NextSelectionDown = v17 < #v15.props.items and v15.gamepadRefs[v17 + 1] or nil,
                    SelectionImageObject = v19(v8.SelectionCell)
                });
            end);
        else
            v16["smallRadioButtonCell" .. v18.id] = v9(function(v20)
                return v3.createElement(v5.Focusable[v12], {
                    id = v18.id,
                    text = v18.text,
                    onActivated = v15.props.onActivated,
                    isSelected = v15.props.selectedValue == v18.id,
                    isDisabled = v18.isDisabled,
                    layoutOrder = v17,
                    useDefaultControlState = v15.props.useDefaultControlState,
                    [v3.Ref] = v15.gamepadRefs[v17],
                    NextSelectionUp = v17 > 1 and v15.gamepadRefs[v17 - 1] or nil,
                    NextSelectionDown = v17 < #v15.props.items and v15.gamepadRefs[v17 + 1] or nil,
                    SelectionImageObject = v20.getCursorByType(v10.SelectionCell)
                });
            end);
        end;
    end;
    local v21 = v15.props.items and #v15.props.items > 0;
    return v3.createElement(not not v21 and v5.Focusable.Frame or "Frame", {
        defaultChild = not not v21 and v15.gamepadRefs[1] or nil,
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        LayoutOrder = v15.props.layoutOrder,
        NextSelectionLeft = v15.props.NextSelectionLeft,
        NextSelectionRight = v15.props.NextSelectionRight,
        NextSelectionDown = v15.props.NextSelectionDown,
        NextSelectionUp = v15.props.NextSelectionUp,
        [v3.Ref] = v15.props.frameRef
    }, v16);
end;
return v3.forwardRef(function(v22, v23)
    return v3.createElement(v13, v4.Dictionary.join(v22, {
        frameRef = v23
    }));
end);


return {
    Small = 16,
    Regular = 36,
    Large = 48,
    XLarge = 96,
    XXLarge = 192
};


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.Core.Text.GetTextSize);
local v7 = require(l_Parent_0.ImageSet.Enum.IconSize);
local v8 = require(l_Parent_0.ImageSet.getIconSize);
local v9 = require(l_Parent_0.ImageSet.Images);
local l_Core_0 = l_Parent_1.Core;
local v11 = require(l_Core_0.Control.Interactable);
local v12 = require(l_Core_0.Text.GenericTextLabel.GenericTextLabel);
local v13 = require(l_Core_0.ImageSet.ImageSetComponent);
local v14 = v9["icons/navigation/pushRight_small"];
local v15 = v3.PureComponent:extend("CarouselHeader");
v15.validateProps = v4.strictInterface({
    headerText = v4.optional(v4.string),
    onSeeAll = v4.optional(v4.callback),
    carouselMargin = v4.optional(v4.number),
    layoutOrder = v4.optional(v4.number)
});
v15.defaultProps = {
    headerText = "",
    carouselMargin = 0
};
v15.render = function(v16)
    local l_headerText_0 = v16.props.headerText;
    local l_onSeeAll_0 = v16.props.onSeeAll;
    local l_layoutOrder_0 = v16.props.layoutOrder;
    local l_carouselMargin_0 = v16.props.carouselMargin;
    return v5(function(v21)
        local l_Header1_0 = v21.Font.Header1;
        local v23 = v6(l_headerText_0, l_Header1_0.RelativeSize * v21.Font.BaseSize, l_Header1_0.Font, Vector2.new(10000, 10000));
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, v23.Y),
            BackgroundTransparency = 1,
            LayoutOrder = l_layoutOrder_0
        }, {
            CarouselHeaderButton = v3.createElement(v11, {
                Position = UDim2.fromOffset(l_carouselMargin_0, 0),
                Size = UDim2.fromOffset((v23.X + 4) + v8(v7.Small), v23.Y),
                AutoButtonColor = false,
                BackgroundTransparency = 1,
                [v3.Event.Activated] = l_onSeeAll_0,
                onStateChanged = function()
                end
            }, {
                Layout = v3.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 4)
                }),
                HeaderText = v3.createElement(v12, {
                    Text = l_headerText_0,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    LayoutOrder = 1,
                    fontStyle = l_Header1_0,
                    colorStyle = v21.Theme.TextEmphasis
                }),
                SeeAllArrow = not not l_onSeeAll_0 and v3.createElement(v13.Label, {
                    Size = UDim2.fromOffset(v8(v7.Small), v8(v7.Small)),
                    BackgroundTransparency = 1,
                    Image = v14,
                    ImageColor3 = v21.Theme.TextEmphasis.Color,
                    ImageTransparency = v21.Theme.TextEmphasis.Transparency,
                    LayoutOrder = 2
                }) or nil
            })
        });
    end);
end;
return v15;


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.Roact);
local v4 = require(l_Parent_2.t);
local l_FitFrameOnAxis_0 = require(l_Parent_2.FitFrame).FitFrameOnAxis;
local v6 = require(l_Parent_1.Utility.isCallable);
local v7 = require(l_Parent_0.CarouselHeader);
local v8 = require(l_Parent_0.HorizontalCarousel);
local v9 = v3.PureComponent:extend("FreeFlowCarousel");
v9.validateProps = v4.strictInterface({
    identifier = v4.optional(v4.callback),
    headerText = v4.optional(v4.string),
    onSeeAll = v4.optional(v4.callback),
    itemList = v4.array(v4.any),
    renderItem = v4.callback,
    itemSize = v4.optional(v4.Vector2),
    itemPadding = v4.optional(v4.number),
    carouselMargin = v4.optional(v4.number),
    innerPadding = v4.optional(v4.number),
    layoutOrder = v4.optional(v4.integer),
    loadNext = v4.optional(v4.callback),
    maxNumOfItemsVisible = v4.optional(v4.integer),
    viewabilityConfigCallbackPairs = v4.optional(v4.array(v4.strictInterface({
        viewabilityConfig = v4.strictInterface({
            minimumViewTime = v4.optional(v4.number),
            viewAreaCoveragePercentThreshold = v4.optional(v4.number),
            itemVisiblePercentThreshold = v4.optional(v4.number),
            waitForInteraction = v4.optional(v4.boolean)
        }),
        onViewableItemsChanged = v6
    })))
});
v9.defaultProps = {
    headerText = "",
    innerPadding = 12,
    itemPadding = 12,
    carouselMargin = 24
};
v9.render = function(v10)
    local l_innerPadding_0 = v10.props.innerPadding;
    local l_carouselMargin_0 = v10.props.carouselMargin;
    return v3.createElement(l_FitFrameOnAxis_0, {
        axis = l_FitFrameOnAxis_0.Axis.Vertical,
        minimumSize = UDim2.fromScale(1, 0),
        LayoutOrder = v10.props.layoutOrder,
        contentPadding = UDim.new(0, l_innerPadding_0),
        BackgroundTransparency = 1
    }, {
        CarouselHeader = v3.createElement(v7, {
            headerText = v10.props.headerText,
            onSeeAll = v10.props.onSeeAll,
            carouselMargin = l_carouselMargin_0,
            layoutOrder = 1
        }),
        Carousel = v3.createElement(v8, {
            identifier = v10.props.identifier,
            itemList = v10.props.itemList,
            renderItem = v10.props.renderItem,
            itemSize = v10.props.itemSize,
            itemPadding = l_innerPadding_0,
            carouselMargin = l_carouselMargin_0,
            layoutOrder = 2,
            loadNext = v10.props.loadNext,
            maxNumOfItemsVisible = v10.props.maxNumOfItemsVisible,
            viewabilityConfigCallbackPairs = v10.props.viewabilityConfigCallbackPairs
        })
    });
end;
return v9;