local l_ToolboxSetMarketplaceModelsAsPackagesForIXP3_0 = game:GetFastFlag("ToolboxSetMarketplaceModelsAsPackagesForIXP3");
local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v3 = require(l_Packages_0.Roact);
local v4 = require(l_Packages_0.RoactRodux);
local v5 = require(l_Parent_0.Core.Util.Analytics.Analytics);
local v6 = require(l_Parent_0.Core.Util.Constants);
local v7 = require(l_Parent_0.Core.Util.DebugFlags);
local v8 = require(l_Parent_0.Core.Util.Images);
local v9 = require(l_Parent_0.Core.Util.PageInfoHelper);
local v10 = require(l_Parent_0.Core.Localization.getLocalizedCategories);
local v11 = nil;
if l_ToolboxSetMarketplaceModelsAsPackagesForIXP3_0 then
    v11 = require(l_Parent_0.Core.Util.getIsIXPVariableEnabled);
end;
local v12 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxContentManagementCombineTabs);
local v13 = require(l_Parent_0.Core.Types.Category);
local v14 = require(l_Parent_0.Core.Types.LayoutMode);
local _ = require(l_Parent_0.Core.Types.AnalyticsTypes);
local v16 = require(l_Packages_0.Framework);
local l_deepCopy_0 = v16.Util.deepCopy;
local l_IconButton_0 = v16.UI.IconButton;
local _ = v16.UI.Tooltip;
local v20 = require(l_Parent_0.Core.ContextServices.IXPContext);
local l_ContextServices_0 = require(l_Packages_0.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v23 = require(l_Parent_0.Core.ContextServices.Settings);
local v24 = require(l_Parent_0.Core.ContextServices.NetworkContext);
local v25 = require(l_Parent_0.Core.Components.DropdownMenu);
local v26 = require(l_Parent_0.Core.Components.SearchBarWithAutocomplete);
local v27 = require(l_Parent_0.Core.Actions.SetLayoutMode);
local v28 = require(l_Parent_0.Core.Actions.UpdateSearchTerm);
local v29 = require(l_Parent_0.Core.Networking.Requests.RequestSearchRequest);
local v30 = require(l_Parent_0.Core.Networking.Requests.SelectCategoryRequest);
local v31 = require(l_Parent_0.Core.Networking.Requests.SelectGroupRequest);
local v32 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxAddRecentSearchesToAutoComplete);
local v33 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxEnableAssetRows);
local v34 = require(l_Parent_0.Core.Util.SharedFlags.getIsIXPEnabledForListView);
local v35 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxListviewAnalytics);
local v36 = require(l_Parent_0.Core.Util.ToolboxCommunication);
local v37 = v3.PureComponent:extend("Header");
local l_settings_0 = settings;
local v39 = nil;
if l_ToolboxSetMarketplaceModelsAsPackagesForIXP3_0 then
    v39 = {
        [v13.MY_PACKAGES.name] = true,
        [v13.GROUP_PACKAGES.name] = true,
        [v13.CREATIONS_GROUP_PACKAGES.name] = true
    };
end;
v37.init = function(v40)
    v40.state = {
        searchTerm = ""
    };
    v40.keyCount = 0;
    v40.deleteCount = 0;
    v40.unlocalizedCategories = nil;
    local v41 = nil;
    v40.onCategorySelected = function(v42, _)
        local l_networkInterface_0 = v40.props.Network.networkInterface;
        local v45 = if not l_ToolboxSetMarketplaceModelsAsPackagesForIXP3_0 then nil else v11(v40.props.IXP, "MarketplaceModelsAsPackages", "MarketplaceModelsAsPackagesEnabled");
        local v46 = nil;
        v46 = if not v45 then v40.props.categories[v42].name else v40.unlocalizedCategories[v42].name;
        if v40.props.categoryName ~= v46 then
            v5.onCategorySelected(v40.props.categoryName, v46);
            v41 = v40.props.Settings:get("Plugin");
            v40.props.selectCategory(l_networkInterface_0, v41, v46);
            if v40.props.searchTerm and v40.props.searchTerm ~= "" then
                v40.onSearchRequested(v40.props.searchTerm, v46);
            end;
        end;
    end;
    v40.onGroupSelected = function(v47)
        if v40.props.groupIndex ~= v47 then
            v40.props.selectGroup(v40.props.Network.networkInterface, v47);
        end;
    end;
    v40.onSearchRequested = function(v48, v49)
        local l_networkInterface_1 = v40.props.Network.networkInterface;
        local v51 = v40.props.Settings:get("Plugin");
        if not (not (type(v48) ~= "string") or not v7.shouldDebugWarnings()) then
            warn(("Toolbox onSearchRequested searchTerm = %s is not a string"):format((tostring(v48))));
        end;
        local l_creatorFilter_0 = v40.props.creatorFilter;
        if not (l_creatorFilter_0 and l_creatorFilter_0.Id) then
            local _ = nil;
        end;
        local _ = v9.getCategory(v49 or v40.props.categoryName);
        v40.keyCount = 0;
        v40.deleteCount = 0;
        v40.mostRecentSearchRequestTime = tick();
        local l_mostRecentSearchRequestTime_0 = v40.mostRecentSearchRequestTime;
        delay(l_settings_0():GetFVariable("StudioSearchWithoutInsertionTimeSeconds"), function()
            if l_mostRecentSearchRequestTime_0 == v40.mostRecentSearchRequestTime then
                v40:checkRecentAssetInsertion();
            end;
        end);
        if not (v13.categoryIsFont(v40.props.categoryName) and v13.categoryIsFont(v49 or v40.props.categoryName)) then
            v40.props.requestSearch(l_networkInterface_1, v51, v48, v49);
            v36:fire("SearchRequested", {
                searchTerm = v48
            });
            return ;
        else
            v40.props.updateSearchTerm(v48);
            return ;
        end;
    end;
    v40.onSearchOptionsToggled = function()
        if v40.props.onSearchOptionsToggled then
            v40.props.onSearchOptionsToggled();
        end;
    end;
    v40.onSearchTextChanged = function(v56)
        if string.len(v40.state.searchTerm) < string.len(v56) then
            local l_v40_0 = v40;
            l_v40_0.keyCount = l_v40_0.keyCount + 1;
        elseif string.len(v56) < string.len(v40.state.searchTerm) then
            local l_v40_1 = v40;
            l_v40_1.deleteCount = l_v40_1.deleteCount + 1;
        end;
        v40:setState({
            searchTerm = v56
        });
    end;
    v40.toggleLayoutMode = if not v33() then nil else function()
        local l_props_0 = v40.props;
        local v60 = l_props_0.Settings:get("Plugin");
        local v61 = if l_props_0.layoutMode == v14.Grid then v14.ListView else v14.Grid;
        l_props_0.setLayoutMode(v61);
        v60:setLayoutMode(v61);
        if v35() then
            local v62 = v13.getCategoryByName(l_props_0.categoryName);
            v5.MarketplaceListViewToggleClicked(v61, {
                assetType = if not v62 then nil else v62.assetType,
                searchId = l_props_0.searchId
            });
        end;
    end;
end;
v37.willUpdate = function(v63, v64, _)
    if l_ToolboxSetMarketplaceModelsAsPackagesForIXP3_0 then
        v63.unlocalizedCategories = v64.categories;
    end;
end;
v37.render = function(v66)
    local l_props_1 = v66.props;
    local l_Stylizer_0 = l_props_1.Stylizer;
    local l_Localization_0 = l_props_1.Localization;
    local v70 = if not l_ToolboxSetMarketplaceModelsAsPackagesForIXP3_0 then nil else v11(l_props_1.IXP, "MarketplaceModelsAsPackages", "MarketplaceModelsAsPackagesEnabled");
    local l_categoryName_0 = l_props_1.categoryName;
    local v72 = nil;
    local v73 = nil;
    if not v70 then
        v72 = v10(l_Localization_0, l_props_1.categories);
        v73 = v13.getCategoryIndex(l_categoryName_0, l_props_1.roles, if not v12() then nil else l_props_1.IXP);
    else
        local v74 = l_deepCopy_0(l_props_1.categories);
        for v75, v76 in pairs(v74) do
            if v39[v76.category] then
                table.remove(v74, v75);
            end;
        end;
        v72 = v10(l_Localization_0, v74);
        v73 = 1;
        for v77, v78 in ipairs(v74) do
            if v78.name == l_categoryName_0 then
                v73 = v77;
            end;
        end;
        v66.unlocalizedCategories = v74;
    end;
    local l_onCategorySelected_0 = v66.onCategorySelected;
    local l_searchTerm_0 = l_props_1.searchTerm;
    local l_onSearchRequested_0 = v66.onSearchRequested;
    local l_groups_0 = l_props_1.groups;
    local l_groupIndex_0 = l_props_1.groupIndex;
    local l_onGroupSelected_0 = v66.onGroupSelected;
    local v85;
    if not v34(l_props_1.IXP) then
        v85 = nil;
    else
        v85 = false;
        if v13.getTabForCategoryName(l_props_1.categoryName) == v13.INVENTORY then
            v85 = false;
            if l_props_1.categoryName ~= v13.MY_AUDIO.name then
                v85 = l_props_1.categoryName ~= v13.MY_FONTS.name;
            end;
        end;
    end;
    local l_searchIsFiltered_0 = l_props_1.searchIsFiltered;
    local v87 = nil;
    local v88 = nil;
    if not v34(l_props_1.IXP) then
        v87 = v6.HEADER_DROPDOWN_MAX_WIDTH;
        v88 = 0;
    else
        v87 = if not v85 then v6.HEADER_DROPDOWN_MAX_WIDTH else v6.HEADER_DROPDOWN_MIN_WIDTH + (not v85 and 0 or 5);
        v88 = not v85 and 0 or v6.HEADER_OPTIONSBUTTON_WIDTH + v6.HEADER_INNER_PADDING;
    end;
    local _ = v66.onSearchOptionsToggled;
    local v90 = math.max(100, ((((l_props_1.maxWidth or 0) - 2 * v6.HEADER_OUTER_PADDING) - v87) - v88) - v6.HEADER_INNER_PADDING);
    local v91 = v13.categoryIsGroupAsset(l_categoryName_0);
    local l_header_0 = l_Stylizer_0.header;
    local v93 = v13.getTabForCategoryName(l_categoryName_0) == v13.CREATIONS;
    local _ = v13.getTabForCategoryName(l_categoryName_0) == v13.INVENTORY;
    local v95 = v93 and not v91;
    local v96 = not v91 and not v93;
    if v13.getTabForCategoryName(l_categoryName_0) == v13.RECENT then
        v96 = false;
        v95 = true;
    end;
    local v97 = {
        LayoutOrder = 1,
        OnSearchRequested = l_onSearchRequested_0,
        OnTextChanged = v66.onSearchTextChanged,
        SearchTerm = l_searchTerm_0,
        Width = v90,
        OnSearchOptionsToggled = v66.onSearchOptionsToggled,
        SearchIsFiltered = l_searchIsFiltered_0
    };
    local v98;
    if not v32() then
        v98 = nil;
    else
        v98 = true;
        if v66.state.searchTerm ~= "" then
            v98 = v66.state.searchTerm == nil;
        end;
    end;
    v97.ShowRecentSearchesInAutoComplete = v98;
    return v3.createElement("ImageButton", {
        Position = l_props_1.Position,
        Size = UDim2.new(1, 0, 0, v6.HEADER_HEIGHT),
        BackgroundColor3 = l_header_0.backgroundColor,
        BorderSizePixel = 0,
        ZIndex = 2,
        AutoButtonColor = false
    }, {
        UIPadding = v3.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, v6.HEADER_OUTER_PADDING),
            PaddingLeft = UDim.new(0, v6.HEADER_OUTER_PADDING),
            PaddingRight = UDim.new(0, v6.HEADER_OUTER_PADDING),
            PaddingTop = UDim.new(0, v6.HEADER_OUTER_PADDING)
        }),
        UIListLayout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, v6.HEADER_INNER_PADDING)
        }),
        CategoryMenu = v3.createElement(v25, {
            Disabled = l_props_1.hasTutorialLimits,
            Position = UDim2.new(0, 0, 0, 0),
            Size = not not v95 and UDim2.new(1, 0, 1, 0) or UDim2.new(0, v87, 1, 0),
            LayoutOrder = 0,
            visibleDropDownCount = 8,
            selectedDropDownIndex = v73,
            items = v72,
            menuKey = if v93 then nil else "category",
            onItemClicked = l_onCategorySelected_0
        }),
        SearchBar = v96 and v3.createElement(v26, v97),
        ToggleListViewButton = if not not v33() and v85 then v3.createElement(l_IconButton_0, {
            BackgroundStyle = "None",
            Cursor = "PointingHand",
            IconColor = l_header_0.iconColor,
            IconSize = v6.HEADER_OPTIONSBUTTON_WIDTH,
            LayoutOrder = 2,
            LeftIcon = if l_props_1.layoutMode == v14.ListView then v8.GALLERY_ICON else v8.LIST_ICON,
            OnClick = v66.toggleLayoutMode,
            Padding = 2,
            Size = UDim2.fromOffset(v88, v6.HEADER_OPTIONSBUTTON_HEIGHT),
            TooltipText = if l_props_1.layoutMode == v14.ListView then l_Localization_0:getText("General", "GridView") else l_Localization_0:getText("General", "ListView")
        }) else nil,
        GroupMenu = v91 and v3.createElement(v25, {
            Position = UDim2.new(0, 0, 0, 0),
            Size = UDim2.new(0, v90, 1, 0),
            LayoutOrder = 1,
            visibleDropDownCount = 8,
            selectedDropDownIndex = l_groupIndex_0,
            items = l_groups_0,
            menuKey = "id",
            onItemClicked = l_onGroupSelected_0
        })
    });
end;
v37.checkRecentAssetInsertion = function(v99)
    if v99.props.mostRecentAssetInsertTime < v99.mostRecentSearchRequestTime then
        v5.onTermSearchedWithoutInsertion(v9.getCategory(v99.props.categoryName), v99.props.searchTerm);
    end;
end;
local function _(v100)
    if v100 then
        return v100:FindFirstChild("tabRefresh");
    else
        return nil;
    end;
end;
local function _(v102)
    local v103 = if v102 then v102:FindFirstChild("tabRefresh") else nil;
    if not v103 then
        v103 = Instance.new("BindableEvent");
        v103.Name = "tabRefresh";
        v103.Parent = v102;
    end;
    return v103;
end;
local function _(v105)
    local v106 = if v105 then v105:FindFirstChild("tabRefresh") else nil;
    if v106 then
        v106:Destroy();
    end;
end;
v37.addTabRefreshCallback = function(v108)
    if not v108.tabRefreshConnection then
        local l_pluginGui_0 = v108.props.pluginGui;
        local v110 = if l_pluginGui_0 then l_pluginGui_0:FindFirstChild("tabRefresh") else nil;
        if not v110 then
            v110 = Instance.new("BindableEvent");
            v110.Name = "tabRefresh";
            v110.Parent = l_pluginGui_0;
        end;
        v108.tabRefreshConnection = v110.Event:connect(function()
            v108.props.selectCategory(v108.props.Network.networkInterface, v108.props.Settings:get("Plugin"), v108.props.categoryName);
        end);
    end;
end;
v37.removeTabRefreshCallback = function(v111)
    if v111.tabRefreshConnection then
        v111.tabRefreshConnection:disconnect();
        v111.tabRefreshConnection = nil;
    end;
end;
v37.didMount = function(v112)
    if l_ToolboxSetMarketplaceModelsAsPackagesForIXP3_0 then
        v112.unlocalizedCategories = v112.props.categories;
    end;
    local l_pluginGui_1 = v112.props.pluginGui;
    if not if l_pluginGui_1 then l_pluginGui_1:FindFirstChild("tabRefresh") else nil then
        local l_BindableEvent_0 = Instance.new("BindableEvent");
        l_BindableEvent_0.Name = "tabRefresh";
        l_BindableEvent_0.Parent = l_pluginGui_1;
    end;
    v112:addTabRefreshCallback();
end;
v37.willUnmount = function(v115)
    v115:removeTabRefreshCallback();
    local l_pluginGui_2 = v115.props.pluginGui;
    local v117 = if l_pluginGui_2 then l_pluginGui_2:FindFirstChild("tabRefresh") else nil;
    if v117 then
        v117:Destroy();
    end;
end;
v37 = l_withContext_0({
    IXP = if (l_ToolboxSetMarketplaceModelsAsPackagesForIXP3_0 or v33()) or v12() then v20 else nil,
    Settings = v23,
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization,
    Network = v24
})(v37);
isSearchFiltered = function(v118)
    return v118.includeUnverifiedCreators;
end;
return v4.connect(function(v119, _)
    v119 = v119 or {};
    local v121 = v119.assets or {};
    local v122 = v119.pageInfo or {};
    return {
        categories = v122.categories or {},
        categoryName = v122.categoryName or v13.DEFAULT.name,
        creatorFilter = v122.creator or {},
        groups = v122.groups or {},
        groupIndex = v122.groupIndex or 0,
        layoutMode = if not v33() then nil else v122.layoutMode,
        mostRecentAssetInsertTime = v121.mostRecentAssetInsertTime,
        roles = v119.roles,
        searchId = if not v35() then nil else v122.searchId,
        searchIsFiltered = isSearchFiltered(v122),
        searchTerm = v122.searchTerm or "",
        hasTutorialLimits = v119.tutorialLimits.assetIds ~= nil
    };
end, function(v123)
    return {
        selectCategory = function(v124, v125, v126)
            v123(v30(v124, v125, v126));
        end,
        selectGroup = function(v127, v128)
            v123(v31(v127, v128));
        end,
        requestSearch = function(v129, v130, v131, v132)
            v123(v29(v129, v130, v131, v132, false));
        end,
        setLayoutMode = if not v33() then nil else function(v133)
            v123(v27(v133));
        end,
        updateSearchTerm = function(v134)
            v123(v28(v134));
        end
    };
end)(v37);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.RoactRodux);
local v4 = require(l_Packages_0.Framework);
local v5 = require(l_Parent_0.Core.Networking.Requests.GetHomeConfigurationRequest);
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v8 = require(l_Parent_0.Core.ContextServices.NetworkContext);
local v9 = require(l_Parent_0.Core.Types.Category);
local _ = require(l_Parent_0.Core.Types.HomeTypes);
local v11 = require(l_Parent_0.Core.Types.Sort);
local v12 = require(l_Parent_0.Core.Components.Home.NavigationContainer);
local l_deepEqual_0 = require(l_Packages_0.Framework).Util.deepEqual;
local v14 = v2.Component:extend("HomeWrapper");
v14.defaultProps = {
    CategoryName = v9.FREE_MODELS.name,
    SortName = v11.getDefaultSortNameForCategory(v9.FREE_MODELS.name)
};
v14.shouldUpdate = function(v15, v16, _)
    local l_props_0 = v15.props;
    local l_AssetType_0 = l_props_0.AssetType;
    local l_homeConfiguration_0 = l_props_0.homeConfiguration;
    local v21 = true;
    if l_AssetType_0 == v16.AssetType then
        v21 = not l_deepEqual_0(l_homeConfiguration_0, v16.homeConfiguration);
    end;
    return v21;
end;
v14.render = function(v22)
    local l_props_1 = v22.props;
    local l_AssetType_1 = l_props_1.AssetType;
    local l_CategoryName_0 = l_props_1.CategoryName;
    local v26 = l_props_1.homeConfiguration[l_AssetType_1.Name];
    local l_SortName_0 = l_props_1.SortName;
    local l_Stylizer_0 = l_props_1.Stylizer;
    local l_TryOpenAssetConfig_0 = l_props_1.TryOpenAssetConfig;
    if v26 == nil then
        return nil;
    else
        local v30 = {};
        local v31 = {};
        if v26 then
            for _, v33 in pairs(v26.sections) do
                if v33.name == "categories" and v33.subcategory ~= nil then
                    v31 = v33.subcategory.children;
                else
                    table.insert(v30, v33);
                end;
            end;
        end;
        return v2.createElement("Frame", {
            BackgroundColor3 = l_Stylizer_0.backgroundColor,
            BorderSizePixel = 0,
            Position = l_props_1.Position,
            Size = l_props_1.Size
        }, {
            Navigation = v2.createElement(v12, {
                AssetType = l_AssetType_1,
                CategoryName = l_CategoryName_0,
                Config = v26,
                MaxWidth = l_props_1.MaxWidth,
                SortName = l_SortName_0,
                AssetSections = v30,
                SubcategoryDict = v31,
                TopKeywords = v26.topKeywords,
                TryOpenAssetConfig = l_TryOpenAssetConfig_0
            })
        });
    end;
end;
v14.didMount = function(v34)
    for _, v36 in ipairs(v34.props.EnabledAssetTypes) do
        if v34.props.homeConfiguration[v36.Name] == nil then
            v34.props.getHomeConfigurationRequest(v34.props.Network.networkInterface, v36, v34.props.Locale);
        end;
    end;
end;
return v3.connect(function(v37, _)
    return {
        homeConfiguration = (v37 or {}).homeConfiguration or {}
    };
end, function(v39)
    return {
        getHomeConfigurationRequest = function(v40, v41, v42)
            v39(v5(v40, v41, v42));
        end
    };
end)((l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Network = v8
})(v14)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local v1 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxFixInventoryGridSearch);
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local v3 = require(l_Packages_0.Framework);
local v4 = require(l_Packages_0.Cryo);
local v5 = require(l_Packages_0.Roact);
local v6 = require(l_Packages_0.RoactRodux);
local v7 = require(l_script_FirstAncestor_0.Packages.RoactNavigation);
local v8 = require(l_script_FirstAncestor_0.Core.Util.Constants);
local l_ContextServices_0 = v3.ContextServices;
local _ = require(l_script_FirstAncestor_0.Core.Types.Category);
local _ = require(l_script_FirstAncestor_0.Core.Types.AssetLogicTypes);
local v12 = require(l_Packages_0.Dash);
local v13 = require(l_script_FirstAncestor_0.Core.Components.AssetLogicWrapper);
local v14 = require(l_script_FirstAncestor_0.Core.Components.Categorization.HomeView);
local v15 = require(l_script_FirstAncestor_0.Core.Components.Audio.AudioViewWrapper);
local v16 = require(l_script_FirstAncestor_0.Core.Components.Font.FontView);
local v17 = require(l_script_FirstAncestor_0.Core.Components.Categorization.ResultsView);
local v18 = require(l_script_FirstAncestor_0.Core.Components.Categorization.SubcategoriesView);
local v19 = require(l_script_FirstAncestor_0.Core.Components.Categorization.SubcategoriesSwimlaneView);
local v20 = require(l_script_FirstAncestor_0.Core.ContextServices.NavigationContext);
local v21 = require(l_script_FirstAncestor_0.Core.ContextServices.Settings);
local v22 = require(l_script_FirstAncestor_0.Core.ContextServices.NetworkContext);
local v23 = require(l_script_FirstAncestor_0.Core.Util.Analytics.AssetAnalyticsContextItem);
local v24 = require(l_script_FirstAncestor_0.Core.Thunks.GetPageInfoAnalyticsContextInfo);
local v25 = require(l_script_FirstAncestor_0.Core.Networking.Requests.UpdatePageInfoAndSendRequest);
local v26 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagAddMoreAudioSwimlaneAnalytics);
local v27 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagAddInsertionNavDataSeeAll);
local function _(v28)
    return function(v29)
        local v30 = v5.PureComponent:extend("NavWrapper");
        v30.init = function(v31, v32)
            v31.updatePageInfo = function(v33)
                v32.updatePageInfo(v32.Network.networkInterface, v32.Settings:get("Plugin"), v33);
            end;
            v31.logPageView = function(v34, v35)
                local l_NavigationContext_0 = v32.NavigationContext;
                local v37 = v32.AssetAnalytics:get();
                local l_getPageInfoAnalyticsContextInfo_0 = v32.getPageInfoAnalyticsContextInfo;
                if l_getPageInfoAnalyticsContextInfo_0 then
                    local v39 = l_getPageInfoAnalyticsContextInfo_0();
                    v37:logPageView(v39.searchId, v34, v35, l_NavigationContext_0:getBreadcrumbRoute(), v39.toolboxTab, v39.currentCategory);
                end;
            end;
            v31.navigateTo = function(v40, v41, v42, v43)
                if v43.QueryParams then
                    v31.updatePageInfo({
                        queryParams = v43.QueryParams
                    });
                end;
                local l_NavigationContext_1 = v32.NavigationContext;
                v31.logPageView(v41, v42);
                l_NavigationContext_1:push(v40, v42, v43);
            end;
            v31.navigateGoBack = function()
                local l_NavigationContext_2 = v32.NavigationContext;
                local v46 = v32.AssetAnalytics:get();
                local l_getPageInfoAnalyticsContextInfo_1 = v32.getPageInfoAnalyticsContextInfo;
                v31.updatePageInfo({
                    queryParams = v4.None
                });
                if l_getPageInfoAnalyticsContextInfo_1 then
                    local v48 = l_getPageInfoAnalyticsContextInfo_1();
                    local l_searchId_0 = v48.searchId;
                    local v50 = l_NavigationContext_2:getBreadcrumbRoute();
                    v46:logGoBack(l_searchId_0, v50[2], l_NavigationContext_2:getCurrentPath(), v50, v48.toolboxTab, v48.currentCategory);
                end;
                l_NavigationContext_2:popToTop();
            end;
        end;
        v30.render = function(v51)
            return v28((v12.join(v51.props.navigation.state.params, {
                focused = v51.props.navigation.isFocused(),
                navigateTo = v51.navigateTo,
                navigateGoBack = v51.navigateGoBack,
                logPageView = v51.logPageView
            }, if not v29 then {} else v29, v12.join(v51.props.navigation.state, {
                key = v12.None,
                routeName = v12.None
            }))));
        end;
        v30.didMount = function(v52)
            v52.props.NavigationContext:updateNavigation(v52.props.navigation);
        end;
        return v5.createElement(v6.connect(nil, function(v53)
            return {
                updatePageInfo = function(v54, v55, v56)
                    v53(v25(v54, v55, v56));
                end,
                getPageInfoAnalyticsContextInfo = function()
                    return v53(v24());
                end
            };
        end)((v7.withNavigation((l_ContextServices_0.withContext({
            AssetAnalytics = v23,
            NavigationContext = v20,
            Network = v22,
            Settings = v21
        })(v30))))), v29);
    end;
end;
local function v60(v58)
    local v59 = v58.params or v58;
    return {
        CanInsertAsset = v59.CanInsertAsset,
        LogAssetImpression = v59.LogAssetImpression,
        OnAssetPreviewButtonClicked = v59.OnAssetPreviewButtonClicked,
        OnSearchByCreator = if not v1() then nil else v59.OnSearchByCreator,
        TryInsert = v59.TryInsert,
        TryOpenAssetConfig = v59.TryOpenAssetConfig
    };
end;
local v61 = {};
local v62 = {};
local l_HOME_0 = v8.NAVIGATION.HOME;
local function v79(v64)
    local _ = nil;
    return v5.createElement(if v64.AssetType == Enum.AssetType.Audio then v15 else if v64.AssetType == Enum.AssetType.FontFamily then v16 else v14, v12.join(v60(v64), {
        AssetSections = v64.AssetSections,
        CategoryName = v64.CategoryName,
        OnClickSubcategory = function(v66, v67, v68, v69, v70)
            if v67.childCount == 0 then
                v64.navigateTo(v8.NAVIGATION.RESULTS, v8.HOMEVIEW_SEARCH_CATEGORY, v66, v12.join(v64, v60(v64), {
                    CategoryName = v68,
                    SortName = v69,
                    SearchSource = v8.SEARCH_SOURCE.CATEGORY,
                    QueryParams = v70,
                    SwimlaneName = if not v26() then nil else v66
                }));
                return ;
            else
                v64.navigateTo(v8.NAVIGATION.SUBCATEGORY, v8.HOMEVIEW_SEARCH_CATEGORY, v66, v12.join(v64, v60(v64), {
                    CategoryName = v68,
                    SortName = v69,
                    SubcategoryPath = {
                        v66
                    },
                    SubcategoryDict = v67.children,
                    TopKeywords = v64.TopKeywords,
                    QueryParams = v70
                }));
                return ;
            end;
        end,
        OnClickSeeAllSubcategories = function(v71, v72, v73)
            v64.navigateTo(v8.NAVIGATION.ALL_SUBCATEGORIES, v8.HOMEVIEW_SEARCH_CATEGORY, v8.NAVIGATION.ALL_SUBCATEGORIES, v12.join(v64, v60(v64), {
                CategoryName = v72,
                SortName = v73,
                SubcategoryDict = v71
            }));
        end,
        OnClickSeeAllAssets = function(v74, v75, v76, v77, v78)
            v64.navigateTo(v8.NAVIGATION.RESULTS, v74, v74, v12.join(v64, v60(v64), {
                CategoryName = v75,
                SearchTerm = v77,
                SectionName = v74,
                SortName = v76,
                QueryParams = v78,
                SwimlaneName = if not v27() then nil else v74
            }));
        end,
        SubcategoryDict = v64.SubcategoryDict,
        SortName = v64.SortName,
        Size = UDim2.new(1, 0, 1, 0),
        TopKeywords = v64.TopKeywords,
        MaxWidth = v64.MaxWidth,
        LogPageView = v64.logPageView
    }));
end;
local l_v79_0 = v79 --[[ copy: 34 -> 38 ]];
v62[l_HOME_0] = function(v81)
    local v82 = v5.PureComponent:extend("NavWrapper");
    v82.init = function(v83, v84)
        v83.updatePageInfo = function(v85)
            v84.updatePageInfo(v84.Network.networkInterface, v84.Settings:get("Plugin"), v85);
        end;
        v83.logPageView = function(v86, v87)
            local l_NavigationContext_3 = v84.NavigationContext;
            local v89 = v84.AssetAnalytics:get();
            local l_getPageInfoAnalyticsContextInfo_2 = v84.getPageInfoAnalyticsContextInfo;
            if l_getPageInfoAnalyticsContextInfo_2 then
                local v91 = l_getPageInfoAnalyticsContextInfo_2();
                v89:logPageView(v91.searchId, v86, v87, l_NavigationContext_3:getBreadcrumbRoute(), v91.toolboxTab, v91.currentCategory);
            end;
        end;
        v83.navigateTo = function(v92, v93, v94, v95)
            if v95.QueryParams then
                v83.updatePageInfo({
                    queryParams = v95.QueryParams
                });
            end;
            local l_NavigationContext_4 = v84.NavigationContext;
            v83.logPageView(v93, v94);
            l_NavigationContext_4:push(v92, v94, v95);
        end;
        v83.navigateGoBack = function()
            local l_NavigationContext_5 = v84.NavigationContext;
            local v98 = v84.AssetAnalytics:get();
            local l_getPageInfoAnalyticsContextInfo_3 = v84.getPageInfoAnalyticsContextInfo;
            v83.updatePageInfo({
                queryParams = v4.None
            });
            if l_getPageInfoAnalyticsContextInfo_3 then
                local v100 = l_getPageInfoAnalyticsContextInfo_3();
                local l_searchId_1 = v100.searchId;
                local v102 = l_NavigationContext_5:getBreadcrumbRoute();
                v98:logGoBack(l_searchId_1, v102[2], l_NavigationContext_5:getCurrentPath(), v102, v100.toolboxTab, v100.currentCategory);
            end;
            l_NavigationContext_5:popToTop();
        end;
    end;
    v82.render = function(v103)
        return l_v79_0((v12.join(v103.props.navigation.state.params, {
            focused = v103.props.navigation.isFocused(),
            navigateTo = v103.navigateTo,
            navigateGoBack = v103.navigateGoBack,
            logPageView = v103.logPageView
        }, if not v81 then {} else v81, v12.join(v103.props.navigation.state, {
            key = v12.None,
            routeName = v12.None
        }))));
    end;
    v82.didMount = function(v104)
        v104.props.NavigationContext:updateNavigation(v104.props.navigation);
    end;
    return v5.createElement(v6.connect(nil, function(v105)
        return {
            updatePageInfo = function(v106, v107, v108)
                v105(v25(v106, v107, v108));
            end,
            getPageInfoAnalyticsContextInfo = function()
                return v105(v24());
            end
        };
    end)((v7.withNavigation((l_ContextServices_0.withContext({
        AssetAnalytics = v23,
        NavigationContext = v20,
        Network = v22,
        Settings = v21
    })(v82))))), v81);
end;
l_HOME_0 = {};
local l_ALL_SUBCATEGORIES_0 = v8.NAVIGATION.ALL_SUBCATEGORIES;
local function v123(v110)
    local l_params_0 = v110.params;
    return v5.createElement(v18, v12.join(v60(v110), {
        CategoryName = l_params_0 and l_params_0.CategoryName,
        OnClickBack = function()
            v110:navigateGoBack();
        end,
        OnClickSubcategory = function(v112, v113, v114, v115, v116)
            v110.navigateTo(v8.NAVIGATION.SUBCATEGORY, v8.HOMEVIEW_SEARCH_CATEGORY, v112[#v112], v12.join(v110, v60(v110), {
                CategoryName = v114,
                SortName = v115,
                SubcategoryPath = v112,
                SubcategoryDict = v113,
                QueryParams = v116
            }));
        end,
        OnClickSeeAllAssets = function(v117, v118, v119, _, v121, v122)
            v110.navigateTo(v8.NAVIGATION.RESULTS, v8.HOMEVIEW_SEARCH_CATEGORY, v117, v12.join(v110, v60(v110), {
                CategoryName = v118,
                SectionName = v117,
                SortName = v119,
                SearchSource = v8.SEARCH_SOURCE.CATEGORY,
                QueryParams = v121,
                SwimlaneName = v122
            }));
        end,
        SortName = l_params_0 and l_params_0.SortName,
        Size = UDim2.new(1, 0, 1, 0),
        SubcategoryDict = l_params_0 and l_params_0.SubcategoryDict
    }));
end;
local l_v123_0 = v123 --[[ copy: 35 -> 39 ]];
l_HOME_0[l_ALL_SUBCATEGORIES_0] = function(v125)
    local v126 = v5.PureComponent:extend("NavWrapper");
    v126.init = function(v127, v128)
        v127.updatePageInfo = function(v129)
            v128.updatePageInfo(v128.Network.networkInterface, v128.Settings:get("Plugin"), v129);
        end;
        v127.logPageView = function(v130, v131)
            local l_NavigationContext_6 = v128.NavigationContext;
            local v133 = v128.AssetAnalytics:get();
            local l_getPageInfoAnalyticsContextInfo_4 = v128.getPageInfoAnalyticsContextInfo;
            if l_getPageInfoAnalyticsContextInfo_4 then
                local v135 = l_getPageInfoAnalyticsContextInfo_4();
                v133:logPageView(v135.searchId, v130, v131, l_NavigationContext_6:getBreadcrumbRoute(), v135.toolboxTab, v135.currentCategory);
            end;
        end;
        v127.navigateTo = function(v136, v137, v138, v139)
            if v139.QueryParams then
                v127.updatePageInfo({
                    queryParams = v139.QueryParams
                });
            end;
            local l_NavigationContext_7 = v128.NavigationContext;
            v127.logPageView(v137, v138);
            l_NavigationContext_7:push(v136, v138, v139);
        end;
        v127.navigateGoBack = function()
            local l_NavigationContext_8 = v128.NavigationContext;
            local v142 = v128.AssetAnalytics:get();
            local l_getPageInfoAnalyticsContextInfo_5 = v128.getPageInfoAnalyticsContextInfo;
            v127.updatePageInfo({
                queryParams = v4.None
            });
            if l_getPageInfoAnalyticsContextInfo_5 then
                local v144 = l_getPageInfoAnalyticsContextInfo_5();
                local l_searchId_2 = v144.searchId;
                local v146 = l_NavigationContext_8:getBreadcrumbRoute();
                v142:logGoBack(l_searchId_2, v146[2], l_NavigationContext_8:getCurrentPath(), v146, v144.toolboxTab, v144.currentCategory);
            end;
            l_NavigationContext_8:popToTop();
        end;
    end;
    v126.render = function(v147)
        return l_v123_0((v12.join(v147.props.navigation.state.params, {
            focused = v147.props.navigation.isFocused(),
            navigateTo = v147.navigateTo,
            navigateGoBack = v147.navigateGoBack,
            logPageView = v147.logPageView
        }, if not v125 then {} else v125, v12.join(v147.props.navigation.state, {
            key = v12.None,
            routeName = v12.None
        }))));
    end;
    v126.didMount = function(v148)
        v148.props.NavigationContext:updateNavigation(v148.props.navigation);
    end;
    return v5.createElement(v6.connect(nil, function(v149)
        return {
            updatePageInfo = function(v150, v151, v152)
                v149(v25(v150, v151, v152));
            end,
            getPageInfoAnalyticsContextInfo = function()
                return v149(v24());
            end
        };
    end)((v7.withNavigation((l_ContextServices_0.withContext({
        AssetAnalytics = v23,
        NavigationContext = v20,
        Network = v22,
        Settings = v21
    })(v126))))), v125);
end;
l_ALL_SUBCATEGORIES_0 = {};
v79 = v8.NAVIGATION.SUBCATEGORY;
local function v160(v153)
    local l_params_1 = v153.params;
    return v5.createElement(v19, v12.join(v60(v153), {
        CategoryName = l_params_1 and l_params_1.CategoryName,
        MaxWidth = v153.MaxWidth,
        OnClickBack = function()
            v153:navigateGoBack();
        end,
        OnClickSeeAllAssets = function(v155, v156, v157, v158, v159)
            v153.navigateTo(v8.NAVIGATION.RESULTS, v8.HOMEVIEW_SEARCH_CATEGORY, v155, v12.join(v153, v60(v153), {
                CategoryName = v156,
                SearchTerm = v158,
                SortName = v157,
                SearchSource = v8.SEARCH_SOURCE.CATEGORY,
                QueryParams = v159
            }));
        end,
        Size = UDim2.new(1, 0, 1, 0),
        SortName = l_params_1 and l_params_1.SortName,
        SubcategoryDict = l_params_1 and l_params_1.SubcategoryDict,
        SubcategoryPath = l_params_1 and l_params_1.SubcategoryPath
    }));
end;
l_ALL_SUBCATEGORIES_0[v79] = function(v161)
    local v162 = v5.PureComponent:extend("NavWrapper");
    v162.init = function(v163, v164)
        v163.updatePageInfo = function(v165)
            v164.updatePageInfo(v164.Network.networkInterface, v164.Settings:get("Plugin"), v165);
        end;
        v163.logPageView = function(v166, v167)
            local l_NavigationContext_9 = v164.NavigationContext;
            local v169 = v164.AssetAnalytics:get();
            local l_getPageInfoAnalyticsContextInfo_6 = v164.getPageInfoAnalyticsContextInfo;
            if l_getPageInfoAnalyticsContextInfo_6 then
                local v171 = l_getPageInfoAnalyticsContextInfo_6();
                v169:logPageView(v171.searchId, v166, v167, l_NavigationContext_9:getBreadcrumbRoute(), v171.toolboxTab, v171.currentCategory);
            end;
        end;
        v163.navigateTo = function(v172, v173, v174, v175)
            if v175.QueryParams then
                v163.updatePageInfo({
                    queryParams = v175.QueryParams
                });
            end;
            local l_NavigationContext_10 = v164.NavigationContext;
            v163.logPageView(v173, v174);
            l_NavigationContext_10:push(v172, v174, v175);
        end;
        v163.navigateGoBack = function()
            local l_NavigationContext_11 = v164.NavigationContext;
            local v178 = v164.AssetAnalytics:get();
            local l_getPageInfoAnalyticsContextInfo_7 = v164.getPageInfoAnalyticsContextInfo;
            v163.updatePageInfo({
                queryParams = v4.None
            });
            if l_getPageInfoAnalyticsContextInfo_7 then
                local v180 = l_getPageInfoAnalyticsContextInfo_7();
                local l_searchId_3 = v180.searchId;
                local v182 = l_NavigationContext_11:getBreadcrumbRoute();
                v178:logGoBack(l_searchId_3, v182[2], l_NavigationContext_11:getCurrentPath(), v182, v180.toolboxTab, v180.currentCategory);
            end;
            l_NavigationContext_11:popToTop();
        end;
    end;
    v162.render = function(v183)
        return v160((v12.join(v183.props.navigation.state.params, {
            focused = v183.props.navigation.isFocused(),
            navigateTo = v183.navigateTo,
            navigateGoBack = v183.navigateGoBack,
            logPageView = v183.logPageView
        }, if not v161 then {} else v161, v12.join(v183.props.navigation.state, {
            key = v12.None,
            routeName = v12.None
        }))));
    end;
    v162.didMount = function(v184)
        v184.props.NavigationContext:updateNavigation(v184.props.navigation);
    end;
    return v5.createElement(v6.connect(nil, function(v185)
        return {
            updatePageInfo = function(v186, v187, v188)
                v185(v25(v186, v187, v188));
            end,
            getPageInfoAnalyticsContextInfo = function()
                return v185(v24());
            end
        };
    end)((v7.withNavigation((l_ContextServices_0.withContext({
        AssetAnalytics = v23,
        NavigationContext = v20,
        Network = v22,
        Settings = v21
    })(v162))))), v161);
end;
v79 = {};
v123 = v8.NAVIGATION.RESULTS;
local function v191(v189)
    local l_params_2 = v189.params;
    return v5.createElement(v17, v12.join(v60(v189), {
        CategoryName = l_params_2 and l_params_2.CategoryName,
        OnClickBack = function()
            v189:navigateGoBack();
        end,
        SearchTerm = l_params_2 and l_params_2.SearchTerm,
        SectionName = l_params_2 and l_params_2.SectionName,
        Size = UDim2.new(1, 0, 1, 0),
        SortName = l_params_2 and l_params_2.SortName,
        SearchSource = l_params_2 and l_params_2.SearchSource,
        QueryParams = if not l_params_2 then nil else l_params_2.QueryParams,
        SwimlaneName = if not l_params_2 then nil else l_params_2.SwimlaneName
    }));
end;
v79[v123] = function(v192)
    local v193 = v5.PureComponent:extend("NavWrapper");
    v193.init = function(v194, v195)
        v194.updatePageInfo = function(v196)
            v195.updatePageInfo(v195.Network.networkInterface, v195.Settings:get("Plugin"), v196);
        end;
        v194.logPageView = function(v197, v198)
            local l_NavigationContext_12 = v195.NavigationContext;
            local v200 = v195.AssetAnalytics:get();
            local l_getPageInfoAnalyticsContextInfo_8 = v195.getPageInfoAnalyticsContextInfo;
            if l_getPageInfoAnalyticsContextInfo_8 then
                local v202 = l_getPageInfoAnalyticsContextInfo_8();
                v200:logPageView(v202.searchId, v197, v198, l_NavigationContext_12:getBreadcrumbRoute(), v202.toolboxTab, v202.currentCategory);
            end;
        end;
        v194.navigateTo = function(v203, v204, v205, v206)
            if v206.QueryParams then
                v194.updatePageInfo({
                    queryParams = v206.QueryParams
                });
            end;
            local l_NavigationContext_13 = v195.NavigationContext;
            v194.logPageView(v204, v205);
            l_NavigationContext_13:push(v203, v205, v206);
        end;
        v194.navigateGoBack = function()
            local l_NavigationContext_14 = v195.NavigationContext;
            local v209 = v195.AssetAnalytics:get();
            local l_getPageInfoAnalyticsContextInfo_9 = v195.getPageInfoAnalyticsContextInfo;
            v194.updatePageInfo({
                queryParams = v4.None
            });
            if l_getPageInfoAnalyticsContextInfo_9 then
                local v211 = l_getPageInfoAnalyticsContextInfo_9();
                local l_searchId_4 = v211.searchId;
                local v213 = l_NavigationContext_14:getBreadcrumbRoute();
                v209:logGoBack(l_searchId_4, v213[2], l_NavigationContext_14:getCurrentPath(), v213, v211.toolboxTab, v211.currentCategory);
            end;
            l_NavigationContext_14:popToTop();
        end;
    end;
    v193.render = function(v214)
        return v191((v12.join(v214.props.navigation.state.params, {
            focused = v214.props.navigation.isFocused(),
            navigateTo = v214.navigateTo,
            navigateGoBack = v214.navigateGoBack,
            logPageView = v214.logPageView
        }, if not v192 then {} else v192, v12.join(v214.props.navigation.state, {
            key = v12.None,
            routeName = v12.None
        }))));
    end;
    v193.didMount = function(v215)
        v215.props.NavigationContext:updateNavigation(v215.props.navigation);
    end;
    return v5.createElement(v6.connect(nil, function(v216)
        return {
            updatePageInfo = function(v217, v218, v219)
                v216(v25(v217, v218, v219));
            end,
            getPageInfoAnalyticsContextInfo = function()
                return v216(v24());
            end
        };
    end)((v7.withNavigation((l_ContextServices_0.withContext({
        AssetAnalytics = v23,
        NavigationContext = v20,
        Network = v22,
        Settings = v21
    })(v193))))), v192);
end;
setlist { ['R030[1 to 4]'] = 'R031 to R034' };
v62 = v5.PureComponent:extend("NavigationContainer");
v62.render = function(v220)
    local l_props_0 = v220.props;
    local l_HOME_1 = v8.NAVIGATION.HOME;
    return l_ContextServices_0.provide({
        v20.new(l_HOME_1)
    }, v5.createElement(v7.createAppContainer((v7.createRobloxStackNavigator(v61, {
        initialRouteName = l_HOME_1,
        initialRouteParams = l_props_0
    })))));
end;
return v13(v62);


local l_Packages_0 = script.Parent.Parent.Parent.Packages;
local v1 = require(l_Packages_0.Roact);
local v2 = require(l_Packages_0.Cryo);
local l_ContentProvider_0 = game:GetService("ContentProvider");
local v4 = {};
local l_Decal_0 = Instance.new("Decal");
local v6 = v1.PureComponent:extend("ImageWithDefault");
v6.init = function(v7)
    v7.imageRef = v1.createRef();
end;
v6._loadAndSetImage = function(v8)
    local l_Image_0 = v8.props.Image;
    local l_defaultImage_0 = v8.props.defaultImage;
    if ((not (l_Image_0 and l_Image_0 ~= "") or not v8.imageRef) or not v8.imageRef.current) or v8.imageRef.current.Image == l_Image_0 then
        return ;
    elseif not v4[l_Image_0] then
        v8.imageRef.current.Image = l_defaultImage_0;
        spawn(function()
            l_Decal_0.Texture = l_Image_0;
            l_ContentProvider_0:PreloadAsync({
                l_Decal_0
            });
            v4[l_Image_0] = true;
            if not (not v8.imageRef or not v8.imageRef.current) and v8.props.Image == l_Image_0 then
                v8.imageRef.current.Image = l_Image_0;
            end;
        end);
        return ;
    else
        v8.imageRef.current.Image = l_Image_0;
        return ;
    end;
end;
v6.didMount = function(v11)
    v11:_loadAndSetImage();
end;
v6.didUpdate = function(v12, v13)
    if not (v12.props.Image == v13.Image) or v12.props.defaultImage ~= v13.defaultImage then
        v12:_loadAndSetImage();
    end;
end;
v6.render = function(v14)
    local _ = nil;
    return v1.createElement("ImageLabel", (v2.Dictionary.join(v14.props, {
        [v1.Ref] = v14.imageRef,
        Image = v2.None,
        defaultImage = v2.None
    })));
end;
v6.mockImage = function(v16)
    v4[v16] = true;
end;
return v6;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.RoactRodux);
local v4 = require(l_Parent_0.Core.Components.StyledScrollingFrame);
local v5 = v2.PureComponent:extend("InfiniteScrollingFrame");
v5.init = function(v6, _)
    v6.state = {
        currentPage = 1
    };
    v6.scrollingFrameRef = v2.createRef();
    v6.checkCanvasAndRequest = function(v8)
        local l_current_0 = v8.scrollingFrameRef.current;
        if l_current_0 then
            if l_current_0.CanvasSize.Y.Offset - (l_current_0.CanvasPosition.Y + l_current_0.AbsoluteWindowSize.Y) <= 0 then
                v8.requestNextPage();
            end;
            return ;
        else
            return ;
        end;
    end;
    v6.onScroll = function()
        v6.checkCanvasAndRequest(v6);
    end;
    v6.requestNextPage = function()
        if v6.props.nextPageFunc then
            v6.props.nextPageFunc(v6.state.currentPage + 1);
        end;
    end;
end;
v5.getDerivedStateFromProps = function(v10, _)
    return {
        currentPage = v10.currentPage
    };
end;
v5.didMount = function(v12)
    v12:checkCanvasAndRequest();
end;
v5.didUpdate = function(v13, _, _)
    v13:checkCanvasAndRequest();
end;
v5.render = function(v16)
    local l_props_0 = v16.props;
    local _ = v16.state;
    local l_Position_0 = l_props_0.Position;
    local l_Size_0 = l_props_0.Size;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_current_1 = l_props_0.layouterRef.current;
    local v23 = 900;
    if l_current_1 then
        v23 = l_current_1.AbsoluteContentSize.Y;
    end;
    return v2.createElement(v4, {
        Position = l_Position_0,
        Size = l_Size_0,
        CanvasSize = UDim2.new(1, 0, 0, v23),
        ZIndex = 1,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        scrollingEnabled = true,
        [v2.Ref] = v16.scrollingFrameRef,
        onScroll = v16.onScroll,
        LayoutOrder = l_LayoutOrder_0
    }, l_props_0[v2.Children]);
end;
return v3.connect(function(v24, _)
    return {
        currentPage = (v24 or {}).currentPage or 1
    };
end, nil)(v5);


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Framework);
local v4 = require(l_Parent_0.Core.Util.Constants);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = v2.PureComponent:extend("InfoBanner");
v7.render = function(v8)
    local l_props_0 = v8.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_FONT_SIZE_LARGE_0 = v4.FONT_SIZE_LARGE;
    return v2.createElement("TextLabel", {
        Position = l_props_0.Position or UDim2.new(0, 0, 0, 0),
        Size = l_props_0.Size or UDim2.new(1, 0, 0, l_FONT_SIZE_LARGE_0 + 2 * v4.INFO_BANNER_PADDING),
        BackgroundTransparency = 1,
        ZIndex = l_props_0.ZIndex or 0,
        Visible = l_props_0.Visible ~= nil and l_props_0.Visible or l_props_0.Visible == nil,
        Text = l_props_0.Text or "",
        TextColor3 = l_Stylizer_0.infoBanner.textColor,
        Font = v4.FONT,
        TextSize = l_FONT_SIZE_LARGE_0,
        TextXAlignment = Enum.TextXAlignment.Center,
        TextYAlignment = Enum.TextYAlignment.Center,
        TextWrapped = true,
        ClipsDescendants = true
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v7));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.RoactRodux);
local v4 = require(l_Packages_0.Framework);
local v5 = require(l_Packages_0.Dash);
local l_withAbsoluteSizeAndPosition_0 = v4.Wrappers.withAbsoluteSizeAndPosition;
local l_Util_0 = l_script_FirstAncestor_0.Core.Util;
local v8 = require(l_Util_0.Constants);
local v9 = require(l_Util_0.LayoutOrderIterator);
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local _ = require(l_script_FirstAncestor_0.Core.Components.AssetLogicWrapper);
local v13 = require(l_script_FirstAncestor_0.Core.Components.DraggableButton);
local v14 = require(l_script_FirstAncestor_0.Core.Thunks.TryCreateContextMenu);
local v15 = require(l_script_FirstAncestor_0.Core.Thunks.GetPageInfoAnalyticsContextInfo);
local v16 = require(l_script_FirstAncestor_0.Core.Networking.Requests.GetCanManageAssetRequest);
local v17 = require(l_Util_0.Analytics.AssetAnalyticsContextItem);
local v18 = require(l_script_FirstAncestor_0.Core.ContextServices.Settings);
local v19 = require(l_script_FirstAncestor_0.Core.ContextServices.NetworkContext);
local l_LinkText_0 = v4.UI.LinkText;
local l_Pane_0 = v4.UI.Pane;
local l_TextLabel_0 = v4.UI.TextLabel;
local _ = require(l_script_FirstAncestor_0.Core.Models.AssetInfo);
local v24 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxRefactorAudioConstantsForItemRow);
local v25 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxEnableAssetRows);
local v26 = v2.PureComponent:extend("ItemRow");
v26.defaultProps = {
    TextTruncate = Enum.TextTruncate.AtEnd
};
v26.init = function(v27)
    v27.wasAssetBoundsWithinScrollingBounds = false;
    v27.state = {
        isHovered = false,
        isExpanded = true
    };
    v27.updateHoverState = function(v28)
        v27:setState(function(_)
            local l_props_0 = v27.props;
            if l_props_0.OnHoverChanged then
                l_props_0.OnHoverChanged(v28);
            end;
            return {
                isHovered = v28
            };
        end);
    end;
    v27.onMouseEnter = function()
        v27.updateHoverState(true);
    end;
    v27.onMouseLeave = function()
        v27.updateHoverState(false);
    end;
    v27.toggleIsExpanded = function()
        local l_props_1 = v27.props;
        if l_props_1.OnExpanded then
            l_props_1.OnExpanded(v27.props.AssetInfo.Asset.Id);
        end;
    end;
    v27.onDragStart = function()
        local l_props_2 = v27.props;
        if l_props_2.CanInsertAsset() then
            l_props_2.InsertAsset(true);
        end;
    end;
    v27.onNameClicked = function()
        local l_props_3 = v27.props;
        if l_props_3.InsertAsset then
            l_props_3.InsertAsset(false);
        end;
    end;
    v27.tryCreateLocalizedContextMenu = function()
        local l_props_4 = v27.props;
        l_props_4.tryCreateContextMenu(l_props_4.AssetInfo, l_props_4.Localization, l_props_4.Plugin:get(), l_props_4.TryOpenAssetConfig, (v27.props.getPageInfoAnalyticsContextInfo()));
    end;
    v27.logImpression = function()
        local l_props_5 = v27.props;
        local l_AssetInfo_0 = l_props_5.AssetInfo;
        if l_props_5.LogImpression then
            v27.wasAssetBoundsWithinScrollingBounds = l_props_5.LogImpression(l_AssetInfo_0, l_props_5.AbsoluteSize, l_props_5.AbsolutePosition, v27.wasAssetBoundsWithinScrollingBounds);
        end;
    end;
    v27.renderColumns = function(v37)
        local l_props_6 = v27.props;
        local l_Columns_0 = l_props_6.Columns;
        local v40 = {};
        for _, v42 in l_Columns_0, nil, nil do
            if not v42.Hidden then
                local v43 = v42.OnClick ~= nil;
                local v44 = if not v24() then v8.AUDIO_ROW.LEFT_RIGHT_PADDING else v8.ITEM_ROW.LEFT_RIGHT_PADDING;
                v40[v42.DevLabel] = v2.createElement(l_Pane_0, {
                    LayoutOrder = v37:getNextOrder(),
                    Padding = {
                        Bottom = if not not v42.Padding and v42.Padding.Bottom then v42.Padding.Bottom else nil,
                        Left = if not not v42.Padding and v42.Padding.Left then v44 + v42.Padding.Left else v44,
                        Right = if not not v42.Padding and v42.Padding.Right then v42.Padding.Right else nil,
                        Top = if not not v42.Padding and v42.Padding.Top then v42.Padding.Top else nil
                    },
                    Size = v42.Size
                }, {
                    Text = if not v43 then v2.createElement(l_TextLabel_0, {
                        LayoutOrder = v37:getNextOrder(),
                        Size = UDim2.fromScale(1, 1),
                        Text = v42.Text,
                        Style = "ToolboxItemRowText",
                        TextTruncate = if not v42.TextTruncate then l_props_6.TextTruncate else v42.TextTruncate,
                        TextXAlignment = Enum.TextXAlignment.Left
                    }) else v2.createElement(l_LinkText_0, {
                        LayoutOrder = v37:getNextOrder(),
                        OnClick = v42.OnClick,
                        Size = UDim2.fromScale(1, 1),
                        Text = v42.Text,
                        TextTruncate = if not v42.TextTruncate then l_props_6.TextTruncate else v42.TextTruncate,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextWrapped = true,
                        Style = "ToolboxItemRowLink"
                    })
                });
            end;
        end;
        return v40;
    end;
end;
v26.didMount = function(v45)
    local l_props_7 = v45.props;
    local l_AssetInfo_1 = l_props_7.AssetInfo;
    local l_LogImpression_0 = l_props_7.LogImpression;
    if l_AssetInfo_1.Asset then
        l_props_7.getCanManageAsset(l_props_7.Network.networkInterface, l_AssetInfo_1.Asset.Id);
    end;
    if not l_AssetInfo_1 or not l_LogImpression_0 then
        if l_AssetInfo_1 then
            l_props_7.AssetAnalytics:get():logImpression(l_AssetInfo_1, (l_props_7.getPageInfoAnalyticsContextInfo()));
        end;
        return ;
    else
        v45.logImpression();
        return ;
    end;
end;
v26.didUpdate = function(v49, v50, _)
    local l_props_8 = v49.props;
    if not (v50.AbsolutePosition == l_props_8.AbsolutePosition and v50.AbsoluteSize == l_props_8.AbsoluteSize) or v50.ParentAbsoluteSize ~= l_props_8.ParentAbsoluteSize then
        v49.logImpression();
    end;
end;
v26.render = function(v53)
    local l_props_9 = v53.props;
    local l_state_0 = v53.state;
    local l_Asset_0 = l_props_9.AssetInfo.Asset;
    local l_ExpandedHeight_0 = l_props_9.ExpandedHeight;
    local l_itemRow_0 = l_props_9.Stylizer.itemRow;
    local l_LayoutOrder_0 = l_props_9.LayoutOrder;
    local v60 = not l_Asset_0 and "" or l_Asset_0.Name;
    local l_IsExpanded_0 = l_props_9.IsExpanded;
    local l_isHovered_0 = l_state_0.isHovered;
    local v63 = v9.new();
    local v64 = if not not l_LayoutOrder_0 and l_LayoutOrder_0 % 2 == 0 then l_itemRow_0.backgroundColorEven else l_itemRow_0.backgroundColorOdd;
    local v65 = v5.join({
        AutomaticSize = l_props_9.AutomaticSize,
        LayoutOrder = l_LayoutOrder_0,
        Position = if not v25() then nil else l_props_9.Position,
        Size = UDim2.new(1, 0, 0, if not l_IsExpanded_0 then v8.AUDIO_ROW.ROW_HEIGHT else l_ExpandedHeight_0)
    }, l_props_9.WrapperProps);
    local v66 = if not v24() then v8.AUDIO_ROW.LEFT_RIGHT_PADDING else v8.ITEM_ROW.LEFT_RIGHT_PADDING;
    local v67 = if not v24() then v8.AUDIO_ROW.TOP_BUTTON_PADDING else v8.ITEM_ROW.TOP_BUTTON_PADDING;
    local v68 = if not v24() then v8.AUDIO_ROW.BORDER_SIZE else v8.ITEM_ROW.BORDER_SIZE;
    return v2.createElement(l_Pane_0, v65, {
        Button = v2.createElement(v13, {
            BackgroundColor3 = v64,
            Size = UDim2.new(1, -v68 * 2, 1, -v68 * 2),
            Position = UDim2.new(0, v68, 0, v68),
            ZIndex = 1,
            [v2.Event.MouseEnter] = v53.onMouseEnter,
            [v2.Event.MouseLeave] = v53.onMouseLeave,
            [v2.Event.MouseButton1Click] = v53.toggleIsExpanded,
            [v2.Event.MouseButton2Click] = v53.tryCreateLocalizedContextMenu,
            onDragStart = v53.onDragStart
        }, {
            UIStroke = if l_IsExpanded_0 or l_isHovered_0 then v2.createElement("UIStroke", {
                Thickness = v68,
                Color = l_itemRow_0.borderColor
            }) else nil,
            UIPadding = v2.createElement("UIPadding", {
                PaddingRight = UDim.new(0, v66 - v68),
                PaddingLeft = UDim.new(0, v66 - v68),
                PaddingTop = UDim.new(0, v67 - v68),
                PaddingBottom = UDim.new(0, v67 - v68)
            }),
            UICorner = v2.createElement("UICorner", {
                CornerRadius = UDim.new(0, 5)
            }),
            Layout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            Details = v2.createElement(l_Pane_0, {
                Layout = Enum.FillDirection.Horizontal,
                LayoutOrder = v63:getNextOrder(),
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                Size = UDim2.new(1, 0, 0, v8.AUDIO_ROW.ICON_SIZE)
            }, v5.join({
                Icon = if not l_props_9.RenderIcon then nil else l_props_9.RenderIcon(l_isHovered_0),
                Name = v2.createElement(l_Pane_0, {
                    Size = l_props_9.TitleSize,
                    LayoutOrder = v63:getNextOrder()
                }, {
                    LinkText = v2.createElement(l_LinkText_0, {
                        OnClick = v53.onNameClicked,
                        HoverAreaSize = if not l_props_9.ForceLinkTextFullWidth then nil else UDim2.new(1, 0, 0, 0),
                        Size = UDim2.new(1, 0, 1, 0),
                        Style = "ToolboxItemRowTitle",
                        Text = v60,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        TextWrapped = true,
                        TextXAlignment = Enum.TextXAlignment.Left
                    })
                })
            }, v53.renderColumns(v63))),
            ExpandedContents = if not not l_IsExpanded_0 and l_props_9.RenderExpandedContent then v2.createElement(l_Pane_0, {
                AutomaticSize = Enum.AutomaticSize.Y,
                LayoutOrder = v63:getNextOrder(),
                Size = UDim2.new(1, 0, 0, 0)
            }, {
                Content = l_props_9.RenderExpandedContent()
            }) else nil
        })
    });
end;
v26 = l_withAbsoluteSizeAndPosition_0((v3.connect(nil, function(v69)
    return {
        getCanManageAsset = function(v70, v71)
            v69(v16(v70, v71));
        end,
        tryCreateContextMenu = function(v72, v73, v74, v75, v76)
            v69(v14(v72, v73, v74, v75, v76));
        end,
        getPageInfoAnalyticsContextInfo = function()
            return v69(v15());
        end
    };
end)((l_withContext_0({
    AssetAnalytics = v17,
    Localization = l_ContextServices_0.Localization,
    Network = v19,
    Plugin = l_ContextServices_0.Plugin,
    Settings = v18,
    Stylizer = l_ContextServices_0.Stylizer
})(v26)))));
TypedItemRow = function(v77, v78)
    return v2.createElement(v26, v77, v78);
end;
return {
    Component = v26,
    Generator = TypedItemRow
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Framework);
local l_LinkText_0 = v3.UI.LinkText;
local l_Pane_0 = v3.UI.Pane;
local l_TextLabel_0 = v3.UI.TextLabel;
local l_TextLabelWithRobloxLinks_0 = v3.UI.TextLabelWithRobloxLinks;
local l_GetTextSize_0 = v3.Util.GetTextSize;
local l_Util_0 = l_script_FirstAncestor_0.Core.Util;
local v10 = require(l_Util_0.Constants);
local v11 = require(l_Util_0.LayoutOrderIterator);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v14 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxEnableAssetRows);
local v15 = v2.PureComponent:extend("ItemRowMetadataMetadata");
v15.render = function(v16)
    local l_props_0 = v16.props;
    local l_itemRow_0 = l_props_0.Stylizer.itemRow;
    local l_HeaderText_0 = l_props_0.HeaderText;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_MaxLinesOfText_0 = l_props_0.MaxLinesOfText;
    local l_Padding_0 = l_props_0.Padding;
    local l_Size_0 = l_props_0.Size;
    local l_Text_0 = l_props_0.Text;
    local l_OnClick_0 = l_props_0.OnClick;
    local v26 = v11.new();
    local v27 = 0;
    if l_MaxLinesOfText_0 then
        v27 = l_GetTextSize_0("A", l_itemRow_0.textSize, v10.FONT, Vector2.new(0, 0)).Y * l_MaxLinesOfText_0;
    end;
    return v2.createElement(l_Pane_0, {
        AutomaticSize = Enum.AutomaticSize.Y,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        Layout = Enum.FillDirection.Vertical,
        LayoutOrder = l_LayoutOrder_0,
        Padding = if not v14() then nil else l_Padding_0,
        Size = l_Size_0,
        Spacing = 2,
        VerticalAlignment = Enum.VerticalAlignment.Top
    }, {
        Header = v2.createElement(l_TextLabel_0, {
            AutomaticSize = Enum.AutomaticSize.Y,
            LayoutOrder = v26:getNextOrder(),
            Style = "ToolboxItemRowHeader",
            Text = l_HeaderText_0,
            TextColor = l_itemRow_0.headerTextColor,
            TextXAlignment = Enum.TextXAlignment.Left,
            Size = UDim2.new(1, 0, 0, 0)
        }),
        Text = if not l_OnClick_0 then v2.createElement(l_TextLabelWithRobloxLinks_0, {
            LayoutOrder = v26:getNextOrder(),
            AutomaticSize = if not l_MaxLinesOfText_0 then Enum.AutomaticSize.Y else Enum.AutomaticSize.None,
            ClipsDescendants = true,
            Size = UDim2.new(1, 0, 0, v27),
            Style = "ToolboxItemRowInnerText",
            Text = l_Text_0 or "",
            TextSize = l_itemRow_0.textSize,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            VerticalAlignment = Enum.VerticalAlignment.Top
        }) else v2.createElement(l_LinkText_0, {
            LayoutOrder = v26:getNextOrder(),
            OnClick = l_OnClick_0,
            Size = UDim2.new(1, 0, 0, v27),
            Style = "ToolboxItemRowInnerLink",
            Text = l_Text_0 or "",
            TextSize = l_itemRow_0.textSize,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v15));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Framework);
local v4 = require(l_script_FirstAncestor_0.Core.Util.Constants);
local v5 = require(l_script_FirstAncestor_0.Core.ContextServices.NavigationContext);
local v6 = require(l_script_FirstAncestor_0.Core.Components.StyledScrollingFrame);
local v7 = require(l_script_FirstAncestor_0.Core.Components.NoSceneSuggestions);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_LoadingIndicator_0 = v3.UI.LoadingIndicator;
local l_Pane_0 = v3.UI.Pane;
local v12 = v2.PureComponent:extend("LoadScroller");
v12.defaultProps = {
    Size = UDim2.new(1, 0, 1, 0)
};
v12.init = function(v13, v14)
    v13.state = {
        initialLoading = v14.Loading
    };
    v13.scrollingFrameRef = v2.createRef();
    v13.calculateRenderBounds = function(_)
        v13:setState(function(_)
        end);
    end;
    v13.checkForNextPage = function()
        local l_props_0 = v13.props;
        local l_current_0 = v13.scrollingFrameRef.current;
        if (not l_current_0 or l_props_0.Loading) or l_props_0.Total and l_props_0.Total == #l_props_0.Items then
            return ;
        else
            if not (not (l_current_0.CanvasSize.Y.Offset - (l_current_0.CanvasPosition.Y + l_current_0.AbsoluteWindowSize.Y) < v4.DIST_FROM_BOTTOM_BEFORE_NEXT_PAGE) or not l_props_0.FetchNextPage) then
                l_props_0.FetchNextPage(l_props_0.PageSize);
            end;
            return ;
        end;
    end;
end;
v12.didMount = function(v19)
    v19.checkForNextPage();
end;
v12.didUpdate = function(v20, v21)
    local l_props_1 = v20.props;
    v20.checkForNextPage();
    if not (l_props_1.Loading or not v21.Loading) then
        v20:setState({
            initialLoading = false
        });
    end;
end;
v12.render = function(v23)
    local l_props_2 = v23.props;
    local l_initialLoading_0 = v23.state.initialLoading;
    local l_Items_0 = l_props_2.Items;
    local l_CalculateCanvasHeight_0 = l_props_2.CalculateCanvasHeight;
    local l_Loading_0 = l_props_2.Loading;
    local l_LayoutOrder_0 = l_props_2.LayoutOrder;
    local l_Position_0 = l_props_2.Position;
    local l_RenderTopContent_0 = l_props_2.RenderTopContent;
    local l_RenderContent_0 = l_props_2.RenderContent;
    local l_Size_0 = l_props_2.Size;
    local l_Stylizer_0 = l_props_2.Stylizer;
    local l_Navigation_0 = l_props_2.Navigation;
    local v36 = l_CalculateCanvasHeight_0();
    if not l_initialLoading_0 then
        local v37 = nil;
        if l_RenderTopContent_0 then
            v37 = l_RenderTopContent_0();
        end;
        local _ = nil;
        return v2.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = l_Size_0,
            LayoutOrder = l_LayoutOrder_0,
            Position = l_Position_0,
            [v2.Change.AbsoluteSize] = v23.checkForNextPage
        }, {
            StyledScrollingFrame = v2.createElement(v6, {
                CanvasSize = UDim2.new(1, 0, 0, v36),
                Size = UDim2.new(1, 0, 1, 0),
                onScroll = v23.checkForNextPage,
                [v2.Ref] = v23.scrollingFrameRef,
                [v2.Change.AbsoluteSize] = v23.checkForNextPage
            }, {
                UIPadding = v2.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, v4.LOAD_SCROLL_PADDING),
                    PaddingRight = UDim.new(0, v4.LOAD_SCROLL_PADDING + v4.SCROLLBAR_BACKGROUND_THICKNESS),
                    PaddingTop = UDim.new(0, v4.LOAD_SCROLL_PADDING),
                    PaddingBottom = UDim.new(0, v4.LOAD_SCROLL_PADDING)
                }),
                Layout = v2.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                TopContent = v37,
                Content = if not (not (l_Navigation_0:getCurrentPath() == v4.CONTEXTUAL_RECOMMENDATIONS_HOME_CONFIG_SECTION_NAME) or l_props_2.Loading) and #l_props_2.Items == 0 then v2.createElement(v7, {
                    LayoutOrder = 2
                }) else l_RenderContent_0(l_Items_0),
                LoadingIndicator = l_Loading_0 and v2.createElement(l_Pane_0, {
                    LayoutOrder = 3,
                    Size = UDim2.fromScale(1, 1),
                    Layout = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center
                }, {
                    Wrapper = v2.createElement("Frame", {
                        Size = UDim2.new(0, 60, 1, 0),
                        BackgroundTransparency = 1
                    }, {
                        LoadingIndicator = v2.createElement(l_LoadingIndicator_0)
                    })
                })
            })
        });
    else
        return v2.createElement("Frame", {
            BackgroundColor3 = l_Stylizer_0.backgroundColor,
            BackgroundTransparency = 1,
            LayoutOrder = 1,
            Size = UDim2.new(1, 0, 1, 0)
        }, {
            LoadingIndicator = v2.createElement(l_LoadingIndicator_0, {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.new(0.5, 0, 0.5, 0)
            })
        });
    end;
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Navigation = v5
})(v12));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Framework);
local v4 = require(l_Parent_0.Core.Util.Constants);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_GetTextSize_0 = v3.Util.GetTextSize;
local v8 = require(l_Parent_0.Core.Components.PluginWidget.Dialog);
local v9 = require(l_Parent_0.Core.Components.MessageBox.MessageBoxButton);
local v10 = v2.PureComponent:extend("MessageBox");
v10.init = function(v11, _)
    v11.isDead = false;
    v11.onEnabledChanged = function(v13)
        if not v11.isDead then
            if not (v13.Enabled or not v11.props.onClose) then
                v11.props.onClose();
            end;
            return ;
        else
            return ;
        end;
    end;
    v11.onAncestryChanged = function(_, _, v16)
        if not v11.isDead then
            if not (v16 or not v11.props.onClose) then
                v11.props.onClose();
            end;
            return ;
        else
            return ;
        end;
    end;
end;
v10.willUnmount = function(v17)
    v17.isDead = true;
end;
v10.render = function(v18)
    local l_props_0 = v18.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local v21 = l_props_0.Title or "";
    local v22 = l_props_0.Name or v21;
    local v23 = l_props_0.Id or nil;
    local v24 = l_props_0.Text or "";
    local v25 = l_props_0.InformativeText or "";
    local v26 = l_props_0.Icon or "";
    local v27 = #v25 ~= 0;
    local v28 = v26 ~= "";
    local l_FONT_0 = v4.FONT;
    local l_FONT_SIZE_SMALL_0 = v4.FONT_SIZE_SMALL;
    local l_FONT_1 = v4.FONT;
    local l_FONT_SIZE_SMALL_1 = v4.FONT_SIZE_SMALL;
    local l_messageBox_0 = l_Stylizer_0.messageBox;
    local v34 = l_props_0.buttons or {};
    if #v34 == 0 then
        v34 = {
            {
                Text = "Ok",
                action = "ok"
            }
        };
    end;
    local l_MESSAGE_BOX_BUTTON_WIDTH_0 = v4.MESSAGE_BOX_BUTTON_WIDTH;
    local v36 = {
        UIListLayout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            FillDirection = Enum.FillDirection.Horizontal,
            Padding = UDim.new(0, 8)
        })
    };
    for v37, v38 in ipairs(v34) do
        v36[v38.action .. v37] = v2.createElement(v9, {
            index = v37,
            Text = v38.Text,
            action = v38.action,
            onButtonClicked = v18.props.onButtonClicked
        });
    end;
    local v39 = math.max(math.min(l_GetTextSize_0(v24, l_FONT_SIZE_SMALL_0, l_FONT_0, Vector2.new(0, 0)).X, 424), (math.min(l_GetTextSize_0(v25, l_FONT_SIZE_SMALL_1, l_FONT_1, Vector2.new(0, 0)).X, 192)));
    local v40 = not v28 and 0 or 32;
    local v41 = v40 + 20;
    local v42 = v41 + v39;
    local v43 = if not l_props_0.IconColor then nil else l_props_0.IconColor;
    local v44 = math.max(math.max(#v34 * l_MESSAGE_BOX_BUTTON_WIDTH_0 + (#v34 - 1) * 8, v42), 120);
    local v45 = v44 - v41;
    local v46 = l_GetTextSize_0(v24, l_FONT_SIZE_SMALL_0, l_FONT_0, Vector2.new(v45, 1000));
    local v47 = l_GetTextSize_0(v25, l_FONT_SIZE_SMALL_1, l_FONT_1, Vector2.new(v45, 1000));
    local l_Y_0 = v46.Y;
    local l_Y_1 = v47.Y;
    local v50 = math.max(v40, l_Y_0 + (not not v27 and 8 + l_Y_1 or 0));
    return v2.createElement(v8, {
        Name = v22,
        Title = v21,
        Id = v23,
        Size = Vector2.new((12 + v44) + 12, (((8 + v50) + 12) + 23) + 12),
        ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
        Modal = true,
        plugin = v18.props.Plugin:get(),
        [v2.Change.Enabled] = v18.onEnabledChanged,
        [v2.Event.AncestryChanged] = v18.onAncestryChanged
    }, {
        Background = v2.createElement("Frame", {
            Position = UDim2.new(0, 0, 0, 0),
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = l_messageBox_0.backgroundColor
        }, {
            UIPadding = v2.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, 12),
                PaddingLeft = UDim.new(0, 12),
                PaddingRight = UDim.new(0, 12),
                PaddingTop = UDim.new(0, 8)
            }),
            UIListLayout = v2.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Top,
                Padding = UDim.new(0, 12)
            }),
            Information = v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, v50),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }, {
                UIListLayout = v2.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    VerticalAlignment = Enum.VerticalAlignment.Top,
                    Padding = UDim.new(0, 20),
                    FillDirection = Enum.FillDirection.Horizontal
                }),
                Icon = v2.createElement("ImageLabel", {
                    Size = UDim2.new(0, v40, 0, v40),
                    BackgroundTransparency = 1,
                    LayoutOrder = 0,
                    Image = v26,
                    ImageColor3 = v43
                }),
                Texts = v2.createElement("Frame", {
                    LayoutOrder = 1,
                    Size = UDim2.new(1, -v41, 1, 0),
                    BackgroundTransparency = 1
                }, {
                    UIListLayout = v2.createElement("UIListLayout", {
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        HorizontalAlignment = Enum.HorizontalAlignment.Left,
                        VerticalAlignment = Enum.VerticalAlignment.Top,
                        Padding = UDim.new(0, 8),
                        FillDirection = Enum.FillDirection.Vertical
                    }),
                    TextLabel = v2.createElement("TextLabel", {
                        LayoutOrder = 0,
                        Size = UDim2.new(1, 0, 0, l_Y_0),
                        BackgroundTransparency = 1,
                        Text = v24,
                        Font = l_FONT_0,
                        TextSize = l_FONT_SIZE_SMALL_0,
                        TextColor3 = l_messageBox_0.textColor,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Top,
                        TextWrapped = true
                    }),
                    InformativeLabel = v27 and v2.createElement("TextLabel", {
                        LayoutOrder = 1,
                        Size = UDim2.new(1, 0, 0, l_Y_1),
                        BackgroundTransparency = 1,
                        Text = v25,
                        Font = l_FONT_1,
                        TextSize = l_FONT_SIZE_SMALL_1,
                        TextColor3 = l_messageBox_0.informativeTextColor,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Top,
                        TextWrapped = true
                    })
                })
            }),
            Buttons = v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 23),
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }, v36)
        })
    });
end;
return (l_withContext_0({
    Plugin = l_ContextServices_0.Plugin,
    Stylizer = l_ContextServices_0.Stylizer
})(v10));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Framework);
local v4 = require(l_Parent_0.Core.Util.Constants);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = require(l_Parent_0.Core.Components.RoundButton);
local v8 = v2.PureComponent:extend("MessageBoxButton");
v8.init = function(v9, _)
    v9.state = {
        isHovered = false,
        isSelected = false
    };
    v9.onMouseEnter = function()
        v9:setState({
            isHovered = true
        });
    end;
    v9.onMouseLeave = function()
        v9:setState({
            isHovered = false,
            isSelected = false
        });
    end;
    v9.onMouseDown = function()
        v9:setState({
            isHovered = true,
            isSelected = true
        });
    end;
    v9.onMouseUp = function()
        v9:setState({
            isSelected = false
        });
        if v9.props.onButtonClicked then
            v9.props.onButtonClicked(v9.props.index, v9.props.action);
        end;
    end;
end;
v8.render = function(v11)
    local l_props_0 = v11.props;
    local l_state_0 = v11.state;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_index_0 = l_props_0.index;
    local l_Text_0 = l_props_0.Text;
    local l_isHovered_0 = l_state_0.isHovered;
    local l_isSelected_0 = l_state_0.isSelected;
    local l_button_0 = l_Stylizer_0.messageBox.button;
    return v2.createElement(v7, {
        Size = UDim2.new(0, v4.MESSAGE_BOX_BUTTON_WIDTH, 1, 0),
        LayoutOrder = l_index_0,
        BackgroundColor3 = not not l_isSelected_0 and l_button_0.backgroundSelectedColor or l_button_0.backgroundColor,
        BorderColor3 = (l_isHovered_0 or l_isSelected_0) and l_button_0.borderSelectedColor or l_button_0.borderColor,
        [v2.Event.MouseEnter] = v11.onMouseEnter,
        [v2.Event.MouseLeave] = v11.onMouseLeave,
        [v2.Event.MouseButton1Down] = v11.onMouseDown,
        [v2.Event.MouseButton1Up] = v11.onMouseUp
    }, {
        TextLabel = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Position = UDim2.new(0, 0, 0, -1),
            Size = UDim2.new(1, 0, 1, 0),
            TextColor3 = not not l_isSelected_0 and l_button_0.textSelectedColor or l_button_0.textColor,
            Text = l_Text_0,
            Font = v4.FONT,
            TextSize = v4.FONT_SIZE_SMALL,
            TextXAlignment = Enum.TextXAlignment.Center
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v8));


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Framework);
local v4 = require(l_Parent_0.Core.Util.Constants);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = require(l_Parent_0.Core.Components.RoundButton);
local v8 = v2.Component:extend("NavButton");
v8.init = function(v9, _)
    v9:setState({
        hovered = false,
        pressed = false
    });
    v9.buttonRef = v2.createRef();
    v9.onMouseEnter = function()
        v9:setState({
            hovered = true
        });
    end;
    v9.onMouseLeave = function()
        v9:setState({
            hovered = false
        });
    end;
    v9.onMouseButton1Down = function()
        v9:setState({
            pressed = true
        });
    end;
    v9.onMouseButton1Up = function()
        v9:setState({
            pressed = false
        });
    end;
end;
v8.render = function(v11)
    local l_props_0 = v11.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local v14 = not not l_props_0.isPrimary and l_Stylizer_0.nav.mainButton or l_Stylizer_0.nav.button;
    local _ = nil;
    return v2.createElement(v7, {
        Size = l_props_0.Size,
        Position = l_props_0.Position,
        LayoutOrder = l_props_0.LayoutOrder,
        BackgroundColor3 = if not not v11.state.hovered and v11.state.pressed then v14.pressBackground else if v11.state.hovered then v14.hoverBackground else v14.background,
        BorderColor3 = v14.borderColor,
        BorderSizePixel = not l_props_0.isPrimary and 1 or 0,
        [v2.Event.MouseEnter] = v11.onMouseEnter,
        [v2.Event.MouseLeave] = v11.onMouseLeave,
        [v2.Event.MouseButton1Down] = v11.onMouseButton1Down,
        [v2.Event.MouseButton1Up] = v11.onMouseButton1Up,
        [v2.Event.MouseButton1Click] = l_props_0.onClick
    }, {
        Title = v2.createElement("TextLabel", {
            Text = l_props_0.titleText,
            Font = v4.FONT,
            TextSize = v4.FONT_SIZE_LARGE,
            BackgroundTransparency = 1,
            TextColor3 = v14.textColor,
            Size = UDim2.new(1, 0, 1, 0)
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v8));


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Cryo);
local l_t_0 = require(l_Packages_0.Framework).Util.Typecheck.t;
local v5 = require(l_Parent_0.Core.Util.Constants);
local l_TextWithInlineLink_0 = require(l_Packages_0.Framework).UI.TextWithInlineLink;
local l_ContextServices_0 = require(l_Packages_0.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v9 = v2.PureComponent:extend("NoResultsDetail");
v9.init = function(v10)
    v10.state = {
        maxChildWidth = 0
    };
    v10.updateSize = function(v11)
        v10:setState({
            maxChildWidth = v11.AbsoluteSize.X
        });
    end;
end;
v9.render = function(v12)
    local l_props_0 = v12.props;
    assert(l_t_0.interface({
        content = l_t_0.interface({
            TextLine1 = l_t_0.string,
            TextLine2 = l_t_0.string,
            LinkText = l_t_0.string
        }),
        onLinkClicked = l_t_0.callback
    })(l_props_0));
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_FONT_SIZE_MEDIUM_0 = v5.FONT_SIZE_MEDIUM;
    local l_content_0 = l_props_0.content;
    local v17 = l_props_0.Position or UDim2.new(0, 0, 0, 0);
    local v18 = l_props_0.ZIndex or 0;
    local v19 = l_props_0.Visible ~= nil and l_props_0.Visible or l_props_0.Visible == nil;
    local v20 = {
        TextProps = {
            TextColor = l_Stylizer_0.infoBanner.textColor,
            BackgroundTransparency = 1,
            Font = v5.FONT,
            TextSize = l_FONT_SIZE_MEDIUM_0,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center,
            TextWrapped = true,
            ClipsDescendants = true
        },
        LinkPlaceholder = "{link}",
        LinkText = l_content_0.LinkText,
        OnLinkClicked = l_props_0.onLinkClicked,
        MaxWidth = v12.state.maxChildWidth
    };
    return v2.createElement("Frame", {
        Position = v17,
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        ZIndex = v18,
        Visible = v19,
        [v2.Change.AbsoluteSize] = v12.updateSize
    }, {
        Layout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center
        }),
        TextLine1 = v2.createElement(l_TextWithInlineLink_0, v3.Dictionary.join({
            Text = l_content_0.TextLine1,
            LayoutOrder = 1
        }, v20)),
        TextLine2 = v2.createElement(l_TextWithInlineLink_0, v3.Dictionary.join({
            Text = l_content_0.TextLine2,
            LayoutOrder = 2
        }, v20))
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v9));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local v3 = require(l_script_FirstAncestor_0.Core.Util.Constants);
local v4 = require(l_script_FirstAncestor_0.Core.Types.Category);
local v5 = require(l_script_FirstAncestor_0.Core.Hooks.useNavigateToCategory);
local l_Localization_0 = v2.ContextServices.Localization;
local l_Stylizer_0 = v2.ContextServices.Stylizer;
local l_TextWithLinks_0 = v2.UI.TextWithLinks;
local l_useCallback_0 = v1.useCallback;
return function(v10)
    local v11 = l_Stylizer_0:use();
    local v12 = l_Localization_0:use();
    local v13 = v5();
    return v1.createElement(l_TextWithLinks_0, {
        Text = v12:getText("SceneSuggestions", "NoResults"),
        LinkMap = {
            ["[link1]"] = {
                LinkText = v12:getText("General", "CategoryModels"),
                LinkCallback = l_useCallback_0(function()
                    v13(v4.FREE_MODELS.name);
                end, {
                    v13
                })
            }
        },
        LayoutOrder = v10.LayoutOrder,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = UDim2.fromScale(1, 0),
        TextWrapped = true,
        TextXAlignment = Enum.TextXAlignment.Left,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        TextProps = {
            Font = v3.FONT,
            TextColor = v11.itemRow.textColor,
            TextSize = v11.itemRow.textSize
        }
    });
end;


return require(script.Parent.Parent.Parent.Parent.Core.Components.PluginWidget.PluginWidget)("Dialog", function(v0, v1)
    local l_props_0 = v0.props;
    local l_plugin_0 = l_props_0.plugin;
    local _ = nil;
    return l_plugin_0:CreateQWidgetPluginGui(v1, l_props_0.options or {
        Size = l_props_0.Size or nil,
        MinSize = l_props_0.MinSize or nil,
        Resizable = l_props_0.Resizable or nil,
        Modal = l_props_0.Modal or nil,
        InitialEnabled = not l_props_0.InitialEnabled and true or l_props_0.InitialEnabled
    });
end);


return require(script.Parent.Parent.Parent.Parent.Core.Components.PluginWidget.PluginWidget)("DockWidget", function(v0, v1)
    local l_props_0 = v0.props;
    local l_plugin_0 = l_props_0.plugin;
    if not l_props_0.Widget then
        return l_plugin_0:CreateDockWidgetPluginGui(v1, (DockWidgetPluginGuiInfo.new(l_props_0.InitialDockState, l_props_0.InitialEnabled, l_props_0.InitialEnabledShouldOverrideRestore, l_props_0.FloatingXSize, l_props_0.FloatingYSize, l_props_0.MinWidth, l_props_0.MinHeight)));
    else
        return l_props_0.Widget;
    end;
end);


local l_Packages_0 = script.Parent.Parent.Parent.Parent.Packages;
local v1 = require(l_Packages_0.Roact);
local l_withForwardRef_0 = require(l_Packages_0.Framework).Wrappers.withForwardRef;
local function _(v3)
    local v4 = v3.Title or "";
    local v5 = v3.Name or v4:gsub("%s", "");
    return v4, v5, v3.Id or v5;
end;
return function(v7, v8)
    local v9 = v1.PureComponent:extend(v7);
    v9.init = function(v10, v11)
        v10.state = {
            pluginGui = nil
        };
        local v12 = v11.Title or "";
        local v13 = v11.Name or v12:gsub("%s", "");
        local v14 = v11.Id or v13;
        local l_v12_0 = v12;
        local l_v13_0 = v13;
        v10.widget = v8(v10, v14);
        v10.widget.Title = l_v12_0;
        v10.widget.Name = l_v13_0;
        v10.widget.ZIndexBehavior = v11.ZIndexBehavior or Enum.ZIndexBehavior.Global;
        v10.widget:GetPropertyChangedSignal("Enabled"):connect(function(...)
            if v10.props[v1.Change.Enabled] then
                v10.props[v1.Change.Enabled](v10.widget, ...);
            end;
        end);
        v10.widget.AncestryChanged:connect(function(...)
            if v10.props[v1.Event.AncestryChanged] then
                v10.props[v1.Event.AncestryChanged](v10.widget, ...);
            end;
        end);
        v12 = v11.ForwardRef;
        if v12 then
            v12(v10.widget);
        end;
    end;
    v9.didUpdate = function(v17, v18, _)
        local v20 = v18.Title or "";
        local v21 = v18.Name or v20:gsub("%s", "");
        local v22 = v18.Id or v21;
        local l_v20_0 = v20;
        local l_v21_0 = v21;
        local _ = v22;
        local l_props_0 = v17.props;
        local v27 = l_props_0.Title or "";
        local v28 = l_props_0.Name or v27:gsub("%s", "");
        local v29 = l_props_0.Id or v28;
        v20 = v27;
        v21 = v28;
        v22 = v29;
        if v20 ~= l_v20_0 then
            v17.widget.Title = v20;
        end;
        if v21 ~= l_v21_0 then
            v17.widget.Name = v21;
        end;
        if v17.props.ZIndexBehavior ~= v18.ZIndexBehavior then
            v17.widget.ZIndexBehavior = v17.props.ZIndexBehavior;
        end;
        if v17.props.Enabled ~= v18.Enabled then
            v17.widget.Enabled = v17.props.Enabled;
        end;
    end;
    v9.render = function(v30)
        return v1.createElement(v1.Portal, {
            target = v30.widget
        }, v30.props[v1.Children]);
    end;
    v9.didMount = function(v31)
        v31:setState({
            pluginGui = v31.widget
        });
    end;
    v9.willUnmount = function(v32)
        if v32.widget then
            v32.widget:Destroy();
        end;
    end;
    return (l_withForwardRef_0(v9));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local v2 = require(l_Packages_0.React);
local v3 = require(l_Packages_0.Framework);
local l_UI_0 = v3.UI;
local l_Pane_0 = v3.UI.Pane;
local l_StyledDialog_0 = l_UI_0.StyledDialog;
local l_TextLabel_0 = l_UI_0.TextLabel;
local _ = require(l_script_FirstAncestor_0.Core.Components.PurchaseFlow.PurchaseDialog);
local l_Util_0 = l_script_FirstAncestor_0.Core.Util;
local v10 = require(l_Util_0.Constants);
local v11 = require(l_Util_0.LayoutOrderIterator);
local l_Dialog_0 = v10.Dialog;
local l_Stylizer_0 = v3.ContextServices.Stylizer;
local l_ContextServices_0 = v3.ContextServices;
local _ = l_ContextServices_0.withContext;
local _ = require(l_script_FirstAncestor_0.Core.Types.MarketplaceFiatServiceTypes);
return function(v17)
    local v18 = l_ContextServices_0.Localization:use();
    local v19 = l_Stylizer_0:use();
    local l_CreatorName_0 = v17.CreatorName;
    local l_Name_0 = v17.Name;
    local l_OnButtonClicked_0 = v17.OnButtonClicked;
    local l_OnClose_0 = v17.OnClose;
    local l_Price_0 = v17.Price;
    local l_Thumbnail_0 = v17.Thumbnail;
    local v26 = v11.new();
    return v2.createElement(l_StyledDialog_0, {
        Buttons = {
            {
                Key = false,
                Text = v18:getText("Purchase", "Cancel")
            },
            {
                Key = true,
                Style = "RoundPrimary",
                Text = v18:getText("Purchase", "Buy")
            }
        },
        MinContentSize = Vector2.new(l_Dialog_0.IMAGE_SIZE.X.Offset + l_Dialog_0.PROMPT_SIZE.X.Offset, l_Dialog_0.PROMPT_SIZE.Y.Offset + l_Dialog_0.BALANCE_SIZE.Y.Offset),
        OnButtonPressed = l_OnButtonClicked_0,
        OnClose = l_OnClose_0,
        Title = v18:getText("Purchase", "BuyTitle")
    }, {
        Container = v2.createElement(l_Pane_0, {
            AutomaticSize = Enum.AutomaticSize.XY,
            Layout = Enum.FillDirection.Horizontal,
            LayoutOrder = v17.LayoutOrder,
            Spacing = 12,
            VerticalAlignment = Enum.VerticalAlignment.Top
        }, {
            Thumbnail = v2.createElement("ImageLabel", {
                BackgroundTransparency = 1,
                Image = l_Thumbnail_0,
                LayoutOrder = v26:getNextOrder(),
                Size = l_Dialog_0.IMAGE_SIZE
            }),
            Prompt = v2.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.new(0, l_Dialog_0.PROMPT_SIZE.X.Offset, 0, 0),
                LayoutOrder = v26:getNextOrder(),
                Text = v18:getText("Purchase", "FiatBuyPrompt", {
                    name = l_Name_0,
                    creator = l_CreatorName_0,
                    price = l_Price_0
                }),
                TextColor = v19.purchaseDialog.promptText,
                TextWrapped = true,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top
            })
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Framework);
local v4 = require(l_Parent_0.Core.Components.PurchaseFlow.PurchaseDialog);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = v2.PureComponent:extend("BuyPluginDialog");
v7.render = function(v8)
    local l_props_0 = v8.props;
    return v2.createElement(v4, {
        Buttons = {
            {
                Key = false,
                Text = l_props_0.Localization:getText("Purchase", "Cancel")
            },
            {
                Key = true,
                Text = l_props_0.Localization:getText("Purchase", "Buy"),
                Style = "RoundPrimary"
            }
        },
        OnButtonClicked = l_props_0.OnButtonClicked,
        OnClose = l_props_0.OnClose,
        Title = l_props_0.Localization:getText("Purchase", "BuyTitle"),
        Prompt = l_props_0.Localization:getText("Purchase", "BuyPrompt", {
            name = l_props_0.Name,
            creator = l_props_0.Creator,
            robux = l_props_0.Cost
        }),
        Thumbnail = l_props_0.Thumbnail,
        Balance = l_props_0.Balance
    });
end;
return (l_withContext_0({
    Localization = l_ContextServices_0.Localization
})(v7));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v2 = require(l_Packages_0.Roact);
local v3 = require(l_Packages_0.Framework);
local v4 = require(l_Parent_0.Core.Components.PurchaseFlow.PurchaseDialog);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = v2.PureComponent:extend("BuyRobuxDialog");
v7.render = function(v8)
    local l_props_0 = v8.props;
    local l_OnButtonClicked_0 = l_props_0.OnButtonClicked;
    local l_OnClose_0 = l_props_0.OnClose;
    local l_Thumbnail_0 = l_props_0.Thumbnail;
    local l_Name_0 = l_props_0.Name;
    local l_Creator_0 = l_props_0.Creator;
    local l_Cost_0 = l_props_0.Cost;
    local l_Balance_0 = l_props_0.Balance;
    return v2.createElement(v4, {
        Buttons = {
            {
                Key = false,
                Text = l_props_0.Localization:getText("Purchase", "Cancel")
            },
            {
                Key = true,
                Text = l_props_0.Localization:getText("Purchase", "BuyRobux"),
                Style = "RoundPrimary"
            }
        },
        OnButtonClicked = l_OnButtonClicked_0,
        OnClose = l_OnClose_0,
        Title = l_props_0.Localization:getText("Purchase", "InsufficientTitle"),
        Prompt = l_props_0.Localization:getText("Purchase", "InsufficientPrompt", {
            robux = l_Cost_0 - l_Balance_0,
            name = l_Name_0,
            creator = l_Creator_0
        }),
        Thumbnail = l_Thumbnail_0,
        Balance = l_Balance_0
    });
end;
return (l_withContext_0({
    Localization = l_ContextServices_0.Localization
})(v7));