local l_ReplicatedStorage_0 = game:GetService("ReplicatedStorage");
local l_ChangeHistoryService_0 = game:GetService("ChangeHistoryService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v3 = require(l_Parent_0.Packages.React);
local v4 = require(l_Parent_0.Packages.RoactRodux);
local v5 = require(l_Parent_0.Packages.Framework);
local v6 = v5.SharedFlags.getFFlagDevFrameworkBetterInit();
local l_ContextServices_0 = v5.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Actions_0 = l_Parent_0.Src.Actions;
local v10 = require(l_Actions_0.Window.SelectItem);
local v11 = require(l_Actions_0.Window.SetItemsExpanded);
local v12 = require(l_Actions_0.Window.SetSearch);
local l_Thunks_0 = l_Parent_0.Src.Thunks;
local v14 = require(l_Thunks_0.ContextMenu.ShowDesignSheetMenu);
local v15 = require(l_Thunks_0.ContextMenu.ShowNilDesignSheetMenu);
local v16 = require(l_Thunks_0.ContextMenu.ShowNewStyleRuleMenu);
local v17 = require(l_Thunks_0.ContextMenu.ShowStyleRuleMenu);
local v18 = require(l_Thunks_0.ContextMenu.ShowStyleSheetMenu);
local v19 = require(l_Thunks_0.ContextMenu.ShowThemeCategoryMenu);
local v20 = require(l_Thunks_0.ContextMenu.ShowThemeFolderMenu);
local v21 = require(l_Thunks_0.ContextMenu.ShowThemeOtherMenu);
local v22 = require(l_Thunks_0.ContextMenu.ShowTokenCategoryMenu);
local v23 = require(l_Thunks_0.ContextMenu.ShowUiElementsMenu);
local l_UI_0 = v5.UI;
local l_Pane_0 = l_UI_0.Pane;
local v26 = if not v6 then v5.StudioUI.SearchBar else l_UI_0.SearchBar;
local l_SplitPane_0 = l_UI_0.SplitPane;
local l_TreeTable_0 = l_UI_0.TreeTable;
local v29 = require(l_Parent_0.Src.Util.DesignHelpers);
local v30 = require(l_Parent_0.Src.Util.TreeTableHelpers);
local v31 = require(l_Parent_0.Src.Util.mapDispatchToProps);
local v32 = require(l_Parent_0.Src.Components.DesignSheetView);
local v33 = require(l_Parent_0.Src.Components.StyleRuleView);
local v34 = require(l_Parent_0.Src.Components.StyleSheetView);
local v35 = require(l_Parent_0.Src.Components.ThemesView);
local v36 = require(l_Parent_0.Src.Util.isEmptyTable);
local v37 = require(l_Parent_0.Src.Util.recordChange)(l_ChangeHistoryService_0);
local _ = require(l_Parent_0.Src.Types);
local _ = require(l_Parent_0.Src.Reducers.RootReducer);
local _ = require(l_Parent_0.Src.Util.StyleSchema);
local v41 = require(l_Parent_0.Packages.Dash);
local l_copy_0 = v41.copy;
local l_collectArray_0 = v41.collectArray;
local l_join_0 = v41.join;
local l_mapOne_0 = v41.mapOne;
local l_shallowEqual_0 = v41.shallowEqual;
local v47 = require(l_Parent_0.Src.Resources.PluginStyles);
local l_v47_Attribute_0 = v47:GetAttribute("BorderSize");
local l_v47_Attribute_1 = v47:GetAttribute("PaddingSm");
local l_v47_Attribute_2 = v47:GetAttribute("SearchBarHeight");
local v51 = require(script.buildTree);
local v52 = {
    {
        Name = "Name",
        Key = "Name",
        Width = UDim.new(1, 0)
    }
};
local v55 = l_TreeTable_0.EditTree.new({
    getChildren = function(v53)
        return v53.Children or {};
    end,
    getId = function(v54)
        return v54.Id;
    end
});
local v56 = v3.PureComponent:extend("MainPage");
v56.init = function(v57)
    v57.state = {
        DesignSheet = nil,
        PaneSizes = {
            UDim.new(0, 200),
            UDim.new(1, -200)
        },
        SearchTerm = "",
        table = {
            Columns = l_copy_0(v52),
            Expansion = {},
            Selection = {},
            Items = {}
        }
    };
    v57.onAction = function(v58, v59)
        local l_props_0 = v57.props;
        if v58 == "Menu" then
            local v61 = v55:getChild(v57.state.table.Items, v59);
            local l_Value_0 = v61.Name.Value;
            local function v63()
                v57.onDoubleClick(v59);
            end;
            if not v61.Instance then
                local v64 = v55:getParent(v57.state.table.Items, v61);
                if l_Value_0 == "UI Elements" then
                    l_props_0.dispatch(v23(v64.Instance));
                    return ;
                elseif l_Value_0 == "Design" then
                    l_props_0.dispatch(v15());
                    return ;
                elseif l_Value_0 == "Themes" then
                    l_props_0.dispatch(v19());
                    return ;
                elseif l_Value_0 == "Tokens" then
                    l_props_0.dispatch(v22());
                    return ;
                elseif not v64.Instance or not v64.Instance:IsA("StyleSheet") then
                    l_props_0.dispatch(v21());
                elseif v61.Name.Value == "Tags" then
                    l_props_0.dispatch(v16(v64.Instance, ".Tag"));
                    return ;
                else
                    l_props_0.dispatch(v16(v64.Instance, "#Name"));
                    return ;
                end;
            elseif not v61.Instance:IsA("StyleRule") then
                if v61.Instance == v57.props.DesignSheet then
                    l_props_0.dispatch(v14(v57.props.DesignSheet, v63));
                    return ;
                elseif not v61.Instance:IsA("StyleSheet") then
                    if v61.Instance:IsA("Folder") then
                        l_props_0.dispatch(v20(v61.Instance, v63));
                        return ;
                    end;
                else
                    l_props_0.dispatch(v18(v61.Instance, v63));
                    return ;
                end;
            else
                l_props_0.dispatch(v17(v61.Instance, v63, true));
                return ;
            end;
        end;
    end;
    v57.onRightClick = function()
    end;
    v57.onSearch = function(v65)
        v57.props.dispatch(v12(v65));
    end;
    v57.onPaneSizesChanged = function(v66)
        v57:setState({
            PaneSizes = v66
        });
    end;
    v57.adaptor = v55:getStateAdaptor(v57, "table");
    v57.tableCallbacks = v55:getCallbacks(v57.adaptor);
    v57.selectItem = function(v67)
        v57.props.dispatch(v10(v67));
    end;
    v57.onCellPressed = function(v68)
        v57.selectItem(v55:getChild(v57.state.table.Items, v68).Id);
    end;
    v57.onDoubleClick = function(v69)
        v57.adaptor(function(v70)
            local v71 = v55:getChild(v70.Items, v69);
            if v71 and v71.Instance then
                return (v55:updateCell(v70, {
                    Schema = l_join_0(v71.Name.Schema, {
                        Editing = true
                    }),
                    Value = if not v71.Instance:IsA("StyleRule") then v71.Instance.Name else v71.Instance.Selector
                }, v69, 1));
            else
                return nil;
            end;
        end);
    end;
    v57.onEdited = function(v72, v73)
        v57.adaptor(function(v74)
            local v75 = v55:getChild(v74.Items, v73);
            local v76 = {
                Schema = l_join_0(v75.Name.Schema, {
                    Editing = false
                }),
                Value = v72
            };
            local l_Instance_0 = v75.Instance;
            if l_Instance_0 then
                if l_Instance_0 then
                    if l_Instance_0.Name ~= v72 then
                        v37({
                            Name = "StyleEditor.EditInstanceName",
                            DisplayName = "Style Editor - Edit Instance Name",
                            DoChange = function()
                                l_Instance_0.Name = v72;
                                if l_Instance_0:IsA("StyleRule") then
                                    l_Instance_0.Selector = v72;
                                    v76.ErrorMessage = l_Instance_0.SelectorError;
                                end;
                                return Enum.FinishRecordingOperation.Commit;
                            end
                        });
                    elseif not (not (l_Instance_0:IsA("StyleSheet") and l_Instance_0:GetAttribute("StyleCategory") == "Designs") or l_Instance_0.Name:match("StyleSheet")) then
                        v76.Value = v72 .. " StyleSheet";
                    end;
                end;
            else
                warn("Edited row does not have a valid Instance associated");
            end;
            return v55:updateCell(v74, v76, v73, 1);
        end);
    end;
    v57.tableCallbacks.OnExpansionChange = function(v78)
        v57.props.dispatch(v11(v78));
    end;
    v57.tableCallbacks.OnSelectionChange = function(v79)
        local v82 = l_mapOne_0(v79, function(_, v81)
            return v81;
        end);
        if v82 then
            v57.selectItem(v82);
        end;
    end;
end;
v56.applySearch = function(v83, v84)
    return v55:updatePaths((l_collectArray_0(v83, function(_, v86)
        local v87 = l_copy_0(v86);
        v87.Children = v56.applySearch(v87.Children, v84);
        local l_status_0, l_result_0 = pcall(function()
            local v88 = true;
            if #v87.Children <= 0 then
                v88 = v87.Name.Value:lower():match(v84:lower());
            end;
            return v88;
        end);
        if not l_status_0 or not l_result_0 then
            return nil;
        else
            return v87;
        end;
    end)));
end;
v56.getDerivedStateFromProps = function(v91, v92)
    local l_Expansion_0 = v92.table.Expansion;
    local l_Items_0 = v92.table.Items;
    local l_Selection_0 = v92.table.Selection;
    local v96 = false;
    if v91.SearchTerm ~= v92.SearchTerm then
        v96 = v91.SearchTerm == "";
    end;
    if not ((not (v91.IsDirty or v96) and v91.DesignSheet == v92.DesignSheet) and not v36(v92.table.Items)) then
        l_Items_0 = v55:updatePaths((v51({
            l_ReplicatedStorage_0
        }, v91.DesignSheet)));
    end;
    return l_join_0(v92, {
        DesignSheet = v91.DesignSheet,
        SearchTerm = v91.SearchTerm,
        table = l_join_0(v92.table, {
            Items = l_Items_0,
            Expansion = l_Expansion_0,
            Selection = l_Selection_0
        })
    });
end;
v56.render = function(v97)
    local l_props_1 = v97.props;
    local l_state_0 = v97.state;
    local l_Items_1 = l_state_0.table.Items;
    local v101 = if not l_props_1.SelectedItemId then nil else v55:findItemById(l_Items_1, l_props_1.SelectedItemId);
    local l_ExpandedItems_0 = l_props_1.ExpandedItems;
    if v101 then
        l_ExpandedItems_0 = l_join_0(l_ExpandedItems_0, (v55:expandAncestors(l_Items_1, v101.Path)));
    end;
    if l_props_1.SearchTerm and #l_props_1.SearchTerm > 0 then
        l_Items_1 = v56.applySearch(l_Items_1, l_props_1.SearchTerm);
        v55:expandAll(l_Items_1, l_ExpandedItems_0);
    end;
    local v103 = v3.createElement(l_Pane_0, {
        [v3.Tag] = "X-ColumnS"
    }, {
        SearchInput = v3.createElement(v26, {
            LayoutOrder = 1,
            OnTextChanged = v97.onSearch,
            PlaceholderText = l_props_1.Localization:getText("Control", "SearchPlaceholder"),
            ShowSearchIcon = true,
            ShowSearchButton = false,
            Width = l_state_0.PaneSizes[1],
            [v3.Tag] = "SearchInput"
        }),
        LeftItems = v3.createElement(l_TreeTable_0, l_join_0({
            Columns = l_state_0.table.Columns,
            ClampSize = true,
            Expansion = l_ExpandedItems_0,
            FullSpanEmphasis = true,
            GetItemId = v30.getTableRowId,
            GetChildren = v30.getRowChildren,
            OnCellAction = v97.onAction,
            OnCellEdited = v97.onEdited,
            OnCellDoubleClick = v97.onDoubleClick,
            OnCellPressed = v97.onCellPressed,
            LayoutOrder = 2,
            RightClick = v97.onRightClick,
            RootItems = l_Items_1,
            RowHeight = 32,
            Scroll = true,
            ScrollProps = {
                VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar
            },
            Selection = if not l_props_1.SelectedItemId then {} else {
                [l_props_1.SelectedItemId] = true
            },
            ShowHeader = false,
            Size = UDim2.new(1, 0, 1, -((l_v47_Attribute_2 + l_v47_Attribute_1) + 2 * l_v47_Attribute_0)),
            UseScale = true,
            [v3.Tag] = "LeftItems"
        }, v97.tableCallbacks))
    });
    local v104 = nil;
    if v101 then
        local l_Instance_1 = v101.Instance;
        if not l_shallowEqual_0(v101.Path, v29.PATHS.DESIGN) then
            if not l_Instance_1 or not l_Instance_1:IsA("StyleRule") then
                if not l_Instance_1 or not l_Instance_1:IsA("StyleSheet") then
                    if not (not (v101.Name.Value ~= "Themes") or not v29.isUnderPath(v101.Path, v29.PATHS.THEMES)) then
                        v104 = v3.createElement(v35, {
                            RootItem = v101
                        });
                    end;
                else
                    v104 = v3.createElement(v34, {
                        StyleSheet = v101.Instance
                    });
                end;
            else
                v104 = v3.createElement(v33, {
                    StyleRule = v101.Instance
                });
            end;
        else
            v104 = v3.createElement(v32);
        end;
    end;
    return v3.createElement(l_Pane_0, {}, {
        Divider = v3.createElement(l_SplitPane_0, {
            ClampSize = true,
            UseDeficit = true,
            MinSizes = {
                UDim.new(0, 100),
                UDim.new(0, 100)
            },
            OnSizesChange = v97.onPaneSizesChanged,
            Sizes = l_state_0.PaneSizes
        }, {
            v103,
            v104
        })
    });
end;
v56 = l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Plugin = l_ContextServices_0.Plugin
})(v56);
return v4.connect(function(v106)
    return {
        DesignSheet = v106.Window.DesignSheet,
        IsDirty = v106.Window.IsDirty,
        SearchTerm = v106.Window.SearchTerm,
        SelectedItemId = v106.Window.SelectedItemId,
        ExpandedItems = v106.Window.ExpandedItems
    };
end, v31)(v56);


local l_ChangeHistoryService_0 = game:GetService("ChangeHistoryService");
local l_GuiService_0 = game:GetService("GuiService");
local l_ReplicatedStorage_0 = game:GetService("ReplicatedStorage");
local l_Parent_0 = script.Parent.Parent.Parent;
local v4 = require(l_Parent_0.Packages.React);
local l_useEffect_0 = v4.useEffect;
local l_UI_0 = require(l_Parent_0.Packages.Framework).UI;
local l_DropShadow_0 = l_UI_0.DropShadow;
local l_IconButton_0 = l_UI_0.IconButton;
local l_Image_0 = l_UI_0.Image;
local l_LinkText_0 = l_UI_0.LinkText;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local _ = require(l_Parent_0.Src.Reducers.RootReducer);
local v14 = require(l_Parent_0.Src.Util.createBlankSystem);
local v15 = require(l_Parent_0.Src.Util.recordChange)(l_ChangeHistoryService_0);
local v16 = require(l_Parent_0.Src.Resources.ModernIcons);
local v17 = require(l_Parent_0.Src.Resources.Telemetry.OnboardingLearnLinkClickedEvent);
local l_Actions_0 = l_Parent_0.Src.Actions;
local v19 = require(l_Actions_0.Window.SetRootRoute);
local v20 = require(l_Actions_0.Window.SetDesignSheet);
local v21 = require(l_Parent_0.Src.Thunks.Telemetry.SendTelemetryEvent);
local v22 = require(l_Parent_0.Src.Hooks.useFrameworkContext);
local v23 = require(l_Parent_0.Src.Hooks.useDispatch);
return function()
    local v24 = v23();
    local l_Localization_0 = v22().Localization;
    local function v26()
        v24(v19("Main"));
    end;
    local function v28()
        local v27 = nil;
        v15({
            Name = "StyleEditor.CreateDesignSystem",
            DisplayName = "Style Editor - Create Design",
            DoChange = function()
                v27 = v14();
                v27.Parent = l_ReplicatedStorage_0;
                return Enum.FinishRecordingOperation.Commit;
            end
        });
        v24(v20(v27.Design));
        v24(v19("Main"));
    end;
    local function v29()
        l_GuiService_0:OpenBrowserWindow("https://devforum.roblox.com/");
        v24(v21(v17()));
    end;
    l_useEffect_0(function()
        for _, v31 in l_ReplicatedStorage_0:GetDescendants() do
            if v31:IsA("StyleSheet") and v31:GetAttribute("StyleCategory") == "Designs" then
                v24(v20(v31));
                v24(v19("Main"));
                break;
            end;
        end;
        local v33 = l_ReplicatedStorage_0.DescendantAdded:Connect(function(v32)
            if v32:IsA("StyleSheet") then
                v24(v19("Main"));
            end;
        end);
        return function()
            if v33 then
                v33:Disconnect();
            end;
        end;
    end, {});
    return v4.createElement(l_DropShadow_0, {
        AutomaticSize = Enum.AutomaticSize.XY,
        Size = UDim2.fromScale(0, 0)
    }, {
        Column = v4.createElement(l_Pane_0, {
            [v4.Tag] = "OnboardingPage X-ColumnM X-Fit X-PadL"
        }, {
            CloseContainer = v4.createElement(l_Pane_0, {
                LayoutOrder = 1,
                [v4.Tag] = "X-FitY"
            }, {
                Close = v4.createElement(l_IconButton_0, {
                    Cursor = "PointingHand",
                    LeftIcon = {
                        Image = v16.close(),
                        [v4.Tag] = "Icon22"
                    },
                    OnClick = v26,
                    [v4.Tag] = "Compact IconOnly PositionRight"
                })
            }),
            StylingImage = v4.createElement(l_Image_0, {
                Image = v16.onboarding(),
                LayoutOrder = 2
            }),
            Title = v4.createElement(l_TextLabel_0, {
                LayoutOrder = 3,
                Text = l_Localization_0:getText("Onboarding", "Title"),
                [v4.Tag] = "Subtitle X-Fit"
            }),
            Description = v4.createElement(l_TextLabel_0, {
                LayoutOrder = 4,
                Text = l_Localization_0:getText("Onboarding", "Description"),
                [v4.Tag] = "TextXAlignLeft X-FitY"
            }),
            ButtonContainer = v4.createElement(l_Pane_0, {
                LayoutOrder = 5
            }, {
                Link = v4.createElement(l_LinkText_0, {
                    OnClick = v29,
                    Text = l_Localization_0:getText("Onboarding", "LearnMore")
                }),
                BlankButton = v4.createElement(l_IconButton_0, {
                    Cursor = "PointingHand",
                    OnClick = v28,
                    Text = l_Localization_0:getText("Onboarding", "CreateDesign"),
                    [v4.Tag] = "PositionRight PrimaryBrand"
                })
            })
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_TreeTable_0 = require(l_Parent_0.Packages.Framework).UI.TreeTable;
local v2 = require(l_Parent_0.Packages.Dash);
local l_append_0 = v2.append;
local l_collectArray_0 = v2.collectArray;
local l_join_0 = v2.join;
local l_keys_0 = v2.keys;
local l_map_0 = v2.map;
local v8 = require(l_Parent_0.Src.Util.MenuHelpers);
local v9 = require(l_Parent_0.Src.Util.SelectorHelpers);
local v10 = require(l_Parent_0.Src.Util.StyleSchema);
local v11 = require(l_Parent_0.Src.Util.Styling);
local v12 = require(l_Parent_0.Src.Util.TokenHelpers);
local v13 = require(l_Parent_0.Src.Util.TreeTableHelpers);
local _ = require(l_Parent_0.Src.Types);
local v17 = {
    Columns = {
        {
            Name = "Name",
            Key = "Name",
            Width = UDim.new(0.5, 0)
        },
        {
            Name = "Value",
            Key = "Value",
            Width = UDim.new(0.5, 0)
        }
    },
    NAME_COLUMN_INDEX = 1,
    VALUE_COLUMN_INDEX = 2,
    getItemChildren = function(v15)
        return v15.Children or {};
    end,
    getItemId = function(v16)
        return v16.Id;
    end
};
local v18 = l_TreeTable_0.EditTree.new({
    getChildren = v17.getItemChildren,
    getId = v17.getItemId
});
v17.EditTree = v18;
v17._buildStyleRule = function(v19)
    local v20 = v13.createItemId(v19);
    return {
        Id = v20,
        Name = {
            ErrorMessage = v19.SelectorError,
            FullSpan = true,
            Actions = v8.FullSpanMoreAction,
            Schema = v10.SelectorSchema,
            Value = v19.Selector
        },
        Instance = v19,
        Children = l_append_0(v17._buildProperties(v20, v19), (l_map_0(v19:GetStyleRules(), function(v21)
            return v17._buildStyleRule(v21);
        end)))
    };
end;
v17._buildEmptyRow = function(v22, v23)
    return {
        Id = v13.createItemId(v22, "@Empty"),
        Name = {
            Schema = l_join_0(v10.PropertyNameSchema, {
                StyleRuleInfo = v23
            }),
            Value = ""
        },
        Value = {
            Actions = v8.MoreAction,
            Schema = {
                Type = "Empty"
            },
            Value = ""
        },
        Children = {}
    };
end;
v17._buildProperties = function(v24, v25)
    local v26 = v9.findFirstClassSelector(v25);
    local l_v25_Properties_0 = v25:GetProperties();
    local v28 = l_keys_0(l_v25_Properties_0);
    local v29 = v11.getStyleInfo(v25);
    table.sort(v28);
    local v36 = l_collectArray_0(v28, function(_, v31)
        local v32 = l_v25_Properties_0[v31];
        local v33 = nil;
        local v34 = v12.parseAttributeName(v32) ~= nil;
        if v26 and v26 ~= "" then
            v33 = v10.getPropertySchema(v31, v26);
        else
            if not (not (v32 ~= nil) or v34) then
                v33 = v10.PropertySchemas[typeof(v32)];
            end;
            if not v33 then
                v33 = v10.getPropertySchema(v31, "");
            end;
        end;
        if not v33 then
            if v31 == "" then
                return nil;
            else
                v33 = v10.TextSchema;
            end;
        end;
        if v34 then
            v33 = l_join_0(v10.TokenReferenceSchema, {
                Instance = v25,
                ExpectedTypes = v10.getPossiblePropertyTypes(v31)
            });
        end;
        local v35 = v13.createItemId(v25, v31);
        return {
            Id = v35,
            Name = {
                Schema = l_join_0(v10.PropertyNameSchema, {
                    StyleRuleInfo = v29
                }),
                Value = v31
            },
            Value = {
                Actions = v8.MoreAction,
                Schema = v33,
                Value = if not v33.Validate(v32) then v33.GetDefaultValue() else v32
            },
            Children = if not not v33.Validate(v32) and v33.GetChildren then v33.GetChildren(v32, v35) else {}
        };
    end);
    table.insert(v36, v17._buildEmptyRow(v24, v29));
    return v36;
end;
v17.buildItems = function(v37)
    return v18:updatePaths({
        (v17._buildStyleRule(v37))
    });
end;
v17.expandNewRows = function(v38, v39)
    if not v38 or #v38 == 0 then
        return ;
    else
        for _, v41 in ipairs(v38) do
            if not (not (v39[v41.Id] ~= false) or not v41.Name.FullSpan) then
                v39[v41.Id] = true;
            end;
            v17.expandNewRows(v41.Children, v39);
        end;
        return ;
    end;
end;
return v17;


local l_ChangeHistoryService_0 = game:GetService("ChangeHistoryService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.React);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Dash);
local l_copy_0 = v4.copy;
local l_join_0 = v4.join;
local l_joinDeep_0 = v4.joinDeep;
local v8 = require(l_Parent_0.Packages.Framework);
local l_TreeTable_0 = v8.UI.TreeTable;
local l_ContextServices_0 = v8.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local _ = require(l_Parent_0.Src.Types);
local _ = require(l_Parent_0.Src.Reducers.Clipboard);
local _ = require(l_Parent_0.Src.Reducers.RootReducer);
local l_Actions_0 = l_Parent_0.Src.Actions;
local v16 = require(l_Actions_0.Clipboard.CopyPropertyToClipboard);
local v17 = require(l_Actions_0.Window.SelectItem);
local l_Thunks_0 = l_Parent_0.Src.Thunks;
local v19 = require(l_Thunks_0.Change.RenameStyleRuleProperty);
local v20 = require(l_Thunks_0.Change.SetStyleRuleProperty);
local v21 = require(l_Thunks_0.Change.SetStyleRulePropertyType);
local v22 = require(l_Thunks_0.Change.SetStyleRuleSelector);
local v23 = require(l_Thunks_0.ContextMenu.ShowStyleRuleMenu);
local v24 = require(l_Thunks_0.Change.UnlinkStyleRulePropertyTokenReference);
local v25 = require(l_Parent_0.Src.Util.mapDispatchToProps);
local v26 = require(l_Parent_0.Src.Util.DesignHelpers);
local v27 = require(l_Parent_0.Src.Util.MenuHelpers);
local v28 = require(l_Parent_0.Src.Resources.ModernIcons);
local v29 = require(l_Parent_0.Src.Util.StyleSchema);
local v30 = require(l_Parent_0.Src.Util.SelectorHelpers);
local v31 = require(l_Parent_0.Src.Util.TokenHelpers);
local v32 = require(l_Parent_0.Src.Renderers);
local v33 = require(l_Parent_0.Src.Util.bind);
local v34 = require(l_Parent_0.Src.Util.recordChange)(l_ChangeHistoryService_0);
local v35 = require(l_Parent_0.Src.Util.TreeTableHelpers);
local v36 = require(l_Parent_0.Src.Contexts.Telemetry.TelemetryContext);
local v37 = require(script.Tree);
local l_EditTree_0 = v37.EditTree;
local v39 = v2.PureComponent:extend("SelectorPropertyTable");
v39.init = function(v40)
    v40.state = {
        rootInstance = nil,
        table = {
            Columns = l_copy_0(v37.Columns),
            Expansion = {},
            Selection = {},
            Items = {}
        }
    };
    local v41 = l_EditTree_0:getStateAdaptor(v40, "table");
    v40.tableCallbacks = l_EditTree_0:getCallbacks(v41);
    v40.onDoubleClick = function(v42)
        v41(function(v43)
            if l_EditTree_0:getChild(v43.Items, v42) then
                return l_EditTree_0:updateCell(v43, {
                    Schema = l_join_0(v29.SelectorSchema, {
                        Editing = true
                    })
                }, v42, 1);
            else
                return nil;
            end;
        end);
    end;
    v40.canPasteProperty = function()
        return v40.props.ClipboardProperty ~= nil;
    end;
    v40.canPasteSelector = function()
        return v40.props.ClipboardInstance ~= nil;
    end;
    v40.selectRow = function(v44, v45)
        v41(function(v46)
            local l_Expansion_0 = v46.Expansion;
            if v45 and v46.Selection[v44] == true then
                l_Expansion_0 = l_join_0(v46.Expansion, {
                    [v44] = not v46.Expansion[v44]
                });
            end;
            return l_join_0(v46, {
                Selection = {
                    [v44] = true
                },
                Expansion = l_Expansion_0
            });
        end);
    end;
    v40.onRightClickRow = function(v48)
        local l_item_0 = v48.item;
        v40.selectRow(l_item_0.Id, false);
        v40.showContextMenu(l_item_0);
    end;
    v40.showEmptyRowContextMenu = function(v50)
        local l_props_0 = v40.props;
        local v52 = {
            Id = "EmptyRowMenu",
            Children = {
                {
                    Id = "PasteProperty",
                    Text = l_props_0.Localization:getText("ContextMenu", "Paste"),
                    Icon = v28.paste(),
                    Enabled = v40.canPasteProperty(),
                    OnItemClicked = v33(v40.menuActions.pasteProperty, {
                        v50
                    })
                }
            }
        };
        local v53 = l_props_0.Plugin:get();
        v27.trackClicks(v52, (l_props_0.Telemetry:get()));
        v27.showContextMenu(v53, v52);
    end;
    v40.showPropertyRowContextMenu = function(v54)
        local l_props_1 = v40.props;
        local l_Localization_0 = l_props_1.Localization;
        local v57 = v54.Value.Schema.Type == v29.TokenReferenceSchema.Type;
        local v58 = v30.getSelectorChain(l_props_1.RootInstance);
        local v59 = not not v58 and v58.Class ~= "";
        local v60 = v26.isTheme((v31.getTokenSourceStyleSheet(l_props_1.RootInstance, v54.Value.Value)));
        local v61 = if not v57 then {
            Id = "LinkToken",
            Text = l_Localization_0:getText("ContextMenu", "LinkToken"),
            Icon = v28.Standard.TokenSheet(),
            OnItemClicked = v33(v40.menuActions.linkToken, {
                v54
            })
        } else {
            Id = "UnlinkToken",
            Text = l_Localization_0:getText("ContextMenu", "UnlinkToken"),
            Icon = v28.Standard.TokenSheet(),
            OnItemClicked = v33(v40.menuActions.unlinkToken, {
                v54
            })
        };
        local v62 = v29.getPossiblePropertyTypes(v54.Name.Value);
        local v63 = {
            Id = "PropertyRowMenu",
            Children = {
                v61,
                {
                    Id = "ViewTheme",
                    Text = l_Localization_0:getText("ContextMenu", not v60 and "ViewToken" or "ViewTheme"),
                    Icon = v28.open(),
                    Hidden = not v57,
                    OnItemClicked = v33(v40.menuActions.viewTheme, {
                        v54
                    })
                },
                {
                    Id = "ChangeType",
                    Text = l_Localization_0:getText("ContextMenu", "ChangeType"),
                    Hidden = v59 or #v62 <= 1,
                    Children = v27.getAttributeTypeActions(v62, v33(v40.menuActions.changePropertyType, {
                        v54
                    }))
                },
                {
                    Id = "Copy",
                    Text = l_Localization_0:getText("ContextMenu", "Copy"),
                    Icon = v28.copy(),
                    OnItemClicked = v33(v40.menuActions.copyProperty, {
                        v54
                    })
                },
                {
                    Id = "Paste",
                    Text = l_Localization_0:getText("ContextMenu", "Paste"),
                    Icon = v28.paste(),
                    Enabled = v40.canPasteProperty(),
                    OnItemClicked = v33(v40.menuActions.pasteProperty, {
                        v54
                    })
                },
                {
                    Id = "Delete",
                    Text = l_Localization_0:getText("ContextMenu", "Delete"),
                    Icon = v28.delete(),
                    OnItemClicked = v33(v40.menuActions.deleteProperty, {
                        v54
                    })
                }
            }
        };
        local v64 = l_props_1.Plugin:get();
        v27.trackClicks(v63, (l_props_1.Telemetry:get()));
        v27.showContextMenu(v64, v63);
    end;
    v40.showContextMenu = function(v65)
        local l_props_2 = v40.props;
        if typeof(v65.Instance) == "Instance" then
            l_props_2.dispatch(v23(v65.Instance, v40.menuActions.rename, false));
            return ;
        elseif v65.Value and v65.Value.Schema then
            if v65.Value.Schema.Type == "Empty" then
                v40.showEmptyRowContextMenu(v65);
                return ;
            else
                v40.showPropertyRowContextMenu(v65);
                return ;
            end;
        else
            return ;
        end;
    end;
    v40.onEdited = function(v67, v68, v69)
        local l_props_3 = v40.props;
        local l_state_0 = v40.state;
        local v72 = l_EditTree_0:getChild(l_state_0.table.Items, v68);
        if v72 then
            if not v72.Name.FullSpan then
                local l_Value_0 = v72.Name.Value;
                local v74 = l_EditTree_0:getParent(l_state_0.table.Items, v72);
                local l_Instance_0 = v74.Instance;
                if typeof(v72.SetParentValue) == "function" then
                    v67 = v72.SetParentValue(v67);
                    l_Value_0 = v74.Name.Value;
                    l_Instance_0 = l_EditTree_0:getParent(l_state_0.table.Items, v74).Instance;
                end;
                if l_Instance_0 then
                    if v69 == v37.NAME_COLUMN_INDEX then
                        l_props_3.dispatch(v19(l_Instance_0, l_Value_0, v67));
                        return ;
                    else
                        if v69 == v37.VALUE_COLUMN_INDEX then
                            l_props_3.dispatch(v20(l_Instance_0, l_Value_0, v67));
                        end;
                        return ;
                    end;
                else
                    warn("Table row without valid StyleRule reference:", v74);
                    return ;
                end;
            elseif v72.Instance then
                assert(v72.Instance ~= nil, "expecting valid instance");
                local l_v67_0 = v67;
                l_props_3.dispatch(v22(v72.Instance, l_v67_0));
                if l_v67_0 == v72.Name.Value then
                    v41(function(v77)
                        return l_EditTree_0:updateCell(v77, {
                            Schema = l_join_0(v29.SelectorSchema, {
                                Editing = false
                            })
                        }, v68, 1);
                    end);
                end;
                return ;
            else
                warn("Table row without valid StyleRule reference:", v72);
                return ;
            end;
        else
            return ;
        end;
    end;
    v40.tableCallbacks.OnSelectionChange = function(v78)
        local v79 = v35.getOneSelectedItem(v78);
        if v79 then
            v40.selectRow(v79, true);
        end;
    end;
    v40.onSizeChange = function(_, v81)
        local v82 = math.min(250, 0.4 * v81);
        local v83 = UDim.new(0, v82);
        local v84 = UDim.new(1, -v82);
        v40:setState(function(v85)
            return {
                table = l_joinDeep_0(v85.table, {
                    Columns = {
                        {
                            Width = v83
                        },
                        {
                            Width = v84
                        }
                    }
                })
            };
        end);
    end;
    v40.menuActions = {
        linkToken = function(v86, _)
            v40.props.dispatch(v21(l_EditTree_0:getParent(v40.state.table.Items, v86).Instance, v86.Name.Value, "TokenReference"));
        end,
        unlinkToken = function(v88, _)
            v40.props.dispatch(v24(l_EditTree_0:getParent(v40.state.table.Items, v88).Instance, v88.Name.Value));
        end,
        changePropertyType = function(v90, v91)
            local l_props_4 = v40.props;
            local v93 = if not v91.Data then nil else v91.Data.Type;
            if v93 then
                l_props_4.dispatch(v21(l_EditTree_0:getParent(v40.state.table.Items, v90).Instance, v90.Name.Value, v93));
                return ;
            else
                warn("Cannot change to nil type");
                return ;
            end;
        end,
        copyProperty = function(v94, _)
            v40.props.dispatch(v16(v94.Name.Value, v94.Value.Value));
        end,
        pasteProperty = function(v96, _)
            local l_state_1 = v40.state;
            local l_props_5 = v40.props;
            if l_props_5.ClipboardProperty then
                assert(l_props_5.ClipboardProperty, "ClipboardProperty cannot be nil");
                local v100 = l_EditTree_0:getParent(l_state_1.table.Items, v96);
                if v100 and v100.Instance then
                    v34({
                        Name = "StyleEditor.PasteProperty",
                        DisplayName = "StyleEditor - Paste Property",
                        DoChange = function()
                            v100.Instance:SetProperty(l_props_5.ClipboardProperty.Name, l_props_5.ClipboardProperty.Value);
                            return Enum.FinishRecordingOperation.Commit;
                        end
                    });
                    return ;
                else
                    return ;
                end;
            else
                return ;
            end;
        end,
        deleteProperty = function(v101, _)
            local v103 = l_EditTree_0:getParent(v40.state.table.Items, v101);
            if v103 and v103.Instance then
                v34({
                    Name = "StyleEditor.DeleteProperty",
                    DisplayName = "Style Editor - Delete Property",
                    DoChange = function()
                        v103.Instance:SetProperty(v101.Name.Value, nil);
                        return Enum.FinishRecordingOperation.Commit;
                    end
                });
                return ;
            else
                return ;
            end;
        end,
        viewTheme = function(v104, _)
            local l_props_6 = v40.props;
            local v107 = v31.getTokenSourceStyleSheet(v40.props.RootInstance, v104.Value.Value);
            if v107 then
                l_props_6.dispatch(v17((v35.createItemId(v107))));
            end;
        end,
        rename = function(v108, _)
            v40.onDoubleClick(v108.Path);
        end
    };
    v40.onAction = function(v110, v111, _)
        if v110 == "Menu" then
            v40.showContextMenu((l_EditTree_0:getChild(v40.state.table.Items, v111)));
        end;
    end;
    v40.onPropertyPressed = function(v113, _)
        v40.selectRow(l_EditTree_0:getChild(v40.state.table.Items, v113).Id, false);
    end;
end;
v39.getDerivedStateFromProps = function(v115, v116)
    local l_RootInstance_0 = v115.RootInstance;
    if l_RootInstance_0 == v116.rootInstance and not v115.IsDirty then
        return v116;
    else
        local v118 = v37.buildItems(l_RootInstance_0);
        local v119 = {};
        local v120 = {};
        if l_RootInstance_0 == v116.rootInstance then
            v120 = l_copy_0(v116.table.Expansion);
            v119 = l_copy_0(v116.table.Selection);
        end;
        v37.expandNewRows(v118, v120);
        return l_join_0(v116, {
            rootInstance = l_RootInstance_0,
            table = l_join_0(v116.table, {
                Expansion = v120,
                Selection = v119,
                Items = v118
            })
        });
    end;
end;
v39.render = function(v121)
    local l_state_2 = v121.state;
    return v2.createElement(l_TreeTable_0, (l_join_0({
        Columns = l_state_2.table.Columns,
        ClampSize = true,
        Expansion = l_state_2.table.Expansion,
        FullSpanEmphasis = true,
        GetChildren = v37.getItemChildren,
        GetItemId = v37.getItemId,
        LayoutOrder = 2,
        OnCellAction = v121.onAction,
        OnCellEdited = v121.onEdited,
        OnCellDoubleClick = v121.onDoubleClick,
        OnSizeChange = v121.onSizeChange,
        Renderers = v32,
        RightClick = v121.onRightClickRow,
        RootItems = l_state_2.table.Items,
        RowHeight = 32,
        Selection = l_state_2.table.Selection,
        Scroll = true,
        ScrollProps = {
            VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar
        },
        ShowHeader = false,
        UseScale = true
    }, v121.tableCallbacks)));
end;
return v3.connect(function(v123)
    return {
        IsDirty = v123.Window.IsDirty,
        ClipboardInstance = v123.Clipboard.Instance,
        ClipboardProperty = v123.Clipboard.Property
    };
end, v25)((l_withContext_0({
    Plugin = l_ContextServices_0.Plugin,
    Localization = l_ContextServices_0.Localization,
    Telemetry = v36
})(v39)));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
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 _ = require(l_Parent_0.Src.Types);
local l_ExpandablePane_0 = v2.UI.ExpandablePane;
local l_joinTags_0 = v2.Styling.joinTags;
local v9 = require(l_Parent_0.Src.Resources.ModernIcons).gridpattern();
local v10 = v1.PureComponent:extend("StyleRulePreview");
v10.getPredictedPreviewHeight = function(v11, v12, _, v14)
    local v15 = false;
    local v16 = v11.X.Scale ~= 0 and 0 or v14.X;
    local v17 = v11.Y.Scale ~= 0 and 0 or v14.Y;
    local v18 = (v11.Y.Scale * v12.Y + v11.Y.Offset) + 2 * v17;
    v15 = v12.Y < v18;
    if v15 then
        v18 = v12.Y;
    end;
    return v18, Vector2.new(v16, v17), v15;
end;
v10.init = function(v19)
    v19.state = {
        padding = Vector2.new(10, 10),
        maxSize = Vector2.new(math.huge, math.huge),
        minSize = Vector2.zero,
        isOverflowing = false
    };
    v19.containerRef = v1.createRef();
end;
v10.updatePreview = function(v20)
    local l_props_0 = v20.props;
    local l_state_0 = v20.state;
    local l_current_0 = v20.containerRef.current;
    if l_current_0 then
        if l_props_0.PreviewInstance then
            l_props_0.PreviewInstance.Parent = l_current_0;
            local l_StyleLink_0 = Instance.new("StyleLink");
            l_StyleLink_0.Parent = l_props_0.PreviewInstance;
            l_StyleLink_0.StyleSheet = l_props_0.StyleRule:FindFirstAncestorWhichIsA("StyleSheet");
        end;
        if l_state_0.overrideSize == nil then
            l_current_0:ResetPropertyToDefault("Size");
        end;
        return ;
    else
        return ;
    end;
end;
v10.didMount = function(v25)
    v25:updatePreview();
end;
v10.didUpdate = function(v26, v27, _)
    if not (not (v27.PreviewInstance ~= v26.props.PreviewInstance) or not v27.PreviewInstance) then
        v27.PreviewInstance:Remove();
    end;
    if v26.props.Expanded then
        v26:updatePreview();
    end;
end;
v10.getDerivedStateFromProps = function(v29, v30)
    if not v29.PreviewInstance then
        return v30;
    else
        local l_MaxSize_0 = v29.MaxSize;
        local l_zero_0 = Vector2.zero;
        local _, v34, v35 = v10.getPredictedPreviewHeight(v29.PreviewInstance.Size, l_MaxSize_0, l_zero_0, (Vector2.new(10, 10)));
        return {
            padding = v34,
            maxSize = l_MaxSize_0,
            minSize = l_zero_0,
            isOverflowing = v35,
            overrideSize = if not v35 then v1.None else UDim2.new(1, 0, 0, l_MaxSize_0.Y)
        };
    end;
end;
v10.render = function(v36)
    local l_Localization_1 = v36.props.Localization;
    if not v36.props.PreviewInstance then
        return v1.None;
    else
        return (v1.createElement(l_ExpandablePane_0, {
            Text = l_Localization_1:getText("Control", "Preview"),
            Expanded = v36.props.Expanded,
            OnExpandedChanged = v36.props.OnExpandedChanged,
            LayoutOrder = v36.props.LayoutOrder,
            [v1.Tag] = "X-ColumnM X-FitY X-PadS"
        }, {
            Background = v1.createElement("ImageLabel", {
                Image = v9,
                Size = v36.state.overrideSize,
                ref = v36.containerRef,
                [v1.Tag] = l_joinTags_0("PreviewGrid X-Middle X-Center X-Clip", if v36.state.isOverflowing then nil else "X-FitY")
            }, {
                UISizeConstraint = v1.createElement("UISizeConstraint", {
                    MaxSize = v36.state.maxSize,
                    MinSize = v36.state.minSize
                }),
                UIPadding = v1.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, v36.state.padding.X),
                    PaddingRight = UDim.new(0, v36.state.padding.X),
                    PaddingTop = UDim.new(0, v36.state.padding.Y),
                    PaddingBottom = UDim.new(0, v36.state.padding.Y)
                })
            })
        }));
    end;
end;
return l_withContext_0({
    Localization = l_Localization_0
})(v10);


local l_ChangeHistoryService_0 = game:GetService("ChangeHistoryService");
local l_CollectionService_0 = game:GetService("CollectionService");
local l_RunService_0 = game:GetService("RunService");
local l_Selection_0 = game:GetService("Selection");
local l_StylingService_0 = game:GetService("StylingService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Packages.React);
local v7 = require(l_Parent_0.Packages.RoactRodux);
local v8 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v8.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_UI_0 = v8.UI;
local l_IconButton_0 = l_UI_0.IconButton;
local l_Pane_0 = l_UI_0.Pane;
local l_joinTags_0 = v8.Styling.joinTags;
local _ = require(l_Parent_0.Src.Types);
local _ = require(l_Parent_0.Src.Reducers.RootReducer);
local v18 = require(l_Parent_0.Src.Actions.SessionStats.TrackButtonPress);
local v19 = require(l_Parent_0.Src.Enums.InstancesHaveVariant);
local v20 = require(l_Parent_0.Src.Util.mapDispatchToProps);
local v21 = require(l_Parent_0.Src.Util.recordChange)(l_ChangeHistoryService_0);
local v22 = require(l_Parent_0.Src.Util.SelectorHelpers);
local v23 = require(l_Parent_0.Src.Components.SelectorPropertyTable);
local v24 = require(l_Parent_0.Src.Components.StyleRulePreview);
local v25 = require(l_Parent_0.Src.Resources.PluginStyles);
local l_v25_Attribute_0 = v25:GetAttribute("ButtonHeight");
local l_v25_Attribute_1 = v25:GetAttribute("PaddingSm");
local l_v25_Attribute_2 = v25:GetAttribute("Spacing");
local l_v25_Attribute_3 = v25:GetAttribute("TitleTextSize");
local v30 = v6.PureComponent:extend("StyleRuleView");
v30.init = function(v31)
    v31.state = {
        expanded = true,
        scrollHeight = -200,
        instance = nil,
        selection = {},
        story = nil
    };
    v31.containerRef = v6.createRef();
    v31.expandedChanged = function()
        v31:setState(function(v32)
            local v33 = not v32.expanded;
            local v34 = if not v33 then v32.instance else v30.getPreview(v31.props.StyleRule);
            return {
                expanded = v33,
                instance = v34,
                scrollHeight = v30.estimateScrollHeight(v33, v34, v31.props.StyleRule)
            };
        end);
    end;
    v31.onSelectionChanged = function()
        local v35 = l_Selection_0:Get();
        v31:setState({
            selection = v35,
            hasVariant = v22.instancesHaveVariant(v35, v31.props.StyleRule),
            canApplyVariant = v22.canApplyVariant(v31.props.StyleRule, v35)
        });
    end;
    v31.removeTagConnections = function()
        if v31.tagConnections then
            for _, v37 in v31.tagConnections, nil, nil do
                for _, v39 in v37, nil, nil do
                    v39:Disconnect();
                end;
            end;
        end;
        v31.tagConnections = {};
    end;
    v31.createTagConnections = function()
        local v40 = v22.getSelectorChain(v31.props.StyleRule);
        if v40 then
            local function v41()
                l_RunService_0.RenderStepped:Wait();
                v31.onSelectionChanged();
            end;
            v31.tagConnections = {};
            for _, v43 in v40.Tags, nil, nil do
                v31.tagConnections[v43] = {
                    Added = l_CollectionService_0:GetInstanceAddedSignal(v43):Connect(v41),
                    Removed = l_CollectionService_0:GetInstanceRemovedSignal(v43):Connect(v41)
                };
            end;
            return ;
        else
            return ;
        end;
    end;
    v31.onApplyStyle = function()
        local l_state_0 = v31.state;
        local l_props_0 = v31.props;
        l_props_0.dispatch(v18("StyleRuleView/ApplyTag"));
        if l_state_0.hasVariant == v19.Mixed then
            print("Error: Variant action cannot be performed on all selected instances");
            return ;
        elseif l_state_0.canApplyVariant then
            local l_StyleRule_0 = l_props_0.StyleRule;
            if l_StyleRule_0 then
                if #l_state_0.selection < 1 then
                    print("Error: No instance selected in Explorer");
                    return ;
                else
                    local v47 = v22.getSelectorChain(l_StyleRule_0);
                    v21({
                        Name = "StyleEditor.ApplyTags",
                        DisplayName = "StyleEditor - Apply Tag(s)",
                        DoChange = function()
                            for _, v49 in l_state_0.selection, nil, nil do
                                if v47.Class ~= "" and v49.ClassName ~= v47.Class then
                                    print("Error: Selector class does not match ClassName on", v49);
                                elseif l_state_0.hasVariant == v19.All then
                                    v22.removeVariant(l_StyleRule_0, v49);
                                else
                                    v22.addStyleLinkToRoot(v49, l_StyleRule_0);
                                    local l_status_0, l_result_0 = pcall(function()
                                        return l_StylingService_0:GetAppliedStyles(v49);
                                    end);
                                    if l_status_0 then
                                        if v47.Class ~= "" then
                                            for _, v53 in l_result_0, nil, nil do
                                                if #v53.PossibleClasses == 1 and v53.PossibleClasses[1] == v49.ClassName then
                                                    v22.removeVariant(v53.Instance, v49);
                                                end;
                                            end;
                                        end;
                                        v22.applyVariant(l_StyleRule_0, v49);
                                        local l_l_StyleRule_0_0 = l_StyleRule_0;
                                        while not (not l_l_StyleRule_0_0 or not l_l_StyleRule_0_0:IsA("StyleRule")) do
                                            for v55, v56 in l_l_StyleRule_0_0:GetProperties() do
                                                local l_status_1, l_result_1 = pcall(function()
                                                    if v49:IsPropertyModified(v55) then
                                                        v49:ResetPropertyToDefault(v55);
                                                    end;
                                                end);
                                                l_status_0 = l_status_1;
                                                v56 = l_result_1;
                                                if not l_status_0 then
                                                    warn((("Style Editor could not reset %* on %*"):format(v55, v49)));
                                                end;
                                            end;
                                            l_l_StyleRule_0_0 = l_l_StyleRule_0_0.Parent;
                                        end;
                                    end;
                                end;
                            end;
                            return Enum.FinishRecordingOperation.Commit;
                        end
                    });
                    v31:setState({
                        hasVariant = if l_state_0.hasVariant == v19.All then v19.None else v19.All
                    });
                    return ;
                end;
            else
                print("Error: No StyleRule to apply");
                return ;
            end;
        else
            print("Error: Variant cannot be applied to all selected instances");
            return ;
        end;
    end;
end;
v30.estimateScrollHeight = function(v59, v60, v61)
    local v62 = v22.ruleHasTags(v61);
    local v63 = v22.findFirstClassSelector(v61);
    local l_status_2, l_result_2 = pcall(function()
        local v64 = false;
        if v63 ~= "" then
            v64 = Instance.new(v63):IsA("GuiObject");
        end;
        return v64;
    end);
    local l_l_v25_Attribute_1_0 = l_v25_Attribute_1;
    if not l_status_2 or not l_result_2 then
        if v62 then
            l_l_v25_Attribute_1_0 = l_l_v25_Attribute_1_0 + l_v25_Attribute_0;
        end;
        return l_l_v25_Attribute_1_0;
    elseif not (not v59 or not v60) and v60 ~= v6.None then
        return l_l_v25_Attribute_1_0 + ((v24.getPredictedPreviewHeight(v60.Size, Vector2.new(math.huge, 300), Vector2.new(0, 0), Vector2.new(l_v25_Attribute_2, l_v25_Attribute_2)) + l_v25_Attribute_3) + 3 * l_v25_Attribute_2);
    else
        return l_l_v25_Attribute_1_0 + l_v25_Attribute_0;
    end;
end;
v30.createPreviewInstanceFromSelectorLink = function(v68)
    local v69 = if not not v68.Class and #v68.Class > 0 then v68.Class else "Frame";
    local l_status_3, l_result_3 = pcall(function()
        return Instance.new(v69);
    end);
    if l_status_3 then
        if v68.Name and #v68.Name > 0 then
            l_result_3.Name = v68.Name;
        end;
        for _, v73 in v68.Tags, nil, nil do
            l_result_3:AddTag(v73);
        end;
        return l_result_3;
    else
        return ;
    end;
end;
v30.isVisible = function(v74)
    if v74 and v74:IsA("StyleRule") then
        assert(v74 ~= nil, "expecting valid style rule");
        local l_status_4, l_result_4 = pcall(function()
            return l_StylingService_0:GetStyleInfo(v74);
        end);
        if l_status_4 then
            if not l_result_4.Properties.Visible then
                return v30.isVisible(v74.Parent);
            else
                return l_result_4.Properties.Visible.Value;
            end;
        else
            return true;
        end;
    else
        return true;
    end;
end;
v30.getPreview = function(v77)
    if not v77 or #v77.SelectorError > 0 then
        return v6.None;
    else
        local l_status_5, l_result_5 = pcall(function()
            return l_StylingService_0:GetStyleInfo(v77);
        end);
        if l_status_5 then
            local l_SelectorChains_0 = l_result_5.SelectorChains;
            local v81 = nil;
            local v82 = nil;
            local v83 = nil;
            local v84 = false;
            for v85, v86 in l_SelectorChains_0[#l_SelectorChains_0], nil, nil do
                v82 = v30.createPreviewInstanceFromSelectorLink(v86);
                if v82 then
                    local l_Class_0 = v86.Class;
                    if l_Class_0 then
                        l_Class_0 = false;
                        if #v86.Class > 0 then
                            l_Class_0 = v86.Combinator ~= "Pseudo";
                        end;
                    end;
                    if not v81 then
                        v83 = v82;
                    else
                        v82.Parent = v81;
                    end;
                    if not (not (v86.Combinator ~= "Pseudo") or not v82:IsA("GuiObject")) then
                        if v81 then
                            v82.Size = UDim2.fromScale(1, 1);
                        end;
                        v82.Position = UDim2.new();
                        v82.AnchorPoint = Vector2.new();
                        if v85 ~= #l_SelectorChains_0[#l_SelectorChains_0] then
                            v82.BackgroundTransparency = 1;
                            local _ = pcall(function()
                                v82.TextTransparency = 1;
                            end);
                        end;
                        v81 = v82;
                    end;
                    v84 = v84 or l_Class_0;
                end;
            end;
            if v83 then
                if (not v84 or not v82) or not v82:IsA("GuiObject") then
                    v83:Remove();
                else
                    local v89 = UDim2.fromOffset(200, 100);
                    if v30.isVisible(v77) then
                        if l_result_5.Properties.Size and typeof(l_result_5.Properties.Size.Value) == "UDim2" then
                            v89 = l_result_5.Properties.Size.Value;
                        end;
                    else
                        v89 = UDim2.new();
                    end;
                    v83.Size = v89;
                    return v83;
                end;
            end;
            return v6.None;
        else
            return v6.None;
        end;
    end;
end;
v30.getDerivedStateFromProps = function(v90, v91)
    if v90.StyleRule == v91.StyleRule and not v90.IsDirty then
        return v91;
    else
        local l_expanded_0 = v91.expanded;
        local v93 = v30.getPreview(v90.StyleRule) or v6.None;
        return {
            StyleRule = v90.StyleRule,
            hasVariant = v22.instancesHaveVariant(v91.selection, v90.StyleRule),
            canApplyVariant = v22.canApplyVariant(v90.StyleRule, v91.selection),
            instance = v93,
            scrollHeight = v30.estimateScrollHeight(l_expanded_0, v93, v90.StyleRule)
        };
    end;
end;
v30.didUpdate = function(v94, v95, _)
    if v95.StyleRule ~= v94.props.StyleRule then
        v94.removeTagConnections();
        v94.createTagConnections();
    end;
end;
v30.didMount = function(v97)
    v97.selectionChangedConnection = l_Selection_0.SelectionChanged:Connect(v97.onSelectionChanged);
    v97.onSelectionChanged();
end;
v30.willUnmount = function(v98)
    v98.removeTagConnections();
    if v98.selectionChangedConnection then
        v98.selectionChangedConnection:Disconnect();
        v98.selectionChangedConnection = nil;
    end;
end;
v30.render = function(v99)
    local l_props_1 = v99.props;
    local l_state_1 = v99.state;
    local v102 = l_state_1.hasVariant == v19.None and "Apply" or (l_state_1.hasVariant == v19.Mixed and "Mixed" or "Remove");
    local v103 = "ApplyBtn.Text" .. v102 .. "Tag";
    local v104 = "ApplyBtn.Tooltip" .. v102 .. "Tag";
    local v105 = true;
    if l_state_1.hasVariant ~= v19.Mixed then
        v105 = not l_state_1.canApplyVariant;
    end;
    local l_Localization_1 = l_props_1.Localization;
    return v6.createElement(l_Pane_0, {
        [v6.Tag] = "X-ColumnS X-FitY X-Right"
    }, {
        Container = v6.createElement(l_Pane_0, {
            LayoutOrder = 1,
            [v6.Tag] = "X-FitY"
        }, {
            ApplyStyleButton = if not v22.ruleHasTags(l_props_1.StyleRule) then nil else v6.createElement(l_IconButton_0, {
                OnClick = v99.onApplyStyle,
                Text = l_Localization_1:getText("Control", v103),
                TooltipText = l_Localization_1:getText("Control", v104),
                [v6.Tag] = l_joinTags_0("PositionRight", not v105 and "" or "Disabled")
            }),
            Preview = v6.createElement(v24, {
                Expanded = l_state_1.expanded,
                MaxSize = Vector2.new(math.huge, 300),
                OnExpandedChanged = v99.expandedChanged,
                PreviewInstance = l_state_1.instance,
                StyleRule = l_props_1.StyleRule
            })
        }),
        ScrollingView = v6.createElement(l_Pane_0, {
            LayoutOrder = 2,
            Size = UDim2.new(1, 0, 1, -l_state_1.scrollHeight)
        }, {
            StyleRule = v6.createElement(v23, {
                RootInstance = l_state_1.StyleRule
            })
        })
    });
end;
v30 = l_withContext_0({
    Localization = l_Localization_0
})(v30);
return v7.connect(function(v107)
    return {
        IsDirty = v107.Window.IsDirty
    };
end, v20)(v30);


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.React);
local l_ScrollingFrame_0 = require(l_Parent_0.Packages.Framework).UI.ScrollingFrame;
local v3 = require(l_Parent_0.Src.Components.TokenTable);
local _ = require(l_Parent_0.Src.Reducers.RootReducer);
return function(v5)
    return v1.createElement(l_ScrollingFrame_0, {
        [v1.Tag] = "ScrollingAutomaticSize X-ColumnS"
    }, {
        TokenTable = v1.createElement(v3, {
            RootInstance = v5.StyleSheet
        })
    });
end;


local l_ReplicatedStorage_0 = game:GetService("ReplicatedStorage");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.React);
local l_useEffect_0 = v3.useEffect;
local l_useLayoutEffect_0 = v3.useLayoutEffect;
local _ = require(l_Parent_0.Src.Reducers.RootReducer);
local v7 = require(l_Parent_0.Src.Hooks.useDispatch);
local v8 = require(l_Parent_0.Src.Util.TreeListener);
local v9 = require(l_Parent_0.Src.Actions.Window.SetIsDirty);
local v10 = require(l_Parent_0.Src.Thunks.StyleTree.UpdateStyleSheetReferences);
local _ = require(l_Parent_0.Src.Types);
local v12 = {
    l_ReplicatedStorage_0
};
return v2.connect(function(v13)
    return {
        IsDirty = v13.Window.IsDirty
    };
end)(function(v14)
    local v15 = v7();
    local function v19(v16, v17, v18)
        if not (v17 ~= "Destroying") or v17 == "DescendantRemoving" then
            if not (not (v18.Parent == nil) or not v18:IsA("StyleSheet")) then
                v15(v10(v18));
            end;
        elseif not (not (v17 == "PropertyChanged" and v18 == "Name") or not v16:IsA("StyleSheet")) then
            v15(v10(v16));
        end;
        v15(v9(true));
    end;
    l_useLayoutEffect_0(function()
        if v14.IsDirty then
            v15(v9(false));
        end;
    end, {
        v14.IsDirty
    });
    l_useEffect_0(function()
        local v20 = v8.new(v12, v19, {
            "Name",
            "Parent",
            "Selector"
        }, {
            "StyleSheet",
            "Folder",
            "StyleRule"
        });
        return function()
            if v20 then
                v20:destroyListener();
            end;
            v20 = nil;
        end;
    end, {});
    return nil;
end);


local l_ChangeHistoryService_0 = game:GetService("ChangeHistoryService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.React);
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_Localization_0 = l_ContextServices_0.Localization;
local v8 = require(l_Parent_0.Packages.Dash);
local l_collectArray_0 = v8.collectArray;
local l_copy_0 = v8.copy;
local l_includes_0 = v8.includes;
local l_mapOne_0 = v8.mapOne;
local l_startsWith_0 = v8.startsWith;
local l_UI_0 = v4.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_SimpleExpandablePane_0 = l_UI_0.SimpleExpandablePane;
local l_ScrollingFrame_0 = l_UI_0.ScrollingFrame;
local _ = require(l_Parent_0.Src.Types);
local _ = require(l_Parent_0.Src.Reducers.RootReducer);
local v20 = require(l_Parent_0.Src.Util.DesignHelpers);
local v21 = require(l_Parent_0.Src.Components.TokenTable);
local v22 = require(l_Parent_0.Src.Util.recordChange)(l_ChangeHistoryService_0);
local v23 = v2.PureComponent:extend("ThemesView");
v23.init = function(v24)
    v24.state = {
        Themes = nil,
        SelectedTheme = nil
    };
    v24.updateThemes = function()
        local l_props_0 = v24.props;
        local l_DesignSheet_0 = l_props_0.DesignSheet;
        local v29 = l_collectArray_0(l_props_0.RootItem.Children, function(_, v28)
            return v28.Instance;
        end);
        v24:setState({
            Themes = v29,
            SelectedTheme = l_mapOne_0(l_DesignSheet_0:GetDerives(), function(v30)
                local l_v30_Attribute_0 = v30:GetAttribute("StyleCategory");
                if (not l_v30_Attribute_0 or not l_startsWith_0(l_v30_Attribute_0, "Themes")) or not l_includes_0(v29, v30) then
                    return nil;
                else
                    return v30;
                end;
            end)
        });
    end;
    v24.toggleThemes = function(v32)
        v24:setState(function(v33)
            local v34 = l_copy_0(v33.Themes);
            local v35 = nil;
            for _, v37 in v34, nil, nil do
                if v37 == v32 then
                    v35 = v37;
                end;
            end;
            v22({
                Name = "StyleEditor.SetDerives",
                DisplayName = "Style Editor - Set Derives",
                DoChange = function()
                    v20.replaceDerive(v24.props.DesignSheet, v35, v33.SelectedTheme);
                    return Enum.FinishRecordingOperation.Commit;
                end
            });
            return {
                Themes = v34,
                SelectedTheme = v35
            };
        end);
    end;
    v24.updateThemes();
end;
v23.didUpdate = function(v38, v39, _)
    local l_props_1 = v38.props;
    if not (not (v39.IsDirty and not l_props_1.IsDirty) and v39.DesignSheet == l_props_1.DesignSheet) or v39.RootItem ~= l_props_1.RootItem then
        v38.updateThemes();
    end;
end;
v23.render = function(v42)
    local l_props_2 = v42.props;
    local l_state_0 = v42.state;
    local v45 = {};
    for v46, v47 in ipairs(l_state_0.Themes) do
        v45["Theme " .. v46] = v2.createElement(v21, {
            RootInstance = v47,
            ThemeSelected = v47 == l_state_0.SelectedTheme,
            OnClick = v42.toggleThemes
        });
    end;
    return v2.createElement(l_ScrollingFrame_0, {
        [v2.Tag] = "ScrollingAutomaticSize"
    }, {
        Themes = v2.createElement(l_SimpleExpandablePane_0, {
            AlwaysExpanded = true,
            Text = l_props_2.RootItem.Name.Value .. " Themes",
            [v2.Tag] = "X-ColumnM X-FitY X-PadS"
        }, {
            Column = v2.createElement(l_Pane_0, {
                [v2.Tag] = "X-ColumnM X-FitY"
            }, v45)
        })
    });
end;
return v3.connect(function(v48)
    return {
        DesignSheet = v48.Window.DesignSheet,
        IsDirty = v48.Window.IsDirty
    };
end)((l_withContext_0({
    Localization = l_Localization_0
})(v23)));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_TreeTable_0 = require(l_Parent_0.Packages.Framework).UI.TreeTable;
local v2 = require(l_Parent_0.Packages.Dash);
local l_collectArray_0 = v2.collectArray;
local l_keys_0 = v2.keys;
local l_join_0 = v2.join;
local v6 = require(l_Parent_0.Src.Util.MenuHelpers);
local v7 = require(l_Parent_0.Src.Util.StyleSchema);
local v8 = require(l_Parent_0.Src.Util.TreeTableHelpers);
local _ = require(l_Parent_0.Src.Types);
local v12 = {
    Columns = {
        {
            Name = "Name",
            Key = "Name",
            Width = UDim.new(0.5, 0)
        },
        {
            Name = "Value",
            Key = "Value",
            Width = UDim.new(0.5, 0)
        }
    },
    NAME_COLUMN_INDEX = 1,
    VALUE_COLUMN_INDEX = 2,
    getItemChildren = function(v10)
        return v10.Children or {};
    end,
    getItemId = function(v11)
        return v11.Id;
    end
};
local v13 = l_TreeTable_0.EditTree.new({
    getChildren = v12.getItemChildren,
    getId = v12.getItemId
});
v12.EditTree = v13;
v12._buildEmptyRow = function(v14, v15)
    return {
        Id = v8.createItemId(v14, "@Empty"),
        Name = {
            Schema = l_join_0(v7.TextSchema, {
                PlaceholderText = "Add a Token..."
            }),
            Value = ""
        },
        Value = {
            Actions = v6.MoreAction,
            Schema = v7.SelectTokenSchema,
            Value = v15 or ""
        },
        Children = {}
    };
end;
v12._buildTokens = function(v16)
    local l_v16_Attributes_0 = v16:GetAttributes();
    local v18 = l_keys_0(l_v16_Attributes_0);
    table.sort(v18);
    return (l_collectArray_0(v18, function(_, v20)
        if v20 == "StyleCategory" then
            return nil;
        else
            local v21 = l_v16_Attributes_0[v20];
            local v22 = v7.getAttributeSchema(v21);
            if typeof(v21) == "string" and v21:sub(1, 1) == "$" then
                v22 = l_join_0(v7.TokenReferenceSchema, {
                    Instance = v16,
                    ExpectedTypes = nil,
                    HideSelfTokens = true
                });
            end;
            if v22.Validate(v21) then
                local v23 = v8.createItemId(v16, v20);
                return {
                    Id = v23,
                    Name = {
                        Schema = v7.TextSchema,
                        Value = v20
                    },
                    Value = {
                        Actions = v6.MoreAction,
                        Schema = v22,
                        Value = v21 or ""
                    },
                    Children = if not v22.GetChildren then nil else v22.GetChildren(v21, v23)
                };
            else
                return nil;
            end;
        end;
    end));
end;
v12.buildTree = function(v24, v25, v26, v27)
    local v28 = if v25 ~= nil then v7.ThemeSchema else v7.SelectorSchema;
    local v29 = {
        Id = v8.createItemId(v24),
        Name = {
            Actions = if v25 ~= nil then nil else v6.MoreAction,
            FullSpan = true,
            OnClick = v26,
            Schema = v28,
            Selected = v25,
            Value = if v28 == v7.ThemeSchema then v24 else v24.Name
        },
        Children = if not v24 then {} else v12._buildTokens(v24)
    };
    table.insert(v29.Children, v12._buildEmptyRow(v24, v27));
    return v13:updatePaths({
        v29
    });
end;
return v12;


local l_ChangeHistoryService_0 = game:GetService("ChangeHistoryService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.React);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Dash);
local l_copy_0 = v4.copy;
local l_join_0 = v4.join;
local v7 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v7.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_TreeTable_0 = v7.UI.TreeTable;
local v12 = require(l_Parent_0.Src.Util.recordChange)(l_ChangeHistoryService_0);
local v13 = require(l_Parent_0.Src.Util.StyleSchema);
local v14 = require(l_Parent_0.Src.Renderers);
local v15 = require(l_Parent_0.Src.Util.TreeTableHelpers);
local v16 = require(l_Parent_0.Src.Contexts.Telemetry.TelemetryContext);
local v17 = require(l_Parent_0.Src.Util.mapDispatchToProps);
local _ = require(l_Parent_0.Src.Types);
local _ = require(l_Parent_0.Src.Reducers.Clipboard);
local _ = require(l_Parent_0.Src.Reducers.RootReducer);
local l_Thunks_0 = l_Parent_0.Src.Thunks;
local v22 = require(l_Thunks_0.ContextMenu.ShowStyleSheetMenu);
local v23 = require(l_Thunks_0.ContextMenu.ShowTokenMenu);
local v24 = require(l_Thunks_0.ContextMenu.ShowEmptyTokenMenu);
local v25 = require(script.Tree);
local l_EditTree_0 = v25.EditTree;
local v27 = v2.PureComponent:extend("TokenTable");
v27.init = function(v28)
    v28.state = {
        selectSchema = v2.None,
        table = {
            Columns = l_copy_0(v25.Columns),
            Expansion = {},
            Selection = {},
            Items = {}
        }
    };
    local v29 = l_EditTree_0:getStateAdaptor(v28, "table");
    v28.tableCallbacks = l_EditTree_0:getCallbacks(v29);
    v28.setConnections = function()
        local l_props_0 = v28.props;
        local l_RootInstance_0 = v28.props.RootInstance;
        v27.disconnect(v28.connections);
        v28.connections = {
            styleSheet = l_RootInstance_0.AttributeChanged:Connect(function(v32)
                v28:setState(function(v33)
                    local v34 = v25.buildTree(l_RootInstance_0, l_props_0.ThemeSelected, l_props_0.OnClick, (v13.getAttributeSchema((l_RootInstance_0:GetAttribute(v32)))));
                    local v35 = v15.createItemId(l_RootInstance_0);
                    local l_Expansion_0 = v33.table.Expansion;
                    l_Expansion_0[v35] = true;
                    return {
                        table = l_join_0(v33.table, {
                            Expansion = l_Expansion_0,
                            Items = v34
                        })
                    };
                end);
            end)
        };
    end;
    v28.onDoubleClick = function(v37)
        v29(function(v38)
            local v39 = l_EditTree_0:getChild(v38.Items, v37);
            if v39 then
                return l_EditTree_0:updateCell(v38, {
                    Schema = l_join_0(v39.Name.Schema, {
                        Editing = true
                    })
                }, v37, 1);
            else
                return nil;
            end;
        end);
    end;
    v28.onRightClickRow = function(v40)
        local l_item_0 = v40.item;
        v28.selectRow(l_item_0.Id, false);
        if not (l_item_0.Value ~= nil) then
            return ;
        else
            v28.showRowContextMenu(l_item_0.Path);
            return ;
        end;
    end;
    v28.showRowContextMenu = function(v42)
        local l_props_1 = v28.props;
        local v44 = l_EditTree_0:getChild(v28.state.table.Items, v42);
        local v45 = if not v44.Value then nil else v44.Value.Schema;
        local function v46()
            v28.onDoubleClick(v42);
        end;
        if not (v45 ~= v13.EmptySchema) or v45 == v13.SelectTokenSchema then
            l_props_1.dispatch(v24(l_props_1.RootInstance));
            return ;
        elseif not v44.Name.FullSpan then
            l_props_1.dispatch(v23(l_props_1.RootInstance, v44.Name.Value));
            return ;
        else
            l_props_1.dispatch(v22(l_props_1.RootInstance, v46));
            return ;
        end;
    end;
    v28.selectRow = function(v47, v48)
        v29(function(v49)
            local l_Expansion_1 = v49.Expansion;
            if v48 and v49.Selection[v47] == true then
                l_Expansion_1 = l_join_0(v49.Expansion, {
                    [v47] = not v49.Expansion[v47]
                });
            end;
            return l_join_0(v49, {
                Selection = {
                    [v47] = true
                },
                Expansion = l_Expansion_1
            });
        end);
    end;
    v28.tableCallbacks.OnSelectionChange = function(v51)
        local v52 = v15.getOneSelectedItem(v51);
        if v52 then
            v28.selectRow(v52, true);
        end;
    end;
    v28.onCellAction = function(v53, v54, _)
        if v53 == "Menu" then
            v28.showRowContextMenu(v54);
        end;
    end;
    v28.onTokenEdited = function(v56, v57, v58)
        v29(function(v59)
            local v60 = l_EditTree_0:getChild(v59.Items, v57);
            local l_RootInstance_1 = v28.props.RootInstance;
            if v60 then
                local v62 = {
                    Value = v56
                };
                local v63 = if not v60.Value then v60.Name.Schema else v60.Value.Schema;
                if v58 == 1 then
                    if not v60.Name.FullSpan then
                        if l_RootInstance_1 and l_RootInstance_1:GetAttribute(v56) ~= nil then
                            v62.Value = v60.Name.Value;
                        elseif v60.Name.Value == "" then
                            v62.Schema = v13.TextSchema;
                            if not (not (v63 == v13.SelectTokenSchema) or not v60.Value.Value) then
                                v63 = v60.Value.Value;
                            end;
                            if v63 ~= v13.SelectTokenSchema then
                                v12({
                                    Name = "StyleEditor.AddToken",
                                    DisplayName = "Style Editor - Add Token",
                                    DoChange = function()
                                        local l_status_0, _ = pcall(function()
                                            l_RootInstance_1:SetAttribute(v56, v63.GetDefaultValue());
                                        end);
                                        if not l_status_0 then
                                            return nil;
                                        else
                                            return Enum.FinishRecordingOperation.Commit;
                                        end;
                                    end
                                });
                            end;
                        else
                            v12({
                                Name = "StyleEditor.EditToken",
                                DisplayName = "Style Editor - Edit Token",
                                DoChange = function()
                                    local l_status_1, _ = pcall(function()
                                        l_RootInstance_1:SetAttribute(v56, v60.Value.Value);
                                        l_RootInstance_1:SetAttribute(v60.Name.Value, nil);
                                    end);
                                    if not l_status_1 then
                                        return nil;
                                    else
                                        return Enum.FinishRecordingOperation.Commit;
                                    end;
                                end
                            });
                        end;
                    else
                        v62.Schema = l_join_0(v63, {
                            Editing = false
                        });
                        v62.Value = if v63.Type == "Theme" then l_RootInstance_1 else v56;
                        v12({
                            Name = "StyleEditor.RenameStyleSheet",
                            DisplayName = "Style Editor - Rename StyleSheet",
                            DoChange = function()
                                l_RootInstance_1.Name = v56;
                                return Enum.FinishRecordingOperation.Commit;
                            end
                        });
                    end;
                elseif v58 == 2 then
                    local l_Value_0 = v60.Name.Value;
                    if v63 == v13.SelectTokenSchema then
                        v28:setState({
                            selectSchema = v56
                        });
                        if l_Value_0 and l_Value_0 ~= "" then
                            v62.Schema = v56;
                            v56 = v56.GetDefaultValue();
                            v62.Value = v56;
                        end;
                    elseif v60.Name.Schema == v13.ChildComponentSchema then
                        l_Value_0 = l_EditTree_0:getParent(v59.Items, v60).Name.Value;
                        v56 = if not v60.SetParentValue then v56 else v60.SetParentValue(v56);
                    end;
                    do
                        local l_l_Value_0_0 = l_Value_0;
                        if l_l_Value_0_0 and l_l_Value_0_0 ~= "" then
                            v12({
                                Name = "StyleEditor.EditToken",
                                DisplayName = "Style Editor - Edit Token",
                                DoChange = function()
                                    local l_status_2, _ = pcall(function()
                                        l_RootInstance_1:SetAttribute(l_l_Value_0_0, v56);
                                    end);
                                    if not l_status_2 then
                                        return nil;
                                    else
                                        return Enum.FinishRecordingOperation.Commit;
                                    end;
                                end
                            });
                        end;
                    end;
                end;
                return l_EditTree_0:updateCell(v59, v62, v57, v58);
            else
                return ;
            end;
        end);
    end;
end;
v27.didMount = function(v72)
    v72.setConnections();
end;
v27.didUpdate = function(v73, v74, _)
    if not (v74.RootInstance == v73.props.RootInstance and v73.connections) then
        v73.setConnections();
    end;
end;
v27.getDerivedStateFromProps = function(v76, v77)
    local l_RootInstance_2 = v76.RootInstance;
    if not (l_RootInstance_2 == v77.styleSheet) or v76.ThemeSelected ~= v77.ThemeSelected then
        local l_selectSchema_0 = v77.selectSchema;
        if l_RootInstance_2 ~= v77.styleSheet then
            l_selectSchema_0 = if #l_RootInstance_2:GetDerives() > 0 then v13.TokenReferenceSchema else v2.None;
        end;
        local v80 = v25.buildTree(l_RootInstance_2, v76.ThemeSelected, v76.OnClick, l_selectSchema_0);
        local l_Expansion_2 = v77.table.Expansion;
        if v76.ThemeSelected == nil then
            l_Expansion_2[v15.createItemId(l_RootInstance_2)] = true;
        end;
        return l_join_0(v77, {
            selctSchema = l_selectSchema_0,
            ThemeSelected = v76.ThemeSelected,
            styleSheet = l_RootInstance_2,
            table = l_join_0(v77.table, {
                Expansion = l_Expansion_2,
                Items = v80
            })
        });
    else
        return v77;
    end;
end;
v27.disconnect = function(v82)
    if v82 then
        for v83, v84 in pairs(v82) do
            if v84 then
                v84:Disconnect();
            end;
            v82[v83] = nil;
        end;
    end;
end;
v27.willUnmount = function(v85)
    v27.disconnect(v85.connections);
end;
v27.render = function(v86)
    local l_state_0 = v86.state;
    return v2.createElement(l_TreeTable_0, l_join_0({
        AutomaticSize = Enum.AutomaticSize.Y,
        Columns = l_state_0.table.Columns,
        Expansion = l_state_0.table.Expansion,
        FullSpanEmphasis = true,
        GetChildren = v25.getItemChildren,
        GetItemId = v25.getItemId,
        OnCellAction = v86.onCellAction,
        OnCellDoubleClick = v86.onDoubleClick,
        OnCellEdited = v86.onTokenEdited,
        OnCellPressed = v86.onPropertyPressed,
        RightClick = v86.onRightClickRow,
        RootItems = l_state_0.table.Items,
        RowHeight = 32,
        Renderers = v14,
        ShowHeader = false,
        Selection = l_state_0.table.Selection,
        UseScale = true
    }, v86.tableCallbacks));
end;
v27 = l_withContext_0({
    Localization = l_Localization_0,
    Plugin = l_ContextServices_0.Plugin,
    Telemetry = v16
})(v27);
return v3.connect(function(v88)
    return {
        ClipboardAttribute = v88.Clipboard.Attribute
    };
end, v17)(v27);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_ContextItem_0 = require(l_Parent_0.Packages.Framework).ContextServices.ContextItem;
local _ = require(l_Parent_0.Src.Types);
local _ = require(script.Parent.Types);
return (l_ContextItem_0:createSimple("Telemetry"));


local l_MessageBusService_0 = game:GetService("MessageBusService");
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_t_0 = require(l_Parent_0.Packages.Framework).Util.Typecheck.t;
local v3 = require(l_Parent_0.Src.Util.DebugFlags);
local _ = require(script.Parent.Types);
local v5 = {
    RobloxTelemetry = "RobloxTelemetry",
    EphemeralCounter = "EphemeralCounter",
    EphemeralStat = "EphemeralStat"
};
local v6 = {
    UNSPECIFIED = "UNSPECIFIED",
    EventIngest = "EventIngest",
    Points = "Points",
    EphemeralCounter = "EphemeralCounter",
    EphemeralStat = "EphemeralStat"
};
local v7 = {
    addPlaceId = "addPlaceId",
    addUniverseId = "addUniverseId",
    addPlaceInstanceId = "addPlaceInstanceId",
    addSessionId = "addSessionId"
};
local v8 = l_t_0.interface({
    eventType = l_t_0.valueOf(v5),
    config = l_t_0.interface({
        eventName = l_t_0.string,
        backends = l_t_0.array(l_t_0.valueOf(v6))
    }),
    data = l_t_0.union(l_t_0.none, l_t_0.interface({
        customFields = l_t_0.optional(l_t_0.keys(l_t_0.string))
    }), l_t_0.interface({
        incrementValue = l_t_0.number
    }), l_t_0.interface({
        statValue = l_t_0.number
    }))
});
local v9 = {
    EventTypes = v5,
    Backends = v6,
    StandardizedFields = v7,
    LOG_EVENT_WITH_TIMESTAMP = l_MessageBusService_0:GetMessageId("Logging", "logEventWithTimestamp"),
    GET_TIMESTAMP = l_MessageBusService_0:GetMessageId("Logging", "getTimestamp"),
    LOG_EVENT_FROM_LUA = l_MessageBusService_0:GetMessageId("Logging", "logEventFromLua"),
    ONE_HUNDRED_PERCENT = 10000
};
v9.__index = v9;
v9.new = function(v10)
    local v11 = {
        _messageBus = v10 or l_MessageBusService_0
    };
    setmetatable(v11, v9);
    return v11;
end;
v9.logEventWithTimestamp = function(v12, v13, v14, v15)
    v12._messageBus:Call(v12.LOG_EVENT_WITH_TIMESTAMP, {
        eventName = v13,
        timestamp = v14,
        metadata = v15
    });
end;
v9.logEvent = function(v16, v17, v18)
    v16:logEventWithTimestamp(v17, 0, v18);
end;
v9.getTimestamp = function(v19)
    return v19._messageBus:Call(v19.GET_TIMESTAMP, {});
end;
v9.logTelemetryEvent = function(v20, v21)
    assert(v8(v21));
    if v3.LogTelemetry() then
        print(("StyleEditor logged telemetry event '%*':"):format(v21.config.eventName), v21);
    end;
    v20._messageBus:Call(v20.LOG_EVENT_FROM_LUA, v21);
end;
return v9;


return require(script.Parent.Parent.Parent.Packages.Framework).Util.enumerate("InstancesHaveVariant", {
    "All",
    "Mixed",
    "None"
});


local l_Parent_0 = script.Parent.Parent.Parent;
local l_enumerate_0 = require(l_Parent_0.Packages.Framework).Util.enumerate;
local _ = require(l_Parent_0.Src.Types);
return (l_enumerate_0("PropertyNameValidationError", {
    "None",
    "DoesNotExist",
    "DoesNotExistOnType",
    "AlreadyDefined"
}));


local l_Parent_0 = script.Parent.Parent.Parent;
local l_enumerate_0 = require(l_Parent_0.Packages.Framework).Util.enumerate;
local _ = require(l_Parent_0.Src.Types);
return (l_enumerate_0("TokenValidationError", {
    "None",
    "InvalidSyntax",
    "DoesNotExist",
    "IncorrectType",
    "CyclicReference"
}));


game:DefineFastFlag("StyleEditorEnableTelemetry", false);
return function()
    return game:GetFastFlag("StyleEditorEnableTelemetry");
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Src.Hooks.useStore);
return function()
    local v3 = v2();
    return function(v4)
        v3:dispatch(v4);
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_useContext_0 = require(l_Parent_0.Packages.React).useContext;
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local v3 = require(l_Parent_0.Src.Contexts.Telemetry.TelemetryContext);
local _ = require(l_Parent_0.Src.Contexts.Telemetry.Types);
local _ = require(l_Parent_0.Src.Types);
return function()
    local v6 = l_useContext_0(l_ContextServices_0.Context);
    return {
        Focus = v6[l_ContextServices_0.Focus.Key],
        Localization = v6[l_ContextServices_0.Localization.Key],
        Plugin = v6[l_ContextServices_0.Plugin.Key],
        Telemetry = v6[v3.Key]
    };
end;


return function()
    local v0 = 0;
    return function()
        v0 = v0 + 1;
        return v0 - 1;
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Packages.React);
local l_useEffect_0 = v2.useEffect;
local l_useRef_0 = v2.useRef;
local _ = require(l_Parent_0.Src.Types);
return function()
    local v6 = l_useRef_0({});
    local function v8(v7)
        assert(typeof(v6.current) == "table", "expected listRef to contain list of connections");
        if v7 then
            table.insert(v6.current, v7);
        end;
    end;
    l_useEffect_0(function()
        return function()
            if (not v6 or not v6.current) or type(v6.current) ~= "table" then
                return ;
            else
                assert(type(v6.current) == "table", "expecting table of connections");
                for _, v10 in v6.current, nil, nil do
                    if v10 then
                        v10:Disconnect();
                    end;
                end;
                v6.current = {};
                return ;
            end;
        end;
    end, {});
    return {
        add = v8
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local l_useContext_0 = require(l_Parent_0.Packages.React).useContext;
return function()
    return (l_useContext_0(v2.StoreContext.Consumer));
end;


local l_StudioFixPluginWidgetLocalizedIds_0 = game:GetFastFlag("StudioFixPluginWidgetLocalizedIds");
local l_ChangeHistoryService_0 = game:GetService("ChangeHistoryService");
local l_MessageBusService_0 = game:GetService("MessageBusService");
local l_Parent_0 = script.Parent.Parent;
local v4 = require(l_Parent_0.Packages.React);
local v5 = require(l_Parent_0.Packages.ReactRoblox);
local v6 = require(l_Parent_0.Packages.Framework);
local l_DockWidget_0 = v6.UI.DockWidget;
local l_registerPluginStyles_0 = v6.Styling.registerPluginStyles;
local l_ContextServices_0 = v6.ContextServices;
local l_Networking_0 = v6.Http.Networking;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Mouse_0 = l_ContextServices_0.Mouse;
local l_Store_0 = l_ContextServices_0.Store;
local v14 = require(l_Parent_0.Src.Util.createStore);
local v15 = require(l_Parent_0.Src.Util.recordChange);
local v16 = require(l_Parent_0.Src.Resources.MakeTheme);
local v17 = require(l_Parent_0.Src.Contexts.Telemetry.TelemetryContext);
local v18 = require(l_Parent_0.Src.Contexts.Telemetry.TelemetryProtocol);
local v19 = require(l_Parent_0.Src.Components.AppRoot);
local l_Thunks_0 = l_Parent_0.Src.Thunks;
local v21 = require(l_Thunks_0.Telemetry.SendPluginMountedEvent);
local v22 = require(l_Thunks_0.Telemetry.SendPluginUnmountedEvent);
local l_SourceStrings_0 = l_Parent_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_Parent_0.Src.Resources.Localization.LocalizedStrings;
local v25 = v4.PureComponent:extend("MainPlugin");
v25.init = function(v26)
    local l_props_0 = v26.props;
    v26.firstRender = true;
    v26:setState({
        enabled = false
    });
    v26.toggleEnabled = function()
        v26:setState(function(v28)
            return {
                enabled = not v28.enabled
            };
        end);
    end;
    v26.onClose = function()
        v26:setState({
            enabled = false
        });
    end;
    v26.onRestore = function(v29)
        v26:setState({
            enabled = v29
        });
    end;
    v26.onWidgetEnabledChanged = function(v30)
        v26:setState({
            enabled = v30.Enabled
        });
    end;
    v26.onDockWidgetCreated = function()
        v26.props.PluginLoaderContext.mainButtonClickedSignal:Connect(v26.toggleEnabled);
    end;
    v26.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "StyleEditor",
        libraries = {
            [v6.Resources.LOCALIZATION_PROJECT_NAME] = {
                stringResourceTable = v6.Resources.SourceStrings,
                translationResourceTable = v6.Resources.LocalizedStrings
            }
        }
    });
    v26.telemetry = v18.new(l_MessageBusService_0);
    v26.design = l_registerPluginStyles_0(l_props_0.Plugin);
    v26.store = v14({
        Localization = v26.localization,
        Networking = l_Networking_0.new({
            isInternal = true
        }),
        Plugin = l_props_0.Plugin,
        Telemetry = v26.telemetry,
        recordChange = v15(l_ChangeHistoryService_0)
    });
    l_props_0.Plugin.Unloading:Connect(function()
        if v26.store then
            v26.store:dispatch(v22());
            v26.store:flush();
        end;
    end);
end;
v25.didUpdate = function(v31)
    v31.props.PluginLoaderContext.mainButton:SetActive(v31.state.enabled);
    if v31.firstRender then
        v31.firstRender = false;
        v31.store:dispatch(v21((os.clock() - v31.props.LoadStartTimestamp) * 1000));
    end;
end;
v25.render = function(v32)
    local l_props_1 = v32.props;
    local l_state_0 = v32.state;
    local l_Plugin_1 = l_props_1.Plugin;
    return l_ContextServices_0.provide({
        l_Plugin_0.new(l_Plugin_1),
        l_Store_0.new(v32.store),
        l_Mouse_0.new(l_Plugin_1:getMouse()),
        v32.localization,
        v17.new(v32.telemetry),
        v16()
    }, {
        MainWidget = v4.createElement(l_DockWidget_0, {
            Id = if not l_StudioFixPluginWidgetLocalizedIds_0 then nil else "StyleEditor",
            Enabled = l_state_0.enabled,
            Title = v32.localization:getText("Plugin", "Name"),
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
            InitialDockState = Enum.InitialDockState.Right,
            Size = Vector2.new(580, 500),
            OnClose = v32.onClose,
            ShouldRestore = true,
            Widget = l_props_1.PluginLoaderContext.mainDockWidget,
            OnWidgetRestored = v32.onRestore,
            OnWidgetCreated = v32.onDockWidgetCreated,
            [v5.Change.Enabled] = v32.onWidgetEnabledChanged
        }, {
            AppRoot = v4.createElement(v19),
            StyleLink = v4.createElement("StyleLink", {
                StyleSheet = v32.design
            })
        })
    });
end;
return v25;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local l_join_0 = require(l_Parent_0.Packages.Dash).join;
local _ = require(l_Parent_0.Src.Types);
return v1.createReducer({
    Fonts = {}
}, {
    [require(l_Parent_0.Src.Actions.Asset.SaveFontMetadata).name] = function(v4, v5)
        return l_join_0(v4, {
            Fonts = l_join_0(v4.Fonts, v5.metadata)
        });
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local l_join_0 = require(l_Parent_0.Packages.Dash).join;
local l_Clipboard_0 = l_Parent_0.Src.Actions.Clipboard;
return v1.createReducer({
    Instance = nil,
    Attribute = nil,
    Property = nil
}, {
    [require(l_Clipboard_0.CopyInstanceToClipboard).name] = function(v4, v5)
        return l_join_0(v4, {
            Instance = v5.instance
        });
    end,
    [require(l_Clipboard_0.CopyAttributeToClipboard).name] = function(v6, v7)
        return l_join_0(v6, {
            Attribute = {
                Name = v7.attributeName,
                Value = v7.attributeValue
            }
        });
    end,
    [require(l_Clipboard_0.CopyPropertyToClipboard).name] = function(v8, v9)
        return l_join_0(v8, {
            Property = {
                Name = v9.propertyName,
                Value = v9.propertyValue
            }
        });
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
return require(l_Parent_0.Packages.Rodux).combineReducers({
    Asset = require(l_Parent_0.Src.Reducers.Asset),
    Clipboard = require(l_Parent_0.Src.Reducers.Clipboard),
    SessionStats = require(l_Parent_0.Src.Reducers.SessionStats),
    Window = require(l_Parent_0.Src.Reducers.Window)
});


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Packages.Dash);
local l_join_0 = v2.join;
local l_Actions_0 = l_Parent_0.Src.Actions;
local v5 = require(l_Actions_0.SessionStats.PluginFocusEnd);
local v6 = require(l_Actions_0.SessionStats.PluginFocusStart);
local v7 = require(l_Actions_0.SessionStats.SetSessionStartTimestamp);
local v8 = require(l_Actions_0.SessionStats.TrackButtonPress);
local _ = require(l_Parent_0.Src.Types);
return v1.createReducer({
    SessionStartTimestamp = 0,
    TotalPluginFocusTimeSeconds = 0,
    PluginFocusPeriodStartTimestamp = nil,
    PluginFocusEndWithoutStartCount = 0,
    ButtonPressCounts = {}
}, {
    [v8.name] = function(v10, v11)
        return l_join_0(v10, {
            ButtonPressCounts = l_join_0(v10.ButtonPressCounts, {
                [v11.buttonId] = (v10.ButtonPressCounts[v11.buttonId] or 0) + 1
            })
        });
    end,
    [v7.name] = function(v12, v13)
        return l_join_0(v12, {
            SessionStartTimestamp = v13.startTimestamp
        });
    end,
    [v6.name] = function(v14, v15)
        return l_join_0(v14, {
            PluginFocusPeriodStartTimestamp = v15.focusStartTimestamp
        });
    end,
    [v5.name] = function(v16, v17)
        local l_PluginFocusEndWithoutStartCount_0 = v16.PluginFocusEndWithoutStartCount;
        local v19 = 0;
        if not v16.PluginFocusPeriodStartTimestamp then
            l_PluginFocusEndWithoutStartCount_0 = l_PluginFocusEndWithoutStartCount_0 + 1;
        else
            v19 = v17.focusEndTimestamp - v16.PluginFocusPeriodStartTimestamp;
        end;
        return l_join_0(v16, {
            PluginFocusPeriodStartTimestamp = v2.None,
            TotalPluginFocusTimeSeconds = v16.TotalPluginFocusTimeSeconds + v19,
            PluginFocusEndWithoutStartCount = l_PluginFocusEndWithoutStartCount_0
        });
    end
});


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Packages.Dash);
local l_join_0 = v2.join;
local l_Actions_0 = l_Parent_0.Src.Actions;
return v1.createReducer({
    DesignSheet = nil,
    IsDirty = false,
    SearchTerm = "",
    RootRoute = "Onboarding",
    SelectedItemId = nil,
    ExpandedItems = {}
}, {
    [require(l_Actions_0.Window.SetDesignSheet).name] = function(v5, v6)
        return l_join_0(v5, {
            DesignSheet = v6.designSheet,
            SelectItem = if v5.DesignSheet ~= v6.designSheet then v2.None else v5.SelectedItemId
        });
    end,
    [require(l_Actions_0.Window.SetIsDirty).name] = function(v7, v8)
        return l_join_0(v7, {
            IsDirty = v8.isDirty
        });
    end,
    [require(l_Actions_0.Window.SetSearch).name] = function(v9, v10)
        return l_join_0(v9, {
            SearchTerm = v10.searchTerm
        });
    end,
    [require(l_Actions_0.Window.SetRootRoute).name] = function(v11, v12)
        return l_join_0(v11, {
            RootRoute = v12.route
        });
    end,
    [require(l_Actions_0.Window.SelectItem).name] = function(v13, v14)
        if v14.itemId then
            return l_join_0(v13, {
                SelectedItemId = v14.itemId,
                ExpandedItems = l_join_0(v13.ExpandedItems, {
                    [v14.itemId] = not (v13.SelectedItemId == v14.itemId) and true or not (v13.ExpandedItems[v14.itemId] or false)
                })
            });
        else
            return l_join_0(v13, {
                SelectedItemId = v2.None
            });
        end;
    end,
    [require(l_Actions_0.Window.DeselectItem).name] = function(v15, v16)
        if v15.SelectedItemId ~= v16.itemId then
            return v15;
        else
            return l_join_0(v15, {
                SelectedItemId = v2.None
            });
        end;
    end,
    [require(l_Actions_0.Window.SetItemsExpanded).name] = function(v17, v18)
        return l_join_0(v17, {
            ExpandedItems = l_join_0(v17.ExpandedItems, v18.expandedItems)
        });
    end
});