local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local l_Parent_4 = l_Parent_3.Parent;
local v5 = require(l_Parent_4.React);
local v6 = require(l_Parent_4.LuauPolyfill);
local _ = require(l_Parent_0.Types);
local v8 = require(l_Parent_2.Text.StyledTextLabel);
local l_Label_0 = require(l_Parent_3.Core.ImageSet.ImageSetComponent).Label;
local v10 = require(l_Parent_2.Button.Button);
local v11 = require(l_Parent_2.Button.Enum.ButtonType);
local v12 = require(l_Parent_3.Core.Button.Enum.StandardButtonSize);
local l_KeyLabel_0 = l_Parent_2.Menu.KeyLabel;
local v14 = require(l_KeyLabel_0.KeyLabel);
local _ = require(l_KeyLabel_0.Types);
local l_getKeyLabelWidth_0 = require(l_KeyLabel_0.Utilities).getKeyLabelWidth;
local v17 = require(l_Parent_3.Core.Style.useStyle);
local v18 = require(l_Parent_0.Constants);
local v19 = require(l_Parent_3.Core.Text.GetTextSize);
local v20 = require(l_Parent_1.Tooltip.Enum.TooltipOrientation);
local v21 = require(l_Parent_3.App.Button.IconButton);
local v22 = require(l_Parent_3.App.ImageSet.Enum.IconSize);
local v23 = require(l_Parent_3.App.ImageSet.Images);
local function _(v24, v25)
    return Vector2.new(v24.X * v25.X, v24.Y * v25.Y);
end;
getOffsetPosition = function(v27, v28, v29, v30)
    local v31 = v18.ORIENTATION_VECTOR[v29];
    local v32 = v28 + Vector2.new(v30, v30);
    return v27 + Vector2.new(v31.X * v32.X, v31.Y * v32.Y);
end;
local function _(v33)
    return UDim2.fromOffset(v33.X, v33.Y);
end;
local function _(v35)
    return Vector2.new(0.5, 0.5) - 0.5 * v18.ORIENTATION_VECTOR[v35];
end;
local function _(v37, v38)
    return UDim.new(0, v37 or v38);
end;
local function _(v40, v41)
    return v40 + Vector2.new(v41[v20.Left] + v41[v20.Right], v41[v20.Top] + v41[v20.Bottom]);
end;
local function v50(v43, v44, v45)
    if not v43 or #v43 == 0 then
        return nil, v44;
    else
        local v46 = {};
        local v47 = 0;
        for v48, v49 in ipairs(v43) do
            v46[v48] = v5.createElement(v14, {
                keyCode = v49,
                LayoutOrder = v48
            });
            v47 = v47 + l_getKeyLabelWidth_0(v49, v45);
        end;
        v47 = math.max(v47 + v18.HOTKEY_PADDING * (#v43 - 1), v44);
        v46.Layout = v5.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, v18.HOTKEY_PADDING)
        });
        return v5.createElement("Frame", {
            Name = "Hotkeys",
            BackgroundTransparency = 1,
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.fromOffset(v47, 0),
            LayoutOrder = 3
        }, v46), v47;
    end;
end;
return v5.forwardRef(function(v51, v52)
    assert(v51.headerText or v51.bodyText, "Must supply either header or body");
    assert(not (v51.renderCustomComponents and v51.buttonProps), "renderCustomComponents and buttonProps are not compatible");
    local v53, v54 = v5.useState(Vector2.zero);
    local v55 = v17();
    local v56 = v51.textAlignment or Enum.TextXAlignment.Left;
    local v57 = Enum.HorizontalAlignment[v56.Name];
    local l_Theme_0 = v55.Theme;
    local l_Font_0 = v55.Font;
    local l_Settings_0 = v55.Settings;
    local l_BaseSize_0 = l_Font_0.BaseSize;
    local l_CaptionHeader_0 = l_Font_0.CaptionHeader;
    local v63 = l_BaseSize_0 * l_CaptionHeader_0.RelativeSize;
    local v64 = (v18.MAX_WIDTH - (v51.PaddingLeft or v18.DEFAULT_PADDING)) - (v51.PaddingRight or v18.DEFAULT_PADDING);
    local v65 = Vector2.new(v64, math.huge);
    local v66 = 0;
    local v67 = nil;
    if v51.headerText then
        local v68 = Vector2.new(v64, 2 * v63);
        local l_v68_0 = v68;
        if v51.onClose then
            l_v68_0 = l_v68_0 - Vector2.new(v18.CLOSE_BUTTON_SIZE, 0);
        end;
        v67 = v19(v51.headerText, v63, l_CaptionHeader_0.Font, l_v68_0):Min(v68);
        v66 = math.max(v66, v67.X);
    end;
    local l_CaptionBody_0 = l_Font_0.CaptionBody;
    local v71 = nil;
    if v51.bodyText then
        v71 = v19(v51.bodyText, l_BaseSize_0 * l_CaptionBody_0.RelativeSize, l_CaptionBody_0.Font, v65);
        v66 = math.max(v66, v71.X);
    end;
    if v51.minContentWidth then
        v66 = math.max(v66, v51.minContentWidth);
    end;
    local v72 = nil;
    local v73, v74 = v50(v51.hotkeyCodes, v66, l_Font_0);
    v72 = v73;
    v66 = v74;
    v73 = nil;
    if not v51.renderCustomComponents then
        if v51.buttonProps then
            v73 = {
                Layout = v5.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = Enum.HorizontalAlignment.Right
                }),
                SizeContraint = v5.createElement("UISizeConstraint", {
                    MinSize = Vector2.new(0, 28)
                }),
                Button = v5.createElement(v10, (v6.Object.assign({}, v51.buttonProps, {
                    buttonType = v11.PrimarySystem,
                    standardSize = v12.XSmall,
                    fontStyle = l_CaptionHeader_0
                })))
            };
        end;
    else
        v73 = {
            Content = v51.renderCustomComponents(v66),
            SizeConstraint = v5.createElement("UISizeConstraint", {
                MaxSize = v65
            })
        };
    end;
    v74 = v73 and v5.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.XY,
        Size = UDim2.new(0, v66, 0, 0),
        BackgroundTransparency = 1,
        LayoutOrder = 4,
        Name = not v51.renderCustomComponents and "ButtonFrame" or "CustomComponents"
    }, v73);
    local v75 = if not not v72 and v74 then v5.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.XY,
        Size = UDim2.new(0, v66, 0, 0),
        BackgroundTransparency = 1,
        LayoutOrder = 3
    }, {
        Layout = v5.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            Padding = UDim.new(0, v51.listPadding or v18.DEFAULT_LIST_PADDING),
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        Hotkeys = v72,
        CustomContent = v74
    }) else v72 or v74;
    local v76 = if not v51.useLargeDropShadow then v18.DropShadow.Small else v18.DropShadow.Large;
    local v77 = v18.OPPOSITE_ORIENTATION[v51.orientation];
    local l_OFFSET_0 = v76.OFFSET;
    local v79 = v53 + Vector2.new(l_OFFSET_0[v20.Left] + l_OFFSET_0[v20.Right], l_OFFSET_0[v20.Top] + l_OFFSET_0[v20.Bottom]);
    l_OFFSET_0 = table.clone(v76.OFFSET);
    local v80 = v18.CONTENT_TO_CARET_TIP - l_OFFSET_0[v77];
    local v81 = math.max(0, v80);
    l_OFFSET_0[v77] = l_OFFSET_0[v77] + v81;
    local v82 = Vector2.new(l_OFFSET_0[v20.Left], l_OFFSET_0[v20.Top]);
    local v83 = Vector2.zero:Max(v18.ORIENTATION_VECTOR[v51.orientation] * v81);
    local v84 = Vector2.new(0.5, 0.5) - 0.5 * v18.ORIENTATION_VECTOR[v51.orientation];
    local v85 = ((v82 + Vector2.new(v53.X * v84.X, v53.Y * v84.Y)) - v51.contentOffsetVector) + v18.ORIENTATION_VECTOR[v77] * v18.CONTENT_TO_CARET_CENTER;
    local v86 = v53 + Vector2.new(l_OFFSET_0[v20.Left] + l_OFFSET_0[v20.Right], l_OFFSET_0[v20.Top] + l_OFFSET_0[v20.Bottom]);
    local v87 = getOffsetPosition(v51.triggerPointCenter, v51.triggerPointRadius, v51.orientation, (v18.CARET_DISTANCE + math.min(0, v80)) + math.floor(v51.distanceOffset + 0.5)) + v51.contentOffsetVector;
    v84 = v51.backgroundColor or l_Theme_0.UIDefault.Color;
    local v88 = (v51.backgroundTransparency or l_Theme_0.UIDefault.Transparency) * l_Settings_0.PreferredTransparency;
    local l_createElement_0 = v5.createElement;
    local v90 = "CanvasGroup";
    local v91 = {
        GroupTransparency = v51.transparency,
        Position = UDim2.fromOffset(v87.X, v87.Y),
        Size = UDim2.fromOffset(v86.X, v86.Y),
        AnchorPoint = Vector2.new(0.5, 0.5) - 0.5 * v18.ORIENTATION_VECTOR[v51.orientation],
        BackgroundTransparency = not v51.canvasBackground and 1 or v51.canvasBackground.Transparency,
        BackgroundColor3 = if not v51.canvasBackground then nil else v51.canvasBackground.Color,
        BorderSizePixel = 0
    };
    local v92 = {
        Caret = v5.createElement(l_Label_0, {
            Image = v18.CARET_IMAGE,
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromOffset(v85.X, v85.Y),
            BackgroundTransparency = 1,
            Size = v18.CARET_SIZE,
            Rotation = v18.CARET_ROTATION[v51.orientation],
            ImageColor3 = v84,
            ImageTransparency = v88,
            ZIndex = 2
        }),
        DropShadow = v5.createElement(l_Label_0, {
            Image = v76.IMAGE,
            ImageColor3 = l_Theme_0.DropShadow.Color,
            ImageTransparency = l_Theme_0.DropShadow.Transparency,
            BackgroundTransparency = 1,
            Position = UDim2.fromOffset(v83.X, v83.Y),
            Size = UDim2.fromOffset(v79.X, v79.Y),
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = v76.SLICE_CENTER,
            ZIndex = 1
        })
    };
    local l_createElement_1 = v5.createElement;
    local v94 = "Frame";
    local v96 = {
        AutomaticSize = Enum.AutomaticSize.XY,
        Position = UDim2.fromOffset(v82.X, v82.Y),
        BackgroundColor3 = v84,
        BackgroundTransparency = v88,
        [v5.Change.AbsoluteSize] = function(v95)
            v54(v95.AbsoluteSize);
            if v51.onContentSizeChanged then
                v51.onContentSizeChanged(v95.AbsoluteSize);
            end;
        end,
        ref = v52,
        ZIndex = 2
    };
    local v97 = {
        Layout = v5.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = v57,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, v51.listPadding or v18.DEFAULT_LIST_PADDING)
        }),
        Padding = v5.createElement("UIPadding", {
            PaddingTop = UDim.new(0, v51.PaddingTop or v18.DEFAULT_PADDING),
            PaddingBottom = UDim.new(0, v51.PaddingBottom or v18.DEFAULT_PADDING),
            PaddingLeft = UDim.new(0, v51.PaddingLeft or v18.DEFAULT_PADDING),
            PaddingRight = UDim.new(0, v51.PaddingRight or v18.DEFAULT_PADDING)
        }),
        Corner = v5.createElement("UICorner", {
            CornerRadius = v18.CORNER_RADIUS
        })
    };
    local l_headerText_0 = v51.headerText;
    if l_headerText_0 then
        l_headerText_0 = v5.createElement;
        local l_v8_0 = v8;
        local v100 = {
            text = v51.headerText,
            fontStyle = l_CaptionHeader_0,
            colorStyle = l_Theme_0.TextEmphasis,
            textYAlignment = Enum.TextYAlignment.Center,
            textXAlignment = v56,
            textTruncate = Enum.TextTruncate.AtEnd,
            layoutOrder = 1
        };
        local l_v67_0 = v67;
        v100.size = UDim2.fromOffset(l_v67_0.X, l_v67_0.Y);
        v100.fluidSizing = false;
        v100.richText = false;
        v100.lineHeight = 1;
        l_headerText_0 = l_headerText_0(l_v8_0, v100);
    end;
    v97.Header = l_headerText_0;
    l_headerText_0 = v51.bodyText;
    if l_headerText_0 then
        l_headerText_0 = v5.createElement;
        local l_v8_1 = v8;
        local v103 = {
            text = v51.bodyText,
            fontStyle = l_CaptionBody_0,
            colorStyle = l_Theme_0.TextEmphasis,
            textYAlignment = Enum.TextYAlignment.Center,
            textXAlignment = v56,
            textTruncate = Enum.TextTruncate.None,
            layoutOrder = 2
        };
        local l_v71_0 = v71;
        v103.size = UDim2.fromOffset(l_v71_0.X, l_v71_0.Y);
        v103.fluidSizing = false;
        v103.richText = false;
        v103.lineHeight = 1;
        l_headerText_0 = l_headerText_0(l_v8_1, v103);
    end;
    v97.Body = l_headerText_0;
    v97.Additional = v75;
    v92.Box = l_createElement_1(v94, v96, v97);
    l_createElement_1 = false;
    if v51.onClose ~= nil then
        l_createElement_1 = v5.createElement("Frame", {
            BackgroundTransparency = 1,
            ZIndex = 3,
            Size = UDim2.fromOffset(v18.CLOSE_BUTTON_SIZE, v18.CLOSE_BUTTON_SIZE),
            Position = UDim2.new(1, -(v18.CLOSE_BUTTON_SIZE + v18.CLOSE_BUTTON_PADDING * 2), 0, v18.CLOSE_BUTTON_SIZE / 2)
        }, {
            Button = v5.createElement(v21, {
                backgroundTransparency = 1,
                icon = v23["icons/navigation/close"],
                iconSize = v22.Small,
                size = UDim2.new(1, 0, 1, 0),
                onActivated = v51.onClose
            })
        });
    end;
    v92.CloseButton = l_createElement_1;
    return l_createElement_0(v90, v91, v92);
end);


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local v4 = require(l_Parent_3.React);
local l_Portal_0 = require(l_Parent_3.Roact).Portal;
local v6 = require(l_Parent_3.LuauPolyfill);
local _ = require(l_Parent_0.Types);
local v8 = require(l_Parent_0.Constants);
local v9 = require(l_Parent_2.Core.Animation.withAnimation);
local v10 = require(l_Parent_0.TooltipCallout);
local v11 = require(l_Parent_1.Tooltip.Enum.TooltipOrientation);
local function v17(v12, v13)
    local v14 = nil;
    for v15, v16 in pairs(v12) do
        if not v13[v15] and (not (v14 ~= nil) or v12[v14] < v16) then
            v14 = v15;
        end;
    end;
    return v14;
end;
local function v20(v18, v19)
    return {
        [v11.Top] = v18.Y - v8.SCREEN_MARGIN,
        [v11.Bottom] = (v19.Y - v18.Y) - v8.SCREEN_MARGIN,
        [v11.Left] = v18.X - v8.SCREEN_MARGIN,
        [v11.Right] = (v19.X - v18.X) - v8.SCREEN_MARGIN
    };
end;
getOrientationAndContentOffset = function(v21, v22, v23, v24)
    local v25 = {};
    local l_zero_0 = Vector2.zero;
    while true do
        if not (v21 and not v25[v21]) then
            local v27 = v17(v22, v25);
            if v27 then
                v21 = v27;
            else
                break;
            end;
        end;
        if not (v21 ~= v11.Top) or v21 == v11.Bottom then
            if (v23.Y + v8.DISTANCE_TO_CONTENT) + v24.Y <= v22[v21] then
                local l_Left_0 = v11.Left;
                if v22[v11.Right] < v22[v11.Left] then
                    l_Left_0 = v11.Right;
                end;
                local v29 = v22[l_Left_0];
                if v8.MIN_DISTANCE_TO_CARET_MIDDLE <= v29 then
                    l_zero_0 = (-1 * math.max(0, v24.X / 2 - v29)) * v8.ORIENTATION_VECTOR[l_Left_0];
                    break;
                else
                    v25[v8.OPPOSITE_ORIENTATION[v21]] = true;
                end;
            end;
        elseif (v23.X + v8.DISTANCE_TO_CONTENT) + v24.X <= v22[v21] then
            local l_Top_0 = v11.Top;
            if v22[v11.Bottom] < v22[v11.Top] then
                l_Top_0 = v11.Bottom;
            end;
            local v31 = v22[l_Top_0];
            if v8.MIN_DISTANCE_TO_CARET_MIDDLE <= v31 then
                l_zero_0 = (-1 * math.max(0, v24.Y / 2 - v31)) * v8.ORIENTATION_VECTOR[l_Top_0];
                break;
            else
                v25[v8.OPPOSITE_ORIENTATION[v21]] = true;
            end;
        end;
        v25[v21] = true;
        v21 = v8.OPPOSITE_ORIENTATION[v21];
    end;
    return v21, l_zero_0;
end;
return function(v32)
    local v33, v34 = v4.useState(Vector2.zero);
    local v35, v36 = v4.useState(Vector2.zero);
    local v37, v38 = v4.useState(Vector2.zero);
    local v39, v40 = v4.useState(Vector2.zero);
    local v41, v42 = v4.useState(Vector2.zero);
    local v44 = v4.useCallback(function(v43)
        v34(v43.AbsolutePosition);
        v36(v43.AbsoluteSize);
    end);
    local function v46(v45)
        if v45 then
            v40(v45.AbsolutePosition);
            v38(v45.AbsoluteSize);
        end;
    end;
    local v47 = v35 / 2;
    local v48 = (v33 + v47) - v39;
    local v49 = v32.preferredOrientation or v11.Top;
    local v50, v51 = v4.useMemo(function()
        return getOrientationAndContentOffset(v49, v20(v48, v37), v47, v41);
    end, {
        v49,
        v37,
        v48,
        v47,
        v41
    });
    return v4.createElement(v4.Fragment, nil, {
        Portal = v9(if not if not v32.disabled then v32.active else false then v8.INACTIVE_ANIMATION_TARGETS else v8.ACTIVE_ANIMATION_TARGETS, function(v52)
            if v52.transparency == 1 then
                return nil;
            else
                local v53 = {
                    Tooltip = v4.createElement(v10, (v6.Object.assign({}, v32.tooltipProps, {
                        orientation = v50,
                        triggerPointCenter = v48,
                        triggerPointRadius = v47,
                        contentOffsetVector = v51,
                        onContentSizeChanged = v42,
                        distanceOffset = v52.distanceOffset,
                        transparency = v52.transparency
                    })))
                };
                return v4.createElement(l_Portal_0, {
                    target = v32.guiTarget
                }, {
                    TooltipLayer = if not v32.DEBUG_useTargetDirectly then v4.createElement("ScreenGui", {
                        ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                        IgnoreGuiInset = true,
                        DisplayOrder = v32.DisplayOrder,
                        [v4.Change.AbsoluteSize] = v46,
                        [v4.Change.AbsolutePosition] = v46,
                        ref = v46
                    }, v53) else v4.createElement("Frame", {
                        ZIndex = v32.DisplayOrder,
                        Size = UDim2.fromScale(1, 1),
                        BackgroundTransparency = 1,
                        [v4.Change.AbsoluteSize] = v46,
                        [v4.Change.AbsolutePosition] = v46,
                        ref = v46
                    }, v53)
                });
            end;
        end, v8.ANIMATION_OPTIONS),
        [v32.triggerPointName or "TriggerPoint"] = v32.renderTriggerPoint(v44)
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Parent.Parent.React);
local _ = require(l_Parent_0.Menu.KeyLabel.Types);
local _ = require(l_Parent_0.Style.StyleTypes);
return {};


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent.Parent;
local v2 = require(l_Parent_1.Roact);
local v3 = require(l_Parent_1.Cryo);
local v4 = require(l_Parent_1.t);
local v5 = require(l_Parent_0.GridView);
local function v7(v6)
    if v6.windowHeight ~= nil and v6.maxHeight < v6.windowHeight then
        return false, ("windowHeight must be less than or equal to maxHeight\nmaxHeight: %f\nwindowHeight: %f"):format(v6.maxHeight, v6.windowHeight);
    else
        return true;
    end;
end;
local v8 = v2.PureComponent:extend("DefaultMetricsGridView");
v8.validateProps = v4.strictInterface({
    getItemHeight = v4.callback,
    getItemMetrics = v4.callback,
    windowHeight = v4.optional(v4.numberMin(0)),
    renderItem = v4.callback,
    itemPadding = v4.Vector2,
    items = v4.table,
    maxHeight = v4.numberMin(0),
    LayoutOrder = v4.optional(v4.integer),
    onNumItemsPerRowChanged = v4.optional(v4.callback),
    NextSelectionLeft = v4.optional(v4.table),
    NextSelectionRight = v4.optional(v4.table),
    NextSelectionUp = v4.optional(v4.table),
    NextSelectionDown = v4.optional(v4.table),
    frameRef = v4.optional(v4.table),
    restorePreviousChildFocus = v4.optional(v4.boolean),
    onFocusGained = v4.optional(v4.callback),
    defaultChildIndex = v4.optional(v4.numberMin(1))
});
v8.defaultProps = {
    maxHeight = math.huge
};
v8.init = function(v9)
    v9.isMounted = false;
    v9.state = {
        containerWidth = 0
    };
    v9.initialSizeCheckerRef = v2.createRef();
end;
v8.render = function(v10)
    assert(v7(v10.props));
    local v11 = v10.props.getItemMetrics(v10.state.containerWidth, v10.props.itemPadding.X);
    return v2.createElement(v5, {
        renderItem = v10.props.renderItem,
        windowHeight = v10.props.windowHeight,
        maxHeight = v10.props.maxHeight,
        itemSize = Vector2.new(math.max(0, v11.itemWidth), (math.max(0, (v10.props.getItemHeight(v11.itemWidth))))),
        itemPadding = v10.props.itemPadding,
        items = v10.props.items,
        LayoutOrder = v10.props.LayoutOrder,
        onNumItemsPerRowChanged = v10.props.onNumItemsPerRowChanged,
        NextSelectionLeft = v10.props.NextSelectionLeft,
        NextSelectionRight = v10.props.NextSelectionRight,
        NextSelectionUp = v10.props.NextSelectionUp,
        NextSelectionDown = v10.props.NextSelectionDown,
        [v2.Ref] = v10.props.frameRef,
        defaultChildIndex = v10.props.defaultChildIndex,
        restorePreviousChildFocus = v10.props.restorePreviousChildFocus,
        onFocusGained = v10.props.onFocusGained,
        onWidthChanged = function(v12)
            if v10.isMounted then
                v10:setState({
                    containerWidth = v12
                });
            end;
        end
    });
end;
v8.didMount = function(v13)
    v13.isMounted = true;
end;
v8.willUnmount = function(v14)
    v14.isMounted = false;
end;
return v2.forwardRef(function(v15, v16)
    return v2.createElement(v8, v3.Dictionary.join(v15, {
        frameRef = v16
    }));
end);


local v0 = require(script.Parent.Parent.Parent.Parent.t);
local v1 = {
    minimumItemsPerRow = 2,
    minimumItemWidth = 160
};
local v2 = {
    minimumItemsPerRow = 1,
    minimumItemWidth = 332
};
local function _(v3, v4, v5)
    local v6 = math.max(v5.minimumItemsPerRow, (math.floor((v3 + v4) / (v5.minimumItemWidth + v4))));
    return {
        itemsPerRow = v6,
        itemWidth = math.floor((v3 - (v6 - 1) * v4) / v6)
    };
end;
local v8 = {};
local v9 = v0.strictInterface({
    minimumItemsPerRow = v0.intersection(v0.integer, v0.numberMin(1)),
    minimumItemWidth = v0.numberMin(0)
});
local v10 = v0.tuple(v0.numberMin(0), v0.number);
v8.makeCustomMetricsGetter = function(v11)
    assert(v9(v11));
    return function(v12, v13)
        assert(v10(v12, v13));
        local l_v11_0 = v11;
        local v15 = math.max(l_v11_0.minimumItemsPerRow, (math.floor((v12 + v13) / (l_v11_0.minimumItemWidth + v13))));
        return {
            itemsPerRow = v15,
            itemWidth = math.floor((v12 - (v15 - 1) * v13) / v15)
        };
    end;
end;
v8.getLargeMetrics = v8.makeCustomMetricsGetter(v2);
v8.getMediumMetrics = v8.makeCustomMetricsGetter(v1);
v8.getSmallMetrics = function(v16, v17)
    local v18 = v8.getMediumMetrics(v16, v17).itemsPerRow + 1;
    return {
        itemsPerRow = v18,
        itemWidth = math.floor((v16 - (v18 - 1) * v17) / v18)
    };
end;
v8.getMetricsForFixedColumns = function(v19, v20, v21)
    return {
        itemsPerRow = v21,
        itemWidth = math.floor((v19 - (v21 - 1) * v20) / v21)
    };
end;
return v8;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.RoactGamepad);
local v3 = require(l_Parent_0.Utility.isCallable);
local v4 = require(l_Parent_1.Roact);
local v5 = require(l_Parent_1.Cryo);
local v6 = require(l_Parent_1.t);
local v7 = require(l_Parent_0.Utility.isPositiveVector2);
local v8 = v4.PureComponent:extend("GridView");
v8.validateProps = v6.strictInterface({
    renderItem = v3,
    itemSize = v7,
    itemPadding = v6.Vector2,
    items = v6.table,
    maxHeight = v6.numberMin(0),
    windowHeight = v6.optional(v6.numberMin(0)),
    LayoutOrder = v6.optional(v6.integer),
    onWidthChanged = v6.optional(v3),
    onNumItemsPerRowChanged = v6.optional(v3),
    NextSelectionLeft = v6.optional(v6.table),
    NextSelectionRight = v6.optional(v6.table),
    NextSelectionUp = v6.optional(v6.table),
    NextSelectionDown = v6.optional(v6.table),
    frameRef = v6.optional(v6.table),
    restorePreviousChildFocus = v6.optional(v6.boolean),
    onFocusGained = v6.optional(v6.callback),
    defaultChildIndex = v6.optional(v6.numberMin(1))
});
v8.itemsAreVisible = function(v9)
    local l_isInDataModel_0 = v9.state.isInDataModel;
    if l_isInDataModel_0 then
        l_isInDataModel_0 = false;
        if v9.state.containerWidth ~= 0 then
            l_isInDataModel_0 = v9.props.itemSize.X ~= 0;
        end;
    end;
    return l_isInDataModel_0;
end;
v8.defaultProps = {
    maxHeight = math.huge,
    restorePreviousChildFocus = true
};
v8.init = function(v11)
    v11.currentItemsPerRow = -1;
    v11.frameRef = v4.createRef();
    v11.isMounted = false;
    v11.state = {
        containerWidth = 0,
        containerYPosition = 0,
        isInDataModel = false
    };
    v11.focusableRefs = v2.createRefCache();
    v11.onAncestryChanged = function(v12)
        if v12:IsDescendantOf(game) then
            v11:setState(function(v13)
                if not v13.isInDataModel or v13.containerWidth ~= v12.AbsoluteSize.X then
                    return {
                        isInDataModel = true,
                        containerWidth = v12.AbsoluteSize.X
                    };
                else
                    return nil;
                end;
            end);
        end;
    end;
end;
v8.render = function(v14)
    local l_items_0 = v14.props.items;
    local v16 = #l_items_0;
    local l_itemSize_0 = v14.props.itemSize;
    local l_itemPadding_0 = v14.props.itemPadding;
    local l_maxHeight_0 = v14.props.maxHeight;
    local l_containerWidth_0 = v14.state.containerWidth;
    local l_containerYPosition_0 = v14.state.containerYPosition;
    local l_defaultChildIndex_0 = v14.props.defaultChildIndex;
    local l_onNumItemsPerRowChanged_0 = v14.props.onNumItemsPerRowChanged;
    local v24 = 1;
    local l_v16_0 = v16;
    local v26 = {};
    local v27 = 0;
    local v28 = 0;
    local v29 = nil;
    local v30 = nil;
    local v31 = math.max(1, l_itemSize_0.X + l_itemPadding_0.X);
    local v32 = math.max(1, l_itemSize_0.Y + l_itemPadding_0.Y);
    v29 = math.floor((l_containerWidth_0 + l_itemPadding_0.X) / v31);
    v30 = math.floor((l_maxHeight_0 + l_itemPadding_0.Y) / v32);
    if v29 ~= v14.currentItemsPerRow then
        v14.currentItemsPerRow = v29;
        if l_onNumItemsPerRowChanged_0 then
            l_onNumItemsPerRowChanged_0(v29);
        end;
    end;
    local v33 = math.min(v30, (math.ceil(v16 / v29)));
    local v34 = v33 * l_itemSize_0.Y + math.max(v33 - 1, 0) * l_itemPadding_0.Y;
    if v14.props.windowHeight ~= nil then
        local v35 = math.floor((v14.props.windowHeight + l_itemPadding_0.Y) / (l_itemSize_0.Y + l_itemPadding_0.Y)) + 2;
        local v36 = math.floor((l_containerYPosition_0 + l_itemPadding_0.Y) / (l_itemSize_0.Y + l_itemPadding_0.Y));
        local v37 = math.min(v33, v36 + v35) + 1;
        v24 = math.max(1, v36 * v29 + 1);
        l_v16_0 = math.min(v16, v37 * v29);
        v28 = v36 * l_itemSize_0.Y + v36 * l_itemPadding_0.Y;
    end;
    local function _(v38, v39)
        local v40 = false;
        if v38 > 0 then
            v40 = false;
            if v39 > 0 then
                v40 = v39 <= v29;
            end;
        end;
        local v41 = 1 + ((v38 - 1) * v29 + (v39 - 1));
        local v42 = false;
        if v24 <= v41 then
            v42 = v41 <= l_v16_0;
        end;
        return (not not v42 and v40) and v14.focusableRefs[v41] or nil;
    end;
    local function v55(v44)
        local v45 = 1 + math.floor((v44 - 1) / v29);
        local v46 = 1 + (v44 - 1) % v29;
        local v47 = v14:itemsAreVisible();
        local l_createElement_0 = v4.createElement;
        local l_Frame_0 = v2.Focusable.Frame;
        local v50 = {
            BackgroundTransparency = 1,
            Position = UDim2.new(0, v27, 0, v28),
            Size = UDim2.new(0, l_itemSize_0.X, 0, l_itemSize_0.Y)
        };
        local v51 = v46 - 1;
        local v52 = false;
        if v45 > 0 then
            v52 = false;
            if v51 > 0 then
                v52 = v51 <= v29;
            end;
        end;
        local v53 = 1 + ((v45 - 1) * v29 + (v51 - 1));
        local v54 = false;
        if v24 <= v53 then
            v54 = v53 <= l_v16_0;
        end;
        v50.NextSelectionLeft = (not not v54 and v52) and v14.focusableRefs[v53] or nil;
        v51 = v46 + 1;
        v52 = false;
        if v45 > 0 then
            v52 = false;
            if v51 > 0 then
                v52 = v51 <= v29;
            end;
        end;
        v53 = 1 + ((v45 - 1) * v29 + (v51 - 1));
        v54 = false;
        if v24 <= v53 then
            v54 = v53 <= l_v16_0;
        end;
        v50.NextSelectionRight = (not not v54 and v52) and v14.focusableRefs[v53] or nil;
        v51 = v45 - 1;
        v52 = false;
        if v51 > 0 then
            v52 = false;
            if v46 > 0 then
                v52 = v46 <= v29;
            end;
        end;
        v53 = 1 + ((v51 - 1) * v29 + (v46 - 1));
        v54 = false;
        if v24 <= v53 then
            v54 = v53 <= l_v16_0;
        end;
        v50.NextSelectionUp = (not not v54 and v52) and v14.focusableRefs[v53] or nil;
        v51 = v45 + 1;
        v52 = false;
        if v51 > 0 then
            v52 = false;
            if v46 > 0 then
                v52 = v46 <= v29;
            end;
        end;
        v53 = 1 + ((v51 - 1) * v29 + (v46 - 1));
        v54 = false;
        if v24 <= v53 then
            v54 = v53 <= l_v16_0;
        end;
        v50.NextSelectionDown = (not not v54 and v52) and v14.focusableRefs[v53] or nil;
        v50[v4.Ref] = v14.focusableRefs[v44];
        v50.onFocusGained = v14.props.onFocusGained;
        return l_createElement_0(l_Frame_0, v50, {
            Content = v47 and v14.props.renderItem(l_items_0[v44], v44)
        });
    end;
    if v34 < l_maxHeight_0 then
        local v56 = false;
        local v57 = l_defaultChildIndex_0 and l_defaultChildIndex_0 <= v16;
        for v58 = v24, l_v16_0 do
            if v58 == l_defaultChildIndex_0 then
                v56 = true;
            end;
            v26[tostring(v58)] = v55(v58);
            v27 = math.floor((v27 + l_itemSize_0.X) + l_itemPadding_0.X);
            if l_containerWidth_0 < v27 + l_itemSize_0.X and v58 < l_v16_0 then
                v27 = 0;
                v28 = (v28 + l_itemPadding_0.Y) + l_itemSize_0.Y;
            end;
        end;
        if not (not v57 or v56) then
            v27 = ((l_defaultChildIndex_0 - 1) % v29) * (l_itemSize_0.X + l_itemPadding_0.X);
            v28 = math.floor((l_defaultChildIndex_0 - 1) / v29) * (l_itemPadding_0.Y + l_itemSize_0.Y);
            v26[tostring(l_defaultChildIndex_0)] = v55(l_defaultChildIndex_0);
        end;
    end;
    return v4.createElement(v2.Focusable.Frame, {
        BackgroundTransparency = 1,
        LayoutOrder = v14.props.LayoutOrder,
        Size = UDim2.new(1, 0, 0, v34),
        [v4.Change.AbsolutePosition] = v14.props.windowHeight ~= nil and function(v59)
            if v14.isMounted then
                v14:setState({
                    containerYPosition = -math.min(0, v59.AbsolutePosition.Y)
                });
            end;
        end or nil,
        [v4.Change.AbsoluteSize] = function(v60)
            if v14.isMounted then
                if v14.state.isInDataModel then
                    v14:setState({
                        containerWidth = v60.AbsoluteSize.X
                    });
                end;
                if v14.props.onWidthChanged ~= nil then
                    v14.props.onWidthChanged(v60.AbsoluteSize.X);
                end;
            end;
        end,
        [v4.Event.AncestryChanged] = v14.onAncestryChanged,
        NextSelectionLeft = v14.props.NextSelectionLeft,
        NextSelectionRight = v14.props.NextSelectionRight,
        NextSelectionUp = v14.props.NextSelectionUp,
        NextSelectionDown = v14.props.NextSelectionDown,
        [v4.Ref] = v14.props.frameRef or v14.frameRef,
        defaultChild = not not l_defaultChildIndex_0 and v14.focusableRefs[l_defaultChildIndex_0] or nil,
        restorePreviousChildFocus = v14.props.restorePreviousChildFocus
    }, v26);
end;
v8.didMount = function(v61)
    v61.isMounted = true;
    local v62 = v61.props.frameRef or v61.frameRef;
    if v62:getValue() and v62:getValue().AbsoluteSize.X ~= 0 then
        if v62:getValue():IsDescendantOf(game) then
            v61:setState(function(_)
                if not v62:getValue() then
                    return nil;
                else
                    return {
                        isInDataModel = true,
                        containerWidth = v62:getValue().AbsoluteSize.X
                    };
                end;
            end);
        end;
        if v61.props.onWidthChanged ~= nil then
            delay(0, function()
                if v62:getValue() then
                    v61.props.onWidthChanged(v62:getValue().AbsoluteSize.X);
                end;
            end);
        end;
    end;
end;
v8.willUnmount = function(v64)
    v64.isMounted = false;
end;
return v4.forwardRef(function(v65, v66)
    return v4.createElement(v8, v5.Dictionary.join(v65, {
        frameRef = v66
    }));
end);


return require(script.Parent.Parent.Parent.Parent.Parent.enumerate)("IconSize", {
    "Small",
    "Medium",
    "Large",
    "XLarge",
    "XXLarge"
});


local l_Parent_0 = script.Parent;
local v1 = require(l_Parent_0.GetImageSetData);
local v2 = require(l_Parent_0.FallbackImages);
local _ = require(l_Parent_0.ImagesTypes);
local v4 = require(l_Parent_0.Parent.Parent.Logger);
local l_GuiService_0 = game:GetService("GuiService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("CorePackages");
local l_status_0, l_result_0 = pcall(l_GuiService_0.GetResolutionScale, l_GuiService_0);
if not (l_status_0 and l_script_FirstAncestor_0) then
    v4:warning("Can't get resolution scale, default to scale 1");
    l_result_0 = 1;
end;
if l_GuiService_0:IsTenFootInterface() then
    v4:info("scale the resolution to 3 for 10 foot UI ");
    l_result_0 = 3;
end;
local v9 = nil;
local v10, v11 = v1(l_result_0);
v9 = v10;
l_result_0 = v11;
v10 = function()
    local l_Parent_1 = script.Parent.Parent.Parent;
    if l_script_FirstAncestor_0 == nil then
        return nil;
    else
        local v13 = {};
        local l_l_Parent_1_0 = l_Parent_1;
        while l_l_Parent_1_0 ~= nil and l_l_Parent_1_0 ~= l_script_FirstAncestor_0 do
            table.insert(v13, 1, l_l_Parent_1_0.Name);
            l_l_Parent_1_0 = l_l_Parent_1_0.Parent;
        end;
        return "LuaPackages/" .. table.concat(v13, "/");
    end;
end;
v11 = function(v15, v16)
    if v15 == nil then
        v4:debug("use fallback images for {}", v16);
        return v2[v16];
    else
        return string.format("rbxasset://%s/AppImageAtlas/%s.png", v15, v16);
    end;
end;
local v17 = v10();
local v18 = {
    ImagesResolutionScale = l_result_0
};
for v19, v20 in pairs(v9) do
    assert(typeof(v20) == "table", "invalid sourceData from GetImageSetData for scale " .. tostring(l_result_0));
    local v21 = {};
    for v22, v23 in pairs(v20) do
        if v22 == "ImageSet" then
            local v24;
            if v17 == nil then
                v4:debug("use fallback images for {}", v23);
                v24 = v2[v23];
            else
                v24 = string.format("rbxasset://%s/AppImageAtlas/%s.png", v17, v23);
            end;
            v21.Image = v24;
        else
            v21[v22] = v23;
        end;
    end;
    v18[v19] = v21;
end;
setmetatable(v18, {
    __index = function(_, v26)
        error(("%q is not a valid member of Images"):format((tostring(v26))), 2);
    end
});
return v18;


local l_Parent_0 = script.Parent;
local _ = require(l_Parent_0.Parent.Parent.App.Style.StyleTypes);
local v2 = require(l_Parent_0.Enum.IconSize);
local v3 = {
    [v2.Small] = 16,
    [v2.Medium] = 36,
    [v2.Large] = 48,
    [v2.XLarge] = 96,
    [v2.XXLarge] = 192
};
return function(v4, v5)
    assert(v2.isEnumValue(v4));
    if v5 ~= nil and v5.Tokens ~= nil then
        if v4 == v2.Small then
            return v5.Tokens.Semantic.Icon.Size.Small;
        elseif v4 == v2.Medium then
            return v5.Tokens.Semantic.Icon.Size.Medium;
        elseif v4 == v2.Large then
            return v5.Tokens.Semantic.Icon.Size.Large;
        elseif v4 == v2.XLarge then
            return v5.Tokens.Semantic.Icon.Size.XLarge;
        elseif v4 == v2.XXLarge then
            return v5.Tokens.Semantic.Icon.Size.XXLarge;
        else
            return nil;
        end;
    else
        return v3[v4];
    end;
end;


local l_Parent_0 = script.Parent;
local v1 = require(l_Parent_0.Enum.IconSize);
local v2 = require(l_Parent_0.getIconSize);
return function(v3)
    assert(v1.isEnumValue(v3));
    local v4 = v2(v3);
    return UDim2.fromOffset(v4, v4);
end;


return function(v0, v1)
    if v0.SliceCenter then
        v0.SliceCenter = Rect.new(v0.SliceCenter.Min * v1, v0.SliceCenter.Max * v1);
        v0.SliceScale = (v0.SliceScale or 1) / v1;
    end;
    return v0;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.Roact);
local v3 = require(l_Parent_1.t);
local v4 = require(l_Parent_0.Core.Style.withStyle);
local v5 = require(l_Parent_0.Core.Text.GetTextSize);
local v6 = require(l_Parent_0.Core.Text.GenericTextLabel.GenericTextLabel);
local v7 = require(l_Parent_0.App.ImageSet.Images);
local v8 = require(l_Parent_0.Core.ImageSet.ImageSetComponent);
local v9 = require(script.Parent.Enum.BadgeStates);
local v10 = require(script.Parent.Enum.BadgeVariant);
local v11 = require(l_Parent_0.Utility.divideTransparency);
local v12 = v7["component_assets/circle_25"];
local v13 = v7["component_assets/circle_21"];
local v14 = v2.PureComponent:extend("Badge");
v14.validateProps = v3.strictInterface({
    position = v3.optional(v3.UDim2),
    anchorPoint = v3.optional(v3.Vector2),
    disabled = v3.optional(v3.boolean),
    hasShadow = v3.optional(v3.boolean),
    value = v3.union(v3.string, v3.integer, v9.isEnumValue),
    badgeVariant = v3.optional(v10.isEnumValue)
});
v14.defaultProps = {
    position = UDim2.new(0, 0, 0, 0),
    anchorPoint = Vector2.new(0, 0),
    disabled = false,
    hasShadow = false,
    badgeVariant = v10.Default
};
v14.render = function(v15)
    return v4(function(v16)
        local l_Theme_0 = v16.Theme;
        local l_Font_0 = v16.Font;
        local v19 = tostring(v15.props.value);
        if v3.number(v15.props.value) and v15.props.value > 99 then
            v19 = "99+";
        elseif v3.string(v15.props.value) and utf8.len(utf8.nfcnormalize(v15.props.value)) > 4 then
            v19 = string.sub(v15.props.value, 1, utf8.offset(v15.props.value, 4) - 1) .. "...";
        end;
        if v15.props.value == v9.isEmpty then
            v19 = "";
        end;
        local v20 = (v5(v19, l_Font_0.CaptionBody.RelativeSize * v16.Font.BaseSize, l_Font_0.CaptionBody.Font, Vector2.new(10000, 10000)).X + 10) + 4;
        if v20 < 24 then
            v20 = 24;
        end;
        local v21 = 24;
        if v15.props.value == v9.isEmpty then
            v20 = 12;
            v21 = 12;
        end;
        local l_Badge_0 = v16.Tokens.Semantic.Color.Common.Badge;
        local v23 = {
            Color = v16.Tokens.Semantic.Color.Common.BadgeContent.Color3,
            Transparency = v16.Tokens.Semantic.Color.Common.BadgeContent.Transparency
        };
        if v15.props.badgeVariant == v10.Alert then
            l_Badge_0 = v16.Tokens.Semantic.Color.Common.Alert;
            v23 = {
                Color = v16.Tokens.Global.Color.White.Color3,
                Transparency = v16.Tokens.Semantic.Color.Common.BadgeContent.Transparency
            };
        end;
        return v2.createElement("Frame", {
            Position = v15.props.position,
            AnchorPoint = v15.props.anchorPoint,
            BackgroundTransparency = 1,
            Size = UDim2.fromOffset(v20, v21)
        }, {
            Shadow = v15.props.hasShadow and v2.createElement(v8.Label, {
                ZIndex = 1,
                Position = UDim2.fromScale(0.5, 0.5),
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 12, 1, 12),
                Image = v7["component_assets/dropshadow_25"],
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(18, 18, 19, 19)
            }),
            Background = v2.createElement(v8.Label, {
                ZIndex = 2,
                BackgroundTransparency = 1,
                Size = UDim2.fromScale(1, 1),
                ImageColor3 = l_Theme_0.BackgroundDefault.Color,
                ImageTransparency = v11(l_Theme_0.BackgroundDefault.Transparency, not v15.props.disabled and 1 or 2),
                Image = v12,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(14, 14, 15, 15)
            }),
            Inner = v2.createElement(v8.Label, {
                ZIndex = 3,
                BackgroundTransparency = 1,
                Position = UDim2.fromScale(0.5, 0.5),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Size = UDim2.new(1, -4, 1, -4),
                ImageColor3 = l_Badge_0.Color3,
                ImageTransparency = v11(l_Badge_0.Transparency, not v15.props.disabled and 1 or 2),
                Image = v13,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(12, 12, 13, 13)
            }, {
                TextLabel = v2.createElement(v6, {
                    fontStyle = l_Font_0.CaptionBody,
                    colorStyle = v23,
                    BackgroundTransparency = 1,
                    Text = v19,
                    Position = UDim2.fromScale(0.5, 0.5),
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Size = UDim2.fromScale(1, 1),
                    TextXAlignment = Enum.TextXAlignment.Center,
                    TextYAlignment = Enum.TextYAlignment.Center
                })
            })
        });
    end);
end;
return v14;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.Roact);
local v4 = require(l_Parent_2.Cryo);
local v5 = require(l_Parent_2.t);
local v6 = require(l_Parent_2.RoactGamepad);
local v7 = require(l_Parent_1.Core.Text.GenericTextLabel.GenericTextLabel);
local v8 = require(l_Parent_1.Core.ImageSet.ImageSetComponent);
local v9 = require(l_Parent_1.Core.ImageSet.Validator.validateImage);
local v10 = require(l_Parent_1.Core.Style.withStyle);
local v11 = require(l_Parent_0.Container.getPageMargin);
local v12 = require(l_Parent_0.ImageSet.Enum.IconSize);
local v13 = require(l_Parent_0.ImageSet.getIconSize);
local v14 = require(l_Parent_0.ImageSet.Images);
local v15 = require(l_Parent_0.Button.Button);
local v16 = require(l_Parent_0.Button.Enum.ButtonType);
local v17 = v3.PureComponent:extend("EmptyState");
v17.validateProps = v5.strictInterface({
    text = v5.string,
    icon = v5.optional(v9),
    size = v5.optional(v5.UDim2),
    position = v5.optional(v5.UDim2),
    anchorPoint = v5.optional(v5.Vector2),
    buttonIcon = v5.optional(v9),
    buttonText = v5.optional(v5.string),
    buttonType = v5.optional(v16.isEnumValue),
    onActivated = v5.optional(v5.callback),
    frameRef = v5.optional(v5.table),
    NextSelectionUp = v5.optional(v5.table),
    NextSelectionDown = v5.optional(v5.table),
    NextSelectionLeft = v5.optional(v5.table),
    NextSelectionRight = v5.optional(v5.table),
    maxSizeTextLabel = v5.optional(v5.Vector2),
    iconColor = v5.optional(v5.Color3),
    iconSize = v5.optional(v5.UDim2),
    titleProps = v5.optional(v5.strictInterface({
        titleText = v5.optional(v5.string)
    }))
});
v17.defaultProps = {
    icon = v14["icons/status/oof_xlarge"],
    size = UDim2.fromScale(1, 1),
    position = UDim2.fromScale(0.5, 0.5),
    anchorPoint = Vector2.new(0.5, 0.5),
    buttonIcon = v14["icons/common/refresh"],
    buttonType = v16.Secondary,
    iconSize = UDim2.fromOffset(v13(v12.XLarge), v13(v12.XLarge))
};
local function _(v18)
    if v18 == "" then
        return nil;
    else
        return v18;
    end;
end;
v17.init = function(v20)
    v20:setState({
        absoluteSize = Vector2.new(0, 0)
    });
    v20.onAbsoluteSizeChange = function(v21)
        v20:setState({
            absoluteSize = v21.AbsoluteSize
        });
    end;
    v20.buttonRef = v3.createRef();
end;
v17.render = function(v22)
    return v10(function(v23)
        local l_createElement_0 = v3.createElement;
        local l_Frame_0 = v6.Focusable.Frame;
        local v26 = {
            [v3.Change.AbsoluteSize] = v22.onAbsoluteSizeChange,
            Size = v22.props.size,
            Position = v22.props.position,
            AnchorPoint = v22.props.anchorPoint,
            BackgroundTransparency = 1,
            [v3.Ref] = v22.props.frameRef,
            NextSelectionUp = v22.props.NextSelectionUp,
            NextSelectionDown = v22.props.NextSelectionDown,
            NextSelectionULeft = v22.props.NextSelectionLeft,
            NextSelectionRight = v22.props.NextSelectionRight,
            defaultChild = v22.buttonRef
        };
        local v27 = {};
        local l_createElement_1 = v3.createElement;
        local v29 = "Frame";
        local v30 = {
            Size = UDim2.new(1, 0, 0, 187),
            Position = UDim2.fromScale(0.5, 0.5),
            AnchorPoint = Vector2.new(0.5, 0.5),
            BackgroundTransparency = 1
        };
        local v31 = {
            UIListLayout = v3.createElement("UIListLayout", {
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            Icon = v3.createElement(v8.Label, {
                AnchorPoint = Vector2.new(0.5, 0),
                Size = v22.props.iconSize,
                LayoutOrder = 1,
                Image = v22.props.icon,
                BackgroundTransparency = 1,
                ImageColor3 = v22.props.iconColor or v23.Theme.IconEmphasis.Color,
                ImageTransparency = v23.Theme.IconEmphasis.Transparency
            }),
            iconTextPadding = v3.createElement("Frame", {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Size = UDim2.fromOffset(0, 12),
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }),
            TitleFrame = if not not v22.props.titleProps and v22.props.titleProps.titleText then v3.createElement("Frame", {
                Size = UDim2.fromScale(1, 0),
                Position = UDim2.fromScale(0, 0),
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y,
                BorderSizePixel = 0,
                LayoutOrder = 3
            }, {
                TitlePadding = v3.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, 14),
                    PaddingBottom = UDim.new(0, 14)
                }),
                TitleText = v3.createElement("TextLabel", {
                    BackgroundTransparency = 1,
                    Text = v22.props.titleProps.titleText,
                    TextXAlignment = Enum.TextXAlignment.Center,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    Font = v23.Font.Title.Font,
                    TextSize = v23.Font.Header1.RelativeSize * v23.Font.BaseSize,
                    TextColor3 = v23.Theme.TextEmphasis.Color,
                    TextTransparency = v23.Theme.TextEmphasis.Transparency,
                    AutomaticSize = Enum.AutomaticSize.Y,
                    Size = UDim2.fromScale(1, 0),
                    TextWrapped = true,
                    LayoutOrder = 1
                })
            }) else nil,
            Text = v3.createElement(v7, {
                Text = v22.props.text,
                TextXAlignment = Enum.TextXAlignment.Center,
                TextYAlignment = Enum.TextYAlignment.Center,
                LayoutOrder = 4,
                fontStyle = v23.Font.Body,
                colorStyle = v23.Theme.TextDefault,
                maxSize = v22.props.maxSizeTextLabel
            }),
            textButtonPadding = v3.createElement("Frame", {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Size = UDim2.fromOffset(0, 24),
                BackgroundTransparency = 1,
                LayoutOrder = 5
            })
        };
        local l_onActivated_0 = v22.props.onActivated;
        if l_onActivated_0 then
            l_onActivated_0 = v3.createElement;
            local v33 = "Frame";
            local v34 = {
                Size = UDim2.new(1, 0, 0, 48),
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundTransparency = 1,
                LayoutOrder = 6
            };
            local v35 = {
                UIPadding = v3.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, v11(v22.state.absoluteSize.X)),
                    PaddingRight = UDim.new(0, v11(v22.state.absoluteSize.X))
                }),
                UISizeConstraint = v3.createElement("UISizeConstraint", {
                    MaxSize = Vector2.new(640, 48)
                })
            };
            local l_createElement_2 = v3.createElement;
            local l_v15_0 = v15;
            local v38 = {
                buttonType = v22.props.buttonType,
                size = UDim2.fromScale(1, 1),
                position = UDim2.fromScale(0.5, 0.5),
                anchorPoint = Vector2.new(0.5, 0.5),
                onActivated = v22.props.onActivated
            };
            local l_buttonIcon_0 = v22.props.buttonIcon;
            v38.icon = if l_buttonIcon_0 == "" then nil else l_buttonIcon_0;
            v38.text = v22.props.buttonText;
            v38[v3.Ref] = v22.buttonRef;
            v35.Button = l_createElement_2(l_v15_0, v38);
            l_onActivated_0 = l_onActivated_0(v33, v34, v35);
        end;
        v31.buttonFrame = l_onActivated_0;
        v27.Content = l_createElement_1(v29, v30, v31);
        return l_createElement_0(l_Frame_0, v26, v27);
    end);
end;
return v3.forwardRef(function(v40, v41)
    return v3.createElement(v17, v4.Dictionary.join(v40, {
        frameRef = v41
    }));
end);


return require(script.Parent.Parent.Parent.Parent.Parent.enumerate)(script.Name, {
    "isEmpty"
});


return require(script.Parent.Parent.Parent.Parent.Parent.enumerate)(script.Name, {
    "Default",
    "Alert"
});


return require(script.Parent.Parent.Parent.Parent.Parent.enumerate)(script.Name, {
    "notVoted",
    "votedDown",
    "votedUp"
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("App");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_Core_0 = l_Parent_0.Core;
local l_Parent_1 = l_Parent_0.Parent;
local v4 = require(l_Parent_1.t);
local v5 = require(l_Parent_1.Roact);
local v6 = require(l_Core_0.Control.Enum.ControlState);
local v7 = require(l_Core_0.Text.GenericTextLabel.GenericTextLabel);
local v8 = require(l_Core_0.Style.withStyle);
local v9 = require(l_Core_0.Button.getContentStyle);
local v10 = require(l_script_FirstAncestor_0.ImageSet.getIconSize);
local v11 = require(l_Parent_0.Core.ImageSet.ImageSetComponent);
local v12 = require(l_script_FirstAncestor_0.ImageSet.Enum.IconSize);
local v13 = require(l_Parent_0.Core.Style.Validator.validateFontInfo);
local v14 = require(l_Parent_0.Core.Style.Validator.validateTypographyInfo);
local v15 = require(l_Parent_0.Core.Style.Validator.validateColorInfo);
local v16 = v5.PureComponent:extend("PlayerContext");
local v17 = {
    [v6.Default] = "TextDefault"
};
local v18 = {
    [v6.Default] = "IconOnHover",
    [v6.Hover] = "IconDefault"
};
v16.validateProps = v4.strictInterface({
    text = v4.optional(v4.string),
    icon = v4.optional(v4.union(v4.string, v4.table)),
    iconSize = v4.optional(v4.intersection(v4.UDim2, function(v19)
        if not (v19.X.Scale == 0) or v19.Y.Scale ~= 0 then
            return false, "Only Offset values are allowed";
        else
            return true;
        end;
    end)),
    iconColor = v4.optional(v4.Color3),
    iconTransparency = v4.optional(v4.number),
    onActivated = v4.optional(v4.callback),
    Selectable = v4.optional(v4.boolean),
    fontStyle = v4.optional(v4.union(v13, v14)),
    textHeight = v4.optional(v4.number),
    textColorStyle = v4.optional(v15),
    iconPadding = v4.optional(v4.number),
    iconTextSpacing = v4.optional(v4.number),
    layoutOrder = v4.optional(v4.number)
});
v16.defaultProps = {
    text = "",
    icon = nil,
    Selectable = true,
    iconSize = UDim2.fromOffset(v10(v12.Small), v10(v12.Small)),
    textHeight = 28,
    iconPadding = 4,
    iconTextSpacing = 4,
    layoutOrder = 1
};
v16.init = function(v20)
    v20.state = {};
end;
v16.render = function(v21)
    local l_controlState_0 = v21.state.controlState;
    local l_text_0 = v21.props.text;
    local l_icon_0 = v21.props.icon;
    local l_iconSize_0 = v21.props.iconSize;
    local l_onActivated_0 = v21.props.onActivated;
    return v8(function(v27)
        local v28 = v9(v18, l_controlState_0, v27);
        local v29 = v9(v17, l_controlState_0, v27);
        local v30 = not not l_onActivated_0 and v28 or v29;
        local l_iconTransparency_0 = v21.props.iconTransparency;
        if not v21.props.iconTransparency then
            l_iconTransparency_0 = if not v21.props.iconColor then v30.Transparency else 0;
        end;
        local l_iconColor_0 = v21.props.iconColor;
        if not v21.props.iconColor then
            l_iconColor_0 = v30.Color;
        end;
        local l_textHeight_0 = v21.props.textHeight;
        local v34 = v21.props.textColorStyle or if l_onActivated_0 then v28 else v29;
        local l_iconPadding_0 = v21.props.iconPadding;
        local l_iconTextSpacing_0 = v21.props.iconTextSpacing;
        local v37 = l_iconSize_0.X.Offset + l_iconPadding_0 * 2;
        return v5.createElement("ImageButton", {
            Size = UDim2.new(1, 0, 0, l_textHeight_0),
            BackgroundTransparency = 1,
            Selectable = v21.props.Selectable,
            Active = not not l_onActivated_0 or false,
            LayoutOrder = v21.props.layoutOrder,
            [v5.Event.Activated] = l_onActivated_0
        }, {
            UIListLayout = v5.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, l_iconTextSpacing_0)
            }),
            IconFrame = l_icon_0 and v5.createElement("Frame", {
                Size = UDim2.fromOffset(v37, l_iconSize_0.Y.Offset + l_iconPadding_0 * 2),
                BackgroundTransparency = 1
            }, {
                layout = v5.createElement("UIListLayout", {
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center
                }),
                icon = v5.createElement(v11.Label, {
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Size = l_iconSize_0,
                    BackgroundTransparency = 1,
                    Image = l_icon_0,
                    ImageColor3 = l_iconColor_0,
                    ImageTransparency = l_iconTransparency_0
                })
            }),
            Text = l_text_0 and v5.createElement(v7, {
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.new(1, -v37 - l_iconTextSpacing_0, 1, 0),
                Text = l_text_0,
                TextWrapped = true,
                TextXAlignment = Enum.TextXAlignment.Left,
                fontStyle = v21.props.fontStyle or v27.Font.CaptionHeader,
                colorStyle = v34,
                LayoutOrder = 2,
                TextTruncate = Enum.TextTruncate.AtEnd
            })
        });
    end);
end;
return v16;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("App");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Parent.React);
local _ = require(l_script_FirstAncestor_0.ImageSet.ImagesTypes);
local v4 = require(l_script_FirstAncestor_0.ImageSet.Enum.IconSize);
local v5 = require(l_script_FirstAncestor_0.ImageSet.getIconSize);
local v6 = require(l_script_FirstAncestor_0.Indicator.StatWidget);
local _ = require(l_script_FirstAncestor_0.Style.Fonts);
local v8 = require(l_Parent_0.Core.Style.useStyle);
local v9 = require(l_Parent_0.Core.Text.GetTextSize);
local v10 = v5(v4.Large);
local function _(v11, v12, v13)
    return v9(v11, v12.RelativeSize * v13.Font.BaseSize, v12.Font, (Vector2.new(10000, 10000))).X;
end;
local function _(v15, v16)
    local l_countText_0 = v15.countText;
    local l_Title_0 = v16.Font.Title;
    local l_X_0 = v9(l_countText_0, l_Title_0.RelativeSize * v16.Font.BaseSize, l_Title_0.Font, (Vector2.new(10000, 10000))).X;
    l_Title_0 = v15.labelText;
    local l_CaptionHeader_0 = v16.Font.CaptionHeader;
    return (math.max(l_X_0, v9(l_Title_0, l_CaptionHeader_0.RelativeSize * v16.Font.BaseSize, l_CaptionHeader_0.Font, (Vector2.new(10000, 10000))).X) + v10) + 12;
end;
return function(v22)
    local v23 = v8();
    local l_countLeft_0 = v22.countLeft;
    local l_countText_1 = l_countLeft_0.countText;
    local l_Title_1 = v23.Font.Title;
    local l_X_1 = v9(l_countText_1, l_Title_1.RelativeSize * v23.Font.BaseSize, l_Title_1.Font, (Vector2.new(10000, 10000))).X;
    l_Title_1 = l_countLeft_0.labelText;
    local l_CaptionHeader_1 = v23.Font.CaptionHeader;
    local v29 = (math.max(l_X_1, v9(l_Title_1, l_CaptionHeader_1.RelativeSize * v23.Font.BaseSize, l_CaptionHeader_1.Font, (Vector2.new(10000, 10000))).X) + v10) + 12;
    l_X_1 = v22.countRight;
    l_Title_1 = l_X_1.countText;
    l_CaptionHeader_1 = v23.Font.Title;
    l_countText_1 = v9(l_Title_1, l_CaptionHeader_1.RelativeSize * v23.Font.BaseSize, l_CaptionHeader_1.Font, (Vector2.new(10000, 10000))).X;
    l_CaptionHeader_1 = l_X_1.labelText;
    local l_CaptionHeader_2 = v23.Font.CaptionHeader;
    l_X_1 = v29 / (v29 + ((math.max(l_countText_1, v9(l_CaptionHeader_1, l_CaptionHeader_2.RelativeSize * v23.Font.BaseSize, l_CaptionHeader_2.Font, (Vector2.new(10000, 10000))).X) + v10) + 12));
    l_countText_1 = 1 - l_X_1;
    l_Title_1 = v22.countLeft;
    l_CaptionHeader_1 = v22.countRight;
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        LayoutOrder = v22.layoutOrder,
        AutomaticSize = Enum.AutomaticSize.Y
    }, {
        LeftSection = v2.createElement(v6, {
            countText = l_Title_1.countText,
            labelText = l_Title_1.labelText,
            icon = l_Title_1.icon,
            layoutOrder = 1,
            position = UDim2.new(0, 0, 0, 0),
            anchorPoint = Vector2.new(0, 0),
            size = UDim2.new(l_X_1, 0, 1, 0),
            horizontalAlignment = Enum.HorizontalAlignment.Left
        }),
        RightSection = v2.createElement(v6, {
            countText = l_CaptionHeader_1.countText,
            labelText = l_CaptionHeader_1.labelText,
            icon = l_CaptionHeader_1.icon,
            layoutOrder = 2,
            position = UDim2.new(1, 0, 0, 0),
            anchorPoint = Vector2.new(1, 0),
            size = UDim2.new(l_countText_1, 0, 1, 0),
            horizontalAlignment = Enum.HorizontalAlignment.Right
        })
    });
end;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.React);
local v4 = require(l_Parent_2.Cryo);
local _ = require(l_Parent_0.ImageSet.ImagesTypes);
local _ = require(l_Parent_0.Style.StyleTypes);
local l_Label_0 = require(l_Parent_1.Core.ImageSet.ImageSetComponent).Label;
local v8 = require(l_Parent_0.Loading.ShimmerPanel);
local v9 = require(l_Parent_1.Core.Style.useStyle);
local function v11(v10)
    return {
        iconLabelSpacing = v10.Global.Space_25,
        iconSize = v10.Semantic.Icon.Size.Small,
        iconColorStyle = v10.Semantic.Color.Icon.Default,
        labelTypography = v10.Semantic.Typography.CaptionHeader,
        labelColorStyle = v10.Semantic.Color.Text.Default
    };
end;
local function _(v12)
    return {
        iconLabelSpacing = v12.Global.Space_25,
        iconSize = v12.Semantic.Icon.Size.Small,
        labelTypography = v12.Semantic.Typography.Subheader,
        labelColorStyle = v12.Semantic.Color.Text.Emphasis
    };
end;
local function v15(v14)
    return {
        iconLabelSpacing = v14.Global.Space_25,
        iconSize = v14.Global.Size_150,
        iconColorStyle = v14.Semantic.Color.Icon.Default,
        labelTypography = v14.Semantic.Typography.CaptionHeader,
        labelColorStyle = v14.Semantic.Color.Text.Default
    };
end;
local function v36(v16)
    local l_layoutOrder_0 = v16.layoutOrder;
    local l_isReversed_0 = v16.isReversed;
    local l_itemProps_0 = v16.itemProps;
    local l_itemStyleDefaults_0 = v16.itemStyleDefaults;
    local l_icon_0 = l_itemProps_0.icon;
    local l_labelText_0 = l_itemProps_0.labelText;
    local l_useTextAsIcon_0 = l_itemProps_0.useTextAsIcon;
    local l_onActivated_0 = l_itemProps_0.onActivated;
    local v25 = if l_itemProps_0.isLoading ~= nil then l_itemProps_0.isLoading else false;
    local v26 = v4.Dictionary.join(l_itemStyleDefaults_0, l_itemProps_0.styleProps or {});
    local l_iconLabelSpacing_0 = v26.iconLabelSpacing;
    local l_iconSize_0 = v26.iconSize;
    local v29 = v26.iconColorStyle or {};
    local l_labelTypography_0 = v26.labelTypography;
    local l_labelColorStyle_0 = v26.labelColorStyle;
    local v32 = not v25 and (l_icon_0 and true or false);
    local v33 = not v25 and (l_onActivated_0 and true or false);
    local v34 = nil;
    if v25 then
        v34 = if not l_icon_0 then l_labelTypography_0.FontSize else math.max(l_iconSize_0, l_labelTypography_0.FontSize);
    end;
    local v35 = nil;
    if v32 then
        v35 = if not l_useTextAsIcon_0 then v3.createElement(l_Label_0, {
            LayoutOrder = not l_isReversed_0 and 1 or 2,
            Size = UDim2.fromOffset(l_iconSize_0, l_iconSize_0),
            Image = l_icon_0,
            ImageColor3 = v29.Color3,
            ImageTransparency = not v29.Transparency and 0 or v29.Transparency,
            BackgroundTransparency = 1,
            Selectable = false
        }) else v3.createElement("TextLabel", {
            LayoutOrder = not l_isReversed_0 and 1 or 2,
            Size = UDim2.fromOffset(l_iconSize_0, l_iconSize_0),
            BackgroundTransparency = 1,
            Text = l_icon_0,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center,
            Font = l_labelTypography_0.Font,
            TextSize = l_iconSize_0,
            TextColor3 = v29.Color3,
            TextTransparency = not v29.Transparency and 0 or v29.Transparency,
            Selectable = false
        });
    end;
    return v3.createElement(not v33 and "Frame" or "TextButton", {
        Text = if not v33 then nil else "",
        AutoButtonColor = if not v33 then nil else false,
        Size = UDim2.fromScale(1, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_0,
        Selectable = not not v33 or false,
        [v3.Event.Activated] = if not v33 then nil else l_onActivated_0
    }, {
        ListLayout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Padding = UDim.new(0, l_iconLabelSpacing_0)
        }),
        Shimmer = if not v25 then nil else v3.createElement(v8, {
            Size = UDim2.new(1, 0, 0, v34)
        }),
        Icon = v35,
        Label = if v25 then nil else v3.createElement("TextLabel", {
            LayoutOrder = not l_isReversed_0 and 2 or 1,
            AutomaticSize = Enum.AutomaticSize.XY,
            Size = UDim2.fromScale(0, 0),
            BackgroundTransparency = 1,
            Text = l_labelText_0,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            Font = l_labelTypography_0.Font,
            TextSize = l_labelTypography_0.FontSize,
            TextColor3 = l_labelColorStyle_0.Color3,
            TextTransparency = l_labelColorStyle_0.Transparency,
            Selectable = false
        })
    });
end;
return function(v37)
    local v38 = v9();
    local l_position_0 = v37.position;
    local l_anchorPoint_0 = v37.anchorPoint;
    local l_size_0 = v37.size;
    local v42 = v37.automaticSize or Enum.AutomaticSize.Y;
    local l_layoutOrder_1 = v37.layoutOrder;
    local v44 = v37.namesSpacing or v38.Tokens.Global.Space_50;
    local l_displayNameItem_0 = v37.displayNameItem;
    local l_userNameItem_0 = v37.userNameItem;
    local l_vendorNameItem_0 = v37.vendorNameItem;
    local l_aliasItem_0 = v37.aliasItem;
    local l_createElement_0 = v3.createElement;
    local v50 = "Frame";
    local v51 = {
        Position = l_position_0,
        AnchorPoint = l_anchorPoint_0,
        Size = l_size_0,
        AutomaticSize = v42,
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_1,
        Selectable = false
    };
    local v52 = {
        ListLayout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Padding = UDim.new(0, v44)
        })
    };
    local v53;
    if not l_displayNameItem_0 then
        v53 = nil;
    else
        v53 = v3.createElement;
        local l_v36_0 = v36;
        local v55 = {
            layoutOrder = 1,
            isReversed = true,
            itemProps = l_displayNameItem_0
        };
        local l_Tokens_0 = v38.Tokens;
        v55.itemStyleDefaults = {
            iconLabelSpacing = l_Tokens_0.Global.Space_25,
            iconSize = l_Tokens_0.Semantic.Icon.Size.Small,
            labelTypography = l_Tokens_0.Semantic.Typography.Subheader,
            labelColorStyle = l_Tokens_0.Semantic.Color.Text.Emphasis
        };
        v53 = v53(l_v36_0, v55);
    end;
    v52.DisplayName = v53;
    v52.UserName = if not l_userNameItem_0 then nil else v3.createElement(v36, {
        layoutOrder = 2,
        itemProps = l_userNameItem_0,
        itemStyleDefaults = v15(v38.Tokens)
    });
    v52.VendorName = if not l_vendorNameItem_0 then nil else v3.createElement(v36, {
        layoutOrder = 3,
        itemProps = l_vendorNameItem_0,
        itemStyleDefaults = v11(v38.Tokens)
    });
    v52.Alias = if not l_aliasItem_0 then nil else v3.createElement(v36, {
        layoutOrder = 4,
        itemProps = l_aliasItem_0,
        itemStyleDefaults = v11(v38.Tokens)
    });
    return l_createElement_0(v50, v51, v52);
end;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local l_Parent_3 = l_Parent_2.Parent;
local v4 = require(l_Parent_3.Roact);
local v5 = require(l_Parent_3.t);
local l_Label_0 = require(l_Parent_2.Core.ImageSet.ImageSetComponent).Label;
local v7 = require(l_Parent_3.Cryo);
local _ = require(l_Parent_1.Style.StyleTypes);
local v9 = require(l_Parent_2.Core.Style.Validator.validateColorInfo);
local v10 = require(l_Parent_1.ImageSet.Images);
local v11 = require(l_Parent_1.Button.IconButton);
local v12 = require(l_Parent_1.ImageSet.getIconSize);
local v13 = require(l_Parent_1.ImageSet.Enum.IconSize);
local v14 = require(l_Parent_2.Core.Text.GenericTextLabel.GenericTextLabel);
local v15 = require(l_Parent_2.Core.Style.withStyle);
local v16 = require(l_Parent_0.Enum.VoteStates);
local v17 = v10["icons/status/games/rating_large"];
local v18 = v10["icons/actions/vote/voteDownOff"];
local v19 = v10["icons/actions/vote/voteDownOn"];
local v20 = v10["icons/actions/vote/voteUpOff"];
local v21 = v10["icons/actions/vote/voteUpOn"];
local v22 = {
    containerSpacingTop = 12,
    containerSpacingTrailing = 12,
    containerSpacingBottom = 12,
    containerSpacingLeading = 12,
    containerBorderRadius = 8,
    containerGap = 12,
    statWidgetContainerGap = 12,
    statWidgetIconSize = v12(v13.Large),
    statWidgetDataGap = 0,
    buttonGroupGap = 12,
    buttonSize = 44,
    buttonIconSizeEnum = v13.Medium
};
local v23 = v4.PureComponent:extend("RateCount");
v23.validateProps = v5.strictInterface({
    position = v5.optional(v5.UDim2),
    layoutOrder = v5.optional(v5.integer),
    anchorPoint = v5.optional(v5.Vector2),
    width = v5.optional(v5.integer),
    height = v5.optional(v5.integer),
    rateText = v5.optional(v5.string),
    rateLabel = v5.optional(v5.string),
    voteState = v5.optional(v16.isEnumValue),
    onVoteDownActivated = v5.optional(v5.callback),
    onVoteUpActivated = v5.optional(v5.callback),
    styleProps = v5.optional(v5.strictInterface({
        containerSpacingTop = v5.optional(v5.integer),
        containerSpacingTrailing = v5.optional(v5.integer),
        containerSpacingBottom = v5.optional(v5.integer),
        containerSpacingLeading = v5.optional(v5.integer),
        containerBorderRadius = v5.optional(v5.integer),
        containerBackgroundColor = v5.optional(v9),
        containerGap = v5.optional(v5.integer),
        statWidgetContainerGap = v5.optional(v5.integer),
        statWidgetIconSize = v5.optional(v5.integer),
        statWidgetIconContentColor = v5.optional(v9),
        statWidgetDataGap = v5.optional(v5.integer),
        statWidgetDataContentColor = v5.optional(v9),
        statWidgetDataLabelContentColor = v5.optional(v9),
        buttonGroupGap = v5.optional(v5.integer),
        buttonSize = v5.optional(v5.integer),
        buttonIconSizeEnum = v5.optional(v13.isEnumValue)
    }))
});
v23.defaultProps = {
    height = 72,
    rateText = "",
    rateLabel = "",
    voteState = v16.notVoted
};
v23.init = function(v24)
    v24.onVoteDownActivated = function()
        local l_onVoteDownActivated_0 = v24.props.onVoteDownActivated;
        if l_onVoteDownActivated_0 then
            l_onVoteDownActivated_0();
        end;
    end;
    v24.onVoteUpActivated = function()
        local l_onVoteUpActivated_0 = v24.props.onVoteUpActivated;
        if l_onVoteUpActivated_0 then
            l_onVoteUpActivated_0();
        end;
    end;
end;
v23.render = function(v27)
    local l_position_0 = v27.props.position;
    local l_layoutOrder_0 = v27.props.layoutOrder;
    local l_anchorPoint_0 = v27.props.anchorPoint;
    local l_width_0 = v27.props.width;
    local l_height_0 = v27.props.height;
    local v33 = nil;
    v33 = if not l_width_0 then UDim2.new(1, 0, 0, l_height_0) else UDim2.new(0, l_width_0, 0, l_height_0);
    local l_rateText_0 = v27.props.rateText;
    local l_rateLabel_0 = v27.props.rateLabel;
    local l_voteState_0 = v27.props.voteState;
    local v37 = l_voteState_0 == v16.votedDown;
    local v38 = l_voteState_0 == v16.votedUp;
    return v15(function(v39)
        local v40 = v7.Dictionary.join(v22, v27.props.styleProps or {});
        local l_containerSpacingLeading_0 = v40.containerSpacingLeading;
        local l_containerSpacingTrailing_0 = v40.containerSpacingTrailing;
        local l_containerBorderRadius_0 = v40.containerBorderRadius;
        local v44 = v40.containerBackgroundColor or v39.Theme.BackgroundContrast;
        local l_containerGap_0 = v40.containerGap;
        local l_statWidgetContainerGap_0 = v40.statWidgetContainerGap;
        local l_statWidgetIconSize_0 = v40.statWidgetIconSize;
        local v48 = v40.statWidgetIconContentColor or v39.Theme.IconEmphasis;
        local l_statWidgetDataGap_0 = v40.statWidgetDataGap;
        local v50 = v40.statWidgetDataContentColor or v39.Theme.TextEmphasis;
        local v51 = v40.statWidgetDataLabelContentColor or v39.Theme.TextEmphasis;
        local l_buttonGroupGap_0 = v40.buttonGroupGap;
        local l_buttonSize_0 = v40.buttonSize;
        local l_buttonIconSizeEnum_0 = v40.buttonIconSizeEnum;
        return v4.createElement("Frame", {
            Size = v33,
            Position = l_position_0,
            AnchorPoint = l_anchorPoint_0,
            BackgroundColor3 = v44.Color,
            BackgroundTransparency = v44.Transparency,
            BorderSizePixel = 0,
            LayoutOrder = l_layoutOrder_0
        }, {
            RoundCorner = v4.createElement("UICorner", {
                CornerRadius = UDim.new(0, l_containerBorderRadius_0)
            }),
            ListLayout = v4.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, l_containerGap_0)
            }),
            Padding = v4.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, l_containerSpacingLeading_0),
                PaddingRight = UDim.new(0, l_containerSpacingTrailing_0)
            }),
            Icon = v4.createElement(l_Label_0, {
                LayoutOrder = 1,
                Size = UDim2.fromOffset(l_statWidgetIconSize_0, l_statWidgetIconSize_0),
                Image = v17,
                ImageColor3 = v48.Color,
                ImageTransparency = v48.Transparency,
                BackgroundTransparency = 1
            }),
            TextSection = v4.createElement("Frame", {
                LayoutOrder = 2,
                Size = UDim2.new(1, -((((l_statWidgetIconSize_0 + math.max(v12(l_buttonIconSizeEnum_0, v39), l_buttonSize_0) * 2) + l_statWidgetContainerGap_0) + l_containerGap_0) + l_buttonGroupGap_0), 0, 0),
                BackgroundTransparency = 1,
                AutomaticSize = Enum.AutomaticSize.Y
            }, {
                ListLayout = v4.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Vertical,
                    Padding = UDim.new(0, l_statWidgetDataGap_0)
                }),
                RateText = v4.createElement(v14, {
                    LayoutOrder = 1,
                    AutomaticSize = Enum.AutomaticSize.XY,
                    Text = l_rateText_0,
                    colorStyle = v50,
                    fontStyle = v39.Font.Title,
                    BackgroundTransparency = 1
                }),
                RateLabel = v4.createElement(v14, {
                    LayoutOrder = 2,
                    AutomaticSize = Enum.AutomaticSize.XY,
                    Text = l_rateLabel_0,
                    colorStyle = v51,
                    fontStyle = v39.Font.CaptionHeader,
                    BackgroundTransparency = 1
                })
            }),
            VoteDown = v4.createElement(v11, {
                layoutOrder = 3,
                size = UDim2.fromOffset(l_buttonSize_0, l_buttonSize_0),
                icon = not not v37 and v19 or v18,
                iconColor3 = v39.Theme.IconEmphasis.Color,
                iconSize = l_buttonIconSizeEnum_0,
                onActivated = v27.onVoteDownActivated,
                showBackground = true
            }),
            VoteUp = v4.createElement(v11, {
                layoutOrder = 4,
                size = UDim2.fromOffset(l_buttonSize_0, l_buttonSize_0),
                icon = not not v38 and v21 or v20,
                iconColor3 = v39.Theme.IconEmphasis.Color,
                iconSize = l_buttonIconSizeEnum_0,
                onActivated = v27.onVoteUpActivated,
                showBackground = true
            })
        });
    end);
end;
return v23;


local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Core_0 = l_Parent_1.Core;
local v3 = require(l_Parent_1.Parent.React);
local v4 = require(l_Parent_0.ImageSet.Images);
local v5 = require(l_Core_0.ImageSet.ImageSetComponent);
local v6 = require(l_Core_0.Style.useStyle);
local _ = require(l_Parent_0.Style.Fonts);
local v8 = require(l_Parent_1.Core.Text.GetTextSize);
local v9 = require(l_Parent_1.UIBloxConfig);
local v10 = not v9.enableFontNameMapping and 40 or 48;
local function v22(v11, v12, v13, v14, v15)
    local l_Tokens_0 = v14.Tokens;
    local l_Font_0 = v14.Font;
    local l_Space_25_0 = l_Tokens_0.Global.Space_25;
    local l_Small_0 = l_Tokens_0.Semantic.Icon.Size.Small;
    local l_Muted_0 = l_Tokens_0.Semantic.Color.Text.Muted;
    local l_Muted_1 = l_Tokens_0.Semantic.Color.Text.Muted;
    return v3.createElement("Frame", v11, {
        UIListLayout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Padding = UDim.new(0, l_Space_25_0)
        }),
        Icon = v3.createElement(v5.Label, {
            Size = UDim2.fromOffset(l_Small_0, l_Small_0),
            Image = v4[v12],
            BackgroundTransparency = 1,
            ImageTransparency = l_Muted_0.Transparency,
            ImageColor3 = l_Muted_0.Color3,
            LayoutOrder = 1,
            AnchorPoint = Vector2.new(0, 0.5)
        }),
        Label = v3.createElement("TextLabel", {
            Size = UDim2.new(0, v15 or 0, not v9.useAutomaticSizeYInStatGroup and 1 or 0, 0),
            AutomaticSize = if not v15 then if v9.useAutomaticSizeYInStatGroup then Enum.AutomaticSize.XY else Enum.AutomaticSize.X else if v9.useAutomaticSizeYInStatGroup then Enum.AutomaticSize.Y else nil,
            BackgroundTransparency = 1,
            Text = v13,
            Font = l_Font_0.Body.Font,
            TextSize = l_Font_0.BaseSize * l_Font_0.Body.RelativeSize,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            TextTruncate = if not v9.enableFontNameMapping then nil else Enum.TextTruncate.AtEnd,
            TextWrapped = if not v9.enableFontNameMapping then nil else false,
            TextColor3 = l_Muted_1.Color3,
            TextTransparency = l_Muted_1.Transparency,
            LayoutOrder = 2
        }, {
            UISizeConstraint = v3.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(v10, math.huge)
            })
        })
    });
end;
local function _(v23, v24)
    return (v3.useMemo(function()
        return v8(v23, v24.BaseSize * v24.Body.RelativeSize, v24.Body.Font, Vector2.new(v10, math.huge)).X;
    end, {
        v23,
        v24
    }));
end;
return function(v26)
    local v27 = v6();
    local l_Space_100_0 = v27.Tokens.Global.Space_100;
    local l_ratingText_0 = v26.ratingText;
    local l_Font_1 = v27.Font;
    local l_l_ratingText_0_0 = l_ratingText_0 --[[ copy: 4 -> 7 ]];
    local l_l_Font_1_0 = l_Font_1 --[[ copy: 5 -> 8 ]];
    local v33 = v3.useMemo(function()
        return v8(l_l_ratingText_0_0, l_l_Font_1_0.BaseSize * l_l_Font_1_0.Body.RelativeSize, l_l_Font_1_0.Body.Font, Vector2.new(v10, math.huge)).X;
    end, {
        l_ratingText_0,
        l_Font_1
    });
    if not v26.playingText then
        l_ratingText_0 = nil;
    else
        l_Font_1 = v26.playingText;
        local l_Font_2 = v27.Font;
        l_ratingText_0 = v3.useMemo(function()
            return v8(l_Font_1, l_Font_2.BaseSize * l_Font_2.Body.RelativeSize, l_Font_2.Body.Font, Vector2.new(v10, math.huge)).X;
        end, {
            l_Font_1,
            l_Font_2
        });
    end;
    return v3.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        UIListLayout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Padding = UDim.new(0, l_Space_100_0)
        }),
        RatingStats = v22({
            Size = UDim2.new(0, 0, not v9.useAutomaticSizeYInStatGroup and 1 or 0, 0),
            AutomaticSize = if not v9.useAutomaticSizeYInStatGroup then Enum.AutomaticSize.X else Enum.AutomaticSize.XY,
            BackgroundTransparency = 1,
            LayoutOrder = 1
        }, "icons/status/games/rating_small", v26.ratingText, v27, v33),
        PlayingStats = if v26.playingText ~= nil then v22({
            Size = UDim2.new(0, 0, not v9.useAutomaticSizeYInStatGroup and 1 or 0, 0),
            AutomaticSize = if not v9.useAutomaticSizeYInStatGroup then Enum.AutomaticSize.X else Enum.AutomaticSize.XY,
            BackgroundTransparency = 1,
            LayoutOrder = 2
        }, "icons/status/games/people-playing_small", v26.playingText, v27, l_ratingText_0) else nil
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("App");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v3 = require(l_Parent_1.React);
local v4 = require(l_Parent_1.Cryo);
local _ = require(l_script_FirstAncestor_0.ImageSet.ImagesTypes);
local _ = require(l_script_FirstAncestor_0.Style.StyleTypes);
local v7 = require(l_script_FirstAncestor_0.ImageSet.Enum.IconSize);
local v8 = require(l_script_FirstAncestor_0.ImageSet.getIconSize);
local l_Label_0 = require(l_Parent_0.Core.ImageSet.ImageSetComponent).Label;
local v10 = require(l_Parent_0.Core.Text.GenericTextLabel.GenericTextLabel);
local v11 = require(l_Parent_0.Core.Style.useStyle);
local v12 = {
    containerPaddingLeft = 12,
    containerPaddingRight = 12,
    containerGap = 12,
    iconSize = v8(v7.Large),
    dataGap = 0
};
return function(v13)
    local v14 = v11();
    local v15 = v4.Dictionary.join(v12, v13.styleProps or {});
    local l_containerPaddingLeft_0 = v15.containerPaddingLeft;
    local l_containerPaddingRight_0 = v15.containerPaddingRight;
    local l_containerGap_0 = v15.containerGap;
    local l_iconSize_0 = v15.iconSize;
    return v3.createElement("Frame", {
        Position = v13.position,
        AnchorPoint = v13.anchorPoint,
        Size = v13.size,
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        LayoutOrder = v13.layoutOrder
    }, {
        ListLayout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = v13.horizontalAlignment,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Padding = UDim.new(0, l_containerGap_0)
        }),
        Padding = v3.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, l_containerPaddingLeft_0),
            PaddingRight = UDim.new(0, l_containerPaddingRight_0)
        }),
        Icon = v3.createElement(l_Label_0, {
            Size = UDim2.new(0, l_iconSize_0, 0, l_iconSize_0),
            Image = v13.icon,
            ImageColor3 = (v15.iconContentColor or v14.Theme.IconEmphasis).Color,
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1
        }),
        TextSection = v3.createElement("Frame", {
            Size = UDim2.fromScale(0, 0),
            AutomaticSize = Enum.AutomaticSize.XY,
            BackgroundTransparency = 1,
            Position = UDim2.new(0, l_iconSize_0 + l_containerGap_0, 0, 0)
        }, {
            ListLayout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical,
                Padding = UDim.new(0, v15.dataGap)
            }),
            Number = v3.createElement(v10, {
                Size = UDim2.fromScale(0, 0),
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 1,
                Text = v13.countText,
                fluidSizing = true,
                TextWrapped = false,
                TextXAlignment = Enum.TextXAlignment.Left,
                colorStyle = v15.dataContentColor or v14.Theme.TextEmphasis,
                fontStyle = v14.Font.Title,
                TextTruncate = Enum.TextTruncate.AtEnd,
                BackgroundTransparency = 1
            }),
            Label = v3.createElement(v10, {
                Size = UDim2.fromScale(0, 0),
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 2,
                Text = v13.labelText,
                fluidSizing = true,
                TextWrapped = false,
                TextXAlignment = Enum.TextXAlignment.Left,
                colorStyle = v15.dataLabelContentColor or v14.Theme.TextEmphasis,
                fontStyle = v14.Font.CaptionHeader,
                TextTruncate = Enum.TextTruncate.AtEnd,
                BackgroundTransparency = 1
            })
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Parent.React);
local v2 = require(l_Parent_0.Core.Style.useStyle);
return function(v3)
    local l_HelperText_0 = v2().Tokens.Component.HelperText;
    local l_Typography_0 = l_HelperText_0.Base.Typography;
    local v6 = if not v3.error then l_HelperText_0.Base.ContentColor else l_HelperText_0.Error.ContentColor;
    return v1.createElement("TextLabel", {
        Text = v3.text,
        TextTransparency = v6.Transparency,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Top,
        TextWrapped = true,
        BackgroundTransparency = 1,
        TextColor3 = v6.Color3,
        Font = l_Typography_0.Font,
        TextSize = l_Typography_0.FontSize,
        LineHeight = l_Typography_0.LineHeight,
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        LayoutOrder = v3.LayoutOrder
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_0.Translations.Translator);
local v3 = require(l_Parent_1.React);
local v4 = require(l_Parent_0.Core.Style.useStyle);
local function _(v5, v6)
    if not (v6 ~= nil) or v6 == v3.None then
        return v5;
    elseif not v6 then
        return (v2:FormatByKey("CommonUI.Controls.Input.Optional", {
            inputLabel = v5
        }));
    else
        return v5 .. "*";
    end;
end;
return function(v8)
    local l_InputLabel_0 = v4().Tokens.Component.InputLabel;
    local l_Typography_0 = l_InputLabel_0.Base.Typography;
    local l_ContentColor_0 = l_InputLabel_0.Base.ContentColor;
    local l_createElement_0 = v3.createElement;
    local v13 = "TextLabel";
    local v14 = {};
    local l_text_0 = v8.text;
    local l_required_0 = v8.required;
    v14.Text = if not (l_required_0 ~= nil) or l_required_0 == v3.None then l_text_0 else if l_required_0 then l_text_0 .. "*" else v2:FormatByKey("CommonUI.Controls.Input.Optional", {
        inputLabel = l_text_0
    });
    v14.TextTransparency = l_ContentColor_0.Transparency;
    v14.TextXAlignment = Enum.TextXAlignment.Left;
    v14.TextYAlignment = Enum.TextYAlignment.Top;
    v14.TextWrapped = true;
    v14.BackgroundTransparency = 1;
    v14.TextColor3 = l_ContentColor_0.Color3;
    v14.Font = l_Typography_0.Font;
    v14.TextSize = l_Typography_0.FontSize;
    v14.LineHeight = l_Typography_0.LineHeight;
    v14.Size = UDim2.new(1, 0, 0, 0);
    v14.AutomaticSize = Enum.AutomaticSize.Y;
    v14.LayoutOrder = v8.LayoutOrder;
    return l_createElement_0(v13, v14);
end;


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local l_Parent_2 = l_Parent_1.Parent;
local v3 = require(l_Parent_2.Parent.React);
local v4 = require(l_Parent_0.InputLabel);
local v5 = require(l_Parent_0.HelperText);
local v6 = require(l_Parent_2.Core.ImageSet.ImageSetComponent);
local _ = require(l_Parent_1.ImageSet.ImagesTypes);
local v8 = require(l_Parent_2.Core.Style.useStyle);
local v9 = require(l_Parent_2.App.SelectionCursor.useCursor);
local v10 = {
    width = UDim.new(0, 400)
};
return function(v11)
    local l_Tokens_0 = v8().Tokens;
    local v13 = v3.useRef(nil);
    local v14, v15 = v3.useState(false);
    local v16, v17 = v3.useState(false);
    local l_TextField_0 = l_Tokens_0.Component.TextField;
    local l_Focus_0 = l_Tokens_0.Semantic.Stroke.Focus;
    local l_Small_0 = l_Tokens_0.Semantic.Icon.Size.Small;
    local l_Input_0 = l_Tokens_0.Semantic.Stroke.Input;
    local v22 = math.ceil(l_Input_0) * 2;
    local l_Focus_1 = l_Tokens_0.Semantic.Stroke.Focus;
    local v24 = math.ceil(l_Focus_1) * 2;
    local v25 = v9(UDim.new(0, l_TextField_0.Base.Field.BorderRadius), l_Focus_0, l_Focus_0);
    local v26 = v9(UDim.new(0.5), l_Small_0 / 2, l_Focus_0);
    local v27 = if v11.width ~= nil then v11.width else v10.width;
    local function _()
        local v28 = 0;
        if v11.iconLeading then
            v28 = (v28 - l_Small_0) - l_TextField_0.Base.Field.Gap * 2;
        end;
        if v11.iconButton then
            v28 = (v28 - l_Small_0) - l_TextField_0.Base.Field.Gap * 2;
        end;
        return v28;
    end;
    local function v31(v30)
        if v30 == nil then
            v11.onChange("");
            return ;
        else
            v11.onChange(v30.Text);
            return ;
        end;
    end;
    local function v32()
        if not v11.disabled or not v13.current then
            v17(true);
            return ;
        else
            v13.current:ReleaseFocus();
            return ;
        end;
    end;
    local function v33()
        v17(false);
    end;
    local l_createElement_0 = v3.createElement;
    local v35 = "Frame";
    local v36 = {
        BackgroundTransparency = 1,
        Size = UDim2.new(v27, UDim.new(0, 0)),
        AutomaticSize = Enum.AutomaticSize.Y,
        LayoutOrder = v11.LayoutOrder
    };
    local v37 = {
        Layout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, l_Tokens_0.Component.InputLabel.Base.Spacing.Bottom)
        }),
        InputLabel = if not v11.label then nil else v3.createElement(v4, {
            text = v11.label,
            required = v11.required,
            LayoutOrder = 1
        })
    };
    local l_createElement_1 = v3.createElement;
    local v39 = "CanvasGroup";
    local v40 = {
        Size = UDim2.new(1, 0, 0, l_Tokens_0.Global.Size_600),
        BackgroundTransparency = 1,
        LayoutOrder = 2,
        GroupTransparency = not v11.disabled and 0 or 1 - l_TextField_0.Disabled.Field.Opacity
    };
    local v41 = {};
    local l_createElement_2 = v3.createElement;
    local v43 = "ImageButton";
    local v44 = {
        Size = UDim2.new(1, -v22, 1, -v22),
        Position = UDim2.new(0, v22 / 2, 0, v22 / 2),
        BackgroundTransparency = 1,
        Selectable = not v11.disabled,
        Image = "",
        SelectionImageObject = v25,
        [v3.Event.Activated] = function()
            if v13.current then
                v13.current:CaptureFocus();
            end;
        end,
        [v3.Event.MouseEnter] = function()
            v15(true);
        end,
        [v3.Event.MouseLeave] = function()
            v15(false);
        end
    };
    local v45 = {
        Corner = v3.createElement("UICorner", {
            CornerRadius = UDim.new(0, l_TextField_0.Base.Field.BorderRadius)
        }),
        Border = v3.createElement("UIStroke", {
            Color = if not v11.error then l_TextField_0.Base.Field.BorderColor.Color3 else l_TextField_0.Error.Field.BorderColor.Color3,
            Transparency = if not v11.error then v16 and 0 or l_TextField_0.Base.Field.BorderColor.Transparency else l_TextField_0.Error.Field.BorderColor.Transparency,
            Thickness = l_Input_0
        })
    };
    local l_createElement_3 = v3.createElement;
    local v47 = "Frame";
    local v48 = {
        Size = UDim2.new(1, -v24, 1, -v24),
        Position = UDim2.new(0, v24 / 2, 0, v24 / 2),
        BackgroundTransparency = 1
    };
    local v49 = {
        Corner = v3.createElement("UICorner", {
            CornerRadius = UDim.new(0, l_TextField_0.Base.Field.BorderRadius - v24 / 2)
        }),
        Focus = if not v11.disabled and (v14 or v16) then v3.createElement("UIStroke", {
            Color = l_TextField_0.Base.Field.BorderColor.Color3,
            Transparency = l_Tokens_0.Global.Opacity_12,
            Thickness = l_Focus_1
        }) else nil,
        Padding = v3.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, l_TextField_0.Base.Field.Spacing.Leading),
            PaddingRight = UDim.new(0, l_TextField_0.Base.Field.Spacing.Trailing)
        }),
        Layout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, l_TextField_0.Base.Field.Gap * 2)
        }),
        IconLeading = if not v11.iconLeading then nil else v3.createElement(v6.Label, {
            BackgroundTransparency = 1,
            Image = v11.iconLeading,
            Size = UDim2.new(0, l_Small_0, 0, l_Small_0),
            ImageColor3 = l_TextField_0.Base.IconLeading.ContentColor.Color3,
            ImageTransparency = l_TextField_0.Base.IconLeading.ContentColor.Transparency,
            LayoutOrder = 1
        })
    };
    local l_createElement_4 = v3.createElement;
    local v51 = "TextBox";
    local v52 = {
        ref = v13,
        Text = v11.text,
        ClearTextOnFocus = false
    };
    local l_new_0 = UDim2.new;
    local v54 = 1;
    local v55 = 0;
    if v11.iconLeading then
        v55 = (v55 - l_Small_0) - l_TextField_0.Base.Field.Gap * 2;
    end;
    if v11.iconButton then
        v55 = (v55 - l_Small_0) - l_TextField_0.Base.Field.Gap * 2;
    end;
    v52.Size = l_new_0(v54, v55, 1, 0);
    v52.TextEditable = not v11.disabled;
    v52.BackgroundTransparency = 1;
    v52.TextXAlignment = Enum.TextXAlignment.Left;
    v52.TextYAlignment = Enum.TextYAlignment.Center;
    v52.Font = l_TextField_0.Base.Field.Typography.Font;
    v52.TextSize = l_TextField_0.Base.Field.Typography.FontSize;
    v52.LineHeight = 1;
    v52.TextColor3 = l_TextField_0.Base.FieldValue.ContentColor.Color3;
    v52.TextTransparency = l_TextField_0.Base.FieldValue.ContentColor.Transparency;
    v52.PlaceholderText = v11.placeholder;
    v52.ClipsDescendants = true;
    v52.Selectable = false;
    v52.LayoutOrder = 2;
    v52[v3.Event.Focused] = v32;
    v52[v3.Event.FocusLost] = v33;
    v52[v3.Change.Text] = v31;
    v49.TextBox = l_createElement_4(v51, v52);
    v49.IconButton = if not v11.iconButton then nil else v3.createElement(v6.Button, {
        BackgroundTransparency = 1,
        Image = v11.iconButton,
        Size = UDim2.new(0, l_Small_0, 0, l_Small_0),
        ImageColor3 = l_TextField_0.Base.IconLeading.ContentColor.Color3,
        Selectable = not v11.disabled,
        SelectionImageObject = v26,
        LayoutOrder = 3,
        [v3.Event.Activated] = if v11.disabled then nil else v11.onButtonPress
    });
    v45.BorderFrame = l_createElement_3(v47, v48, v49);
    v41.Input = l_createElement_2(v43, v44, v45);
    v37.InputCanvas = l_createElement_1(v39, v40, v41);
    v37.HelperText = if not v11.hint then nil else v3.createElement(v5, {
        text = v11.hint,
        error = v11.error,
        LayoutOrder = 3
    });
    return l_createElement_0(v35, v36, v37);
end;