local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.UIBlox);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v5 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local _ = require(l_Modules_0.AvatarExperience.Catalog.Http.WebApi);
local v7 = require(l_Modules_0.LuaApp.Enum.RetrievalStatus);
local l_ItemTileEnums_0 = v2.Tile.ItemTileEnums;
local v9 = require(l_CorePackages_0.Packages.Dash);
local l_memoize_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).memoize;
local v11 = require(l_CorePackages_0.tutils);
local v12 = require(l_CorePackages_0.Packages.t);
local v13 = require(l_Modules_0.AvatarExperience.Catalog.GetCatalogCategories);
local _ = require(l_Modules_0.AvatarExperience.Common.Reducers.CollectiblesItemInfo);
local _ = require(l_Modules_0.AvatarExperience.Common.Reducers.CollectiblesResellersInstances);
local _ = require(l_Modules_0.AvatarExperience.Common.Reducers.CollectiblesResellableInstances);
local _ = require(l_Modules_0.AvatarExperience.Common.Models.CollectibleInfo);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local l_Constants_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Utils.Constants;
local v20 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v21 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXLimitedBundlesHandleNewData);
local v22 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagCollectiblesCatalogFollowUpForSaleLocation);
local v23 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagIsCollectibleSellableInShopFix);
local v24 = require(l_Modules_0.AvatarExperience.Flags.GetAXInExperienceItemLinking);
local v25 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXGateUGC4ACollectibleAssetsBundles);
local v26 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXFixNoItemsFoundWidgetsResults);
local v27 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
local v28 = {};
if not v27 then
    v28.DEPRECATED_HasAttribution = function(v29)
        if v29 and v29.creatingUniverseId then
            return true;
        else
            return false;
        end;
    end;
    v28.DEPRECATED_GetItemSubType = function(v30, v31)
        if v31 then
            if v30 == v4.ItemType.Asset then
                return v31.assetType;
            elseif v30 == v4.ItemType.Bundle then
                return v31.bundleType;
            else
                return nil;
            end;
        else
            return ;
        end;
    end;
end;
v28.Round = function(v32)
    return (math.floor(v32 + 0.5));
end;
v28.bankersRounding = function(v33)
    local v34 = math.floor(v33);
    if v33 - v34 == 0.5 then
        if v34 % 2 == 0 then
            return v34;
        else
            return v34 + 1;
        end;
    else
        return (math.round(v33));
    end;
end;
if not v27 then
    v28.DEPRECATED_HasPremiumBenefits = function(v35)
        if v35 then
            return v35.premiumPricing ~= nil;
        else
            return false;
        end;
    end;
    v28.DEPRECATED_IsPremiumExclusive = function(v36)
        if v36 then
            local v37 = false;
            if v36.priceInRobux == nil then
                v37 = v28.DEPRECATED_HasPremiumBenefits(v36);
            end;
            return v37;
        else
            return false;
        end;
    end;
    v28.DEPRECATED_IsResellable = function(v38)
        if v38 then
            if v38 then
                local l_numberRobloxHasAvailable_0 = v38.numberRobloxHasAvailable;
                local l_itemRestrictions_0 = v38.itemRestrictions;
                return (l_itemRestrictions_0 and l_itemRestrictions_0[v5.ItemRestrictions.Limited] or l_itemRestrictions_0 and l_itemRestrictions_0[v5.ItemRestrictions.Collectible]) or ((l_itemRestrictions_0 and l_itemRestrictions_0[v5.ItemRestrictions.LimitedUnique]) and l_numberRobloxHasAvailable_0) and l_numberRobloxHasAvailable_0 == 0;
            else
                return ;
            end;
        else
            return false;
        end;
    end;
    if not (not v25() and not v21()) then
        v28.DEPRECATED_isLimitedCollectible = function(v41)
            if v41 then
                return not not v41.itemRestrictions and (v41.itemRestrictions[v5.ItemRestrictions.Collectible] or false);
            else
                return false;
            end;
        end;
        v28.DEPRECATED_hasLimitedQuantity = function(v42)
            if v42 then
                local l_itemRestrictions_1 = v42.itemRestrictions;
                return (l_itemRestrictions_1 and l_itemRestrictions_1[v5.ItemRestrictions.Limited] or l_itemRestrictions_1 and l_itemRestrictions_1[v5.ItemRestrictions.LimitedUnique]) or l_itemRestrictions_1 and l_itemRestrictions_1[v5.ItemRestrictions.Collectible];
            else
                return nil;
            end;
        end;
        v28.DEPRECATED_isUnlimitedCollectibleAsset = function(v44, v45)
            if v44 and v45 then
                return (not v28.DEPRECATED_hasLimitedQuantity(v45) and (v45.collectibleItemId and v45.collectibleItemId ~= "")) and (v44 and v44 == v4.ItemType.Asset);
            else
                return nil;
            end;
        end;
        v28.DEPRECATED_isLimitedBundle = function(v46, v47)
            if v46 and v47 then
                return (v28.DEPRECATED_hasLimitedQuantity(v47) and (v47.collectibleItemId and v47.collectibleItemId ~= "")) and (v46 and v46 == v4.ItemType.Bundle);
            else
                return nil;
            end;
        end;
        v28.DEPRECATED_isUnlimitedCollectibleBundle = function(v48, v49)
            if v48 and v49 then
                return (not v28.DEPRECATED_hasLimitedQuantity(v49) and (v49.collectibleItemId and v49.collectibleItemId ~= "")) and (v48 and v48 == v4.ItemType.Bundle);
            else
                return nil;
            end;
        end;
    end;
end;
v28.isUnlimitedCollectibleAsset = function(v50)
    if v50 then
        assert(v50, "");
        return (not v50.hasLimitedQuantity and (v50.collectibleItemId and v50.collectibleItemId ~= "")) and (v50.itemType and v50.itemType == v4.ItemType.Asset);
    else
        return nil;
    end;
end;
v28.isLimitedBundle = function(v51)
    if v51 then
        assert(v51, "silence type checker");
        return v51.isLimitedBundle;
    else
        return nil;
    end;
end;
v28.isUnlimitedCollectibleBundle = function(v52)
    if v52 then
        assert(v52, "");
        return (not v52.hasLimitedQuantity and (v52.collectibleItemId and v52.collectibleItemId ~= "")) and (v52.itemType and v52.itemType == v4.ItemType.Bundle);
    else
        return nil;
    end;
end;
v28.isOriginalStockSellableInShop = function(v53)
    if not v53 then
        return true;
    else
        local v54 = v53.saleLocationType or v5.SaleLocationType.Invalid;
        local v55 = true;
        if v54 ~= v5.SaleLocationType.ShopOnly then
            v55 = true;
            if v54 ~= v5.SaleLocationType.ShopAndMyExperiences then
                v55 = v54 == v5.SaleLocationType.ShopAndAllExperiences;
            end;
        end;
        return v55;
    end;
end;
v28.isCollectibleSellableInShop = function(v56)
    if v56 then
        assert(v56, "silence type checker");
        local v57 = v28.isOriginalStockSellableInShop(v56);
        local v58 = nil;
        v58 = if not v23() then v56.unitsAvailableForConsumption and v56.unitsAvailableForConsumption > 0 else ((v56.unitsAvailableForConsumption or v56.numberRobloxHasAvailable) or 0) > 0;
        local l_hasResellers_0 = v56.hasResellers;
        if not (v56.resaleRestriction == v5.ResaleRestriction.Disabled) or v58 then
            if not v24() then
                return not not v58 and v57 or l_hasResellers_0;
            else
                return not not v58 and (v57 or v56.experiences and #v56.experiences > 0) or l_hasResellers_0;
            end;
        else
            return false;
        end;
    else
        return true;
    end;
end;
local function _(v60, v61)
    if not (not v60 or not v60.quantityLimitPerUser) and v61 then
        local v62 = false;
        if v60.quantityLimitPerUser > 0 then
            v62 = v60.quantityLimitPerUser <= v11.fieldCount(v61);
        end;
        return v62;
    else
        return false;
    end;
end;
v28.reachQuantityLimit = function(v64, v65)
    if not (not v64 or not v64.quantityLimitPerUser) and v65 then
        local v66 = false;
        if v64.quantityLimitPerUser > 0 then
            v66 = v64.quantityLimitPerUser <= v11.fieldCount(v65);
        end;
        return v66;
    else
        return false;
    end;
end;
v28.shouldShowQuantityLimit = function(v67)
    return v67 and v67 > 0;
end;
v28.GetRbxThumbType = function(v68)
    if v68 == v4.ItemType.Asset then
        return l_Constants_0.RbxthumbTypes.Asset;
    elseif v68 == v4.ItemType.Bundle then
        return l_Constants_0.RbxthumbTypes.BundleThumbnail;
    else
        return nil;
    end;
end;
v28.GetSponsoredItemsKey = function(v69, v70)
    return v5.SponsoredItemsDataKey .. "." .. tostring(v69) .. "." .. tostring(v70);
end;
v28.GetItemDetailsKey = function(v71, v72)
    if v71 and v72 then
        return v5.ItemDetailsKey .. v71 .. v72;
    else
        return v5.ItemDetailsKey;
    end;
end;
v28.GetBatchItemDetailsKey = function(v73, v74)
    if v73 and v74 then
        return v5.BatchItemDetailsKey .. v74 .. table.concat(v73, ",");
    else
        return v5.BatchItemDetailsKey;
    end;
end;
v28.GetSortDataStatus = function(v75, v76, v77)
    local v78 = v75.AvatarExperience.Catalog.SortsContents.DataStatus[v76];
    if v78 then
        local v79 = v78[v77];
        if v79 then
            return v79;
        end;
    end;
    return v7.NotStarted;
end;
if v26() then
    v28.getFetchWidgetInfoFetchKey = function(v80, v81)
        return v5.FetchWidgetInfoKey .. (v80 or "") .. (v81 or "");
    end;
end;
if not v27 then
    v28.DEPRECATED_GetStatus = function(v82)
        if v82 then
            local l_itemStatus_0 = v82.itemStatus;
            if l_itemStatus_0 then
                if #l_itemStatus_0 == 0 then
                    return ;
                else
                    local v84 = {};
                    for _, v86 in l_itemStatus_0, nil, nil do
                        v84[v86] = true;
                    end;
                    local v87 = nil;
                    local v88 = nil;
                    if not v84[v5.ItemStatus.Sale] then
                        if v84[v5.ItemStatus.New] then
                            v87 = l_ItemTileEnums_0.StatusStyle.Info;
                            v88 = v5.ItemStatusLocale.New;
                        end;
                        return v87, v88;
                    else
                        return l_ItemTileEnums_0.StatusStyle.Alert, v5.ItemStatusLocale.Sale;
                    end;
                end;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
    v28.DEPRECATED_getIsTradable = function(v89)
        local v90 = v89 and v89.itemRestrictions;
        if v90 then
            if not v90[v5.ItemRestrictions.Limited] then
                if not v90[v5.ItemRestrictions.LimitedUnique] then
                    if not v90[v5.ItemRestrictions.Collectible] then
                        return nil;
                    else
                        return false;
                    end;
                else
                    return true;
                end;
            else
                return true;
            end;
        else
            return nil;
        end;
    end;
end;
v28.splitEntries = l_memoize_0(function(v91, v92, v93)
    local v94 = math.max(1, 1 + (v92 - 1) * v93);
    return v9.slice(v91, 1, v94 - 1), (v9.slice(v91, v94));
end);
v28.getTopicRequestKey = function(v95, v96, v97)
    local v98 = not v97 and "" or ("[%*]"):format(v97 or "");
    if #v95 > 0 then
        local v99 = table.clone(v95);
        table.sort(v99);
        v98 = v98 .. table.concat(v99, ",");
    end;
    if #v98 > 0 then
        return v98;
    elseif not v96 then
        return "";
    else
        return table.concat(v9.map(v96, function(v100)
            return tostring(v100.itemType) .. tostring(v100.targetId);
        end, ","));
    end;
end;
local v101 = nil;
local function v111(v102)
    for _, v104 in (v13()), nil, nil do
        if not v104.Subcategories then
            if v104.AssetTypeIdStrings then
                for _, v106 in v104.AssetTypeIdStrings, nil, nil do
                    if v106 == v102 then
                        return true;
                    end;
                end;
            end;
        else
            for _, v108 in v104.Subcategories, nil, nil do
                if not (not (v108.Name ~= "Community") or not v108.AssetTypeIdStrings) then
                    for _, v110 in v108.AssetTypeIdStrings, nil, nil do
                        if v110 == v102 then
                            return true;
                        end;
                    end;
                end;
            end;
        end;
    end;
    return false;
end;
v28.doesAssetTypeHaveCatalogPage = function(v112)
    if not v101 then
        v101 = {};
        for _, v114 in v4.AssetTypeIdStrings, nil, nil do
            if v111(v114) then
                v101[v114] = true;
            end;
        end;
    end;
    return v101[v112] == true;
end;
v28.getRecommendedItemsGridItemTitleHeight = function(v115)
    return (v115.BaseSize * v115.Header2.RelativeSize) * 2;
end;
v28.findCheapestCollectiblePurchaseInfo = l_memoize_0(function(v116, v117, v118, v119)
    local v120 = {};
    if v116 then
        assert(v116, "silence type checker");
        local v121 = v117[v116];
        if not (not v121 or not v121.unitsAvailableForConsumption) and v121.price then
            local v122 = true;
            if v22() then
                v122 = v28.isOriginalStockSellableInShop(v121);
            end;
            local v123 = false;
            if not ((not v121.quantityLimitPerUser or not v119) or not v119[v116]) then
                local v124 = v119[v116];
                if not (not v121 or not v121.quantityLimitPerUser) and v124 then
                    v123 = false;
                    if v121.quantityLimitPerUser > 0 then
                        v123 = v121.quantityLimitPerUser <= v11.fieldCount(v124);
                    end;
                else
                    v123 = false;
                end;
            end;
            if not (not v122 or v123) and v121.unitsAvailableForConsumption > 0 then
                v120.price = v121.price;
            end;
            local v125 = v118[v116];
            if v125 and #v125.InstanceIdsList > 0 then
                local v126 = v125.Instances[v125.InstanceIdsList[1]];
                if not (((v122 and v121.unitsAvailableForConsumption ~= 0) and v126.price >= v120.price) and not v123) then
                    v120.collectibleInstanceId = v126.collectibleInstanceId;
                    v120.price = v126.price;
                    v120.expectedSellerId = v126.seller.sellerId;
                    v120.sellerName = v126.seller.name;
                end;
            end;
            return v120;
        else
            return v120;
        end;
    else
        return v120;
    end;
end);
if v21() then
    v28.findCheapestCollectiblePurchaseInfoV2 = function(v127, v128, v129, v130, v131)
        local v132 = {};
        if v127 then
            assert(v127, "silence type checker");
            local v133 = v129[v127];
            if not v133 or v128 then
                return (v28.findCheapestCollectiblePurchaseInfo(v127, v129, v130, v131));
            else
                v132.price = v133.price;
                return v132;
            end;
        else
            return v132;
        end;
    end;
end;
v28.getQueryStringForSearchWidgets = function(v134)
    if v134 and v134.searchKeyword then
        local v135 = {
            v134.searchKeyword
        };
        if not (not v134.sortAndFilters or not v134.sortAndFilters.SelectedTopics) then
            for _, v137 in v134.sortAndFilters.SelectedTopics, nil, nil do
                table.insert(v135, 1, v137);
            end;
        end;
        return table.concat(v135, " ");
    else
        return nil;
    end;
end;
v28.getCategoryName = function(v138)
    assert(v12.number(v138), "Expected categoryIndex to be a number");
    local v139 = v13()[v138];
    return v139 and v139.Name;
end;
v28.getSubcategoryName = function(v140, v141)
    assert(v12.tuple(v12.number, v12.number)(v140, v141), "Expected categoryIndex and subcategoryIndex to be numbers");
    local v142 = nil;
    local v143 = v13()[v140];
    if v143 then
        local v144 = v143.Subcategories and v143.Subcategories[v141];
        v142 = v144 and v144.Name;
    end;
    return v142;
end;
v28.getContextStringForWidgets = function(v145)
    assert(v12.array(v12.string)(v145));
    return (string.lower((string.gsub(string.gsub(table.concat(v145, ":"), " ", "-"), "%.", "-"))));
end;
v28.getContextForWidgets = function(v146, v147, v148)
    assert(v12.tuple(v12.string, v12.number, v12.optional(v12.number))(v146, v147, v148));
    local v149 = v20.AnalyticsContext[v146];
    local v150 = v28.getCategoryName(v147);
    if not v149 or not v150 then
        return nil;
    else
        local v151 = {
            (("%*-tab"):format(v149))
        };
        table.insert(v151, v150);
        if v148 and v148 ~= 0 then
            local v152 = v28.getSubcategoryName(v147, v148);
            if v152 then
                table.insert(v151, v152);
            end;
            if not (not v148 or v152) then
                return nil;
            end;
        end;
        return v28.getContextStringForWidgets(v151);
    end;
end;
return v28;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_CorePackages_0.Packages.t);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local l_withStyle_0 = v3.Style.withStyle;
local v7 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local v8 = require(l_Modules_0.LuaApp.Constants);
local v9 = require(l_Modules_0.AvatarExperience.Catalog.Components.ActionBar.ActionButton);
local v10 = require(l_Modules_0.AvatarExperience.Catalog.Components.ActionBar.ItemDetailMoreButton);
local l_ActionBarHeight_0 = v7.ActionBar.ActionBarHeight;
local l_ActionBarGradientHeight_0 = v7.ActionBar.ActionBarGradientHeight;
local v13 = v2.PureComponent:extend("ActionBar");
local v14 = v4.strictInterface({
    buttonProps = v4.table,
    bottomPadding = v4.number,
    leftPadding = v4.number,
    rightPadding = v4.number,
    topPadding = v4.optional(v4.number),
    ZIndex = v4.number,
    topComponent = v4.optional(v4.table),
    topComponentHeight = v4.optional(v4.number),
    showMoreButton = v4.boolean,
    onMoreButtonActivated = v4.optional(v4.callback),
    isMoreButtonSelected = v4.optional(v4.boolean),
    bottomComponent = v4.optional(v4.table),
    bottomComponentHeight = v4.optional(v4.number),
    hideGradient = v4.optional(v4.boolean)
});
v13.defaultProps = {
    topComponentHeight = 0
};
v13.init = function(v15)
    v15.moreButtonRef = v2.createRef();
    v15.actionButtonRef = v2.createRef();
    v15.bottomComponentRef = v2.createRef();
end;
v13.renderWithStyle = function(v16, v17, _)
    assert(v14(v16.props));
    local l_ZIndex_0 = v16.props.ZIndex;
    local l_leftPadding_0 = v16.props.leftPadding;
    local l_rightPadding_0 = v16.props.rightPadding;
    local l_topPadding_0 = v16.props.topPadding;
    local l_bottomPadding_0 = v16.props.bottomPadding;
    local l_showMoreButton_0 = v16.props.showMoreButton;
    local l_onMoreButtonActivated_0 = v16.props.onMoreButtonActivated;
    local l_isMoreButtonSelected_0 = v16.props.isMoreButtonSelected;
    local l_buttonProps_0 = v16.props.buttonProps;
    local l_topComponent_0 = v16.props.topComponent;
    local l_topComponentHeight_0 = v16.props.topComponentHeight;
    local l_bottomComponent_0 = v16.props.bottomComponent;
    local v31 = v16.props.bottomComponentHeight or 0;
    local v32 = not not l_showMoreButton_0 and l_ActionBarHeight_0 or 0;
    local v33 = not l_showMoreButton_0 and 0 or 10;
    local v34 = l_ActionBarHeight_0 + l_bottomPadding_0;
    local v35 = (v34 + l_topComponentHeight_0) + v31;
    if not v16.props.hideGradient then
        v35 = v35 + l_ActionBarGradientHeight_0;
    end;
    local l_Theme_0 = v17.Theme;
    local l_Font_0 = v17.Font;
    local v38 = nil;
    v38 = if not l_showMoreButton_0 then v16.actionButtonRef else v16.moreButtonRef;
    local l_bottomComponentRef_0 = v16.bottomComponentRef;
    local l_moreButtonRef_0 = v16.moreButtonRef;
    if not l_bottomComponent_0 then
        l_bottomComponentRef_0 = nil;
    end;
    if not l_showMoreButton_0 then
        l_moreButtonRef_0 = nil;
    end;
    local l_createElement_0 = v2.createElement;
    local l_Frame_0 = l_Focusable_0.Frame;
    local v43 = {
        Size = UDim2.new(1, 0, 0, v35),
        BackgroundTransparency = 1,
        ZIndex = l_ZIndex_0,
        defaultChild = v38
    };
    local v44 = {
        TopComponent = l_topComponent_0 ~= nil and v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, l_topComponentHeight_0),
            Position = UDim2.new(0, 0, 1, (-v31 - v34) - l_topComponentHeight_0),
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            BackgroundTransparency = 0,
            BorderSizePixel = 0
        }, l_topComponent_0) or nil,
        ActionBarFrame = v2.createElement(l_Focusable_0.Frame, {
            Size = UDim2.new(1, 0, 0, v34),
            Position = UDim2.new(0, 0, 1, -v31 - v34),
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            BackgroundTransparency = 0,
            BorderSizePixel = 0,
            NextSelectionDown = l_bottomComponentRef_0
        }, {
            ListLayout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, v33)
            }),
            Padding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, l_leftPadding_0),
                PaddingRight = UDim.new(0, l_rightPadding_0),
                PaddingTop = if not l_topPadding_0 then nil else UDim.new(0, l_topPadding_0)
            }),
            MoreButton = l_showMoreButton_0 and v2.createElement(v10, {
                onActivated = l_onMoreButtonActivated_0,
                isSelected = l_isMoreButtonSelected_0,
                NextSelectionRight = v16.actionButtonRef,
                [v2.Ref] = v16.moreButtonRef
            }),
            ActionButton = v2.createElement(v9, {
                Size = UDim2.new(1, -v32 - v33, 0, v34 - l_bottomPadding_0),
                LayoutOrder = 2,
                Font = l_Font_0,
                buttonProps = l_buttonProps_0,
                NextSelectionLeft = l_moreButtonRef_0,
                [v2.Ref] = v16.actionButtonRef
            })
        })
    };
    local v45 = false;
    if l_bottomComponent_0 ~= nil then
        v45 = v2.createElement(l_Focusable_0.Frame, {
            Size = UDim2.new(1, 0, 0, v31),
            Position = UDim2.new(0, 0, 1, -v31),
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            BackgroundTransparency = 0,
            BorderSizePixel = 0,
            [v2.Ref] = v16.bottomComponentRef,
            NextSelectionUp = v16.actionButtonRef
        }, {
            BottomComponentContents = l_bottomComponent_0
        });
    end;
    v44.BottomComponent = v45;
    v44.GamepadBottomBarComponent = v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, v8.GAMEPAD_BOTTOM_BAR_SIZE),
        Position = UDim2.new(0, 0, 1, 0),
        BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
        BackgroundTransparency = 0,
        BorderSizePixel = 0
    });
    v44.Gradient = not v16.props.hideGradient and v2.createElement("ImageLabel", {
        Size = UDim2.new(1, 0, 0, l_ActionBarGradientHeight_0),
        Position = UDim2.new(0, 0, 1, (-v31 - v34) - l_topComponentHeight_0),
        AnchorPoint = Vector2.new(0, 1),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/LuaApp/graphic/gradient_0_100.png",
        ImageColor3 = l_Theme_0.BackgroundDefault.Color
    }) or nil;
    return l_createElement_0(l_Frame_0, v43, v44);
end;
v13.render = function(v46)
    return l_withStyle_0(function(v47)
        return v46:renderWithStyle(v47);
    end);
end;
return v13;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v6 = require(l_CorePackages_0.UIBlox);
local l_FitTextLabel_0 = require(l_CorePackages_0.AvatarExperienceDeps).RoactFitComponents.FitTextLabel;
local l_withStyle_0 = v6.Style.withStyle;
local l_withSelectionCursorProvider_0 = v6.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v6.App.SelectionImage.CursorKind;
local l_ShimmerPanel_0 = v6.App.Loading.ShimmerPanel;
local l_ImageSetButton_0 = v6.Core.ImageSet.ImageSetButton;
local l_ImageSetLabel_0 = v6.Core.ImageSet.ImageSetLabel;
local l_Images_0 = v6.App.ImageSet.Images;
local v15 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local v16 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXFixBuyActionBarLoadingHeight);
local v17 = game:DefineFastFlag("AXFixBuyActionBarHeight", false);
local v18 = l_Images_0["component_assets/circle_17"];
local v19 = v4.PureComponent:extend("ActionButton");
v19.validateProps = v2.strictInterface({
    NextSelectionLeft = v2.optional(v2.table),
    NextSelectionDown = v2.optional(v2.table),
    NextSelectionUp = v2.optional(v2.table),
    NextSelectionRight = v2.optional(v2.table),
    Size = v2.UDim2,
    Position = v2.optional(v2.UDim2),
    LayoutOrder = v2.optional(v2.number),
    buttonProps = v2.table,
    Font = v2.table,
    forwardRef = v2.optional(v2.table)
});
v19.init = function(v20)
    v20.state = {
        isButtonPressed = false
    };
    v20.onInputBegan = function()
        v20:setState({
            isButtonPressed = true
        });
    end;
    v20.onInputEnded = function()
        v20:setState({
            isButtonPressed = false
        });
    end;
end;
v19.renderWithStyle = function(v21, v22, v23)
    local l_Size_0 = v21.props.Size;
    local l_Position_0 = v21.props.Position;
    local l_LayoutOrder_0 = v21.props.LayoutOrder;
    local l_Font_0 = v21.props.Font;
    local l_buttonProps_0 = v21.props.buttonProps;
    local l_isButtonPressed_0 = v21.state.isButtonPressed;
    local l_Theme_0 = v22.Theme;
    local v31 = 0;
    if not l_buttonProps_0.buttonIsDisabled then
        if l_isButtonPressed_0 then
            v31 = l_Theme_0.Overlay.Transparency;
        end;
    else
        v31 = v15.ActionBar.DisabledButtonTransparency;
    end;
    local _ = nil;
    return v4.createElement(l_Focusable_0[l_ImageSetButton_0], {
        Size = l_Size_0,
        Position = l_Position_0,
        LayoutOrder = l_LayoutOrder_0,
        AutoButtonColor = false,
        BackgroundTransparency = 1,
        Image = v18,
        ImageColor3 = l_buttonProps_0.buttonColor,
        ImageTransparency = v31,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(8, 8, 9, 9),
        ClipsDescendants = true,
        [v4.Event.InputBegan] = v21.onInputBegan,
        [v4.Event.InputEnded] = v21.onInputEnded,
        [v4.Event.Activated] = function()
            if not (not (l_buttonProps_0.onActivated ~= nil) or l_buttonProps_0.buttonIsLoading) then
                l_buttonProps_0.onActivated();
            end;
        end,
        NextSelectionLeft = v21.props.NextSelectionLeft,
        NextSelectionDown = v21.props.NextSelectionDown,
        NextSelectionUp = v21.props.NextSelectionUp,
        NextSelectionRight = v21.props.NextSelectionRight,
        [v4.Ref] = v21.props.forwardRef,
        SelectionImageObject = v23(l_CursorKind_0.RoundedRectNoInset)
    }, {
        ButtonInfo = if not l_buttonProps_0.buttonIsLoading then v4.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            BackgroundTransparency = 1
        }, {
            Layout = v4.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, l_buttonProps_0.buttonIconPadding)
            }),
            Icon = l_buttonProps_0.buttonIcon and v4.createElement(l_ImageSetLabel_0, {
                Size = UDim2.new(0, l_buttonProps_0.buttonIconSize, 0, l_buttonProps_0.buttonIconSize),
                BackgroundTransparency = 1,
                Image = l_buttonProps_0.buttonIcon,
                ImageTransparency = v31,
                ImageColor3 = l_buttonProps_0.buttonTextColor,
                LayoutOrder = 1
            }),
            Text = v4.createElement(l_FitTextLabel_0, {
                width = l_FitTextLabel_0.Width.FitToText,
                Size = UDim2.new(0, 0, 0, l_Font_0.BaseSize * l_Font_0.Header1.RelativeSize),
                BackgroundTransparency = 1,
                Text = l_buttonProps_0.buttonText or "",
                Font = l_Font_0.Header1.Font,
                TextSize = l_Font_0.BaseSize * l_Font_0.Header1.RelativeSize,
                TextXAlignment = Enum.TextXAlignment.Center,
                TextWrapped = false,
                TextColor3 = l_buttonProps_0.buttonTextColor,
                TextTransparency = v31,
                LayoutOrder = 2
            })
        }) else v4.createElement(l_ShimmerPanel_0, {
            Size = UDim2.new(1, 0, (v16() or v17) and 1 or 2, 0),
            Position = UDim2.new(0, 0, 0, 0),
            shimmerSpeed = 1.5,
            cornerRadius = if v16() or v17 then UDim.new(0, v22.Tokens.Semantic.Radius.Large) else nil
        })
    });
end;
v19.render = function(v33)
    return l_withStyle_0(function(v34)
        return l_withSelectionCursorProvider_0(function(v35)
            return v33:renderWithStyle(v34, v35);
        end);
    end);
end;
return v4.forwardRef(function(v36, v37)
    return v4.createElement(v19, v3.Dictionary.join(v36, {
        forwardRef = v37
    }));
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local v3 = require(l_CorePackages_0.Promise);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.UIBlox);
local l_withNavigation_0 = require(l_CorePackages_0.RoactNavigation).withNavigation;
local v7 = require(l_CorePackages_0.RoactRodux);
local v8 = require(l_CorePackages_0.Packages.RoactGamepad);
local v9 = require(l_CorePackages_0.Packages.t);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v11 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v12 = require(l_Modules_0.LuaApp.Services.RoactLocalization);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v14 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectItemInfo);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v16 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local v17 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v20 = require(l_Modules_0.LuaApp.Thunks.ApiFetchEconomyCurrency);
local v21 = require(l_Modules_0.LuaApp.Enum.RetrievalStatus);
local l_withStyle_0 = v5.Style.withStyle;
local l_NumberLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).NumberLocalization;
local v24 = require(l_Modules_0.LuaApp.Constants);
local v25 = require(l_Modules_0.AvatarExperience.Common.Components.ItemDetails.RecommendedItemsGrid);
local v26 = require(l_Modules_0.AvatarExperience.Common.Validators.DEPRECATED_ItemDataValidator);
local l_PeekViewState_0 = require(l_CorePackages_0.Workspace.Packages.PeekView).PeekViewState;
local v28 = require(l_Modules_0.AvatarExperience.Common.Components.withLastInputGroup);
local v29 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v30 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local v31 = require(l_Modules_0.AvatarExperience.Catalog.Components.ActionBar.ActionBar);
local v32 = require(l_Modules_0.AvatarExperience.Catalog.Components.ActionBar.PremiumBar);
local v33 = require(l_Modules_0.AvatarExperience.Common.Selectors.DEPRECATED_ItemData);
local v34 = require(l_Modules_0.AvatarExperience.Common.Models.ItemInfo);
local v35 = require(l_Modules_0.AvatarExperience.Catalog.CatalogUtils);
local v36 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v37 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.OpenPremiumUpsellPrompt);
local v38 = require(l_Modules_0.AvatarExperience.Common.Selectors.SelectItemPromptType);
local v39 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Debug.logOnOverlayClosed);
local v40 = require(l_Modules_0.AvatarExperience.Common.Thunks.NavigateWithLock);
local v41 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v42 = require(l_Modules_0.AvatarExperience.Common.Thunks.OpenItemPrompt);
local v43 = require(l_Modules_0.LuaApp.Enum.ToastType);
local v44 = require(l_Modules_0.AvatarExperience.Flags.FFlagAEShowPremiumPolicy);
local v45 = require(l_Modules_0.AvatarExperience.Flags.GetAXInExperienceItemLinking);
local v46 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
local v47 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixResellButtonStyling);
local v48 = game:DefineFastFlag("ExperienceItemsResalePurchase", false);
local v49 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXLimitedBundlesHandleNewData);
local l_Images_0 = v5.App.ImageSet.Images;
local v51 = l_Images_0["icons/menu/avatar_on"];
local v52 = l_Images_0["icons/common/robux"];
local v53 = l_Images_0["icons/actions/block"];
local v54 = l_GuiService_0:IsTenFootInterface();
local v55 = v4.PureComponent:extend("BuyActionBar");
v55.validateProps = v9.strictInterface({
    showMoreButton = v9.optional(v9.boolean),
    itemId = v9.optional(v9.string),
    itemType = v9.string,
    headerPadding = v9.number,
    leftPadding = v9.number,
    topPadding = v9.optional(v9.number),
    bottomPadding = v9.number,
    rightPadding = v9.number,
    ZIndex = v9.number,
    onBottomComponentResized = v9.optional(v9.callback),
    hideGradient = v9.optional(v9.boolean),
    disableIAPEntryPoint = v9.optional(v9.boolean),
    analytics = v9.table,
    networking = v9.callback,
    localization = v9.table,
    navigation = v9.table,
    avatarRoute = v9.table,
    fetchingState = v9.string,
    DEPRECATED_itemData = if not v46 then v9.optional(v26) else nil,
    itemInfo = if not v46 then nil else v9.optional(v34.Validator),
    userAsset = v9.optional(v9.table),
    productId = v9.optional(v9.string),
    userRobux = v9.optional(v9.number),
    localUserId = v9.optional(v9.string),
    playerMembership = v9.optional(v9.enum(Enum.MembershipType)),
    lastInputGroup = v9.optional(v9.string),
    promptType = v9.optional(v9.string),
    collectibleItemInfo = v9.optional(v9.table),
    collectiblesItemInfo = v9.optional(v9.table),
    collectiblesResellersInstances = v9.optional(v9.table),
    resellableInstances = v9.optional(v9.table),
    isLimitedCollectible = if not v49() then nil else v9.optional(v9.boolean),
    openPremiumUpsell = v9.callback,
    setCurrentToastMessage = v9.callback,
    requestRobuxInfo = v9.callback,
    openItemPrompt = v9.callback,
    navigateWithLock = v9.callback,
    showPremiumContent = v9.boolean
});
v55.defaultProps = {
    bottomPadding = 0,
    showMoreButton = true
};
v55.init = function(v56)
    v56:setState({
        isMoreButtonActivated = false
    });
    v56.openPremiumUpsell = function()
        local l_networking_0 = v56.props.networking;
        local l_analytics_0 = v56.props.analytics;
        local v59 = nil;
        if not v46 then
            v59 = v56.props.DEPRECATED_itemData.id;
        elseif v56.props.itemInfo then
            v59 = v56.props.itemInfo.itemId;
        end;
        v56.props.openPremiumUpsell(l_networking_0, l_analytics_0, v59, v56.props.itemType == v29.ItemType.Bundle, v56.props.navigation);
    end;
    v56.openCatalogContextMenu = function(v60)
        local l_itemId_0 = v56.props.itemId;
        local l_itemType_0 = v56.props.itemType;
        local l_navigation_0 = v56.props.navigation;
        local v64 = l_navigation_0.getParam("fromProfile") or l_navigation_0.state.routeName == v15.TryOnItem;
        v56.props.navigateWithLock(function()
            v56.props.navigation.navigate(v15.CatalogContextMenu, {
                itemId = l_itemId_0,
                itemType = l_itemType_0,
                onOverlayClosed = v60,
                centered = v64
            });
        end);
    end;
    v56.closeCatalogContextMenu = function()
        v17.closeAllDialogs(v56.props.navigation);
    end;
    v56.makeOverlayClosedCallback = function(v65)
        return function()
            v56:setState({
                isMoreButtonSelected = false
            });
            local v66 = v56.props.lastInputGroup == v24.InputType.Gamepad;
            v39("BuyActionBar", v66);
            if v66 then
                v65.captureFocus();
            end;
        end;
    end;
end;
v55.didMount = function(v67)
    local l_userRobux_0 = v67.props.userRobux;
    local l_localUserId_0 = v67.props.localUserId;
    local l_networking_1 = v67.props.networking;
    if l_userRobux_0 == nil then
        v67:setState({
            loadingRobux = true
        });
        v67.promise = v67.props.requestRobuxInfo(l_networking_1, l_localUserId_0):finally(function(v71)
            if v71 ~= v3.Status.Cancelled then
                v67:setState({
                    loadingRobux = false
                });
            end;
            v67.promise = nil;
        end);
    end;
end;
v55.willUnmount = function(v72)
    if v72.promise then
        v72.promise:cancel();
        v72.promise = nil;
    end;
end;
v55.getRecommendedItemButtonCount = function(v73)
    if not v73.props.recommendedItemSummaries then
        return 0;
    else
        return #v73.props.recommendedItemSummaries;
    end;
end;
v55.getGridWidth = function(v74)
    local v75 = v74:getRecommendedItemTileSize();
    local v76 = v74:getRecommendedItemButtonCount();
    return v75 * v76 + v30.ActionBar.SimilarItemsGridHorizontalPadding * (v76 + 1);
end;
v55.getScrollingListChildren = function(v77)
    local l_itemId_1 = v77.props.itemId;
    local l_itemType_1 = v77.props.itemType;
    local v80 = nil;
    if not v46 then
        v80 = v35.DEPRECATED_GetItemSubType(l_itemType_1, v77.props.DEPRECATED_itemData);
    else
        local l_itemInfo_0 = v77.props.itemInfo;
        if l_itemInfo_0 then
            v80 = l_itemInfo_0.itemSubType;
        end;
    end;
    local v82 = if not v77:getIsTryOnPage() then v77.props.itemDetailsViewState else v77.props.itemDetailsTryOnViewState;
    local _ = nil;
    return {
        UIPadding = v4.createElement("UIPadding", {
            PaddingTop = UDim.new(0, v30.ActionBar.SimilarItemsGridVerticalPadding),
            PaddingBottom = UDim.new(0, v30.ActionBar.SimilarItemsGridVerticalPadding),
            PaddingLeft = UDim.new(0, v30.ActionBar.SimilarItemsGridHorizontalPadding),
            PaddingRight = UDim.new(0, v30.ActionBar.SimilarItemsGridHorizontalPadding)
        }),
        RecommendedItemsGrid = not not l_itemId_1 and v4.createElement(v25, {
            itemId = l_itemId_1,
            itemType = l_itemType_1,
            itemSubType = v80,
            getItemMetrics = v77.getRecommendedItemsGridItemMetrics,
            onActivatedMountAsFullView = v82 == l_PeekViewState_0.Full or v82 == l_PeekViewState_0.Extended
        }) or nil
    };
end;
local _ = function(v84)
    if v45() then
        local v85 = if not v84.collectibleItemInfo then nil else v84.collectibleItemInfo.experiences;
        local _ = nil;
        if not v46 then
            if not v84.DEPRECATED_itemData then
                return v85, false;
            else
                return v85, v84.DEPRECATED_itemData.collectibleItemId ~= nil;
            end;
        elseif not v84.itemInfo then
            return v85, false;
        else
            return v85, v84.itemInfo.collectibleItemId ~= nil;
        end;
    else
        return nil, false;
    end;
end;
local function _(v88, v89)
    if v48 then
        local l_v89_0 = v89;
        if l_v89_0 then
            l_v89_0 = false;
            if v89.unitsAvailableForConsumption == 0 then
                l_v89_0 = v89.hasResellers;
            end;
        end;
        return v88 and not l_v89_0;
    else
        return v88;
    end;
end;
v55.render = function(v92)
    return l_withLocalization_0({
        freeText = "Feature.Catalog.LabelFree",
        getPremium = "Feature.PremiumUpsell.Title.GetPremium",
        soldOut = "Feature.Catalog.Label.SoldOut",
        fromResale = "Feature.Catalog.Label.PriceFromResale",
        inMultipleExperiences = "Feature.Catalog.Label.InMultipleExperiences",
        inSingleExperience = "Feature.Catalog.Label.InSingleExperience"
    })(function(v93)
        return l_withStyle_0(function(v94)
            local l_ZIndex_0 = v92.props.ZIndex;
            local l_headerPadding_0 = v92.props.headerPadding;
            local l_leftPadding_0 = v92.props.leftPadding;
            local l_rightPadding_0 = v92.props.rightPadding;
            local l_topPadding_0 = v92.props.topPadding;
            local l_bottomPadding_0 = v92.props.bottomPadding;
            local l_showMoreButton_0 = v92.props.showMoreButton;
            local v102 = nil;
            local v103 = nil;
            if not v46 then
                v102 = v92.props.DEPRECATED_itemData;
            else
                v103 = v92.props.itemInfo;
            end;
            local l_localization_0 = v92.props.localization;
            local l_promptType_0 = v92.props.promptType;
            local l_collectiblesItemInfo_0 = v92.props.collectiblesItemInfo;
            local l_collectiblesResellersInstances_0 = v92.props.collectiblesResellersInstances;
            local l_resellableInstances_0 = v92.props.resellableInstances;
            local v109 = nil;
            local v110 = nil;
            local v111 = nil;
            local v112 = nil;
            local v113 = nil;
            local v114 = nil;
            local v115 = nil;
            local v116 = nil;
            v110 = v92.props.playerMembership == Enum.MembershipType.Premium;
            if not v46 then
                v109 = v102 and v102.priceInRobux;
                v111 = v35.DEPRECATED_HasPremiumBenefits(v102);
                v112 = v35.DEPRECATED_IsPremiumExclusive(v102);
                v113 = v35.DEPRECATED_IsResellable(v102);
                if not v113 then
                    if not (not v111 or not v110) then
                        v109 = v102 and v102.premiumPricing.premiumPriceInRobux;
                    end;
                else
                    v109 = v102 and (v102.lowestPrice or v102.priceInRobux);
                end;
                v114 = if not v102 then nil else v102.collectibleItemId;
            elseif v103 then
                v114 = v103.collectibleItemId;
                v109 = v103.priceInRobux;
                v111 = v103.hasPremiumBenefits;
                v112 = v103.isPremiumExclusive;
                v113 = v103.isResellable;
                if not v113 then
                    if not ((not v111 or not v110) or not v103.premiumPricing) then
                        v109 = v103.premiumPricing.premiumPriceInRobux;
                    end;
                else
                    v109 = v103.lowestPrice or v103.priceInRobux;
                end;
                if v103.premiumPricing then
                    v115 = v103.premiumPricing.premiumDiscountPercentage;
                    v116 = v103.premiumPricing.premiumPriceInRobux;
                end;
            end;
            local l_v111_0 = v111;
            if v44 then
                l_v111_0 = l_v111_0 and v92.props.showPremiumContent;
            end;
            local v118 = v109 and l_NumberLocalization_0.localize(v109 and string.format("%.0f", v109), l_localization_0:GetLocale());
            local v119 = true;
            local v120 = v112 and not v110;
            local l_v52_0 = v52;
            local l_Color_0 = v94.Theme.ContextualPrimaryDefault.Color;
            local l_Color_1 = v94.Theme.ContextualPrimaryContent.Color;
            local l_props_0 = v92.props;
            local v125, v126;
            if v45() then
                local v127 = if not l_props_0.collectibleItemInfo then nil else l_props_0.collectibleItemInfo.experiences;
                local v128 = nil;
                v128 = if not v46 then if l_props_0.DEPRECATED_itemData then l_props_0.DEPRECATED_itemData.collectibleItemId ~= nil else false else if l_props_0.itemInfo then l_props_0.itemInfo.collectibleItemId ~= nil else false;
                v125 = v127;
                v126 = v128;
            else
                v125 = nil;
                v126 = false;
            end;
            local l_collectibleItemInfo_0 = v92.props.collectibleItemInfo;
            if v48 then
                local l_l_collectibleItemInfo_0_0 = l_collectibleItemInfo_0;
                if l_l_collectibleItemInfo_0_0 then
                    l_l_collectibleItemInfo_0_0 = false;
                    if l_collectibleItemInfo_0.unitsAvailableForConsumption == 0 then
                        l_l_collectibleItemInfo_0_0 = l_collectibleItemInfo_0.hasResellers;
                    end;
                end;
                l_props_0 = v125 and not l_l_collectibleItemInfo_0_0;
            else
                l_props_0 = v125;
            end;
            if v49() then
                if not v46 then
                    if not v102 then
                        v126 = false;
                    else
                        l_collectibleItemInfo_0 = false;
                        if v102.collectibleItemId ~= nil then
                            l_collectibleItemInfo_0 = v102.collectibleItemId ~= "";
                        end;
                        v126 = l_collectibleItemInfo_0;
                    end;
                elseif not v103 then
                    v126 = false;
                else
                    l_collectibleItemInfo_0 = false;
                    if v103.collectibleItemId ~= nil then
                        l_collectibleItemInfo_0 = v103.collectibleItemId ~= "";
                    end;
                    v126 = l_collectibleItemInfo_0;
                end;
            end;
            if not v126 or v92.props.collectibleItemInfo then
                if not l_props_0 then
                    l_collectibleItemInfo_0 = nil;
                    l_collectibleItemInfo_0 = if not v49() then if v114 then v35.findCheapestCollectiblePurchaseInfo(v114, l_collectiblesItemInfo_0, l_collectiblesResellersInstances_0, l_resellableInstances_0) else {} else v35.findCheapestCollectiblePurchaseInfoV2(v114, v92.props.isLimitedCollectible, l_collectiblesItemInfo_0, l_collectiblesResellersInstances_0, l_resellableInstances_0);
                    if l_collectibleItemInfo_0.price then
                        v109 = l_collectibleItemInfo_0.price;
                        v118 = l_NumberLocalization_0.localize(v109, l_localization_0:GetLocale());
                        v113 = l_collectibleItemInfo_0.collectibleInstanceId ~= nil;
                    end;
                else
                    assert(v125, "");
                    l_collectibleItemInfo_0 = #v125;
                    v118 = if l_collectibleItemInfo_0 == 1 then v93.inSingleExperience else v93.inMultipleExperiences:gsub("{NUM_EXPERIENCES}", l_collectibleItemInfo_0);
                    if v47() then
                        v119 = false;
                        l_Color_0 = v94.Theme.SystemPrimaryDefault.Color;
                        l_Color_1 = v94.Theme.SystemPrimaryContent.Color;
                    end;
                end;
            else
                v118 = "";
                if v49() then
                    v119 = false;
                end;
            end;
            if not (not v54 or not l_v111_0) then
                l_v111_0 = false;
            end;
            l_collectibleItemInfo_0 = false;
            if l_promptType_0 == v29.ItemPromptType.SoldOut then
                v109 = nil;
                v118 = v93.soldOut;
                v113 = nil;
                l_collectibleItemInfo_0 = true;
                v119 = false;
            elseif l_promptType_0 == v29.ItemPromptType.Disabled then
                l_collectibleItemInfo_0 = true;
                v118 = "";
                l_v52_0 = v53;
            elseif l_promptType_0 == v29.ItemPromptType.OpenGoToAvatarEditorPrompt then
                v118 = "";
                l_v52_0 = v51;
            elseif l_promptType_0 == v29.ItemPromptType.OpenPremiumUpsellPrompt then
                v118 = v93.getPremium;
                v119 = false;
                l_Color_0 = v94.Theme.SystemPrimaryDefault.Color;
                l_Color_1 = v94.Theme.SystemPrimaryContent.Color;
            elseif not l_props_0 then
                if v109 == 0 then
                    v119 = false;
                    v118 = v93.freeText;
                elseif v113 then
                    if not v49() then
                        v118 = string.gsub(v93.fromResale, "{itemPrice}", v118);
                    elseif not (v126 and (not v126 or not v92.props.collectibleItemInfo)) then
                        v118 = string.gsub(v93.fromResale, "{itemPrice}", v118);
                    end;
                end;
            end;
            local l_fetchingState_0 = v92.props.fetchingState;
            local v132 = true;
            if l_fetchingState_0 ~= v21.Fetching then
                v132 = true;
                if l_fetchingState_0 ~= v21.NotStarted then
                    v132 = v92.state.loadingRobux;
                end;
            end;
            return v8.withFocusController(function(v133)
                local v134 = {
                    toastMessage = v92.props.localization:Format("IAPExperience.RobuxUpsell.Text.PurchaseNotAvailableOnHeadSet"),
                    isLocalized = true,
                    toastType = v43.InformationMessage
                };
                local l_disableIAPEntryPoint_0 = v92.props.disableIAPEntryPoint;
                local v136 = {
                    buttonText = v118,
                    buttonIcon = not not v119 and l_v52_0 or nil,
                    buttonIconPadding = not v119 and 0 or 5,
                    buttonIconSize = not v119 and 0 or 30,
                    buttonIsDisabled = l_collectibleItemInfo_0,
                    buttonIsLoading = v132,
                    buttonColor = l_Color_0,
                    buttonTextColor = l_Color_1,
                    onActivated = function()
                        if not l_props_0 then
                            v92.props.openItemPrompt(v92.props.networking, v92.props.analytics, v92.makeOverlayClosedCallback(v133), v92.props.navigation, v92.props.avatarRoute, v92.props.itemId, v92.props.itemType, l_disableIAPEntryPoint_0, v134);
                            return ;
                        else
                            v92.props.navigation.navigate(v15.ItemExperiencesMenu, {
                                collectibleData = v92.props.collectibleItemInfo
                            });
                            return ;
                        end;
                    end
                };
                local v137 = nil;
                local v138 = 0;
                if l_v111_0 then
                    v137 = v4.createElement(v32, {
                        headerPadding = l_headerPadding_0,
                        isPlayerPremium = v110,
                        isPremiumExclusive = v112,
                        discountPercent = if not v46 then v102.premiumPricing.premiumDiscountPercentage else v115,
                        premiumPrice = if not v46 then v102.premiumPricing.premiumPriceInRobux else v116,
                        onPremiumActivated = not (v110 or v120) and v92.openPremiumUpsell or nil
                    });
                    v138 = v32:getPremiumBarHeight(v112, v110);
                end;
                return v4.createElement(v31, {
                    ZIndex = l_ZIndex_0,
                    leftPadding = l_leftPadding_0,
                    rightPadding = l_rightPadding_0,
                    topPadding = l_topPadding_0,
                    bottomPadding = l_bottomPadding_0,
                    showMoreButton = l_showMoreButton_0,
                    buttonProps = v136,
                    topComponent = v137,
                    topComponentHeight = v138,
                    onMoreButtonActivated = function()
                        v92.openCatalogContextMenu(v92.makeOverlayClosedCallback(v133));
                        v92:setState({
                            isMoreButtonSelected = true
                        });
                    end,
                    isMoreButtonSelected = v92.state.isMoreButtonSelected,
                    hideGradient = v92.props.hideGradient
                });
            end);
        end);
    end);
end;
return l_RoactServices_0.connect({
    analytics = v36,
    networking = v11,
    localization = v12
})((l_RoactAppPolicy_0.connect(function(v139, _)
    return {
        showPremiumContent = v139.getShowCatalogPremiumContent(),
        disableIAPEntryPoint = v139.getDisableIAPEntryPoint()
    };
end)((v16((l_withNavigation_0((v28((v7.connect(function(v141, v142)
    local l_LocalUserId_0 = v141.LocalUserId;
    local v144 = v38(v141, v142.itemId, v142.itemType);
    local v145 = nil;
    local v146 = nil;
    local v147 = nil;
    local v148 = nil;
    local v149 = nil;
    if not v46 then
        v145 = v33(v141.AvatarExperience.Common, v142.itemId, v142.itemType);
        v147 = (v145 and v145.product) and v145.product.id;
        v148 = if not not v145 and v145.collectibleItemId then v141.AvatarExperience.Common.Collectibles.CollectiblesItemInfo[v145.collectibleItemId] else nil;
        v149 = if not v49() then nil else v35.DEPRECATED_isLimitedCollectible(v145);
    else
        v146 = v14(v141.AvatarExperience, v142.itemId, v142.itemType);
        v147 = v146 and v146.productId;
        v148 = if not not v146 and v146.collectibleItemId then v141.AvatarExperience.Common.Collectibles.CollectiblesItemInfo[v146.collectibleItemId] else nil;
        v149 = if not v49() then nil else v146 and v146.isLimitedCollectible;
    end;
    return {
        fetchingState = l_PerformFetch_0.GetStatus(v141, v35.GetItemDetailsKey(v142.itemId, v142.itemType)),
        DEPRECATED_itemData = if not v46 then v145 else nil,
        itemInfo = if not v46 then nil else v146,
        productId = v147,
        userRobux = v141.UserRobux[l_LocalUserId_0],
        localUserId = l_LocalUserId_0,
        playerMembership = not not v141.Users[l_LocalUserId_0] and v141.Users[l_LocalUserId_0].membership or Enum.MembershipType.None,
        promptType = v144,
        collectibleItemInfo = v148,
        collectiblesItemInfo = v141.AvatarExperience.Common.Collectibles.CollectiblesItemInfo,
        collectiblesResellersInstances = v141.AvatarExperience.Common.Collectibles.CollectiblesResellersInstances,
        resellableInstances = v141.AvatarExperience.Common.Collectibles.CollectiblesResellableInstances,
        isLimitedCollectible = if not v49() then nil else v149
    };
end, function(v150)
    return {
        openPremiumUpsell = function(v151, v152, v153, v154, v155)
            v150(v37(v151, v152, nil, v155, {
                assetId = v153,
                isBundle = v154
            }));
        end,
        setCurrentToastMessage = function(v156)
            v150(v41(v156));
        end,
        requestRobuxInfo = function(v157, v158)
            return v150(v20(v157, v158, false));
        end,
        openItemPrompt = function(v159, v160, v161, v162, v163, v164, v165, v166, v167)
            return v150(v42(v159, v160, v161, v162, v163, v164, v165, v166, v167));
        end,
        navigateWithLock = function(v168)
            v150(v40(v168));
        end
    };
end)(v55)))))))))));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.t);
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v5 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v5.Style.withStyle;
local l_withSelectionCursorProvider_0 = v5.App.SelectionImage.withSelectionCursorProvider;
local l_CursorKind_0 = v5.App.SelectionImage.CursorKind;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local l_ImageSetButton_0 = v5.Core.ImageSet.ImageSetButton;
local l_Images_0 = v5.App.ImageSet.Images;
local v12 = UDim2.new(0, 44, 0, 44);
local v13 = l_Images_0["icons/menu/more_on"];
local v14 = l_Images_0["icons/menu/more_off"];
local v15 = UDim2.new(0, 37, 0, 37);
local v16 = l_Images_0["component_assets/circle_17"];
local v17 = Rect.new(8, 8, 9, 9);
local v18 = v3.PureComponent:extend("ItemDetailMoreButton");
v18.validateProps = v1.strictInterface({
    NextSelectionRight = v1.table,
    NextSelectionDown = v1.optional(v1.table),
    onActivated = v1.callback,
    isSelected = v1.optional(v1.boolean),
    forwardRef = v1.table
});
v18.init = function(v19)
    v19.isMounted = false;
    v19.state = {
        isButtonPressed = false
    };
    v19.onInputBegan = function()
        if v19.isMounted then
            v19:setState({
                isButtonPressed = true
            });
            return ;
        else
            return ;
        end;
    end;
    v19.onInputEnded = function()
        if v19.isMounted then
            v19:setState({
                isButtonPressed = false
            });
            return ;
        else
            return ;
        end;
    end;
    v19.moreButtonRef = v3.createRef();
end;
v18.renderWithStyle = function(v20, v21, v22)
    local l_Theme_0 = v21.Theme;
    local l_onActivated_0 = v20.props.onActivated;
    local l_isButtonPressed_0 = v20.state.isButtonPressed;
    local l_isSelected_0 = v20.props.isSelected;
    local l_Transparency_0 = l_Theme_0.BackgroundDefault.Transparency;
    if l_isButtonPressed_0 then
        l_Transparency_0 = l_Theme_0.Overlay.Transparency;
    end;
    return v3.createElement(l_Focusable_0[l_ImageSetButton_0], {
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        Size = v12,
        Image = v16,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = v17,
        ImageTransparency = l_Transparency_0,
        ImageColor3 = l_Theme_0.BackgroundDefault.Color,
        LayoutOrder = 1,
        ClipsDescendants = false,
        [v3.Event.Activated] = l_onActivated_0,
        [v3.Event.InputBegan] = v20.onInputBegan,
        [v3.Event.InputEnded] = v20.onInputEnded,
        [v3.Ref] = v20.moreButtonRef,
        NextSelectionRight = v20.props.NextSelectionRight,
        NextSelectionDown = v20.props.NextSelectionDown,
        [v3.Ref] = v20.props.forwardRef,
        SelectionImageObject = v22(l_CursorKind_0.RoundedRectNoInset)
    }, {
        Icon = v3.createElement(l_ImageSetLabel_0, {
            Size = v15,
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            Image = if not l_isSelected_0 then v14 else v13,
            ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
            ImageColor3 = l_Theme_0.IconEmphasis.Color
        })
    });
end;
v18.didMount = function(v28)
    v28.isMounted = true;
end;
v18.willUnmount = function(v29)
    v29.isMounted = false;
end;
v18.render = function(v30)
    return l_withStyle_0(function(v31)
        return l_withSelectionCursorProvider_0(function(v32)
            return v30:renderWithStyle(v31, v32);
        end);
    end);
end;
return v3.forwardRef(function(v33, v34)
    return v3.createElement(v18, v2.Dictionary.join(v33, {
        forwardRef = v34
    }));
end);


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.RoactGamepad);
local v5 = require(l_CorePackages_0.UIBlox);
local v6 = require(l_CorePackages_0.Packages.t);
local v7 = require(l_CorePackages_0.Cryo);
local l_withNavigation_0 = require(l_CorePackages_0.RoactNavigation).withNavigation;
local v9 = require(l_CorePackages_0.tutils);
local l_withStyle_0 = v5.Core.Style.withStyle;
local l_Images_0 = v5.App.ImageSet.Images;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v13 = require(l_Modules_0.AvatarExperience.Catalog.Components.ActionBar.BuyActionBar);
local v14 = require(l_Modules_0.AvatarExperience.Common.Selectors.DEPRECATED_ItemData);
local v15 = require(l_Modules_0.AvatarExperience.Common.Models.ItemInfo);
local v16 = require(l_Modules_0.AvatarExperience.Catalog.Thunks.FetchAssetOrBundleInfo);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v18 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v19 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v20 = require(l_Modules_0.LuaApp.Services.RoactLocalization);
local v21 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
local v23 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local v24 = require(l_Modules_0.LuaApp.Constants);
local v25 = require(l_Modules_0.AvatarExperience.Catalog.Components.ActionBar.ActionButton);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v27 = require(l_Modules_0.AvatarExperience.Common.Thunks.NavigateWithLock);
local v28 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v29 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local v30 = require(l_Modules_0.AvatarExperience.Common.Validators.DEPRECATED_ItemDataValidator);
local v31 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectItemInfo);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local v33 = require(l_Modules_0.AvatarExperience.Flags.FFlagAXFixItemTypeHandling);
local l_ActionBarHeight_0 = v23.ActionBar.ActionBarHeight;
local v35 = l_Images_0["icons/menu/shop_large"];
local v36 = v2.PureComponent:extend("MultiTryOnBottomBar");
v36.validateProps = v6.strictInterface({
    bottomBarRef = v6.optional(v6.table),
    NextSelectionLeft = v6.optional(v6.table),
    Visible = v6.optional(v6.boolean),
    isConsoleWithGamepad = v6.optional(v6.boolean),
    lastToggledItem = v6.table,
    isPortrait = v6.boolean,
    tryOnItems = v6.optional(v6.table),
    DEPRECATED_itemData = if not v33 then v6.optional(v30) else nil,
    itemInfo = if not v33 then nil else v6.optional(v15.Validator),
    itemId = v6.optional(v6.string),
    itemType = v6.optional(v6.string),
    boundInputs = v6.optional(v6.table),
    fetchItemData = v6.callback,
    navigateWithLock = v6.callback,
    networking = v6.callback,
    appAnalytics = v6.table,
    catalogAnalytics = v6.table,
    localization = v6.table,
    navigation = v6.table
});
v36.defaultProps = {
    Visible = true,
    lastToggledItem = {}
};
v36.init = function(v37)
    v37.fetchItemData = function()
        local l_lastToggledItem_0 = v37.props.lastToggledItem;
        if not l_lastToggledItem_0.isUnequipped then
            v37.props.fetchItemData(v37.props.networking, v37.props.appAnalytics, l_lastToggledItem_0.itemId, l_lastToggledItem_0.itemType);
        end;
    end;
    v37.onOutfitButtonActivated = function()
        v37.props.catalogAnalytics.openOutfitScreen((v9.fieldCount(v37.props.tryOnItems)));
        local l_navigation_0 = v37.props.navigation;
        v37.props.navigateWithLock(function()
            v29.closeFiltersAndItemDetails(l_navigation_0);
            l_navigation_0.navigate(v28.TryOnManager);
        end);
    end;
end;
v36.getGamepadBottomBarHeight = function(v40)
    if not v40.props.isConsoleWithGamepad or v7.isEmpty(v40.props.boundInputs) then
        return 0;
    else
        return v24.GAMEPAD_BOTTOM_BAR_SIZE;
    end;
end;
v36.renderActionBar = function(v41)
    return v2.createElement("Frame", {
        BackgroundTransparency = 1,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = UDim2.new(1, 0, 0, 0),
        Position = UDim2.new(0, 0, 1, -v41:getGamepadBottomBarHeight()),
        AnchorPoint = Vector2.new(0, 1),
        ZIndex = 3
    }, {
        BuyActionBar = v2.createElement(v13, {
            hideGradient = true,
            itemId = v41.props.itemId,
            itemType = v41.props.itemType,
            headerPadding = 24,
            leftPadding = 10,
            bottomPadding = 20,
            rightPadding = 10,
            topPadding = 10,
            ZIndex = 1
        })
    });
end;
v36.renderOutfitBar = function(v42, v43)
    local l_Theme_0 = v43.Theme;
    return v2.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.fromScale(1, 1),
        ZIndex = 3
    }, {
        ActionBarFrame = v2.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            BackgroundTransparency = 0,
            BorderSizePixel = 0
        }, {
            Padding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 10),
                PaddingRight = UDim.new(0, 10),
                PaddingTop = UDim.new(0, 10)
            }),
            ActionButton = v2.createElement(v25, {
                Size = UDim2.new(1, 0, 0, l_ActionBarHeight_0),
                Font = v43.Font,
                buttonProps = {
                    buttonText = v42.props.localization:Format("Feature.Catalog.Label.TryOnsMultiple", (v9.fieldCount(v42.props.tryOnItems))),
                    buttonIcon = v35,
                    buttonIconPadding = 5,
                    buttonIconSize = 30,
                    buttonColor = l_Theme_0.ContextualPrimaryDefault.Color,
                    buttonTextColor = l_Theme_0.ContextualPrimaryContent.Color,
                    onActivated = v42.onOutfitButtonActivated
                }
            })
        })
    });
end;
v36.renderWithProviders = function(v45, v46)
    local v47 = not v45.props.isPortrait and 0.4 or 1;
    local v48 = not v45.props.isPortrait and 0.6 or 0;
    local v49 = nil;
    v49 = if not v33 then v45.props.DEPRECATED_itemData else v45.props.itemInfo ~= nil;
    local v50 = l_ActionBarHeight_0 + 20;
    local v51 = nil;
    if v45.props.Visible then
        v51 = if not v49 then v45:renderOutfitBar(v46) else v45:renderActionBar();
    end;
    local v52 = v50 + v45:getGamepadBottomBarHeight();
    return v2.createElement(v4.Focusable.Frame, {
        BackgroundTransparency = 1,
        Size = UDim2.new(v47, 0, 0, v52),
        Position = UDim2.new(v48, 0, 1, -v52),
        ZIndex = 3,
        ref = v45.props.bottomBarRef,
        NextSelectionLeft = v45.props.NextSelectionLeft,
        Visible = v45.props.Visible
    }, {
        BottomBar = v51
    });
end;
v36.render = function(v53)
    return l_withStyle_0(function(v54)
        return v53:renderWithProviders(v54);
    end);
end;
v36.didUpdate = function(v55, v56)
    if not (not v55.props.Visible or not (v55.props.lastToggledItem ~= v56.lastToggledItem and not v55.props.lastToggledItem.isUnequipped) and v56.Visible) then
        v55.fetchItemData();
    end;
end;
return (l_RoactServices_0.connect({
    catalogAnalytics = v21,
    appAnalytics = v19,
    networking = v18,
    localization = v20
})((v3.connect(function(v57)
    local l_TryOnItems_0 = v57.AvatarExperience.AvatarScene.OutfitTryOn.TryOnItems;
    local v59 = nil;
    local v60 = nil;
    local v61 = nil;
    local v62 = nil;
    if v9.fieldCount(l_TryOnItems_0) == 1 then
        local v63, v64 = next(l_TryOnItems_0, nil);
        v62 = v63;
        v61 = v64.itemType;
        if not v33 then
            v59 = v14(v57.AvatarExperience.Common, v62, v61);
        else
            v60 = v31(v57.AvatarExperience, v62, v61);
        end;
    end;
    return {
        isPortrait = v57.DeviceOrientation == l_DeviceOrientationMode_0.Portrait,
        tryOnItems = l_TryOnItems_0,
        lastToggledItem = v57.AvatarExperience.AvatarScene.OutfitTryOn.LastToggledItem,
        DEPRECATED_itemData = v59,
        itemInfo = v60,
        itemId = v62,
        itemType = v61,
        boundInputs = v57.GamepadBottomBar.boundInputs
    };
end, function(v65)
    return {
        navigateWithLock = function(v66)
            v65(v27(v66));
        end,
        fetchItemData = function(v67, v68, v69, v70)
            return v65(v16(v67, v68, v69, v70));
        end
    };
end)((l_withNavigation_0(v36, nil))))));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.UIBlox);
local l_FitTextLabel_0 = require(l_CorePackages_0.AvatarExperienceDeps).RoactFitComponents.FitTextLabel;
local l_withStyle_0 = v4.Style.withStyle;
local v7 = require(l_Modules_0.AvatarExperience.Catalog.CatalogConstants);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_ActionBarPremiumHeight_0 = v7.ActionBar.ActionBarPremiumHeight;
local l_ActionBarPremiumOnlyHeight_0 = v7.ActionBar.ActionBarPremiumOnlyHeight;
local v11 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXImproveTryOnManagerUI);
local v12 = utf8.char(57346);
local v13 = v2.PureComponent:extend("PremiumBar");
v13.validateProps = v3.strictInterface({
    LayoutOrder = v3.optional(v3.number),
    headerPadding = v3.number,
    isPlayerPremium = v3.boolean,
    isPremiumExclusive = v3.boolean,
    premiumPrice = v3.optional(v3.number),
    discountPercent = v3.optional(v3.number),
    onPremiumActivated = v3.optional(v3.callback),
    paddingLeft = v3.optional(v3.number),
    paddingTop = v3.optional(v3.number),
    smallerTextSize = if not v11() then nil else v3.optional(v3.boolean)
});
v13.defaultProps = {
    paddingLeft = 24,
    paddingTop = 6
};
v13.getPremiumBarHeight = function(_, v15, v16)
    return not (not v15 or v16) and l_ActionBarPremiumOnlyHeight_0 or l_ActionBarPremiumHeight_0;
end;
v13.renderPremiumExclusivePremiumPlayer_deprecated = function(_, v18, v19)
    local l_Theme_0 = v18.Theme;
    local l_Font_0 = v18.Font;
    return {
        v2.createElement(l_FitTextLabel_0, {
            BackgroundTransparency = 1,
            LayoutOrder = 1,
            Font = l_Font_0.SubHeader1.Font,
            Position = UDim2.new(0, 24, 0, 6),
            Size = UDim2.new(1, 0, 0, 0),
            Text = v19.availableToPremiumMembers,
            TextSize = l_Font_0.BaseSize * l_Font_0.SubHeader1.RelativeSize,
            TextColor3 = l_Theme_0.TextDefault.Color,
            TextTransparency = l_Theme_0.TextDefault.TextTransparency,
            TextXAlignment = Enum.TextXAlignment.Left,
            width = l_FitTextLabel_0.Width.FitToText
        })
    };
end;
v13.renderPremiumExclusivePremiumPlayer = function(v22, v23, v24)
    local l_Theme_1 = v23.Theme;
    local l_Font_1 = v23.Font;
    return {
        PremiumBarText = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Position = UDim2.new(0, v22.props.paddingLeft, 0, v22.props.paddingTop),
            Font = l_Font_1.SubHeader1.Font,
            AutomaticSize = Enum.AutomaticSize.XY,
            Text = v24.availableToPremiumMembers,
            TextSize = l_Font_1.BaseSize * l_Font_1.SubHeader1.RelativeSize,
            TextWrapped = true,
            TextColor3 = l_Theme_1.TextDefault.Color,
            TextTransparency = l_Theme_1.TextDefault.TextTransparency,
            TextXAlignment = Enum.TextXAlignment.Left
        })
    };
end;
v13.renderPremiumExclusiveNonPremiumPlayer = function(v27, v28, v29)
    local l_Theme_2 = v28.Theme;
    local l_Font_2 = v28.Font;
    return {
        UIListLayout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            Padding = UDim.new(0, 6)
        }),
        UIPadding = v2.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v27.props.paddingLeft),
            PaddingTop = UDim.new(0, v27.props.paddingTop)
        }),
        PremiumBarTextTop = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            LayoutOrder = 1,
            Font = l_Font_2.SubHeader1.Font,
            AutomaticSize = Enum.AutomaticSize.XY,
            Text = v29.premiumOnly,
            TextSize = l_Font_2.BaseSize * l_Font_2.SubHeader1.RelativeSize,
            TextWrapped = true,
            TextColor3 = l_Theme_2.TextDefault.Color,
            TextTransparency = l_Theme_2.TextDefault.TextTransparency,
            TextXAlignment = Enum.TextXAlignment.Left
        }),
        PremiumBarTextBottom = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            LayoutOrder = 2,
            Font = l_Font_2.SubHeader1.Font,
            AutomaticSize = Enum.AutomaticSize.XY,
            Text = v29.prePremiumPrice .. v12 .. v27.props.premiumPrice .. ")",
            TextSize = l_Font_2.BaseSize * l_Font_2.SubHeader1.RelativeSize,
            TextWrapped = true,
            TextColor3 = l_Theme_2.TextDefault.Color,
            TextTransparency = l_Theme_2.TextDefault.TextTransparency,
            TextXAlignment = Enum.TextXAlignment.Left
        })
    };
end;
v13.renderPremiumDiscountPremiumPlayer = function(v32, v33, v34)
    local l_Theme_3 = v33.Theme;
    local l_Font_3 = v33.Font;
    local v37 = l_Font_3.BaseSize * l_Font_3.SubHeader1.RelativeSize;
    if not (not v11() or not v32.props.smallerTextSize) then
        v37 = l_Font_3.BaseSize * l_Font_3.CaptionSubHeader.RelativeSize;
    end;
    return {
        PremiumBarText = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Position = UDim2.new(0, v32.props.paddingLeft, 0, v32.props.paddingTop),
            Font = l_Font_3.SubHeader1.Font,
            AutomaticSize = Enum.AutomaticSize.XY,
            Text = v34.premiumDiscount,
            TextSize = v37,
            TextWrapped = true,
            TextColor3 = l_Theme_3.TextDefault.Color,
            TextTransparency = l_Theme_3.TextDefault.TextTransparency,
            TextXAlignment = Enum.TextXAlignment.Left
        })
    };
end;
v13.renderPremiumDiscountNonPremiumPlayer = function(v38, v39, v40)
    local l_Theme_4 = v39.Theme;
    local l_Font_4 = v39.Font;
    return {
        PremiumBarText = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Position = UDim2.fromOffset(v38.props.paddingLeft, v38.props.paddingTop),
            Font = l_Font_4.SubHeader1.Font,
            AutomaticSize = Enum.AutomaticSize.XY,
            Text = v40.getPremiumAndPrice .. v12 .. v38.props.premiumPrice,
            TextSize = l_Font_4.BaseSize * l_Font_4.SubHeader1.RelativeSize,
            TextWrapped = true,
            TextColor3 = l_Theme_4.TextDefault.Color,
            TextTransparency = l_Theme_4.TextDefault.TextTransparency,
            TextXAlignment = Enum.TextXAlignment.Left
        })
    };
end;
v13.renderWithStyle = function(v43, v44, v45)
    local l_LayoutOrder_0 = v43.props.LayoutOrder;
    local l_isPlayerPremium_0 = v43.props.isPlayerPremium;
    local l_isPremiumExclusive_0 = v43.props.isPremiumExclusive;
    local l_onPremiumActivated_0 = v43.props.onPremiumActivated;
    local _ = nil;
    return v2.createElement("ImageButton", {
        LayoutOrder = l_LayoutOrder_0,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = UDim2.new(1, 0, 0, 0),
        AutoButtonColor = false,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        [v2.Event.Activated] = function()
            if l_onPremiumActivated_0 then
                l_onPremiumActivated_0();
            end;
        end
    }, if not l_isPremiumExclusive_0 then if l_isPlayerPremium_0 then v43:renderPremiumDiscountPremiumPlayer(v44, v45) else v43:renderPremiumDiscountNonPremiumPlayer(v44, v45) else if l_isPlayerPremium_0 then v43:renderPremiumExclusivePremiumPlayer(v44, v45) else v43:renderPremiumExclusiveNonPremiumPlayer(v44, v45));
end;
v13.render = function(v51)
    return l_withLocalization_0({
        availableToPremiumMembers = "Feature.Catalog.Label.AvailableToPremiumMembers",
        premiumOnly = "Feature.Catalog.Label.PremiumOnly",
        prePremiumPrice = "Feature.Catalog.Label.PrePremiumPrice",
        premiumDiscount = {
            "Feature.Catalog.Label.PremiumDiscount";
            percent = v51.props.discountPercent or 0
        },
        getPremiumAndPrice = "Feature.Catalog.Label.GetPremiumAndPrice"
    })(function(v52)
        return l_withStyle_0(function(v53)
            return v51:renderWithStyle(v53, v52);
        end);
    end);
end;
return v13;