local l_ReflectionService_0 = game:GetService("ReflectionService");
local l_Parent_0 = script.Parent.Parent.Parent;
local l_Breadcrumb_0 = require(l_Parent_0.Packages.Framework).UI.Breadcrumb;
local v3 = require(l_Parent_0.Packages.Dash);
local l_append_0 = v3.append;
local l_collectArray_0 = v3.collectArray;
local l_collectSet_0 = v3.collectSet;
local l_forEach_0 = v3.forEach;
local l_includes_0 = v3.includes;
local l_keys_0 = v3.keys;
local l_splitOn_0 = v3.splitOn;
local l_startsWith_0 = v3.startsWith;
local l_trim_0 = v3.trim;
local v13 = require(l_Parent_0.Src.Util.MenuHelpers);
local v14 = require(l_Parent_0.Src.Resources.ModernIcons);
local v15 = require(l_Parent_0.Src.Util.roundDecimal);
local v16 = require(l_Parent_0.Src.Util.sortByLabel);
local l_Attribute_0 = require(l_Parent_0.Src.Resources.PluginStyles):GetAttribute("Icon16");
local v18 = {
    allProperties = {},
    possiblePropertyTypes = {}
};
v18.CreateSelectSchema = function(v19)
    if not (v19 ~= nil) or v19.EnumType == nil then
        return v18.TextSchema;
    else
        return {
            Type = "Select",
            Items = v18.GetEnumItems(v19.EnumType),
            PlaceholderText = "Add a " .. tostring(v19.EnumType) .. "...",
            Validate = function(v20)
                return l_includes_0(v19.EnumType:GetEnumItems(), v20);
            end,
            GetDefaultValue = function()
                return v19;
            end
        };
    end;
end;
v18.GetEnumItems = function(v21)
    local l_v21_EnumItems_0 = v21:GetEnumItems();
    table.sort(l_v21_EnumItems_0, function(v23, v24)
        return tostring(v23) < tostring(v24);
    end);
    return (l_collectArray_0(l_v21_EnumItems_0, function(_, v26)
        return {
            Id = v26,
            Label = l_splitOn_0(tostring(v26), "%.")[3]
        };
    end));
end;
v18.CreateChildSchema = function(v27, v28, v29, v30, v31)
    return {
        Id = ("%*/%*"):format(v28, v27),
        Name = {
            Schema = v18.ChildComponentSchema,
            Value = v27
        },
        Value = {
            Schema = v29,
            Value = v30
        },
        SetParentValue = v31
    };
end;
v18.GetComponentsValues = function(v32)
    return l_collectArray_0(v32:split(","), function(_, v34)
        return (tonumber(v34));
    end);
end;
v18.GetComponentsString = function(v35)
    local v36 = "";
    for v37, v38 in v35, nil, nil do
        if v37 ~= 1 then
            v36 = v36 .. " , ";
        end;
        v36 = v36 .. v15(tonumber(v38), 2);
    end;
    return {
        v36
    };
end;
v18.BrickColorSchema = {
    Type = "BrickColor",
    Validate = function(v39)
        return typeof(v39) == "BrickColor";
    end,
    GetDefaultValue = function()
        return BrickColor.new(1);
    end
};
local function _(v40)
    if v40 == 0 then
        return 0;
    else
        return (math.deg(v40));
    end;
end;
v18.NumberSchema = {
    Type = "Number",
    PlaceholderText = "Add a Number...",
    Validate = function(v42)
        return typeof(v42) == "number";
    end,
    GetDefaultValue = function()
        return 0;
    end
};
v18.CFrameSchema = {
    Type = "Vector",
    Components = {
        ""
    },
    GetValue = function(v43)
        local v44 = v18.GetComponentsValues(v43[1]);
        local v45 = Vector3.new(v44[1], v44[2], v44[3]);
        local v46 = v44[4];
        local v47 = v46 == 0 and 0 or math.deg(v46);
        v46 = v44[5];
        local v48 = v46 == 0 and 0 or math.deg(v46);
        v46 = v44[6];
        return CFrame.new(v45) * CFrame.Angles(v47, v48, v46 == 0 and 0 or math.deg(v46));
    end,
    GetChildren = function(v49, v50)
        local l_NumberSchema_0 = v18.NumberSchema;
        local l_Position_0 = v49.Position;
        local l_X_0 = l_Position_0.X;
        local l_Y_0 = l_Position_0.Y;
        local l_Z_0 = l_Position_0.Z;
        local v56, v57, v58 = v49:ToOrientation();
        local v59 = CFrame.Angles(v56, v57, v58);
        return {
            v18.CreateChildSchema("Position-X", v50, l_NumberSchema_0, l_X_0, function(v60)
                l_Position_0 = Vector3.new(v60, l_Y_0, l_Z_0);
                return CFrame.new(l_Position_0) * v59;
            end),
            v18.CreateChildSchema("Position-Y", v50, l_NumberSchema_0, l_Y_0, function(v61)
                l_Position_0 = Vector3.new(l_X_0, v61, l_Z_0);
                return CFrame.new(l_Position_0) * v59;
            end),
            v18.CreateChildSchema("Position-Z", v50, l_NumberSchema_0, l_Z_0, function(v62)
                l_Position_0 = Vector3.new(l_X_0, l_Y_0, v62);
                return CFrame.new(l_Position_0) * v59;
            end),
            v18.CreateChildSchema("Orientation-X", v50, l_NumberSchema_0, v56 == 0 and 0 or math.deg(v56), function(v63)
                v59 = CFrame.Angles(math.rad(v63), v57, v58);
                return CFrame.new(l_Position_0) * v59;
            end),
            v18.CreateChildSchema("Orientation-Y", v50, l_NumberSchema_0, v57 == 0 and 0 or math.deg(v57), function(v64)
                v59 = CFrame.Angles(v56, math.rad(v64), v58);
                return CFrame.new(l_Position_0) * v59;
            end),
            v18.CreateChildSchema("Orientation-Z", v50, l_NumberSchema_0, v58 == 0 and 0 or math.deg(v58), function(v65)
                v59 = CFrame.Angles(v56, v57, (math.rad(v65)));
                return CFrame.new(l_Position_0) * v59;
            end)
        };
    end,
    GetComponents = function(v66)
        local l_Position_1 = v66.Position;
        local v68, v69, v70 = v66:ToOrientation();
        return v18.GetComponentsString({
            l_Position_1.X,
            l_Position_1.Y,
            l_Position_1.Z,
            v68 == 0 and 0 or math.deg(v68),
            v69 == 0 and 0 or math.deg(v69),
            v70 == 0 and 0 or math.deg(v70)
        });
    end,
    Validate = function(v71)
        return typeof(v71) == "CFrame";
    end,
    GetDefaultValue = function()
        return CFrame.new();
    end
};
v18.CheckboxSchema = {
    Type = "Checkbox",
    Validate = function(v72)
        return typeof(v72) == "boolean";
    end,
    GetDefaultValue = function()
        return false;
    end
};
v18.ChildComponentSchema = {
    Type = "StaticText",
    Name = "Child",
    Validate = function(v73)
        return typeof(v73) == "string";
    end,
    GetDefaultValue = function()
        return "";
    end
};
v18.ColorSchema = {
    Type = "Color",
    PlaceholderText = "Add a Color...",
    Validate = function(v74)
        return typeof(v74) == "Color3";
    end,
    GetDefaultValue = function()
        return Color3.new(1, 1, 1);
    end
};
v18.ColorSequenceSchema = {
    Type = "ColorSequence",
    Validate = function(v75)
        return typeof(v75) == "ColorSequence";
    end,
    GetDefaultValue = function()
        return ColorSequence.new(Color3.new());
    end
};
v18.EmptySchema = {
    Type = "Empty",
    Validate = function()
        return true;
    end,
    GetDefaultValue = function()
        return nil;
    end
};
v18.FontStyleSchema = {
    Type = "FontStyle",
    Validate = function(v76)
        return typeof(v76) == "Font";
    end,
    GetDefaultValue = function()
        return Font.new("rbxasset://fonts/families/SourceSansPro.json");
    end
};
v18.FontWeightSchema = {
    Type = "FontWeight",
    Validate = function(v77)
        return typeof(v77) == "Font";
    end,
    GetDefaultValue = function()
        return Font.new("rbxasset://fonts/families/SourceSansPro.json");
    end
};
v18.FontSchema = {
    Type = "FontFamily",
    PlaceholderText = "Add a Font...",
    GetChildren = function(v78)
        return {
            {
                Name = {
                    Schema = v18.ChildComponentSchema,
                    Value = "Style"
                },
                Value = {
                    Schema = v18.FontStyleSchema,
                    Value = v78
                }
            },
            {
                Name = {
                    Schema = v18.ChildComponentSchema,
                    Value = "Weight"
                },
                Value = {
                    Schema = v18.FontWeightSchema,
                    Value = v78
                }
            }
        };
    end,
    Validate = function(v79)
        return typeof(v79) == "Font";
    end,
    GetDefaultValue = function()
        return Font.new("rbxasset://fonts/families/SourceSansPro.json");
    end
};
v18.NumberRangeSchema = {
    Type = "Vector",
    Components = {
        ""
    },
    GetValue = function(v80)
        local v81 = v18.GetComponentsValues(v80[1]);
        local v82 = v81[1];
        local v83 = v81[2];
        if v82 <= v83 then
            return NumberRange.new(v82, v83);
        else
            return NumberRange.new(v83, v82);
        end;
    end,
    GetChildren = function(v84, v85)
        local l_NumberSchema_1 = v18.NumberSchema;
        local l_Min_0 = v84.Min;
        local l_Max_0 = v84.Max;
        return {
            v18.CreateChildSchema("Min", v85, l_NumberSchema_1, l_Min_0, function(v89)
                if v89 <= l_Max_0 then
                    return NumberRange.new(v89, l_Max_0);
                else
                    return NumberRange.new(l_Max_0, v89);
                end;
            end),
            v18.CreateChildSchema("Max", v85, l_NumberSchema_1, l_Max_0, function(v90)
                if l_Min_0 <= v90 then
                    return NumberRange.new(l_Min_0, v90);
                else
                    return NumberRange.new(v90, l_Min_0);
                end;
            end)
        };
    end,
    GetComponents = function(v91)
        return v18.GetComponentsString({
            v91.Min,
            v91.Max
        });
    end,
    Validate = function(v92)
        return typeof(v92) == "NumberRange";
    end,
    GetDefaultValue = function()
        return NumberRange.new(0);
    end
};
v18.PropertyNameSchema = {
    Type = "PropertyName",
    ErrorStyle = "PropertyCellError",
    Validate = function(v93)
        return typeof(v93) == "string";
    end,
    GetDefaultValue = function()
        return "";
    end
};
v18.RectSchema = {
    Type = "Vector",
    Components = {
        ""
    },
    GetValue = function(v94)
        local v95 = v18.GetComponentsValues(v94[1]);
        return Rect.new(v95[1], v95[2], v95[3], v95[4]);
    end,
    GetChildren = function(v96, v97)
        local l_NumberSchema_2 = v18.NumberSchema;
        local l_X_1 = v96.Min.X;
        local l_X_2 = v96.Max.X;
        local l_Y_1 = v96.Min.Y;
        local l_Y_2 = v96.Max.Y;
        return {
            v18.CreateChildSchema("X0", v97, l_NumberSchema_2, l_X_1, function(v103)
                return Rect.new(v103, l_Y_1, l_X_2, l_Y_2);
            end),
            v18.CreateChildSchema("Y0", v97, l_NumberSchema_2, l_Y_1, function(v104)
                return Rect.new(l_X_1, v104, l_X_2, l_Y_2);
            end),
            v18.CreateChildSchema("X1", v97, l_NumberSchema_2, l_X_2, function(v105)
                return Rect.new(l_X_1, l_Y_1, v105, l_Y_2);
            end),
            v18.CreateChildSchema("Y1", v97, l_NumberSchema_2, l_Y_2, function(v106)
                return Rect.new(l_X_1, l_Y_1, l_X_2, v106);
            end)
        };
    end,
    GetComponents = function(v107)
        return v18.GetComponentsString({
            v107.Min.X,
            v107.Min.Y,
            v107.Max.X,
            v107.Max.Y
        });
    end,
    Validate = function(v108)
        return typeof(v108) == "Rect";
    end,
    GetDefaultValue = function()
        return Rect.new(Vector2.zero, Vector2.zero);
    end
};
v18.SelectorSchema = {
    Type = "Breadcrumb",
    Delimiters = {
        ">>",
        ">",
        "::",
        ":",
        "%.",
        " ",
        "#",
        ","
    },
    ErrorStyle = "PropertyCellError",
    GetImageProps = l_Breadcrumb_0.GetSelectorIcon,
    Name = "Selector",
    Validate = function(v109)
        return typeof(v109) == "string";
    end,
    GetDefaultValue = function()
        return "";
    end
};
v18.DeriveSchema = {
    Type = "Derive",
    Validate = function(v110)
        local v111 = false;
        if typeof(v110) == "Instance" then
            v111 = v110:IsA("StyleSheet");
        end;
        return v111;
    end,
    GetDefaultValue = function()
        return Instance.new("StyleSheet");
    end
};
v18.FolderSchema = {
    Type = "Breadcrumb",
    GetImageProps = function(v112)
        return {
            Image = if not v14[v112:lower()] then v13.getClassIcon("Folder") else v14[v112:lower()](),
            Size = l_Attribute_0
        };
    end,
    Name = "Folder",
    Validate = function(v113)
        return typeof(v113) == "string";
    end,
    GetDefaultValue = function()
        return "";
    end
};
v18.StyleSheetSchema = {
    Type = "Breadcrumb",
    GetImageProps = function(v114)
        return {
            Image = if not v14[v114:lower()] then v13.getClassIcon("StyleSheet") else v14[v114:lower()](),
            Size = l_Attribute_0
        };
    end,
    Name = "StyleSheet",
    Validate = function(v115)
        return typeof(v115) == "string";
    end,
    GetDefaultValue = function()
        return "";
    end
};
v18.ThemeSchema = {
    Type = "Theme",
    Validate = function(v116)
        return typeof(v116) == "string";
    end,
    GetDefaultValue = function()
        return "";
    end
};
v18.TextSchema = {
    Type = "Text",
    Validate = function(v117)
        return typeof(v117) == "string";
    end,
    GetDefaultValue = function()
        return "";
    end
};
v18.TransparencySchema = {
    Type = "Slider",
    Min = 0,
    Max = 1,
    ShowInput = true,
    InputPrecision = 3,
    SnapIncrement = 0.05,
    Validate = function(v118)
        return typeof(v118) == "number";
    end,
    GetDefaultValue = function()
        return 0;
    end
};
v18.NumberSequenceSchema = {
    Type = "NumberSequence",
    Validate = function(v119)
        return typeof(v119) == "NumberSequence";
    end,
    GetDefaultValue = function()
        return NumberSequence.new(0);
    end
};
v18.UDimSchema = {
    Type = "Vector",
    Components = {
        ""
    },
    GetValue = function(v120)
        local v121 = v18.GetComponentsValues(v120[1]);
        return UDim.new(v121[1], v121[2]);
    end,
    GetChildren = function(v122, v123)
        local l_NumberSchema_3 = v18.NumberSchema;
        local l_Scale_0 = v122.Scale;
        local l_Offset_0 = v122.Offset;
        return {
            v18.CreateChildSchema("Scale", v123, l_NumberSchema_3, l_Scale_0, function(v127)
                return UDim.new(v127, l_Offset_0);
            end),
            v18.CreateChildSchema("Offset", v123, l_NumberSchema_3, l_Offset_0, function(v128)
                return UDim.new(l_Scale_0, v128);
            end)
        };
    end,
    GetComponents = function(v129)
        return v18.GetComponentsString({
            v129.Scale,
            v129.Offset
        });
    end,
    Validate = function(v130)
        return typeof(v130) == "UDim";
    end,
    GetDefaultValue = function()
        return UDim.new();
    end
};
v18.UDim2Schema = {
    Type = "Vector",
    Components = {
        ""
    },
    GetValue = function(v131)
        local v132 = v18.GetComponentsValues(v131[1]);
        return UDim2.new(v132[1], v132[2], v132[3], v132[4]);
    end,
    GetChildren = function(v133, v134)
        local l_NumberSchema_4 = v18.NumberSchema;
        local l_Scale_1 = v133.X.Scale;
        local l_Offset_1 = v133.X.Offset;
        local l_Scale_2 = v133.Y.Scale;
        local l_Offset_2 = v133.Y.Offset;
        return {
            v18.CreateChildSchema("X-Scale", v134, l_NumberSchema_4, l_Scale_1, function(v140)
                return UDim2.new(v140, l_Offset_1, l_Scale_2, l_Offset_2);
            end),
            v18.CreateChildSchema("X-Offset", v134, l_NumberSchema_4, l_Offset_1, function(v141)
                return UDim2.new(l_Scale_1, v141, l_Scale_2, l_Offset_2);
            end),
            v18.CreateChildSchema("Y-Scale", v134, l_NumberSchema_4, l_Scale_2, function(v142)
                return UDim2.new(l_Scale_1, l_Offset_1, v142, l_Offset_2);
            end),
            v18.CreateChildSchema("Y-Offset", v134, l_NumberSchema_4, l_Offset_2, function(v143)
                return UDim2.new(l_Scale_1, l_Offset_1, l_Scale_2, v143);
            end)
        };
    end,
    GetComponents = function(v144)
        return v18.GetComponentsString({
            v144.X.Scale,
            v144.X.Offset,
            v144.Y.Scale,
            v144.Y.Offset
        });
    end,
    Validate = function(v145)
        return typeof(v145) == "UDim2";
    end,
    GetDefaultValue = function()
        return UDim2.new();
    end
};
v18.Vector2Schema = {
    Type = "Vector",
    Components = {
        ""
    },
    GetValue = function(v146)
        local v147 = v18.GetComponentsValues(v146[1]);
        return Vector2.new(v147[1], v147[2]);
    end,
    GetChildren = function(v148, v149)
        local l_NumberSchema_5 = v18.NumberSchema;
        local l_X_3 = v148.X;
        local l_Y_3 = v148.Y;
        return {
            v18.CreateChildSchema("X", v149, l_NumberSchema_5, l_X_3, function(v153)
                return Vector2.new(v153, l_Y_3);
            end),
            v18.CreateChildSchema("Y", v149, l_NumberSchema_5, l_Y_3, function(v154)
                return Vector2.new(l_X_3, v154);
            end)
        };
    end,
    GetComponents = function(v155)
        return v18.GetComponentsString({
            v155.X,
            v155.Y
        });
    end,
    Validate = function(v156)
        return typeof(v156) == "Vector2";
    end,
    GetDefaultValue = function()
        return Vector2.new();
    end
};
v18.Vector3Schema = {
    Type = "Vector",
    Components = {
        ""
    },
    GetValue = function(v157)
        local v158 = v18.GetComponentsValues(v157[1]);
        return (Vector3.new(v158[1], v158[2], v158[3]));
    end,
    GetChildren = function(v159, v160)
        local l_NumberSchema_6 = v18.NumberSchema;
        local l_X_4 = v159.X;
        local l_Y_4 = v159.Y;
        local l_Z_1 = v159.Z;
        return {
            v18.CreateChildSchema("X", v160, l_NumberSchema_6, l_X_4, function(v165)
                return (Vector3.new(v165, l_Y_4, l_Z_1));
            end),
            v18.CreateChildSchema("Y", v160, l_NumberSchema_6, l_Y_4, function(v166)
                return (Vector3.new(l_X_4, v166, l_Z_1));
            end),
            v18.CreateChildSchema("Z", v160, l_NumberSchema_6, l_Z_1, function(v167)
                return (Vector3.new(l_X_4, l_Y_4, v167));
            end)
        };
    end,
    GetComponents = function(v168)
        return v18.GetComponentsString({
            v168.X,
            v168.Y,
            v168.Z
        });
    end,
    Validate = function(v169)
        return typeof(v169) == "Vector3";
    end,
    GetDefaultValue = function()
        return (Vector3.new());
    end
};
v18.TokenReferenceSchema = {
    Type = "TokenReference",
    ErrorStyle = "PropertyCellError",
    HideSelfTokens = false,
    Validate = function(v170)
        return typeof(v170) == "string";
    end,
    GetDefaultValue = function()
        return "$";
    end
};
v18.createClassProperties = function(v171)
    if not v18.allProperties[v171] then
        local l_status_0, l_result_0 = pcall(function()
            return Instance.new(v171);
        end);
        if not (l_status_0 and l_result_0) then
            local l_status_1, l_result_1 = pcall(function()
                return game:GetService(v171);
            end);
            l_status_0 = l_status_1;
            l_result_0 = l_result_1;
        end;
        if l_status_0 and l_result_0 then
            local function _(v176, v177)
                if typeof(v18.possiblePropertyTypes[v176]) ~= "table" then
                    v18.possiblePropertyTypes[v176] = {};
                end;
                v18.possiblePropertyTypes[v176][v177] = true;
            end;
            local v179 = {};
            l_forEach_0(l_ReflectionService_0:GetPropertyNames(v171), function(v180)
                if v180:sub(1, 1) == v180:sub(1, 1):lower() then
                    return ;
                else
                    local v181 = nil;
                    local l_status_2, l_result_2 = pcall(function()
                        return l_result_0[v180];
                    end);
                    l_status_0 = l_status_2;
                    v181 = l_result_2;
                    if not l_status_0 or v181 == nil then
                        return ;
                    else
                        l_status_2 = typeof(v181);
                        if typeof(v18.possiblePropertyTypes[v180]) ~= "table" then
                            v18.possiblePropertyTypes[v180] = {};
                        end;
                        v18.possiblePropertyTypes[v180][l_status_2] = true;
                        for _, v185 in v18.OverridenSchemas, nil, nil do
                            if v185.Property == v180 and typeof(v181) == v185.Type then
                                v179[v180] = v185.Schema;
                                return ;
                            end;
                        end;
                        if typeof(v181) == "EnumItem" then
                            v179[v180] = v18.CreateSelectSchema(v181);
                            return ;
                        else
                            v179[v180] = v18.getAttributeSchema(v181);
                            return ;
                        end;
                    end;
                end;
            end);
            v18.allProperties[v171] = v179;
            pcall(function()
                l_result_0:Remove();
            end);
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;
v18.getPropertySchema = function(v186, v187)
    if not (v187 ~= nil) or v187 == "" then
        for _, v189 in v18.allProperties, nil, nil do
            if v189[v186] then
                return v189[v186];
            end;
        end;
    else
        v18.createClassProperties(v187);
        local v190 = v18.allProperties[v187];
        if v190 then
            return v190[v186];
        end;
    end;
    return nil;
end;
v18.getPropertyNames = function(v191)
    local v192 = {};
    if not v191 or v191 == "" then
        for v193, _ in pairs(v18.allProperties) do
            v192 = l_append_0(v192, l_keys_0(v18.allProperties[v193]));
        end;
        return (l_keys_0(l_collectSet_0(v192)));
    else
        if l_startsWith_0(v191, "::") then
            v191 = l_trim_0(v191:sub(3));
        end;
        v18.createClassProperties(v191);
        if v18.allProperties[v191] then
            v192 = l_keys_0(v18.allProperties[v191]);
        end;
        return v192;
    end;
end;
v18.getPossiblePropertyTypes = function(v195)
    return l_keys_0(v18.possiblePropertyTypes[v195] or {});
end;
v18.getAttributeSchema = function(v196)
    if typeof(v196) == "string" then
        if v196:sub(1, 1) == "$" then
            return v18.TokenReferenceSchema;
        else
            return v18.TextSchema;
        end;
    elseif typeof(v196) == "EnumItem" then
        return v18.CreateSelectSchema(v196);
    elseif not v18.PropertySchemas[typeof(v196)] then
        return v18.SelectTokenSchema;
    else
        return v18.PropertySchemas[typeof(v196)];
    end;
end;
v18.OverridenSchemas = {
    {
        Property = "Transparency",
        Type = "number",
        Schema = v18.TransparencySchema
    },
    {
        Property = "BackgroundTransparency",
        Type = "number",
        Schema = v18.TransparencySchema
    }
};
v18.PropertySchemas = {
    Token = v18.TokenReferenceSchema,
    boolean = v18.CheckboxSchema,
    BrickColor = v18.BrickColorSchema,
    CFrame = v18.CFrameSchema,
    Color3 = v18.ColorSchema,
    ColorSequence = v18.ColorSequenceSchema,
    NumberRange = v18.NumberRangeSchema,
    NumberSequence = v18.NumberSequenceSchema,
    Font = v18.FontSchema,
    number = v18.NumberSchema,
    string = v18.TextSchema,
    Rect = v18.RectSchema,
    UDim = v18.UDimSchema,
    UDim2 = v18.UDim2Schema,
    Vector2 = v18.Vector2Schema,
    Vector3 = v18.Vector3Schema
};
v18.SelectTokenSchema = {
    Type = "Select",
    Items = v16(l_collectArray_0(v18.PropertySchemas, function(v197, v198)
        return {
            Id = v198,
            Label = v197
        };
    end)),
    PlaceholderText = "Select Type...",
    Validate = function(_)
        return true;
    end,
    GetDefaultValue = function()
        return nil;
    end
};
l_forEach_0({
    "Frame",
    "ImageButton",
    "ImageLabel",
    "Part",
    "ScrollingFrame",
    "TextBox",
    "TextButton",
    "TextLabel"
}, function(v200)
    v18.createClassProperties(v200);
end);
return v18;


local l_StylingService_0 = game:GetService("StylingService");
local _ = require(script.Parent.Parent.Parent.Src.Types);
return {
    getStyleInfo = function(v2)
        assert(v2 and v2:IsA("StyleRule"), "expecting style rule");
        local l_status_0, l_result_0 = pcall(function()
            return (l_StylingService_0:GetStyleInfo(v2));
        end);
        if not l_status_0 then
            return nil;
        else
            return l_result_0;
        end;
    end
};


local l_StylingService_0 = game:GetService("StylingService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.Dash);
local l_assign_0 = v2.assign;
local l_includes_0 = v2.includes;
local l_omit_0 = v2.omit;
local l_reverse_0 = v2.reverse;
local v7 = require(l_Parent_0.Src.Enums.TokenValidationError);
local _ = require(l_Parent_0.Src.Types);
local v9 = {};
v9.getTokenValue = function(v10, v11)
    return v9.evaluateToken(v9.getAllAttributes(v10), v11);
end;
v9.getDerivedAttributes = function(v12)
    local v13 = {};
    if v12 then
        assert(v12 ~= nil, "styleInstance cannot be invalid");
        if not v12:IsA("StyleSheet") then
            if v12:IsA("StyleRule") then
                v13 = v9.getDerivedAttributes(v12.Parent);
            end;
        else
            local l_status_0, l_result_0 = pcall(function()
                return l_StylingService_0:GetStyleSheetDerivesChain(v12);
            end);
            if l_status_0 then
                for _, v17 in pairs(l_result_0) do
                    if v17 ~= v12 then
                        v13 = l_assign_0(v13, v17:GetAttributes());
                    end;
                end;
                return v13;
            end;
        end;
        return v13;
    else
        return v13;
    end;
end;
v9.getAllAttributes = function(v18)
    if v18 then
        assert(v18 ~= nil, "styleInstance cannot be invalid");
        local v19 = v9.getDerivedAttributes(v18);
        if v18:IsA("StyleBase") then
            v19 = l_assign_0(v19, v18:GetAttributes());
        end;
        return v19;
    else
        return {};
    end;
end;
v9.getTokenSourceStyleSheet = function(v20, v21)
    local v22 = false;
    if typeof(v20) == "Instance" then
        v22 = v20:IsA("StyleBase");
    end;
    assert(v22, "expecting valid StyleBase");
    local v23 = v9.parseAttributeName(v21);
    if v23 then
        assert(v23 ~= nil, "invalid attribute name");
        v22 = if not v20:IsA("StyleSheet") then v20:FindFirstAncestorWhichIsA("StyleSheet") else v20;
        if v22 then
            local l_status_1, l_result_1 = pcall(function()
                return l_reverse_0(l_StylingService_0:GetStyleSheetDerivesChain(v22));
            end);
            if l_status_1 then
                for _, v27 in l_result_1, nil, nil do
                    if v27:GetAttribute(v23) then
                        return v27;
                    end;
                end;
                return nil;
            else
                return nil;
            end;
        else
            return nil;
        end;
    else
        return nil;
    end;
end;
v9.parseAttributeName = function(v28)
    if not v28 or typeof(v28) ~= "string" then
        return nil;
    else
        return v28:match("^%s*%$([%a%d%-_]*)%s*$");
    end;
end;
v9.evaluateToken = function(v29, v30)
    local l_v30_0 = v30;
    local v32 = {};
    for _ = 1, 15 do
        local v34 = v9.parseAttributeName(l_v30_0);
        if not v34 then
            break;
        elseif not v32[l_v30_0] then
            v32[l_v30_0] = true;
            l_v30_0 = v29[v34];
            if not (l_v30_0 ~= nil) then
                break;
            end;
        else
            return nil, v7.CyclicReference;
        end;
    end;
    if l_v30_0 == nil then
        return nil, v7.DoesNotExist;
    else
        return l_v30_0, v7.None;
    end;
end;
v9.validateToken = function(v35, v36, v37)
    if v9.parseAttributeName(v36) then
        local v38, v39 = v9.evaluateToken(v35, v36);
        if v39 ~= v7.None then
            return v38, v39;
        elseif not v37 or l_includes_0(v37, (typeof(v38))) then
            return v38, v7.None;
        else
            return v38, v7.IncorrectType;
        end;
    else
        return nil, v7.InvalidSyntax;
    end;
end;
v9.stripStyleEditorMetaAttributes = function(v40)
    assert(typeof(v40) == "table", "array expected");
    return l_omit_0(v40, {
        "StyleCategory"
    });
end;
return v9;


local v0 = require(script.Parent.Parent.Parent.Packages.Dash);
local l_join_0 = v0.join;
local v2 = {};
v2.new = function(v3, v4, v5, v6)
    local v7 = {
        connections = {},
        updateHierarchy = v4,
        connectedProperties = v5,
        instanceTypes = v6 or {
            "StyleBase"
        }
    };
    v7.isFilteredType = function(v8)
        for _, v10 in v7.instanceTypes, nil, nil do
            if v8:IsA(v10) then
                return true;
            end;
        end;
        return false;
    end;
    v7.removeInstanceConnections = function(v11)
        if v7.connections[v11] then
            for _, v13 in v7.connections[v11], nil, nil do
                if v13 then
                    v13:Disconnect();
                end;
            end;
            v7.connections[v11] = nil;
        end;
    end;
    v7.addInstanceConnections = function(v14)
        local l_connectedProperties_0 = v7.connectedProperties;
        if l_connectedProperties_0 and v14 then
            local v16 = {};
            for _, v18 in l_connectedProperties_0, nil, nil do
                if pcall(function()
                    local _ = v14[v18];
                end) then
                    v16[v18] = v14:GetPropertyChangedSignal(v18):Connect(function()
                        if v14.Parent == nil then
                            v7.removeInstanceConnections(v14);
                        end;
                        v7.updateHierarchy(v14, "PropertyChanged", v18);
                    end);
                end;
            end;
            if v14:IsA("StyleRule") then
                v16.StyleRulePropertyChanged = v14.StyleRulePropertyChanged:Connect(function()
                    v7.updateHierarchy(v14, "PropertyChanged");
                end);
            end;
            if v14:IsA("StyleSheet") then
                v16.StyleSheetCategoryChanged = v14:GetAttributeChangedSignal("StyleCategory"):Connect(function()
                    v7.updateHierarchy(v14, "AttributeChanged");
                end);
            end;
            if not v7.connections[v14] then
                v7.connections[v14] = v16;
                return ;
            else
                v7.connections[v14] = l_join_0(v7.connections[v14], v16);
                return ;
            end;
        else
            return ;
        end;
    end;
    v7.addRootInstanceConnections = function(v20)
        if v20 then
            v7.connections[v20] = {
                descendantAdded = v20.DescendantAdded:Connect(function(v21)
                    v7.addInstanceConnections(v21);
                    v7.updateHierarchy(v20, "DescendantAdded", v21);
                end),
                descendantRemoving = v20.DescendantRemoving:Connect(function(v22)
                    v7.removeInstanceConnections(v22);
                    v7.updateHierarchy(v20, "DescendantRemoving", v22);
                end),
                instanceDestroying = v20.Destroying:Connect(function()
                    v7.removeInstanceConnections(v20);
                    v7.updateHierarchy(v20, "Destroying");
                end)
            };
            v7.addInstanceConnections(v20);
            for _, v24 in (v20:GetDescendants()), nil, nil do
                if v7.isFilteredType(v24) then
                    v7.addInstanceConnections(v24);
                end;
            end;
            return ;
        else
            return ;
        end;
    end;
    v7.removeAllConnections = function()
        if v7.connections then
            for v25, v26 in v7.connections, nil, nil do
                for _, v28 in v26, nil, nil do
                    if v28 then
                        v28:Disconnect();
                    end;
                end;
                v7.connections[v25] = nil;
            end;
            return ;
        else
            return ;
        end;
    end;
    v7.destroyListener = function()
        v7.removeAllConnections();
        v7.connectedProperties = {};
        v7.updateHierarchy = v0.noop;
    end;
    for _, v30 in v3, nil, nil do
        v7.addRootInstanceConnections(v30);
    end;
    return (setmetatable(v7, {
        __index = v2
    }));
end;
return v2;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Dash);
local l_mapOne_0 = v1.mapOne;
local l_map_0 = v1.map;
local _ = require(l_Parent_0.Src.Types);
local v11 = {
    createItemId = function(...)
        return table.concat(l_map_0({
            ...
        }, function(v5)
            if typeof(v5) == "Instance" then
                return (("Instance[%*]"):format((v5:GetDebugId())));
            else
                return (tostring(v5));
            end;
        end), "/");
    end,
    getRowChildren = function(v6)
        return v6.Children or {};
    end,
    getTableRowId = function(v7)
        return v7.Id;
    end,
    getOneSelectedItem = function(v8)
        return l_mapOne_0(v8, function(v9, v10)
            if v9 == true then
                return v10;
            else
                return nil;
            end;
        end);
    end
};
v11.updateItems = function(v12, v13, v14, v15)
    if not (not v13 or not v14) and v15 then
        v12:migrateItemState(v13, v14, v15);
        local l_Children_0 = v14.Children;
        local l_Children_1 = v15.Children;
        if l_Children_0 and l_Children_1 then
            for _, v19 in l_Children_0, nil, nil do
                for _, v21 in l_Children_1, nil, nil do
                    local v22 = v21.Instance == v19.Instance;
                    local v23 = v19.Name.Value == v21.Name.Value;
                    if not (not v22 or v21.Instance == nil and not v23) then
                        v11.updateItems(v12, v13, v19, v21);
                        break;
                    end;
                end;
            end;
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;
return v11;


return function(v0, v1)
    assert(v0 ~= nil, "Expecting a valid function for argument 'func'");
    assert(typeof(v1) == "table", "Expecting a valid array for argument 'args'");
    return function(...)
        return v0(unpack(v1), ...);
    end;
end;


return function(v0)
    local v1 = tonumber(v0);
    if not v1 then
        local v2 = v0:gsub("%s+", ""):split(",");
        if #v2 == 3 then
            return Color3.fromRGB(tonumber(v2[1]), tonumber(v2[2]), (tonumber(v2[3])));
        else
            local l_status_0, l_result_0 = pcall(function()
                return Color3.fromHex(v0);
            end);
            if not l_status_0 or not l_result_0 then
                return nil;
            else
                return l_result_0;
            end;
        end;
    else
        v1 = math.clamp(v1, 0, 255);
        return Color3.fromRGB(v1, v1, v1);
    end;
end;


local v0 = require(script.Parent.Parent.Parent.Packages.Framework);
local l_createStyleRule_0 = v0.Styling.createStyleRule;
local l_createStyleSheet_0 = v0.Styling.createStyleSheet;
return function()
    local l_Folder_0 = Instance.new("Folder");
    l_Folder_0.Name = "Design";
    l_createStyleSheet_0("Design", {
        l_createStyleRule_0("Frame"),
        l_createStyleRule_0("ScrollingFrame"),
        l_createStyleRule_0("TextLabel"),
        l_createStyleRule_0("TextButton"),
        l_createStyleRule_0("TextBox"),
        l_createStyleRule_0("ImageButton"),
        l_createStyleRule_0("ImageLabel")
    }, {
        StyleCategory = "Designs"
    }).Parent = l_Folder_0;
    return l_Folder_0;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local l_ThunkWithArgsMiddleware_0 = require(l_Parent_0.Packages.Framework).Util.ThunkWithArgsMiddleware;
local v3 = require(l_Parent_0.Src.Reducers.RootReducer);
local _ = require(l_Parent_0.Src.Thunks.Types);
return function(v5)
    return v1.Store.new(v3, nil, {
        (l_ThunkWithArgsMiddleware_0(v5))
    }, nil);
end;


return function(v0)
    assert(typeof(v0) == "string", "string expected");
    return v0:gsub("(%W)", "%%%1");
end;


local _ = require(script.Parent.Parent.Parent.Src.Types);
return function(v1, v2)
    local v3 = {};
    if v1 == nil then
        return v3;
    else
        for _, v5 in v1, nil, nil do
            if v5:lower():match(v2:lower()) then
                table.insert(v3, {
                    Id = v5,
                    Label = v5,
                    Value = v5
                });
            end;
        end;
        table.sort(v3, function(v6, v7)
            return v6.Label < v7.Label;
        end);
        return v3;
    end;
end;


return function()
    local l_status_0, l_result_0 = pcall(function()
        return settings().Studio.Theme.Name;
    end);
    if not l_status_0 or not l_result_0 then
        return "Dark";
    else
        return l_result_0;
    end;
end;


return function(v0)
    return function(v1)
        assert(v0 ~= nil, "Expecting a valid ChangeHistoryService service");
        if not (not v1 or not v1.Name) and v1.DoChange then
            local v2 = v0:TryBeginRecording(v1.DisplayName or v1.Name, v1.DisplayName);
            local l_status_0, l_result_0 = pcall(function()
                return v1.DoChange() or Enum.FinishRecordingOperation.Cancel;
            end);
            if v2 then
                v0:FinishRecording(v2, if not l_status_0 then Enum.FinishRecordingOperation.Cancel else l_result_0);
            end;
            if not l_status_0 then
                error(l_result_0);
            end;
            return ;
        else
            return ;
        end;
    end;
end;


return function(v0, v1)
    assert(v1 >= 0, "Expecting decimal places is a valid non-negative integer");
    local v2 = math.pow(10, v1);
    return math.round(v0 * v2) / v2;
end;


local _ = require(script.Parent.Parent.Parent.Src.Types);
return function(v1)
    table.sort(v1, function(v2, v3)
        return v2.Label:lower() < v3.Label:lower();
    end);
    return v1;
end;


return {
    displayName = "StyleEditor",
    testMatch = {
        "**/*.spec"
    },
    testTimeout = 60000
};


if not game:GetFastFlag("ImprovePluginSpeed_TagEditor") then
    require(script.Parent.main)(plugin);
    return ;
else
    return ;
end;


game:DefineFastFlag("EnableTagEditorPlugin7", false);
game:DefineFastInt("ReportTagEditorEventsThrottleHundrethsPercent2", 0);
game:DefineFastFlag("TagEditorIconPickerSearchReset", false);
game:DefineFastFlag("TagEditorExternalUpdate", false);
game:DefineFastFlag("TagEditorShowTextSeparately", false);
return nil;


return function(v0, v1)
    if v0 then
        local l_ImprovePluginSpeed_TagEditor_0 = game:GetFastFlag("ImprovePluginSpeed_TagEditor");
        if not l_ImprovePluginSpeed_TagEditor_0 then
            require(script.Parent.defineLuaFlags);
        end;
        require(script.Parent.commonInit)();
        local l_Parent_0 = script.Parent.Parent;
        if l_ImprovePluginSpeed_TagEditor_0 or require(l_Parent_0.Src.Util.shouldPluginRun)() then
            local v4 = require(l_Parent_0.Packages.Roact);
            local v5 = require(l_Parent_0.Packages.Framework);
            local v6 = require(l_Parent_0.Src.MainPlugin);
            local v7 = require(l_Parent_0.Src.Util.hasInternalPermission)();
            local v8 = nil;
            local v9 = nil;
            if v7 then
                v9 = v5.DeveloperTools.forPlugin(l_Parent_0.Name, v0);
            end;
            local function v10()
                v0.Name = l_Parent_0.Name;
                v8 = v4.mount((v4.createElement(v6, {
                    Plugin = v0,
                    pluginLoaderContext = if not l_ImprovePluginSpeed_TagEditor_0 then nil else v1
                })));
                if v9 then
                    v9:addRoactTree("Roact tree", v8);
                end;
            end;
            v0.Unloading:Connect(function()
                if v9 then
                    v9:destroy();
                end;
                if v8 then
                    v4.unmount(v8);
                    v8 = nil;
                end;
            end);
            v10();
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;


local l_Parent_0 = script.Parent.Parent;
local l_ImprovePluginSpeed_TagEditor_0 = game:GetFastFlag("ImprovePluginSpeed_TagEditor");
if l_ImprovePluginSpeed_TagEditor_0 then
    local l_status_0, l_result_0 = pcall(function()
        return game:GetService("StudioService"):HasInternalPermission();
    end);
    if not (not l_status_0 or l_result_0) then
        return ;
    end;
end;
local v4 = require(l_Parent_0.Src.Util.DebugFlags);
local v5 = nil;
if not l_ImprovePluginSpeed_TagEditor_0 then
    v5 = require(l_Parent_0.Packages.Framework);
end;
if not (not v4.RunningUnderCLI() and not v4.RunTests()) then
    if l_ImprovePluginSpeed_TagEditor_0 then
        require(script.Parent.commonInit)();
        v5 = require(l_Parent_0.Packages.Framework);
    end;
    local v6 = require(l_Parent_0.Packages.Dev.TestEZ);
    local l_TestBootstrap_0 = v6.TestBootstrap;
    local v8 = not not _G.TEAMCITY and v6.Reporters.TeamCityReporter or v6.Reporters.TextReporter;
    local l_Src_0 = l_Parent_0.Src;
    local v10 = {
        showTimingInfo = false,
        testNamePattern = nil,
        extraEnvironment = {}
    };
    print("----- All " .. l_Parent_0.Name .. " Tests ------");
    require(script.Parent.defineLuaFlags);
    l_TestBootstrap_0:run({
        l_Src_0
    }, v8, v10);
    print("----------------------------------");
    if v4.RunDeveloperFrameworkTests() then
        print("");
        print("----- All DeveloperFramework Tests ------");
        v5.TestHelpers.runFrameworkTests(v6, v8);
        print("----------------------------------");
    end;
end;
if v4.RunningUnderCLI() then
    pcall(function()
        game:GetService("ProcessService"):ExitAsync(0);
    end);
end;


return function(v0)
    return {
        type = "MoveTagSelectionUpOrDown",
        isDown = v0
    };
end;


return function(v0)
    return {
        type = "OpenGroupMenu",
        group = v0
    };
end;


return function(v0)
    return {
        type = "OpenTagMenu",
        tag = v0
    };
end;


return function(v0)
    return {
        type = "SetAssigningGroup",
        group = v0
    };
end;


return function(v0)
    return {
        type = "SetGroupData",
        data = v0
    };
end;


return function(v0)
    return {
        type = "SetHoveredIcon",
        icon = v0
    };
end;


return function(v0)
    return {
        type = "SetIconSearch",
        text = v0
    };
end;


return function(v0)
    return {
        type = "SetMinimizedSettingsPane",
        minimized = v0
    };
end;


return function(v0, v1)
    return {
        type = "SetRenaming",
        tag = v0,
        renaming = v1
    };
end;


return function(v0, v1)
    return {
        type = "SetRenamingGroup",
        group = v0,
        renaming = v1
    };
end;


return function(v0)
    return {
        type = "SetSearch",
        text = v0
    };
end;


local _ = require(script.Parent.Parent.Parent.Src.Types);
return function(v1)
    return {
        type = "SetTagData",
        data = v1
    };
end;


local _ = require(script.Parent.Parent.Parent.Src.Types);
return function(v1)
    return {
        type = "SetUIGroupCollapseState",
        data = v1
    };
end;


local _ = require(script.Parent.Parent.Parent.Src.Types);
return function(v1)
    return {
        type = "SetUnknownTags",
        data = v1
    };
end;


return function(v0)
    return {
        type = "ToggleColorPicker",
        tag = v0
    };
end;


return function(v0)
    return {
        type = "ToggleIconPicker",
        tag = v0
    };
end;


return function(v0)
    return {
        type = "ToggleWorldView",
        enabled = v0
    };
end;


return {
    MoveTagSelectionUpOrDown = require(script.MoveTagSelectionUpOrDown),
    OpenGroupMenu = require(script.OpenGroupMenu),
    OpenTagMenu = require(script.OpenTagMenu),
    SetAssigningGroup = require(script.SetAssigningGroup),
    SetGroupData = require(script.SetGroupData),
    SetHoveredIcon = require(script.SetHoveredIcon),
    SetIconSearch = require(script.SetIconSearch),
    SetMinimizedSettingsPane = require(script.SetMinimizedSettingsPane),
    SetRenaming = require(script.SetRenaming),
    SetRenamingGroup = require(script.SetRenamingGroup),
    SetSearch = require(script.SetSearch),
    SetTagData = require(script.SetTagData),
    SetUIGroupCollapseState = require(script.SetUIGroupCollapseState),
    SetUnknownTags = require(script.SetUnknownTags),
    ToggleColorPicker = require(script.ToggleColorPicker),
    ToggleIconPicker = require(script.ToggleIconPicker),
    ToggleWorldView = require(script.ToggleWorldView)
};


return {
    validateHex = function(v0)
        return v0:match("^%s*%#?(%x%x%x%x%x%x)%s*$") ~= nil;
    end,
    validateRGB = function(v1)
        local v2, v3, v4 = v1:match("^%s*(%d?%d?%d)%s*,%s*(%d?%d?%d)%s*,%s*(%d?%d?%d)%s*%s*$");
        if not (v2 ~= nil and v3 ~= nil) or v4 == nil then
            return false;
        elseif not (tonumber(v2) <= 255 and tonumber(v3) <= 255) or tonumber(v4) > 255 then
            return false;
        else
            return true;
        end;
    end,
    validateHSV = function(v5)
        local v6, v7, v8 = v5:match("^%s*(%d?%d?%d)%s*,%s*(%d?%d?%d)%s*,%s*(%d?%d?%d)%s*%s*$");
        if not (v6 ~= nil and v7 ~= nil) or v8 == nil then
            return false;
        elseif tonumber(v6) > 360 then
            return false;
        elseif not (tonumber(v7) <= 100) or tonumber(v8) > 100 then
            return false;
        else
            return true;
        end;
    end
};


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Stylizer_0 = v2.Style.Stylizer;
local v7 = v1.PureComponent:extend("ColorValueSlider");
v7.init = function(v8)
    v8.state = {
        mouseDown = false
    };
    v8._rootRef = v1.createRef();
    v8.onMouseDown = function(_, _, _)
        v8:setState({
            MouseDown = true
        });
    end;
    v8.onInputChanged = function(_, v13)
        if v8.state.MouseDown and v13.UserInputType == Enum.UserInputType.MouseMovement then
            v8.props.updatePosition(v8:xToAlpha(v13.Position.X));
        end;
    end;
    v8.onInputEnded = function(_, v15)
        if not (not (v15.UserInputType == Enum.UserInputType.MouseButton1) or not v8.state.MouseDown) then
            v8:setState({
                MouseDown = false
            });
            v8.props.updatePosition(v8:xToAlpha(v15.Position.X));
        end;
    end;
end;
v7.xToAlpha = function(v16, v17)
    local l_current_0 = v16._rootRef.current;
    return (math.clamp((v17 - l_current_0.AbsolutePosition.X) / l_current_0.AbsoluteSize.X, 0, 1));
end;
v7.render = function(v19)
    local l_props_0 = v19.props;
    local l_ColorValueSlider_0 = l_props_0.Stylizer.ColorValueSlider;
    return v1.createElement("ImageButton", {
        LayoutOrder = l_props_0.LayoutOrder,
        Size = l_ColorValueSlider_0.Size,
        Image = l_ColorValueSlider_0.GradientImage,
        ImageColor3 = Color3.fromHSV(l_props_0.Hue, l_props_0.Saturation, 1),
        AutoButtonColor = false,
        [v1.Ref] = v19._rootRef,
        [v1.Event.MouseButton1Down] = v19.onMouseDown,
        [v1.Event.InputEnded] = v19.onInputEnded,
        [v1.Event.InputChanged] = v19.onInputChanged
    }, {
        PositionIndicator = v1.createElement("ImageLabel", {
            Size = l_ColorValueSlider_0.PositionIndicatorSize,
            BackgroundTransparency = 1,
            Position = UDim2.fromScale(l_props_0.Value, 0),
            AnchorPoint = l_ColorValueSlider_0.PositionIndicatorAnchor,
            Image = l_ColorValueSlider_0.PositionIndicatorImage,
            ImageColor3 = l_ColorValueSlider_0.White
        })
    });
end;
return (l_withContext_0({
    Analytics = l_Analytics_0,
    Stylizer = l_Stylizer_0
})(v7));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Stylizer_0 = v2.Style.Stylizer;
local v7 = v1.PureComponent:extend("HueSaturationPicker");
v7.init = function(v8)
    v8:setState({
        MouseDown = false
    });
    v8.onMouseDown = function(_)
        v8:setState({
            MouseDown = true
        });
    end;
    v8.onInputChanged = function(v10, v11)
        if v8.state.MouseDown and v11.UserInputType == Enum.UserInputType.MouseMovement then
            local v12 = (Vector2.new(v11.Position.X, v11.Position.Y) - v10.AbsolutePosition) / v10.AbsoluteSize;
            v8.props.OnHueSaturationChanged(v12.x, 1 - v12.y);
        end;
    end;
    v8.onInputEnded = function(v13, v14)
        if not (not (v14.UserInputType == Enum.UserInputType.MouseButton1) or not v8.state.MouseDown) then
            local v15 = (Vector2.new(v14.Position.X, v14.Position.Y) - v13.AbsolutePosition) / v13.AbsoluteSize;
            v15 = Vector2.new(math.clamp(v15.x, 0, 1), (math.clamp(v15.y, 0, 1)));
            v8:setState({
                MouseDown = false
            });
            v8.props.OnHueSaturationChanged(v15.x, 1 - v15.y);
        end;
    end;
end;
v7.render = function(v16)
    local l_props_0 = v16.props;
    local l_HueSaturationPicker_0 = l_props_0.Stylizer.HueSaturationPicker;
    return v1.createElement("ImageButton", {
        LayoutOrder = l_props_0.LayoutOrder,
        Size = l_HueSaturationPicker_0.Size,
        Image = l_HueSaturationPicker_0.GradientImage,
        BackgroundColor3 = l_HueSaturationPicker_0.Black,
        AutoButtonColor = false,
        ImageTransparency = 1 - l_props_0.Value,
        [v1.Event.MouseButton1Down] = v16.onMouseDown,
        [v1.Event.InputEnded] = v16.onInputEnded,
        [v1.Event.InputChanged] = v16.onInputChanged
    }, {
        PositionIndicator = v1.createElement("ImageLabel", {
            Size = l_HueSaturationPicker_0.PositionIndicatorSize,
            BackgroundTransparency = 1,
            Position = UDim2.fromScale(l_props_0.Hue, 1 - l_props_0.Saturation),
            AnchorPoint = l_HueSaturationPicker_0.PositionIndicatorAnchor,
            Image = l_HueSaturationPicker_0.PositionIndicatorImage,
            ImageColor3 = l_HueSaturationPicker_0.Black
        })
    });
end;
return (l_withContext_0({
    Analytics = l_Analytics_0,
    Stylizer = l_Stylizer_0
})(v7));


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Src.Types);
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.Framework);
local v4 = require(l_Parent_0.Packages.Emoji);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Stylizer_0 = v3.Style.Stylizer;
local l_UI_0 = v3.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Image_0 = l_UI_0.Image;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_prioritize_0 = v3.Util.prioritize;
local v14 = require(l_Parent_0.Src.FamFamFam);
local v15 = v2.PureComponent:extend("Icon");
v15.render = function(v16)
    local l_props_0 = v16.props;
    local l_Stylizer_1 = l_props_0.Stylizer;
    local v19 = nil;
    if l_props_0.Name then
        if not l_props_0.Name:find("^rbxassetid://") and not l_props_0.Name:find("^rbxasset://") then
            if not l_props_0.Name:find("emoji:") then
                local v20 = v14.Lookup(l_props_0.Name) or v14.Lookup("computer_error");
                v19 = v2.createElement(l_Image_0, {
                    Size = UDim2.fromScale(1, 1),
                    Image = v20.Image,
                    Style = {
                        ImageRectSize = v20.ImageRectSize - Vector2.new(0.5, 0.5),
                        ImageRectOffset = v20.ImageRectOffset + Vector2.new(0.25, 0.25)
                    }
                });
            else
                local _, v22 = l_props_0.Name:find("emoji:");
                local v23 = l_props_0.Name:sub(v22 + 1, -1);
                local v24 = v4.getNamedEmoji(v23);
                if v24 or v23:match("^[a-zA-Z%-_]+$") then
                    if not v24 then
                        v24 = "\226\157\140";
                    end;
                else
                    v24 = v23;
                end;
                v19 = v2.createElement(l_TextLabel_0, {
                    TextSize = l_Stylizer_1.TextSize,
                    Text = v24,
                    Size = l_Stylizer_1.Size
                });
            end;
        else
            v19 = v2.createElement(l_Image_0, {
                Size = UDim2.fromScale(1, 1),
                Image = l_props_0.Name,
                ImageColor3 = if not l_props_0.Name:find("^rbxasset://") then nil else l_Stylizer_1.IconColor
            });
        end;
    end;
    return v2.createElement(l_Pane_0, {
        HorizontalAlignment = Enum.HorizontalAlignment.Center,
        Layout = Enum.FillDirection.Horizontal,
        LayoutOrder = l_props_0.LayoutOrder,
        OnClick = l_props_0.OnClick,
        Padding = l_Stylizer_1.Padding,
        Position = l_props_0.Position,
        Size = l_prioritize_0(l_props_0.Size, l_Stylizer_1.Size),
        VerticalAlignment = Enum.VerticalAlignment.Center,
        [v2.Event.MouseEnter] = l_props_0.OnMouseEnter,
        [v2.Event.MouseLeave] = l_props_0.OnMouseLeave
    }, {
        ChildDecoration = v19
    });
end;
return (l_withContext_0({
    Analytics = l_Analytics_0,
    Stylizer = l_Stylizer_0
})(v15));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_UI_0 = v2.UI;
local l_Button_0 = l_UI_0.Button;
local l_Pane_0 = l_UI_0.Pane;
local l_TextInput_0 = l_UI_0.TextInput;
local v10 = require(l_Parent_0.Src.TagManager);
local v11 = v1.PureComponent:extend("CustomPage");
v11.init = function(v12)
    v12.state = {
        text = "",
        focused = false
    };
end;
local function v14(v13)
    if v13 ~= nil then
        if not string.match(v13, "^rbxassetid://[0-9]+$") then
            if string.match(v13, "^[0-9]+$") then
                return "rbxassetid://" .. v13;
            end;
        else
            return v13;
        end;
    end;
    return false;
end;
v11.render = function(v15)
    local l_props_0 = v15.props;
    local l_Localization_1 = l_props_0.Localization;
    return v1.createElement(l_Pane_0, {
        Size = l_props_0.Size,
        LayoutOrder = l_props_0.LayoutOrder
    }, {
        Input = v1.createElement(l_TextInput_0, {
            Size = UDim2.new(1, 0, 0, 40),
            Text = v15.state.text,
            PlaceholderText = l_Localization_1:getText("IconPicker", "EnterAnAssetID"),
            OnTextChanged = function(v18, _)
                v15:setState({
                    text = v18
                });
                local v20 = v18 ~= nil and if string.match(v18, "^rbxassetid://[0-9]+$") then v18 else if string.match(v18, "^[0-9]+$") then "rbxassetid://" .. v18 else false;
                if v20 then
                    v15.props.onHoverFunc(v20);
                end;
            end,
            OnValidateText = v14,
            OnFocusLost = function(_, _)
                local l_text_0 = v15.state.text;
                local v24 = l_text_0 ~= nil and if string.match(l_text_0, "^rbxassetid://[0-9]+$") then l_text_0 else if string.match(l_text_0, "^[0-9]+$") then "rbxassetid://" .. l_text_0 else false;
                if v24 then
                    v15:setState({
                        text = v24
                    });
                    v15.props.onHoverFunc(v24);
                end;
            end
        }),
        Submit = v1.createElement(l_Button_0, {
            Size = UDim2.fromOffset(100, 24),
            Position = UDim2.fromOffset(8, 50),
            Text = l_Localization_1:getText("General", "Save"),
            Style = "RoundPrimary",
            OnClick = function()
                local l_text_1 = v15.state.text;
                local v26 = l_text_1 ~= nil and if string.match(l_text_1, "^rbxassetid://[0-9]+$") then l_text_1 else if string.match(l_text_1, "^[0-9]+$") then "rbxassetid://" .. l_text_1 else false;
                if v26 then
                    v10.Get():SetIcon(v15.props.tagName, v26);
                    v15.props.closeFunc();
                end;
            end
        })
    });
end;
return (l_withContext_0({
    Localization = l_Localization_0
})(v11));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.Emoji);
local l_withContext_0 = v2.ContextServices.withContext;
local l_Stylizer_0 = v2.Style.Stylizer;
local l_UI_0 = v2.UI;
local l_Grid_0 = l_UI_0.Grid;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local v10 = require(l_Parent_0.Src.TagManager);
local v11 = {
    [2] = v3.getNamedEmoji("skin-tone-2"),
    [3] = v3.getNamedEmoji("skin-tone-3"),
    [4] = v3.getNamedEmoji("skin-tone-4"),
    [5] = v3.getNamedEmoji("skin-tone-5"),
    [6] = v3.getNamedEmoji("skin-tone-6")
};
local function v13(v12)
    return v1.createElement(l_Pane_0, {
        Size = v12.Size,
        LayoutOrder = v12.modifier or 0,
        Style = v12.currentMod == v12.modifier and "SubtleBorderBox" or "None",
        OnClick = function()
            v12.onSelect(v12.modifier);
        end,
        Layout = Enum.FillDirection.Horizontal
    }, {
        Text = v1.createElement(l_TextLabel_0, {
            Text = v11[v12.modifier] or v3.getNamedEmoji("large-yellow-square")
        })
    });
end;
local v14 = v1.PureComponent:extend("EmojiPage");
v14.init = function(v15)
    v15._enteredButton = nil;
    v15.state = {
        modifier = nil
    };
    v15._onSelect = function(v16)
        v15:setState({
            modifier = v16 or v1.None
        });
    end;
    v15.GetIconProps = function(v17, _, v19, v20)
        local l_props_0 = v15.props;
        return {
            Size = v20,
            Text = v17.text,
            BackgroundTransparency = 1,
            TextSize = 18,
            TextScaled = l_props_0.TextScaled,
            Position = v19,
            [v1.Event.MouseEnter] = function(v22)
                v15._enteredButton = v22;
                l_props_0.onHoverFunc(v17.name);
            end,
            [v1.Event.MouseLeave] = function(v23)
                if v15._enteredButton == v23 then
                    l_props_0.onHoverFunc(nil);
                    v15._enteredButton = nil;
                end;
            end,
            [v1.Event.MouseButton1Click] = function()
                v10.Get():SetIcon(l_props_0.tagName, v17.name);
                l_props_0.closeFunc();
            end
        };
    end;
end;
v14.render = function(v24)
    local l_props_1 = v24.props;
    local l_EmojiPage_0 = l_props_1.Stylizer.EmojiPage;
    local v27 = {};
    local v28 = v3.getCategories();
    local l_modifier_0 = v24.state.modifier;
    local v30 = 1;
    for v31 = 1, #v28 do
        for _, v33 in pairs(v28[v31].items) do
            if not (l_props_1.search and not v33.name:find(l_props_1.search)) then
                if (not l_modifier_0 or not v33.alts) or not v33.alts[l_modifier_0] then
                    v27[v30] = {
                        name = "emoji:" .. v33.name,
                        text = v33.base
                    };
                else
                    v27[v30] = {
                        name = "emoji:" .. v33.name .. l_modifier_0,
                        text = v33.alts[l_modifier_0]
                    };
                end;
                v30 = v30 + 1;
            end;
        end;
    end;
    local v34 = {
        [1] = v1.createElement(v13, {
            Size = l_EmojiPage_0.SkinToneModifierButtonSize,
            modifier = nil,
            currentMod = l_modifier_0,
            onSelect = v24._onSelect
        })
    };
    for v35, _ in pairs(v11) do
        v34[v35] = v1.createElement(v13, {
            Size = l_EmojiPage_0.SkinToneModifierButtonSize,
            modifier = v35,
            currentMod = l_modifier_0,
            onSelect = v24._onSelect
        });
    end;
    return v1.createElement(l_Pane_0, {
        Size = l_props_1.Size,
        LayoutOrder = l_props_1.LayoutOrder,
        Padding = l_EmojiPage_0.Padding
    }, {
        SkinToneModifierPane = v1.createElement(l_Pane_0, {
            Size = l_EmojiPage_0.SkinToneModifierPaneSize,
            Layout = Enum.FillDirection.Horizontal
        }, v34),
        Grid = v1.createElement(l_Grid_0, {
            Size = l_EmojiPage_0.GridSize,
            Position = l_EmojiPage_0.GridPosition,
            CellSize = l_EmojiPage_0.GridCellSize,
            Cells = v27,
            CellComponent = "TextButton",
            GetCellProps = v24.GetIconProps
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_Stylizer_0
})(v14));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_withContext_0 = v2.ContextServices.withContext;
local l_Stylizer_0 = v2.Style.Stylizer;
local l_Grid_0 = v2.UI.Grid;
local v6 = require(script.Parent.Parent.Parent.FamFamFam);
local v7 = require(l_Parent_0.Src.IconCategories);
local v8 = require(l_Parent_0.Src.TagManager);
local v9 = v1.PureComponent:extend("IconsPage");
v9.init = function(v10)
    v10._enteredButton = nil;
    v10.GetIconProps = function(v11, _, v13, v14)
        local v15 = v6.Lookup(v11);
        local l_props_0 = v10.props;
        return {
            ImageRectOffset = v15.ImageRectOffset,
            ImageRectSize = v15.ImageRectSize,
            Image = v15.Image,
            Position = v13,
            Size = v14,
            BackgroundTransparency = 1,
            ResampleMode = Enum.ResamplerMode.Pixelated,
            [v1.Event.MouseEnter] = function(v17)
                v10._enteredButton = v17;
                l_props_0.onHoverFunc(v11);
            end,
            [v1.Event.MouseLeave] = function(v18)
                if v10._enteredButton == v18 then
                    l_props_0.onHoverFunc(nil);
                    v10._enteredButton = nil;
                end;
            end,
            [v1.Event.MouseButton1Click] = function()
                v8.Get():SetIcon(l_props_0.tagName, v11);
                l_props_0.closeFunc();
            end
        };
    end;
end;
v9.render = function(v19)
    local l_props_1 = v19.props;
    local l_IconsPage_0 = l_props_1.Stylizer.IconsPage;
    local v22 = {};
    local v23 = 1;
    for _, v25 in pairs(v7) do
        for _, v27 in pairs(v25) do
            if not (l_props_1.search and not v27:find(l_props_1.search)) then
                v22[v23] = v27;
                v23 = v23 + 1;
            end;
        end;
    end;
    return v1.createElement(l_Grid_0, {
        Size = l_props_1.Size,
        LayoutOrder = l_props_1.LayoutOrder,
        CellSize = l_IconsPage_0.GridCellSize,
        CellPadding = l_IconsPage_0.GridCellPadding,
        Cells = v22,
        CellComponent = "ImageButton",
        GetCellProps = v19.GetIconProps
    });
end;
return (l_withContext_0({
    Stylizer = l_Stylizer_0
})(v9));


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Src.Types);
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = v4.Style.Stylizer;
local l_UI_0 = v4.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_SplitPane_0 = l_UI_0.SplitPane;
local l_KeyboardListener_0 = l_UI_0.KeyboardListener;
local l_LayoutOrderIterator_0 = v4.Util.LayoutOrderIterator;
local v15 = require(l_Parent_0.Src.Actions);
local v16 = require(script.Parent.ColorPicker);
local v17 = require(script.Parent.IconPicker);
local v18 = require(script.Parent.TagTopPane);
local v19 = require(script.Parent.TagSettingsPane);
local v20 = require(script.Parent.TagSettingsToggleButton);
local v21 = v2.PureComponent:extend("MainGui");
v21.init = function(v22)
    v22.onSizesChange = function(v23)
        v22:setState({
            sizes = v23
        });
    end;
end;
v21.render = function(v24)
    local l_props_0 = v24.props;
    local l_MainGui_0 = l_props_0.Stylizer.MainGui;
    local v27 = l_LayoutOrderIterator_0.new();
    local v28 = false;
    local v29 = false;
    local v30 = false;
    local v31 = false;
    if l_props_0.iconPicker and l_props_0.iconPicker ~= "" then
        v28 = true;
    elseif l_props_0.colorPicker and l_props_0.colorPicker ~= "" then
        v29 = true;
    elseif l_props_0.minimizedSettingsPane or not l_props_0.tagMenu then
        v31 = true;
    else
        v30 = true;
    end;
    return v2.createElement(l_Pane_0, {
        Style = "Box",
        Layout = Enum.FillDirection.Vertical,
        VerticalAlignment = Enum.VerticalAlignment.Top
    }, {
        KeyboardListener = v2.createElement(l_KeyboardListener_0, {
            OnKeyPressed = function(_, v33)
                local v34 = v33[Enum.KeyCode.Down];
                local v35 = v33[Enum.KeyCode.Up];
                local v36 = v33[Enum.KeyCode.Return];
                local v37 = v33[Enum.KeyCode.Escape];
                if not v35 and not v34 then
                    if not v36 then
                        if v37 then
                            l_props_0.setAssigningGroup("");
                        end;
                        return ;
                    elseif l_props_0.tagMenu and l_props_0.tagMenu ~= "" then
                        l_props_0.setRenaming(l_props_0.tagMenu, true);
                        return ;
                    else
                        l_props_0.setRenamingGroup(l_props_0.groupMenu, true);
                        return ;
                    end;
                else
                    l_props_0.moveTagSelectionUpOrDown(v34);
                    return ;
                end;
            end
        }),
        IconPicker = v28 and v2.createElement(v17),
        ColorPicker = v29 and v2.createElement(v16),
        SplitPane = v30 and v2.createElement(l_SplitPane_0, {
            LayoutOrder = v27:getNextOrder(),
            ClampSize = true,
            UseScale = true,
            Layout = Enum.FillDirection.Vertical,
            Sizes = v24.state.sizes,
            MinSizes = l_MainGui_0.SplitPaneMinsizes,
            OnSizesChange = v24.onSizesChange,
            BarStyle = "WStyle"
        }, {
            v2.createElement(v18),
            v2.createElement(v19)
        }),
        SoloTopPane = v31 and v2.createElement(l_Pane_0, {
            LayoutOrder = v27:getNextOrder(),
            Size = l_MainGui_0.SoloTopPaneSize
        }, {
            TopPane = v2.createElement(v18)
        }),
        ShowTagSettingsButton = v31 and v2.createElement(v20, {
            LayoutOrder = v27:getNextOrder()
        })
    });
end;
v21.didMount = function(v38)
    v38:setState({
        sizes = v38.props.Stylizer.MainGui.SplitPaneInitialSizes
    });
end;
return v3.connect(function(v39, _)
    return {
        colorPicker = v39.ColorPicker,
        iconPicker = v39.IconPicker,
        minimizedSettingsPane = v39.MinimizedSettingsPane,
        tagMenu = v39.TagMenu,
        groupMenu = v39.GroupMenu
    };
end, function(v41)
    return {
        moveTagSelectionUpOrDown = function(v42)
            v41(v15.MoveTagSelectionUpOrDown(v42));
        end,
        setRenaming = function(v43, v44)
            v41(v15.SetRenaming(v43, v44));
        end,
        setRenamingGroup = function(v45, v46)
            v41(v15.SetRenamingGroup(v45, v46));
        end,
        setAssigningGroup = function(v47)
            v41(v15.SetAssigningGroup(v47));
        end
    };
end)((l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v21)));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_UI_0 = v3.UI;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_Pane_0 = l_UI_0.Pane;
local l_DEPRECATED_TextInput_0 = l_UI_0.DEPRECATED_TextInput;
local l_Image_0 = l_UI_0.Image;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = v3.Util.LayoutOrderIterator;
local v12 = require(l_Parent_0.Src.Actions);
local v13 = require(l_Parent_0.Src.TagManager);
local v14 = v1.Component:extend("NewTagTextInput");
v14.init = function(v15)
    v15.textBoxRef = v1.createRef();
    v15.state = {
        enteredText = "",
        editing = false,
        hovered = false
    };
    v15.onTextChanged = function(v16)
        v15.enteredText = v16;
    end;
    v15.beginEditing = function()
        v15:setState({
            editing = true
        });
        if v15.textBoxRef.current then
            v15.textBoxRef.current:CaptureFocus();
        end;
    end;
    v15.endEditing = function(v17)
        local l_props_0 = v15.props;
        if v17 then
            v13.Get():AddTag(v15.enteredText);
            l_props_0.openTagMenu(nil);
        end;
        v15:setState({
            editing = false,
            enteredText = ""
        });
    end;
end;
v14.render = function(v19)
    local l_props_1 = v19.props;
    local l_NewTagTextInput_0 = l_props_1.Stylizer.NewTagTextInput;
    local l_Localization_0 = l_props_1.Localization;
    local v23 = l_LayoutOrderIterator_0.new();
    local v24 = l_props_1.WidthOffset or 0;
    local v25 = nil;
    if not (not v19.state.hovered or v19.state.editing) then
        v25 = "ButtonHover";
    end;
    return v1.createElement(l_Pane_0, {
        Size = if not v19.state.editing then UDim2.new(1, -v24, 0, l_NewTagTextInput_0.Height) else l_NewTagTextInput_0.EditingSize,
        LayoutOrder = l_props_1.LayoutOrder
    }, {
        HoverArea = v1.createElement(l_HoverArea_0, {
            Cursor = "PointingHand",
            MouseEnter = function()
                v19:setState({
                    hovered = true
                });
            end,
            MouseLeave = function()
                v19:setState({
                    hovered = false
                });
            end
        }),
        Pane = v1.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            OnClick = v19.beginEditing,
            Spacing = l_NewTagTextInput_0.Spacing,
            ClipsDescendants = true,
            Style = v25
        }, {
            AddIcon = v1.createElement(l_Image_0, {
                LayoutOrder = v23:getNextOrder(),
                Size = l_NewTagTextInput_0.IconSize,
                Image = "rbxasset://textures/TagEditor/Insert.png",
                ImageColor3 = if not v19.state.hovered then l_NewTagTextInput_0.IconColor else l_NewTagTextInput_0.IconColorHover
            }),
            TextLabel = not v19.state.editing and v1.createElement(l_TextLabel_0, {
                Size = l_NewTagTextInput_0.TextInputSize,
                Style = not v19.state.hovered and "ButtonText" or "ButtonTextHover",
                LayoutOrder = v23:getNextOrder(),
                Text = l_Localization_0:getText("Info", "CreateNewTag"),
                TextXAlignment = Enum.TextXAlignment.Left
            }),
            TextInput = v19.state.editing and v1.createElement(l_DEPRECATED_TextInput_0, {
                Size = l_NewTagTextInput_0.TextInputSize,
                LayoutOrder = v23:getNextOrder(),
                ShouldFocus = true,
                ForwardRef = v19.textBoxRef,
                PlaceholderText = l_Localization_0:getText("Info", "CreateNewTag"),
                OnTextChanged = v19.onTextChanged,
                OnFocusLost = v19.endEditing
            })
        })
    });
end;
return v2.connect(function(_, _)
    return {};
end, function(v28)
    return {
        openTagMenu = function(v29)
            v28(v12.OpenTagMenu(v29));
        end
    };
end)((l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v14)));


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Src.Types);
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = v4.Style.Stylizer;
local v10 = require(l_Parent_0.Src.Actions);
local v11 = require(l_Parent_0.Src.TagManager);
local l_UI_0 = v4.UI;
local l_Checkbox_0 = l_UI_0.Checkbox;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_IconButton_0 = l_UI_0.IconButton;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_LayoutOrderIterator_0 = v4.Util.LayoutOrderIterator;
local v20 = require(script.Parent.Icon);
local v21 = require(script.Parent.TagRenameTextInput);
local v22 = v2.PureComponent:extend("TagListRow");
v22.init = function(v23)
    v23.onPress = function()
        local l_props_0 = v23.props;
        local v25 = l_props_0.GroupName and l_props_0.GroupName ~= "";
        local v26 = not l_props_0.Disabled;
        if not v25 then
            if l_props_0.tagMenu ~= nil and l_props_0.tagMenu == l_props_0.TagName then
                l_props_0.setRenaming(l_props_0.TagName, l_props_0.renamingTag ~= l_props_0.TagName);
            end;
        elseif (v26 and l_props_0.groupMenu ~= nil) and l_props_0.groupMenu == l_props_0.GroupName then
            l_props_0.setRenamingGroup(l_props_0.GroupName, l_props_0.renamingGroup ~= l_props_0.GroupName);
            return ;
        end;
    end;
    v23.onClick = function()
        local l_props_1 = v23.props;
        local v28 = l_props_1.GroupName and l_props_1.GroupName ~= "";
        local v29 = not l_props_1.Disabled;
        if not v28 then
            if not (l_props_1.tagMenu ~= nil) or l_props_1.tagMenu ~= l_props_1.TagName then
                l_props_1.openTagMenu(l_props_1.TagName);
            end;
        elseif v29 and (not (l_props_1.groupMenu ~= nil) or l_props_1.groupMenu ~= l_props_1.GroupName) then
            l_props_1.openGroupMenu(l_props_1.GroupName);
            return ;
        end;
    end;
    v23.toggleGroupMembership = function()
        local l_props_2 = v23.props;
        v11.Get():SetGroup(l_props_2.TagName, if not (l_props_2.TagGroup == l_props_2.assigningGroup) then l_props_2.assigningGroup else "");
    end;
    v23.toggleAssignment = function()
        local l_props_3 = v23.props;
        v11.Get():SetTag(l_props_3.TagName, not l_props_3.IsTagAssignedToAll);
    end;
    v23.toggleVisible = function()
        local l_props_4 = v23.props;
        if l_props_4.GroupName and l_props_4.GroupName ~= "" then
            v11.Get():ToggleGroupVisibility(v23.props.GroupName);
            return ;
        else
            v11.Get():SetVisible(l_props_4.TagName, not l_props_4.IsVisibleToggled);
            return ;
        end;
    end;
    v23.toggleGroup = function()
        local l_props_5 = v23.props;
        l_props_5.ToggleGroup(l_props_5.GroupName);
    end;
    v23.editGroupMembership = function()
        local l_props_6 = v23.props;
        local v35 = l_props_6.GroupName == l_props_6.assigningGroup;
        if not v35 then
            l_props_6.openGroupMenu(l_props_6.GroupName);
        end;
        l_props_6.setAssigningGroup(if not v35 then l_props_6.GroupName else "");
    end;
end;
v22.render = function(v36)
    local l_props_7 = v36.props;
    local l_Localization_1 = l_props_7.Localization;
    local l_TagListRow_0 = l_props_7.Stylizer.TagListRow;
    local v40 = l_LayoutOrderIterator_0.new();
    local l_VisibleIcon_0 = l_props_7.Stylizer.VisibleIcon;
    local l_VisibleOffIcon_0 = l_props_7.Stylizer.VisibleOffIcon;
    local v43 = l_props_7.GroupName and l_props_7.GroupName ~= "";
    local v44 = not l_props_7.Disabled;
    local v45 = false;
    if l_props_7.assigningGroup ~= nil then
        v45 = l_props_7.assigningGroup ~= "";
    end;
    local v46 = l_props_7.TagGroup == l_props_7.assigningGroup;
    local v47 = l_props_7.GroupName == l_props_7.assigningGroup;
    local v48 = v45 and not v47;
    local v49 = not v43;
    local v50 = not v43;
    local v51 = v43 and not v48;
    local v52 = not v45;
    local v53 = false;
    if l_props_7.renamingGroup ~= nil and l_props_7.renamingGroup == l_props_7.GroupName then
        v53 = true;
    elseif l_props_7.renamingTag ~= nil and l_props_7.renamingTag == l_props_7.TagName then
        v53 = true;
    end;
    local v54 = if not v46 then l_Localization_1:getText("Tooltip", "AssignToGroup") else l_Localization_1:getText("Tooltip", "UnassignFromGroup");
    local v55 = if not l_props_7.IsTagAssignedToAll then l_Localization_1:getText("Tooltip", "ApplyTag") else l_Localization_1:getText("Tooltip", "RemoveTag");
    local v56 = nil;
    local _ = false;
    if not if not v43 then l_props_7.tagMenu == l_props_7.TagName else l_props_7.groupMenu == l_props_7.GroupName then
        if v36.state.hovered then
            v56 = "PaneHover";
        end;
    else
        v56 = "SelectedTag";
    end;
    local v58 = v56 or "None";
    return v2.createElement(l_Pane_0, {
        LayoutOrder = l_props_7.LayoutOrder,
        Size = l_TagListRow_0.Size
    }, {
        HoverArea = v2.createElement(l_HoverArea_0, {
            Cursor = "PointingHand",
            MouseEnter = function()
                v36:setState({
                    hovered = true
                });
            end,
            MouseLeave = function()
                v36:setState({
                    hovered = false
                });
            end
        }),
        RootPane = v2.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            Spacing = l_TagListRow_0.Spacing,
            Padding = if v43 or l_props_7.TagGroup == "" then l_TagListRow_0.PaddingUnindented else l_TagListRow_0.PaddingIndented,
            Style = v56,
            OnPress = v36.onPress,
            OnClick = v36.onClick
        }, {
            ArrowImage = v43 and v2.createElement(l_IconButton_0, {
                BackgroundStyle = v58,
                LeftIcon = if not l_props_7.IsGroupCollapsed then l_TagListRow_0.OpenArrowImage else l_TagListRow_0.ClosedArrowImage,
                OnClick = v36.toggleGroup,
                LayoutOrder = v40:getNextOrder()
            }),
            CheckboxPane = v49 and v2.createElement(l_Pane_0, {
                LayoutOrder = v40:getNextOrder(),
                Size = l_TagListRow_0.CheckboxSize,
                Layout = Enum.FillDirection.Horizontal
            }, {
                ToggleGroupMembershipButton = v45 and v2.createElement(l_IconButton_0, {
                    BackgroundStyle = v58,
                    LeftIcon = if not v46 then l_TagListRow_0.AssignIcon else l_TagListRow_0.UnassignIcon,
                    OnClick = v36.toggleGroupMembership,
                    IconColor = if not v46 then l_TagListRow_0.AssignIconColor else l_TagListRow_0.UnassignIconColor,
                    TooltipText = v54
                }),
                Checkbox = not v45 and v2.createElement(l_Checkbox_0, {
                    Checked = if not l_props_7.IsTagAssignedToSome then l_props_7.IsTagAssignedToAll else l_Checkbox_0.Indeterminate,
                    OnClick = v36.toggleAssignment
                }, {
                    Tooltip = v2.createElement(l_Tooltip_0, {
                        Text = v55
                    })
                })
            }),
            TagImage = v50 and v2.createElement(v20, {
                Name = l_props_7.TagIcon,
                OnClick = v36.OnButtonClicked,
                LayoutOrder = v40:getNextOrder()
            }),
            NameText = not v53 and v2.createElement(l_TextLabel_0, {
                LayoutOrder = v40:getNextOrder(),
                Text = if not v43 then l_props_7.TagName else l_props_7.GroupName,
                Size = if not v43 then l_TagListRow_0.TextSize else l_TagListRow_0.GroupTextSize,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextTruncate = Enum.TextTruncate.AtEnd
            }),
            RenameTextInput = v53 and v2.createElement(v21, {
                LayoutOrder = v40:getNextOrder(),
                Size = if not v43 then l_TagListRow_0.TextSize else l_TagListRow_0.GroupTextSize
            }),
            EditGroupMembership = v51 and v2.createElement(l_IconButton_0, {
                BackgroundStyle = v58,
                LeftIcon = if not v44 or v48 then nil else if v47 then l_TagListRow_0.StopAssigningIcon else l_TagListRow_0.EditAssignmentsIcon,
                OnClick = v36.editGroupMembership,
                LayoutOrder = v40:getNextOrder(),
                TooltipText = if not v47 then l_Localization_1:getText("Tooltip", "StartGroupAssignment") else l_Localization_1:getText("Tooltip", "EndGroupAssignment")
            }),
            VisibleToggleButton = v52 and v2.createElement(l_IconButton_0, {
                BackgroundStyle = v58,
                LeftIcon = if not l_props_7.IsVisibleToggled then l_VisibleOffIcon_0 else l_VisibleIcon_0,
                OnClick = v36.toggleVisible,
                LayoutOrder = v40:getNextOrder(),
                TooltipText = l_Localization_1:getText("Tooltip", "ToggleVisibility")
            })
        })
    });
end;
return v3.connect(function(v59, _)
    return {
        assigningGroup = v59.AssigningGroup,
        groupMenu = v59.GroupMenu,
        renamingGroup = v59.RenamingGroup,
        tagMenu = v59.TagMenu,
        renamingTag = v59.RenamingTag
    };
end, function(v61)
    return {
        openTagMenu = function(v62)
            v61(v10.OpenTagMenu(v62));
        end,
        setRenaming = function(v63, v64)
            v61(v10.SetRenaming(v63, v64));
        end,
        setAssigningGroup = function(v65)
            v61(v10.SetAssigningGroup(v65));
        end,
        setRenamingGroup = function(v66, v67)
            v61(v10.SetRenamingGroup(v66, v67));
        end,
        openGroupMenu = function(v68)
            v61(v10.OpenGroupMenu(v68));
        end
    };
end)((l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v22)));


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Src.Types);
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = v4.Style.Stylizer;
local v10 = require(l_Parent_0.Src.TagManager);
local l_UI_0 = v4.UI;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_IconButton_0 = l_UI_0.IconButton;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = v4.Util.LayoutOrderIterator;
local v17 = v2.PureComponent:extend("TagListUnknownRow");
v17.init = function(v18)
    v18.onRegister = function()
        local l_props_0 = v18.props;
        local v20 = false;
        if l_props_0.assigningGroup ~= nil then
            v20 = l_props_0.assigningGroup ~= "";
        end;
        v10.Get():AddTag(l_props_0.TagName);
        if v20 then
            v10.Get():SetGroup(l_props_0.TagName, l_props_0.assigningGroup);
        end;
    end;
end;
v17.render = function(v21)
    local l_props_1 = v21.props;
    local l_Localization_1 = l_props_1.Localization;
    local l_TagListUnknownRow_0 = l_props_1.Stylizer.TagListUnknownRow;
    local v25 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        LayoutOrder = l_props_1.LayoutOrder,
        Size = l_TagListUnknownRow_0.Size,
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        Spacing = l_TagListUnknownRow_0.Spacing,
        Padding = l_TagListUnknownRow_0.PaddingIndented
    }, {
        CheckboxPane = v2.createElement(l_Pane_0, {
            LayoutOrder = v25:getNextOrder(),
            Size = l_TagListUnknownRow_0.CheckboxSize
        }, {
            RegisterGroupButton = v2.createElement(l_IconButton_0, {
                BackgroundStyle = "None",
                LeftIcon = l_TagListUnknownRow_0.AssignIcon,
                OnClick = v21.onRegister,
                IconColor = l_TagListUnknownRow_0.AssignIconColor,
                TooltipText = l_Localization_1:getText("Tooltip", "RegisterTag")
            }),
            HoverArea = v2.createElement(l_HoverArea_0, {
                Cursor = "PointingHand"
            })
        }),
        NameText = v2.createElement(l_TextLabel_0, {
            LayoutOrder = v25:getNextOrder(),
            Text = l_props_1.TagName,
            Size = l_TagListUnknownRow_0.TextSize,
            TextXAlignment = Enum.TextXAlignment.Left
        })
    });
end;
return v3.connect(function(v26, _)
    return {
        assigningGroup = v26.AssigningGroup
    };
end, function(_)
    return {};
end)((l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v17)));


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Src.Types);
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Framework);
local v5 = require(l_Parent_0.Packages.Dash);
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = v4.Style.Stylizer;
local l_ScrollingFrame_0 = v4.UI.ScrollingFrame;
local v12 = require(l_Parent_0.Src.Actions);
local v13 = require(script.Parent.TagListRow);
local v14 = require(script.Parent.TagListUnknownRow);
local v15 = v2.PureComponent:extend("TagListView");
v15.init = function(v16)
    v16.toggleGroup = function(v17)
        local v18 = "Hide" .. v17;
        v16.setCollapseState(v18, not v16.props.uiGroupCollapseState[v18]);
    end;
    v16.toggleUnknownGroup = function()
        v16.setCollapseState("UnknownTagsHide", not v16.props.uiGroupCollapseState.UnknownTagsHide);
    end;
    v16.setCollapseState = function(v19, v20)
        local l_props_0 = v16.props;
        l_props_0.setUIGroupCollapseState(v5.join(l_props_0.uiGroupCollapseState, {
            [v19] = v20
        }));
    end;
end;
v15.render = function(v22)
    local l_props_1 = v22.props;
    local l_Localization_1 = l_props_1.Localization;
    local l_TagListView_0 = l_props_1.Stylizer.TagListView;
    local l_tags_0 = l_props_1.tags;
    local l_unknownTags_0 = l_props_1.unknownTags;
    local v28 = {};
    local v29 = "";
    local v30 = 0;
    local v31 = 0;
    while v30 < #l_tags_0 do
        v30 = v30 + 1;
        local v32 = l_tags_0[v30];
        local v33 = v32.Group or "";
        local v34 = v32.Name or "";
        if v33 ~= v29 then
            v31 = v31 + 1;
            v29 = v33;
            v28[v31] = v2.createElement(v13, {
                LayoutOrder = v31,
                GroupName = v33,
                IsGroupCollapsed = l_props_1.uiGroupCollapseState["Hide" .. v33],
                IsVisibleToggled = true,
                ToggleGroup = v22.toggleGroup
            });
        end;
        if not l_props_1.uiGroupCollapseState["Hide" .. v33] then
            v31 = v31 + 1;
            v28[v31] = v2.createElement(v13, {
                LayoutOrder = v31,
                TagName = v34,
                TagGroup = v33,
                TagIcon = v32.Icon,
                IsTagAssignedToSome = v32.HasSome,
                IsTagAssignedToAll = v32.HasAll,
                IsVisibleToggled = v32.Visible
            });
        end;
    end;
    v30 = 0;
    if #l_unknownTags_0 > 0 then
        v31 = v31 + 1;
        v28[v31] = v2.createElement(v13, {
            LayoutOrder = v31,
            GroupName = l_Localization_1:getText("Groups", "UnknownTags"),
            Disabled = true,
            IsGroupCollapsed = l_props_1.uiGroupCollapseState.UnknownTagsHide,
            ToggleGroup = v22.toggleUnknownGroup
        });
    end;
    while v30 < #l_unknownTags_0 do
        v30 = v30 + 1;
        local v35 = l_unknownTags_0[v30];
        if not l_props_1.uiGroupCollapseState.UnknownTagsHide then
            v31 = v31 + 1;
            v28[v31] = v2.createElement(v14, {
                LayoutOrder = v31,
                TagName = v35
            });
        end;
    end;
    return v2.createElement(l_ScrollingFrame_0, {
        LayoutOrder = l_props_1.LayoutOrder,
        AutomaticCanvasSize = Enum.AutomaticSize.Y,
        Size = l_TagListView_0.Size,
        Layout = Enum.FillDirection.Vertical,
        Spacing = l_TagListView_0.Spacing
    }, v28);
end;
return v3.connect(function(v36, _)
    local v38 = {};
    for _, v40 in pairs(v36.TagData) do
        if not v36.Search or v40.Name:lower():find(v36.Search:lower(), 1, true) then
            v38[#v38 + 1] = v40;
        end;
    end;
    local v41 = {};
    for _, v43 in pairs(v36.UnknownTags) do
        if not v36.Search or v43:lower():find(v36.Search:lower(), 1, true) then
            v41[#v41 + 1] = v43;
        end;
    end;
    return {
        tags = v38,
        searchTerm = v36.Search,
        uiGroupCollapseState = v36.UIGroupCollapseState,
        unknownTags = v41
    };
end, function(v44)
    return {
        setUIGroupCollapseState = function(v45)
            v44(v12.SetUIGroupCollapseState(v45));
        end
    };
end)((l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v15)));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local l_DEPRECATED_TextInput_0 = require(l_Parent_0.Packages.Framework).UI.DEPRECATED_TextInput;
local v4 = require(l_Parent_0.Src.Actions);
local v5 = require(l_Parent_0.Src.TagManager);
local v6 = v1.Component:extend("TagRenameTextInput");
v6.init = function(v7)
    v7.textBoxRef = v1.createRef();
    v7.enteredText = "";
    v7.onTextChanged = function(v8)
        v7.enteredText = v8;
    end;
    v7.onFocusLost = function(v9)
        local l_props_0 = v7.props;
        local l_tagMenu_0 = l_props_0.tagMenu;
        local l_groupMenu_0 = l_props_0.groupMenu;
        local v13 = false;
        if l_groupMenu_0 ~= nil then
            v13 = l_groupMenu_0 ~= "";
        end;
        local l_enteredText_0 = v7.enteredText;
        string.gsub(l_enteredText_0, "^%s+", "");
        if not v13 then
            if v9 and l_enteredText_0 ~= "" then
                v5.Get():Rename(l_tagMenu_0, l_enteredText_0);
                l_props_0.openTagMenu(l_enteredText_0);
            end;
            l_props_0.setRenaming(l_tagMenu_0, false);
            return ;
        else
            if v9 and l_enteredText_0 ~= "" then
                v5.Get():RenameGroup(l_groupMenu_0, l_enteredText_0);
                l_props_0.openGroupMenu(l_enteredText_0);
            end;
            l_props_0.setRenamingGroup(l_groupMenu_0, false);
            return ;
        end;
    end;
end;
v6.render = function(v15)
    local l_props_1 = v15.props;
    local l_tagMenu_1 = l_props_1.tagMenu;
    local l_groupMenu_1 = l_props_1.groupMenu;
    local v19 = false;
    if l_groupMenu_1 ~= nil then
        v19 = l_groupMenu_1 ~= "";
    end;
    return v1.createElement(l_DEPRECATED_TextInput_0, {
        Size = l_props_1.Size,
        Style = "FilledRoundedBorder",
        LayoutOrder = l_props_1.LayoutOrder,
        ShouldFocus = true,
        ForwardRef = v15.textBoxRef,
        PlaceholderText = if not v19 then l_tagMenu_1 else l_groupMenu_1,
        OnTextChanged = v15.onTextChanged,
        OnFocusLost = v15.onFocusLost
    });
end;
v6.didMount = function(v20)
    v20.textBoxRef.current:CaptureFocus();
end;
return v2.connect(function(v21, _)
    return {
        tagMenu = v21.TagMenu,
        groupMenu = v21.GroupMenu
    };
end, function(v23)
    return {
        openTagMenu = function(v24)
            v23(v4.OpenTagMenu(v24));
        end,
        openGroupMenu = function(v25)
            v23(v4.OpenGroupMenu(v25));
        end,
        setRenaming = function(v26, v27)
            v23(v4.SetRenaming(v26, v27));
        end,
        setRenamingGroup = function(v28, v29)
            v23(v4.SetRenaming(v28, v29));
        end
    };
end)(v6);


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Src.Types);
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = v3.Style.Stylizer;
local l_UI_0 = v3.UI;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_LayoutOrderIterator_0 = v3.Util.LayoutOrderIterator;
local v15 = v2.PureComponent:extend("TagSettingRow");
v15.init = function(v16)
    v16.state = {
        hovered = false
    };
end;
v15.render = function(v17)
    local l_props_0 = v17.props;
    local l_TagSettingRow_0 = l_props_0.Stylizer.TagSettingRow;
    local v20 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Size = l_TagSettingRow_0.Size,
        LayoutOrder = l_props_0.LayoutOrder
    }, {
        v2.createElement(l_Pane_0, {
            Size = l_TagSettingRow_0.Size,
            Layout = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            Spacing = l_TagSettingRow_0.Spacing,
            OnClick = l_props_0.OnClick,
            Style = v17.state.hovered and "PaneHover"
        }, {
            RowText = v2.createElement(l_TextLabel_0, {
                Size = UDim2.new(1, l_TagSettingRow_0.TextSize.X.Offset - l_props_0.ControlSize.X.Offset, 0, l_TagSettingRow_0.TextSize.Y.Offset),
                Style = not v17.state.hovered and "ButtonText" or "ButtonTextHover",
                LayoutOrder = v20:getNextOrder(),
                Text = l_props_0.Text,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextTruncate = Enum.TextTruncate.AtEnd
            }, {
                Tooltip = v2.createElement(l_Tooltip_0, {
                    Text = l_props_0.TooltipText,
                    Priority = 1
                })
            }),
            ControlPane = v2.createElement(l_Pane_0, {
                LayoutOrder = v20:getNextOrder(),
                Size = l_props_0.ControlSize
            }, {
                Control = l_props_0.Control and v2.createElement(l_props_0.Control)
            })
        }),
        v2.createElement(l_HoverArea_0, {
            Cursor = l_props_0.OnClick ~= nil and "PointingHand" or "Arrow",
            MouseEnter = function()
                v17:setState({
                    hovered = true
                });
            end,
            MouseLeave = function()
                v17:setState({
                    hovered = false
                });
            end
        })
    });
end;
return (l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v15));