local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.Packages.React);
local v6 = require(l_CorePackages_0.RoactRodux);
local v7 = require(l_CorePackages_0.Packages.t);
local v8 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_Focusable_0 = v8.Focusable;
local v10 = require(l_CorePackages_0.Cryo);
local v11 = require(l_Modules_0.LuaApp.AppPage);
local v12 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v14 = require(l_Modules_0.AvatarExperience.Common.Services.Analytics);
local v15 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v17 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v19 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Debug.NavigationEventsLogger);
local v20 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withStackVisibilityWrapper);
local v21 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withMappedNavigationParams);
local v22 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v24 = require(l_Modules_0.AvatarExperience.Common.Context.withNamedRefs);
local v25 = require(l_Modules_0.AvatarExperience.Common.Components.TopBar.makeTitleDropDown);
local v26 = require(l_Modules_0.AvatarExperience.Common.Components.AXTransitionSegmentedMenu);
local v27 = require(l_Modules_0.AvatarExperience.Common.Components.TopBar.makeAvatarBackButton);
local v28 = require(l_Modules_0.AvatarExperience.Common.Components.AvatarExperienceView);
local v29 = require(l_Modules_0.AvatarExperience.Catalog.Components.NavigationItemsView);
local v30 = require(l_Modules_0.LuaApp.Components.TopBar.TopBar);
local v31 = require(l_Modules_0.AvatarExperience.Common.Components.GamepadFocusHandlerForPage);
local v32 = require(l_Modules_0.AvatarExperience.Common.Components.BoundInputsUpdater);
local l_isGamepadInput_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).isGamepadInput;
local v34 = require(l_Modules_0.AvatarExperience.AvatarEditor.Services.Analytics);
local v35 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local l_PeekViewState_0 = require(l_CorePackages_0.Workspace.Packages.PeekView).PeekViewState;
local v37 = require(l_Modules_0.AvatarExperience.Common.Actions.SetItemDetailsPeekViewState);
local v38 = require(l_Modules_0.AvatarExperience.Common.Thunks.OpenItemPrompt);
local v39 = require(l_Modules_0.AvatarExperience.Common.Thunks.SetFullView);
local v40 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetTryOnManagerPeekViewState);
local v41 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
local v42 = require(l_Modules_0.AvatarExperience.Common.Thunks.OpenQuickMenu);
local v43 = require(l_Modules_0.LuaApp.Constants);
local l_ExternalEventConnection_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).ExternalEventConnection;
local v45 = require(l_Modules_0.LuaApp.Navigation.AndroidBackButtonConnection);
local v46 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Utils.isAvatarRouteVisible);
local v47 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectIsPortrait);
local v48 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectIsFullView);
local v49 = require(l_Modules_0.LuaApp.Thunks.ResetNavigationHistory);
local v50 = require(l_Modules_0.LuaApp.Thunks.InstantResetNavigationHistory);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v52 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreenProperties);
local v53 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
local v54 = require(l_Modules_0.AvatarExperience.Catalog.Components.OnFocusExposureLogger);
local v55 = require(l_Modules_0.AvatarExperience.Common.Hooks.useAvatarExperienceFocusNavigationBindings);
local v56 = require(l_Modules_0.AvatarExperience.Common.Hooks.useOverlayClosedCallback);
local v57 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetSearchCategoryAndSubcategory);
local v58 = require(l_Modules_0.AvatarExperience.Flags.AvatarMarketplaceBackendIXPTests);
local v59 = require(l_Modules_0.AvatarExperience.Flags.TopicsIXPTest);
local v60 = require(l_Modules_0.AvatarExperience.Flags.UniversalAppCameraIXPTest);
local v61 = require(l_Modules_0.AvatarExperience.Flags.AXAlternateLandingPageIXP);
local v62 = require(l_Modules_0.AvatarExperience.Flags.AXAndroidBackButtonIXPTest);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v64 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAvatarAutocompleteEnabledForAll);
local v65 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagLooksIXPLogging);
local v66 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXSearchResultsCategories);
local v67 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXRemoveYButtonCatalogPage);
local l_FFlagAvatarAndroidBackButton_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagAvatarAndroidBackButton;
local v69 = v4.PureComponent:extend("CatalogPage");
v69.validateProps = v7.strictInterface({
    fullView = v7.optional(v7.userdata),
    isPortrait = v7.optional(v7.boolean),
    itemDetailsExpanded = v7.optional(v7.boolean),
    tryOnManagerPeekViewState = v7.optional(v7.valueOf(l_PeekViewState_0)),
    tryOnItems = v7.optional(v7.table),
    openItemPrompt = v7.callback,
    setItemDetailsPeekViewState = v7.callback,
    navigateIntoQuickMenu = v7.optional(v7.callback),
    setFullView = v7.callback,
    resetNavigationHistory = v7.callback,
    instantResetNavigationHistory = v7.callback,
    setTryOnManagerPeekViewState = v7.callback,
    resetSearchCategoryAndSubcategory = if not v66() then nil else v7.callback,
    namedRefs = v7.table,
    prevNavPage = v7.optional(v7.string),
    prevNavHistory = v7.optional(v7.table),
    navigation = v7.optional(v7.table),
    avatarRoute = v7.optional(v7.table),
    avatarExperienceAnalytics = v7.optional(v7.table),
    networking = v7.optional(v7.callback),
    appAnalytics = v7.optional(v7.table),
    avatarEditorAnalytics = v7.optional(v7.table),
    catalogAnalytics = v7.optional(v7.table),
    show3dView = v7.optional(v7.boolean),
    shouldSkipLandingPage = v7.optional(v7.boolean),
    itemId = v7.optional(v7.string),
    itemType = v7.optional(v7.string),
    isFirstItemDetails = v7.optional(v7.boolean),
    alternateAvatarLandingScreenEnabled = v7.optional(v7.boolean),
    axAndroidBackButtonEnabled = v7.optional(v7.boolean),
    focusController = v7.table,
    androidBackButtonConnection = if not l_FFlagAvatarAndroidBackButton_0 then nil else v7.table,
    overlayClosedCallback = v7.callback
});
v69.init = function(v70)
    v70.topBarRef = v4.createRef();
    v70.sceneUIContainerRef = v4.createRef();
    v70.titleDropDownRef = v4.createRef();
    v70.topBarRenderRightRef = v4.createRef();
    v70.refinementButtonsRef = v4.createRef();
    v70.multiTryOnBottomBarRef = v4.createRef();
    v70.quickButtonsRef = v4.createRef();
    v70:setState({
        lastInputIsGamepad = l_isGamepadInput_0((l_UserInputService_0:GetLastInputType()))
    });
    v70.setDefaultRefOverride = function(v71)
        v70:setState({
            defaultRefOverride = v71 or v4.None
        });
    end;
    v70.changeView = function()
        v70.props.setFullView(v70.props.avatarExperienceAnalytics, v70.props.avatarRoute.opaque.name, (v12.getNewFullViewEnum(v70.props.fullView)));
    end;
    v70.setUIFullView = function()
        local l_avatarExperienceAnalytics_0 = v70.props.avatarExperienceAnalytics;
        if v70.props.isPortrait then
            v70.props.setFullView(l_avatarExperienceAnalytics_0, v13.CatalogSearch, v41.UIFullView);
        end;
    end;
    v70.isAvatarScreen = function(v73)
        return (rawget(v13, v73));
    end;
    v70.topBarBackButtonActivated = function()
        local l_navigation_0 = v70.props.navigation;
        local l_avatarEditorAnalytics_0 = v70.props.avatarEditorAnalytics;
        local l_prevNavPage_0 = v70.props.prevNavPage;
        local l_prevNavHistory_0 = v70.props.prevNavHistory;
        if not l_prevNavPage_0 or not l_prevNavHistory_0 then
            l_navigation_0.navigate(if v70.props.shouldSkipLandingPage or v70.props.alternateAvatarLandingScreenEnabled then v11.Home else v13.AvatarExperienceLandingPage);
        elseif not v70.isAvatarScreen(l_prevNavPage_0) then
            v70.props.resetNavigationHistory(l_prevNavHistory_0);
        else
            v70.props.navigation.navigate(l_prevNavPage_0);
        end;
        l_avatarEditorAnalytics_0.catalogToAvatarBackButton();
    end;
    v70.defaultChildRef = v4.createRef();
    v70.lastInputTypeChangedCallback = function(v78)
        local v79 = l_isGamepadInput_0(v78);
        if v79 ~= v70.state.lastInputIsGamepad then
            v70:setState({
                lastInputIsGamepad = v79
            });
        end;
    end;
    v70.titleDropDown = v25("Feature.Avatar.Action.Marketplace", v70.props.overlayClosedCallback);
    v70.backButton = v27(v70.topBarBackButtonActivated);
    v70.onConfirmSearchCallback = if not v66() then nil else function()
        v70.props.resetSearchCategoryAndSubcategory();
        if not (not v64() or not v70.setUIFullView) then
            v70.setUIFullView();
        end;
    end;
end;
v69.getBestDefaultRefForPage = function(v80)
    if not v80.state.defaultRefOverride then
        return v80.defaultChildRef;
    else
        return v80.state.defaultRefOverride;
    end;
end;
v69.getInputBindings = function(v81)
    local l_avatarRoute_0 = v81.props.avatarRoute;
    local l_name_0 = l_avatarRoute_0.current.name;
    local l_isMultiTryOn_0 = v52[l_avatarRoute_0.opaque.name].isMultiTryOn;
    local v85 = {
        OpenTryOnManager = if (l_name_0 ~= v13.TryOnManager and l_isMultiTryOn_0) and #v10.Dictionary.values(v81.props.tryOnItems) > 1 then v8.Input.onBegin(Enum.KeyCode.ButtonY, function()
            v22.closeFiltersAndItemDetails(v81.props.navigation);
            v81.props.navigation.navigate(v13.TryOnManager);
        end, {
            key = "Feature.Catalog.Label.TryOns"
        }) else nil
    };
    if l_name_0 == v13.ItemDetails then
        return (v10.Dictionary.join(v85, {
            NavigateBack = v8.Input.onBegin(Enum.KeyCode.ButtonB, function()
                v22.closeFocusedScreen(v81.props.navigation);
            end),
            OpenItemPrompt = v8.Input.onBegin(Enum.KeyCode.ButtonX, function()
                v81.props.openItemPrompt(v81.props.networking, v81.props.catalogAnalytics, v81.props.overlayClosedCallback, v81.props.navigation, l_avatarRoute_0);
            end, {
                key = "Feature.Catalog.Action.Buy"
            }),
            OpenClosePeekView = if l_isMultiTryOn_0 or v67() then nil else v8.Input.onBegin(Enum.KeyCode.ButtonY, function()
                if not v81.props.itemDetailsExpanded then
                    v81.props.setItemDetailsPeekViewState(l_PeekViewState_0.Full);
                    return ;
                else
                    v81.props.setItemDetailsPeekViewState(l_PeekViewState_0.Brief);
                    return ;
                end;
            end, {
                key = not v81.props.itemDetailsExpanded and "Feature.Catalog.Action.OpenDetails" or "Feature.Catalog.Action.CloseDetails"
            }),
            OpenCatalogContextMenu = v8.Input.onBegin(Enum.KeyCode.ButtonL3, function()
                v81.props.navigation.navigate(v13.CatalogContextMenu, {
                    itemId = l_avatarRoute_0.current.params.itemId,
                    itemType = l_avatarRoute_0.current.params.itemType,
                    onOverlayClosed = v81.props.overlayClosedCallback
                });
            end, {
                key = "Feature.Catalog.Action.ItemOptions"
            })
        }));
    else
        if l_name_0 == v13.TryOnManager then
            v85 = v10.Dictionary.join(v85, {
                OpenCloseTryOnManager = v8.Input.onBegin(Enum.KeyCode.ButtonY, function()
                    local l_tryOnManagerPeekViewState_0 = v81.props.tryOnManagerPeekViewState;
                    if not (l_tryOnManagerPeekViewState_0 ~= l_PeekViewState_0.Full) or l_tryOnManagerPeekViewState_0 == l_PeekViewState_0.Extended then
                        v81.props.setTryOnManagerPeekViewState(l_PeekViewState_0.Brief);
                        return ;
                    else
                        v81.props.setTryOnManagerPeekViewState(l_PeekViewState_0.Full);
                        return ;
                    end;
                end, {
                    key = "Feature.Catalog.Label.TryOns"
                })
            });
        end;
        return v85;
    end;
end;
if l_FFlagAvatarAndroidBackButton_0 then
    v69.didMount = function(v87)
        if not ((not v87.props.shouldSkipLandingPage and not v87.props.alternateAvatarLandingScreenEnabled or not v87.props.axAndroidBackButtonEnabled) or not v46(v87.props)) then
            v87.props.androidBackButtonConnection.connect(v87.topBarBackButtonActivated);
        end;
    end;
    v69.willUnmount = function(v88)
        v88.props.androidBackButtonConnection.disconnect();
    end;
    v69.didUpdate = function(v89, v90)
        if not (not v89.props.shouldSkipLandingPage and not v89.props.alternateAvatarLandingScreenEnabled) then
            if (not v89.props.axAndroidBackButtonEnabled or v46(v90)) or not v46(v89.props) then
                if not (not v46(v90) or v46(v89.props)) then
                    v89.props.androidBackButtonConnection.disconnect();
                end;
            else
                v89.props.androidBackButtonConnection.connect(v89.topBarBackButtonActivated);
                return ;
            end;
        end;
    end;
end;
v69.renderTopBar = function(v91)
    local l_isPortrait_0 = v91.props.isPortrait;
    local l_show3dView_0 = v91.props.show3dView;
    return l_withLocalization_0({
        title = "Feature.Avatar.Action.Marketplace"
    })(function(v94)
        local v95 = 2;
        if v64() then
            v95 = 3;
        end;
        local v96 = nil;
        local v97 = nil;
        local v98 = nil;
        if not l_IsVRAppBuild_0() then
            v96 = v91.backButton;
            v97 = if not v91.props.alternateAvatarLandingScreenEnabled then v91.titleDropDown else v26;
            v98 = {
                v30.SearchButton
            };
        else
            v97 = nil;
            v96 = nil;
            v98 = nil;
        end;
        return v4.createElement(v30.Container, {
            forceCompactMode = true,
            searchType = v43.SearchTypes.Catalog,
            titleText = v94.title,
            ZIndex = v95,
            transparentBackground = l_show3dView_0,
            hideSiteMessageBanner = l_isPortrait_0,
            [v4.Ref] = v91.topBarRef,
            setDefaultRefOverride = v91.setDefaultRefOverride,
            NextSelectionDown = v91.defaultChildRef,
            NextSelectionRight = v91.sceneUIContainerRef,
            onConfirmSearchCallback = if not v66() then v64() and v91.setUIFullView or nil else v91.onConfirmSearchCallback,
            leftItem = v96,
            centerItem = v97,
            rightItems = v98,
            useParentSizeForCenterItem = true
        });
    end);
end;
v69.render = function(v99)
    local v100 = v99.props.fullView == v41.SceneFullView;
    local v101 = v99.props.fullView == v41.UIFullView;
    local l_show3dView_1 = v99.props.show3dView;
    local l_namedRefs_0 = v99.props.namedRefs;
    local v104 = v99.props.avatarRoute.current.name == v13.SortAndFilters;
    local l_quickButtonsRef_0 = v99.quickButtonsRef;
    if v99.props.avatarRoute.current.name == v13.TryOnManager then
        l_quickButtonsRef_0 = l_namedRefs_0[v13.TryOnManager];
    elseif v104 then
        l_quickButtonsRef_0 = l_namedRefs_0[v13.SortAndFilters];
    end;
    return v4.createElement(l_Focusable_0.Frame, {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 1, 0),
        focusController = v99.props.focusController,
        defaultChild = v99:getBestDefaultRefForPage(),
        restorePreviousChildFocus = false,
        inputBindings = v99:getInputBindings(),
        ref = l_namedRefs_0[v13.Catalog]
    }, {
        BoundInputsUpdater = v4.createElement(v32),
        LastInputTypeChangedConnection = v4.createElement(l_ExternalEventConnection_0, {
            event = l_UserInputService_0.LastInputTypeChanged,
            callback = v99.lastInputTypeChangedCallback
        }),
        NavigationEventsLogger = v4.createElement(v19, {
            pageName = "Catalog"
        }),
        TopicsExposure = v4.createElement(v54, {
            ixpTest = v59
        }),
        UniversalAppCameraExposure = v4.createElement(v54, {
            ixpTest = v60
        }),
        RelevanceRecommendationsExposure = v4.createElement(v54, {
            ixpTest = v58.RelevanceRecommendations
        }),
        RecommendationsAndSearchExposure = v4.createElement(v54, {
            ixpTest = v58.RecommendationsAndSearch
        }),
        WidgetExposure = v4.createElement(v54, {
            ixpTest = v58.Widgets
        }),
        SortsExposure = v65() and v4.createElement(v54, {
            ixpTest = v58.Sorts
        }),
        SearchWidgetsExposure = v65() and v4.createElement(v54, {
            ixpTest = v58.SearchWidgets
        }),
        AvatarExperienceView = v4.createElement(v28, {
            changeViewFunction = v99.changeView,
            allowAdaptiveScrolling = true,
            isDisabled = not l_show3dView_1,
            isSceneFullView = v100,
            isUIFullView = v101,
            topBar = v99:renderTopBar(),
            refinementButtonsRef = v99.refinementButtonsRef,
            quickButtonsRef = v99.quickButtonsRef,
            [v4.Ref] = v99.sceneUIContainerRef,
            NextSelectionDown = v99.defaultChildRef,
            NextSelectionLeft = v99.topBarRef,
            defaultChildRef = v99.defaultChildRef,
            multiTryOnBottomBarRef = v99.multiTryOnBottomBarRef
        }, {
            GamepadFocusHandlerForPage = v4.createElement(v31, {
                focusController = v99.props.focusController,
                captureFocusOnMount = true
            }),
            NavigationAndItemsList = v4.createElement(v29, {
                defaultChildRef = v99.defaultChildRef,
                NextSelectionUp = v99.topBarRef,
                NextSelectionRight = l_quickButtonsRef_0,
                multiTryOnBottomBarRef = v99.multiTryOnBottomBarRef
            })
        })
    });
end;
v69 = v53.connectTestVariables({
    alternateAvatarLandingScreenEnabled = v61.EnabledForUser,
    axAndroidBackButtonEnabled = v62.EnabledForUser
})((v24((v21(v20((l_RoactAppPolicy_0.connect(function(v106, _)
    return {
        show3dView = v106.getCatalogShow3dView(),
        shouldSkipLandingPage = v106.getShouldSkipAvatarLandingPage()
    };
end)((l_RoactServices_0.connect({
    avatarExperienceAnalytics = v14,
    networking = v17,
    appAnalytics = v15,
    avatarEditorAnalytics = v34,
    catalogAnalytics = v35
})((v6.connect(function(v108)
    return {
        fullView = v48(v108, v13.Catalog),
        isPortrait = v47(v108),
        itemDetailsExpanded = v108.AvatarExperience.Common.ItemDetailsExpanded,
        tryOnManagerPeekViewState = v108.AvatarExperience.Common.ItemDetailsPeekView.tryOnManagerViewState,
        tryOnItems = v108.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems
    };
end, function(v109)
    return {
        openItemPrompt = function(v110, v111, v112, v113, v114)
            v109(v38(v110, v111, v112, v113, v114));
        end,
        setItemDetailsPeekViewState = function(v115)
            v109(v37(v115));
        end,
        navigateIntoQuickMenu = function(v116, v117)
            v109(v42(v116, v117));
        end,
        setFullView = function(v118, v119, v120)
            v109(v39(v118, v119, v120));
        end,
        resetNavigationHistory = function(v121)
            return v109(v49(nil, v121));
        end,
        instantResetNavigationHistory = function(v122)
            return v109(v50(nil, v122));
        end,
        setTryOnManagerPeekViewState = function(v123)
            v109(v40(v123));
        end,
        resetSearchCategoryAndSubcategory = if not v66() then nil else function()
            v109(v57(1, 0));
        end
    };
end)(v69))))))), nil)))));
return function(v124)
    local l_current_0 = v5.useRef(v8.createFocusController()).current;
    local v126 = if not l_FFlagAvatarAndroidBackButton_0 then nil else v5.useRef(v45()).current;
    local v127 = v56(l_current_0);
    return v5.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.fromScale(1, 1),
        ref = v55({
            overlayClosedCallback = v127
        })
    }, v5.createElement(v69, (v10.Dictionary.join(v124, {
        focusController = l_current_0,
        overlayClosedCallback = v127,
        androidBackButtonConnection = v126
    }))));
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Packages.React);
local l_PillGroup_0 = require(l_CorePackages_0.UIBlox).App.Control.PillGroup;
local v6 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v7 = require(l_Modules_0.AvatarExperience.Common.Services.Analytics);
local v8 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v9 = require(l_Modules_0.AvatarExperience.Catalog.Hooks.useCatalogTopics);
local v10 = require(l_Modules_0.AvatarExperience.Catalog.Hooks.useSelectedTopics);
local v11 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v13 = require(l_Modules_0.AvatarExperience.Catalog.Selectors.selectCatalogCategoryIndex);
local v14 = require(l_Modules_0.AvatarExperience.Catalog.Selectors.selectCatalogSubcategoryIndex);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local v16 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterButtonLayout);
local v17 = require(l_Modules_0.AvatarExperience.Common.Hooks.useNavigationFocusCallbacks);
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local v20 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.NavigateToSearch);
local v21 = require(l_Modules_0.AvatarExperience.Catalog.Hooks.useSearchParameters);
local v22 = require(l_Modules_0.AvatarExperience.Common.Thunks.Exit3DFullView);
local v23 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.topics");
local v24 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXFixTopicNoResultsShimmer);
local v25 = game:DefineFastInt("AXTopicsNumInitialItems", 10);
local function v30(v26, v27)
    for _, v29 in v26, nil, nil do
        if not v3.List.find(v27, v29) then
            return v29;
        end;
    end;
    return nil;
end;
local v34 = l_memoize_0(function(v31)
    return v3.List.filterMap(v31, function(v32, v33)
        if v25 < v33 then
            return nil;
        else
            return {
                targetId = tonumber(v32.id) or 0,
                itemType = v32.type
            };
        end;
    end);
end);
local function v59(v35)
    local v36 = v34(v35.items or {});
    local l_searchKeyword_0 = v35.searchKeyword;
    local v38, v39 = v10();
    local v40, v41 = v9(v38, v36, l_searchKeyword_0);
    local v42 = v11(v6);
    local v43 = v11(v7);
    local v44 = l_useSelector_0(v13);
    local v45 = l_useSelector_0(v14);
    local function v51(v46)
        local l_v40_0 = v40;
        local l_v38_0 = v38;
        if #v38 < #v46 then
            local v49 = v46[#v46];
            v42.selectTopic(v49, v3.List.find(v40, v49) or 0, v44, v45, nil, l_v40_0, l_v38_0);
            return ;
        elseif #v46 == #v38 - 1 then
            local v50 = v30(v38, v46);
            if not v50 then
                v23:warning("sendTopicsChangedAnalyticsEvent, removedTopic not found: {} -> {}", v38, v46);
                return ;
            else
                v42.deselectTopic(v50, v3.List.find(v40, v50) or 0, v44, v45, nil, l_v40_0, l_v38_0);
                return ;
            end;
        elseif #v46 == 0 then
            v42.clearAllTopics(v38, v44, v45, nil, l_v40_0);
            return ;
        else
            v23:warning("sendTopicsChangedAnalyticsEvent, invalid change: {} -> {}", v38, v46);
            return ;
        end;
    end;
    local v52 = l_useDispatch_0();
    local v53 = l_useNavigation_0();
    local v54 = v21();
    local function v56(v55)
        v51(v55);
        if not v35.searchKeyword then
            v39(v55);
        else
            v54 = v54 or {};
            assert(v54, "");
            v39(v55);
            v52(v20(v53, v54));
        end;
        v52(v22(v43, v53.state.routeName));
    end;
    v17({
        onDidFocus = v4.useCallback(function()
            local v57 = not not v35.frameRef and v35.frameRef.current or nil;
            local v58 = not not v57 and v57:FindFirstChildWhichIsA("ScrollingFrame", true) or nil;
            if v58 then
                v58.Visible = not v58.Visible;
                v58.Visible = not v58.Visible;
            end;
        end, {
            v35.frameRef
        })
    });
    return v4.createElement(v16, {
        height = v8.PillBarHeight,
        layoutOrder = v35.layoutOrder,
        showFilterButton = true,
        layoutRef = v35.frameRef,
        NextSelectionUp = v35.NextSelectionUp,
        NextSelectionDown = v35.NextSelectionDown
    }, {
        Topics = v4.createElement(l_PillGroup_0, {
            layoutOrder = 2,
            pills = v40,
            selectedPills = v38,
            isLoading = v41,
            onSelectionChanged = v56,
            leftPadding = 0
        })
    });
end;
if v24() then
    v59 = v4.memo(v59);
end;
return v59;


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_Images_0 = v3.App.ImageSet.Images;
local l_IconButton_0 = v3.App.Button.IconButton;
local l_IconSize_0 = v3.App.ImageSet.Enum.IconSize;
local v7 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v8 = require(l_Modules_0.AvatarExperience.Common.Services.Analytics);
local v9 = require(l_Modules_0.AvatarExperience.Common.Thunks.Exit3DFullView);
local v10 = require(l_Modules_0.LuaApp.Components.NumericalBadge);
local v11 = require(l_Modules_0.AvatarExperience.Catalog.Selectors.selectFilterCount);
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 l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local v15 = require(l_Modules_0.AvatarExperience.Common.Hooks.useAvatarRoute);
local v16 = require(l_Modules_0.AvatarExperience.Catalog.Hooks.useCloseFiltersSignal);
local v17 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v18 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
return function(v19)
    local v20 = l_useNavigation_0();
    local v21 = v15();
    local v22 = v16();
    local v23 = l_useDispatch_0();
    local v24 = v7(v8);
    return v2.createElement(l_IconButton_0, {
        anchorPoint = v19.anchorPoint or Vector2.new(0, 0.5),
        position = v19.position or UDim2.fromScale(0, 0.5),
        size = UDim2.fromOffset(24, 24),
        iconSize = l_IconSize_0.Medium,
        icon = l_Images_0["icons/actions/filter"],
        onActivated = function()
            if v21.current.name == v18.SortAndFilters then
                v22:fire();
            else
                v17.closeTryOnManager(v20);
                v20.navigate(v18.SortAndFilters, {
                    navigation = v20,
                    catalogSort = "",
                    isPortrait = true,
                    onAcceptCallback = function()
                    end
                });
            end;
            v23(v9(v24, v20.state.routeName));
        end,
        buttonRef = v19.buttonRef,
        layoutOrder = v19.layoutOrder,
        NextSelectionLeft = v19.NextSelectionLeft,
        NextSelectionRight = v19.NextSelectionRight,
        NextSelectionUp = v19.NextSelectionUp,
        NextSelectionDown = v19.NextSelectionDown
    }, {
        NotificationBadge = v2.createElement(v10, {
            AnchorPoint = Vector2.new(0, 1),
            Position = UDim2.new(0.5, 0, 0.5, 4),
            badgeCount = l_useSelector_0(v11)
        })
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Packages.React);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterButton);
return function(v6)
    local l_showFilterButton_0 = v6.showFilterButton;
    local v8 = not l_showFilterButton_0 and 0 or 52;
    local v9 = v3.useRef(nil);
    local v10 = v3.useRef(nil);
    return v3.createElement(l_Focusable_0.Frame, {
        Size = UDim2.new(1, 0, 0, v6.height),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        LayoutOrder = v6.layoutOrder,
        ref = v6.layoutRef,
        defaultChild = if not l_showFilterButton_0 then v10 else v9,
        NextSelectionUp = v6.NextSelectionUp,
        NextSelectionDown = v6.NextSelectionDown,
        NextSelectionLeft = v6.NextSelectionLeft,
        NextSelectionRight = v6.NextSelectionRight
    }, {
        FilterButton = l_showFilterButton_0 and v3.createElement(v5, {
            anchorPoint = Vector2.new(0, 0.5),
            position = UDim2.new(0, 8, 0.5, 0),
            buttonRef = v9,
            NextSelectionRight = if not v6.isContentEmpty then v10 else nil
        }),
        ContentFrame = v3.createElement(l_Focusable_0.Frame, {
            Size = UDim2.new(1, -v8, 1, 0),
            Position = UDim2.new(0, v8, 0, 0),
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            ref = v10,
            NextSelectionLeft = v9,
            ClipsDescendants = true
        }, v6.children)
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.Dash);
local v2 = require(l_CorePackages_0.Packages.React);
local l_useStyle_0 = require(l_CorePackages_0.UIBlox).Core.Style.useStyle;
local v4 = UDim.new(0, 12);
return function(v5)
    local v6 = l_useStyle_0();
    local l_Theme_0 = v6.Theme;
    local l_Font_0 = v6.Font;
    return v2.createElement("Frame", {
        Size = v5.Size,
        BackgroundTransparency = 1,
        BorderSizePixel = 0
    }, {
        Layout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Vertical,
            Padding = v4
        }),
        Padding = v2.createElement("UIPadding", {
            PaddingTop = v4,
            PaddingBottom = v4,
            PaddingLeft = v4,
            PaddingRight = v4
        }),
        Title = v2.createElement("TextLabel", {
            LayoutOrder = 1,
            BackgroundTransparency = 1,
            AutomaticSize = Enum.AutomaticSize.XY,
            Font = l_Font_0.Header1.Font,
            TextSize = l_Font_0.Header1.RelativeSize * l_Font_0.BaseSize,
            Text = v5.title,
            TextColor3 = l_Theme_0.TextEmphasis.Color,
            TextTransparency = l_Theme_0.TextEmphasis.Transparency
        }),
        Content = v2.createElement("Frame", {
            LayoutOrder = 2,
            Size = v5.contentSize,
            BackgroundTransparency = l_Theme_0.PlaceHolder.Transparency,
            BackgroundColor3 = l_Theme_0.PlaceHolder.Color,
            BorderSizePixel = 0
        }, v1.join({
            Layout = v2.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical
            }),
            UICorner = v2.createElement("UICorner", {
                CornerRadius = UDim.new(0, 8)
            })
        }, v5.children))
    });
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 l_useStyle_0 = require(l_CorePackages_0.UIBlox).Core.Style.useStyle;
local l_useIsGamepad_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useIsGamepad;
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.RadioButtonGroup);
local v6 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v7 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterUtils);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v9 = UDim.new(0, 4);
local function _(v10)
    return (v10 + 19) + v9.Offset;
end;
return function(v12)
    local v13 = l_useStyle_0();
    local l_Theme_0 = v13.Theme;
    local l_Font_0 = v13.Font;
    local v16 = l_useIsGamepad_0();
    local v17, v18 = v2.useBinding(0);
    return v2.createElement(l_Focusable_0.Frame, {
        Size = v17:map(function(v19)
            return UDim2.new(1, 0, 0, (v19 + 19) + v9.Offset);
        end),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        LayoutOrder = v12.LayoutOrder,
        ref = v12.frameRef,
        NextSelectionUp = v12.NextSelectionUp,
        NextSelectionDown = v12.NextSelectionDown
    }, {
        Layout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Vertical,
            Padding = v9
        }),
        Title = v2.createElement("TextLabel", {
            LayoutOrder = 1,
            BackgroundTransparency = 1,
            AutomaticSize = Enum.AutomaticSize.XY,
            Font = l_Font_0.Header2.Font,
            TextSize = l_Font_0.Header2.RelativeSize * l_Font_0.BaseSize,
            Text = v12.title,
            TextColor3 = l_Theme_0.TextEmphasis.Color,
            TextTransparency = l_Theme_0.TextEmphasis.Transparency
        }),
        RadioButtonGroupContainer = v2.createElement("Frame", {
            Size = v17:map(v7.mapHeightToSize),
            BackgroundTransparency = 1,
            LayoutOrder = 2
        }, {
            RadioButtons = v2.createElement(v5, {
                items = v12.items,
                itemHeight = v6.SortAndFiltersRowHeight,
                selectedValue = v12.selectedValue,
                onActivated = function(v20)
                    if v12.setSelectedValue then
                        v12.setSelectedValue(v20);
                    end;
                end,
                useDefaultControlState = v16,
                onHeightChanged = function(v21)
                    v18(v21);
                    if v12.onHeightChanged then
                        v12.onHeightChanged((v21 + 19) + v9.Offset);
                    end;
                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 l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v5 = require(l_CorePackages_0.UIBlox);
local l_useStyle_0 = v5.Core.Style.useStyle;
local l_useSelectionCursor_0 = v5.App.SelectionImage.useSelectionCursor;
local l_CursorKind_0 = v5.App.SelectionImage.CursorKind;
local l_Images_0 = v5.App.ImageSet.Images;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local v11 = l_Images_0["component_assets/circle_17_stroke_1"];
local v12 = Rect.new(8, 8, 8, 8);
return function(v13)
    local v14 = l_useStyle_0();
    local l_Font_0 = v14.Font;
    local l_Theme_0 = v14.Theme;
    return v2.createElement("Frame", {
        BackgroundTransparency = l_Theme_0.UIMuted.Transparency,
        BackgroundColor3 = l_Theme_0.UIMuted.Color,
        Size = if not v13.width then UDim2.new(1, 0, 0, 30) else UDim2.new(v13.width.Scale, v13.width.Offset, 0, 30),
        AnchorPoint = Vector2.new(0.5, 0.5),
        Position = UDim2.fromScale(0.5, 0.5),
        BorderSizePixel = 0,
        LayoutOrder = v13.layoutOrder
    }, {
        UICorner = v2.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        Outline = v2.createElement(l_ImageSetLabel_0, {
            BackgroundTransparency = 1,
            Image = v11,
            ImageColor3 = l_Theme_0.UIDefault.Color,
            ImageTransparency = l_Theme_0.UIDefault.Transparency,
            LayoutOrder = 1,
            ScaleType = Enum.ScaleType.Slice,
            Size = UDim2.new(1, 0, 0, 30),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            SliceCenter = v12
        }),
        Textbox = v2.createElement(l_Focusable_0.TextBox, {
            Text = v13.text,
            BackgroundTransparency = 1,
            ClearTextOnFocus = false,
            Font = l_Font_0.Header2.Font,
            TextSize = l_Font_0.BaseSize * l_Font_0.CaptionBody.RelativeSize,
            PlaceholderColor3 = l_Theme_0.PlaceHolder.Color,
            PlaceholderText = v13.placeholderText,
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            Size = UDim2.new(1, -16, 1, 0),
            TextColor3 = l_Theme_0.TextDefault.Color,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            OverlayNativeInput = true,
            [v2.Change.Text] = function(v17)
                local l_Text_0 = v17.Text;
                if v13.onTextChanged then
                    v13.onTextChanged(l_Text_0);
                end;
            end,
            [v2.Event.Focused] = v13.onFocused,
            SelectionImageObject = l_useSelectionCursor_0(l_CursorKind_0.InputFields),
            ref = v13.textBoxRef,
            NextSelectionLeft = v13.NextSelectionLeft,
            NextSelectionRight = v13.NextSelectionRight,
            NextSelectionUp = v13.NextSelectionUp,
            NextSelectionDown = v13.NextSelectionDown
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.SalesTypeFilter);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.UnavailableItemFilter);
local v5 = require(l_Modules_0.AvatarExperience.Common.Enum.SortType);
local _ = require(l_Modules_0.AvatarExperience.Common.Enum.SortAggregation);
local _ = require(l_Modules_0.AvatarExperience.Catalog.Reducers.SortAndFilters);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v19 = {
    mapHeightToSize = function(v10)
        return UDim2.new(1, 0, 0, v10);
    end,
    selectCatalogSort = function(v11)
        return v11.AvatarExperience.Catalog.SortAndFilters.CatalogSort;
    end,
    selectCatalogSortAggregation = function(v12)
        return v12.AvatarExperience.Catalog.SortAndFilters.CatalogSortAggregation;
    end,
    selectSalesTypeFilter = function(v13)
        return v13.AvatarExperience.Catalog.SortAndFilters.SalesTypeFilter;
    end,
    selectCreatorFilter = function(v14)
        return v14.AvatarExperience.Catalog.SortAndFilters.CreatorFilter;
    end,
    selectUnavailableItemFilter = function(v15)
        return v15.AvatarExperience.Catalog.SortAndFilters.UnavailableItemFilter;
    end,
    selectMinPrice = function(v16)
        return v16.AvatarExperience.Catalog.SortAndFilters.PriceRange.minPrice;
    end,
    selectMaxPrice = function(v17)
        return v17.AvatarExperience.Catalog.SortAndFilters.PriceRange.maxPrice;
    end,
    selectSortAndFilters = function(v18)
        return v18.AvatarExperience.Catalog.SortAndFilters;
    end
};
local v28 = l_memoize_0(function(v20, v21, v22, v23, v24, v25, v26)
    local v27 = true;
    if v20 ~= v5.MostFavorited then
        v27 = v20 == v5.Bestselling;
    end;
    return v20 .. "," .. (not v27 and "" or v21) .. "," .. v22.minPrice .. "," .. v22.maxPrice .. "," .. v23 .. "," .. v24 .. "," .. v25 .. "," .. table.concat(v26, "-");
end);
v19.selectSortAndFiltersKey = function(v29)
    local l_SortAndFilters_0 = v29.AvatarExperience.Catalog.SortAndFilters;
    return v28(l_SortAndFilters_0.CatalogSort, l_SortAndFilters_0.CatalogSortAggregation, l_SortAndFilters_0.PriceRange, l_SortAndFilters_0.SalesTypeFilter, l_SortAndFilters_0.CreatorFilter, l_SortAndFilters_0.UnavailableItemFilter, l_SortAndFilters_0.SelectedTopics);
end;
return v19;


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_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterUtils);
local v4 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterSubsection);
local v5 = require(l_Modules_0.AvatarExperience.Common.Enum.CreatorFilter);
local v6 = require(l_Modules_0.AvatarExperience.Common.Enum.PriceFilter);
local v7 = require(l_Modules_0.AvatarExperience.Common.Enum.SalesTypeFilter);
local v8 = require(l_Modules_0.AvatarExperience.Common.Enum.UnavailableItemFilter);
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local _ = require(l_Modules_0.AvatarExperience.Catalog.Hooks.useFiltersController);
local v11 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterTextBox);
local v12 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.PriceRangeInput);
local v13 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v14 = require(l_CorePackages_0.Packages.RoactGamepad);
local v15 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXRemovePriceFilters);
local l_Focusable_0 = v14.Focusable;
local v17 = UDim.new(0, 20);
local v18 = UDim.new(0, 12);
return function(v19)
    local v20 = v14.useRefCache();
    local l_filtersController_0 = v19.filtersController;
    local v22 = l_useLocalization_0({
        salesType = "Feature.Catalog.Label.Filter.SalesType",
        all = "Feature.Avatar.Heading.All",
        limited = "Feature.Catalog.Label.Limited",
        premium = "Feature.Catalog.Label.Premium",
        creator = "Feature.Catalog.Label.Filter.Creator",
        allCreators = "Feature.Catalog.LabelAllCreators",
        username = "Feature.Catalog.Label.Username",
        price = "Feature.Catalog.Label.Price",
        anyPrice = "Feature.Catalog.LabelAnyPrice",
        priceRange = "Feature.Catalog.Label.PriceRange",
        unavailableItems = "Feature.Catalog.Label.Filter.UnavailableItems",
        show = "Feature.Catalog.Label.Filter.Show",
        hide = "Feature.Catalog.Label.Filter.Hide"
    });
    local v23, v24 = v2.useBinding(0);
    local v25 = v14.useRefCache();
    local function v27()
        local v26 = ((((v18.Offset * 2 + v17.Offset * 3) + (v25.SalesType.current or 0)) + (v25.Creator.current or 0)) + (v25.Price.current or 0)) + (v25.UnavailableItems.current or 0);
        v24(v26);
        if v19.onHeightChanged then
            v19.onHeightChanged(v26);
        end;
    end;
    return v2.createElement(l_Focusable_0.Frame, {
        Size = v23:map(v3.mapHeightToSize),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        ref = v19.frameRef,
        NextSelectionUp = v19.NextSelectionUp,
        NextSelectionDown = v19.NextSelectionDown,
        defaultChild = v20.SalesType,
        restorePreviousChildFocus = true
    }, {
        Layout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Vertical,
            Padding = v17
        }),
        Padding = v2.createElement("UIPadding", {
            PaddingTop = v18,
            PaddingBottom = v18,
            PaddingLeft = v18
        }),
        SalesType = v2.createElement(v4, {
            LayoutOrder = 1,
            title = v22.salesType,
            items = {
                {
                    text = v22.all,
                    id = v7.All
                },
                {
                    text = v22.limited,
                    id = v7.Collectibles
                },
                {
                    text = v22.premium,
                    id = v7.Premium
                }
            },
            selectedValue = l_filtersController_0.salesTypeFilter,
            setSelectedValue = l_filtersController_0.setSalesTypeFilter,
            frameRef = v20.SalesType,
            NextSelectionDown = v20.Creator,
            onHeightChanged = function(v28)
                v25.SalesType.current = v28;
                v27();
            end
        }),
        Creator = v2.createElement(v4, {
            LayoutOrder = 2,
            title = v22.creator,
            items = {
                {
                    text = v22.allCreators,
                    id = v5.AllCreators
                },
                {
                    id = v5.Username,
                    customView = v2.createElement(v11, {
                        text = l_filtersController_0.creatorUsername,
                        placeholderText = v22.username,
                        onTextChanged = l_filtersController_0.setCreatorUsername,
                        onFocused = function()
                            l_filtersController_0.setCreatorFilter(v5.Username);
                        end
                    })
                }
            },
            selectedValue = l_filtersController_0.creatorFilter,
            setSelectedValue = l_filtersController_0.setCreatorFilter,
            frameRef = v20.Creator,
            NextSelectionUp = v20.SalesType,
            NextSelectionDown = if not not v15() and v19.removePriceRangeQueryIXP then v20.UnavailableItems else v20.Price,
            onHeightChanged = function(v29)
                v25.Creator.current = v29;
                v27();
            end
        }),
        Price = if not not v15() and v19.removePriceRangeQueryIXP then nil else v2.createElement(v4, {
            LayoutOrder = 3,
            title = v22.price,
            items = {
                {
                    text = v22.anyPrice,
                    id = v6.AnyPrice
                },
                {
                    text = v22.priceRange,
                    id = v6.PriceRange,
                    expandedViewHeight = v13.SortAndFiltersRowHeight,
                    expandedView = v2.createElement(v12, {
                        minPrice = l_filtersController_0.minPrice,
                        maxPrice = l_filtersController_0.maxPrice,
                        setMinPrice = l_filtersController_0.setMinPrice,
                        setMaxPrice = l_filtersController_0.setMaxPrice,
                        onFocused = function()
                            l_filtersController_0.setPriceFilter(v6.PriceRange);
                        end
                    })
                }
            },
            selectedValue = l_filtersController_0.priceFilter,
            setSelectedValue = l_filtersController_0.setPriceFilter,
            frameRef = v20.Price,
            NextSelectionUp = v20.Creator,
            NextSelectionDown = v20.UnavailableItems,
            onHeightChanged = function(v30)
                v25.Price.current = v30;
                v27();
            end
        }),
        UnavailableItems = v2.createElement(v4, {
            LayoutOrder = (not not v15() and v19.removePriceRangeQueryIXP) and 3 or 4,
            title = v22.unavailableItems,
            items = {
                {
                    text = v22.hide,
                    id = v8.Hide
                },
                {
                    text = v22.show,
                    id = v8.Show
                }
            },
            selectedValue = l_filtersController_0.unavailableItemFilter,
            setSelectedValue = l_filtersController_0.setUnavailableItemFilter,
            frameRef = v20.UnavailableItems,
            NextSelectionUp = if not not v15() and v19.removePriceRangeQueryIXP then v20.Creator else v20.Price,
            onHeightChanged = function(v31)
                v25.UnavailableItems.current = v31;
                v27();
            end
        })
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Packages.React);
local v5 = require(l_CorePackages_0.UIBlox);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local l_Images_0 = v5.App.ImageSet.Images;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local l_useSelectionCursor_0 = v5.App.SelectionImage.useSelectionCursor;
local l_CursorKind_0 = v5.App.SelectionImage.CursorKind;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local _ = require(l_CorePackages_0.Workspace.Packages.AppCommonLib);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v15 = require(l_Modules_0.AvatarExperience.Common.Utils);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
local v18 = true;
if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.Windows then
    v18 = l_l_UserInputService_0_Platform_0 == Enum.Platform.OSX;
end;
local v19 = l_Images_0["icons/navigation/close"];
local v20 = not v18 and 0 or 0.5;
return function(v21)
    return v4.createElement("Frame", {
        Active = true,
        Size = UDim2.new(1, 0, 0, (l_useSelector_0(v15.getTopBarHeightAvatarScene))),
        BorderSizePixel = 0,
        BackgroundTransparency = 1
    }, {
        TouchFriendlyNavigationButton = v4.createElement(l_Focusable_0.TextButton, {
            AnchorPoint = Vector2.new(0, v20),
            Position = UDim2.new(0, 15, v20, (l_useSelector_0(function(v22)
                return v22.TopBar.statusBarHeight;
            end))),
            Size = UDim2.new(0, 36, 0, 36),
            BackgroundTransparency = 1,
            Text = "",
            [v4.Event.Activated] = v4.useCallback(function()
                v21.closePeekViewSignal:fire();
            end, {
                l_useNavigation_0(),
                v21.closePeekViewSignal
            }),
            ref = v21.buttonRef,
            NextSelectionLeft = v21.NextSelectionLeft,
            NextSelectionRight = v21.NextSelectionRight,
            NextSelectionUp = v21.NextSelectionUp,
            NextSelectionDown = v21.NextSelectionDown,
            SelectionImageObject = l_useSelectionCursor_0(l_CursorKind_0.RoundedRectNoInset)
        }, {
            CloseButton = v4.createElement(l_ImageSetLabel_0, {
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1,
                Position = UDim2.new(0.5, 0, 0.5, 0),
                Size = UDim2.new(0, 36, 0, 36),
                Image = v19,
                ImageColor3 = Color3.new(1, 1, 1)
            })
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Packages.Dash);
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.UIBlox);
local l_useStyle_0 = v4.Core.Style.useStyle;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_StyledTextLabel_0 = v4.App.Text.StyledTextLabel;
local v8 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local v9 = require(script.Parent.FilterTextBox);
local v10 = {
    minPrice = v8.MinPriceFilter,
    maxPrice = v8.MaxPriceFilter
};
return function(v11)
    local v12 = v2.join(v10, v11);
    local v13 = l_useStyle_0();
    local l_Font_0 = v13.Font;
    local l_Theme_0 = v13.Theme;
    local v16 = l_useLocalization_0({
        min = "Feature.Catalog.Label.Filter.PriceMin",
        max = "Feature.Catalog.Label.Filter.PriceMax"
    });
    local v17 = UDim.new(0.5, -13);
    local v19 = v3.useCallback(function(v18)
        if v12.setMinPrice then
            v12.setMinPrice(tonumber(v18) or v8.MinPriceFilter);
        end;
    end, {
        v12.setMinPrice
    });
    local v21 = v3.useCallback(function(v20)
        if v12.setMaxPrice then
            v12.setMaxPrice(tonumber(v20) or v8.MaxPriceFilter);
        end;
    end, {
        v12.setMaxPrice
    });
    local v22 = v3.useRef(nil);
    local v23 = v3.useRef(nil);
    return v3.createElement("Frame", {
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        Size = UDim2.new(1, -12, 0, 30)
    }, {
        UIListLayout = v3.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Horizontal,
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        MinPriceTextBox = v3.createElement(v9, {
            text = if v8.MinPriceFilter < v12.minPrice then tostring(v12.minPrice) else "",
            placeholderText = v16.min,
            onTextChanged = v19,
            onFocused = v12.onFocused,
            width = v17,
            layoutOrder = 1,
            textBoxRef = v22,
            NextSelectionRight = v23
        }),
        Dash = v3.createElement(l_StyledTextLabel_0, {
            size = UDim2.fromOffset(26, 30),
            text = "\226\128\147",
            colorStyle = {
                Color = l_Theme_0.TextEmphasis.Color,
                Transparency = l_Theme_0.TextEmphasis.Transparency
            },
            fontStyle = l_Font_0.Header2,
            textXAlignment = Enum.TextXAlignment.Center,
            layoutOrder = 2
        }),
        MaxPriceTextBox = v3.createElement(v9, {
            text = if v12.maxPrice < v8.MaxPriceFilter then tostring(v12.maxPrice) else "",
            placeholderText = v16.max,
            onTextChanged = v21,
            onFocused = v12.onFocused,
            width = v17,
            layoutOrder = 3,
            textBoxRef = v23,
            NextSelectionLeft = v22
        })
    });
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.Cryo);
local v4 = require(l_CorePackages_0.UIBlox);
local l_useSelectionCursor_0 = v4.App.SelectionImage.useSelectionCursor;
local l_CursorKind_0 = v4.App.SelectionImage.CursorKind;
local v7 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_Focusable_0 = v7.Focusable;
local _ = require(l_CorePackages_0.Packages.Dash);
local v10 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterUtils);
local v11 = require(script.Parent.RadioButtonItem);
local function v29(v12)
    local v13 = v7.useRefCache();
    local v14 = l_useSelectionCursor_0(l_CursorKind_0.Square);
    local v15, v16 = v2.useBinding(0);
    local v17 = v7.useRefCache();
    local function v21()
        local v18 = 0;
        for _, v20 in v12.items, nil, nil do
            v18 = v18 + (v17[v20.id].current or 0);
        end;
        v16(v18);
        if v12.onHeightChanged then
            v12.onHeightChanged(v18);
        end;
    end;
    local v22 = {
        layout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 1)
        })
    };
    for v23, v24 in v12.items, nil, nil do
        local v25 = v12.selectedValue == v24.id;
        local v26 = v13["defaultChild-" .. v23];
        v22["radioButtonItem" .. v24.id] = v2.createElement(l_Focusable_0[v11], {
            id = v24.id,
            text = v24.text,
            onActivated = v12.onActivated,
            isSelected = v25,
            isDisabled = v24.isDisabled,
            layoutOrder = v23,
            itemHeight = v12.itemHeight,
            customView = v24.customView,
            expandedView = v24.expandedView,
            expandedViewHeight = v24.expandedViewHeight,
            useDefaultControlState = v12.useDefaultControlState,
            hideDivider = v12.hideDividers or v23 == #v12.items,
            ref = v13[v23],
            defaultChildRef = v26,
            defaultChild = v26,
            restorePreviousChildFocus = v25,
            NextSelectionUp = if v23 > 1 then v13[v23 - 1] else nil,
            NextSelectionDown = if v23 < #v12.items then v13[v23 + 1] else nil,
            SelectionImageObject = v14,
            onHeightChanged = function(v27)
                v17[v24.id].current = v27;
                v21();
            end
        });
    end;
    local v28 = v12.items and #v12.items > 0;
    return v2.createElement(not not v28 and l_Focusable_0.Frame or "Frame", {
        defaultChild = not not v28 and v13[1] or nil,
        Size = v15:map(v10.mapHeightToSize),
        BackgroundTransparency = 1,
        LayoutOrder = v12.layoutOrder,
        NextSelectionLeft = v12.NextSelectionLeft,
        NextSelectionRight = v12.NextSelectionRight,
        NextSelectionDown = v12.NextSelectionDown,
        NextSelectionUp = v12.NextSelectionUp,
        restorePreviousChildFocus = v28 or nil,
        ref = v12.frameRef
    }, v22);
end;
return v2.forwardRef(function(v30, v31)
    return v2.createElement(v29, v3.Dictionary.join(v30, {
        frameRef = v31
    }));
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.Cryo);
local v4 = require(l_CorePackages_0.UIBlox);
local l_useStyle_0 = v4.Core.Style.useStyle;
local l_Interactable_0 = v4.Core.Control.Interactable;
local l_StyledTextLabel_0 = v4.App.Text.StyledTextLabel;
local l_Images_0 = v4.App.ImageSet.Images;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local l_ControlState_0 = v4.Core.Control.Enum.ControlState;
local v11 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterUtils);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.ExpandingFrame);
local v14 = l_Images_0["component_assets/circle_24_stroke_1"];
local v15 = l_Images_0["component_assets/circle_16"];
local v16 = {
    [l_ControlState_0.Default] = "BackgroundDefault",
    [l_ControlState_0.Hover] = "BackgroundOnHover",
    [l_ControlState_0.Pressed] = "BackgroundOnPress"
};
local v17 = {
    [l_ControlState_0.Default] = "IconDefault",
    [l_ControlState_0.Hover] = "IconEmphasis",
    [l_ControlState_0.Pressed] = "IconDefault"
};
local function v23(v18, v19, v20)
    local v21 = v18[v19] or v18[l_ControlState_0.Default];
    local v22 = {
        Color = v20.Theme[v21].Color,
        Transparency = v20.Theme[v21].Transparency
    };
    if not (v19 ~= l_ControlState_0.Default) or v19 == l_ControlState_0.Disabled then
        v22.Transparency = 1;
    end;
    return v22;
end;
local function v29(v24, v25, v26)
    local v27 = v24[v25] or v24[l_ControlState_0.Default];
    local v28 = {
        Color = v26.Theme[v27].Color,
        Transparency = v26.Theme[v27].Transparency
    };
    if not (v25 ~= l_ControlState_0.Disabled) or v25 == l_ControlState_0.Pressed then
        v28.Transparency = 0.5 * v28.Transparency + 0.5;
    end;
    return v28;
end;
local function _(v30, v31)
    local v32 = {
        Color = v30.Color,
        Transparency = v30.Transparency
    };
    if not (v31 ~= l_ControlState_0.Disabled) or v31 == l_ControlState_0.Pressed then
        v32.Transparency = 0.5 * v32.Transparency + 0.5;
    end;
    return v32;
end;
local function v56(v34)
    local v35, v36 = v2.useState(l_ControlState_0.Initialize);
    local v39 = v2.useCallback(function(_, v38)
        v36(v38);
    end, {});
    local v40 = v2.useCallback(function()
        if v34.onActivated then
            v34.onActivated(v34.id);
        end;
    end, {
        v34.onActivated,
        v34.id
    });
    local v41 = l_useStyle_0();
    local l_Font_0 = v41.Font;
    local l_Theme_0 = v41.Theme;
    v35 = not not v34.useDefaultControlState and l_ControlState_0.Default or v35;
    local v44 = v29(v17, v35, v41);
    local v45 = v23(v16, v35, v41);
    local v46 = if not v34.isSelected then l_Theme_0.TextDefault else l_Theme_0.TextEmphasis;
    local l_v35_0 = v35;
    local v48 = {
        Color = v46.Color,
        Transparency = v46.Transparency
    };
    if not (l_v35_0 ~= l_ControlState_0.Disabled) or l_v35_0 == l_ControlState_0.Pressed then
        v48.Transparency = 0.5 * v48.Transparency + 0.5;
    end;
    local l_v48_0 = v48;
    v46 = v34.itemHeight or 45;
    l_v35_0 = v2.useRef(nil);
    local v50;
    v48, v50 = v2.useBinding(v46);
    local function v53(v51)
        local l_v46_0 = v46;
        if v51 then
            l_v46_0 = l_v46_0 + v51.AbsoluteSize.Y;
        end;
        if not v34.hideDivider then
            l_v46_0 = l_v46_0 + 1;
        end;
        v50(l_v46_0);
        if v34.onHeightChanged then
            v34.onHeightChanged(l_v46_0);
        end;
    end;
    v2.useEffect(function()
        local l_current_0 = l_v35_0.current;
        local l_v46_1 = v46;
        if l_current_0 then
            l_v46_1 = l_v46_1 + l_current_0.AbsoluteSize.Y;
        end;
        if not v34.hideDivider then
            l_v46_1 = l_v46_1 + 1;
        end;
        v50(l_v46_1);
        if v34.onHeightChanged then
            v34.onHeightChanged(l_v46_1);
        end;
    end, {});
    return v2.createElement("Frame", {
        Size = v48:map(v11.mapHeightToSize),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        LayoutOrder = v34.layoutOrder,
        ref = v34.frameRef,
        NextSelectionLeft = v34.NextSelectionLeft,
        NextSelectionRight = v34.NextSelectionRight,
        NextSelectionUp = v34.NextSelectionUp,
        NextSelectionDown = v34.NextSelectionDown
    }, {
        UIListLayout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Right
        }),
        Interactable = v2.createElement(l_Focusable_0[l_Interactable_0], {
            LayoutOrder = 1,
            Size = UDim2.new(1, 0, 0, v46),
            BackgroundColor3 = v45.Color,
            BackgroundTransparency = v45.Transparency,
            BorderSizePixel = 0,
            AutoButtonColor = false,
            [v2.Event.Activated] = not v34.isDisabled and v40,
            ref = v34.defaultChildRef,
            NextSelectionDown = if not (v34.expandedView and v34.isSelected == true) then nil else l_v35_0,
            SelectionImageObject = v34.SelectionImageObject,
            isDisabled = v34.isDisabled,
            onStateChanged = v39
        }, {
            Contents = v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 0, v46),
                LayoutOrder = 1
            }, {
                UIPadding = v2.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 24),
                    PaddingTop = UDim.new(0, 12),
                    PaddingBottom = UDim.new(0, 12),
                    PaddingRight = UDim.new(0, 12)
                }),
                UIListLayout = v2.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                CustomViewFrame = v34.customView and v2.createElement("Frame", {
                    Size = UDim2.new(1, -48, 1, 0),
                    BorderSizePixel = 0,
                    BackgroundTransparency = 1,
                    LayoutOrder = 1
                }, {
                    CustomView = v34.customView
                }),
                CustomViewSpacer = v34.customView and v2.createElement("Frame", {
                    Size = UDim2.new(0, 24, 1, 0),
                    BorderSizePixel = 0,
                    BackgroundTransparency = 1,
                    LayoutOrder = 2
                }),
                TitleText = (v34.text and not v34.customView) and v2.createElement(l_StyledTextLabel_0, {
                    size = UDim2.new(1, -24, 1, 0),
                    colorStyle = l_v48_0,
                    fontStyle = l_Font_0.Header2,
                    text = v34.text,
                    layoutOrder = 1,
                    textXAlignment = Enum.TextXAlignment.Left
                }),
                RightContent = v2.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(0, 24, 1, 0),
                    LayoutOrder = 3
                }, {
                    SelectionImage = v2.createElement(l_ImageSetLabel_0, {
                        BackgroundTransparency = 1,
                        Image = v14,
                        Size = UDim2.new(0, 24, 0, 24),
                        ImageColor3 = v44.Color,
                        ImageTransparency = v44.Transparency,
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Position = UDim2.new(0.5, 0, 0.5, 0)
                    }, {
                        SelectedImage = v34.isSelected and v2.createElement(l_ImageSetLabel_0, {
                            BackgroundTransparency = 1,
                            Image = v15,
                            Size = UDim2.new(0, 16, 0, 16),
                            ImageColor3 = v44.Color,
                            ImageTransparency = v44.Transparency,
                            AnchorPoint = Vector2.new(0.5, 0.5),
                            Position = UDim2.new(0.5, 0, 0.5, 0)
                        })
                    })
                })
            })
        }),
        ExpandingFrame = v34.expandedView and v2.createElement(l_Focusable_0[v13], {
            LayoutOrder = 2,
            Size = UDim2.new(1, -24, 0, v34.expandedViewHeight or 0),
            isExpanded = v34.isSelected == true,
            onAbsoluteSizeChanged = v53,
            ref = l_v35_0,
            NextSelectionUp = v34.defaultChildRef
        }, {
            ExpandedView = v34.expandedView
        }),
        DividerFrame = v2.createElement("Frame", {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            LayoutOrder = 3,
            Size = UDim2.new(1, 0, 0, 1)
        }, {
            Divider = not v34.hideDivider and v2.createElement("Frame", {
                Size = UDim2.new(1, -24, 0, 1),
                Position = UDim2.new(1, -12, 0, 0),
                AnchorPoint = Vector2.new(1, 0),
                BorderSizePixel = 0,
                BackgroundColor3 = l_Theme_0.Divider.Color,
                BackgroundTransparency = l_Theme_0.Divider.Transparency
            })
        })
    });
end;
return v2.forwardRef(function(v57, v58)
    return v2.createElement(v56, v3.Dictionary.join(v57, {
        frameRef = v58
    }));
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_getPageMargin_0 = v3.App.Container.getPageMargin;
local l_ButtonStack_0 = v3.App.Button.ButtonStack;
local l_ButtonType_0 = v3.App.Button.Enum.ButtonType;
local l_useStyle_0 = v3.Core.Style.useStyle;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_useProperty_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useProperty;
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
return function(v12)
    local l_Theme_0 = l_useStyle_0().Theme;
    local v14 = l_useLocalization_0({
        apply = "CommonUI.Messages.Action.Apply",
        reset = "CommonUI.Messages.Action.Reset"
    });
    local v15 = v12.frameRef or v2.useRef(nil);
    local v16 = l_useProperty_0(v15, "AbsoluteSize");
    local v17 = not v16 and 0 or l_getPageMargin_0(v16.X);
    return v2.createElement(l_Focusable_0.Frame, {
        BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
        BackgroundTransparency = l_Theme_0.BackgroundUIDefault.Transparency,
        Size = UDim2.new(1, 0, 0, v12.height),
        AutomaticSize = Enum.AutomaticSize.Y,
        NextSelectionUp = v12.NextSelectionUp,
        NextSelectionDown = v12.NextSelectionDown,
        NextSelectionRight = v12.NextSelectionRight,
        NextSelectionLeft = v12.NextSelectionLeft,
        ref = v15
    }, {
        Padding = v2.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v17),
            PaddingRight = UDim.new(0, v17),
            PaddingTop = UDim.new(0, 32)
        }),
        Gradient = v2.createElement("UIGradient", {
            Rotation = 270,
            Transparency = NumberSequence.new({
                NumberSequenceKeypoint.new(0, l_Theme_0.BackgroundDefault.Transparency),
                NumberSequenceKeypoint.new(0.8, l_Theme_0.BackgroundDefault.Transparency),
                NumberSequenceKeypoint.new(1, 1)
            })
        }),
        Buttons = v2.createElement(l_ButtonStack_0, {
            buttons = {
                {
                    props = {
                        onActivated = v12.onReset,
                        text = v14.reset,
                        isDisabled = not v12.canReset
                    }
                },
                {
                    buttonType = l_ButtonType_0.PrimarySystem,
                    props = {
                        onActivated = v12.onApply,
                        text = v14.apply,
                        isDisabled = not v12.canApply
                    },
                    isDefaultChild = true
                }
            }
        })
    });
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 l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_useIsGamepad_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useIsGamepad;
local v5 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.RadioButtonGroup);
local v6 = require(l_Modules_0.AvatarExperience.Common.Enum.SortAggregation);
local v7 = require(l_Modules_0.AvatarExperience.Common.Constants);
return function(v8)
    local v9 = l_useLocalization_0({
        allTime = "Feature.Catalog.LabelAllTime",
        pastWeek = "Feature.Catalog.LabelPastWeek",
        pastDay = "Feature.Catalog.LabelPastDay"
    });
    local v10 = {
        {
            text = v9.allTime,
            id = v6.AllTime
        },
        {
            text = v9.pastWeek,
            id = v6.PastWeek
        },
        {
            text = v9.pastDay,
            id = v6.PastDay
        }
    };
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, v7.SortAndFiltersSmallRowHeight * #v10),
        BackgroundTransparency = 1,
        LayoutOrder = 2
    }, {
        SortRadioButtons = v2.createElement(v5, {
            items = v10,
            hideDividers = true,
            itemHeight = v7.SortAndFiltersSmallRowHeight,
            selectedValue = v8.sortAggregation,
            onActivated = v8.setSortAggregation,
            useDefaultControlState = l_useIsGamepad_0()
        })
    });
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 l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local _ = require(l_Modules_0.AvatarExperience.Catalog.Hooks.useSortsController);
local l_useIsGamepad_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useIsGamepad;
local v6 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.RadioButtonGroup);
local v7 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.SortAggregationGroup);
local v8 = require(l_Modules_0.AvatarExperience.Common.Enum.SortType);
local v9 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v10 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local v11 = require(l_Modules_0.AvatarExperience.Catalog.Components.Filters.FilterUtils);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v13 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXRemovePriceFilters);
local v14 = UDim.new(0, 12);
local v15 = 6 + v9.SortAndFiltersSmallRowHeight * 3;
local function _(v16)
    return v16 + v14.Offset * 2;
end;
return function(v18)
    local l_sortsController_0 = v18.sortsController;
    local v20 = l_useLocalization_0(v10.SortTypeLocalization);
    local l_RecentlyCreated_0 = v8.RecentlyCreated;
    local v22 = {
        {
            text = v20.Relevance,
            id = v8.Relevance
        },
        {
            text = v20.MostFavorited,
            id = v8.MostFavorited,
            expandedViewHeight = v15,
            expandedView = v2.createElement(v7, {
                sortAggregation = l_sortsController_0.mostFavoritedAggregation,
                setSortAggregation = l_sortsController_0.setMostFavoritedAggregation
            })
        },
        {
            text = v20.Bestselling,
            id = v8.Bestselling,
            expandedViewHeight = v15,
            expandedView = v2.createElement(v7, {
                sortAggregation = l_sortsController_0.bestSellingAggregation,
                setSortAggregation = l_sortsController_0.setBestSellingAggregation
            })
        },
        {
            text = v20.PriceLowToHigh,
            id = v8.PriceLowToHigh
        },
        {
            text = v20.PriceHighToLow,
            id = v8.PriceHighToLow
        },
        {
            text = v20[l_RecentlyCreated_0],
            id = l_RecentlyCreated_0
        }
    };
    if not (not v13() or not v18.removePriceSortIXP) then
        local v23 = {};
        for v24 = 1, #v22 do
            if v22[v24].id ~= v8.PriceLowToHigh and v22[v24].id ~= v8.PriceHighToLow then
                table.insert(v23, v22[v24]);
            end;
        end;
        v22 = v23;
    end;
    local v25 = l_useIsGamepad_0();
    local v26, v27 = v2.useBinding(0);
    return v2.createElement(l_Focusable_0.Frame, {
        Size = v26:map(function(v28)
            return UDim2.new(1, 0, 0, v28 + v14.Offset * 2);
        end),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        ref = v18.frameRef,
        NextSelectionUp = v18.NextSelectionUp,
        NextSelectionDown = v18.NextSelectionDown
    }, {
        Layout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Vertical,
            Padding = v14
        }),
        Padding = v2.createElement("UIPadding", {
            PaddingTop = v14,
            PaddingBottom = v14,
            PaddingLeft = v14
        }),
        RadioButtonGroupContainer = v2.createElement("Frame", {
            Size = v26:map(v11.mapHeightToSize),
            BackgroundTransparency = 1,
            LayoutOrder = 2
        }, {
            SortRadioButtons = v2.createElement(v6, {
                items = v22,
                itemHeight = v9.SortAndFiltersRowHeight,
                selectedValue = l_sortsController_0.sortType,
                onActivated = function(v29)
                    l_sortsController_0.setSortType(v29);
                end,
                useDefaultControlState = v25,
                onHeightChanged = function(v30)
                    v27(v30);
                    if v18.onHeightChanged then
                        v18.onHeightChanged(v30 + v14.Offset * 2);
                    end;
                end
            })
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Roact);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v4 = require(l_CorePackages_0.UIBlox);
local l_withSelectionCursorProvider_0 = v4.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v4.App.SelectionImage.CursorKind;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local v8 = Rect.new(7, 8, 7, 8);
local v9 = v2.PureComponent:extend("IconTextBox");
v9.defaultProps = {
    LayoutOrder = 0,
    imagePadding = 6
};
v9.render = function(v10)
    return v4.Style.withStyle(function(v11)
        local l_Font_0 = v11.Font;
        local l_Theme_0 = v11.Theme;
        local l_Image_0 = v10.props.Image;
        local l_imagePadding_0 = v10.props.imagePadding;
        local l_LayoutOrder_0 = v10.props.LayoutOrder;
        local l_PlaceholderText_0 = v10.props.PlaceholderText;
        local v18 = l_Font_0.BaseSize * l_Font_0.Body.RelativeSize;
        local v19 = v18 + l_imagePadding_0 * 2;
        local l_forwardRef_0 = v10.props.forwardRef;
        return l_withSelectionCursorProvider_0(function(v21)
            return v2.createElement("ImageLabel", {
                ImageRectSize = Vector2.new(0, 0),
                BackgroundTransparency = 1,
                Image = "rbxasset://textures/ui/LuaDiscussions/buttonStroke.png",
                ImageColor3 = l_Theme_0.UIDefault.Color,
                ImageRectOffset = Vector2.new(0, 0),
                LayoutOrder = l_LayoutOrder_0,
                ScaleType = Enum.ScaleType.Slice,
                Size = UDim2.new(1, 0, 0, 30),
                SliceCenter = v8
            }, {
                IconImage = v2.createElement(l_ImageSetLabel_0, {
                    AnchorPoint = Vector2.new(0, 0.5),
                    LayoutOrder = 1,
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Position = UDim2.new(0, l_imagePadding_0, 0.5, 0),
                    Size = UDim2.new(0, v18, 0, v18),
                    Image = l_Image_0,
                    ImageColor3 = l_Theme_0.TextDefault.Color,
                    ImageTransparency = l_Theme_0.TextDefault.Transparency
                }),
                Textbox = v2.createElement(l_Focusable_0.TextBox, {
                    BackgroundTransparency = 1,
                    ClearTextOnFocus = false,
                    Font = l_Font_0.Header2.Font,
                    PlaceholderText = l_PlaceholderText_0,
                    PlaceholderColor3 = l_Theme_0.PlaceHolder.Color,
                    Position = UDim2.new(0, v19, 0, 0),
                    Size = UDim2.new(1, -v19, 1, 0),
                    TextInputType = v10.props.TextInputType,
                    Text = "",
                    TextColor3 = l_Theme_0.TextDefault.Color,
                    TextSize = v18,
                    TextTruncate = Enum.TextTruncate.AtEnd,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    OverlayNativeInput = true,
                    [v2.Change.Text] = v10.props[v2.Change.Text],
                    [v2.Ref] = l_forwardRef_0,
                    NextSelectionLeft = v10.props.NextSelectionLeft,
                    NextSelectionRight = v10.props.NextSelectionRight,
                    NextSelectionUp = v10.props.NextSelectionUp,
                    NextSelectionDown = v10.props.NextSelectionDown,
                    SelectionImageObject = v21(l_CursorKind_0.RoundedRectNoInset)
                })
            });
        end);
    end);
end;
return v2.forwardRef(function(v22, v23)
    return v2.createElement(v9, v1.Dictionary.join(v22, {
        forwardRef = v23
    }));
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_Modules_0.LuaApp.Hooks.useLocalization);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v6 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v7 = require(l_CorePackages_0.UIBlox);
local l_ContextualMenu_0 = v7.App.Menu.ContextualMenu;
local l_MenuDirection_0 = v7.App.Menu.MenuDirection;
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.useRoactService);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.withOverlayFocusHandling);
local v14 = require(l_Modules_0.LuaApp.Thunks.OpenGameDetails);
local l_ApiFetchGameIcons_0 = require(l_CorePackages_0.Workspace.Packages.GameIconRodux).GameIcons.ApiFetchGameIcons;
local _ = require(l_Modules_0.AvatarExperience.Common.Models.CollectibleInstance);
local l_GameIconReducer_0 = require(l_CorePackages_0.Workspace.Packages.GameIconRodux).GameIcons.GameIconReducer;
local v18 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXFixItemExpMenuOverlays);
local v19 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXExperienceItemDeepLinkCrashFix);
return v13(function(v20)
    local v21 = l_useDispatch_0();
    local v22 = v12(v6);
    local v23, v24 = v2.useState(nil);
    local v26 = l_useSelector_0(function(v25)
        return v25.ScreenSize;
    end);
    local v28 = l_useSelector_0(function(v27)
        return v27[l_GameIconReducer_0.key];
    end);
    local v29 = v3({
        soldOutTitle = "Feature.Catalog.Label.ItemExperienceSoldOutTitle",
        soldOutMessage = "Feature.Catalog.Label.ItemExperienceSoldOut",
        limitReachedTitle = "Feature.Catalog.Label.ItemExperienceLimitReachedTitle",
        limitReachedMessage = "Feature.Catalog.Label.ItemExperienceLimitReached"
    });
    local l_params_0 = v20.navigation.state.params;
    local l_collectibleData_0 = l_params_0.collectibleData;
    local v32 = l_collectibleData_0 and l_collectibleData_0.experiences;
    local v33 = not v32 and 0 or #v32;
    local v35 = l_useSelector_0(function(v34)
        if (not v19() or not l_collectibleData_0) or not l_collectibleData_0.collectibleItemId then
            if not l_collectibleData_0.collectibleItemId then
                return {};
            else
                return v34.AvatarExperience.Common.Collectibles.CollectiblesResellableInstances[l_collectibleData_0.collectibleItemId] or {};
            end;
        else
            return v34.AvatarExperience.Common.Collectibles.CollectiblesResellableInstances[l_collectibleData_0.collectibleItemId] or {};
        end;
    end);
    v2.useEffect(function()
        if not v19() or v32 then
            local v36 = {};
            for _, v38 in ipairs(v32) do
                table.insert(v36, v38.id);
            end;
            v21(l_ApiFetchGameIcons_0(v22, v36));
            if v33 == 1 then
                v24(v32[1]);
            end;
            return ;
        else
            return ;
        end;
    end, {
        v32,
        v22
    });
    v2.useEffect(function()
    end, {
        v28
    });
    v2.useEffect(function()
        if v23 then
            assert(v23, "");
            local v39 = tostring(v23.id);
            local v40 = 0;
            for _, _ in v35, nil, nil do
                v40 = v40 + 1;
            end;
            v4.closeOverlay(v20.navigation);
            local v43 = nil;
            local v44 = nil;
            if l_collectibleData_0.unitsAvailableForConsumption == 0 then
                v43 = v29.soldOutTitle;
                v44 = v29.soldOutMessage;
            elseif l_collectibleData_0.quantityLimitPerUser > 0 and l_collectibleData_0.quantityLimitPerUser <= v40 then
                v43 = v29.limitReachedTitle;
                v44 = v29.limitReachedMessage;
            end;
            if not v43 and not v44 then
                v21(v14(v39, {}));
                return ;
            else
                v20.navigation.navigate(v5.OpenExperienceTraversalPrompt, {
                    gameName = v23.name,
                    gameUniverseId = v39,
                    overrideTitle = v43,
                    overrideBody = if not v44 then nil else v44:gsub("{EXPERIENCE_NAME}", v23.name),
                    hideConfirmationButton = true
                });
                return ;
            end;
        else
            return ;
        end;
    end, {
        v23,
        l_collectibleData_0
    });
    local v45 = v2.useCallback(function()
        v4.closeOverlay(v20.navigation);
    end, {
        v20.navigation
    });
    if not v32 or v33 == 1 then
        return ;
    else
        local v46 = {};
        for _, v48 in ipairs(v32) do
            local v49 = v28[tostring(v48.id)];
            table.insert(v46, {
                icon = if not v49 then nil else v49.url,
                text = v48.name,
                onActivated = function()
                    v24(v48);
                end
            });
        end;
        return v2.createElement(l_ContextualMenu_0, {
            buttonProps = v46,
            open = true,
            menuDirection = if not l_params_0.menuDirection then l_MenuDirection_0.Up else l_params_0.menuDirection,
            openPositionY = if not l_params_0.openPositionY then UDim.new(1, -76) else l_params_0.openPositionY,
            openPositionX = UDim.new(0.35, 0),
            closeBackgroundVisible = not v18() and true or false,
            screenSize = v26,
            onDismiss = if not v18() then nil else v45
        });
    end;
end);


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(l_CorePackages_0.UIBlox);
local v6 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v8 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_withStyle_0 = v5.Style.withStyle;
local v11 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v12 = require(l_Modules_0.AvatarExperience.Common.Actions.ClearAnimationPreview);
local v13 = require(l_Modules_0.AvatarExperience.Common.Actions.SetAnimationPreview);
local v14 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.FetchAssetOrBundleInfo);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v17 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
local v18 = {
    {
        AssetType = v11.AssetTypeIdStrings.IdleAnimation,
        Label = "Feature.Avatar.Label.Idle"
    },
    {
        AssetType = v11.AssetTypeIdStrings.WalkAnimation,
        Label = "Feature.Avatar.Label.Walk"
    },
    {
        AssetType = v11.AssetTypeIdStrings.RunAnimation,
        Label = "Feature.Avatar.Label.Run"
    },
    {
        AssetType = v11.AssetTypeIdStrings.JumpAnimation,
        Label = "Feature.Avatar.Label.Jump"
    },
    {
        AssetType = v11.AssetTypeIdStrings.FallAnimation,
        Label = "Feature.Avatar.Label.Fall"
    },
    {
        AssetType = v11.AssetTypeIdStrings.ClimbAnimation,
        Label = "Feature.Avatar.Label.Climb"
    },
    {
        AssetType = v11.AssetTypeIdStrings.SwimAnimation,
        Label = "Feature.Avatar.Label.Swim"
    }
};
local v19 = v3.PureComponent:extend("AnimationTabs");
v19.init = function(v20)
    v20.isMounted = false;
    v20.isRunningLoop = false;
    v20.validPreviews = {};
    v20.state = {
        previewIndex = 0
    };
end;
v19.updateValidPreviews = function(v21)
    local l_assetInfosByAssetType_0 = v21.props.assetInfosByAssetType;
    if not l_assetInfosByAssetType_0 then
        v21.validPreviews = {};
        return ;
    else
        local v23 = {};
        for _, v25 in v18, nil, nil do
            if l_assetInfosByAssetType_0[v25.AssetType] then
                v23[#v23 + 1] = v25;
            end;
        end;
        v21.validPreviews = v23;
        return ;
    end;
end;
v19.startPreviewLoop = function(v26)
    if not v26.isRunningLoop then
        v26.isRunningLoop = true;
        spawn(function()
            if v26.isMounted and v26.state.previewIndex == 0 then
                v26:setState({
                    previewIndex = 1
                });
            end;
            while true do
                wait(2);
                if v26.isMounted then
                    local l_validPreviews_0 = v26.validPreviews;
                    local v28 = v26.state.previewIndex + 1;
                    if #l_validPreviews_0 < v28 then
                        v28 = 1;
                    end;
                    v26:setState({
                        previewIndex = v28
                    });
                else
                    break;
                end;
            end;
            v26.isRunningLoop = false;
        end);
        return ;
    else
        return ;
    end;
end;
v19.renderWithStyle = function(v29, v30)
    if v29.props.assetInfosByAssetType then
        local l_previewIndex_0 = v29.state.previewIndex;
        local l_validPreviews_1 = v29.validPreviews;
        local v33 = l_validPreviews_1[l_previewIndex_0];
        if v33 then
            local l_Font_0 = v30.Font;
            local l_Theme_0 = v30.Theme;
            local l_Font_1 = l_Font_0.SubHeader1.Font;
            local v37 = l_Font_0.BaseSize * l_Font_0.SubHeader1.RelativeSize;
            local v38 = 1 / #l_validPreviews_1;
            local v39 = {};
            for v40 = 1, #l_validPreviews_1 do
                local v41 = l_previewIndex_0 == v40;
                v39[v40] = v3.createElement("Frame", {
                    AnchorPoint = Vector2.new(1, 0),
                    BackgroundTransparency = 1,
                    Size = UDim2.new(v38, 0, 1, 0),
                    Position = UDim2.new(v38 * v40, 0, 0, 0)
                }, {
                    Tab = v3.createElement("Frame", {
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        BorderSizePixel = 0,
                        BackgroundColor3 = not not v41 and l_Theme_0.UIEmphasis.Color or l_Theme_0.UIMuted.Color,
                        Transparency = not not v41 and l_Theme_0.UIEmphasis.Transparency or l_Theme_0.UIMuted.Transparency,
                        Size = UDim2.new(1, -4, 0, 6),
                        Position = UDim2.new(0.5, 0, 0.5, 0)
                    })
                });
            end;
            return l_withLocalization_0({
                labelText = v33.Label
            })(function(v42)
                return v3.createElement("Frame", {
                    Size = UDim2.new(1, 0, 1, 0),
                    BackgroundTransparency = 1
                }, {
                    ListLayout = v3.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Vertical,
                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        Padding = UDim.new(0, 0)
                    }),
                    Tabs = v3.createElement("Frame", {
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 0, 20),
                        LayoutOrder = 1
                    }, v39),
                    Label = v3.createElement("TextLabel", {
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, -4, 0, 20),
                        Text = v42.labelText,
                        Font = l_Font_1,
                        TextSize = v37,
                        TextColor3 = l_Theme_0.TextEmphasis.Color,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Top,
                        TextWrapped = true,
                        LayoutOrder = 2
                    })
                });
            end);
        else
            return ;
        end;
    else
        return ;
    end;
end;
v19.render = function(v43)
    return l_withStyle_0(function(v44)
        return v43:renderWithStyle(v44);
    end);
end;
v19.didUpdate = function(v45, v46, v47)
    local l_assetInfosByAssetType_1 = v46.assetInfosByAssetType;
    local l_assetInfosByAssetType_2 = v45.props.assetInfosByAssetType;
    if l_assetInfosByAssetType_2 ~= l_assetInfosByAssetType_1 then
        v45:updateValidPreviews();
    end;
    if not (l_assetInfosByAssetType_1 or not l_assetInfosByAssetType_2) then
        v45:startPreviewLoop();
    end;
    local l_previewIndex_1 = v47.previewIndex;
    local l_previewIndex_2 = v45.state.previewIndex;
    if l_previewIndex_1 ~= l_previewIndex_2 then
        local v52 = v45.validPreviews[l_previewIndex_2];
        local v53 = if not v52 then nil else l_assetInfosByAssetType_2[v52.AssetType];
        if v53 then
            v45.props.setAnimationPreview(v53.id, v52.AssetType);
        end;
    end;
end;
v19.didMount = function(v54)
    v54.isMounted = true;
    if not v54.props.assetInfosByAssetType then
        local l_analytics_0 = v54.props.analytics;
        local l_networking_0 = v54.props.networking;
        for _, v58 in v54.props.assetIds, nil, nil do
            v54.props.fetchItemDetails(l_networking_0, l_analytics_0, v58, v11.ItemType.Asset);
        end;
        return ;
    else
        v54:updateValidPreviews();
        v54:startPreviewLoop();
        return ;
    end;
end;
v19.willUnmount = function(v59)
    v59.props.clearAnimationPreview();
    v59.isMounted = false;
end;
local function v68(v60)
    local v61 = {};
    if not v17 then
        local l_DEPRECATED_itemData_0 = v60.DEPRECATED_itemData;
        if not (not l_DEPRECATED_itemData_0 or not l_DEPRECATED_itemData_0.items) then
            for _, v64 in l_DEPRECATED_itemData_0.items, nil, nil do
                if v64.type == v11.ItemType.Asset then
                    v61[#v61 + 1] = v64.id;
                end;
            end;
        end;
        return v61;
    else
        local l_itemInfo_0 = v60.itemInfo;
        if l_itemInfo_0 then
            if l_itemInfo_0.bundleInfo then
                if l_itemInfo_0.bundleInfo.items then
                    for _, v67 in l_itemInfo_0.bundleInfo.items, nil, nil do
                        if v67.type == v11.ItemType.Asset then
                            v61[#v61 + 1] = v67.id;
                        end;
                    end;
                    return v61;
                else
                    return v61;
                end;
            else
                return v61;
            end;
        else
            return v61;
        end;
    end;
end;
local function v76(v69, v70)
    local v71 = {};
    local v72 = false;
    for _, v74 in v69, nil, nil do
        local v75 = v70[v74];
        if v75 then
            if v75.assetType then
                assert(v75.assetType, "silence type checker");
                v71[v75.assetType] = v75;
                v72 = true;
            else
                return nil;
            end;
        else
            return nil;
        end;
    end;
    return not not v72 and v71 or nil;
end;
local function v86(v77, v78)
    local v79 = v68(v78);
    local l_AssetInfos_0 = v77.AvatarExperience.Common.AssetInfos;
    local v81 = {};
    local v82 = false;
    for _, v84 in v79, nil, nil do
        local v85 = l_AssetInfos_0[v84];
        if v85 then
            if v85.assetType then
                assert(v85.assetType, "silence type checker");
                v81[v85.assetType] = v85;
                v82 = true;
            else
                return nil;
            end;
        else
            return nil;
        end;
    end;
    return not not v82 and v81 or nil;
end;
return v4.connect(function(v87, v88)
    if not v17 then
        return {
            assetIds = v68(v88),
            assetInfosByAssetType = v86(v87, v88)
        };
    else
        local v89 = v68(v88);
        return {
            assetIds = v89,
            assetInfosByAssetType = v76(v89, v87.AvatarExperience.Common.AssetInfos)
        };
    end;
end, function(v90)
    return {
        fetchItemDetails = function(v91, v92, v93, v94)
            return v90(v14(v91, v92, v93, v94));
        end,
        clearAnimationPreview = function()
            return v90(v12());
        end,
        setAnimationPreview = function(v95, v96)
            return v90(v13(v95, v96));
        end
    };
end)((l_RoactServices_0.connect({
    analytics = v6,
    networking = v8
})(v19)));