--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))

local React = require(_Packages:WaitForChild("React"))
local ReactRoblox = require(_Packages:WaitForChild("ReactRoblox"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Class
local Interface = {}

do
	local NewMenuRowBarTopCenter = React.Component:extend("NewMenuRowBarTopCenter")
	NewMenuRowBarTopCenter.defaultProps = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	function NewMenuRowBarTopCenter:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			backgroundColor = _Value(self.defaultProps.backgroundColor),
			textColor = _Value(self.defaultProps.textColor),
			elevation = _Value(self.defaultProps.elevation),
			schemeType = _Value(self.defaultProps.schemeType),
			titleFontData = _Value(self.defaultProps.titleFontData),
			subHeadingFontData = _Value(self.defaultProps.subHeadingFontData),
			buttonFontData = _Value(self.defaultProps.buttonFontData),
			scale = _Value(self.defaultProps.scale),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.new(
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.backgroundColor,
			self._internalStates.textColor,
			self._internalStates.elevation,
			self._internalStates.schemeType,
			self._internalStates.titleFontData,
			self._internalStates.subHeadingFontData,
			self._internalStates.buttonFontData,
			self._internalStates.scale
		)
	end

	function NewMenuRowBarTopCenter:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function NewMenuRowBarTopCenter:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function NewMenuRowBarTopCenter:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.New = NewMenuRowBarTopCenter
end

do
	local PrimaryMenuRowBarTopCenter = React.Component:extend("PrimaryMenuRowBarTopCenter")
	PrimaryMenuRowBarTopCenter.defaultProps = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	function PrimaryMenuRowBarTopCenter:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.primary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function PrimaryMenuRowBarTopCenter:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function PrimaryMenuRowBarTopCenter:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function PrimaryMenuRowBarTopCenter:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Primary = PrimaryMenuRowBarTopCenter
end

do
	local SecondaryMenuRowBarTopCenter = React.Component:extend("SecondaryMenuRowBarTopCenter")
	SecondaryMenuRowBarTopCenter.defaultProps = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	function SecondaryMenuRowBarTopCenter:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.secondary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function SecondaryMenuRowBarTopCenter:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function SecondaryMenuRowBarTopCenter:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function SecondaryMenuRowBarTopCenter:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Secondary = SecondaryMenuRowBarTopCenter
end

do
	local TertiaryMenuRowBarTopCenter = React.Component:extend("TertiaryMenuRowBarTopCenter")
	TertiaryMenuRowBarTopCenter.defaultProps = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	function TertiaryMenuRowBarTopCenter:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.tertiary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function TertiaryMenuRowBarTopCenter:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function TertiaryMenuRowBarTopCenter:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function TertiaryMenuRowBarTopCenter:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Tertiary = TertiaryMenuRowBarTopCenter
end

return Interface


--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))
local Roact = require(_Packages:WaitForChild("Roact"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Class
local Interface = {}

do
	local NewMenuRowBarTopCenter = Roact.Component:extend("NewMenuRowBarTopCenter")
	NewMenuRowBarTopCenter.defaultProps = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	function NewMenuRowBarTopCenter:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			backgroundColor = _Value(self.defaultProps.backgroundColor),
			textColor = _Value(self.defaultProps.textColor),
			elevation = _Value(self.defaultProps.elevation),
			schemeType = _Value(self.defaultProps.schemeType),
			titleFontData = _Value(self.defaultProps.titleFontData),
			subHeadingFontData = _Value(self.defaultProps.subHeadingFontData),
			buttonFontData = _Value(self.defaultProps.buttonFontData),
			scale = _Value(self.defaultProps.scale),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.new(
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.backgroundColor,
			self._internalStates.textColor,
			self._internalStates.elevation,
			self._internalStates.schemeType,
			self._internalStates.titleFontData,
			self._internalStates.subHeadingFontData,
			self._internalStates.buttonFontData,
			self._internalStates.scale
		)
	end

	function NewMenuRowBarTopCenter:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function NewMenuRowBarTopCenter:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function NewMenuRowBarTopCenter:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.New = NewMenuRowBarTopCenter
end

do
	local PrimaryMenuRowBarTopCenter = Roact.Component:extend("PrimaryMenuRowBarTopCenter")
	PrimaryMenuRowBarTopCenter.defaultProps = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	function PrimaryMenuRowBarTopCenter:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.primary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function PrimaryMenuRowBarTopCenter:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function PrimaryMenuRowBarTopCenter:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function PrimaryMenuRowBarTopCenter:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Primary = PrimaryMenuRowBarTopCenter
end

do
	local SecondaryMenuRowBarTopCenter = Roact.Component:extend("SecondaryMenuRowBarTopCenter")
	SecondaryMenuRowBarTopCenter.defaultProps = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	function SecondaryMenuRowBarTopCenter:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.secondary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function SecondaryMenuRowBarTopCenter:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function SecondaryMenuRowBarTopCenter:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function SecondaryMenuRowBarTopCenter:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Secondary = SecondaryMenuRowBarTopCenter
end

do
	local TertiaryMenuRowBarTopCenter = Roact.Component:extend("TertiaryMenuRowBarTopCenter")
	TertiaryMenuRowBarTopCenter.defaultProps = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	function TertiaryMenuRowBarTopCenter:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.tertiary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function TertiaryMenuRowBarTopCenter:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function TertiaryMenuRowBarTopCenter:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function TertiaryMenuRowBarTopCenter:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Tertiary = TertiaryMenuRowBarTopCenter
end

return Interface


--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local Enums = require(_Package:WaitForChild("Enums"))

local Translators = require(_Package:WaitForChild("Translators"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
type Wrapper<BaseInstance, Definition, ClassName> = Translators.Wrapper<BaseInstance, Definition, ClassName>

export type CenterWrapperDefinition = {
	Title: string,
	Buttons: { ButtonData },
	Navigation: ButtonData?,
	BackgroundColor: Color3,
	TextColor: Color3,
	Elevation: number,
	SchemeType: Enums.SchemeType,
	TitleFontData: FontData,
	SubHeadingFontData: FontData,
	ButtonFontData: FontData,
	Scale: number,
}
export type CenterWrapper = Wrapper<GuiObject, CenterWrapperDefinition, "Center">

export type StyledCenterWrapperDefinition = {
	Style: Style,
	Title: string,
	Buttons: { ButtonData },
	Navigation: ButtonData?,
	Elevation: number?,
}
export type StyledCenterWrapper = Wrapper<GuiObject, StyledCenterWrapperDefinition, "StyledCenter">
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Interface
local Interface = {}

function Interface.new(): StyledCenterWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		BackgroundColor = _Value(Color3.new()),
		TextColor = _Value(Color3.new()),
		Elevation = _Value(0),
		SchemeType = _Value(Enums.SchemeType.Light),
		TitleFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		SubHeadingFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		ButtonFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		Scale = _Value(1),
	}
	local defaults: { [string]: unknown? } = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	local inst: GuiObject = Source.new(
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.BackgroundColor,
		definition.TextColor,
		definition.Elevation,
		definition.SchemeType,
		definition.TitleFontData,
		definition.SubHeadingFontData,
		definition.ButtonFontData,
		definition.Scale
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledCenter", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.primary(): StyledCenterWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	local inst: GuiObject = Source.primary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledCenter", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.secondary(): StyledCenterWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	local inst: GuiObject = Source.secondary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledCenter", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.tertiary(): StyledCenterWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	local inst: GuiObject = Source.tertiary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledCenter", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

return Interface


--!strict
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local Icons = require(_Packages:WaitForChild("MaterialIcons"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local Enums = require(_Package:WaitForChild("Enums"))

-- Types
-- Constants
-- Variables
-- References

-- Class
return function(frame: Frame)
	local maid = Maid.new()
	task.spawn(function()
		local Module = require(script.Parent:WaitForChild("ColdFusion"))

		local listLayout = maid:GiveTask(Instance.new("UIListLayout"))
		listLayout.FillDirection = Enum.FillDirection.Vertical
		listLayout.Padding = UDim.new(0, 10)
		listLayout.VerticalAlignment = Enum.VerticalAlignment.Center
		listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
		listLayout.Parent = frame

		local function build(isDarkMode: boolean, color: Color3)
			local style = Style.new(
				1.4,
				Enum.Font.SourceSans,
				if isDarkMode then Enums.SchemeType.Dark else Enums.SchemeType.Light,
				color
			)

			local out = maid:GiveTask(
				Module.new(
					"Title",
					{
						Types.ButtonData.new(function()
							print("save click")
						end, Icons.save),
						Types.ButtonData.new(function()
							print("publish click")
						end, Icons.publish),
					},
					Types.ButtonData.new(function()
						print("nav click")
					end, Icons.arrow_back),
					style:GetColor(Enums.ColorRoleType.Primary),
					style:GetColor(Enums.ColorRoleType.OnPrimary),
					1,
					style.SchemeType,
					style:GetFontData(Enums.FontType.TitleLarge),
					style:GetFontData(Enums.FontType.HeadlineMedium),
					style:GetFontData(Enums.FontType.LabelLarge),
					style.Scale
				)
			)

			out.Position = UDim2.fromScale(0.5, 0.5)
			out.AnchorPoint = Vector2.new(0.5, 0.5)
			out.Size = UDim2.fromScale(1, 0)
			out.Parent = frame
		end

		build(false, Color3.fromHSV(0, 0.9, 0.8))
		build(true, Color3.fromHSV(0, 0.9, 0.8))
		build(false, Color3.fromHSV(0.6, 0.9, 0.7))
		build(true, Color3.fromHSV(0.6, 0.9, 0.7))
		build(false, Color3.fromHSV(0.35, 0.9, 0.7))
		build(true, Color3.fromHSV(0.35, 0.9, 0.7))
	end)
	return function()
		maid:Destroy()
	end
end


--!strict
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local Icons = require(_Packages:WaitForChild("MaterialIcons"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local Enums = require(_Package:WaitForChild("Enums"))

-- Types
-- Constants
-- Variables
-- References

-- Class
return function(frame: Frame)
	local maid = Maid.new()
	task.spawn(function()
		local Module = require(script.Parent:WaitForChild("ColdFusion"))

		local listLayout = maid:GiveTask(Instance.new("UIListLayout"))
		listLayout.FillDirection = Enum.FillDirection.Vertical
		listLayout.Padding = UDim.new(0, 10)
		listLayout.VerticalAlignment = Enum.VerticalAlignment.Center
		listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
		listLayout.Parent = frame

		local function build(isDarkMode: boolean, color: Color3)
			local style = Style.new(
				0.75,
				Enum.Font.SourceSans,
				if isDarkMode then Enums.SchemeType.Dark else Enums.SchemeType.Light,
				color
			)

			do
				local out = maid:GiveTask(Module.primary(
					style,
					"Primary",
					{
						Types.ButtonData.new(function()
							print("save click")
						end, Icons.save),
						Types.ButtonData.new(function()
							print("publish click")
						end, Icons.publish),
					},
					Types.ButtonData.new(function()
						print("nav click")
					end, Icons.arrow_back)
				))

				out.Position = UDim2.fromScale(0.5, 0.5)
				out.AnchorPoint = Vector2.new(0.5, 0.5)
				out.Size = UDim2.fromScale(1, 0)
				out.Parent = frame
			end

			do
				local out = maid:GiveTask(Module.secondary(
					style,
					"Secondary",
					{
						Types.ButtonData.new(function()
							print("save click")
						end, Icons.save),
						Types.ButtonData.new(function()
							print("publish click")
						end, Icons.publish),
					},
					Types.ButtonData.new(function()
						print("nav click")
					end, Icons.arrow_back)
				))

				out.Position = UDim2.fromScale(0.5, 0.5)
				out.AnchorPoint = Vector2.new(0.5, 0.5)
				out.Size = UDim2.fromScale(1, 0)
				out.Parent = frame
			end

			do
				local out = maid:GiveTask(Module.tertiary(
					style,
					"Tertiary",
					{
						Types.ButtonData.new(function()
							print("save click")
						end, Icons.save),
						Types.ButtonData.new(function()
							print("publish click")
						end, Icons.publish),
					},
					Types.ButtonData.new(function()
						print("nav click")
					end, Icons.arrow_back)
				))

				out.Position = UDim2.fromScale(0.5, 0.5)
				out.AnchorPoint = Vector2.new(0.5, 0.5)
				out.Size = UDim2.fromScale(1, 0)
				out.Parent = frame
			end
		end
		build(false, Color3.new(1, 0, 0))
		build(true, Color3.new(1, 0, 0))
		build(false, Color3.new(0, 0, 1))
		build(true, Color3.new(0, 0, 1))
	end)
	return function()
		maid:Destroy()
	end
end


--!strict
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services

-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local TopBase = require(script.Parent.Parent:WaitForChild("Base"))
local Enums = require(_Package:WaitForChild("Enums"))

-- Types
type Maid = Maid.Maid
type State<V> = ColdFusion.State<V>
type ValueState<V> = ColdFusion.ValueState<V>
type CanBeState<V> = ColdFusion.CanBeState<V>
type ImageData = Types.ImageData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type Style = Style.Style
type FontData = Types.FontData
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))

-- Variables
-- References
-- Private Functions

-- Class
local Interface = {}

function newThemedComponent(
	themeDefaults: typeof(DEFAULTS.PRIMARY),
	style: CanBeState<Style>,

	backgroundColor: Enums.ColorRoleType,
	textColor: Enums.ColorRoleType,

	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	elevation: CanBeState<number?>
): GuiObject
	local maid = Maid.new()

	local _fuse = ColdFusion.fuse(maid)

	local _new = _fuse.new
	local _bind = _fuse.bind
	local _clone = _fuse.clone
	local _import = _fuse.import

	local _Value = _fuse.Value
	local _Computed = _fuse.Computed

	local styleState: State<Style> = _import(style, themeDefaults.STYLE)

	local out = Interface.new(
		_import(title, themeDefaults.TITLE),
		_import(buttons, themeDefaults.BUTTONS),
		_import(navigation, themeDefaults.NAVIGATION),
		_Computed(function(s: Style): Color3
			return s:GetColor(backgroundColor)
		end, styleState),
		_Computed(function(s: Style): Color3
			return s:GetColor(textColor)
		end, styleState),
		_import(elevation, themeDefaults.ELEVATION),
		_Computed(function(s: Style): any
			return s.SchemeType
		end, styleState),
		_Computed(function(s: Style): FontData
			return s:GetFontData(Enums.FontType.TitleLarge)
		end, styleState),
		_Computed(function(s: Style): FontData
			return s:GetFontData(Enums.FontType.HeadlineMedium)
		end, styleState),
		_Computed(function(s: Style): FontData
			return s:GetFontData(Enums.FontType.LabelLarge)
		end, styleState),
		_Computed(function(s: Style): number
			return s.Scale
		end, styleState)
	)

	maid:GiveTask(out.Destroying:Connect(function()
		maid:Destroy()
	end))

	return out
end

function Interface.primary(
	style: CanBeState<Style>,
	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	elevation: CanBeState<number?>
): GuiObject
	return newThemedComponent(
		DEFAULTS.PRIMARY,
		style,
		Enums.ColorRoleType.Primary,
		Enums.ColorRoleType.OnPrimary,
		title,
		buttons,
		navigation,
		elevation
	)
end

function Interface.secondary(
	style: CanBeState<Style>,
	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	elevation: CanBeState<number?>
): GuiObject
	return newThemedComponent(
		DEFAULTS.SECONDARY,
		style,
		Enums.ColorRoleType.Secondary,
		Enums.ColorRoleType.OnSecondary,
		title,
		buttons,
		navigation,
		elevation
	)
end

function Interface.tertiary(
	style: CanBeState<Style>,
	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	elevation: CanBeState<number?>
): GuiObject
	return newThemedComponent(
		DEFAULTS.TERTIARY,
		style,
		Enums.ColorRoleType.Tertiary,
		Enums.ColorRoleType.OnTertiary,
		title,
		buttons,
		navigation,
		elevation
	)
end

function Interface.new(
	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	backgroundColor: CanBeState<Color3>,
	textColor: CanBeState<Color3>,
	elevation: CanBeState<number>,
	schemeType: CanBeState<Enums.SchemeType>,
	titleFontData: CanBeState<FontData>,
	subHeadingFontData: CanBeState<FontData>,
	buttonFontData: CanBeState<FontData>,
	scale: CanBeState<number>
): GuiObject
	return TopBase.new(
		if title then title else DEFAULTS.NEW.TITLE,
		if buttons then buttons else DEFAULTS.NEW.BUTTONS,
		if navigation then navigation else DEFAULTS.NEW.NAVIGATION,
		"Large",
		if backgroundColor then backgroundColor else DEFAULTS.NEW.BACKGROUND_COLOR,
		if textColor then textColor else DEFAULTS.NEW.TEXT_COLOR,
		if elevation then elevation elseif DEFAULTS.NEW.ELEVATION then DEFAULTS.NEW.ELEVATION else 0,
		if schemeType then schemeType else DEFAULTS.NEW.SCHEME_TYPE,
		if titleFontData then titleFontData else DEFAULTS.NEW.TITLE_FONT_DATA,
		if subHeadingFontData then subHeadingFontData else DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		if buttonFontData then buttonFontData else DEFAULTS.NEW.BUTTON_FONT_DATA,
		if scale then scale else DEFAULTS.NEW.SCALE
	)
end

return Interface


--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))

local React = require(_Packages:WaitForChild("React"))
local ReactRoblox = require(_Packages:WaitForChild("ReactRoblox"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Class
local Interface = {}

do
	local NewMenuRowBarTopLarge = React.Component:extend("NewMenuRowBarTopLarge")
	NewMenuRowBarTopLarge.defaultProps = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	function NewMenuRowBarTopLarge:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			backgroundColor = _Value(self.defaultProps.backgroundColor),
			textColor = _Value(self.defaultProps.textColor),
			elevation = _Value(self.defaultProps.elevation),
			schemeType = _Value(self.defaultProps.schemeType),
			titleFontData = _Value(self.defaultProps.titleFontData),
			subHeadingFontData = _Value(self.defaultProps.subHeadingFontData),
			buttonFontData = _Value(self.defaultProps.buttonFontData),
			scale = _Value(self.defaultProps.scale),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.new(
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.backgroundColor,
			self._internalStates.textColor,
			self._internalStates.elevation,
			self._internalStates.schemeType,
			self._internalStates.titleFontData,
			self._internalStates.subHeadingFontData,
			self._internalStates.buttonFontData,
			self._internalStates.scale
		)
	end

	function NewMenuRowBarTopLarge:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function NewMenuRowBarTopLarge:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function NewMenuRowBarTopLarge:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.New = NewMenuRowBarTopLarge
end

do
	local PrimaryMenuRowBarTopLarge = React.Component:extend("PrimaryMenuRowBarTopLarge")
	PrimaryMenuRowBarTopLarge.defaultProps = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	function PrimaryMenuRowBarTopLarge:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.primary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function PrimaryMenuRowBarTopLarge:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function PrimaryMenuRowBarTopLarge:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function PrimaryMenuRowBarTopLarge:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Primary = PrimaryMenuRowBarTopLarge
end

do
	local SecondaryMenuRowBarTopLarge = React.Component:extend("SecondaryMenuRowBarTopLarge")
	SecondaryMenuRowBarTopLarge.defaultProps = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	function SecondaryMenuRowBarTopLarge:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.secondary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function SecondaryMenuRowBarTopLarge:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function SecondaryMenuRowBarTopLarge:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function SecondaryMenuRowBarTopLarge:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Secondary = SecondaryMenuRowBarTopLarge
end

do
	local TertiaryMenuRowBarTopLarge = React.Component:extend("TertiaryMenuRowBarTopLarge")
	TertiaryMenuRowBarTopLarge.defaultProps = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	function TertiaryMenuRowBarTopLarge:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.tertiary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function TertiaryMenuRowBarTopLarge:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function TertiaryMenuRowBarTopLarge:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function TertiaryMenuRowBarTopLarge:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Tertiary = TertiaryMenuRowBarTopLarge
end

return Interface


--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))
local Roact = require(_Packages:WaitForChild("Roact"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Class
local Interface = {}

do
	local NewMenuRowBarTopLarge = Roact.Component:extend("NewMenuRowBarTopLarge")
	NewMenuRowBarTopLarge.defaultProps = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	function NewMenuRowBarTopLarge:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			backgroundColor = _Value(self.defaultProps.backgroundColor),
			textColor = _Value(self.defaultProps.textColor),
			elevation = _Value(self.defaultProps.elevation),
			schemeType = _Value(self.defaultProps.schemeType),
			titleFontData = _Value(self.defaultProps.titleFontData),
			subHeadingFontData = _Value(self.defaultProps.subHeadingFontData),
			buttonFontData = _Value(self.defaultProps.buttonFontData),
			scale = _Value(self.defaultProps.scale),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.new(
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.backgroundColor,
			self._internalStates.textColor,
			self._internalStates.elevation,
			self._internalStates.schemeType,
			self._internalStates.titleFontData,
			self._internalStates.subHeadingFontData,
			self._internalStates.buttonFontData,
			self._internalStates.scale
		)
	end

	function NewMenuRowBarTopLarge:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function NewMenuRowBarTopLarge:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function NewMenuRowBarTopLarge:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.New = NewMenuRowBarTopLarge
end

do
	local PrimaryMenuRowBarTopLarge = Roact.Component:extend("PrimaryMenuRowBarTopLarge")
	PrimaryMenuRowBarTopLarge.defaultProps = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	function PrimaryMenuRowBarTopLarge:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.primary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function PrimaryMenuRowBarTopLarge:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function PrimaryMenuRowBarTopLarge:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function PrimaryMenuRowBarTopLarge:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Primary = PrimaryMenuRowBarTopLarge
end

do
	local SecondaryMenuRowBarTopLarge = Roact.Component:extend("SecondaryMenuRowBarTopLarge")
	SecondaryMenuRowBarTopLarge.defaultProps = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	function SecondaryMenuRowBarTopLarge:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.secondary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function SecondaryMenuRowBarTopLarge:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function SecondaryMenuRowBarTopLarge:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function SecondaryMenuRowBarTopLarge:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Secondary = SecondaryMenuRowBarTopLarge
end

do
	local TertiaryMenuRowBarTopLarge = Roact.Component:extend("TertiaryMenuRowBarTopLarge")
	TertiaryMenuRowBarTopLarge.defaultProps = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	function TertiaryMenuRowBarTopLarge:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.tertiary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function TertiaryMenuRowBarTopLarge:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function TertiaryMenuRowBarTopLarge:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function TertiaryMenuRowBarTopLarge:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Tertiary = TertiaryMenuRowBarTopLarge
end

return Interface


--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local Enums = require(_Package:WaitForChild("Enums"))

local Translators = require(_Package:WaitForChild("Translators"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
type Wrapper<BaseInstance, Definition, ClassName> = Translators.Wrapper<BaseInstance, Definition, ClassName>

export type LargeWrapperDefinition = {
	Title: string,
	Buttons: { ButtonData },
	Navigation: ButtonData?,
	BackgroundColor: Color3,
	TextColor: Color3,
	Elevation: number,
	SchemeType: Enums.SchemeType,
	TitleFontData: FontData,
	SubHeadingFontData: FontData,
	ButtonFontData: FontData,
	Scale: number,
}
export type LargeWrapper = Wrapper<GuiObject, LargeWrapperDefinition, "Large">

export type StyledLargeWrapperDefinition = {
	Style: Style,
	Title: string,
	Buttons: { ButtonData },
	Navigation: ButtonData?,
	Elevation: number?,
}
export type StyledLargeWrapper = Wrapper<GuiObject, StyledLargeWrapperDefinition, "StyledLarge">
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Interface
local Interface = {}

function Interface.new(): StyledLargeWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		BackgroundColor = _Value(Color3.new()),
		TextColor = _Value(Color3.new()),
		Elevation = _Value(0),
		SchemeType = _Value(Enums.SchemeType.Light),
		TitleFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		SubHeadingFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		ButtonFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		Scale = _Value(1),
	}
	local defaults: { [string]: unknown? } = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	local inst: GuiObject = Source.new(
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.BackgroundColor,
		definition.TextColor,
		definition.Elevation,
		definition.SchemeType,
		definition.TitleFontData,
		definition.SubHeadingFontData,
		definition.ButtonFontData,
		definition.Scale
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledLarge", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.primary(): StyledLargeWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	local inst: GuiObject = Source.primary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledLarge", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.secondary(): StyledLargeWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	local inst: GuiObject = Source.secondary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledLarge", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.tertiary(): StyledLargeWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	local inst: GuiObject = Source.tertiary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledLarge", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

return Interface


--!strict
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local Icons = require(_Packages:WaitForChild("MaterialIcons"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local Enums = require(_Package:WaitForChild("Enums"))

-- Types
-- Constants
-- Variables
-- References

-- Class
return function(frame: Frame)
	local maid = Maid.new()
	task.spawn(function()
		local Module = require(script.Parent:WaitForChild("ColdFusion"))

		local listLayout = maid:GiveTask(Instance.new("UIListLayout"))
		listLayout.FillDirection = Enum.FillDirection.Vertical
		listLayout.Padding = UDim.new(0, 10)
		listLayout.VerticalAlignment = Enum.VerticalAlignment.Center
		listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
		listLayout.Parent = frame

		local function build(isDarkMode: boolean, color: Color3)
			local style = Style.new(
				1.4,
				Enum.Font.SourceSans,
				if isDarkMode then Enums.SchemeType.Dark else Enums.SchemeType.Light,
				color
			)

			local out = maid:GiveTask(
				Module.new(
					"Title",
					{
						Types.ButtonData.new(function()
							print("save click")
						end, Icons.save),
						Types.ButtonData.new(function()
							print("publish click")
						end, Icons.publish),
					},
					Types.ButtonData.new(function()
						print("nav click")
					end, Icons.arrow_back),
					style:GetColor(Enums.ColorRoleType.Primary),
					style:GetColor(Enums.ColorRoleType.OnPrimary),
					1,
					style.SchemeType,
					style:GetFontData(Enums.FontType.TitleLarge),
					style:GetFontData(Enums.FontType.HeadlineMedium),
					style:GetFontData(Enums.FontType.LabelLarge),
					style.Scale
				)
			)

			out.Position = UDim2.fromScale(0.5, 0.5)
			out.AnchorPoint = Vector2.new(0.5, 0.5)
			out.Size = UDim2.fromScale(1, 0)
			out.Parent = frame
		end
		build(false, Color3.fromHSV(0, 0.9, 0.8))
		build(true, Color3.fromHSV(0, 0.9, 0.8))
		-- build(false, Color3.fromHSV(0.6, 0.9, 0.7))
		-- build(true, Color3.fromHSV(0.6, 0.9, 0.7))
		-- build(false, Color3.fromHSV(0.35, 0.9, 0.7))
		-- build(true, Color3.fromHSV(0.35, 0.9, 0.7))
	end)
	return function()
		maid:Destroy()
	end
end


--!strict
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services

-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local TopBase = require(script.Parent.Parent:WaitForChild("Base"))
local Enums = require(_Package:WaitForChild("Enums"))

-- Types
type Maid = Maid.Maid
type State<V> = ColdFusion.State<V>
type ValueState<V> = ColdFusion.ValueState<V>
type CanBeState<V> = ColdFusion.CanBeState<V>
type ImageData = Types.ImageData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type Style = Style.Style
type FontData = Types.FontData
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))

-- Variables
-- References
-- Private Functions

-- Class
local Interface = {}

function newThemedComponent(
	themeDefaults: typeof(DEFAULTS.PRIMARY),
	style: CanBeState<Style>,

	backgroundColor: Enums.ColorRoleType,
	textColor: Enums.ColorRoleType,

	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	elevation: CanBeState<number?>
): GuiObject
	local maid = Maid.new()

	local _fuse = ColdFusion.fuse(maid)

	local _new = _fuse.new
	local _bind = _fuse.bind
	local _clone = _fuse.clone
	local _import = _fuse.import

	local _Value = _fuse.Value
	local _Computed = _fuse.Computed

	local styleState: State<Style> = _import(style, themeDefaults.STYLE)

	local out = Interface.new(
		_import(title, themeDefaults.TITLE),
		_import(buttons, themeDefaults.BUTTONS),
		_import(navigation, themeDefaults.NAVIGATION),
		_Computed(function(s: Style): Color3
			return s:GetColor(backgroundColor)
		end, styleState),
		_Computed(function(s: Style): Color3
			return s:GetColor(textColor)
		end, styleState),
		_import(elevation, themeDefaults.ELEVATION),
		_Computed(function(s: Style): any
			return s.SchemeType
		end, styleState),
		_Computed(function(s: Style): FontData
			return s:GetFontData(Enums.FontType.TitleLarge)
		end, styleState),
		_Computed(function(s: Style): FontData
			return s:GetFontData(Enums.FontType.HeadlineMedium)
		end, styleState),
		_Computed(function(s: Style): FontData
			return s:GetFontData(Enums.FontType.LabelLarge)
		end, styleState),
		_Computed(function(s: Style): number
			return s.Scale
		end, styleState)
	)

	maid:GiveTask(out.Destroying:Connect(function()
		maid:Destroy()
	end))

	return out
end

function Interface.primary(
	style: CanBeState<Style>,
	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	elevation: CanBeState<number?>
): GuiObject
	return newThemedComponent(
		DEFAULTS.PRIMARY,
		style,
		Enums.ColorRoleType.Primary,
		Enums.ColorRoleType.OnPrimary,
		title,
		buttons,
		navigation,
		elevation
	)
end

function Interface.secondary(
	style: CanBeState<Style>,
	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	elevation: CanBeState<number?>
): GuiObject
	return newThemedComponent(
		DEFAULTS.SECONDARY,
		style,
		Enums.ColorRoleType.Secondary,
		Enums.ColorRoleType.OnSecondary,
		title,
		buttons,
		navigation,
		elevation
	)
end

function Interface.tertiary(
	style: CanBeState<Style>,
	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	elevation: CanBeState<number?>
): GuiObject
	return newThemedComponent(
		DEFAULTS.TERTIARY,
		style,
		Enums.ColorRoleType.Tertiary,
		Enums.ColorRoleType.OnTertiary,
		title,
		buttons,
		navigation,
		elevation
	)
end

function Interface.new(
	title: CanBeState<string>,
	buttons: CanBeState<{ ButtonData }>,
	navigation: CanBeState<ButtonData?>,
	backgroundColor: CanBeState<Color3>,
	textColor: CanBeState<Color3>,
	elevation: CanBeState<number>,
	schemeType: CanBeState<Enums.SchemeType>,
	titleFontData: CanBeState<FontData>,
	subHeadingFontData: CanBeState<FontData>,
	buttonFontData: CanBeState<FontData>,
	scale: CanBeState<number>
): GuiObject
	return TopBase.new(
		if title then title else DEFAULTS.NEW.TITLE,
		if buttons then buttons else DEFAULTS.NEW.BUTTONS,
		if navigation then navigation else DEFAULTS.NEW.NAVIGATION,
		"Medium",
		if backgroundColor then backgroundColor else DEFAULTS.NEW.BACKGROUND_COLOR,
		if textColor then textColor else DEFAULTS.NEW.TEXT_COLOR,
		if elevation then elevation elseif DEFAULTS.NEW.ELEVATION then DEFAULTS.NEW.ELEVATION else 0,
		if schemeType then schemeType else DEFAULTS.NEW.SCHEME_TYPE,
		if titleFontData then titleFontData else DEFAULTS.NEW.TITLE_FONT_DATA,
		if subHeadingFontData then subHeadingFontData else DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		if buttonFontData then buttonFontData else DEFAULTS.NEW.BUTTON_FONT_DATA,
		if scale then scale else DEFAULTS.NEW.SCALE
	)
end

return Interface


--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))

local React = require(_Packages:WaitForChild("React"))
local ReactRoblox = require(_Packages:WaitForChild("ReactRoblox"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Class
local Interface = {}

do
	local NewMenuRowBarTopMedium = React.Component:extend("NewMenuRowBarTopMedium")
	NewMenuRowBarTopMedium.defaultProps = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	function NewMenuRowBarTopMedium:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			backgroundColor = _Value(self.defaultProps.backgroundColor),
			textColor = _Value(self.defaultProps.textColor),
			elevation = _Value(self.defaultProps.elevation),
			schemeType = _Value(self.defaultProps.schemeType),
			titleFontData = _Value(self.defaultProps.titleFontData),
			subHeadingFontData = _Value(self.defaultProps.subHeadingFontData),
			buttonFontData = _Value(self.defaultProps.buttonFontData),
			scale = _Value(self.defaultProps.scale),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.new(
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.backgroundColor,
			self._internalStates.textColor,
			self._internalStates.elevation,
			self._internalStates.schemeType,
			self._internalStates.titleFontData,
			self._internalStates.subHeadingFontData,
			self._internalStates.buttonFontData,
			self._internalStates.scale
		)
	end

	function NewMenuRowBarTopMedium:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function NewMenuRowBarTopMedium:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function NewMenuRowBarTopMedium:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.New = NewMenuRowBarTopMedium
end

do
	local PrimaryMenuRowBarTopMedium = React.Component:extend("PrimaryMenuRowBarTopMedium")
	PrimaryMenuRowBarTopMedium.defaultProps = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	function PrimaryMenuRowBarTopMedium:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.primary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function PrimaryMenuRowBarTopMedium:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function PrimaryMenuRowBarTopMedium:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function PrimaryMenuRowBarTopMedium:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Primary = PrimaryMenuRowBarTopMedium
end

do
	local SecondaryMenuRowBarTopMedium = React.Component:extend("SecondaryMenuRowBarTopMedium")
	SecondaryMenuRowBarTopMedium.defaultProps = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	function SecondaryMenuRowBarTopMedium:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.secondary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function SecondaryMenuRowBarTopMedium:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function SecondaryMenuRowBarTopMedium:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function SecondaryMenuRowBarTopMedium:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Secondary = SecondaryMenuRowBarTopMedium
end

do
	local TertiaryMenuRowBarTopMedium = React.Component:extend("TertiaryMenuRowBarTopMedium")
	TertiaryMenuRowBarTopMedium.defaultProps = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	function TertiaryMenuRowBarTopMedium:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.tertiary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function TertiaryMenuRowBarTopMedium:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return React.createElement(ReactRoblox.createPortal, props)
	end
	function TertiaryMenuRowBarTopMedium:componentDidMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function TertiaryMenuRowBarTopMedium:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Tertiary = TertiaryMenuRowBarTopMedium
end

return Interface


--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))
local Roact = require(_Packages:WaitForChild("Roact"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Class
local Interface = {}

do
	local NewMenuRowBarTopMedium = Roact.Component:extend("NewMenuRowBarTopMedium")
	NewMenuRowBarTopMedium.defaultProps = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	function NewMenuRowBarTopMedium:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			backgroundColor = _Value(self.defaultProps.backgroundColor),
			textColor = _Value(self.defaultProps.textColor),
			elevation = _Value(self.defaultProps.elevation),
			schemeType = _Value(self.defaultProps.schemeType),
			titleFontData = _Value(self.defaultProps.titleFontData),
			subHeadingFontData = _Value(self.defaultProps.subHeadingFontData),
			buttonFontData = _Value(self.defaultProps.buttonFontData),
			scale = _Value(self.defaultProps.scale),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.new(
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.backgroundColor,
			self._internalStates.textColor,
			self._internalStates.elevation,
			self._internalStates.schemeType,
			self._internalStates.titleFontData,
			self._internalStates.subHeadingFontData,
			self._internalStates.buttonFontData,
			self._internalStates.scale
		)
	end

	function NewMenuRowBarTopMedium:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function NewMenuRowBarTopMedium:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function NewMenuRowBarTopMedium:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.New = NewMenuRowBarTopMedium
end

do
	local PrimaryMenuRowBarTopMedium = Roact.Component:extend("PrimaryMenuRowBarTopMedium")
	PrimaryMenuRowBarTopMedium.defaultProps = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	function PrimaryMenuRowBarTopMedium:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.primary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function PrimaryMenuRowBarTopMedium:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function PrimaryMenuRowBarTopMedium:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function PrimaryMenuRowBarTopMedium:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Primary = PrimaryMenuRowBarTopMedium
end

do
	local SecondaryMenuRowBarTopMedium = Roact.Component:extend("SecondaryMenuRowBarTopMedium")
	SecondaryMenuRowBarTopMedium.defaultProps = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	function SecondaryMenuRowBarTopMedium:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.secondary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function SecondaryMenuRowBarTopMedium:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function SecondaryMenuRowBarTopMedium:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function SecondaryMenuRowBarTopMedium:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Secondary = SecondaryMenuRowBarTopMedium
end

do
	local TertiaryMenuRowBarTopMedium = Roact.Component:extend("TertiaryMenuRowBarTopMedium")
	TertiaryMenuRowBarTopMedium.defaultProps = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	function TertiaryMenuRowBarTopMedium:init(initialProps: { [string]: unknown })
		self._maid = Maid.new()
		local _fuse = ColdFusion.fuse(self._maid)
		local _Value = _fuse.Value
		self._internalStates = {
			style = _Value(self.defaultProps.style),
			title = _Value(self.defaultProps.title),
			buttons = _Value(self.defaultProps.buttons),
			navigation = _Value(self.defaultProps.navigation),
			elevation = _Value(self.defaultProps.elevation),
		}
		table.freeze(self._internalStates)
		for k, v in pairs(initialProps) do
			if self._internalStates[k] then
				self._internalStates[k]:Set(v)
			end
		end
		self._instance = Source.tertiary(
			self._internalStates.style,
			self._internalStates.title,
			self._internalStates.buttons,
			self._internalStates.navigation,
			self._internalStates.elevation
		)
	end

	function TertiaryMenuRowBarTopMedium:render()
		local props = {
			target = self._instance,
		}
		for k, v in pairs(self.props) do
			if self.props[k] ~= v then
				if self._internalStates[k] then
					if v == nil then
						v = self.defaultProps[k]
					end
					self._internalStates[k]:Set(v)
				else
					props[k] = v
				end
			end
		end
		return Roact.createElement(Roact.Portal, props)
	end
	function TertiaryMenuRowBarTopMedium:didMount()
		for k, v in pairs(self) do
			if typeof(v) == "table" then
				if v["virtualNode"] then
					if self._instance.Parent ~= v["virtualNode"]["hostParent"] then
						self._instance.Parent = v["virtualNode"]["hostParent"]
					end
					break
				end
			end
		end
	end
	function TertiaryMenuRowBarTopMedium:willUnmount()
		self._maid:Destroy()
		self._instance:Destroy()
	end
	Interface.Tertiary = TertiaryMenuRowBarTopMedium
end

return Interface


--!strict
-- this script was generated by the build system, please do not make manual edits
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local ColdFusion = require(_Packages:WaitForChild("ColdFusion"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local Enums = require(_Package:WaitForChild("Enums"))

local Translators = require(_Package:WaitForChild("Translators"))

local Source = require(script.Parent:WaitForChild("ColdFusion"))

-- Types
type Maid = Maid.Maid
type Style = Style.Style
type FontData = Types.FontData
type OptionData = Types.OptionData
type ButtonData = Types.ButtonData
type ImageData = Types.ImageData
type CanBeState<V> = ColdFusion.CanBeState<V>
type Wrapper<BaseInstance, Definition, ClassName> = Translators.Wrapper<BaseInstance, Definition, ClassName>

export type MediumWrapperDefinition = {
	Title: string,
	Buttons: { ButtonData },
	Navigation: ButtonData?,
	BackgroundColor: Color3,
	TextColor: Color3,
	Elevation: number,
	SchemeType: Enums.SchemeType,
	TitleFontData: FontData,
	SubHeadingFontData: FontData,
	ButtonFontData: FontData,
	Scale: number,
}
export type MediumWrapper = Wrapper<GuiObject, MediumWrapperDefinition, "Medium">

export type StyledMediumWrapperDefinition = {
	Style: Style,
	Title: string,
	Buttons: { ButtonData },
	Navigation: ButtonData?,
	Elevation: number?,
}
export type StyledMediumWrapper = Wrapper<GuiObject, StyledMediumWrapperDefinition, "StyledMedium">
-- Constants
local DEFAULTS = require(script.Parent:WaitForChild("Defaults"))
-- Variables
-- References
-- Private Functions
-- Interface
local Interface = {}

function Interface.new(): StyledMediumWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		BackgroundColor = _Value(Color3.new()),
		TextColor = _Value(Color3.new()),
		Elevation = _Value(0),
		SchemeType = _Value(Enums.SchemeType.Light),
		TitleFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		SubHeadingFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		ButtonFontData = _Value(Types.FontData.new(Font.fromEnum(Enum.Font.SourceSans), 14)),
		Scale = _Value(1),
	}
	local defaults: { [string]: unknown? } = {
		title = DEFAULTS.NEW.TITLE,
		buttons = DEFAULTS.NEW.BUTTONS,
		navigation = DEFAULTS.NEW.NAVIGATION,
		backgroundColor = DEFAULTS.NEW.BACKGROUND_COLOR,
		textColor = DEFAULTS.NEW.TEXT_COLOR,
		elevation = DEFAULTS.NEW.ELEVATION,
		schemeType = DEFAULTS.NEW.SCHEME_TYPE,
		titleFontData = DEFAULTS.NEW.TITLE_FONT_DATA,
		subHeadingFontData = DEFAULTS.NEW.SUB_HEADING_FONT_DATA,
		buttonFontData = DEFAULTS.NEW.BUTTON_FONT_DATA,
		scale = DEFAULTS.NEW.SCALE,
	}
	local inst: GuiObject = Source.new(
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.BackgroundColor,
		definition.TextColor,
		definition.Elevation,
		definition.SchemeType,
		definition.TitleFontData,
		definition.SubHeadingFontData,
		definition.ButtonFontData,
		definition.Scale
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledMedium", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.primary(): StyledMediumWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.PRIMARY.STYLE,
		title = DEFAULTS.PRIMARY.TITLE,
		buttons = DEFAULTS.PRIMARY.BUTTONS,
		navigation = DEFAULTS.PRIMARY.NAVIGATION,
		elevation = DEFAULTS.PRIMARY.ELEVATION,
	}
	local inst: GuiObject = Source.primary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledMedium", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.secondary(): StyledMediumWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.SECONDARY.STYLE,
		title = DEFAULTS.SECONDARY.TITLE,
		buttons = DEFAULTS.SECONDARY.BUTTONS,
		navigation = DEFAULTS.SECONDARY.NAVIGATION,
		elevation = DEFAULTS.SECONDARY.ELEVATION,
	}
	local inst: GuiObject = Source.secondary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledMedium", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

function Interface.tertiary(): StyledMediumWrapper
	local maid = Maid.new()
	local _fuse = ColdFusion.fuse(maid)
	local _Value = _fuse.Value
	local definition = {
		Style = _Value(Style.new(1, Enum.Font.SourceSans, "Light", Color3.new(0, 0.4, 0.7))),
		Title = _Value("Title"),
		Buttons = _Value({}),
		Navigation = _Value(nil),
		Elevation = _Value(0),
	}
	local defaults: { [string]: unknown? } = {
		style = DEFAULTS.TERTIARY.STYLE,
		title = DEFAULTS.TERTIARY.TITLE,
		buttons = DEFAULTS.TERTIARY.BUTTONS,
		navigation = DEFAULTS.TERTIARY.NAVIGATION,
		elevation = DEFAULTS.TERTIARY.ELEVATION,
	}
	local inst: GuiObject = Source.tertiary(
		definition.Style,
		definition.Title,
		definition.Buttons,
		definition.Navigation,
		definition.Elevation
	)
	maid:GiveTask(inst.Destroying:Connect(function()
		maid:Destroy()
	end))
	local wrapper, cleanUp = Translators.ColdFusion.toWrapper("StyledMedium", inst, definition, defaults)
	maid:GiveTask(cleanUp)
	return wrapper
end

return Interface


--!strict
local _Package = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent
local _Packages = _Package.Parent
-- Services
-- Packages
local Maid = require(_Packages:WaitForChild("Maid"))
local Icons = require(_Packages:WaitForChild("MaterialIcons"))

-- Modules
local Types = require(_Package:WaitForChild("Types"))
local Style = require(_Package:WaitForChild("Style"))
local Enums = require(_Package:WaitForChild("Enums"))

-- Types
-- Constants
-- Variables
-- References

-- Class
return function(frame: Frame)
	local maid = Maid.new()
	task.spawn(function()
		local Module = require(script.Parent:WaitForChild("ColdFusion"))

		local listLayout = maid:GiveTask(Instance.new("UIListLayout"))
		listLayout.FillDirection = Enum.FillDirection.Vertical
		listLayout.Padding = UDim.new(0, 10)
		listLayout.VerticalAlignment = Enum.VerticalAlignment.Center
		listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
		listLayout.Parent = frame

		local function build(isDarkMode: boolean, color: Color3)
			local style = Style.new(
				1.4,
				Enum.Font.SourceSans,
				if isDarkMode then Enums.SchemeType.Dark else Enums.SchemeType.Light,
				color
			)

			local out = maid:GiveTask(
				Module.new(
					"Title",
					{
						Types.ButtonData.new(function()
							print("save click")
						end, Icons.save),
						Types.ButtonData.new(function()
							print("publish click")
						end, Icons.publish),
					},
					Types.ButtonData.new(function()
						print("nav click")
					end, Icons.arrow_back),
					style:GetColor(Enums.ColorRoleType.Primary),
					style:GetColor(Enums.ColorRoleType.OnPrimary),
					1,
					style.SchemeType,
					style:GetFontData(Enums.FontType.TitleLarge),
					style:GetFontData(Enums.FontType.HeadlineSmall),
					style:GetFontData(Enums.FontType.LabelLarge),
					style.Scale
				)
			)

			out.Position = UDim2.fromScale(0.5, 0.5)
			out.AnchorPoint = Vector2.new(0.5, 0.5)
			out.Size = UDim2.fromScale(1, 0)
			out.Parent = frame
		end
		build(false, Color3.fromHSV(0, 0.9, 0.8))
		build(true, Color3.fromHSV(0, 0.9, 0.8))
		build(false, Color3.fromHSV(0.6, 0.9, 0.7))
		-- build(true, Color3.fromHSV(0.6, 0.9, 0.7))
		-- build(false, Color3.fromHSV(0.35, 0.9, 0.7))
		-- build(true, Color3.fromHSV(0.35, 0.9, 0.7))
	end)
	return function()
		maid:Destroy()
	end
end