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 v4 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_useStyle_0 = require(l_CorePackages_0.UIBlox).Core.Style.useStyle;
local v6 = require(l_Modules_0.AvatarExperience.Common.Hooks.useSendCounter);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v8 = require(l_Modules_0.AvatarExperience.Common.WidgetConstants);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.Widgets.ItemGroupWidget);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.Widgets.EntryButtonWidget);
local v11 = require(l_Modules_0.AvatarExperience.Common.Context.WidgetInfoContext);
local v12 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v13 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v14 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.Impressions.ImpressionsEnums);
local v16 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableCounterLooksWidgetHome);
local v17 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagFixLooksWidgetBottomPadding);
local v18 = require(l_Modules_0.AvatarExperience.Flags.GetAXWidgetSeeAllButton);
local v19 = require(l_Modules_0.AvatarExperience.Flags.FFlagEnableWidgetDividerProps);
local v20 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXItemCardRedesignIXPEnabled);
local v21 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableWidgetSeeAllTracking);
local v22 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagSupportLooksTileFooter);
local v23 = {
    [v8.Templates.ItemGroup] = {
        component = v9,
        includeDividers = true
    },
    [v8.Templates.Button] = {
        component = v10,
        includeDividers = false
    }
};
return (v3.forwardRef(function(v24, v25)
    local l_widgetRow_0 = v24.widgetRow;
    local l_widgetInfo_0 = v24.widgetInfo;
    local v28 = if not v16() then nil else v6();
    local v29 = if not v21() then nil else v14(v13);
    if ((not l_widgetInfo_0 or not l_widgetInfo_0.template) or not l_widgetInfo_0.template.type) or v23[l_widgetInfo_0.template.type] == nil then
        return nil;
    else
        if v28 then
            v3.useEffect(function()
                if not ((not v24.widgetInfo or not v24.widgetInfo.id) or not string.find(v24.widgetInfo.id, "PopularLooksWidget")) then
                    v28(v12.Counter.PopularLooksWidgetHomeView);
                end;
            end, {
                v24.widgetInfo
            });
        end;
        assert(l_widgetInfo_0.template, "");
        local v30 = v23[l_widgetInfo_0.template.type];
        local l_component_0 = v30.component;
        local l_includeDividers_0 = v30.includeDividers;
        local v33 = l_useStyle_0();
        local l_Color_0 = v33.Theme.Divider.Color;
        local l_Transparency_0 = v33.Theme.Divider.Transparency;
        local v36 = v3.useMemo(function()
            return {
                widgetRow = v24.widgetRow,
                widgetId = if not v24.widgetInfo then nil else v24.widgetInfo.id
            };
        end, {
            v24.widgetRow,
            v24.widgetInfo
        });
        local v37 = if not v19 then l_includeDividers_0 else v24.includeTopDivider;
        local v38 = if not v19 then l_includeDividers_0 else v24.includeBottomDivider;
        local v39 = ((v17() and v24.widgetInfo) and v24.widgetInfo.id) and string.find(v24.widgetInfo.id, "LooksWidget");
        return v3.createElement(v4.Focusable.Frame, {
            Size = UDim2.fromScale(1, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            ref = v25,
            NextSelectionUp = v24.NextSelectionUp,
            NextSelectionDown = v24.NextSelectionDown
        }, {
            WidgetInfoProvider = v3.createElement(v11.Provider, {
                value = v36
            }, {
                UIListLayout = v3.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                TopFrame = if not not v37 and l_widgetRow_0 ~= 1 then v3.createElement("Frame", {
                    LayoutOrder = 1,
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 24)
                }, {
                    TopDivider = v3.createElement("Frame", {
                        BackgroundTransparency = l_Transparency_0,
                        BackgroundColor3 = l_Color_0,
                        Size = UDim2.new(1, 0, 0, 2),
                        BorderSizePixel = 0
                    })
                }) else nil,
                WidgetContent = v3.createElement(l_component_0, {
                    LayoutOrder = 2,
                    widgetInfo = v24.widgetInfo,
                    itemsPerRow = v24.itemsPerRow,
                    rowHeight = v24.rowHeight,
                    widgetRow = l_widgetRow_0,
                    widgetAnalyticsInfo = v24.widgetAnalyticsInfo,
                    getItemMetrics = if not v20() then nil else v24.getItemMetrics,
                    hideItemName = if not v20() then nil else v24.hideItemNames,
                    widgetFocused = if v18() or v22() then v24.widgetFocused else nil,
                    requestWidgetAcquireFocus = if not v18() then nil else if not v21() then v24.requestWidgetAcquireFocus else if not v21() then nil else v3.useCallback(function()
                        if v24.requestWidgetAcquireFocus then
                            v29.widgetInteractionV2(v24.widgetAnalyticsInfo, v15.ActionType.SEE_ALL);
                            v24.requestWidgetAcquireFocus();
                        end;
                    end, {
                        v24.requestWidgetAcquireFocus
                    }),
                    requestWidgetReleaseFocus = if not v18() then nil else v24.requestWidgetReleaseFocus,
                    itemDetailsPeekViewRefs = v24.itemDetailsPeekViewRefs,
                    gridRef = v24.gridRef,
                    gamepadNavigationFocusPos = v24.gamepadNavigationFocusPos,
                    setGamepadNavigationFocusPos = v24.setGamepadNavigationFocusPos,
                    itemSize = v24.itemSize
                }),
                BottomPaddingBetweenDivider = v39 and v3.createElement("Frame", {
                    LayoutOrder = 3,
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 24)
                }),
                BottomFrame = v3.createElement("Frame", {
                    LayoutOrder = not v39 and 3 or 4,
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 24)
                }, {
                    BottomDivider = if not v38 then nil else v3.createElement("Frame", {
                        BackgroundTransparency = l_Transparency_0,
                        BackgroundColor3 = l_Color_0,
                        Size = UDim2.new(1, 0, 0, 2),
                        BorderSizePixel = 0
                    })
                })
            })
        });
    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.Packages.React);
local v4 = require(l_CorePackages_0.UIBlox);
local l_useStyle_0 = v4.Core.Style.useStyle;
local l_useSelectionCursor_0 = v4.App.SelectionImage.useSelectionCursor;
local l_CursorKind_0 = v4.App.SelectionImage.CursorKind;
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local v9 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_useSelectedTheme_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useSelectedTheme;
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v14 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v15 = require(l_Modules_0.AvatarExperience.Common.WidgetUtils);
local v16 = require(l_Modules_0.AvatarExperience.Common.WidgetConstants);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return function(v18)
    local v19 = l_useNavigation_0();
    local v20 = v9(v14);
    local v22 = l_useSelector_0(function(v21)
        return v21.AvatarExperience.Common.Widgets.WidgetInfo.RequestId;
    end);
    local v24 = l_useSelector_0(function(v23)
        return v23.Navigation.history;
    end);
    local v25 = l_useSelectedTheme_0() == "dark";
    local v26 = l_useStyle_0();
    local l_Theme_0 = v26.Theme;
    local l_Font_0 = v26.Font;
    local l_widgetInfo_0 = v18.widgetInfo;
    local l_type_0 = l_widgetInfo_0.type;
    local v31 = if not l_type_0 then nil else v16.TypeToImageInfo[l_type_0];
    local function v32()
        v20.widgetInteraction(v22, v16.ActionType.WIDGET_CLICK, nil, v18.widgetRow, nil, nil, l_widgetInfo_0.id);
        v15.getEntryButtonWidgetActivationFunc(l_type_0, v19, v24)();
    end;
    local v33 = nil;
    local v34 = nil;
    local l_rowHeight_0 = v18.rowHeight;
    if v31 then
        l_rowHeight_0 = l_rowHeight_0 * v31.rowScale;
        v33 = if not v25 then v31.backgroundImageLight else v31.backgroundImageDark;
        v34 = if not v25 then v31.contentImageLight else v31.contentImageDark;
    end;
    local v36 = not v31 and 1.5 or v31.widthHeightRatio;
    local v37 = l_useLocalization_0({
        titleText = if not not l_widgetInfo_0 and l_widgetInfo_0.template then l_widgetInfo_0.template.title else nil,
        descText = if not not l_widgetInfo_0 and l_widgetInfo_0.template then l_widgetInfo_0.template.description else nil
    });
    return v3.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_rowHeight_0),
        BackgroundTransparency = 1,
        LayoutOrder = v18.LayoutOrder
    }, {
        EntryButton = v3.createElement(l_Focusable_0.ImageButton, {
            Size = UDim2.new(1, -3, 1, 0),
            Position = UDim2.fromOffset(1, 0),
            BackgroundTransparency = 1,
            Image = v33,
            ScaleType = Enum.ScaleType.Crop,
            [v3.Event.Activated] = v32,
            ClipsDescendants = true,
            SelectionImageObject = l_useSelectionCursor_0(l_CursorKind_0.RoundedRect)
        }, {
            UICorner = v3.createElement("UICorner", {
                CornerRadius = UDim.new(0, 8)
            }),
            UIStroke = v3.createElement("UIStroke", {
                Color = l_Theme_0.Divider.Color,
                Transparency = l_Theme_0.Divider.Transparency,
                Thickness = 1
            }),
            TextFrame = v3.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.fromScale(1, 1)
            }, {
                UIListLayout = v3.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    Padding = UDim.new(0, 8)
                }),
                UIPadding = v3.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 24),
                    PaddingRight = UDim.new(0, 24)
                }),
                Title = if not v37.titleText then nil else v3.createElement("TextLabel", {
                    AutomaticSize = Enum.AutomaticSize.XY,
                    BackgroundTransparency = 1,
                    Font = l_Font_0.Header1.Font,
                    Text = v37.titleText,
                    TextColor3 = Color3.fromRGB(255, 255, 255),
                    TextSize = l_Font_0.BaseSize * l_Font_0.Header1.RelativeSize,
                    TextWrapped = false,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    LayoutOrder = 1
                }),
                Description = if not v37.descText then nil else v3.createElement("TextLabel", {
                    AutomaticSize = Enum.AutomaticSize.XY,
                    BackgroundTransparency = 1,
                    Font = l_Font_0.SubHeader1.Font,
                    Text = v37.descText,
                    TextColor3 = Color3.fromRGB(255, 255, 255),
                    TextSize = l_Font_0.BaseSize * l_Font_0.SubHeader1.RelativeSize,
                    TextWrapped = false,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    LayoutOrder = 2
                })
            }),
            ContentImageLabel = v3.createElement("ImageLabel", {
                AnchorPoint = Vector2.new(1, 0.5),
                Position = UDim2.fromScale(1, 0.5),
                BackgroundTransparency = 1,
                Image = v34,
                Size = UDim2.fromOffset(l_rowHeight_0 * v36, l_rowHeight_0)
            })
        })
    });
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 v4 = require(l_CorePackages_0.UIBlox);
local l_Images_0 = v4.App.ImageSet.Images;
local l_IconSize_0 = v4.App.ImageSet.Enum.IconSize;
local l_getIconSize_0 = v4.App.ImageSet.getIconSize;
local l_LoadableImage_0 = v4.App.Loading.LoadableImage;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local l_ShimmerPanel_0 = v4.App.Loading.ShimmerPanel;
local l_useStyle_0 = v4.Core.Style.useStyle;
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local l_usePlayerCountText_0 = require(l_CorePackages_0.Workspace.Packages.GameTile).usePlayerCountText;
local v15 = require(l_Modules_0.AvatarExperience.Common.Thunks.OpenGameDetails);
local v16 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v17 = require(l_Modules_0.AvatarExperience.Common.Actions.SetItemDetailsExpanded);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
local l_GameStats_0 = require(l_CorePackages_0.Workspace.Packages.GameTile).GameStats;
local v21 = require(l_Modules_0.AvatarExperience.Flags.GetAXFixGameDetailsViewTitle);
local v22 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXRevisedExperienceTile);
local function _(v23, v24)
    if v23 + v24 == 0 then
        return "--";
    else
        return (("%*%%"):format((math.round((v23 / (v23 + v24)) * 100))));
    end;
end;
return function(v26)
    local v27 = l_useDispatch_0();
    local v28 = l_useNavigation_0();
    local v29 = l_useStyle_0();
    local v30 = v3.useRef(nil);
    local l_Font_0 = v29.Font;
    local l_Theme_0 = v29.Theme;
    local v33;
    if (not v26.isHydrated or not v26.totalDownVotes) or not v26.totalUpVotes then
        v33 = "--";
    else
        local l_totalUpVotes_0 = v26.totalUpVotes;
        local l_totalDownVotes_0 = v26.totalDownVotes;
        v33 = l_totalUpVotes_0 + l_totalDownVotes_0 == 0 and "--" or ("%*%%"):format((math.round((l_totalUpVotes_0 / (l_totalUpVotes_0 + l_totalDownVotes_0)) * 100)));
    end;
    local v36 = l_usePlayerCountText_0(not not v26.isHydrated and v26.playerCount or nil);
    local v37 = math.ceil((l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize) * 2);
    local v38 = math.ceil(l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize);
    local v39 = l_getIconSize_0(l_IconSize_0.Small);
    local v40 = l_Font_0.BaseSize * l_Font_0.Body.RelativeSize;
    local v41, v42 = v3.useState(1);
    v3.useEffect(function()
        local l_current_0 = v30.current;
        if l_current_0 and l_current_0.AbsoluteSize then
            local l_X_0 = l_current_0.AbsoluteSize.X;
            if l_X_0 < 100 then
                v42(0.7);
                return ;
            elseif l_X_0 < 120 then
                v42(0.8);
                return ;
            elseif l_X_0 < 140 then
                v42(0.9);
                return ;
            else
                v42(1);
                return ;
            end;
        else
            return ;
        end;
    end, {
        v26.isHydrated,
        l_useSelector_0(function(v45)
            return v45.DeviceOrientation == l_DeviceOrientationMode_0.Portrait;
        end),
        v30
    });
    return v3.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        LayoutOrder = v26.index,
        Size = UDim2.new(1, 0, 0, 0),
        ref = v30
    }, {
        UIListLayout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            Padding = UDim.new(0, 8)
        }),
        ImageButton = v3.createElement("ImageButton", {
            BackgroundTransparency = 1,
            LayoutOrder = 0,
            Image = nil,
            Size = UDim2.fromScale(1, 1),
            [v3.Event.Activated] = function()
                v27(v15(v26.universeId, v28, {
                    mountAsFullView = not v21() and true or nil,
                    onClose = function()
                        if v21() then
                            v27(v17(false));
                        end;
                        v28.navigate(v16.Catalog);
                    end
                }));
            end
        }, {
            Image = v3.createElement(l_LoadableImage_0, {
                BackgroundTransparency = 1,
                Image = ("rbxthumb://type=GameIcon&id=%*&w=%*&h=%*"):format(v26.universeId, 150, 150),
                Size = UDim2.fromScale(1, 1),
                cornerRadius = UDim.new(0, 12)
            }),
            UIAspectRatioConstraint = v3.createElement("UIAspectRatioConstraint", {
                AspectRatio = 1
            })
        }),
        TitleShimmer = if v26.isHydrated then nil else v3.createElement(l_ShimmerPanel_0, {
            Size = UDim2.new(1, 0, 0, v37),
            LayoutOrder = 1
        }),
        Title = if not v26.isHydrated then nil else v3.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Font = l_Font_0.Header2.Font,
            Text = v26.name,
            TextSize = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize,
            TextWrapped = true,
            TextColor3 = l_Theme_0.TextEmphasis.Color,
            TextTransparency = l_Theme_0.TextEmphasis.Transparency,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextTruncate = Enum.TextTruncate.AtEnd,
            Size = UDim2.new(1, 0, 0, v37),
            LayoutOrder = 1
        }),
        FooterShimmer = if v26.isHydrated then nil else v3.createElement(l_ShimmerPanel_0, {
            Size = UDim2.new(1, 0, 0, v38),
            LayoutOrder = 2
        }),
        Footer = if not v26.isHydrated then nil else if v22() then v3.createElement("Frame", {
            Size = UDim2.fromScale(1, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            ClipsDescendants = true,
            LayoutOrder = 2
        }, {
            UISizeConstraint = v3.createElement("UISizeConstraint", {
                MinSize = Vector2.new(0, 22)
            }),
            Footer = v3.createElement(l_GameStats_0, {
                stats = {
                    playerCount = v26.playerCount,
                    totalUpVotes = v26.totalUpVotes,
                    totalDownVotes = v26.totalDownVotes
                }
            })
        }) else (function()
            if v26.isHydrated then
                local l_Theme_1 = v29.Theme;
                local l_Font_1 = v29.Font;
                local v48 = UDim2.fromOffset(v39 * v41, v39 * v41);
                local v49 = UDim2.fromOffset(v39 * v41 + 4, 0);
                return v3.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, v38),
                    LayoutOrder = 2
                }, {
                    RatingStats = v3.createElement("Frame", {
                        AutomaticSize = Enum.AutomaticSize.XY,
                        BackgroundTransparency = 1,
                        LayoutOrder = 1,
                        Position = UDim2.fromScale(0, 0),
                        Size = UDim2.fromScale(0.5, 1)
                    }, {
                        Icon = v3.createElement(l_ImageSetLabel_0, {
                            Size = v48,
                            Image = l_Images_0["icons/status/games/rating_small"],
                            BackgroundTransparency = 1,
                            ImageTransparency = l_Theme_1.IconDefault.Transparency,
                            ImageColor3 = l_Theme_1.IconDefault.Color,
                            LayoutOrder = 1
                        }),
                        Text = v3.createElement("TextLabel", {
                            AutomaticSize = Enum.AutomaticSize.Y,
                            BackgroundTransparency = 1,
                            Font = l_Font_1.Body.Font,
                            Position = v49,
                            Text = v33,
                            TextSize = v40 * v41,
                            TextXAlignment = Enum.TextXAlignment.Left,
                            TextYAlignment = Enum.TextYAlignment.Center,
                            TextColor3 = l_Theme_1.TextMuted.Color,
                            TextTransparency = l_Theme_1.TextMuted.Transparency,
                            LayoutOrder = 2
                        })
                    }),
                    PlayingStats = v3.createElement("Frame", {
                        AutomaticSize = Enum.AutomaticSize.XY,
                        BackgroundTransparency = 1,
                        LayoutOrder = 2,
                        Position = UDim2.new(0.5, 4, 0, 0),
                        Size = UDim2.fromScale(0.5, 1)
                    }, {
                        Icon = v3.createElement(l_ImageSetLabel_0, {
                            Size = v48,
                            Image = l_Images_0["icons/status/games/people-playing_small"],
                            BackgroundTransparency = 1,
                            ImageTransparency = l_Theme_1.IconDefault.Transparency,
                            ImageColor3 = l_Theme_1.IconDefault.Color,
                            LayoutOrder = 1
                        }),
                        Text = v3.createElement("TextLabel", {
                            AutomaticSize = Enum.AutomaticSize.Y,
                            BackgroundTransparency = 1,
                            Font = l_Font_1.Body.Font,
                            Position = v49,
                            Text = v36,
                            TextSize = v40 * v41,
                            TextXAlignment = Enum.TextXAlignment.Left,
                            TextYAlignment = Enum.TextYAlignment.Center,
                            TextColor3 = l_Theme_1.TextMuted.Color,
                            TextTransparency = l_Theme_1.TextMuted.Transparency,
                            LayoutOrder = 2
                        })
                    })
                });
            else
                return nil;
            end;
        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.Packages.React);
local v4 = require(l_CorePackages_0.Packages.RoactGamepad);
local v5 = require(l_CorePackages_0.Cryo);
local v6 = require(l_CorePackages_0.UIBlox);
local v7 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
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_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_useStyle_0 = v6.Core.Style.useStyle;
local l_Button_0 = v6.App.Button.Button;
local l_ButtonType_0 = v6.App.Button.Enum.ButtonType;
local l_StandardButtonSize_0 = v6.App.Button.Enum.StandardButtonSize;
local v16 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v18 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v19 = require(l_Modules_0.AvatarExperience.Common.Utils);
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
local v21 = require(l_Modules_0.AvatarExperience.Common.Components.LoadableGridView);
local v22 = require(l_Modules_0.AvatarExperience.Common.Components.Widgets.WidgetTile);
local v23 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.FetchHydratedWidgetContent);
local v24 = require(l_Modules_0.AvatarExperience.Common.WidgetConstants);
local v25 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v26 = require(l_Modules_0.AvatarExperience.Catalog.Actions.RemoveWidgetInfo);
local v27 = game:DefineFastInt("WidgetsNumItemsToHydrate", 30);
local v28 = require(l_Modules_0.AvatarExperience.Flags.GetAXWidgetSeeAllButton);
local v29 = require(l_Modules_0.AvatarExperience.Flags.GetAXWidgetOnePreviewRow);
local v30 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXEnableExperienceWidgets);
local v31 = game:DefineFastFlag("FixWidgetHydrationEmptyTile", false);
local v32 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagRemoveEmptyHydratedWidgets);
local v33 = game:DefineFastFlag("AXRemoveExtraSeeAllTiles", false);
local v34 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagExtendWidgetAnalyticsWithWidgetItemIds);
local v35 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXAvatarWidgetData);
local v36 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXWidgetItemsPerRowLowerBound);
local v37 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXItemCardRedesignIXPEnabled);
local v38 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagSupportLooksTileFooter);
return function(v39)
    local v40 = v4.useRefCache();
    local v41 = v4.useFocusController();
    local v42 = l_useStyle_0();
    local l_Font_0 = v42.Font;
    local l_Theme_0 = v42.Theme;
    local v45 = l_useDesignTokens_0();
    local v46 = l_useDispatch_0();
    local v47 = v7(v16);
    local v48 = v7(v25);
    local v49 = (v39.widgetAnalyticsInfo and v39.widgetAnalyticsInfo.organicResultIds) and #v39.widgetAnalyticsInfo.organicResultIds > 0;
    v3.useEffect(function()
        if v49 then
            v48.widgetInteractionV2(v39.widgetAnalyticsInfo, v24.ActionType.IMPRESSION);
        end;
    end, {
        v49
    });
    local v50, v51 = v3.useState(Vector2.new());
    local l_gridRef_0 = v39.gridRef;
    local l_itemDetailsPeekViewRefs_0 = v39.itemDetailsPeekViewRefs;
    local v55 = l_useSelector_0(function(v54)
        return v54.AvatarExperience.Common.Widgets.HydratedWidgetData;
    end);
    local v57 = l_useSelector_0(function(v56)
        return v56.DeviceOrientation == l_DeviceOrientationMode_0.Portrait;
    end);
    local l_itemsPerRow_0 = v39.itemsPerRow;
    local l_widgetInfo_0 = v39.widgetInfo;
    if not ((not (v57 and l_widgetInfo_0.type ~= v24.Types.SearchToLooksWidget) or not (not v30() and true or l_widgetInfo_0.type ~= v24.Types.InExperienceShopWidget)) or v29()) then
        l_itemsPerRow_0 = l_itemsPerRow_0 + v39.itemsPerRow;
    end;
    local v60 = nil;
    local v61 = nil;
    local v62 = nil;
    if v28() then
        v62 = (not not v57 and l_widgetInfo_0.type ~= v24.Types.SearchToLooksWidget) and 2 or 1;
        if v29() then
            v62 = 1;
        end;
        local v63, v64 = v3.useState(v62);
        v60 = v63;
        v61 = v64;
        v3.useEffect(function()
            v61(v62);
        end, {
            v57
        });
        l_itemsPerRow_0 = if not v33 then v60 * v39.itemsPerRow else math.min(v60 * v39.itemsPerRow, v27);
        v3.useEffect(function()
            v61(if not v39.widgetFocused then v62 else math.ceil(v27 / v39.itemsPerRow));
        end, {
            v39.widgetFocused
        });
    end;
    local v68 = v3.useMemo(function()
        local v65 = {};
        if not ((not l_widgetInfo_0 or not l_widgetInfo_0.content) or v5.isEmpty(l_widgetInfo_0.content)) then
            if v27 > 0 then
                for v66 = 1, v27 do
                    local v67 = l_widgetInfo_0.content[v66];
                    if v67 then
                        assert(v55, "");
                        if not (v55[v67.type] and v55[v67.type][tostring(v67.id)]) then
                            table.insert(v65, v67);
                        end;
                    end;
                end;
                return v65;
            else
                table.move(l_widgetInfo_0.content, 1, if v27 > 0 then v27 else l_itemsPerRow_0 * 3, 1, v65);
            end;
        end;
        return v65;
    end, if not v28() then {} else {
        v60
    });
    local v69 = if not v28() then {} else {
        v60
    };
    if v31 then
        table.insert(v69, v55);
    end;
    if v36() then
        table.insert(v69, l_itemsPerRow_0);
    end;
    local v75 = v3.useMemo(function()
        local v70 = {};
        local v71 = 0;
        local v72 = 0;
        if l_widgetInfo_0.content then
            assert(l_widgetInfo_0.content, "");
            while (v71 < l_itemsPerRow_0 and v72 < l_itemsPerRow_0 * 3) and v72 < #l_widgetInfo_0.content do
                local v73 = l_widgetInfo_0.content[v72 + 1];
                local v74 = nil;
                assert(v55, "");
                v74 = v55[v73.type] and v55[v73.type][tostring(v73.id)];
                if not (v74 and v74.failedToHydrate) then
                    table.insert(v70, v73);
                    v71 = v71 + 1;
                end;
                v72 = v72 + 1;
            end;
            return v70;
        else
            return v70;
        end;
    end, v69);
    if v32() then
        v3.useEffect(function()
            if #v75 == 0 then
                v46(v26(v39.widgetInfo.id));
            end;
        end, {
            v75
        });
    end;
    local v79 = v3.useMemo(function()
        local v76 = {};
        for _, v78 in v75, nil, nil do
            table.insert(v76, v78.id);
        end;
        return v76;
    end, {
        v75
    });
    local v80 = l_useLocalization_0({
        titleText = if not not l_widgetInfo_0 and l_widgetInfo_0.template then l_widgetInfo_0.template.title else nil,
        descText = if not not l_widgetInfo_0 and l_widgetInfo_0.template then l_widgetInfo_0.template.description else nil,
        seeAllButtonText = "Feature.Catalog.ActionSeeAll"
    });
    local function v85()
        local v81 = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize;
        local v82 = l_Font_0.BaseSize * l_Font_0.Body.RelativeSize;
        local v83 = ((v28() and l_widgetInfo_0) and l_widgetInfo_0.template) and l_widgetInfo_0.template.seeAllButton;
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            LayoutOrder = 1
        }, {
            TitleDescriptionFrame = v3.createElement("Frame", {
                Size = if not v83 then UDim2.new(1, 0, 0, 0) else UDim2.new(1, 0 - (v50.X + v45.Global.Space_150), 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1
            }, {
                UIListLayout = v3.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 5)
                }),
                Title = if not v80.titleText then nil else v3.createElement("TextLabel", {
                    LayoutOrder = 1,
                    Text = v80.titleText,
                    Font = l_Font_0.Header1.Font,
                    TextSize = v81,
                    TextColor3 = l_Theme_0.TextEmphasis.Color,
                    TextTransparency = l_Theme_0.TextEmphasis.Transparency,
                    TextTruncate = Enum.TextTruncate.AtEnd,
                    Size = UDim2.fromScale(1, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    BackgroundTransparency = 1
                }, {
                    UISizeConstraint = if not v83 then nil else v3.createElement("UISizeConstraint", {
                        MinSize = Vector2.new(0, v50.Y)
                    })
                }),
                Description = if not v80.descText then nil else v3.createElement("TextLabel", {
                    LayoutOrder = 2,
                    Text = v80.descText,
                    Font = l_Font_0.Body.Font,
                    TextSize = v82,
                    TextColor3 = l_Theme_0.TextDefault.Color,
                    TextTransparency = l_Theme_0.TextDefault.Transparency,
                    Size = UDim2.fromScale(1, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    BackgroundTransparency = 1
                })
            }),
            SeeAll = if not v83 then nil else v3.createElement(l_Button_0, {
                buttonType = l_ButtonType_0.Secondary,
                anchorPoint = Vector2.new(1, 0),
                position = UDim2.fromScale(1, 0),
                text = v80.seeAllButtonText,
                fitContent = true,
                standardSize = l_StandardButtonSize_0.XSmall,
                onActivated = function()
                    if v39.requestWidgetAcquireFocus then
                        v39.requestWidgetAcquireFocus();
                    end;
                end,
                [v3.Change.AbsoluteSize] = function(v84)
                    v51(v84.AbsoluteSize);
                end
            })
        });
    end;
    local v86 = {
        widgetRow = v39.widgetRow,
        widgetId = v39.widgetInfo.id
    };
    local l_type_0 = l_widgetInfo_0.type;
    local v90 = v3.useCallback(function(v88, v89)
        v86 = v5.Dictionary.join(v39.widgetAnalyticsInfo, {
            itemPosition = v89,
            itemId = v88.id,
            itemType = v88.type,
            widgetItemIds = if not v34() then v79 else nil
        });
        return v3.createElement(v22, {
            size = UDim2.fromOffset(v39.itemSize.X, v39.itemSize.Y),
            tileContentType = if not v35() then nil else l_type_0,
            contentType = v88.type,
            contentId = v88.id,
            index = v89,
            itemsPerRow = v39.itemsPerRow,
            analyticsItemCountPerPage = l_itemsPerRow_0,
            widgetAnalyticsInfo = v86,
            refCache = v40,
            resultsListRef = l_gridRef_0,
            itemDetailsPeekViewRefs = l_itemDetailsPeekViewRefs_0,
            hideItemName = if not v37() then nil else v39.hideItemName,
            widgetFocused = if not v38() then nil else v39.widgetFocused,
            onFocusGained = function()
                if v39.gamepadNavigationFocusPos:getValue().Y == v39.widgetRow then
                    v39.setGamepadNavigationFocusPos(Vector2.new(v89, v39.widgetRow));
                end;
            end
        });
    end);
    local function v96()
        local v91 = l_Font_0.Header2.RelativeSize * l_Font_0.BaseSize;
        local l_CatalogItemTile_0 = v18.ItemTileType.CatalogItemTile;
        if not (not v38() or not v39.widgetInfo) and (not (v39.widgetInfo.type ~= v24.Types.SearchToAvatarLooksWidget) or v39.widgetInfo.type == v24.Types.SearchToCommunityLooksWidget) then
            l_CatalogItemTile_0 = v18.ItemTileType.LookItemTile;
        end;
        local v93 = not not v37() and v39.hideItemName;
        return v3.createElement(v4.Focusable.Frame, {
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            LayoutOrder = 2,
            onFocusGained = function()
                v39.setGamepadNavigationFocusPos(Vector2.new(v39.gamepadNavigationFocusPos:getValue().X, v39.widgetRow));
                local l_X_0 = v39.gamepadNavigationFocusPos:getValue().X;
                local _ = nil;
                v41.moveFocusTo(if not l_X_0 then v40[1] else v40[math.min(l_X_0, v39.itemsPerRow)]);
            end
        }, {
            GridView = v3.createElement(v21, {
                getItemHeight = if not v38() then v19.GridItemHeightGetter(l_CatalogItemTile_0, v91, v93) else v19.GridItemHeightGetter(l_CatalogItemTile_0, v91, v93, if not v38() then nil else v39.widgetInfo.type),
                items = v75,
                totalNumItems = l_itemsPerRow_0,
                renderItem = v90,
                getItemMetrics = if not v37() then nil else v39.getItemMetrics
            })
        });
    end;
    v3.useEffect(function()
        if v27 > 0 and #v68 == 0 then
            return ;
        else
            v46(v23(v47, v68, l_widgetInfo_0.id));
            return ;
        end;
    end, if not v28() then {} else {
        v60
    });
    return v3.createElement("Frame", {
        Size = UDim2.fromScale(1, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        LayoutOrder = v39.LayoutOrder
    }, {
        UIListLayout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 12)
        }),
        TopContent = if not not v28() and v39.widgetFocused then nil else v85(),
        ItemGroup = v96()
    });
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_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_PeekViewState_0 = require(l_CorePackages_0.Workspace.Packages.PeekView).PeekViewState;
local v10 = require(l_CorePackages_0.UIBlox);
local l_useStyle_0 = v10.Core.Style.useStyle;
local l_ImageSetLabel_0 = v10.Core.ImageSet.ImageSetLabel;
local l_Images_0 = v10.App.ImageSet.Images;
local l_ShimmerPanel_0 = v10.App.Loading.ShimmerPanel;
local l_withNavigation_0 = require(l_CorePackages_0.RoactNavigation).withNavigation;
local v16 = require(l_Modules_0.AvatarExperience.Common.Thunks.TryOnLook);
local v17 = require(l_Modules_0.AvatarExperience.Common.Thunks.TryOnLookV2);
local v18 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v19 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
local v20 = require(l_Modules_0.AvatarExperience.Common.Thunks.SetFullView);
local v21 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v22 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v23 = require(l_Modules_0.AvatarExperience.Common.WidgetConstants);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v25 = require(l_Modules_0.AvatarExperience.Catalog.Actions.SetTryOnManagerPeekViewState);
local v26 = require(l_Modules_0.AvatarExperience.Common.Context.useAdaptiveScrolling);
local v27 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v28 = require(l_Modules_0.AvatarExperience.Common.Hooks.useSendCounter);
local v29 = require(l_Modules_0.AvatarExperience.Common.Hooks.useIsWithinViewContext);
local v30 = require(l_Modules_0.AvatarExperience.Common.Components.ItemTileDetailButton);
local v31 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v32 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local v33 = require(l_CorePackages_0.Workspace.Packages.VerifiedBadges);
local v34 = require(l_Modules_0.AvatarExperience.Catalog.Components.ItemsList.ItemCardFooter);
local v35 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXAdaptiveScrollingItemResetFix);
local v36 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagEnableCounterLooksWidgetHome);
local v37 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagFixLooksTileDetailButton);
local v38 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagFixLooksWidgetBottomPadding);
local l_game_EngineFeature_0 = game:GetEngineFeature("BatchThumbnailSupportsVariousSizesLooks");
local v40 = game:DefineFastString("LooksWidgetThumbnailSize", "w=420&h=420");
local v41 = game:DefineFastFlag("FixLooksSecondaryLayerApdativeScrolling", false);
local v42 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagSupportLooksTileFooter);
local v43 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXAvatarWidgetData);
local v44 = l_Images_0["icons/actions/selectOn"];
local v45 = v44.ImageRectSize / l_Images_0.ImagesResolutionScale;
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local function v93(v47)
    local v48 = l_useDesignTokens_0();
    local v49 = if not v47.lookData then nil else v47.lookData;
    local v50 = if not v49 then nil else v49.id;
    local v51 = v4.useRef(nil);
    local v52 = nil;
    if v42() then
        v52 = v4.useRef(nil);
    end;
    local v53 = v26();
    local v54 = l_useDispatch_0();
    local v55 = v21(v22);
    local v56 = v21(v18);
    local v57 = l_useNavigation_0();
    local v58 = l_useStyle_0();
    local l_Theme_0 = v58.Theme;
    local l_Font_0 = v58.Font;
    local v61 = if not v36() then nil else v28();
    local v62 = if not not v49 and v49.assets then #v49.assets else 0;
    local v63 = if (not not v43() and v49) and v49.bundles then #v49.bundles else 0;
    local v64 = l_useLocalization_0({
        detailsText = {
            "Feature.Avatar.Label.Details";
            quantity = v62
        }
    });
    local l_Font_1 = v58.Font.SubHeader1.Font;
    local v66 = v58.Font.BaseSize * v58.Font.SubHeader1.RelativeSize;
    local v67 = v36() and v29(v31.CatalogSearch);
    local v68 = not l_game_EngineFeature_0 and "w=150&h=150" or v40;
    local v70 = if not not v49 and v49.assets then v3.List.map(v49.assets, function(v69)
        return v69.id;
    end) else nil;
    local v71 = if not not v70 and v47.widgetAnalyticsInfo then v3.Dictionary.join(v47.widgetAnalyticsInfo, {
        assetIds = v70
    }) else v47.widgetAnalyticsInfo;
    local v74 = l_useSelector_0(function(v72)
        local v73 = false;
        if v50 ~= nil then
            v73 = v72.AvatarExperience.AvatarScene.OutfitTryOn.LookId == v50;
        end;
        return v73;
    end);
    local v77 = l_useSelector_0(function(v75)
        local l_opaque_0 = v75.AvatarExperience.AvatarScene.AvatarRoute.opaque;
        if not l_opaque_0 then
            return nil;
        else
            return l_opaque_0.name;
        end;
    end);
    local v78 = v4.useRef(true);
    v4.useEffect(function()
        if not v78.current then
            v56.widgetInteractionV2(v71, if not v74 then v23.ActionType.ITEM_DESELECTED else v23.ActionType.ITEM_CLICK);
            if not (not v61 or not v74) then
                if not v67 then
                    v61(v27.Counter.PopularLooksWidgetHomeTileClicked);
                else
                    v61(v27.Counter.PopularLooksWidgetSearchTileClicked);
                end;
            end;
        end;
        v78.current = false;
    end, {
        v74,
        v67
    });
    local v81 = v4.useCallback(function(v79)
        if v50 then
            if v74 then
                if not (not v35() or not v53) then
                    v53.setSelectedItemInstance(nil);
                end;
                v54(v25(l_PeekViewState_0.Closed));
            else
                if v53 then
                    local v80 = if not v51 then nil else v51.current;
                    if v42() then
                        v80 = if not v79 then nil else v79.current;
                    end;
                    if v80 ~= nil then
                        v53.setSelectedItemInstance(v80);
                    end;
                end;
                if v77 ~= nil then
                    v54(v20(v56, v77, v19.None));
                end;
                if v43() and v47.tileContentType == v23.Types.SearchToAvatarLooksWidget then
                    v54(v17(v55, v57, v71, v50));
                    return ;
                else
                    v54(v16(v55, v57, v71, v50));
                    return ;
                end;
            end;
        end;
    end, {
        v55,
        v57,
        v71,
        v50
    });
    local v82 = (v42() and v49) and (v49.curator or v49.totalPrice);
    local v83 = if not v38() then v48.Global.Space_300 else v48.Global.Space_0;
    if not (not v42() or not v82) then
        v83 = if not v47.isFocusedWidget then v48.Global.Space_0 else v48.Global.Space_175;
    end;
    local l_createElement_0 = v4.createElement;
    local v85 = "Frame";
    local v86 = {
        Size = UDim2.fromScale(1, 1),
        BackgroundTransparency = 1
    };
    local v87 = {
        UIListLayout = v42() and v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            Padding = UDim.new(0, v48.Global.Size_50)
        }),
        Padding = v4.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, v83)
        })
    };
    local v88 = false;
    if v49 == nil then
        v88 = v4.createElement(l_ShimmerPanel_0, {
            AnchorPoint = Vector2.new(1, 1),
            Position = UDim2.fromScale(1, 1),
            Size = UDim2.fromScale(1, 1),
            cornerRadius = UDim.new(0, 10)
        });
    end;
    v87.LoadingShimmer = v88;
    v87.Tile = v50 and v4.createElement("TextButton", {
        Size = UDim2.fromScale(1, 1),
        AutoButtonColor = false,
        BackgroundColor3 = l_Theme_0.PlaceHolder.Color,
        BackgroundTransparency = l_Theme_0.PlaceHolder.Transparency,
        ClipsDescendants = true,
        Text = "",
        ref = v51,
        [v4.Event.Activated] = not not v42() and function()
            v81(v51);
        end or v81
    }, {
        UICorner = v4.createElement("UICorner", {
            CornerRadius = UDim.new(0, 10)
        }),
        LookThumbnail = v4.createElement("ImageLabel", {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            Size = UDim2.fromScale(1.2, 1.2),
            SizeConstraint = Enum.SizeConstraint.RelativeYY,
            BackgroundTransparency = 1,
            Image = ("rbxthumb://type=Look&id=%*&%*"):format(v50, v68),
            ZIndex = 2
        }, {
            AspectRatio = v4.createElement("UIAspectRatioConstraint", {
                AspectRatio = 1
            })
        }),
        SelectionOverlay = v74 and v4.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            BackgroundColor3 = l_Theme_0.Overlay.Color,
            BackgroundTransparency = l_Theme_0.Overlay.Transparency,
            BorderSizePixel = 0,
            ZIndex = 3
        }, {
            SelectionImage = v4.createElement(l_ImageSetLabel_0, {
                AnchorPoint = Vector2.new(1, 0),
                BackgroundTransparency = 1,
                Image = v44,
                Position = UDim2.new(1, -6, 0, 6),
                Size = UDim2.fromOffset(v45.X, v45.Y)
            }),
            UICorner = v4.createElement("UICorner", {
                CornerRadius = UDim.new(0, 10)
            })
        }),
        DetailsButton = if not v74 then nil else if v37() then v4.createElement(v30, {
            activateButton = function()
                if v41 then
                    v54(v20(v56, v77, v19.None));
                end;
                v54(v25(l_PeekViewState_0.Brief));
            end,
            itemsCount = if not v43() then v62 else v62 + v63
        }) else v4.createElement("ImageButton", {
            Size = UDim2.new(1, 0, 0, 28),
            Position = UDim2.new(0, 0, 1, -28),
            BackgroundColor3 = l_Theme_0.SystemPrimaryDefault.Color,
            [v4.Event.Activated] = function()
                v54(v25(l_PeekViewState_0.Brief));
            end,
            ZIndex = 10,
            BackgroundTransparency = 1
        }, {
            BoundingFrame = v4.createElement("TextLabel", {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.fromScale(1, 1),
                AutomaticSize = Enum.AutomaticSize.XY,
                BackgroundColor3 = l_Theme_0.BackgroundUIDefault.Color,
                Font = l_Font_0.CaptionHeader.Font,
                TextSize = l_Font_0.CaptionHeader.RelativeSize * l_Font_0.BaseSize,
                Text = v64.detailsText,
                TextColor3 = l_Theme_0.TextEmphasis.Color
            }, {
                UICorner = v4.createElement("UICorner", {
                    CornerRadius = UDim.new(0, 10)
                })
            })
        })
    });
    v88 = v82;
    if v88 then
        v88 = v4.createElement;
        local v89 = "TextButton";
        local v90 = {
            LayoutOrder = 2,
            Text = "",
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.fromScale(1, 0),
            BackgroundTransparency = 1,
            ref = v52,
            [v4.Event.Activated] = function()
                v81(v52);
            end
        };
        local v91 = {
            Padding = v4.createElement("UIPadding", {
                PaddingTop = UDim.new(0, v48.Global.Space_50)
            }),
            UIListLayout = v4.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Top,
                Padding = UDim.new(0, v48.Global.Space_100)
            })
        };
        local l_v49_0 = v49;
        if l_v49_0 then
            l_v49_0 = v49.curator;
            if l_v49_0 then
                l_v49_0 = false;
                if v49.curator.hasVerifiedBadge == false then
                    l_v49_0 = v4.createElement("TextLabel", {
                        LayoutOrder = 1,
                        AnchorPoint = Vector2.new(1, 0),
                        AutomaticSize = Enum.AutomaticSize.Y,
                        BackgroundTransparency = 1,
                        Position = UDim2.new(1, 0, 0, 0),
                        Size = UDim2.new(1, 0, 0, 0),
                        Font = l_Font_1,
                        TextColor3 = l_Theme_0.TextEmphasis.Color,
                        TextTransparency = l_Theme_0.TextEmphasis.Transparency,
                        TextSize = v66,
                        Text = v49.curator.name,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Center,
                        TextWrapped = true
                    });
                end;
            end;
        end;
        v91.UnverifiedCuratorName = l_v49_0;
        l_v49_0 = v49;
        if l_v49_0 then
            l_v49_0 = v49.curator;
            if l_v49_0 then
                l_v49_0 = false;
                if v49.curator.hasVerifiedBadge == true then
                    l_v49_0 = v4.createElement(v33.EmojiWrapper, {
                        layoutOrder = 1,
                        emoji = v33.emoji.verified,
                        font = l_Font_1,
                        anchorPoint = Vector2.new(1, 0),
                        position = UDim2.new(1, 0, 0, 0),
                        size = UDim2.new(1, 0, 0, 0),
                        automaticSize = Enum.AutomaticSize.Y,
                        verticalAlignment = Enum.VerticalAlignment.Center
                    }, {
                        TextLabel = v4.createElement("TextLabel", {
                            BackgroundTransparency = 1,
                            Font = l_Font_1,
                            Size = UDim2.new(0, 0, 1, 0),
                            Text = v49.curator.name,
                            TextColor3 = l_Theme_0.TextEmphasis.Color,
                            TextSize = v66,
                            TextTruncate = Enum.TextTruncate.AtEnd,
                            AutomaticSize = Enum.AutomaticSize.X
                        })
                    });
                end;
            end;
        end;
        v91.VerifiedCreatorName = l_v49_0;
        v91.PriceFooterFrame = (v49 and v49.totalPrice) and v4.createElement("Frame", {
            LayoutOrder = 2,
            BackgroundTransparency = 1,
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.new(1, 0, 0, v48.Global.Size_250)
        }, {
            PriceFooter = v4.createElement(v34, {
                price = v49.totalPrice,
                isPriceLoaded = true,
                isSellableInShop = true,
                fitContentHeight = true
            })
        });
        v88 = v88(v89, v90, v91);
    end;
    v87.Footer = v88;
    return l_createElement_0(v85, v86, v87);
end;
if v36() then
    v93 = v32((l_withNavigation_0(v93, nil)));
end;
return v93;


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 v4 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v7 = require(l_Modules_0.AvatarExperience.Common.WidgetConstants);
local v8 = require(l_Modules_0.AvatarExperience.Catalog.Components.ItemsList.CatalogItemCard);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.Widgets.ExperienceCard);
local v10 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local v11 = require(l_Modules_0.AvatarExperience.Common.Components.Widgets.LookTile);
local v12 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v13 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v14 = require(l_Modules_0.AvatarExperience.Common.Components.Impressions.ImpressionsEnums);
local v15 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXEnableExperienceWidgets);
local v16 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXItemCardRedesignIXPEnabled);
local v17 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXAvatarWidgetData);
local v18 = game:DefineFastFlag("WidgetTileImpressionEvents", false);
local v19 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagSupportLooksTileFooter);
return function(v20)
    local l_contentType_0 = v20.contentType;
    local l_contentId_0 = v20.contentId;
    local l_index_0 = v20.index;
    local l_refCache_0 = v20.refCache;
    local v27 = l_useSelector_0(function(v25)
        local v26 = v25.AvatarExperience.Common.Widgets.HydratedWidgetData[l_contentType_0];
        if not v26 then
            return nil;
        else
            return v26[tostring(l_contentId_0)];
        end;
    end);
    if v18 then
        local v28 = v13(v12);
        local v29 = (v20.widgetAnalyticsInfo and v20.widgetAnalyticsInfo.organicResultIds) and #v20.widgetAnalyticsInfo.organicResultIds > 0;
        v3.useEffect(function()
            if v29 then
                v28.widgetInteractionV2(v20.widgetAnalyticsInfo, v14.ActionType.ITEM_IMPRESSION);
            end;
        end, {
            v29
        });
    end;
    return v3.createElement(v4.Focusable.Frame, {
        Size = v20.size,
        BackgroundTransparency = 1,
        ref = l_refCache_0[l_index_0],
        NextSelectionRight = if l_index_0 < v20.itemsPerRow then l_refCache_0[l_index_0 + 1] else nil,
        NextSelectionLeft = if l_index_0 > 1 then l_refCache_0[l_index_0 - 1] else nil,
        onFocusGained = v20.onFocusGained
    }, {
        WidgetItemTile = if not (l_contentType_0 ~= v7.ContentType.Asset) or l_contentType_0 == v7.ContentType.Bundle then v3.createElement(v8, {
            itemId = if not v27 then nil else tostring(v27.id),
            itemType = if not v27 then nil else v27.type,
            index = v20.index,
            analyticsItemCountPerPage = v20.analyticsItemCountPerPage,
            analyticsContext = v10.AnalyticsContext.Catalog,
            widgetAnalyticsInfo = v20.widgetAnalyticsInfo,
            itemDetailsPeekViewRefs = v20.itemDetailsPeekViewRefs,
            resultsListRef = v20.resultsListRef,
            hideItemName = if not v16() then nil else v20.hideItemName
        }) else nil,
        WidgetLookTile = if l_contentType_0 == v7.ContentType.Look then v3.createElement(v11, {
            lookData = v27,
            tileContentType = if not v17() then nil else v20.tileContentType,
            widgetAnalyticsInfo = v20.widgetAnalyticsInfo,
            isFocusedWidget = if not v19() then nil else v20.widgetFocused
        }) else nil,
        WidgetExperienceTile = if not not v15() and l_contentType_0 == v7.ContentType.Experience then v3.createElement(v9, {
            universeId = l_contentId_0,
            name = if not v27 then nil else v27.name,
            totalUpVotes = if not v27 then nil else v27.totalUpVotes,
            totalDownVotes = if not v27 then nil else v27.totalDownVotes,
            playerCount = if not v27 then nil else v27.playerCount,
            index = v20.index,
            isHydrated = v27 ~= nil
        }) else nil
    });
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 v4 = require(l_CorePackages_0.RoactNavigation);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarExperienceRootContainer);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Debug.makeNavigationStateLogger);
local v7 = require(l_Modules_0.LuaApp.Thunks.SetNavigationLocked);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local v9 = v4.createAppContainer(v5);
local v10 = v6("AvatarExperience");
return function(v11)
    local v12 = l_useDispatch_0();
    return v3.createElement(v9, {
        onNavigationStateChange = v3.useCallback(function(v13, v14, v15)
            v10(v13, v14, v15);
            if not v14.isTransitioning then
                v12(v7(false));
            end;
        end),
        isVisible = v11.isVisible
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_Lighting_0 = game:GetService("Lighting");
local v3 = nil;
pcall(function()
    v3 = game:GetService("ThirdPartyUserService");
end);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local v6 = require(l_CorePackages_0.Packages.t);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v8 = require(l_Modules_0.Shell.Actions.RemoveScreen);
local v9 = require(l_Modules_0.Shell.CameraManager);
local v10 = require(l_Modules_0.Shell.AvatarEditorScreenWrapper);
local v11 = require(l_Modules_0.AvatarExperience.Common.Components.AvatarExperienceMountedAtStartup);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.Xbox.AvatarExperienceViewportListener);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.Xbox.AvatarExperienceThemeFetcher);
local v14 = require(l_Modules_0.AvatarExperience.Common.Components.Xbox.AppShellContext);
local v15 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.EventReceivers.AXPlatformServiceListener);
local v16 = require(l_Modules_0.AvatarExperience.Common.Components.Xbox.AvatarExperienceConsoleAppContainer);
local v17 = require(l_Modules_0.AvatarExperience.Common.Components.Xbox.AvatarExperiencePurchaseEventListener);
local v18 = require(l_Modules_0.LuaApp.AppPage);
local v19 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v20 = require(l_Modules_0.LuaApp.Components.ToastV2);
local v21 = require(l_Modules_0.LuaApp.Thunks.NavigateToRoute);
local v22 = require(l_Modules_0.AvatarExperience.Common.Components.GamepadBottomBar);
local v23 = require(l_Modules_0.LuaApp.Navigation.CurrentTabContext);
local v24 = require(l_Modules_0.LuaApp.Navigation.SwitchNavigatorVisibleContext);
local l_ExternalEventConnection_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).ExternalEventConnection;
local v26 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.gamepad");
local v27 = v4.PureComponent:extend("AvatarExperienceConsoleManager");
local v28 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagUpdateAppShellBalance);
v27.validateProps = v6.strictInterface({
    store = v6.table,
    screenList = v6.table,
    navigateToPage = v6.callback,
    removeScreen = v6.callback
});
v27.wrapPageInScreenGui = function(v29, v30, _, v32, v33)
    return v4.createElement("ScreenGui", {
        Enabled = v32.isVisible and v29.props.screenList[1].id == tostring(v10),
        ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
        DisplayOrder = v32.displayOrder
    }, {
        Contents = v4.createElement(v30, v33)
    });
end;
v27.updateLighting = function(_)
    local l_AvatarEditor_0 = l_Lighting_0:FindFirstChild("AvatarEditor");
    if l_AvatarEditor_0 then
        l_AvatarEditor_0:Destroy();
    end;
    local l_Blur_0 = l_Lighting_0:FindFirstChild("Blur");
    if l_Blur_0 then
        l_Blur_0.Enabled = false;
    end;
end;
v27.init = function(v37)
    v37.state = {
        start = false
    };
    v37.returnToAppShell = function()
        v26:info("returnToAppShell()");
        v37.props.removeScreen(v37.props.screenList[1]);
    end;
    v37.appShellContextValue = {
        returnToAppShell = v37.returnToAppShell
    };
    v37.onActiveUserSignedOut = function()
        if v37.state.start then
            v9:SwitchToFlyThrough();
            v37:setState({
                start = false
            });
        end;
    end;
end;
v27.renderAvatarExperienceRoot = function(v38)
    local l_start_0 = v38.state.start;
    return (v4.createElement(v24.Provider, {
        value = true
    }, {
        Content = v4.createElement(v23.Provider, {
            value = not not l_start_0 and v19.AvatarExperienceRoot or v18.None
        }, {
            Content = v4.createElement(v14.Provider, {
                value = v38.appShellContextValue
            }, {
                Content = v38:wrapPageInScreenGui(v16, v19.AvatarExperienceRoot, {
                    isVisible = l_start_0,
                    displayOrder = 0
                })
            })
        })
    }));
end;
v27.didUpdate = function(v40, v41, _)
    if v40.props.screenList ~= v41.screenList then
        if not (not (v41.screenList[1] and v41.screenList[1].id ~= tostring(v10)) or not v40.props.screenList[1]) and v40.props.screenList[1].id == tostring(v10) then
            v9:SwitchToAvatarEditor();
            v40:updateLighting();
            v40:setState({
                start = true
            });
            return ;
        elseif not (not (v41.screenList[1] and v41.screenList[1].id == tostring(v10)) or not v40.props.screenList[1]) and v40.props.screenList[1].id ~= tostring(v10) then
            v9:SwitchToFlyThrough();
            v40:setState({
                start = false
            });
        end;
    end;
end;
v27.render = function(v43)
    return v4.createElement("Folder", {}, {
        Toast = v4.createElement(v20, {
            displayOrder = 13
        }),
        GamepadBottomBar = v4.createElement(v22, {
            displayOrder = 14,
            hideGamepadBottomBar = v43.props.screenList[1].id ~= tostring(v10)
        }),
        AvatarExperienceViewportListener = v4.createElement(v12),
        AvatarExperienceThemeFetcher = v4.createElement(v13),
        AvatarExperienceMountedAtStartup = v4.createElement(v11, {
            userLoggedIn = true,
            shouldStart = v43.state.start,
            store = v43.props.store
        }),
        AvatarExperienceRoot = v43:renderAvatarExperienceRoot(),
        AXPlatformServiceListener = v4.createElement(v15),
        AvatarExperiencePurchaseEventListener = if not v28() then nil else v4.createElement(v17),
        ActiveUserSignedOutCn = if not v3 then nil else v4.createElement(l_ExternalEventConnection_0, {
            event = v3.ActiveUserSignedOut,
            callback = v43.onActiveUserSignedOut
        })
    });
end;
return v5.connect(function(v44, _)
    return {
        screenList = v44.ScreenList
    };
end, function(v46)
    return {
        navigateToPage = function(v47)
            v46(v21({
                {
                    name = v47
                }
            }));
        end,
        removeScreen = function(v48)
            v46(v8(v48));
        end
    };
end)(v27);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_RunService_0 = game:GetService("RunService");
local l_NotificationService_0 = game:GetService("NotificationService");
local l_EventIngestService_0 = game:GetService("EventIngestService");
local l_ContentProvider_0 = game:GetService("ContentProvider");
local l_IXPService_0 = game:GetService("IXPService");
local v8 = require(l_CorePackages_0.Roact);
local v9 = require(l_CorePackages_0.RoactRodux);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v11 = require(l_Modules_0:FindFirstChild("Shell").AppState);
local l_ProviderContainer_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Components.ProviderContainer;
local v13 = require(l_Modules_0.LuaApp.LocalizationProvider);
local l_AppStyleProvider_0 = require(l_CorePackages_0.Workspace.Packages.Style).AppStyleProvider;
local v15 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local l_EventIngest_0 = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.EventIngest;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local l_AppFeaturePolicies_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).AppFeaturePolicies;
local l_ChatPolicies_0 = require(l_CorePackages_0.Workspace.Packages.SocialPolicies).ChatPolicies;
local l_AvatarPolicies_0 = require(l_CorePackages_0.Workspace.Packages.AvatarPolicies).AvatarPolicies;
local l_SharePolicies_0 = require(l_CorePackages_0.Workspace.Packages.SocialPolicies).SharePolicies;
local v23 = require(l_Modules_0.LuaApp.Services.RoactLocalization);
local l_Localization_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppLocales).Localization;
local v25 = require(l_Modules_0.LuaApp.Actions.SetLocalUserId);
local v26 = require(l_Modules_0.LuaApp.Http.request);
local v27 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v28 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v29 = require(l_Modules_0.LuaApp.Experiment.RoactAppExperiment);
local l_Analytics_0 = require(l_CorePackages_0.Workspace.Packages.Analytics).Analytics;
local v31 = require(l_Modules_0.AvatarExperience.Common.Components.Xbox.AvatarExperienceConsoleManager);
local l_AppRunService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppRunService;
local l_AppContentProvider_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppContentProvider;
local l_AppNotificationService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppNotificationService;
local v35 = require(l_Modules_0.LuaApp.Context.TopBarSearchSignalContext);
local l_RobloxEventReceiver_0 = require(l_CorePackages_0.Workspace.Packages.RealtimeDelivery).RobloxEventReceiver;
local v37 = require(l_Modules_0.AvatarExperience.Common.Context.PageObjectManagerContext);
local v38 = require(l_Modules_0.AvatarExperience.Common.Context.SceneInteractionProvider);
local l_SelectionCursorProvider_0 = require(l_CorePackages_0.UIBlox).App.SelectionImage.SelectionCursorProvider;
local v40 = require(l_Modules_0.AvatarExperience.AvatarEditor.Components.EventReceivers.EventReceiver);
local l_DesignTokenProvider_0 = require(l_CorePackages_0.Workspace.Packages.Style).DesignTokenProvider;
local v42 = require(l_Modules_0.LuaApp.DesignTokenMappers.tokenMappers);
local v43 = require(l_Modules_0.AvatarExperience.Flags.FFlagShowCreateCostumeXBoxSignalR);
local v44 = v8.Component:extend("AvatarExperienceDependencyWrapper");
v44.init = function(v45)
    v45.providers = {};
    local v46 = l_Localization_0.new(l_LocalizationService_0.RobloxLocaleId);
    local l_v26_0 = v26;
    local v48 = l_EventIngest_0.new(l_EventIngestService_0);
    v45._robloxEventReceiver = l_RobloxEventReceiver_0.new(l_NotificationService_0);
    local v49 = {
        themeName = "dark",
        fontName = "gotham"
    };
    table.insert(v45.providers, {
        class = l_RoactAppPolicy_0.Provider,
        props = {
            policy = {
                l_AppFeaturePolicies_0,
                l_ChatPolicies_0,
                l_AvatarPolicies_0,
                l_SharePolicies_0
            }
        }
    });
    table.insert(v45.providers, {
        class = l_AppStyleProvider_0,
        props = {
            style = v49
        }
    });
    table.insert(v45.providers, {
        class = v13,
        props = {
            localization = v46
        }
    });
    table.insert(v45.providers, {
        class = v29.Provider,
        props = {
            value = l_IXPService_0
        }
    });
    table.insert(v45.providers, {
        class = v35.Provider
    });
    table.insert(v45.providers, {
        class = v37.Provider,
        props = {
            pageObjectManager = v11.pageObjectManager
        }
    });
    table.insert(v45.providers, {
        class = v38
    });
    table.insert(v45.providers, {
        class = l_DesignTokenProvider_0,
        props = {
            tokenMappers = v42
        }
    });
    v45.services = {
        [v23] = l_Localization_0.new(l_LocalizationService_0.RobloxLocaleId),
        [v28] = l_Analytics_0.new(),
        [v27] = l_v26_0,
        [l_AppRunService_0] = l_RunService_0,
        [l_AppContentProvider_0] = l_ContentProvider_0,
        [l_AppNotificationService_0] = l_NotificationService_0,
        [v15] = v48
    };
    v45.props.store:dispatch(v25((tostring(v45.props.store:getState().RobloxUser.rbxuid))));
end;
v44.render = function(v50)
    return v8.createElement(v9.StoreProvider, {
        store = v50.props.store
    }, {
        providers = v8.createElement(l_ProviderContainer_0, {
            providers = v50.providers
        }, {
            CursorProvider = v8.createElement(l_SelectionCursorProvider_0, {}, {
                services = v8.createElement(l_RoactServices_0.ServiceProvider, {
                    services = v50.services
                }, {
                    ServiceUsers = v8.createFragment({
                        AvatarEditorEventReceiver = v43 and v8.createElement(v40, {
                            RobloxEventReceiver = v50._robloxEventReceiver
                        }),
                        ScreenRoot = v8.createElement(v31, {
                            store = v50.props.store
                        })
                    })
                })
            })
        })
    });
end;
return v44;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_NotificationService_0 = game:GetService("NotificationService");
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_CorePackages_0.Cryo);
local l_Consumer_0 = v5.Style.Consumer;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v10 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v11 = require(l_Modules_0.LuaApp.Thunks.FetchTheme);
local v12 = require(l_Modules_0.LuaApp.Flags.FFlagDebugLuaAppsUseDarkTheme);
local v13 = v3.Component:extend("AvatarExperienceThemeFetcher");
v13.init = function(v14)
    v14.changeTheme = function(v15)
        if v12 then
            v15 = "dark";
        end;
        l_NotificationService_0.SelectedTheme = v15;
        v14.props.appStyle:updateTheme(v15);
    end;
end;
v13.didMount = function(v16)
    v11(v16.props.networking, v16.props.localUserId):andThen(function(v17)
        v16.changeTheme(v17);
    end);
end;
v13.render = function(_)
end;
v13 = l_RoactServices_0.connect({
    networking = v10
})((v4.connect(function(v19, _)
    return {
        localUserId = v19.LocalUserId
    };
end)(v13)));
return function(v21)
    return v3.createElement(l_Consumer_0, {
        render = function(v22)
            return v3.createElement(v13, v6.Dictionary.join(v21, {
                appStyle = v22
            }));
        end
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Workspace_0 = game:GetService("Workspace");
local l_GuiService_0 = game:GetService("GuiService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v5 = require(l_CorePackages_0.Roact);
local v6 = require(l_CorePackages_0.RoactRodux);
local l_ExternalEventConnection_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).ExternalEventConnection;
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v11 = require(l_Modules_0.LuaApp.Actions.SetScreenSize);
local v12 = require(l_Modules_0.LuaApp.Actions.SetGlobalGuiInset);
local v13 = require(l_Modules_0.LuaApp.Actions.SetDeviceOrientation);
local l_SetFormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Actions.SetFormFactor;
local v15 = v5.Component:extend("AvatarExperienceViewportListener");
v15.init = function(v16)
    local l_l_GuiService_0_GuiInset_0, v18 = l_GuiService_0:GetGuiInset();
    v16.props.setGlobalGuiInset(l_l_GuiService_0_GuiInset_0.X, l_l_GuiService_0_GuiInset_0.Y, v18.X, v18.Y);
    v16.updateDeviceOrientation = function(v19)
        local v20 = v19.y < v19.x and l_DeviceOrientationMode_0.Landscape or l_DeviceOrientationMode_0.Portrait;
        if v16.props.deviceOrientation ~= v20 then
            v16.props.setDeviceOrientation(v20);
        end;
    end;
    v16.updateDeviceFormFactor = function(v21)
        local l_useWidthBasedRule_0 = v16.props.useWidthBasedRule;
        local l_WIDE_0 = l_FormFactor_0.WIDE;
        if not l_useWidthBasedRule_0 then
            if v21.X < v21.Y then
                l_WIDE_0 = l_FormFactor_0.COMPACT;
            end;
        elseif v21.X < 600 then
            l_WIDE_0 = l_FormFactor_0.COMPACT;
        end;
        v16.props.setFormFactor(l_WIDE_0);
    end;
    v16.updateViewport = function()
        local l_ViewportSize_0 = l_Workspace_0.CurrentCamera.ViewportSize;
        if l_ViewportSize_0.X > 1 and l_ViewportSize_0.Y > 1 then
            v16.props.setScreenSize(l_ViewportSize_0);
            v16.updateDeviceOrientation(l_ViewportSize_0);
            v16.updateDeviceFormFactor(l_ViewportSize_0);
        end;
    end;
end;
v15.render = function(v25)
    return v5.createElement("Folder", {}, {
        viewportSizeListener = v5.createElement(l_ExternalEventConnection_0, {
            event = l_Workspace_0.CurrentCamera:GetPropertyChangedSignal("ViewportSize"),
            callback = v25.updateViewport
        })
    });
end;
v15.didMount = function(v26)
    v26.updateViewport();
end;
return (l_RoactAppPolicy_0.connect(function(v27, _)
    return {
        useWidthBasedRule = v27.getUseWidthBasedFormFactorRule()
    };
end)((v6.connect(function(v29)
    return {
        deviceOrientation = v29.DeviceOrientation
    };
end, function(v30)
    return {
        setScreenSize = function(v31)
            v30(v11(v31));
        end,
        setGlobalGuiInset = function(v32, v33, v34, v35)
            return v30(v12(v32, v33, v34, v35));
        end,
        setDeviceOrientation = function(v36)
            v30(v13(v36));
        end,
        setFormFactor = function(v37)
            v30(l_SetFormFactor_0(v37));
        end
    };
end)(v15))));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.Xbox.AppShellContext);
local v2 = require(l_Modules_0.AvatarExperience.Common.withContextValue);
return function(v3)
    return v2(v3, v1.Consumer, "appShell", {
        required = false
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_useUiModeInfo_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useUiModeInfo;
local v3 = require(l_CorePackages_0.Packages.Dash);
local v4 = require(l_CorePackages_0.Packages.React);
local l_UiMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).UiMode;
return function(v6)
    return function(v7)
        return v4.createElement(v6, v3.join(v7, {
            designTokens = l_useDesignTokens_0(function(v8)
                local v9 = l_useUiModeInfo_0().uiMode == l_UiMode_0.TenFoot;
                local v10 = not v9 and 0 or v8.Global.Space_500;
                local v11 = not v9 and 0 or v8.Global.Space_800;
                return {
                    topPadding = v10,
                    leftPadding = v11,
                    bottomPadding = not v9 and 0 or -(v10 + v8.Global.Space_500),
                    rightPadding = not v9 and 0 or -2 * v11
                };
            end)
        }));
    end;
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_useInputType_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useInputType;
return function(v4)
    return function(v5)
        return v2.createElement(v4, v1.join(v5, {
            lastInputGroup = l_useInputType_0()
        }));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.OverlayFocusHandler);
return function(v4)
    return function(v5)
        return v2.createElement(v3, {
            overlayComponent = v4,
            arguments = v5
        });
    end;
end;