local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.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.t);
local v6 = require(l_Parent_0.Alert);
local v7 = require(l_Parent_0.Enum.AlertType);
local l_FitFrameOnAxis_0 = require(l_Parent_3.FitFrame).FitFrameOnAxis;
local v9 = 272;
local v10 = 400;
local v11 = require(l_Parent_2.UIBloxConfig);
local v12 = require(l_Parent_2.Core.Text.GenericTextLabel.GenericTextLabel);
local v13 = require(l_Parent_2.Core.ImageSet.ImageSetComponent);
local v14 = require(l_Parent_2.Core.Text.GetTextHeight);
local v15 = require(l_Parent_2.Core.Style.withStyle);
local v16 = require(l_Parent_1.Button.ButtonStack);
local v17 = v4.PureComponent:extend("InteractiveAlert");
v17.validateProps = v5.strictInterface({
    anchorPoint = v5.optional(v5.Vector2),
    position = v5.optional(v5.UDim2),
    screenSize = v5.Vector2,
    onMounted = v5.optional(v5.callback),
    onAbsoluteSizeChanged = v5.optional(v5.callback),
    title = v5.string,
    titleIcon = v5.optional(v5.union(v5.table, v5.string)),
    titleContent = v5.optional(v5.callback),
    bodyText = v5.optional(v5.string),
    richText = v5.optional(v5.boolean),
    middleContent = v5.optional(v5.callback),
    buttonStackInfo = v16.validateProps,
    footerText = v5.optional(v5.string),
    footerContent = v5.optional(v5.callback),
    defaultChildRef = v5.optional(v5.union(v5.table, v5.callback)),
    isMiddleContentFocusable = v5.optional(v5.boolean),
    isFooterContentFocusable = v5.optional(v5.boolean)
});
v17.render = function(v18)
    return v15(function(v19)
        if v11.interactiveAlertDesignTokenMinMaxSize then
            v9 = v19.Tokens.Global.Size_200 * 17;
            v10 = v19.Tokens.Global.Size_500 * 10;
        end;
        local l_Theme_0 = v19.Theme;
        local l_Font_0 = v19.Font;
        local l_Font_1 = l_Font_0.Body.Font;
        local v23 = l_Font_0.BaseSize * l_Font_0.Body.RelativeSize;
        local l_titleContent_0 = v18.props.titleContent;
        if v18.props.titleIcon then
            l_titleContent_0 = function()
                return v4.createElement(l_FitFrameOnAxis_0, {
                    BackgroundTransparency = 1,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    margin = {
                        top = 12,
                        bottom = 0,
                        left = 0,
                        right = 0
                    },
                    minimumSize = UDim2.new(1, 0, 0, 0)
                }, {
                    Icon = v4.createElement(v13.Label, {
                        BackgroundTransparency = 1,
                        Image = v18.props.titleIcon,
                        ImageColor3 = l_Theme_0.IconEmphasis.Color,
                        ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
                        Size = UDim2.new(0, 48, 0, 48)
                    })
                });
            end;
        end;
        local v25 = math.clamp(v18.props.screenSize.X - 48, v9, v10) - 48;
        local l_footerContent_0 = v18.props.footerContent;
        if v18.props.footerText then
            local v27 = not not v18.props.footerText and v14(v18.props.footerText, l_Font_0.Footer.Font, l_Font_0.BaseSize * l_Font_0.Footer.RelativeSize, v25) or 0;
            local l_v27_0 = v27 --[[ copy: 9 -> 11 ]];
            l_footerContent_0 = function()
                return v4.createElement(v12, {
                    BackgroundTransparency = 1,
                    colorStyle = l_Theme_0.TextDefault,
                    fontStyle = l_Font_0.Footer,
                    LayoutOrder = 4,
                    Text = v18.props.footerText,
                    TextSize = v23,
                    TextXAlignment = Enum.TextXAlignment.Center,
                    Size = UDim2.new(1, 0, 0, l_v27_0)
                });
            end;
        end;
        local v29 = not not v18.props.bodyText and v14(v18.props.bodyText, l_Font_1, v23, v25) or 0;
        local l_middleContent_0 = v18.props.middleContent;
        if v18.props.bodyText then
            l_middleContent_0 = function()
                return v4.createElement(l_FitFrameOnAxis_0, {
                    BackgroundTransparency = 1,
                    contentPadding = UDim.new(0, 12),
                    LayoutOrder = 2,
                    minimumSize = UDim2.new(1, 0, 0, 0)
                }, {
                    BodyText = v4.createElement(v12, {
                        BackgroundTransparency = 1,
                        colorStyle = l_Theme_0.TextDefault,
                        fontStyle = l_Font_0.Body,
                        LayoutOrder = 1,
                        Text = v18.props.bodyText,
                        RichText = v18.props.richText,
                        TextSize = v23,
                        TextXAlignment = Enum.TextXAlignment.Center,
                        Size = UDim2.new(1, 0, 0, v29)
                    }),
                    CustomContent = v18.props.middleContent and v4.createElement(l_FitFrameOnAxis_0, {
                        BackgroundTransparency = 1,
                        LayoutOrder = 2,
                        minimumSize = UDim2.new(1, 0, 0, 0)
                    }, {
                        Content = v18.props.middleContent()
                    })
                });
            end;
        end;
        return v4.createElement(v6, {
            anchorPoint = v18.props.anchorPoint,
            alertType = v7.Interactive,
            margin = {
                top = 0,
                bottom = 24,
                left = 24,
                right = 24
            },
            maxWidth = v10,
            minWidth = v9,
            buttonStackInfo = v18.props.buttonStackInfo,
            middleContent = l_middleContent_0,
            isMiddleContentFocusable = v18.props.isMiddleContentFocusable,
            onMounted = v18.props.onMounted,
            onAbsoluteSizeChanged = v18.props.onAbsoluteSizeChanged,
            position = v18.props.position,
            screenSize = v18.props.screenSize,
            title = v18.props.title,
            titleContent = l_titleContent_0,
            footerContent = l_footerContent_0,
            isFooterContentFocusable = v18.props.isFooterContentFocusable,
            defaultChildRef = v18.props.defaultChildRef
        });
    end);
end;
return v17;


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 v5 = require(l_Parent_0.Alert);
local v6 = require(l_Parent_0.Enum.AlertType);
local l_FitFrameOnAxis_0 = require(l_Parent_2.FitFrame).FitFrameOnAxis;
local v8 = require(l_Parent_1.App.Loading.LoadingSpinner);
local v9 = require(l_Parent_1.Core.ImageSet.ImageSetComponent);
local v10 = require(l_Parent_1.Core.Style.withStyle);
local v11 = v3.PureComponent:extend("LoadingAlert");
v11.validateProps = v4.strictInterface({
    anchorPoint = v4.optional(v4.Vector2),
    position = v4.optional(v4.UDim2),
    screenSize = v4.Vector2,
    onMounted = v4.optional(v4.callback),
    titleIcon = v4.optional(v4.union(v4.table, v4.string)),
    title = v4.string
});
v11.init = function(v12)
    v12.renderMiddleContent = function()
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 48),
            BackgroundTransparency = 1
        }, {
            Spinner = v3.createElement(v8, {
                size = UDim2.fromOffset(48, 48),
                position = UDim2.fromScale(0.5, 0.5),
                anchorPoint = Vector2.new(0.5, 0.5)
            })
        });
    end;
end;
v11.render = function(v13)
    return v10(function(v14)
        local l_Theme_0 = v14.Theme;
        return v3.createElement(v5, {
            anchorPoint = v13.props.anchorPoint,
            alertType = v6.Loading,
            margin = {
                top = 0,
                bottom = 24,
                left = 24,
                right = 24
            },
            maxWidth = 400,
            minWidth = 272,
            middleContent = v13.renderMiddleContent,
            onMounted = v13.props.onMounted,
            position = v13.props.position,
            screenSize = v13.props.screenSize,
            title = v13.props.title,
            titleContent = not not v13.props.titleIcon and function()
                return v3.createElement(l_FitFrameOnAxis_0, {
                    BackgroundTransparency = 1,
                    contentPadding = UDim.new(0, 8),
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    margin = {
                        top = 12,
                        bottom = 0,
                        left = 0,
                        right = 0
                    },
                    minimumSize = UDim2.new(1, 0, 0, 0)
                }, {
                    Icon = v3.createElement(v9.Label, {
                        BackgroundTransparency = 1,
                        Image = v13.props.titleIcon,
                        ImageColor3 = l_Theme_0.IconEmphasis.Color,
                        ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
                        Size = UDim2.new(0, 48, 0, 48)
                    })
                });
            end or nil
        });
    end);
end;
return v11;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.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.t);
local l_FitFrameVertical_0 = require(l_Parent_3.FitFrame).FitFrameVertical;
local l_Label_0 = require(l_Parent_2.Core.ImageSet.ImageSetComponent).Label;
local v8 = require(l_Parent_2.Core.Text.GenericTextLabel.GenericTextLabel);
local v9 = require(l_Parent_2.Core.Style.withStyle);
local v10 = require(l_Parent_2.App.Button.Enum.ButtonType);
local v11 = require(l_Parent_1.ImageSet.getIconSize);
local v12 = require(l_Parent_1.ImageSet.Enum.IconSize);
local v13 = require(l_Parent_2.App.InputButton.Checkbox);
local v14 = require(l_Parent_0.PartialPageModal);
local v15 = v4.PureComponent:extend("EducationalModal");
v15.validateProps = v5.strictInterface({
    bodyContents = v5.array(v5.strictInterface({
        icon = v5.optional(v5.union(v5.string, v5.table)),
        text = v5.string,
        layoutOrder = v5.optional(v5.integer),
        isSystemMenuIcon = v5.optional(v5.boolean)
    })),
    hasDoNotShow = v5.optional(v5.boolean),
    cancelText = v5.string,
    confirmText = v5.string,
    doNotShowText = v5.optional(v5.string),
    titleText = v5.optional(v5.string),
    titleBackgroundImageProps = v5.strictInterface({
        image = v5.string,
        imageHeight = v5.number,
        text = v5.optional(v5.string)
    }),
    screenSize = v5.Vector2,
    onDismiss = v5.callback,
    onCancel = v5.callback,
    onConfirm = v5.callback
});
local function v23(v16)
    local v17 = Vector2.new(16, 16);
    local v18 = v16.isSystemMenuIcon or false;
    local v19 = v18 or v16.icon;
    local l_stylePalette_0 = v16.stylePalette;
    local l_Theme_0 = l_stylePalette_0.Theme;
    local l_Font_0 = l_stylePalette_0.Font;
    return v4.createElement("Frame", {
        Size = not not v19 and UDim2.new(0, 253, 0, v17.Y) or UDim2.new(1, 0, 0, v17.Y),
        AutomaticSize = not not v19 and Enum.AutomaticSize.None or Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        LayoutOrder = v16.layoutOrder
    }, {
        HorizontalLayout = v4.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Horizontal,
            Padding = not not v18 and UDim.new(0, 10) or UDim.new(0, 8),
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        Padding = v4.createElement("UIPadding", {
            PaddingLeft = not not v18 and UDim.new(0, 2) or UDim.new(0, 0)
        }),
        Icon = (not not v18 and v4.createElement(l_Label_0, {
            BackgroundTransparency = 1,
            Size = UDim2.fromOffset(32, 32),
            Image = "rbxasset://textures/ui/TopBar/iconBase.png",
            LayoutOrder = 1
        }, {
            Icon = v4.createElement(l_Label_0, {
                ZIndex = 1,
                BackgroundTransparency = 1,
                Position = UDim2.fromScale(0.5, 0.5),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Size = UDim2.fromOffset(24, 24),
                Image = "rbxasset://textures/ui/TopBar/coloredlogo.png"
            })
        }) or v19 and v4.createElement(l_Label_0, {
            Image = v16.icon,
            Size = UDim2.fromOffset(v11(v12.Medium), v11(v12.Medium)),
            ImageColor3 = l_Theme_0.IconDefault.Color,
            ImageTransparency = l_Theme_0.IconDefault.Transparency,
            BackgroundTransparency = 1,
            LayoutOrder = 1
        })) or nil,
        Text = v16.text and v4.createElement(v8, {
            Size = UDim2.new(1, 0, 0, v17.Y),
            AutomaticSize = not not v19 and Enum.AutomaticSize.None or Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            Text = v16.text,
            TextSize = l_Font_0.Body.RelativeSize * l_Font_0.BaseSize,
            colorStyle = l_Theme_0.TextDefault,
            TextTransparency = l_Theme_0.TextDefault.Transparency,
            fontStyle = l_Font_0.Body,
            TextXAlignment = not not v19 and Enum.TextXAlignment.Left or Enum.TextXAlignment.Center,
            TextWrapped = true,
            LayoutOrder = 2
        })
    });
end;
v15.init = function(v24)
    v24.state = {
        shouldNotShowAgain = false
    };
    local v25, v26 = v4.createBinding(Vector2.new(0, 0));
    v24.contentSize = v25;
    v24.changeContentSize = v26;
    v24.toggleDoNotShow = function()
        v24:setState(function(v27)
            return {
                shouldNotShowAgain = not v27.shouldNotShowAgain
            };
        end);
    end;
    v24.onDismiss = function()
        v24.props.onDismiss(v24.state.shouldNotShowAgain);
    end;
    v24.onCancel = function()
        v24.props.onCancel(v24.state.shouldNotShowAgain);
    end;
    v24.onConfirm = function()
        v24.props.onConfirm(v24.state.shouldNotShowAgain);
    end;
end;
v15.render = function(v28)
    local l_props_0 = v28.props;
    local l_hasDoNotShow_0 = l_props_0.hasDoNotShow;
    return v9(function(v31)
        local v32 = 0;
        local v33 = {};
        for v34, v35 in ipairs(l_props_0.bodyContents) do
            table.insert(v33, (v4.createElement(v23, {
                key = tostring(v34),
                icon = v35.icon,
                text = v35.text,
                layoutOrder = v34,
                isSystemMenuIcon = v35.isSystemMenuIcon,
                stylePalette = v31
            })));
            v32 = v32 + 1;
        end;
        local l_Theme_1 = v31.Theme;
        if l_hasDoNotShow_0 then
            table.insert(v33, (v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 50),
                LayoutOrder = v32 + 1,
                BackgroundTransparency = 1
            }, {
                UIListLayout = v4.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Vertical,
                    Padding = UDim.new(0, 21),
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center
                }),
                Divider = v4.createElement("Frame", {
                    LayoutOrder = 1,
                    BackgroundColor3 = l_Theme_1.Divider.Color,
                    BackgroundTransparency = l_Theme_1.Divider.Transparency,
                    BorderSizePixel = 0,
                    Size = UDim2.new(1, 0, 0, 1)
                }),
                DoNotShowCheckbox = v4.createElement(v13, {
                    text = l_props_0.doNotShowText,
                    onActivated = v28.toggleDoNotShow,
                    isSelected = v28.state.shouldNotShowAgain,
                    layoutOrder = 2
                })
            })));
        end;
        return v4.createElement(v14, {
            title = l_props_0.titleText,
            titleBackgroundImageProps = l_props_0.titleBackgroundImageProps,
            screenSize = l_props_0.screenSize,
            bottomPadding = 50,
            buttonStackProps = {
                buttons = {
                    {
                        props = {
                            isDisabled = false,
                            onActivated = if not l_hasDoNotShow_0 then l_props_0.onCancel else v28.onCancel,
                            text = l_props_0.cancelText
                        }
                    },
                    {
                        buttonType = v10.PrimarySystem,
                        props = {
                            isDisabled = false,
                            onActivated = if not l_hasDoNotShow_0 then l_props_0.onConfirm else v28.onConfirm,
                            text = l_props_0.confirmText
                        }
                    }
                }
            },
            onCloseClicked = if not l_hasDoNotShow_0 then l_props_0.onDismiss else v28.onDismiss
        }, {
            BodyContents = v4.createElement(l_FitFrameVertical_0, {
                BackgroundTransparency = 1,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                width = UDim.new(1, 0),
                contentPadding = UDim.new(0, 28),
                margin = {
                    top = 36,
                    bottom = 36
                },
                [v4.Change.AbsoluteSize] = function(v37)
                    v28.changeContentSize(v37.AbsoluteSize);
                end
            }, v33)
        });
    end);
end;
return v15;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local v4 = require(l_Parent_2.UIBloxConfig);
local v5 = require(l_Parent_3.Roact);
local v6 = require(l_Parent_3.t);
local l_FitFrameVertical_0 = require(l_Parent_3.FitFrame).FitFrameVertical;
local v8 = require(l_Parent_1.Button.ButtonStack);
local v9 = require(l_Parent_0.ModalTitle);
local v10 = require(l_Parent_0.ModalWindow);
local v11 = v5.PureComponent:extend("FullPageModal");
v11.validateProps = v6.strictInterface({
    screenSize = v6.Vector2,
    [v5.Children] = v6.table,
    position = v6.optional(v6.UDim2),
    title = v6.optional(v6.string),
    marginSize = v6.optional(v6.number),
    buttonStackProps = v6.optional(v6.table),
    footerContent = v6.optional(v6.callback),
    onCloseClicked = v6.optional(v6.callback),
    distanceFromTop = v6.optional(v6.number)
});
v11.defaultProps = {
    marginSize = 24,
    distanceFromTop = 0
};
v11.init = function(v12)
    v12.state = {
        buttonFrameSize = Vector2.new(0, 0),
        footerContentSize = Vector2.new(0, 0),
        titleContainerSize = Vector2.new(0, v9:GetHeight())
    };
    v12.changeButtonFrameSize = function(v13)
        if v12.state.buttonFrameSize ~= v13.AbsoluteSize then
            v12:setState({
                buttonFrameSize = v13.AbsoluteSize
            });
        end;
    end;
    v12.changeFooterContentSize = function(v14)
        if v12.state.footerContentSize ~= v14.AbsoluteSize then
            v12:setState({
                footerContentSize = v14.AbsoluteSize
            });
        end;
    end;
    v12.changeTitleContainerSize = function(v15)
        if v12.state.titleContainerSize ~= v15.AbsoluteSize then
            v12:setState({
                titleContainerSize = v15.AbsoluteSize
            });
        end;
    end;
end;
v11.render = function(v16)
    return v5.createElement(v10, {
        isFullHeight = true,
        screenSize = v16.props.screenSize,
        position = v16.props.position,
        distanceFromTop = v16.props.distanceFromTop
    }, {
        TitleContainer = v5.createElement(v9, {
            title = v16.props.title,
            onCloseClicked = v16.props.onCloseClicked,
            onTitleSizeChanged = v16.changeTitleContainerSize
        }),
        Content = v5.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, -v16.state.titleContainerSize.Y),
            Position = UDim2.new(0, 0, 0, v16.state.titleContainerSize.Y),
            BackgroundTransparency = 1
        }, {
            v5.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Center
            }),
            v5.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 0),
                PaddingRight = UDim.new(0, 0),
                PaddingBottom = UDim.new(0, 24)
            });
            MiddleContent = v5.createElement("Frame", {
                Size = UDim2.new(1, -2 * v16.props.marginSize, 1, -(v16.state.buttonFrameSize.Y + v16.state.footerContentSize.Y)),
                BackgroundTransparency = 1,
                LayoutOrder = 1,
                ZIndex = if not v4.addMiddleContentZIndex then nil else 2
            }, v16.props[v5.Children]),
            Buttons = v16.props.buttonStackProps and v5.createElement(l_FitFrameVertical_0, {
                BackgroundTransparency = 1,
                width = UDim.new(1, 0),
                LayoutOrder = 2,
                [v5.Change.AbsoluteSize] = v16.changeButtonFrameSize
            }, {
                Padding = v5.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 24),
                    PaddingRight = UDim.new(0, 24)
                });
                v5.createElement(v8, v16.props.buttonStackProps)
            }),
            BottomFrame = if not v16.props.footerContent then nil else v5.createElement("Frame", {
                Size = UDim2.new(1, -2 * v16.props.marginSize, 0, 0),
                LayoutOrder = 3,
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y,
                [v5.Change.AbsoluteSize] = v16.changeFooterContentSize
            }, {
                ContentPadding = v5.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, 24)
                }),
                ListLayout = v5.createElement("UIListLayout", {
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                FooterContent = v16.props.footerContent()
            })
        })
    });
end;
return v11;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Core_0 = l_Parent_1.Core;
local l_Parent_2 = l_Parent_1.Parent;
local v4 = require(l_Parent_2.Roact);
local v5 = require(l_Parent_2.t);
local v6 = require(l_Parent_2.Cryo);
local v7 = require(l_Parent_0.ImageSet.Images);
local v8 = require(l_Core_0.ImageSet.ImageSetComponent);
local v9 = require(l_Core_0.Control.Controllable);
local v10 = require(l_Core_0.Text.GenericTextLabel.GenericTextLabel);
local v11 = require(l_Parent_1.Core.Style.withStyle);
local v12 = v4.PureComponent:extend("ModalTitle");
v12.validateProps = v5.strictInterface({
    title = v5.string,
    position = v5.optional(v5.UDim2),
    anchor = v5.optional(v5.Vector2),
    onCloseClicked = v5.optional(v5.callback),
    titleBackgroundImageProps = v5.optional(v5.strictInterface({
        image = v5.string,
        imageHeight = v5.number,
        text = v5.optional(v5.string)
    })),
    onTitleSizeChanged = v5.optional(v5.callback)
});
v12.defaultProps = {
    title = "",
    position = UDim2.new(0.5, 0, 0, 0),
    anchor = Vector2.new(0.5, 0)
};
v12.GetHeight = function(_)
    return 48;
end;
local function v22(v14, v15, v16)
    local l_text_0 = v14.text;
    local v18 = l_text_0 and #l_text_0 > 0;
    local v19 = l_text_0 and #l_text_0 > 0;
    local v20 = math.clamp(v14.imageHeight, 48, 261);
    if v18 then
        v20 = v20 + 8;
        v16 = v6.Dictionary.join(v16, {
            UICorner = v4.createElement("UICorner", {
                CornerRadius = UDim.new(0, 8)
            })
        });
    end;
    if l_text_0 and #l_text_0 > 0 then
        v16 = v6.Dictionary.join(v16, {
            BackgroundText = v4.createElement(v10, {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.new(0.5, 0, 0.5, 0),
                fontStyle = v15.Font.Body,
                colorStyle = v15.Theme.TextEmphasis,
                RichText = true,
                Text = l_text_0,
                TextTruncate = Enum.TextTruncate.AtEnd,
                ZIndex = 2
            })
        });
    end;
    if v19 then
        v16 = v6.Dictionary.join(v16, {
            BackgroundTextShadow = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, not v18 and 0 or -8),
                Position = UDim2.new(0, 0, 0, 0),
                BackgroundTransparency = 0,
                ZIndex = 1
            }, {
                UIGradient = v4.createElement("UIGradient", {
                    Color = ColorSequence.new(Color3.new(0, 0, 0)),
                    Transparency = NumberSequence.new({
                        NumberSequenceKeypoint.new(0, 1),
                        NumberSequenceKeypoint.new(0.6, 0.25),
                        NumberSequenceKeypoint.new(1, 1)
                    }),
                    Rotation = 90
                })
            })
        });
    end;
    local v21 = v4.createElement(v8.Label, {
        AnchorPoint = Vector2.new(0, 0),
        Size = UDim2.new(1, 0, 0, v20),
        Position = UDim2.new(0, 0, 0, 0),
        BackgroundTransparency = 1,
        ScaleType = Enum.ScaleType.Crop,
        BorderSizePixel = 0,
        Image = v14.image,
        ImageColor3 = Color3.fromRGB(255, 255, 255)
    }, v16);
    if v18 then
        v21 = v4.createElement("Frame", {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Size = UDim2.new(1, 0, 0, v20 - 8),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            BackgroundTransparency = 1,
            ClipsDescendants = true
        }, {
            TitleBackground = v21
        });
    end;
    return v21;
end;
v12.render = function(v23)
    local l_titleBackgroundImageProps_0 = v23.props.titleBackgroundImageProps;
    return v11(function(v25)
        local l_Font_0 = v25.Font;
        local l_Theme_0 = v25.Theme;
        local v28 = v4.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.new(1, 0, 0, 48),
            BackgroundTransparency = 1,
            [v4.Change.AbsoluteSize] = v23.props.onTitleSizeChanged
        }, {
            CloseButton = not not v23.props.onCloseClicked and v4.createElement(v9, {
                controlComponent = {
                    component = v8.Button,
                    props = {
                        BackgroundTransparency = 1,
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Position = UDim2.new(0, 32, 0.5, 0),
                        Size = UDim2.new(0, 48, 0, 48),
                        [v4.Event.Activated] = v23.props.onCloseClicked
                    },
                    children = {
                        InputFillImage = v4.createElement(v8.Label, {
                            BackgroundTransparency = 1,
                            Size = UDim2.new(0, 36, 0, 36),
                            Image = v7["icons/navigation/close"],
                            ImageColor3 = l_Theme_0.IconEmphasis.Color,
                            ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
                            AnchorPoint = Vector2.new(0.5, 0.5),
                            Position = UDim2.new(0.5, 0, 0.5, 0)
                        })
                    }
                },
                onStateChanged = function(...)
                end
            }) or nil,
            Title = v4.createElement(v10, {
                AnchorPoint = Vector2.new(0.5, 0),
                Position = UDim2.new(0.5, 0, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.new(1, -104, 1, 0),
                colorStyle = l_Theme_0.TextEmphasis,
                fontStyle = l_Font_0.Header1,
                LayoutOrder = 1,
                Text = v23.props.title,
                TextSize = l_Font_0.BaseSize * l_Font_0.Header1.RelativeSize,
                TextWrapped = true,
                TextTruncate = Enum.TextTruncate.AtEnd
            }, {
                Padding = v4.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, 8),
                    PaddingBottom = UDim.new(0, 8)
                })
            }),
            Underline = not l_titleBackgroundImageProps_0 and v4.createElement("Frame", {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.new(0.5, 0, 1, 0),
                BorderSizePixel = 0,
                BackgroundColor3 = l_Theme_0.Divider.Color,
                BackgroundTransparency = l_Theme_0.Divider.Transparency,
                LayoutOrder = 2,
                Size = UDim2.new(1, 0, 0, 1)
            })
        });
        if not l_titleBackgroundImageProps_0 then
            return v28;
        else
            return (v22(l_titleBackgroundImageProps_0, v25, {
                TitleText = v28
            }));
        end;
    end);
end;
return v12;


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 l_FitFrameVertical_0 = require(l_Parent_2.FitFrame).FitFrameVertical;
local v6 = require(l_Parent_0.ImageSet.Images);
local v7 = require(l_Parent_1.Core.Style.withStyle);
local v8 = require(l_Parent_1.Core.ImageSet.ImageSetComponent);
local v9 = Rect.new(8, 8, 9, 9);
local v10 = v3.PureComponent:extend("ModalWindow");
v10.validateProps = v4.strictInterface({
    isFullHeight = v4.boolean,
    screenSize = v4.Vector2,
    [v3.Children] = v4.table,
    position = v4.optional(v4.UDim2),
    anchorPoint = v4.optional(v4.Vector2),
    distanceFromTop = v4.optional(v4.number)
});
v10.defaultProps = {
    distanceFromTop = 0
};
v10.init = function(v11)
    local v12, v13 = v3.createBinding(Vector2.new(0, 0));
    v11.contentSize = v12;
    v11.changeContentSize = v13;
end;
v10.getWidth = function(v14, v15)
    return not not v14:isFullWidth(v15) and v15 or 540;
end;
v10.isFullWidth = function(_, v17)
    return v17 < 540;
end;
v10.render = function(v18)
    return v7(function(v19)
        local l_Theme_0 = v19.Theme;
        local l_screenSize_0 = v18.props.screenSize;
        local v22 = nil;
        local v23 = nil;
        local v24 = nil;
        local v25 = nil;
        v25 = UDim.new(0, v18:getWidth(l_screenSize_0.X));
        if not v18:isFullWidth(l_screenSize_0.X) then
            v22 = Vector2.new(0.5, 0.5);
            v23 = "component_assets/circle_17";
            v24 = v18.props.position or UDim2.new(0.5, 0, 0.5, 0);
        else
            v22 = Vector2.new(0.5, 1);
            v23 = "component_assets/bullet_17";
            v24 = v18.props.position or UDim2.new(0.5, 0, 1, 0);
        end;
        v22 = v18.props.anchorPoint or v22;
        if not v18.props.isFullHeight then
            return v3.createElement(v8.Button, {
                Position = v24,
                Size = v18.contentSize:map(function(v26)
                    return UDim2.new(0, v26.X, 0, v26.Y);
                end),
                AnchorPoint = v22,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Image = v6[v23],
                ImageColor3 = l_Theme_0.BackgroundUIDefault.Color,
                ImageTransparency = l_Theme_0.BackgroundUIDefault.Transparency,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = v9,
                AutoButtonColor = false,
                ClipsDescendants = true,
                Selectable = false
            }, {
                BackgroundImage = v3.createElement(l_FitFrameVertical_0, {
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    width = v25,
                    [v3.Change.AbsoluteSize] = function(v27)
                        v18.changeContentSize(v27.AbsoluteSize);
                    end
                }, v18.props[v3.Children])
            });
        else
            local v28 = nil;
            if v18.props.distanceFromTop > 0 then
                v28 = UDim.new(1, -v18.props.distanceFromTop);
            else
                v28 = UDim.new(1, 0);
                if l_screenSize_0.X >= 540 and l_screenSize_0.Y >= 700 then
                    v28 = UDim.new(0.8, 0);
                end;
            end;
            return v3.createElement(v8.Button, {
                Position = v24,
                Size = UDim2.new(v25, v28),
                AnchorPoint = v22,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Image = v6[v23],
                ImageColor3 = l_Theme_0.BackgroundUIDefault.Color,
                ImageTransparency = l_Theme_0.BackgroundUIDefault.Transparency,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = v9,
                AutoButtonColor = false,
                ClipsDescendants = true,
                Selectable = false
            }, {
                BackgroundImage = v3.createElement(v8.Label, {
                    Size = UDim2.new(1, 0, 1, 0),
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0
                }, v18.props[v3.Children])
            });
        end;
    end);
end;
return v10;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent.Parent;
local v3 = require(l_Parent_2.Roact);
local v4 = require(l_Parent_2.t);
local v5 = require(l_Parent_1.Button.ButtonStack);
local l_FitFrameVertical_0 = require(l_Parent_2.FitFrame).FitFrameVertical;
local v7 = require(l_Parent_0.ModalTitle);
local v8 = require(l_Parent_0.ModalWindow);
local v9 = v3.PureComponent:extend("PartialPageModal");
v9.validateProps = v4.strictInterface({
    screenSize = v4.Vector2,
    [v3.Children] = v4.table,
    position = v4.optional(v4.UDim2),
    anchorPoint = v4.optional(v4.Vector2),
    title = v4.optional(v4.string),
    titleBackgroundImageProps = v4.optional(v4.strictInterface({
        image = v4.string,
        imageHeight = v4.number,
        text = v4.optional(v4.string)
    })),
    bottomPadding = v4.optional(v4.number),
    marginSize = v4.optional(v4.number),
    buttonStackProps = v4.optional(v5.validateProps),
    footerContent = v4.optional(v4.callback),
    onCloseClicked = v4.optional(v4.callback),
    contentPadding = v4.optional(v4.UDim)
});
v9.defaultProps = {
    marginSize = 24
};
v9.getMiddleContentWidth = function(_, v11, v12)
    return v8:getWidth(v11) - 2 * (v12 or 24);
end;
v9.render = function(v13)
    local l_screenSize_0 = v13.props.screenSize;
    local v15 = v13.props.bottomPadding or 24;
    if not v8:isFullWidth(l_screenSize_0.X) then
        v15 = 24;
    end;
    return v3.createElement(v8, {
        isFullHeight = false,
        screenSize = l_screenSize_0,
        position = v13.props.position,
        anchorPoint = v13.props.anchorPoint
    }, {
        TitleContainer = v3.createElement(v7, {
            title = v13.props.title,
            titleBackgroundImageProps = v13.props.titleBackgroundImageProps,
            onCloseClicked = v13.props.onCloseClicked
        }),
        Content = v3.createElement(l_FitFrameVertical_0, {
            Position = UDim2.new(0, 0, 0, v7.TITLE_HEIGHT),
            width = UDim.new(1, 0),
            margin = {
                top = 0,
                bottom = v15,
                left = 0,
                right = 0
            },
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            BackgroundTransparency = 1,
            contentPadding = v13.props.contentPadding,
            LayoutOrder = 1
        }, {
            MiddlContent = v3.createElement(l_FitFrameVertical_0, {
                width = UDim.new(1, -2 * v13.props.marginSize),
                BackgroundTransparency = 1
            }, v13.props[v3.Children]),
            Buttons = v13.props.buttonStackProps and v3.createElement(l_FitFrameVertical_0, {
                BackgroundTransparency = 1,
                width = UDim.new(1, 0),
                LayoutOrder = 2
            }, {
                Padding = v3.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 24),
                    PaddingRight = UDim.new(0, 24)
                });
                v3.createElement(v5, v13.props.buttonStackProps)
            }),
            BottomFrame = if not v13.props.footerContent then nil else v3.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 0),
                LayoutOrder = 3,
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y
            }, {
                FooterContent = v13.props.footerContent()
            })
        })
    });
end;
return v9;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.React);
local v3 = require(l_Parent_0.Core.Style.useStyle);
local v4 = require(l_Parent_1.ReactOtter);
local v5 = {
    dampingRatio = 1,
    frequency = 3
};
local v6 = {
    top = 270,
    topRight = 305,
    right = 0,
    bottomRight = 45,
    bottom = 90,
    bottomLeft = 135,
    left = 180,
    topLeft = 225
};
return function(v7)
    local l_Theme_0 = v3().Theme;
    local v9, v10 = v4.useAnimatedBinding(not v7.showGradient and 1 or 0);
    v2.useEffect(function()
        if v7.showGradient == false then
            v10(v4.spring(1, v5));
            return ;
        else
            v10(v4.spring(0, v5));
            return ;
        end;
    end, {
        v7.showGradient
    });
    return v2.createElement("Frame", {
        Size = UDim2.fromScale(1, 1),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        ClipsDescendants = true,
        ZIndex = v7.ZIndex
    }, {
        Overlay = v2.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            BackgroundColor3 = l_Theme_0.Overlay.Color,
            BackgroundTransparency = l_Theme_0.Overlay.Transparency,
            ZIndex = 1
        }),
        Gradient = v2.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = v9,
            ZIndex = 2
        }, {
            UIGradient = v2.createElement("UIGradient", {
                Rotation = v6[v7.gradientDirection],
                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),
                    NumberSequenceKeypoint.new(1, 0.89)
                })
            })
        })
    });
end;


return {
    Appearing = "Appearing",
    Appeared = "Appeared",
    Disappearing = "Disappearing",
    Disappeared = "Disappeared"
};


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 v5 = require(l_Parent_1.Core.Style.withStyle);
local v6 = require(l_Parent_0.ToastFrame);
local v7 = require(l_Parent_0.ToastIcon);
local v8 = require(l_Parent_0.ToastText);
local v9 = v3.PureComponent:extend("InformativeToast");
v9.validateProps = v4.strictInterface({
    anchorPoint = v4.optional(v4.Vector2),
    iconProps = v4.optional(v7.validateProps),
    iconChildren = v4.optional(v4.table),
    layoutOrder = v4.optional(v4.integer),
    padding = v4.optional(v4.numberMin(0)),
    position = v4.optional(v4.UDim2),
    size = v4.UDim2,
    subtitleTextProps = v4.optional(v8.validateProps),
    textFrameSize = v4.optional(v4.UDim2),
    titleTextProps = v8.validateProps
});
v9.defaultProps = {
    anchorPoint = Vector2.new(0.5, 0.5),
    layoutOrder = 1,
    position = UDim2.new(0.5, 0, 0.5, 0),
    size = UDim2.new(1, 0, 1, 0)
};
v9.render = function(v10)
    return v5(function(v11)
        local l_Theme_0 = v11.Theme;
        return v3.createElement("Frame", {
            AnchorPoint = v10.props.anchorPoint,
            BackgroundColor3 = l_Theme_0.BackgroundUIContrast.Color,
            BackgroundTransparency = l_Theme_0.BackgroundUIContrast.Transparency * v11.Settings.PreferredTransparency,
            BorderSizePixel = 0,
            ClipsDescendants = true,
            LayoutOrder = v10.props.layoutOrder,
            Position = v10.props.position,
            Size = v10.props.size
        }, {
            ToastFrame = v3.createElement(v6, {
                iconProps = v10.props.iconProps,
                iconChildren = v10.props.iconChildren,
                padding = v10.props.padding,
                subtitleTextProps = v10.props.subtitleTextProps,
                textFrameSize = v10.props.textFrameSize,
                titleTextProps = v10.props.titleTextProps
            })
        });
    end);
end;
return v9;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.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.t);
local v6 = require(l_Parent_2.Core.ImageSet.ImageSetComponent);
local v7 = require(l_Parent_2.App.ImageSet.Images);
local v8 = require(l_Parent_2.Core.Style.withStyle);
local v9 = require(l_Parent_2.Utility.SpringAnimatedItem);
local v10 = require(l_Parent_1.Button.Enum.ButtonType);
local v11 = require(l_Parent_0.ToastFrame);
local v12 = require(l_Parent_0.ToastIcon);
local v13 = require(l_Parent_0.ToastText);
local v14 = {
    dampingRatio = 1,
    frequency = 4
};
local v15 = v7["component_assets/circle_21"];
local v16 = Rect.new(10, 10, 11, 11);
local v17 = v4.PureComponent:extend("InteractiveToast");
v17.validateProps = v5.strictInterface({
    anchorPoint = v5.optional(v5.Vector2),
    buttonProps = v5.optional(v5.strictInterface({
        buttonDimensions = v5.Vector2,
        buttonText = v5.string,
        onActivated = v5.callback,
        buttonType = v5.optional(v10.isEnumValue)
    })),
    iconProps = v5.optional(v12.validateProps),
    iconChildren = v5.optional(v5.table),
    isCompact = v5.optional(v5.boolean),
    layoutOrder = v5.optional(v5.integer),
    padding = v5.optional(v5.numberMin(0)),
    position = v5.optional(v5.UDim2),
    pressed = v5.optional(v5.boolean),
    pressedScale = v5.number,
    size = v5.UDim2,
    subtitleTextProps = v5.optional(v13.validateProps),
    textFrameSize = v5.optional(v5.UDim2),
    titleTextProps = v13.validateProps
});
v17.defaultProps = {
    anchorPoint = Vector2.new(0.5, 0.5),
    layoutOrder = 1,
    position = UDim2.new(0.5, 0, 0.5, 0),
    pressedScale = 0.95,
    size = UDim2.new(1, 0, 1, 0)
};
v17.render = function(v18)
    return v8(function(v19)
        local l_Theme_0 = v19.Theme;
        return v4.createElement(v6.Label, {
            AnchorPoint = v18.props.anchorPoint,
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Image = v15,
            ImageColor3 = l_Theme_0.SystemPrimaryContent.Color,
            ImageTransparency = l_Theme_0.SystemPrimaryContent.Transparency,
            LayoutOrder = v18.props.layoutOrder,
            Position = v18.props.position,
            ScaleType = Enum.ScaleType.Slice,
            Size = v18.props.size,
            SliceCenter = v16
        }, {
            Scaler = v4.createElement(v9.AnimatedUIScale, {
                springOptions = v14,
                animatedValues = {
                    scale = not not v18.props.pressed and v18.props.pressedScale or 1
                },
                mapValuesToProps = function(v21)
                    return {
                        Scale = v21.scale
                    };
                end
            }),
            ToastFrame = v4.createElement(v11, {
                buttonProps = v18.props.buttonProps,
                iconProps = v18.props.iconProps,
                iconChildren = v18.props.iconChildren,
                isCompact = v18.props.isCompact,
                padding = v18.props.padding,
                subtitleTextProps = v18.props.subtitleTextProps,
                textFrameSize = v18.props.textFrameSize,
                titleTextProps = v18.props.titleTextProps
            })
        });
    end);
end;
return v17;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.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.t);
local v6 = require(l_Parent_2.Core.Animation.Enum.SlidingDirection);
local v7 = require(l_Parent_2.Core.Animation.SlidingContainer);
local v8 = require(l_Parent_2.Core.Style.Validator.validateColorInfo);
local v9 = require(l_Parent_2.StateTable.StateTable);
local v10 = require(l_Parent_1.Button.Enum.ButtonType);
local v11 = require(l_Parent_0.Enum.AnimationState);
local v12 = require(l_Parent_0.InformativeToast);
local v13 = require(l_Parent_0.InteractiveToast);
local v14 = require(l_Parent_0.ToastContainer);
local v15 = v4.PureComponent:extend("Toast");
v15.validateProps = v5.strictInterface({
    anchorPoint = v5.optional(v5.Vector2),
    duration = v5.optional(v5.number),
    layoutOrder = v5.optional(v5.integer),
    position = v5.optional(v5.UDim2),
    show = v5.optional(v5.boolean),
    size = v5.optional(v5.UDim2),
    springOptions = v5.optional(v5.table),
    toastContent = v5.strictInterface({
        buttonText = v5.optional(v5.string),
        iconColorStyle = v5.optional(v8),
        iconImage = v5.optional(v5.union(v5.table, v5.string, v5.callback)),
        iconSize = v5.optional(v5.Vector2),
        iconChildren = v5.optional(v5.table),
        onActivated = v5.optional(v5.callback),
        onAppeared = v5.optional(v5.callback),
        onDismissed = v5.optional(v5.callback),
        swipeUpDismiss = v5.optional(v5.boolean),
        toastSubtitle = v5.optional(v5.string),
        sequenceNumber = v5.optional(v5.integer),
        toastTitle = v5.string,
        buttonType = v5.optional(v10.isEnumValue),
        onTouchSwipeUp = v5.optional(v5.callback)
    })
});
v15.defaultProps = {
    anchorPoint = Vector2.new(0.5, 0),
    position = UDim2.new(0.5, 0, 0, 20),
    show = true
};
local function v18(v16, v17)
    if not ((((((((v16.iconColorStyle == v17.iconColorStyle and v16.iconImage == v17.iconImage) and v16.iconSize == v17.iconSize) and v16.iconChildren == v17.iconChildren) and v16.onActivated == v17.onActivated) and v16.onDismissed == v17.onDismissed) and v16.sequenceNumber == v17.sequenceNumber) and v16.swipeUpDismiss == v17.swipeUpDismiss) and v16.toastSubtitle == v17.toastSubtitle) or v16.toastTitle ~= v17.toastTitle then
        return false;
    else
        return true;
    end;
end;
v15.init = function(v19)
    v19.isMounted = false;
    v19.currentToastContent = v19.props.toastContent;
    v19.onActivated = function()
        v19.stateTable.events.Activated({
            activated = true
        });
    end;
    v19.onAppeared = function()
        if v19.currentToastContent.onAppeared then
            v19.currentToastContent.onAppeared();
        end;
        local l_duration_0 = v19.props.duration;
        if l_duration_0 and l_duration_0 > 0 then
            local l_currentToastContent_0 = v19.currentToastContent;
            delay(l_duration_0, function()
                if l_currentToastContent_0 == v19.currentToastContent then
                    v19.stateTable.events.AutoDismiss();
                end;
            end);
        end;
    end;
    v19.onComplete = function()
        local l_duration_1 = v19.props.duration;
        if not (not (v19.state.currentState == v11.Appearing) or not l_duration_1) and l_duration_1 <= 0 then
            v19.stateTable.events.AutoDismiss();
            return ;
        else
            v19.stateTable.events.AnimationComplete();
            return ;
        end;
    end;
    v19.onDisappeared = function()
        if not v19.state.context.activated then
            if v19.currentToastContent.onDismissed then
                v19.currentToastContent.onDismissed();
            end;
        elseif v19.currentToastContent.onActivated then
            v19.currentToastContent.onActivated();
            return ;
        end;
    end;
    v19.onTouchSwipe = function(_, v24)
        if v24 == Enum.SwipeDirection.Up then
            v19.stateTable.events.ForceDismiss();
            if v19.currentToastContent.onTouchSwipeUp then
                v19.currentToastContent.onTouchSwipeUp();
            end;
        end;
    end;
    v19.renderInteractiveToast = function(v25)
        return v4.createElement(v13, v25);
    end;
    v19.renderInformativeToast = function(v26)
        return v4.createElement(v12, v26);
    end;
    v19.setContext = function(_, _, v29)
        return v29;
    end;
    v19.updateToastContent = function()
        if v19.currentToastContent ~= v19.props.toastContent then
            v19.currentToastContent = v19.props.toastContent;
            if v19.props.show then
                v19.stateTable.events.ForceAppear({
                    activated = false
                });
            end;
        end;
    end;
    local l_Disappeared_0 = v11.Disappeared;
    v19.state = {
        currentState = l_Disappeared_0,
        context = {
            activated = false
        }
    };
    v19.stateTable = v9.new(string.format("Animated(%s)", (tostring(v19))), l_Disappeared_0, {}, {
        [v11.Appearing] = {
            AnimationComplete = {
                nextState = v11.Appeared,
                action = v19.onAppeared
            },
            AutoDismiss = {
                nextState = v11.Disappearing,
                action = v19.onAppeared
            },
            ContentChanged = {
                nextState = v11.Disappearing
            },
            ForceDismiss = {
                nextState = v11.Disappearing
            }
        },
        [v11.Appeared] = {
            Activated = {
                nextState = v11.Disappearing,
                action = v19.setContext
            },
            AutoDismiss = {
                nextState = v11.Disappearing
            },
            ContentChanged = {
                nextState = v11.Disappearing
            },
            ForceDismiss = {
                nextState = v11.Disappearing
            }
        },
        [v11.Disappearing] = {
            AnimationComplete = {
                nextState = v11.Disappeared,
                action = v19.onDisappeared
            }
        },
        [v11.Disappeared] = {
            ContentChanged = {
                nextState = v11.Appearing,
                action = v19.updateToastContent
            },
            ForceAppear = {
                nextState = v11.Appearing,
                action = v19.setContext
            }
        }
    });
    v19.stateTable:onStateChange(function(v31, v32, v33)
        if v19.isMounted and v31 ~= v32 then
            v19:setState({
                currentState = v32,
                context = v33
            });
        end;
    end);
end;
v15.isShowing = function(v34)
    local v35 = true;
    if v34.state.currentState ~= v11.Appearing then
        v35 = v34.state.currentState == v11.Appeared;
    end;
    return v35;
end;
v15.render = function(v36)
    local l_onActivated_0 = v36.currentToastContent.onActivated;
    local l_swipeUpDismiss_0 = v36.currentToastContent.swipeUpDismiss;
    if l_swipeUpDismiss_0 == nil then
        l_swipeUpDismiss_0 = true;
    end;
    return v4.createElement(v7, {
        show = v36:isShowing(),
        layoutOrder = v36.props.layoutOrder,
        onComplete = v36.onComplete,
        slidingDirection = v6.Down,
        springOptions = v36.props.springOptions
    }, {
        ToastContainer = v4.createElement(v14, {
            anchorPoint = v36.props.anchorPoint,
            buttonText = v36.currentToastContent.buttonText,
            position = v36.props.position,
            size = v36.props.size,
            iconColorStyle = v36.currentToastContent.iconColorStyle,
            iconImage = v36.currentToastContent.iconImage,
            iconSize = v36.currentToastContent.iconSize,
            iconChildren = v36.currentToastContent.iconChildren,
            onActivated = l_onActivated_0 and v36.onActivated,
            onTouchSwipe = l_swipeUpDismiss_0 and v36.onTouchSwipe,
            renderToast = not not l_onActivated_0 and v36.renderInteractiveToast or v36.renderInformativeToast,
            toastSubtitle = v36.currentToastContent.toastSubtitle,
            toastTitle = v36.currentToastContent.toastTitle,
            buttonType = v36.currentToastContent.buttonType
        })
    });
end;
v15.didMount = function(v39)
    v39.isMounted = true;
    if v39.props.show then
        v39.stateTable.events.ForceAppear({
            activated = false
        });
    end;
end;
v15.willUnmount = function(v40)
    v40.isMounted = false;
end;
v15.didUpdate = function(v41, v42, v43)
    if v42.show ~= v41.props.show then
        if not v41.props.show then
            v41.stateTable.events.ForceDismiss();
        else
            v41.stateTable.events.ForceAppear({
                activated = false
            });
        end;
    end;
    if not v18(v42.toastContent, v41.props.toastContent) then
        v41.stateTable.events.ContentChanged({
            activated = false
        });
    end;
    if v43.currentState ~= v41.state.currentState and v41.state.currentState == v11.Disappeared then
        v41.updateToastContent();
    end;
end;
return v15;


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.Text.GetTextSize);
local v6 = require(l_Parent_1.App.ImageSet.Images);
local v7 = require(l_Parent_1.Utility.memoize);
local v8 = require(l_Parent_1.Core.Style.withStyle);
local v9 = require(l_Parent_1.Core.Style.Validator.validateColorInfo);
local v10 = require(l_Parent_0.Button.Enum.ButtonType);
local v11 = Vector2.new(36, 36);
local function _(v12, v13, v14, v15)
    return v5(v12, v14, v13, (Vector2.new(v15, 10000))).Y;
end;
local v17 = v3.PureComponent:extend("ToastContainer");
v17.validateProps = v4.strictInterface({
    anchorPoint = v4.optional(v4.Vector2),
    buttonText = v4.optional(v4.string),
    fitHeight = v4.optional(v4.boolean),
    iconColorStyle = v4.optional(v9),
    iconImage = v4.optional(v4.union(v4.table, v4.string, v4.callback)),
    iconSize = v4.optional(v4.Vector2),
    iconChildren = v4.optional(v4.table),
    layoutOrder = v4.optional(v4.integer),
    onActivated = v4.optional(v4.callback),
    onTouchSwipe = v4.optional(v4.callback),
    padding = v4.numberMin(0),
    position = v4.UDim2,
    pressedScale = v4.optional(v4.number),
    renderToast = v4.callback,
    size = v4.UDim2,
    sizeConstraint = v4.optional(v4.table),
    toastSubtitle = v4.optional(v4.string),
    toastTitle = v4.string,
    buttonType = v4.optional(v10.isEnumValue)
});
v17.defaultProps = {
    anchorPoint = Vector2.new(0, 0),
    fitHeight = true,
    padding = 12,
    position = UDim2.new(0, 0, 0, 0),
    size = UDim2.new(1, -24, 0, 0),
    sizeConstraint = {
        MaxSize = Vector2.new(400, math.huge),
        MinSize = Vector2.new(24, 60)
    }
};
v17.init = function(v18)
    v18.containerRef = v3.createRef();
    v18.isMounted = false;
    v18.state = {
        containerWidth = 0,
        pressed = false,
        subtitleHeight = 0,
        titleHeight = 0
    };
    v18.getIconSize = function()
        local l_iconSize_0 = v18.props.iconSize;
        local l_iconImage_0 = v18.props.iconImage;
        local l_ImagesResolutionScale_0 = v6.ImagesResolutionScale;
        if not l_iconImage_0 then
            return Vector2.new(0, 0);
        elseif not l_iconSize_0 then
            if not (not l_iconImage_0.ImageRectSize or not l_ImagesResolutionScale_0) and l_ImagesResolutionScale_0 > 0 then
                return l_iconImage_0.ImageRectSize / l_ImagesResolutionScale_0;
            else
                return v11;
            end;
        else
            return l_iconSize_0;
        end;
    end;
    v18.onButtonInputBegan = function(_, v23)
        if not (not (v23.UserInputState == Enum.UserInputState.Begin and (not (v23.UserInputType ~= Enum.UserInputType.Touch) or v23.UserInputType == Enum.UserInputType.MouseButton1)) or v18.state.pressed) then
            v18:setState({
                pressed = true
            });
        end;
    end;
    v18.onButtonInputEnded = function()
        if v18.state.pressed then
            v18:setState({
                pressed = false
            });
        end;
    end;
    v18.getTextHeights = function(v24)
        local l_iconImage_1 = v18.props.iconImage;
        local v26 = v18.getIconSize();
        local l_buttonText_0 = v18.props.buttonText;
        local l_padding_0 = v18.props.padding;
        local l_toastSubtitle_0 = v18.props.toastSubtitle;
        local l_toastTitle_0 = v18.props.toastTitle;
        local l_Font_0 = v24.Font;
        local l_Header2_0 = l_Font_0.Header2;
        local l_CaptionBody_0 = l_Font_0.CaptionBody;
        local v34 = v18.state.containerWidth - l_padding_0 * 2;
        if l_iconImage_1 then
            v34 = (v34 - v26.X) - l_padding_0;
        end;
        if not (not l_buttonText_0 or v18.showCompactToast()) then
            v34 = v34 - v18.getButtonDimensions(v24).X;
        end;
        local v35 = math.max(0, v5(l_toastTitle_0, l_Header2_0.RelativeSize * l_Font_0.BaseSize, l_Header2_0.Font, (Vector2.new(v34, 10000))).Y);
        local v36 = 0;
        if l_toastSubtitle_0 then
            v36 = math.max(0, v5(l_toastSubtitle_0, l_CaptionBody_0.RelativeSize * l_Font_0.BaseSize, l_CaptionBody_0.Font, (Vector2.new(v34, 10000))).Y);
        end;
        return v36, v35;
    end;
    v18.showCompactToast = function()
        return v18.state.containerWidth < 400;
    end;
    v18.showPressed = function()
        if v18.props.buttonText or not v18.props.onActivated then
            return nil;
        else
            return v18.state.pressed;
        end;
    end;
    v18.getButtonDimensions = v7(function(v37)
        local l_buttonText_1 = v18.props.buttonText;
        local l_onActivated_0 = v18.props.onActivated;
        if l_buttonText_1 and l_onActivated_0 then
            local v40 = (Vector2.new(30, 30) + Vector2.new(10, 10)) + v5(l_buttonText_1, v37.Font.Header2.RelativeSize * v37.Font.BaseSize, v37.Font.Header2.Font, Vector2.new(1000, 1000));
            if v18.showCompactToast() then
                return Vector2.new(math.min(v40.X, 200), v40.Y);
            else
                return v40;
            end;
        else
            return Vector2.new(0, 0);
        end;
    end);
end;
v17.render = function(v41)
    local l_iconImage_2 = v41.props.iconImage;
    local v43 = v41.getIconSize();
    local l_padding_1 = v41.props.padding;
    local l_toastSubtitle_1 = v41.props.toastSubtitle;
    local l_toastTitle_1 = v41.props.toastTitle;
    return v8(function(v47)
        local v48, v49 = v41.getTextHeights(v47);
        local v50 = v49 + v48;
        local l_Y_0 = v41.getButtonDimensions(v47).Y;
        local l_size_0 = v41.props.size;
        if v41.props.fitHeight then
            l_size_0 = UDim2.new(l_size_0.X.Scale, l_size_0.X.Offset, 0, (math.max(v43.Y, v50) + l_padding_1 * 2) + if not not v41.showCompactToast() and v41.props.buttonText then l_Y_0 else 0);
        end;
        local l_Theme_0 = v47.Theme;
        local l_Font_1 = v47.Font;
        return v3.createElement("TextButton", {
            AnchorPoint = v41.props.anchorPoint,
            BackgroundTransparency = 1,
            LayoutOrder = v41.props.layoutOrder,
            Position = v41.props.position,
            Size = l_size_0,
            Text = "",
            [v3.Change.AbsoluteSize] = function(v55)
                if v41.state.containerWidth ~= v55.AbsoluteSize.X then
                    v41:setState({
                        containerWidth = v55.AbsoluteSize.X
                    });
                end;
            end,
            [v3.Event.Activated] = if v41.props.buttonText then nil else v41.props.onActivated,
            [v3.Event.InputBegan] = v41.onButtonInputBegan,
            [v3.Event.InputEnded] = v41.onButtonInputEnded,
            [v3.Event.TouchSwipe] = v41.props.onTouchSwipe,
            [v3.Ref] = v41.containerRef
        }, {
            UISizeConstraint = v3.createElement("UISizeConstraint", v41.props.sizeConstraint),
            Toast = v41.props.renderToast({
                buttonProps = if not not v41.props.buttonText and v41.props.onActivated then {
                    buttonDimensions = v41.getButtonDimensions(v47),
                    buttonText = v41.props.buttonText,
                    onActivated = v41.props.onActivated,
                    buttonType = v41.props.buttonType
                } else nil,
                iconProps = not not l_iconImage_2 and {
                    colorStyle = v41.props.iconColorStyle,
                    Image = l_iconImage_2,
                    Size = UDim2.new(0, v43.X, 0, v43.Y)
                } or nil,
                iconChildren = v41.props.iconChildren,
                isCompact = if not not v41.props.buttonText and v41.props.onActivated then v41.showCompactToast() else nil,
                padding = l_padding_1,
                pressed = v41.showPressed(),
                pressedScale = v41.props.pressedScale,
                subtitleTextProps = not not l_toastSubtitle_1 and {
                    colorStyle = l_Theme_0.TextEmphasis,
                    fontStyle = l_Font_1.CaptionBody,
                    Size = UDim2.new(1, 0, 0, v48),
                    Text = l_toastSubtitle_1
                } or nil,
                textFrameSize = UDim2.new(1, not not l_iconImage_2 and -v43.X - l_padding_1 or 0, 0, v50),
                titleTextProps = {
                    colorStyle = l_Theme_0.TextEmphasis,
                    fontStyle = l_Font_1.Header2,
                    Size = UDim2.new(1, 0, 0, v49),
                    Text = l_toastTitle_1
                }
            })
        });
    end);
end;
v17.didMount = function(v56)
    v56:setState({
        containerWidth = not not v56.containerRef.current and v56.containerRef.current.AbsoluteSize.X or 0
    });
end;
return v17;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local v4 = require(l_Parent_3.Cryo);
local v5 = require(l_Parent_3.Roact);
local v6 = require(l_Parent_3.t);
local v7 = require(l_Parent_0.ToastIcon);
local v8 = require(l_Parent_0.ToastText);
local v9 = require(l_Parent_1.Button.Button);
local v10 = require(l_Parent_1.Button.Enum.ButtonType);
local v11 = require(l_Parent_2.Core.Button.Enum.StandardButtonSize);
local v12 = v5.PureComponent:extend("ToastFrame");
v12.validateProps = v6.strictInterface({
    anchorPoint = v6.optional(v6.Vector2),
    buttonProps = v6.optional(v6.strictInterface({
        buttonDimensions = v6.Vector2,
        buttonText = v6.string,
        onActivated = v6.callback
    })),
    iconProps = v6.optional(v7.validateProps),
    iconChildren = v6.optional(v6.table),
    isCompact = v6.optional(v6.boolean),
    layoutOrder = v6.optional(v6.integer),
    padding = v6.numberMin(0),
    position = v6.optional(v6.UDim2),
    size = v6.UDim2,
    subtitleTextProps = v6.optional(v8.validateProps),
    textFrameSize = v6.UDim2,
    titleTextProps = v8.validateProps,
    buttonType = v6.optional(v10.isEnumValue)
});
v12.defaultProps = {
    padding = 0,
    size = UDim2.new(1, 0, 1, 0),
    textFrameSize = UDim2.new(1, 0, 1, 0)
};
local function v15(v13, v14)
    if not v13 then
        return nil;
    elseif type(v13.Image) == "function" then
        return v13:Image();
    else
        return v5.createElement(v7, v4.Dictionary.join(v13, {
            LayoutOrder = 1
        }), v14);
    end;
end;
v12.render = function(v16)
    local l_buttonProps_0 = v16.props.buttonProps;
    local v18 = l_buttonProps_0 and l_buttonProps_0.buttonText;
    local v19 = l_buttonProps_0 and l_buttonProps_0.buttonDimensions.Y;
    local v20 = l_buttonProps_0 and l_buttonProps_0.buttonDimensions.X;
    local v21 = nil;
    if l_buttonProps_0 then
        v21 = l_buttonProps_0.buttonType or v10.PrimarySystem;
    end;
    local l_isCompact_0 = v16.props.isCompact;
    local l_iconProps_0 = v16.props.iconProps;
    local v24 = l_buttonProps_0 and l_buttonProps_0.onActivated;
    local l_padding_0 = v16.props.padding;
    local l_subtitleTextProps_0 = v16.props.subtitleTextProps;
    local v27 = nil;
    v27 = if l_subtitleTextProps_0 then if l_isCompact_0 then Enum.VerticalAlignment.Top else Enum.VerticalAlignment.Center else Enum.VerticalAlignment.Center;
    local l_createElement_0 = v5.createElement;
    local v29 = "Frame";
    local v30 = {
        AnchorPoint = v16.props.anchorPoint,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        ClipsDescendants = true,
        LayoutOrder = v16.props.layoutOrder,
        Position = v16.props.position,
        Size = v16.props.size
    };
    local v31 = {
        UIListLayout = v5.createElement("UIListLayout", {
            FillDirection = if not l_isCompact_0 then Enum.FillDirection.Horizontal else Enum.FillDirection.Vertical,
            Padding = UDim.new(0, l_padding_0),
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = if not l_isCompact_0 then Enum.HorizontalAlignment.Left else Enum.HorizontalAlignment.Center,
            VerticalAlignment = Enum.VerticalAlignment.Center
        })
    };
    local v32 = false;
    if l_padding_0 > 0 then
        v32 = v5.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, l_padding_0),
            PaddingLeft = UDim.new(0, l_padding_0),
            PaddingRight = UDim.new(0, l_padding_0),
            PaddingTop = UDim.new(0, l_padding_0)
        });
    end;
    v31.UIPadding = v32;
    v31.ToastMessageFrame = v5.createElement("Frame", {
        AnchorPoint = v16.props.anchorPoint,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        ClipsDescendants = false,
        LayoutOrder = 1,
        Position = v16.props.position,
        Size = if l_buttonProps_0 then if l_isCompact_0 then UDim2.new(1, 0, 1, -v19) else UDim2.new(1, -v20, 1, 0) else v16.props.size
    }, {
        UIListLayout = v5.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            Padding = UDim.new(0, l_padding_0),
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = v27 or if l_isCompact_0 then Enum.VerticalAlignment.Top else Enum.VerticalAlignment.Center
        }),
        ToastIcon = v15(l_iconProps_0, v16.props.iconChildren),
        ToastTextFrame = v5.createElement("Frame", {
            BackgroundTransparency = 1,
            LayoutOrder = 2,
            Size = v16.props.textFrameSize
        }, {
            UIListLayout = v5.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            ToastTitle = v5.createElement(v8, v4.Dictionary.join(v16.props.titleTextProps, {
                LayoutOrder = 1
            })),
            ToastSubtitle = l_subtitleTextProps_0 and v5.createElement(v8, v4.Dictionary.join(l_subtitleTextProps_0, {
                LayoutOrder = 2
            }))
        })
    });
    v31.ToastButton = l_buttonProps_0 and v5.createElement(v9, {
        buttonType = v21,
        fitContent = not l_isCompact_0,
        layoutOrder = 2,
        maxWidth = if l_isCompact_0 then nil else l_buttonProps_0.buttonDimensions.X,
        onActivated = v24,
        standardSize = v11.Small,
        text = v18
    });
    return l_createElement_0(v29, v30, v31);
end;
return v12;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.Roact);
local v3 = require(l_Parent_1.Cryo);
local v4 = require(l_Parent_1.t);
local v5 = require(l_Parent_0.Core.ImageSet.ImageSetComponent);
local v6 = require(l_Parent_0.Core.Style.Validator.validateColorInfo);
local v7 = require(l_Parent_0.Core.Style.withStyle);
local v8 = v2.PureComponent:extend("ToastIcon");
v8.validateProps = v4.interface({
    Image = v4.union(v4.table, v4.string, v4.callback),
    Size = v4.UDim2,
    AnchorPoint = v4.optional(v4.Vector2),
    colorStyle = v4.optional(v6),
    LayoutOrder = v4.optional(v4.integer),
    Position = v4.optional(v4.UDim2)
});
v8.defaultProps = {
    BackgroundTransparency = 1
};
v8.render = function(v9)
    return v7(function(v10)
        local l_Theme_0 = v10.Theme;
        local l_colorStyle_0 = v9.props.colorStyle;
        if l_colorStyle_0 == nil then
            l_colorStyle_0 = l_Theme_0.IconEmphasis;
        end;
        return v2.createElement(v5.Label, (v3.Dictionary.join(v9.props, {
            colorStyle = v3.None,
            ImageColor3 = l_colorStyle_0.Color,
            ImageTransparency = l_colorStyle_0.Transparency
        })));
    end);
end;
return v8;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.Roact);
local v3 = require(l_Parent_1.t);
local v4 = require(l_Parent_0.Core.Style.Validator.validateFontInfo);
local v5 = require(l_Parent_0.Core.Style.Validator.validateColorInfo);
local v6 = require(l_Parent_0.Core.Text.GenericTextLabel.GenericTextLabel);
local v7 = v2.PureComponent:extend("ToastText");
v7.validateProps = v3.interface({
    colorStyle = v5,
    fontStyle = v4,
    Size = v3.UDim2,
    Text = v3.string,
    AnchorPoint = v3.optional(v3.Vector2),
    fluidSizing = v3.optional(v3.boolean),
    LayoutOrder = v3.optional(v3.integer),
    maxSize = v3.optional(v3.Vector2),
    Position = v3.optional(v3.UDim2),
    TextTruncate = v3.optional(v3.EnumItem),
    TextXAlignment = v3.optional(v3.EnumItem),
    TextYAlignment = v3.optional(v3.EnumItem)
});
v7.defaultProps = {
    TextXAlignment = Enum.TextXAlignment.Left,
    TextYAlignment = Enum.TextYAlignment.Center
};
v7.render = function(v8)
    return v2.createElement(v6, v8.props);
end;
return v7;


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


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 v5 = require(l_Parent_1.Core.Style.withStyle);
local v6 = require(l_Parent_0.TooltipContainer);
local v7 = require(l_Parent_0.Enum.TooltipOrientation);
local v8 = v3.PureComponent:extend("Tooltip");
v8.validateProps = v4.strictInterface({
    triggerPosition = v4.Vector2,
    triggerSize = v4.Vector2,
    bodyText = v4.string,
    headerText = v4.optional(v4.string),
    backgroundColor = v4.optional(v4.Color3),
    backgroundTransparency = v4.optional(v4.number),
    onDismiss = v4.optional(v4.callback),
    onClose = v4.optional(v4.callback),
    screenSize = v4.optional(v4.Vector2),
    position = v4.optional(v4.UDim2),
    orientation = v4.optional(v7.isEnumValue),
    triggerOnHover = v4.optional(v4.boolean),
    forceClickTriggerPoint = v4.optional(v4.boolean),
    isDirectChild = v4.optional(v4.boolean),
    minContentWidth = v4.optional(v4.number)
});
v8.defaultProps = {
    screenSize = Vector2.new(10000, 10000),
    orientation = v7.Bottom,
    triggerOnHover = false,
    forceClickTriggerPoint = false,
    isDirectChild = false
};
v8.init = function(v9)
    v9.onDismissDefault = function()
        if not v9.props.forceClickTriggerPoint and not v9.props.triggerOnHover then
            if v9.props.onDismiss then
                v9.props.onDismiss();
            end;
            return ;
        else
            return ;
        end;
    end;
end;
v8.render = function(v10)
    local v11 = v10.props.forceClickTriggerPoint or v10.props.triggerOnHover;
    local l_isDirectChild_0 = v10.props.isDirectChild;
    return v5(function(v13)
        local v14 = {
            Background = not v10.props.forceClickTriggerPoint and v3.createElement("TextButton", {
                ZIndex = 0,
                AutoButtonColor = false,
                BackgroundColor3 = v13.Theme.Overlay.Color,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Position = not not l_isDirectChild_0 and UDim2.fromOffset(-v10.props.triggerPosition.X, -v10.props.triggerPosition.Y) or UDim2.fromOffset(0, 0),
                Size = UDim2.fromOffset(v10.props.screenSize.X, v10.props.screenSize.Y),
                Text = "",
                [v3.Event.Activated] = v10.onDismissDefault,
                [v3.Event.TouchSwipe] = v10.onDismissDefault,
                [v3.Event.MouseWheelForward] = v10.onDismissDefault,
                [v3.Event.MouseWheelBackward] = v10.onDismissDefault
            }),
            TriggerPointMask = v11 and v3.createElement("TextButton", {
                Text = "",
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Selectable = false,
                Size = UDim2.fromOffset(v10.props.triggerSize.X, v10.props.triggerSize.Y),
                Position = not not l_isDirectChild_0 and UDim2.fromOffset(0, 0) or UDim2.fromOffset(v10.props.triggerPosition.X, v10.props.triggerPosition.Y),
                [v3.Event.Activated] = v10.props.onDismiss
            }),
            TooltipContainer = v3.createElement(v6, {
                triggerPosition = v10.props.triggerPosition,
                triggerSize = v10.props.triggerSize,
                bodyText = v10.props.bodyText,
                headerText = v10.props.headerText,
                screenSize = v10.props.screenSize,
                position = v10.props.position,
                orientation = v10.props.orientation,
                isDirectChild = l_isDirectChild_0
            })
        };
        return not not l_isDirectChild_0 and v3.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1,
            BorderSizePixel = 0
        }, v14) or v3.createFragment(v14);
    end);
end;
return v8;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.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.t);
local v6 = require(l_Parent_3.Otter);
local v7 = require(l_Parent_2.Core.Style.withStyle);
local v8 = require(l_Parent_1.ImageSet.Images);
local l_Label_0 = require(l_Parent_2.Core.ImageSet.ImageSetComponent).Label;
local v10 = require(l_Parent_2.Core.Text.GenericTextLabel.GenericTextLabel);
local v11 = require(l_Parent_2.Core.Text.GetTextSize);
local v12 = require(l_Parent_2.Core.Text.GetTextHeight);
local v13 = require(l_Parent_2.Utility.divideTransparency);
local v14 = require(l_Parent_2.Utility.lerp);
local v15 = require(l_Parent_0.Enum.TooltipOrientation);
local v16 = require(l_Parent_0.getPositionInfo);
local v17 = {
    [v15.Bottom] = v8["component_assets/triangleUp_16"],
    [v15.Top] = v8["component_assets/triangleDown_16"],
    [v15.Right] = v8["component_assets/triangleLeft_16"],
    [v15.Left] = v8["component_assets/triangleRight_16"]
};
local v18 = {
    frequency = 50,
    dampingRatio = 1
};
local v19 = v4.PureComponent:extend("TooltipContainer");
v19.validateProps = v5.strictInterface({
    triggerPosition = v5.Vector2,
    triggerSize = v5.Vector2,
    bodyText = v5.string,
    headerText = v5.optional(v5.string),
    screenSize = v5.optional(v5.Vector2),
    position = v5.optional(v5.UDim2),
    orientation = v5.optional(v15.isEnumValue),
    isDirectChild = v5.optional(v5.boolean)
});
v19.defaultProps = {
    screenSize = Vector2.new(10000, 10000),
    orientation = v15.Bottom,
    isDirectChild = false
};
v19.init = function(v20)
    v20.visible = true;
    local v21 = nil;
    local v22, v23 = v4.createBinding(0);
    v20.progress = v22;
    v21 = v23;
    v20.progressMotor = v6.createSingleMotor(0);
    v20.progressMotor:onStep(v21);
    v20.progressMotor:setGoal(v6.spring(1, v18));
end;
v19.render = function(v24)
    return v7(function(v25)
        local l_Font_0 = v25.Font;
        local l_Theme_0 = v25.Theme;
        local l_CaptionHeader_0 = l_Font_0.CaptionHeader;
        local l_CaptionBody_0 = l_Font_0.CaptionBody;
        local v30 = l_Font_0.BaseSize * l_Font_0.CaptionBody.RelativeSize;
        local l_X_0 = v11(v24.props.bodyText, v30, l_CaptionBody_0.Font, Vector2.new()).X;
        if v24.props.headerText then
            l_X_0 = math.max(l_X_0, v11(v24.props.headerText, l_Font_0.BaseSize * l_CaptionHeader_0.RelativeSize, l_CaptionHeader_0.Font, Vector2.new()).X);
        end;
        local v32 = math.min(l_X_0, 216);
        local v33 = v32 + 24;
        local v34 = v12(v24.props.bodyText, l_CaptionBody_0.Font, v30, v32);
        local v35 = not not v24.props.headerText and v12(v24.props.headerText, l_CaptionHeader_0.Font, v30, v32) or 0;
        local v36 = not not v24.props.headerText and ((v35 + v34) + 24) + 4 or v34 + 24;
        local v37 = v16(v33, v36, v24.props.orientation, v24.props.triggerPosition, v24.props.triggerSize, v24.props.screenSize, v24.props.position);
        local v40 = v24.progress:map(function(v38)
            local v39 = nil;
            v39 = if not v24.props.position then not not v24.props.isDirectChild and v37.position or v37.absolutePosition else v24.props.position;
            return v39:lerp(v39 + v37.animatedDistance, v38);
        end);
        local v42 = v24.progress:map(function(v41)
            return v14(1, v13(l_Theme_0.BackgroundMuted.Transparency, 1), v41);
        end);
        local v44 = v24.progress:map(function(v43)
            return v14(1, v13(l_Theme_0.TextEmphasis.Transparency, 2), v43);
        end);
        return v4.createElement("Frame", {
            Visible = v24.visible,
            Position = v40,
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Size = v37.fillDirection == Enum.FillDirection.Vertical and UDim2.fromOffset(v33, v36 + 8) or UDim2.fromOffset(v33 + 8, v36)
        }, {
            UIListLayout = v4.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = v37.fillDirection
            }),
            CaretFrame = v4.createElement("Frame", {
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = v37.caretFrameSize,
                LayoutOrder = v37.caretLayoutOrder
            }, {
                Caret = v4.createElement(l_Label_0, {
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Position = v37.caretPosition,
                    AnchorPoint = v37.caretAnchorPoint,
                    Size = v37.caretImageSize,
                    Image = v17[v37.updatedOrientation],
                    ImageColor3 = l_Theme_0.BackgroundMuted.Color,
                    ImageTransparency = v42,
                    [v4.Ref] = v24.caretRef
                })
            }),
            Content = v4.createElement("TextButton", {
                AutoButtonColor = false,
                Text = "",
                Selectable = false,
                Size = UDim2.fromOffset(v33, v36),
                BackgroundColor3 = l_Theme_0.BackgroundMuted.Color,
                BackgroundTransparency = v42,
                BorderSizePixel = 0,
                LayoutOrder = v37.contentLayoutOrder
            }, {
                VerticalLayout = v4.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Vertical,
                    Padding = UDim.new(0, 4),
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                Padding = v4.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, 12),
                    PaddingBottom = UDim.new(0, 12),
                    PaddingLeft = UDim.new(0, 12),
                    PaddingRight = UDim.new(0, 12)
                }),
                Header = v24.props.headerText and v4.createElement(v10, {
                    colorStyle = l_Theme_0.TextEmphasis,
                    fontStyle = l_CaptionHeader_0,
                    LayoutOrder = 1,
                    Text = v24.props.headerText,
                    TextTransparency = v44,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    Size = UDim2.new(1, 0, 0, v35)
                }),
                Body = v4.createElement(v10, {
                    colorStyle = l_Theme_0.TextDefault,
                    fontStyle = l_CaptionBody_0,
                    LayoutOrder = 2,
                    Text = v24.props.bodyText,
                    TextTransparency = v44,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    Size = UDim2.new(1, 0, 0, v34)
                })
            })
        });
    end);
end;
v19.didMount = function(v45)
    v45.progressMotor:start();
end;
v19.didUpdate = function(v46, v47, _)
    if v47.triggerPosition ~= v46.props.triggerPosition then
        if not (v46.props.triggerPosition.Y >= 0) or v46.props.screenSize.Y < v46.props.triggerPosition.Y + v46.props.triggerSize.Y then
            v46.visible = false;
            return ;
        else
            v46.visible = true;
        end;
    end;
end;
v19.willUnmount = function(v49)
    v49.progressMotor:destroy();
    v49.progressMotor = nil;
end;
return v19;


local v0 = require(script.Parent.Enum.TooltipOrientation);
return function(v1, v2, v3, v4, v5, v6, v7)
    local v8 = {};
    local v9 = v4 + v5 * 0.5;
    local v10 = v4 + v5;
    local v11 = nil;
    local v12 = nil;
    local v13 = nil;
    local v14 = nil;
    local v15 = 0;
    local v16 = 0;
    if not (v3 ~= v0.Bottom) or v3 == v0.Top then
        if not v7 and v6.Y - v10.Y < (v2 + 8) + 12 then
            v3 = v0.Top;
        end;
        v11 = math.clamp(v9.X - v1 * 0.5, 12, (v6.X - 12) - v1);
        v13 = v11 - v4.X;
        local _ = nil;
        local v18 = (v1 - 12) - 16;
        if v1 < 40 then
            v8.caretPosition = UDim2.fromScale(0.5, 0);
        elseif not v7 then
            if v9.X - v1 * 0.5 >= 12 and v9.X + v1 * 0.5 <= v6.X - 12 then
                v8.caretPosition = UDim2.fromScale(0.5, 0);
            else
                v8.caretPosition = UDim2.fromOffset(math.clamp(v9.X - v11, 12, v18), 0);
            end;
        else
            v8.caretPosition = UDim2.fromOffset(math.clamp(v5.X * 0.5 + math.abs(v5.X * v7.X.Scale + v7.X.Offset), 12, v18), 0);
        end;
        v8.caretFrameSize = UDim2.fromOffset(v1, 8);
        v8.caretImageSize = UDim2.fromOffset(16, 8);
        v8.caretAnchorPoint = Vector2.new(0.5, 0);
        v8.fillDirection = Enum.FillDirection.Vertical;
        if v3 == v0.Bottom then
            v12 = v4.Y + v5.Y;
            v14 = v5.Y;
            v8.caretLayoutOrder = 1;
            v8.contentLayoutOrder = 2;
            v16 = 4;
        else
            v12 = (v4.Y - v2) - 8;
            v14 = -(v2 + 8);
            v8.caretLayoutOrder = 2;
            v8.contentLayoutOrder = 1;
            v16 = -4;
        end;
    else
        v12 = math.clamp(v9.Y - v2 * 0.5, 12, (v6.Y - 12) - v2);
        v14 = v12 - v4.Y;
        local _ = nil;
        local v20 = (v2 - 12) - 16;
        if not v7 then
            if not (not (v9.Y - v2 * 0.5 >= 12) or v9.Y + v2 * 0.5 > v6.Y - 12) or v2 <= 40 then
                v8.caretPosition = UDim2.fromScale(0, 0.5);
            else
                v8.caretPosition = UDim2.fromOffset(0, (math.clamp(v9.Y - v12, 12, (v2 - 12) - 16)));
            end;
        else
            v8.caretPosition = UDim2.fromOffset(0, (math.clamp(v5.Y * 0.5 + math.abs(v5.Y * v7.Y.Scale + v7.Y.Offset), 12, v20)));
        end;
        v8.caretFrameSize = UDim2.fromOffset(8, v2);
        v8.caretImageSize = UDim2.fromOffset(8, 16);
        v8.caretAnchorPoint = Vector2.new(0, 0.5);
        v8.fillDirection = Enum.FillDirection.Horizontal;
        if v3 == v0.Right then
            v11 = v10.X;
            v13 = v5.X;
            v8.caretLayoutOrder = 1;
            v8.contentLayoutOrder = 2;
            v15 = 4;
        else
            v11 = (v4.X - v1) - 8;
            v13 = -(v1 - 8);
            v8.caretLayoutOrder = 2;
            v8.contentLayoutOrder = 1;
            v15 = -4;
        end;
    end;
    v8.absolutePosition = UDim2.fromOffset(v11, v12);
    v8.position = UDim2.fromOffset(v13, v14);
    v8.animatedDistance = UDim2.fromOffset(v15, v16);
    v8.updatedOrientation = v3;
    return v8;
end;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local _ = require(l_Parent_0.Types);
local v4 = require(l_Parent_1.Tooltip.Enum.TooltipOrientation);
local v5 = require(l_Parent_2.ImageSet.Images);
local v6 = UDim2.fromOffset(16, 8);
local v7 = v6.Y.Offset - 1;
return table.freeze({
    DEFAULT_PADDING = 12,
    DEFAULT_LIST_PADDING = 8,
    CORNER_RADIUS = UDim.new(0, 8),
    CARET_DISTANCE = 4,
    CONTENT_TO_CARET_TIP = v7,
    CONTENT_TO_CARET_CENTER = v7 - v6.Y.Offset / 2,
    MAX_WIDTH = 240,
    HOTKEY_PADDING = 6,
    CARET_IMAGE = v5["component_assets/triangleDown_16"],
    CARET_ROTATION = {
        [v4.Top] = 0,
        [v4.Bottom] = 180,
        [v4.Right] = 90,
        [v4.Left] = 270
    },
    CARET_SIZE = v6,
    CLOSE_BUTTON_SIZE = 24,
    CLOSE_BUTTON_PADDING = 4,
    DropShadow = {
        Small = {
            IMAGE = v5["component_assets/dropshadow_17_4"],
            SLICE_CENTER = Rect.new(12, 12, 13, 13),
            OFFSET = {
                [v4.Top] = 2,
                [v4.Bottom] = 6,
                [v4.Right] = 4,
                [v4.Left] = 4
            }
        },
        Large = {
            IMAGE = v5["component_assets/dropshadow_17_16"],
            SLICE_CENTER = Rect.new(36, 36, 37, 37),
            OFFSET = {
                [v4.Top] = 28,
                [v4.Bottom] = 28,
                [v4.Right] = 28,
                [v4.Left] = 28
            }
        }
    },
    ORIENTATION_VECTOR = {
        [v4.Top] = Vector2.new(0, -1),
        [v4.Bottom] = Vector2.new(0, 1),
        [v4.Left] = Vector2.new(-1, 0),
        [v4.Right] = Vector2.new(1, 0)
    },
    OPPOSITE_ORIENTATION = {
        [v4.Top] = v4.Bottom,
        [v4.Bottom] = v4.Top,
        [v4.Right] = v4.Left,
        [v4.Left] = v4.Right
    },
    DISTANCE_TO_CONTENT = 4 + v7,
    SCREEN_MARGIN = 12,
    MIN_DISTANCE_TO_CARET_MIDDLE = 12 + v6.X.Offset / 2,
    INACTIVE_ANIMATION_TARGETS = {
        distanceOffset = -4,
        transparency = 1
    },
    ACTIVE_ANIMATION_TARGETS = {
        distanceOffset = 0,
        transparency = 0
    },
    ANIMATION_OPTIONS = {
        frequency = 5
    },
    DEFAULT_DELAY_TIME = 0.4
});


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent.Parent.Parent;
local v2 = require(l_Parent_1.React);
local v3 = require(l_Parent_1.LuauPolyfill);
local _ = require(l_Parent_0.Types);
local v5 = require(l_Parent_0.TooltipController);
local v6 = require(l_Parent_0.HoverController);
local function _(v7)
    return function(v8, v9, v10)
        return v2.createElement(v7, (v3.Object.assign({}, v9, {
            tooltipProps = v8,
            renderTriggerPoint = v10
        })));
    end;
end;
return {
    withTooltip = function(v12, v13, v14)
        return v2.createElement(v5, (v3.Object.assign({}, v13, {
            tooltipProps = v12,
            renderTriggerPoint = v14
        })));
    end,
    withHoverTooltip = function(v15, v16, v17)
        return v2.createElement(v6, (v3.Object.assign({}, v16, {
            tooltipProps = v15,
            renderTriggerPoint = v17
        })));
    end
};


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.React);
local v4 = require(l_Parent_2.LuauPolyfill);
local _ = require(l_Parent_0.Types);
local v6 = require(l_Parent_0.Constants);
local v7 = require(l_Parent_0.TooltipController);
local v8 = require(l_Parent_1.Core.Control.Enum.ControlState);
local v9 = require(l_Parent_1.UIBloxConfig);
return function(v10)
    local v11, v12 = v3.useState(false);
    local v13 = v3.useRef(tick());
    v3.useEffect(function()
        return function()
            v13.current = tick();
        end;
    end, if not v9.enableTooltipV2HoverControllerReRenderFix then nil else {});
    local v14 = v10.delayTime or v6.DEFAULT_DELAY_TIME;
    local v18 = v3.useCallback(function(v15, v16)
        if not v10.disabled then
            if not (v16 ~= v8.Hover) or v9.supportControlStateSelectedForTooltipHover and v16 == v8.Selected then
                local l_current_0 = v13.current;
                delay(v14, function()
                    if v13.current == l_current_0 then
                        v12(true);
                    end;
                end);
                return ;
            else
                if not (v15 ~= v8.Hover) or v9.supportControlStateSelectedForTooltipHover and v15 == v8.Selected then
                    v13.current = tick();
                    v12(false);
                end;
                return ;
            end;
        else
            v12(false);
            return ;
        end;
    end, {
        v14
    });
    return v3.createElement(v7, (v4.Object.assign({}, v10, {
        delayTime = v4.Object.None,
        active = v11,
        renderTriggerPoint = function(v19)
            return v10.renderTriggerPoint(v19, v18);
        end
    })));
end;