local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.LuaApp.AppPage);
local v3 = require(l_Modules_0.LuaApp.Actions.ClearNativePurchaseResult);
local v4 = require(l_Modules_0.LuaApp.Thunks.ApiFetchRobuxProduct);
local v5 = require(l_Modules_0.LuaApp.Thunks.ApiFetchIAPPurchaseWarning);
local v6 = require(l_Modules_0.LuaApp.Thunks.ApiPostAckPurchaseWarning);
local v7 = require(l_Modules_0.LuaApp.Thunks.OpenNativePurchase);
local v8 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v9 = require(l_Modules_0.LuaApp.Thunks.NavigateDownToSecuritySettings);
local v10 = require(l_Modules_0.LuaApp.Thunks.Challenge.RenderChallenge);
local v11 = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v12 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local l_GetFFlagOpenVngShopForVngRobuxPurchase_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagOpenVngShopForVngRobuxPurchase;
local v14 = require(l_Modules_0.LuaApp.Thunks.OpenPurchaseRobuxPage);
return function(v15)
    return {
        dispatchFetchRobuxProduct = function(v16, v17, v18)
            return v15(v4(v16, v17, v18));
        end,
        dispatchFetchIAPPurchaseWarning = function(v19, v20, v21, v22)
            return v15(v5.Fetch(v19, v20, v21, v22));
        end,
        dispatchPostAckPurchaseWarning = function(v23, v24)
            return v15(v6.Post(v23, v24));
        end,
        dispatchCentralOverlay = function(v25, v26)
            return v15(v12(v25, v26));
        end,
        endPurchase = function()
            v15(v3());
        end,
        promptRobux = function(v27, v28, v29)
            v15(v7(v27, v28, v29));
        end,
        openTermsOfUse = function()
            v15(v8({
                name = v2.GenericWebPage,
                detail = v11.static.about.terms(),
                extraProps = {
                    title = ""
                }
            }));
        end,
        openSecuritySettings = function()
            v15(v9());
        end,
        openBuyRobux = function()
            if not l_GetFFlagOpenVngShopForVngRobuxPurchase_0() then
                return v15(v8({
                    name = v2.PurchaseRobux
                }));
            else
                return v15(v14());
            end;
        end,
        renderChallenge = function(v30, v31)
            return v15(v10(v30, v31));
        end
    };
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.LuaApp.Flags.GetFFlagUADesktopPurchaseWarnings);
local l_GetFFlagUseEnablePremiumUserFeaturesAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagUseEnablePremiumUserFeaturesAppPolicy;
return function(v4, v5)
    local l_LocalUserId_0 = v4.LocalUserId;
    local v7 = if not v2() then nil else v4.Users[l_LocalUserId_0] and v4.Users[l_LocalUserId_0].membership == Enum.MembershipType.Premium;
    if l_GetFFlagUseEnablePremiumUserFeaturesAppPolicy_0() then
        v7 = if not v2() then nil else (v5.enablePremiumUserFeatures and v4.Users[l_LocalUserId_0]) and v4.Users[l_LocalUserId_0].membership == Enum.MembershipType.Premium;
    end;
    return {
        screenSize = v4.ScreenSize,
        iapPurchase = v4.NativePurchase,
        userId = l_LocalUserId_0,
        isPremium = v7
    };
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = v2.PureComponent:extend("ScreenGuiWithBlurControl");
v4.render = function(v5)
    local l_hasScreenGuiBlur_0 = v5.props.hasScreenGuiBlur;
    local l_blurDisplayOrder_0 = v5.props.blurDisplayOrder;
    local l_DisplayOrder_0 = v5.props.DisplayOrder;
    local v9 = false;
    if l_hasScreenGuiBlur_0 and l_blurDisplayOrder_0 <= l_DisplayOrder_0 then
        v9 = true;
    end;
    return v2.createElement("ScreenGui", (v1.Dictionary.join(v5.props, {
        hasScreenGuiBlur = v1.None,
        blurDisplayOrder = v1.None,
        OnTopOfCoreBlur = v9
    })));
end;
return (v3.connect(function(v10, _)
    return {
        hasScreenGuiBlur = v10.ScreenGuiBlur.hasBlur,
        blurDisplayOrder = v10.ScreenGuiBlur.blurDisplayOrder
    };
end)(v4));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local l_useUiModeInfo_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useUiModeInfo;
local l_UiMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).UiMode;
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v5 = require(l_Modules_0.LuaApp.Components.Search.SearchPage);
local v6 = require(l_Modules_0.LuaApp.Components.Search.TenFootUi.TenFootUiSearch);
return function(v7)
    return v1.createElement(if not (l_useUiModeInfo_0().uiMode == l_UiMode_0.TenFoot) then v5 else v6, v7);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_Modules_0.Common.Roact);
local v5 = require(l_Modules_0.LuaApp.Components.Search.ButtonStripSelectorButton);
local v6 = v4.PureComponent:extend("ButtonStripSelector");
v6.defaultProps = {
    leftRightPadding = 0
};
v6.validateProps = v2.strictInterface({
    selections = v2.array(v2.strictInterface({
        name = v2.string,
        text = v2.string,
        onActivated = v2.optional(v2.any),
        image = v2.optional(v2.string)
    })),
    activeSelection = v2.optional(v2.integer),
    size = v2.UDim2,
    position = v2.optional(v2.UDim2),
    layoutOrder = v2.optional(v2.integer),
    backgroundColor3 = v2.Color3,
    backgroundTransparency = v2.number,
    leftRightPadding = v2.number,
    forwardRef = v2.optional(v2.table)
});
v6.renderChildrenButtonsAndLayout = function(_, v8, v9, v10)
    local v11 = {
        Layout = v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 8)
        }),
        Padding = v4.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v10),
            PaddingRight = UDim.new(0, v10)
        })
    };
    for v12, v13 in ipairs(v8) do
        v11[v13.name] = v4.createElement(v5, {
            layoutOrder = v12,
            text = v13.text,
            handleClick = v13.onActivated,
            selected = v9 == v12,
            image = v13.image
        });
    end;
    return v11;
end;
v6.render = function(v14)
    return v4.createElement("Frame", {
        Size = v14.props.size,
        Position = v14.props.position,
        LayoutOrder = v14.props.layoutOrder,
        BackgroundColor3 = v14.props.backgroundColor3,
        BackgroundTransparency = v14.props.backgroundTransparency,
        BorderSizePixel = 0,
        [v4.Ref] = v14.props.forwardRef
    }, v14:renderChildrenButtonsAndLayout(v14.props.selections, v14.props.activeSelection or 1, v14.props.leftRightPadding));
end;
return v4.forwardRef(function(v15, v16)
    return v4.createElement(v6, v3.Dictionary.join(v15, {
        forwardRef = v16
    }));
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_withStyle_0 = require(game:GetService("CorePackages").UIBlox).Style.withStyle;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.LuaApp.FitChildren);
local v4 = require(l_Modules_0.LuaApp.Components.FitTextLabel);
local v5 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v6 = v2.PureComponent:extend("ButtonStripSelectorButton");
v6.render = function(v7)
    local l_text_0 = v7.props.text;
    local l_layoutOrder_0 = v7.props.layoutOrder;
    local l_selected_0 = v7.props.selected;
    return l_withStyle_0(function(v11)
        local v12 = not not l_selected_0 and v11.Theme.TextEmphasis.Color or v11.Theme.TextDefault.Color;
        local v13 = not not l_selected_0 and v11.Theme.SystemPrimaryContent.Transparency or v11.Theme.TextDefault.Transparency;
        local l_Color_0 = v11.Theme.BackgroundOnHover.Color;
        local v15 = not not l_selected_0 and v11.Theme.BackgroundOnHover.Transparency or 1;
        local v16 = v11.Font.BaseSize * v11.Font.Header2.RelativeSize;
        return v2.createElement(v3.FitImageButton, {
            LayoutOrder = l_layoutOrder_0,
            Size = UDim2.new(0, 0, 1, 0),
            BackgroundTransparency = v15,
            BackgroundColor3 = l_Color_0,
            BorderSizePixel = 0,
            [v2.Event.Activated] = v7.props.handleClick
        }, {
            UICorner = v2.createElement("UICorner", {
                CornerRadius = UDim.new(0, 1000)
            }),
            Padding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 6),
                PaddingTop = UDim.new(0, 6),
                PaddingRight = UDim.new(0, 6),
                PaddingBottom = UDim.new(0, 6)
            }),
            Layout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = UDim.new(0, 4)
            }),
            Image = not not v7.props.image and v2.createElement(v5, {
                Size = UDim2.new(0, v16, 0, v16),
                Position = UDim2.new(0.5, 0, 0.5, 0),
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1,
                Image = v7.props.image,
                ImageColor3 = v12,
                ImageTransparency = v13,
                LayoutOrder = 2,
                BorderSizePixel = 0
            }) or nil,
            Label = v2.createElement(v4, {
                Text = l_text_0,
                LayoutOrder = 3,
                Size = UDim2.new(0, 0, 1, 0),
                BackgroundTransparency = 1,
                TextSize = v16,
                Font = v11.Font.Header2.Font,
                TextColor3 = v12,
                TextTransparency = v13,
                TextWrapped = true,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                fitAxis = v3.FitAxis.Both,
                BorderSizePixel = 0
            })
        });
    end);
end;
return v6;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local l_CorePackages_0 = game:GetService("CorePackages");
local v3 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppUseWithLocalization);
local v4 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
return function(v5, v6, v7, v8, v9, v10)
    v4.isNotNil(v7, "keyword");
    local v11 = v1.user.search({
        keyword = v7
    });
    v5.reportTouchSearchInsteadForPlayerNamed(v7);
    v8(v11, not not v3() and v10 or v9:Format(v10), v6);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(game:GetService("CorePackages").RoactRodux);
local v2 = require(l_Modules_0.LuaApp.Enum.SearchRetrievalStatus);
local v3 = require(l_Modules_0.LuaApp.Actions.RemoveSearchInGames);
local v4 = require(l_Modules_0.LuaApp.Actions.SetSearchInGamesStatus);
local v5 = require(l_Modules_0.LuaApp.Thunks.Search.ApiFetchGameSearchResults);
local v6 = require(l_Modules_0.LuaApp.Components.Search.GamesSearchPage);
local function _(v7, v8)
    local v9 = v7.RequestsStatus.SearchesInGamesStatus[v8.searchUuid];
    if v9 == nil then
        v9 = v2.NotStarted;
    end;
    return v9;
end;
return (v1.connect(function(v11, v12)
    local v13 = {
        searchInGames = v11.Search.SearchesInGames[v12.searchUuid]
    };
    local v14 = v11.RequestsStatus.SearchesInGamesStatus[v12.searchUuid];
    if v14 == nil then
        v14 = v2.NotStarted;
    end;
    v13.searchInGamesStatus = v14;
    v13.screenSize = v11.ScreenSize;
    return v13;
end, function(v15)
    return {
        dispatchSearch = function(v16, v17, v18)
            return v15(v5(v16, {
                searchKeyword = v17,
                searchUuid = v18,
                isAppend = false
            }));
        end,
        dispatchRemoveSearch = function(v19)
            v15(v3(v19));
            v15(v4(v19, v2.Removed));
        end
    };
end)(v6));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.Roact);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v6 = require(l_Modules_0.LuaApp.Constants);
local v7 = require(l_Modules_0.LuaApp.Enum.SearchRetrievalStatus);
local l_EmptyState_0 = v2.App.Indicator.EmptyState;
local l_LoadingStateContainer_0 = v2.App.Container.LoadingStateContainer;
local l_RetrievalStatus_0 = v2.App.Loading.Enum.RetrievalStatus;
local v11 = require(l_Modules_0.LuaApp.Components.Search.GamesSearchOmniFeed);
local v12 = require(l_Modules_0.LuaApp.Promise);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v14 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_FFlagOmniSearchAutoTabIXP_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagOmniSearchAutoTabIXP;
local v16 = v4.PureComponent:extend("GamesSearchPage");
v16.validateProps = v3.interface({
    searchUuid = v3.string,
    searchParameters = v3.table,
    onScrollDirectionChanged = v3.optional(v3.callback),
    isRoutedFromAutoSearch = if not l_FFlagOmniSearchAutoTabIXP_0 then nil else v3.optional(v3.boolean),
    searchInGames = v3.optional(v3.table),
    searchInGamesStatus = v3.string,
    screenSize = v3.Vector2,
    dispatchSearch = v3.callback,
    dispatchRemoveSearch = v3.callback,
    networking = v3.callback
});
v16.init = function(v17)
    v17.isMounted = false;
    local l_screenSize_0 = v17.props.screenSize;
    v17:setState({
        loaded = false,
        contentSize = Vector2.new(l_screenSize_0.X - 2 * v6.GetPageSideMargin(l_screenSize_0.X), l_screenSize_0.Y),
        frameSize = l_screenSize_0
    });
    v17.dispatchInitialSearch = function()
        if not l_FFlagOmniSearchAutoTabIXP_0 or not v17.props.isRoutedFromAutoSearch then
            return v17.props.dispatchSearch(v17.props.networking, v17.props.searchParameters.searchKeyword, v17.props.searchUuid);
        else
            return v12.resolve();
        end;
    end;
end;
v16.renderOnLoaded = function(v19)
    local l_searchInGames_0 = v19.props.searchInGames;
    local v21 = l_searchInGames_0 and l_searchInGames_0.entries;
    local v22 = v6.GetPageSideMargin(v19.state.frameSize.X);
    if not (l_searchInGames_0 ~= nil and v21 ~= nil) or #v21 == 0 then
        return l_withLocalization_0({
            noResultsText = "Feature.GamePage.LabelNoSearchResults"
        })(function(v23)
            return v4.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 1, 0)
            }, {
                Padding = v4.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, v6.GAME_GRID_PADDING),
                    PaddingLeft = UDim.new(0, v22),
                    PaddingRight = UDim.new(0, v22)
                }),
                NoResultsView = v4.createElement(l_EmptyState_0, {
                    text = v23.noResultsText
                })
            });
        end);
    else
        return v4.createElement(v11, {
            searchUuid = v19.props.searchUuid,
            createEndOfScrollElement = not l_searchInGames_0.hasMoreRows,
            onScrollDirectionChanged = v19.props.onScrollDirectionChanged
        });
    end;
end;
v16.renderOnFailed = function(v24, v25)
    return v4.createElement(l_EmptyState_0, {
        onActivated = v24.dispatchInitialSearch,
        text = v25.failedMessage
    });
end;
v16.render = function(v26)
    local l_searchInGamesStatus_0 = v26.props.searchInGamesStatus;
    if l_searchInGamesStatus_0 == v7.Removed then
        l_searchInGamesStatus_0 = v7.NotStarted;
    end;
    return l_withLocalization_0({
        failedMessage = "Feature.EmptyStatePage.Message.NoInternet"
    })(function(v28)
        return v4.createElement(l_LoadingStateContainer_0, {
            dataStatus = l_RetrievalStatus_0.fromRawValue(l_searchInGamesStatus_0),
            renderOnLoading = not not v26.state.loaded and function()
                return v26:renderOnLoaded();
            end or nil,
            renderOnFailed = function()
                return v26:renderOnFailed(v28);
            end,
            renderOnLoaded = function()
                return v26:renderOnLoaded();
            end
        });
    end);
end;
v16.didMount = function(v29)
    v29.isMounted = true;
    v29.dispatchInitialSearch();
end;
v16.willUnmount = function(v30)
    v30.isMounted = false;
    v30.props.dispatchRemoveSearch(v30.props.searchUuid);
end;
v16.didUpdate = function(v31, v32)
    local l_searchInGamesStatus_1 = v31.props.searchInGamesStatus;
    if l_searchInGamesStatus_1 ~= v32.searchInGamesStatus then
        if l_searchInGamesStatus_1 == v7.Done then
            if v31.state.loaded == false then
                v31:setState({
                    loaded = true
                });
                return ;
            end;
        elseif (not (l_searchInGamesStatus_1 ~= v7.NotStarted) or l_searchInGamesStatus_1 == v7.Failed) and v31.state.loaded == true then
            v31:setState({
                loaded = false
            });
        end;
    end;
end;
return l_RoactServices_0.connect({
    networking = v14
})(v16);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_withStyle_0 = require(game:GetService("CorePackages").UIBlox).Style.withStyle;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.LuaApp.Components.FitTextButton);
local v4 = require(l_Modules_0.LuaApp.FitChildren);
local v5 = require(l_Modules_0.LuaApp.Components.LocalizedFitTextLabel);
local v6 = require(l_Modules_0.LuaApp.Components.Search.DoPlayerSearch);
local v7 = v2.PureComponent:extend("GamesSearchForPlayers");
v7.init = function(v8)
    v8.onPlayerSearchButtonActivated = function()
        v6(v8.props.analytics, v8.props.guiService, v8.props.keyword, v8.props.openWebview, v8.props.localization, "CommonUI.Features.Label.Players");
    end;
end;
v7.render = function(v9)
    local l_keyword_0 = v9.props.keyword;
    local l_layoutOrder_0 = v9.props.layoutOrder;
    return l_withStyle_0(function(v12)
        return v2.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, 18),
            LayoutOrder = l_layoutOrder_0
        }, {
            Layout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 2)
            }),
            PlayerSearchTitleText = v2.createElement(v5, {
                Text = "Feature.GamePage.LabelSearchInsteadForPlayersNamed",
                LayoutOrder = 1,
                Size = UDim2.new(0, 0, 1, 0),
                BackgroundTransparency = 1,
                TextSize = v12.Font.Body.RelativeSize * v12.Font.BaseSize,
                Font = v12.Font.Body.Font,
                TextColor3 = v12.Theme.TextDefault.Color,
                TextTransparency = v12.Theme.TextDefault.Transparency,
                TextWrapped = true,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                fitAxis = v4.FitAxis.Width
            }),
            PlayerSearchKeyword = v2.createElement(v3, {
                Text = l_keyword_0,
                LayoutOrder = 2,
                Size = UDim2.new(0, 0, 1, 0),
                BackgroundTransparency = 1,
                TextSize = v12.Font.Body.RelativeSize * v12.Font.BaseSize,
                Font = v12.Font.Body.Font,
                TextColor3 = v12.Theme.TextEmphasis.Color,
                TextTransparency = v12.Theme.TextEmphasis.Transparency,
                TextWrapped = true,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                fitAxis = v4.FitAxis.Width,
                [v2.Event.Activated] = v9.onPlayerSearchButtonActivated
            }, {
                Underline = v2.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 1),
                    Position = UDim2.new(0, 0, 1, -1),
                    BackgroundColor3 = v12.Theme.TextEmphasis.Color,
                    BackgroundTransparency = v12.Theme.TextEmphasis.Transparency
                })
            })
        });
    end);
end;
return v7;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Packages.React);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local v5 = require(l_Modules_0.LuaApp.Constants);
local v6 = require(l_Modules_0.LuaApp.SearchUuid);
local v7 = require(l_Modules_0.LuaApp.Actions.SetSearchParameters);
local v8 = require(script.Parent.TenFootUiSearchTypeSelector);
local v9 = require(script.Parent.TenFootUiSearchBar);
local v10 = require(script.Parent.TenFootUiSearchExperiencesGrid);
local v11 = require(script.Parent.TenFootUiSearchPlayersGrid);
local l_FocusNavigationEventNameEnum_0 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils).FocusNavigationEventNameEnum;
local v13 = require(l_CorePackages_0.Packages.ReactFocusNavigation);
local v14 = require(l_CorePackages_0.Packages.InputHandlers);
local l_useNavigationProps_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppNavigation).useNavigationProps;
local v16 = game:DefineFastFlag("ConsolesSearchAutoKeyboard", false);
return function(_)
    local v18 = l_useDispatch_0();
    local v19 = l_useDesignTokens_0();
    local v20, v21 = v2.useState("");
    local v25, v26 = v2.useState((l_useNavigationProps_0(function(_, _, v24)
        return v24.getParam("defaultSearchType", v5.SearchTypes.Games);
    end)));
    local v27, v28 = v2.useState(v6());
    local v31 = v13.useEventHandlerMap(v2.useMemo(function()
        return {
            [l_FocusNavigationEventNameEnum_0.TabBackward] = {
                handler = v14.onRelease(function(_)
                    if v25 ~= v5.SearchTypes.Games then
                        v26(v5.SearchTypes.Games);
                    end;
                end)
            },
            [l_FocusNavigationEventNameEnum_0.TabForward] = {
                handler = v14.onRelease(function(_)
                    if v25 ~= v5.SearchTypes.Players then
                        v26(v5.SearchTypes.Players);
                    end;
                end)
            }
        };
    end, {
        v25,
        v26
    }), (v13.useEventMap(v2.useMemo(function()
        return {
            [Enum.KeyCode.ButtonR1] = l_FocusNavigationEventNameEnum_0.TabForward,
            [Enum.KeyCode.ButtonL1] = l_FocusNavigationEventNameEnum_0.TabBackward
        };
    end, {}), (v2.useRef(nil)))));
    v2.useEffect(function()
        v18(v7(v27, {
            isKeywordSuggestionEnabled = false,
            searchKeyword = v20
        }));
    end, {
        v20,
        v27
    });
    local function v33(v32)
        if v25 ~= v5.SearchTypes.Games and v25 ~= v5.SearchTypes.Players then
            warn("Invalid search type: " .. tostring(v32));
        end;
        if v32 == v25 then
            return ;
        else
            v26(v32);
            return ;
        end;
    end;
    local v34 = nil;
    if v16 then
        v34 = v2.createRef();
        v2.useEffect(function()
            if v34.current then
                v34.current:CaptureFocus();
            end;
        end, {});
    end;
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        ZIndex = 2,
        ref = v31,
        BackgroundTransparency = v19.Semantic.Color.Common.Overlay.Transparency,
        BackgroundColor3 = v19.Semantic.Color.Common.Overlay.Color3,
        BorderSizePixel = 0
    }, {
        Layout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        Padding = v2.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v19.LuaApps.Search.SearchPaddingVertical),
            PaddingRight = UDim.new(0, v19.LuaApps.Search.SearchPaddingVertical),
            PaddingTop = UDim.new(0, v19.LuaApps.Search.SearchPaddingVertical)
        }),
        SearchBox = v2.createElement(v9, {
            layoutOrder = 1,
            textBoxRef = v34,
            onFocused = function()
            end,
            onSubmitSearch = function(v35)
                if v35.Text ~= v20 then
                    v28(v6());
                    v21(v35.Text);
                end;
            end
        }),
        SearchTypeSelector = v2.createElement(v8, {
            layoutOrder = 2,
            onSearchTypeSelected = v33,
            searchType = v25
        }),
        ExperiencesGrid = v2.createElement(v10, {
            layoutOrder = 3,
            searchType = v25,
            searchUuid = v27,
            searchKeyword = v20
        }),
        PlayersGrid = v2.createElement(v11, {
            layoutOrder = 4,
            searchType = v25,
            searchKeyword = v20
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.LuaApp.Util.debounce);
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_CorePackages_0.Cryo);
local l_CursorKind_0 = v4.App.SelectionImage.CursorKind;
local l_useSelectionCursor_0 = v4.App.SelectionImage.useSelectionCursor;
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local v9 = require(l_Modules_0.LuaApp.Hooks.useLocalization);
local l_mapTypographyVariantToFontEnum_0 = require(l_CorePackages_0.Workspace.Packages.Style).mapTypographyVariantToFontEnum;
local l_Images_0 = v4.App.ImageSet.Images;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
return function(v13)
    local v15 = l_useDesignTokens_0(function(v14)
        return {
            textStyles = {
                Font = l_mapTypographyVariantToFontEnum_0(v14.Semantic.Typography.Body),
                TextSize = v14.Global.FontSize_200,
                TextColor3 = v14.Semantic.Color.Text.Emphasis.Color3,
                TextTransparency = v14.Semantic.Color.Text.Emphasis.Transparency
            },
            Search = v14.LuaApps.Search,
            cornerRadius = v14.Semantic.Radius.Small,
            leftPadding = v14.Global.Space_200,
            backgroundColor = v14.Semantic.Color.Background.Default.Color3,
            placeholderColor = v14.Semantic.Color.Text.Default.Color3,
            iconColor = v14.Semantic.Color.Icon.Default.Color3,
            iconTransparency = v14.Semantic.Color.Icon.Default.Transparency
        };
    end);
    local v16 = v13.placeholderText or v9({
        searchPlaceholder = "CommonUI.Controls.Action.Search"
    }).searchPlaceholder;
    local v17 = l_useSelectionCursor_0(l_CursorKind_0.RoundedRectNoInset);
    local l_onSubmitSearch_0 = v13.onSubmitSearch;
    return v3.createElement("Frame", {
        Size = UDim2.new(v15.Search.SearchHeadingScale, 0, 0, v15.Search.SearchBoxHeight),
        Position = UDim2.fromScale(1 - v15.Search.SearchHeadingScale, 0),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        LayoutOrder = v13.layoutOrder
    }, {
        SearchBox = v3.createElement("TextBox", v5.Dictionary.join(v15.textStyles, {
            ClearTextOnFocus = false,
            Position = UDim2.new(0, 0, 0, 0),
            PlaceholderText = v16,
            Size = UDim2.new(1, 0, 0, v15.Search.SearchBoxHeight),
            Text = "",
            BackgroundColor3 = v15.backgroundColor,
            PlaceholderColor3 = v15.placeholderColor,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            SelectionImageObject = v17,
            [v3.Event.Focused] = v13.onFocused,
            [v3.Event.FocusLost] = l_onSubmitSearch_0,
            [v3.Change.Text] = v2(function(v19)
                l_onSubmitSearch_0(v19);
            end, 0.25),
            ref = v13.textBoxRef
        }), {
            SearchIcon = v3.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                AnchorPoint = Vector2.new(0, 0.5),
                ImageColor3 = v15.iconColor,
                ImageTransparency = v15.iconTransparency,
                Position = UDim2.new(0, -v15.Search.SearchBoxIconSize - v15.leftPadding, 0.5, 0),
                Size = UDim2.fromOffset(v15.Search.SearchBoxIconSize, v15.Search.SearchBoxIconSize),
                Image = l_Images_0["icons/common/search"]
            }),
            UICorner = v3.createElement("UICorner", {
                CornerRadius = UDim.new(0, v15.cornerRadius)
            }),
            UIPadding = v3.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, v15.Search.SearchBoxIconPaddingVertical),
                PaddingLeft = UDim.new(0, v15.Search.SearchBoxIconPaddingLeft + v15.leftPadding),
                PaddingRight = UDim.new(0, v15.Search.SearchBoxIconPaddingRight),
                PaddingTop = UDim.new(0, v15.Search.SearchBoxIconPaddingVertical)
            })
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.UIBlox);
local l_Signal_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Signal;
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_EmptyState_0 = v3.App.Indicator.EmptyState;
local l_LoadingStateContainer_0 = v3.App.Container.LoadingStateContainer;
local l_RetrievalStatus_0 = v3.App.Loading.Enum.RetrievalStatus;
local l_LoadingSpinner_0 = v3.App.Loading.LoadingSpinner;
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v12 = require(l_Modules_0.LuaApp.Hooks.useLocalization);
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local v14 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v15 = require(l_Modules_0.LuaApp.Thunks.Search.ApiFetchGameSearchResults);
local v16 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_RoactAnalyticsCommonGameEvents_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).RoactAnalyticsCommonGameEvents;
local v18 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v19 = require(l_Modules_0.LuaApp.Components.RefreshScrollingFrameWithLoadMore);
local v20 = require(l_Modules_0.LuaApp.Thunks.ConfirmSearch);
local v21 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local v22 = require(l_Modules_0.LuaApp.Enum.SearchRetrievalStatus);
local v23 = require(l_Modules_0.LuaApp.Thunks.FetchDataWithErrorToasts);
local v24 = require(l_Modules_0.LuaApp.Components.Games.GameGridTable);
local v25 = require(l_Modules_0.LuaApp.AppPage);
local v26 = require(l_Modules_0.LuaApp.Constants);
local l_AppSessionService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppSessionService;
local v28 = require(l_Modules_0.Personalization.Games.GameSortImpressionsDetector);
local v29 = require(l_Modules_0.Personalization.Games.SendGameImpressions);
local l_GetFFlagTenFootUiSearchLoadMore_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagTenFootUiSearchLoadMore;
local l_GetFFlagTenFootUiExperiencesOmniLogFix_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagTenFootUiExperiencesOmniLogFix;
local l_FFlagCleanPlayerSearchProp_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagCleanPlayerSearchProp;
local v33 = l_GetFFlagTenFootUiSearchLoadMore_0();
local function v35(v34)
    return v34.ScreenSize;
end;
return function(v36)
    local v37 = v2.useRef(nil);
    local l_searchKeyword_0 = v36.searchKeyword;
    local l_layoutOrder_0 = v36.layoutOrder;
    local l_searchType_0 = v36.searchType;
    local l_searchUuid_0 = v36.searchUuid;
    local v42 = v2.useMemo(function()
        return l_Signal_0.new();
    end, {});
    local function v45(v43)
        local v44 = v43.RequestsStatus.SearchesInGamesStatus[l_searchUuid_0];
        if v44 == nil then
            v44 = v22.NotStarted;
        end;
        return v44;
    end;
    local v46 = l_useSelector_0(v35);
    local v48 = l_useSelector_0(function(v47)
        return v47.Search.SearchesInGames[l_searchUuid_0] or {
            entries = {},
            suggestedKeyword = nil,
            filteredKeyword = nil,
            correctedKeyword = nil,
            hasMoreRows = nil,
            emphasis = nil,
            algorithm = nil,
            suggestionAlgorithm = nil
        };
    end);
    local v49 = l_useSelector_0(v45);
    local v50, v51 = v2.useState(v46);
    local v52, v53 = v2.useState(v50.X);
    local v54 = nil;
    local v55 = nil;
    if v33 then
        local v56, v57 = v2.useState(false);
        v54 = v56;
        v55 = v57;
    end;
    local l_entries_0 = v48.entries;
    local v59 = "SearchPage" .. tostring(l_searchUuid_0);
    if v33 then
        v2.useEffect(function()
            if v49 == v22.Done then
                v55(true);
                return ;
            else
                if not (not (v49 == v22.NotStarted) or not v54) then
                    v55(false);
                end;
                return ;
            end;
        end, {
            v49
        });
    end;
    local v60 = l_useDispatch_0();
    local v61 = l_useDesignTokens_0();
    local v62 = v14(v16);
    local v63 = v14(v21);
    local v64 = v14(l_RoactAnalyticsCommonGameEvents_0);
    local v65 = v14(l_AppSessionService_0);
    local v66 = v14(v18);
    local v67 = l_useNavigation_0();
    local function v69(v68)
        v53(v68.AbsoluteSize.X);
    end;
    local v71 = v2.useCallback(function(v70)
        if v70 then
            v51(v70.AbsoluteSize);
        end;
    end, {});
    local v72 = v2.useCallback(function()
        return v60(v23(v15(v62, {
            searchKeyword = l_searchKeyword_0,
            searchUuid = l_searchUuid_0,
            isAppend = true
        })));
    end, {
        v60,
        v62,
        l_searchKeyword_0,
        l_searchUuid_0
    });
    local v73 = v12({
        failedMessage = "Feature.EmptyStatePage.Message.NoInternet",
        games = "CommonUI.Features.Label.Game",
        noResultsText = "Feature.GamePage.LabelNoSearchResults",
        players = "CommonUI.Features.Label.Players"
    });
    v2.useEffect(function()
        if l_searchKeyword_0 == "" then
            return ;
        else
            assert(v67, "Expected navigation, found none");
            assert(v63, "Expected eventIngest, found none");
            assert(v65, "Expected sessionService, found none");
            v60(v20(l_searchKeyword_0, {
                isAutocompleteSuggestion = false,
                allAutocompleteSuggestions = false,
                searchType = v26.SearchTypes.Games,
                playerSearch = if not l_FFlagCleanPlayerSearchProp_0 then l_GetFFlagTenFootUiExperiencesOmniLogFix_0() and true or false else nil,
                isAvatarAutocompleteEnabled = false,
                pageOwner = v67.state.routeName,
                sessionService = v65,
                eventIngest = v63
            }));
            v60(v15(v62, {
                searchKeyword = l_searchKeyword_0,
                searchUuid = l_searchUuid_0,
                isAppend = false
            }));
            return ;
        end;
    end, {
        l_searchKeyword_0,
        l_searchUuid_0,
        v60,
        v63,
        v65,
        v62
    });
    local l_SearchBoxAndTypeOffset_0 = v61.LuaApps.Search.SearchBoxAndTypeOffset;
    local function v78(v75)
        local v76 = v48.entries or {};
        local v77 = v76[v75];
        if v77 ~= nil then
            v64.reportOpenGameDetailFromSearch(v77.placeId, v75, #v76, v77.isSponsored, v77.universeId, v25.SearchPage, nil, nil);
        end;
    end;
    if not v33 and l_searchType_0 ~= v26.SearchTypes.Games then
        return v2.createElement(v2.Fragment, nil, {});
    else
        local function v80(v79)
            v29.sendFromSearch(v63, v66, v79, v48.entries, v25.SearchPage, {
                searchUuid = l_searchUuid_0,
                emphasisFlag = not v48.emphasis and 0 or 1,
                seeAllFlag = 1
            });
        end;
        local v81;
        if not v33 then
            v81 = false;
            if v48 ~= nil then
                v81 = not v48.hasMoreRows;
                if v81 then
                    v81 = true;
                    if v48.entries ~= nil then
                        v81 = #v48.entries == 0;
                    end;
                end;
            end;
        else
            v81 = false;
            if l_searchType_0 == v26.SearchTypes.Games then
                v81 = false;
                if v48 ~= nil then
                    v81 = not v48.hasMoreRows;
                    if v81 then
                        v81 = true;
                        if v48.entries ~= nil then
                            v81 = #v48.entries == 0;
                        end;
                    end;
                end;
            end;
        end;
        local v82 = if not v33 then nil else v2.useCallback(function()
            if not v81 then
                return v2.createElement("Frame", {
                    Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
                    Position = UDim2.new(0, 0, 0, 0),
                    LayoutOrder = l_layoutOrder_0,
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    [v2.Change.AbsoluteSize] = v69
                }, {
                    CanvasGroupMask = v2.createElement("CanvasGroup", {
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 1, 0)
                    }, {
                        ScrollingFrame = v2.createElement(v19, {
                            Size = UDim2.new(1, 0, 1, 0),
                            Position = UDim2.new(0, 0, 0, 0),
                            CanvasSize = UDim2.new(1, 0, 1, 0),
                            BackgroundTransparency = 1,
                            ref = v37,
                            onAbsoluteSizeChangedCallback = v71,
                            onCanvasPositionChangedCallback = function()
                                v42:fire();
                            end,
                            onLoadMore = not not v48.hasMoreRows and v72 or nil
                        }, {
                            Layout = v2.createElement("UIListLayout", {
                                FillDirection = Enum.FillDirection.Vertical,
                                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                                SortOrder = Enum.SortOrder.LayoutOrder,
                                Padding = UDim.new(0, v61.Global.Space_100)
                            }),
                            Padding = v2.createElement("UIPadding", {
                                PaddingLeft = UDim.new(0, 0),
                                PaddingRight = UDim.new(0, 0),
                                PaddingTop = UDim.new(0, v26.GAME_GRID_PADDING),
                                PaddingBottom = UDim.new(0, v26.GAME_GRID_PADDING)
                            }),
                            GameGridWrapper = v2.createElement("Frame", {
                                Size = UDim2.new(1, 0, 0, 0),
                                AutomaticSize = Enum.AutomaticSize.Y,
                                BackgroundTransparency = 1
                            }, {
                                Layout = v2.createElement("UIListLayout", {
                                    HorizontalAlignment = Enum.HorizontalAlignment.Center
                                }),
                                GameGridTable = v2.createElement(v24, {
                                    searchResultGrid = true,
                                    entries = l_entries_0,
                                    screenSize = v46,
                                    windowSize = Vector2.new(v52, v50.Y),
                                    gameEmphasis = false,
                                    source = "SearchResults",
                                    hideGameStats = true,
                                    useHoverTile = false,
                                    reportGameDetailOpened = v78,
                                    horizontalAlignment = Enum.HorizontalAlignment.Left,
                                    impressionsTag = v59,
                                    launchExperienceEventContext = v26.AnalyticsContext.SearchExperienceTile
                                }),
                                GameSortImpressionsDetector = v2.createElement(v28, {
                                    parentRef = v37,
                                    pageContext = v25.SearchPage,
                                    impressionsTag = v59,
                                    scrollViewPositionChangedSignal = v42,
                                    sendGameImpressions = v80
                                })
                            })
                        })
                    })
                });
            else
                return v2.createElement("Frame", {
                    Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
                    Position = UDim2.new(0, 0, 0, l_SearchBoxAndTypeOffset_0),
                    LayoutOrder = l_layoutOrder_0,
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0
                }, {
                    NoResultsView = v2.createElement(l_EmptyState_0, {
                        text = v73.noResultsText,
                        maxSizeTextLabel = Vector2.new(v46.X - v61.Global.Size_500, v46.Y)
                    })
                });
            end;
        end, {
            l_SearchBoxAndTypeOffset_0,
            l_layoutOrder_0,
            v61,
            v73,
            v69,
            v48,
            v81,
            v71,
            v42,
            l_entries_0,
            v72,
            v46,
            v50,
            v52,
            v78,
            v59,
            v80
        });
        local v83 = if not v33 then nil else v2.useCallback(function()
            if v54 and v82 ~= nil then
                return v82();
            else
                return v2.createElement("Frame", {
                    Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
                    Position = UDim2.new(0, 0, 0, 0),
                    LayoutOrder = l_layoutOrder_0,
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0
                }, {
                    LoadingSpinner = v2.createElement(l_LoadingSpinner_0, {
                        size = UDim2.fromOffset(v61.Global.Size_350, v61.Global.Size_350),
                        position = UDim2.fromScale(0.5, 0.5),
                        anchorPoint = Vector2.new(0.5, 0.5)
                    })
                });
            end;
        end, {
            v54,
            v61,
            v82,
            l_SearchBoxAndTypeOffset_0,
            l_layoutOrder_0
        });
        local v84 = if not v33 then nil else v2.useCallback(function()
            return v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
                Position = UDim2.new(0, 0, 0, l_SearchBoxAndTypeOffset_0),
                LayoutOrder = l_layoutOrder_0,
                BackgroundTransparency = 1,
                BorderSizePixel = 0
            }, {
                NoResultsView = v2.createElement(l_EmptyState_0, {
                    text = v73.failedMessage,
                    maxSizeTextLabel = Vector2.new(v46.X - v61.Global.Size_500, v46.Y)
                })
            });
        end, {
            l_SearchBoxAndTypeOffset_0,
            l_layoutOrder_0,
            v46,
            v61,
            v73.failedMessage
        });
        local v85 = if not v33 then nil else v2.useCallback(function()
            v42:fire();
        end, {
            v42
        });
        if v33 and l_searchType_0 ~= v26.SearchTypes.Games then
            return v2.createElement(v2.Fragment, nil, {});
        else
            return if not v33 then v2.createElement(l_LoadingStateContainer_0, {
                dataStatus = l_RetrievalStatus_0.fromRawValue(v49),
                renderOnEmpty = function()
                    return nil;
                end,
                renderOnFailed = function()
                    return v2.createElement("Frame", {
                        Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
                        Position = UDim2.new(0, 0, 0, l_SearchBoxAndTypeOffset_0),
                        LayoutOrder = l_layoutOrder_0,
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0
                    }, {
                        NoResultsView = v2.createElement(l_EmptyState_0, {
                            text = v73.failedMessage,
                            maxSizeTextLabel = Vector2.new(v46.X - v61.Global.Size_500, v46.Y)
                        })
                    });
                end,
                renderOnLoading = function()
                    return v2.createElement("Frame", {
                        Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
                        Position = UDim2.new(0, 0, 0, 0),
                        LayoutOrder = l_layoutOrder_0,
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0
                    }, {
                        LoadingSpinner = v2.createElement(l_LoadingSpinner_0, {
                            size = UDim2.fromOffset(v61.Global.Size_350, v61.Global.Size_350),
                            position = UDim2.fromScale(0.5, 0.5),
                            anchorPoint = Vector2.new(0.5, 0.5)
                        })
                    });
                end,
                renderOnLoaded = function()
                    if not v81 then
                        return v2.createElement("Frame", {
                            Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
                            Position = UDim2.new(0, 0, 0, 0),
                            LayoutOrder = l_layoutOrder_0,
                            BackgroundTransparency = 1,
                            BorderSizePixel = 0,
                            [v2.Change.AbsoluteSize] = v69
                        }, {
                            CanvasGroupMask = v2.createElement("CanvasGroup", {
                                BackgroundTransparency = 1,
                                Size = UDim2.new(1, 0, 1, 0)
                            }, {
                                ScrollingFrame = v2.createElement(v19, {
                                    Size = UDim2.new(1, 0, 1, 0),
                                    Position = UDim2.new(0, 0, 0, 0),
                                    CanvasSize = UDim2.new(1, 0, 1, 0),
                                    BackgroundTransparency = 1,
                                    ref = v37,
                                    onAbsoluteSizeChangedCallback = v71,
                                    onCanvasPositionChangedCallback = v85,
                                    onLoadMore = (not not v48.hasMoreRows and v72) and not v48.hasMoreRows or nil
                                }, {
                                    Layout = v2.createElement("UIListLayout", {
                                        FillDirection = Enum.FillDirection.Vertical,
                                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                                        SortOrder = Enum.SortOrder.LayoutOrder,
                                        Padding = UDim.new(0, v61.Global.Space_100)
                                    }),
                                    Padding = v2.createElement("UIPadding", {
                                        PaddingLeft = UDim.new(0, 0),
                                        PaddingRight = UDim.new(0, 0),
                                        PaddingTop = UDim.new(0, v26.GAME_GRID_PADDING),
                                        PaddingBottom = UDim.new(0, v26.GAME_GRID_PADDING)
                                    }),
                                    GameGridWrapper = v2.createElement("Frame", {
                                        Size = UDim2.new(1, 0, 0, 0),
                                        AutomaticSize = Enum.AutomaticSize.Y,
                                        BackgroundTransparency = 1
                                    }, {
                                        Layout = v2.createElement("UIListLayout", {
                                            HorizontalAlignment = Enum.HorizontalAlignment.Center
                                        }),
                                        GameGridTable = v2.createElement(v24, {
                                            searchResultGrid = true,
                                            entries = l_entries_0,
                                            screenSize = v46,
                                            windowSize = Vector2.new(v52, v50.Y),
                                            gameEmphasis = false,
                                            source = "SearchResults",
                                            hideGameStats = true,
                                            useHoverTile = false,
                                            reportGameDetailOpened = v78,
                                            horizontalAlignment = Enum.HorizontalAlignment.Left,
                                            impressionsTag = v59,
                                            launchExperienceEventContext = v26.AnalyticsContext.SearchExperienceTile
                                        }),
                                        GameSortImpressionsDetector = v2.createElement(v28, {
                                            parentRef = v37,
                                            pageContext = v25.SearchPage,
                                            impressionsTag = v59,
                                            scrollViewPositionChangedSignal = v42,
                                            sendGameImpressions = v80
                                        })
                                    })
                                })
                            })
                        });
                    else
                        return v2.createElement("Frame", {
                            Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
                            Position = UDim2.new(0, 0, 0, l_SearchBoxAndTypeOffset_0),
                            LayoutOrder = l_layoutOrder_0,
                            BackgroundTransparency = 1,
                            BorderSizePixel = 0
                        }, {
                            NoResultsView = v2.createElement(l_EmptyState_0, {
                                text = v73.noResultsText,
                                maxSizeTextLabel = Vector2.new(v46.X - v61.Global.Size_500, v46.Y)
                            })
                        });
                    end;
                end
            }) else v2.createElement(l_LoadingStateContainer_0, {
                dataStatus = l_RetrievalStatus_0.fromRawValue(v49),
                renderOnEmpty = function()
                    return nil;
                end,
                renderOnFailed = v84,
                renderOnLoading = v83,
                renderOnLoaded = v82
            });
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local v4 = require(l_Modules_0.LuaApp.Components.Players.PlayerSearch);
local v5 = require(l_Modules_0.LuaApp.Constants);
return function(v6)
    local l_searchKeyword_0 = v6.searchKeyword;
    local l_layoutOrder_0 = v6.layoutOrder;
    local l_searchType_0 = v6.searchType;
    local l_SearchBoxAndTypeOffset_0 = l_useDesignTokens_0().LuaApps.Search.SearchBoxAndTypeOffset;
    if l_searchType_0 ~= v5.SearchTypes.Players then
        return v2.createElement(v2.Fragment, nil, {});
    else
        return v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, -l_SearchBoxAndTypeOffset_0),
            LayoutOrder = l_layoutOrder_0,
            BackgroundTransparency = 1,
            BorderSizePixel = 0
        }, {
            ["PlayerSearch_" .. l_searchKeyword_0] = v2.createElement(v4, {
                enableRecommendationsSearchContext = false,
                backgroundTransparency = 1,
                enableNewEmptySearchUI = false,
                searchParameters = {
                    searchKeyword = l_searchKeyword_0,
                    isKeywordSuggestionEnabled = true
                }
            })
        });
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.UIBlox);
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local v5 = require(l_Modules_0.LuaApp.Constants);
local v6 = require(l_Modules_0.LuaApp.Hooks.useLocalization);
local l_IconTabGroup_0 = v3.App.Navigation.PrimaryNavBar.IconTabGroup;
local l_Images_0 = v3.App.ImageSet.Images;
return function(v9)
    local l_layoutOrder_0 = v9.layoutOrder;
    local l_searchType_0 = v9.searchType;
    local l_onSearchTypeSelected_0 = v9.onSearchTypeSelected;
    local v13 = l_useDesignTokens_0();
    local v14 = v6({
        games = "CommonUI.Features.Label.Game",
        players = "CommonUI.Features.Label.Players"
    });
    return v2.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.new(v13.LuaApps.Search.SearchHeadingScale, 0, 0, 0),
        Position = UDim2.fromScale(1 - v13.LuaApps.Search.SearchHeadingScale, 0),
        LayoutOrder = l_layoutOrder_0,
        AutomaticSize = Enum.AutomaticSize.Y
    }, {
        Padding = v2.createElement("UIPadding", {
            PaddingTop = UDim.new(0, v13.LuaApps.Search.SearchTypePaddingVertical),
            PaddingBottom = UDim.new(0, v13.LuaApps.Search.SearchTypePaddingVertical)
        }),
        SearchTypeSelector = v2.createElement(l_IconTabGroup_0, {
            items = {
                {
                    title = v14.games,
                    icon = l_Images_0["icons/common/play"],
                    onActivated = function()
                        l_onSearchTypeSelected_0(v5.SearchTypes.Games);
                    end,
                    showRoundedBackground = l_searchType_0 == v5.SearchTypes.Games
                },
                {
                    title = v14.players,
                    icon = l_Images_0["icons/menu/profile"],
                    onActivated = function()
                        l_onSearchTypeSelected_0(v5.SearchTypes.Players);
                    end,
                    showRoundedBackground = l_searchType_0 == v5.SearchTypes.Players
                }
            }
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.Otter);
local v6 = require(l_CorePackages_0.UIBlox);
local v7 = require(l_CorePackages_0.Cryo);
local l_withStyle_0 = v6.Style.withStyle;
local l_withSelectionCursorProvider_0 = v6.App.SelectionImage.withSelectionCursorProvider;
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_CursorKind_0 = v6.App.SelectionImage.CursorKind;
local l_Images_0 = v6.App.ImageSet.Images;
local l_ImageSetLabel_0 = v6.Core.ImageSet.ImageSetLabel;
local v14 = require(l_CorePackages_0.Roact);
local v15 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_Focusable_0 = v15.Focusable;
local v17 = require(l_CorePackages_0.RoactRodux);
local l_RetrievalStatus_0 = require(l_CorePackages_0.Workspace.Packages.Http).Enum.RetrievalStatus;
local v19 = require(l_Modules_0.LuaApp.Util.SearchUtil);
local v20 = require(l_Modules_0.LuaApp.Constants);
local v21 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v22 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetButton);
local v23 = require(l_Modules_0.LuaApp.Components.SearchBarListPicker);
local v24 = require(l_Modules_0.LuaApp.FitChildren);
local v25 = require(l_Modules_0.LuaApp.Thunks.FetchAutocompleteSuggestion);
local l_ApiFetchGameIcons_0 = require(l_CorePackages_0.Workspace.Packages.GameIconRodux).GameIcons.ApiFetchGameIcons;
local v27 = require(l_Modules_0.LuaApp.Actions.SetSearchBarFocused);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_AppSessionService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppSessionService;
local l_SessionType_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppSessionization).SessionType;
local l_ExternalEventConnection_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).ExternalEventConnection;
local v32 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v33 = require(l_Modules_0.LuaApp.Models.AutocompleteSuggestion);
local v34 = require(l_Modules_0.LuaApp.Analytics.Events.searchAutocomplete);
local v35 = require(l_Modules_0.LuaApp.Analytics.Events.searchAutocompleteEventNew);
local v36 = require(l_Modules_0.LuaApp.Analytics.Events.searchTextTrim);
local v37 = require(l_Modules_0.LuaApp.Analytics.Events.searchClear);
local v38 = require(l_Modules_0.LuaApp.Analytics.Events.searchSuggestionClicked);
local v39 = require(l_Modules_0.LuaApp.getCurrentPage);
local v40 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local v41 = require(l_Modules_0.LuaApp.Experiment.RoactAppExperiment);
local v42 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local l_GameIconReducer_0 = require(l_CorePackages_0.Workspace.Packages.GameIconRodux).GameIcons.GameIconReducer;
local v45 = require(l_Modules_0.LuaApp.Flags.GetFIntLuaAppAutocompleteDebounceMs);
local v46 = require(l_Modules_0.LuaApp.Flags.GetFIntLuaAppAutocompleteSearchTextMaxLen);
local v47 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppAutocompleteIXPConfig);
local v48 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppAutocompleteLatencyLogFix);
local v49 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAvatarAutocompleteEnabledForAll);
local v50 = require(l_Modules_0.LuaApp.Flags.FFlagOmniSearchUpdatePlaceholderTextIXP);
local l_FFlagOmniSearchAutoTabIXP_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagOmniSearchAutoTabIXP;
local v52 = v45() / 1000;
local v53 = {
    Image = "LuaApp/buttons/buttonFill",
    SliceCenter = Rect.new(8, 8, 9, 9)
};
local v54 = l_Images_0["icons/actions/edit/clear_small"];
local v55 = {
    [Enum.UserInputType.Keyboard] = true,
    [Enum.UserInputType.Gamepad1] = true,
    [Enum.UserInputType.Gamepad2] = true,
    [Enum.UserInputType.Gamepad3] = true,
    [Enum.UserInputType.Gamepad4] = true,
    [Enum.UserInputType.Gamepad5] = true,
    [Enum.UserInputType.Gamepad6] = true,
    [Enum.UserInputType.Gamepad7] = true,
    [Enum.UserInputType.Gamepad8] = true
};
local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
local v57 = true;
if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.XBox360 then
    v57 = l_l_UserInputService_0_Platform_0 == Enum.Platform.XBoxOne;
end;
local v58 = true;
if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.IOS then
    v58 = l_l_UserInputService_0_Platform_0 == Enum.Platform.Android;
end;
local v59 = l_l_UserInputService_0_Platform_0 == Enum.Platform.Android;
local v60 = v14.PureComponent:extend("SearchBar");
v60.validateProps = v4.strictInterface({
    Size = v4.optional(v4.UDim2),
    position = v4.optional(v4.UDim2),
    anchorPoint = v4.optional(v4.Vector2),
    cancelSearch = v4.optional(v4.callback),
    confirmSearch = v4.optional(v4.callback),
    onTextCleared = v4.optional(v4.callback),
    onFocused = v4.optional(v4.callback),
    placeholderText = v4.optional(v4.string),
    isCompactView = v4.optional(v4.boolean),
    modernUI = v4.optional(v4.boolean),
    initialSearchText = v4.optional(v4.string),
    autocomplete = v4.optional(v4.boolean),
    searchType = v4.optional(v4.string),
    isSearching = v4.optional(v4.boolean),
    searchBarPadding = v4.optional(v4.number),
    animated = v4.optional(v4.boolean),
    focusController = v4.optional(v4.table),
    forwardRef = v4.optional(v4.table),
    [v14.Ref] = v4.optional(v4.table),
    NextSelectionDown = v4.optional(v4.table),
    NextSelectionRight = v4.optional(v4.table),
    autocompleteIXPConfigTbl = v4.optional(v4.table),
    ixpDisableGamesAutocomplete = v4.optional(v4.boolean),
    forceShowCancelButton = v4.optional(v4.boolean),
    textSize = if not v50 then nil else v4.optional(v4.number),
    gameIcons = v4.optional(v4.table),
    autocompleteSuggestions = v4.optional(v4.table),
    avatarAutocompleteSuggestions = v4.optional(v4.table),
    currentPage = v4.string,
    getAutocompleteFetchingStatus = v4.callback,
    fetchAutocompleteSuggestion = v4.callback,
    fetchGameIcons = v4.callback,
    setSearchBarFocused = v4.callback,
    networking = v4.callback,
    eventIngest = v4.table,
    sessionService = v4.optional(v4.union(v4.Instance, v4.table))
});
v60.defaultProps = {
    Size = UDim2.new(1, 0, 1, 0),
    cancelSearch = nil,
    confirmSearch = nil,
    onTextCleared = nil,
    onFocused = nil,
    placeholderText = "",
    isCompactView = false,
    modernUI = false,
    initialSearchText = "",
    autocomplete = false,
    searchType = "None",
    isSearching = false,
    searchBarPadding = 24,
    animated = false,
    forceShowCancelButton = false,
    textSize = nil
};
v60.init = function(v61)
    local v62 = v61.props.initialSearchText or "";
    v61.state = {
        clearButtonVisible = v62 ~= "",
        autocompleteKeyword = "",
        lastInputType = Enum.UserInputType.None,
        listPickerShown = false
    };
    v61.searchBoxBackgroundRef = v14.createRef();
    v61.searchBoxRef = v14.createRef();
    v61.clearRef = v14.createRef();
    v61.cancelRef = v14.createRef();
    v61.listPickerRef = v14.createRef();
    v61.lastSearchBoxText = v62 or "";
    v61.lastAutocompleteUpdateTime = 0;
    v61.lastAutocompleteCached = false;
    v61.lastAutocompleteEventKeyword = "";
    v61.lastStoredListPickerItems = {};
    v61.requestAutocompleteSuggestion = function(v63)
        v61.props.fetchAutocompleteSuggestion(v61.props.networking, v63, v61.props.autocompleteIXPConfigTbl, v61.props.searchType);
    end;
    v61.requestRichSuggestionIcons = function(v64)
        local l_networking_0 = v61.props.networking;
        local l_fetchGameIcons_0 = v61.props.fetchGameIcons;
        local v67 = {};
        for v68 = 1, #v64.entries do
            local v69 = v64.entries[v68];
            if v69.type == v33.EntryType.Rich then
                table.insert(v67, v69.universeId);
            end;
        end;
        if #v67 > 0 then
            l_fetchGameIcons_0(l_networking_0, v67);
        end;
    end;
    v61.updateAutocomplete = function(v70)
        if v70 == v61.state.autocompleteKeyword then
            return ;
        elseif v46() < string.len(v70) then
            return ;
        else
            local v71 = v61.getCachedAutocompleteSuggestion(v70);
            local v72 = false;
            if v71 ~= nil then
                v72 = tick() < v71.expirationTime;
            end;
            v61.lastAutocompleteUpdateTime = tick();
            v61.lastAutocompleteCached = v72;
            v61:setState({
                autocompleteKeyword = v70
            });
            if v70 ~= "" and not v72 then
                local v73 = tick();
                spawn(function()
                    local l_v70_0 = v70;
                    local v75 = (v73 + v52) - tick();
                    if v75 > 0 then
                        wait(v75);
                    end;
                    if l_v70_0 == v61.state.autocompleteKeyword then
                        v61.requestAutocompleteSuggestion(l_v70_0);
                    end;
                end);
                return ;
            else
                if not (not v72 or not v71.preloadedCache) then
                    v61.requestRichSuggestionIcons(v71);
                end;
                return ;
            end;
        end;
    end;
    v61.doConfirmSearch = function(v76, v77, v78)
        if v61.isMounted then
            if v48() then
                v61.resetAutocompleteEvent();
            end;
            local l_current_0 = v61.searchBoxRef.current;
            if not (not l_current_0 or not l_current_0:IsFocused()) then
                l_current_0:ReleaseFocus();
            end;
            local l_initialSearchText_0 = v61.props.initialSearchText;
            if l_initialSearchText_0 == v76 then
                return ;
            else
                local l_confirmSearch_0 = v61.props.confirmSearch;
                if l_confirmSearch_0 then
                    if not v49() then
                        if not l_FFlagOmniSearchAutoTabIXP_0 then
                            l_confirmSearch_0(v76);
                        else
                            l_confirmSearch_0(v76, v77);
                        end;
                    else
                        l_confirmSearch_0(v76, v77, v78);
                    end;
                end;
                if v61.searchBoxRef.current then
                    v61.searchBoxRef.current.Text = l_initialSearchText_0;
                end;
                return ;
            end;
        else
            return ;
        end;
    end;
    v61.doCancelSearch = function()
        if v61.isMounted then
            if v48() then
                v61.resetAutocompleteEvent();
            end;
            local l_current_1 = v61.searchBoxRef.current;
            if not (not l_current_1 or not l_current_1:IsFocused()) then
                l_current_1:ReleaseFocus();
            end;
            local l_cancelSearch_0 = v61.props.cancelSearch;
            if l_cancelSearch_0 then
                l_cancelSearch_0();
            end;
            if v61.searchBoxRef.current then
                v61.searchBoxRef.current.Text = v61.props.initialSearchText;
            end;
            return ;
        else
            return ;
        end;
    end;
    v61.onFocused = function()
        if v61.isMounted then
            v61.props.setSearchBarFocused(true);
            if v61.props.onFocused then
                v61.props.onFocused();
            end;
            return ;
        else
            return ;
        end;
    end;
    v61.onFocusLost = function(v84, v85, v86)
        if v61.isMounted then
            v61.props.setSearchBarFocused(false);
            if (not (v86 == nil) or not v59 and not v57) or l_IsVRAppBuild_0() then
                if not (not v85 or v58 and not l_RunService_0:IsStudio()) then
                    v61.doConfirmSearch(v84.Text);
                end;
                return ;
            else
                v61.doCancelSearch();
                return ;
            end;
        else
            return ;
        end;
    end;
    v61.onReturnPressedFromOnScreenKeyboard = function(v87)
        v61.doConfirmSearch(v87.Text);
    end;
    v61.onCancelButtonActivated = function()
        if v61.isMounted then
            v61.doCancelSearch();
            local l_searchType_0 = v61.props.searchType;
            local l_sessionService_0 = v61.props.sessionService;
            if l_sessionService_0 and l_searchType_0 == v20.SearchTypes.Games then
                l_sessionService_0:RemoveSession(l_SessionType_0.StructuralIdentifier.GameSearchAutocomplete);
            end;
        end;
    end;
    v61.onClearText = function()
        if v61.isMounted then
            if v61.searchBoxRef.current then
                v37(v61.props.eventIngest, v61.getEventContext(), v61.searchBoxRef.current.Text, v61.props.searchType);
                v61.searchBoxRef.current.Text = "";
                v61.searchBoxRef.current:captureFocus();
                if not (not v55[v61.state.lastInputType] or not v61.props.focusController) then
                    v61.props.focusController.moveFocusTo(v61.searchBoxRef);
                end;
            end;
            return ;
        else
            return ;
        end;
    end;
    v61.onTextChanged = function(v90)
        if v61.isMounted then
            if v90 then
                local l_Text_0 = v90.Text;
                local v92 = l_Text_0 ~= "";
                if v92 ~= v61.state.clearButtonVisible then
                    v61:setState({
                        clearButtonVisible = v92
                    });
                end;
                if v61.props.autocomplete and not v61.props.ixpDisableGamesAutocomplete then
                    v61.updateAutocomplete((v19.KeywordNormalize((l_Text_0:lower()))));
                end;
                if v90:IsFocused() then
                    local l_lastSearchBoxText_0 = v61.lastSearchBoxText;
                    if string.len(l_Text_0) < string.len(l_lastSearchBoxText_0) then
                        v36(v61.props.eventIngest, v61.getEventContext(), l_lastSearchBoxText_0, l_Text_0, v61.props.searchType);
                    end;
                end;
                v61.lastSearchBoxText = l_Text_0;
                if l_Text_0 == "" then
                    local l_onTextCleared_0 = v61.props.onTextCleared;
                    if l_onTextCleared_0 then
                        l_onTextCleared_0();
                    end;
                end;
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
    v61.getListPickerItems = function()
        local v95 = {};
        local l_autocompleteKeyword_0 = v61.state.autocompleteKeyword;
        if l_autocompleteKeyword_0 == "" then
            v61.lastStoredListPickerItems = v95;
            return v95;
        else
            local v97 = v61.getCachedAutocompleteSuggestion(l_autocompleteKeyword_0);
            if not v97 then
                local v98 = v61.props.getAutocompleteFetchingStatus(l_autocompleteKeyword_0);
                if not (v98 ~= l_RetrievalStatus_0.NotStarted) or v98 == l_RetrievalStatus_0.Fetching then
                    return v61.lastStoredListPickerItems;
                end;
            end;
            if v97 then
                local l_gameIcons_0 = v61.props.gameIcons;
                for v100 = 1, #v97.entries do
                    local v101 = v97.entries[v100];
                    local v102 = false;
                    local v103 = nil;
                    local v104 = "";
                    local v105 = "";
                    if v101.type == v33.EntryType.Rich then
                        v102 = true;
                        local v106 = l_gameIcons_0[tostring(v101.universeId)];
                        if v106 then
                            v103 = v106.url;
                        end;
                        v104 = v101.canonicalTitle;
                        v105 = v101.canonicalTitle;
                    elseif v101.type == v33.EntryType.Keyword then
                        v104 = v101.searchQuery:lower();
                        v105 = v104;
                    end;
                    do
                        local l_v105_0 = v105;
                        table.insert(v95, {
                            isRichItem = v102,
                            displayIcon = v103,
                            text = v104,
                            onSelect = function()
                                v38(v61.props.eventIngest, v61.getEventContext(), l_autocompleteKeyword_0, v61.props.searchType, v97.entries, v100, v101);
                                v61.doConfirmSearch(l_v105_0, true, v97.entries);
                            end
                        });
                    end;
                end;
            end;
            v61.lastStoredListPickerItems = v95;
            return v95;
        end;
    end;
    v61.getCachedAutocompleteSuggestion = function(v108)
        local l_autocompleteSuggestions_0 = v61.props.autocompleteSuggestions;
        if v49() and v61.props.searchType == v20.SearchTypes.Catalog then
            l_autocompleteSuggestions_0 = v61.props.avatarAutocompleteSuggestions;
        end;
        return l_autocompleteSuggestions_0[v108];
    end;
    v61.getEventContext = function()
        if v49() and v61.props.searchType == v20.SearchTypes.Catalog then
            return "AvatarShopSearch";
        else
            return "GameSearch";
        end;
    end;
    v61.resetAutocompleteEvent = function()
        v61.lastAutocompleteUpdateTime = 0;
        v61.lastAutocompleteEventKeyword = "";
    end;
    v61.updateAutocompleteEvent = function()
        if v61.props.autocomplete and not v61.props.ixpDisableGamesAutocomplete then
            if v48() and v61.lastAutocompleteUpdateTime == 0 then
                return ;
            else
                local l_autocompleteKeyword_1 = v61.state.autocompleteKeyword;
                if v61.lastAutocompleteEventKeyword ~= l_autocompleteKeyword_1 then
                    local v111 = v61.getCachedAutocompleteSuggestion(l_autocompleteKeyword_1);
                    if v111 then
                        local l_eventIngest_0 = v61.props.eventIngest;
                        local l_currentPage_0 = v61.props.currentPage;
                        local v114 = (tick() - v61.lastAutocompleteUpdateTime) * 1000;
                        if not v49() then
                            v34(l_eventIngest_0, "GameSearch", l_autocompleteKeyword_1, v61.lastAutocompleteEventKeyword, v111, l_currentPage_0, v114, v61.lastAutocompleteCached);
                        else
                            v35(l_eventIngest_0, v61.getEventContext(), l_autocompleteKeyword_1, v61.lastAutocompleteEventKeyword, v111, l_currentPage_0, v114, v61.lastAutocompleteCached, v61.props.searchType);
                        end;
                        v61.lastAutocompleteEventKeyword = l_autocompleteKeyword_1;
                    end;
                end;
            end;
        end;
    end;
    v61.onSearchIconActivated = function()
        local l_current_2 = v61.searchBoxRef.current;
        local l_isSearching_0 = v61.props.isSearching;
        if not ((not l_current_2 or not l_isSearching_0) or l_current_2:IsFocused()) then
            l_current_2:CaptureFocus();
        end;
    end;
end;
v60.didUpdate = function(v117)
    local l_current_3 = v117.searchBoxRef.current;
    if l_current_3 then
        local l_isSearching_1 = v117.props.isSearching;
        local l_listPickerShown_0 = v117.state.listPickerShown;
        if not l_isSearching_1 then
            if l_listPickerShown_0 then
                v117:setState({
                    listPickerShown = false
                });
            end;
        else
            local l_autocompleteKeyword_2 = v117.state.autocompleteKeyword;
            if not l_listPickerShown_0 and l_autocompleteKeyword_2 ~= "" then
                v117:setState({
                    listPickerShown = true
                });
            end;
        end;
        if v48() then
            v117.updateAutocompleteEvent();
        end;
    end;
    if not ((v48() or not l_current_3) or not l_current_3:IsFocused()) then
        v117.updateAutocompleteEvent();
    end;
end;
v60.didMount = function(v122)
    v122.isMounted = true;
    if v122.animationMotor then
        v122.animationMotor:destroy();
    end;
    v122.animationMotor = v5.createSingleMotor(0);
    v122.animationMotor:onStep(function(v123)
        if v122.isMounted then
            local l_current_4 = v122.searchBoxBackgroundRef.current;
            if l_current_4 then
                l_current_4.Size = UDim2.new(v123, 0, 1, 0);
                l_current_4.Position = UDim2.new(1 - v123, 0, 0, 0);
            end;
        end;
    end);
    if v122.props.animated then
        v122.animationMotor:setGoal(v5.spring(1, {
            dampingRatio = 1,
            frequency = 4
        }));
    end;
    local l_current_5 = v122.searchBoxRef.current;
    if not ((not l_current_5 or not v122.props.isSearching) or l_current_5:IsFocused()) then
        l_current_5:CaptureFocus();
    end;
end;
v60.willUnmount = function(v126)
    v126.isMounted = false;
    if v126.animationMotor then
        v126.animationMotor:destroy();
    end;
end;
v60.renderWithProviders = function(v127, v128, v129)
    local l_Size_0 = v127.props.Size;
    local l_isCompactView_0 = v127.props.isCompactView;
    local l_modernUI_0 = v127.props.modernUI;
    local l_clearButtonVisible_0 = v127.state.clearButtonVisible;
    local v134 = 28;
    local v135 = 12;
    local v136 = 20;
    local v137 = not l_isCompactView_0 and 36 or 12;
    local v138 = not not l_clearButtonVisible_0 and v137 + 28 or v137;
    local v139 = 88;
    local v140 = not l_isCompactView_0;
    if not (not l_isCompactView_0 and not l_modernUI_0) then
        v134 = 36;
        v135 = v127.props.searchBarPadding;
        v136 = 24;
        v137 = (9 + v136) + 9;
        v138 = not not l_clearButtonVisible_0 and v137 + 28 or v137;
        v139 = 70;
        v140 = true;
    end;
    local v141 = v127.props.autocomplete and not v127.props.ixpDisableGamesAutocomplete;
    local l_isSearching_2 = v127.props.isSearching;
    local l_listPickerShown_1 = v127.state.listPickerShown;
    local v144 = UDim.new(1, 0);
    local v145 = v141 and l_listPickerShown_1;
    local v146 = l_isSearching_2 or v127.props.forceShowCancelButton;
    local v147 = not not v146 and (not v127.cancelRef.current and 0 or v127.cancelRef.current.AbsoluteSize.X) or 0;
    local l_animated_0 = v127.props.animated;
    return l_withStyle_0(function(v149)
        local l_TextEmphasis_0 = v149.Theme.TextEmphasis;
        local v151 = v140 and v14.createElement(v22, {
            Size = UDim2.new(0, v136, 0, v136),
            Position = UDim2.new(0, 9, 0.5, 0),
            Image = "LuaApp/icons/ic-search-new",
            BackgroundTransparency = 1,
            AnchorPoint = Vector2.new(0, 0.5),
            ImageColor3 = v149.Theme.SystemPrimaryDefault.Color,
            ImageTransparency = v149.Theme.SystemPrimaryDefault.Transparency,
            [v14.Event.Activated] = v127.onSearchIconActivated
        });
        local v152 = v127.getListPickerItems();
        local v153 = v14.createElement(l_Focusable_0.Frame, {
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            [v14.Ref] = v127.props.forwardRef,
            NextSelectionDown = if not v145 then v127.props.NextSelectionDown else v127.searchBoxRef,
            NextSelectionRight = v127.props.NextSelectionRight,
            defaultChild = v127.searchBoxRef,
            inputBindings = {
                CancelSearch = v15.Input.onBegin(Enum.KeyCode.ButtonB, v127.doCancelSearch)
            }
        }, {
            Layout = v14.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = UDim.new(0, 7)
            }),
            SearchBoxContainer = v14.createElement("Frame", {
                Size = UDim2.new(1, -v147, 0, v134),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                LayoutOrder = 1
            }, {
                SearchBoxBackground = v14.createElement(v21, {
                    Size = not not l_animated_0 and UDim2.new(0, 0, 0, 0) or UDim2.new(1, 0, 1, 0),
                    Position = UDim2.new(0, 0, 0, 0),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Image = v53.Image,
                    ImageColor3 = v149.Theme.UIMuted.Color,
                    ImageTransparency = v149.Theme.UIMuted.Transparency,
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = v53.SliceCenter,
                    [v14.Ref] = v127.searchBoxBackgroundRef,
                    ClipsDescendants = true
                }, {
                    SearchIcon = v151,
                    SearchBox = v14.createElement(l_Focusable_0.TextBox, {
                        Size = UDim2.new(1, -v138, 1, 0),
                        Position = UDim2.new(0, v137, 0.5, 0),
                        AnchorPoint = Vector2.new(0, 0.5),
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        Text = v127.props.initialSearchText or "",
                        Font = v149.Font.Body.Font,
                        TextSize = if not v50 then v149.Font.BaseSize * v149.Font.Body.RelativeSize else (v127.props.textSize or v149.Font.BaseSize) * v149.Font.Body.RelativeSize,
                        TextColor3 = l_TextEmphasis_0.Color,
                        TextTransparency = l_TextEmphasis_0.Transparency,
                        TextWrapped = false,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        ClipsDescendants = true,
                        PlaceholderText = v127.props.placeholderText,
                        PlaceholderColor3 = l_TextEmphasis_0.Color,
                        OverlayNativeInput = true,
                        TextInputType = Enum.TextInputType.NoSuggestions,
                        ReturnKeyType = Enum.ReturnKeyType.Search,
                        ClearTextOnFocus = false,
                        [v14.Ref] = v127.searchBoxRef,
                        [v14.Event.FocusLost] = v127.onFocusLost,
                        [v14.Event.Focused] = v127.onFocused,
                        [v14.Change.Text] = v127.onTextChanged,
                        [v14.Event.ReturnPressedFromOnScreenKeyboard] = v127.onReturnPressedFromOnScreenKeyboard,
                        NextSelectionRight = if not l_clearButtonVisible_0 then if v146 then v127.cancelRef else nil else v127.clearRef,
                        NextSelectionDown = if #v152 > 0 then v127.listPickerRef else if v145 then v127.searchBoxRef else nil,
                        SelectionImageObject = v128(l_CursorKind_0.InputFields)
                    }),
                    ClearButton = v14.createElement(l_Focusable_0[v22], {
                        AnchorPoint = Vector2.new(1, 0.5),
                        Size = UDim2.new(0, 28, 1, 0),
                        Position = UDim2.new(1, 0, 0.5, 0),
                        BackgroundTransparency = 1,
                        Visible = l_clearButtonVisible_0,
                        [v14.Event.Activated] = v127.onClearText,
                        [v14.Ref] = v127.clearRef,
                        NextSelectionLeft = v127.searchBoxRef,
                        NextSelectionDown = if #v152 > 0 then v127.listPickerRef else if v145 then v127.searchBoxRef else nil,
                        NextSelectionRight = (v146 or l_isCompactView_0) and v127.cancelRef or nil,
                        SelectionImageObject = v128(l_CursorKind_0.RoundedRectNoInset)
                    }, {
                        ClearImage = v14.createElement(l_ImageSetLabel_0, {
                            AnchorPoint = Vector2.new(1, 0.5),
                            Size = UDim2.new(0, 16, 0, 16),
                            Position = UDim2.new(1, -6, 0.5, 0),
                            Image = v54,
                            ImageColor3 = v149.Theme.SystemPrimaryDefault.Color,
                            ImageTransparency = v149.Theme.SystemPrimaryDefault.Transparency,
                            BackgroundTransparency = 1
                        })
                    })
                })
            }),
            CancelButton = v146 and v14.createElement(l_Focusable_0.TextButton, {
                Size = UDim2.new(0, 0, 0, v134),
                AutomaticSize = Enum.AutomaticSize.X,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Text = v129.cancelButtonText,
                TextXAlignment = Enum.TextXAlignment.Center,
                Font = v149.Font.Body.Font,
                TextSize = v149.Font.BaseSize * v149.Font.Body.RelativeSize,
                TextColor3 = v149.Theme.SystemPrimaryDefault.Color,
                TextTransparency = v149.Theme.SystemPrimaryDefault.Transparency,
                LayoutOrder = 2,
                [v14.Event.Activated] = v127.onCancelButtonActivated,
                [v14.Ref] = v127.cancelRef,
                NextSelectionLeft = not not l_clearButtonVisible_0 and v127.clearRef or v127.searchBoxRef,
                NextSelectionDown = if #v152 > 0 then v127.listPickerRef else nil,
                NextSelectionRight = v127.cancelRef,
                SelectionImageObject = v128(l_CursorKind_0.RoundedRectNoInset)
            }, {
                Padding = v14.createElement("UIPadding", {
                    PaddingRight = UDim.new(0, 7),
                    PaddingLeft = UDim.new(0, 7),
                    PaddingTop = UDim.new(0, 7),
                    PaddingBottom = UDim.new(0, 7)
                })
            })
        });
        local v154 = v145 and v14.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 0),
            Position = UDim2.new(0, 0, 1, 0),
            BackgroundTransparency = 1,
            BorderSizePixel = 0
        }, {
            Picker = v14.createElement(v24.FitFrame, {
                Size = UDim2.new(1, 0, 0, 0),
                fitAxis = v24.FitAxis.Height,
                BorderSizePixel = 0
            }, {
                SearchBarListPicker = v14.createElement(l_Focusable_0[v23], {
                    items = v152,
                    width = v144,
                    height = if l_isCompactView_0 then nil else 540,
                    [v14.Ref] = v127.listPickerRef,
                    NextSelectionUp = v127.searchBoxRef,
                    inputBindings = {
                        CancelSearch = v15.Input.onBegin(Enum.KeyCode.ButtonB, v127.doCancelSearch)
                    }
                })
            })
        });
        local v155 = v154 and not l_isCompactView_0;
        if v49() then
            v155 = v154 and (not l_isCompactView_0 or v127.props.searchType == v20.SearchTypes.Catalog);
        end;
        return v14.createElement("Frame", {
            Position = v127.props.position or nil,
            AnchorPoint = v127.props.anchorPoint or nil,
            Size = l_Size_0,
            BackgroundTransparency = 1,
            BorderSizePixel = 0
        }, {
            Shadow = v155 and v14.createElement(l_ImageSetLabel_0, {
                AnchorPoint = Vector2.new(0.5, 0),
                Position = UDim2.new(0.5, 0, 0, -19),
                Size = UDim2.new(1, 28 + v135 * 2, 1, (((l_Size_0.Y.Offset + 540) + 28) + 5) + 12),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                ZIndex = -1,
                Image = l_Images_0["component_assets/dropshadow_16_20"],
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(28, 28, 29, 29),
                ImageColor3 = v149.Theme.DropShadow.Color,
                ImageTransparency = v149.Theme.DropShadow.Transparency
            }, {
                Background = v14.createElement("Frame", {
                    Position = UDim2.new(0, 14, 0, 14),
                    Size = UDim2.new(1, -28, 1, -28),
                    BorderSizePixel = 0,
                    BackgroundColor3 = v149.Theme.BackgroundDefault.Color,
                    BackgroundTransparency = v149.Theme.BackgroundDefault.Transparency
                }, {
                    UICorner = v14.createElement("UICorner", {
                        CornerRadius = UDim.new(0, 14)
                    })
                })
            }),
            Bar = v153,
            Picker = v154,
            LastInputChangedListener = v14.createElement(l_ExternalEventConnection_0, {
                event = l_UserInputService_0.LastInputTypeChanged,
                callback = function(v156)
                    v127:setState({
                        lastInputType = v156
                    });
                end
            })
        });
    end);
end;
v60.render = function(v157)
    return l_withSelectionCursorProvider_0(function(v158)
        return l_withLocalization_0({
            cancelButtonText = "Feature.GamePage.LabelCancelField"
        })(function(v159)
            return v157:renderWithProviders(v158, v159);
        end);
    end);
end;
v60 = v17.connect(function(v160, v161)
    return {
        gameIcons = v160[l_GameIconReducer_0.key],
        autocompleteSuggestions = v160.AutocompleteSuggestions,
        avatarAutocompleteSuggestions = v160.AvatarExperience.AvatarAutocompleteSuggestions,
        currentPage = v39(v160),
        getAutocompleteFetchingStatus = function(v162)
            return v25.GetFetchingStatus(v160, v162, v161.searchType);
        end
    };
end, function(v163)
    return {
        fetchAutocompleteSuggestion = function(v164, v165, v166, v167)
            v163(v25.Fetch(v164, v165, v166, v167));
        end,
        fetchGameIcons = function(v168, v169)
            v163(l_ApiFetchGameIcons_0(v168, v169));
        end,
        setSearchBarFocused = function(v170)
            return v163(v27(v170));
        end
    };
end)(v60);
if v47() then
    v60 = v41.connectUserLayer({
        v42.SearchAutocompleteLayer
    }, function(v171, _)
        local v173 = v171[v42.SearchAutocompleteLayer] or {};
        return {
            autocompleteIXPConfigTbl = v173,
            ixpDisableGamesAutocomplete = v173.ixpDisableGamesAutocomplete == "true"
        };
    end)(v60);
end;
v60 = l_RoactServices_0.connect({
    networking = v32,
    eventIngest = v40,
    sessionService = l_AppSessionService_0
})(v60);
return v14.forwardRef(function(v174, v175)
    return v14.createElement(v60, v7.Dictionary.join(v174, {
        forwardRef = v175
    }));
end);