//#region src/definitions/elements/ActionElement.ts
var ActionElementDefaults = {
	type: "action.button",
	label: "Action",
	variant: "primary",
	size: "md",
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var ActionElementMetadata = {
	icon: "bolt",
	displayLabel: "Actions",
	elementCategory: "action",
	description: "Create interactive buttons or links that trigger actions when clicked."
};
/**
* EditConfig describes how the FormBuilder inspector renders each
* configurable property. Each key matches a property on `ActionElement`;
* the value is a (loosely-typed) element spec.
*/
var ActionElementEditConfig = {
	style: {
		type: "option-select.select",
		defaultValue: "button",
		label: "Action Style",
		columns: 6,
		selectOptions: [
			{
				label: "Button",
				value: "button"
			},
			{
				label: "Button Group",
				value: "button-group"
			},
			{
				label: "Link",
				value: "link"
			}
		],
		section: "layout"
	},
	label: {
		type: "input.text",
		defaultValue: "Action",
		label: "Label",
		columns: 12,
		section: "configuration"
	},
	icon: {
		type: "picker.icon",
		label: "Icon",
		columns: 6,
		section: "configuration"
	},
	variant: {
		type: "option-select.select",
		defaultValue: "primary",
		label: "Variant",
		columns: 6,
		selectOptions: [
			{
				label: "Primary",
				value: "primary"
			},
			{
				label: "Secondary",
				value: "secondary"
			},
			{
				label: "Success",
				value: "success"
			},
			{
				label: "Danger",
				value: "danger"
			},
			{
				label: "Warning",
				value: "warning"
			},
			{
				label: "Info",
				value: "info"
			},
			{
				label: "Light",
				value: "light"
			},
			{
				label: "Dark",
				value: "dark"
			},
			{
				label: "Link",
				value: "link"
			},
			{
				label: "Outline Primary",
				value: "outline-primary"
			},
			{
				label: "Outline Secondary",
				value: "outline-secondary"
			}
		],
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["button", "link"]
		}]
	},
	size: {
		type: "option-select.select",
		defaultValue: "md",
		label: "Size",
		columns: 6,
		selectOptions: [
			{
				label: "Small",
				value: "sm"
			},
			{
				label: "Medium",
				value: "md"
			},
			{
				label: "Large",
				value: "lg"
			}
		],
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["button", "button-group"]
		}]
	},
	block: {
		type: "boolean.switch",
		label: "Full Width",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["button", "button-group"]
		}]
	},
	href: {
		type: "input.text",
		label: "URL",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["button", "link"]
		}]
	},
	target: {
		type: "option-select.select",
		defaultValue: "_self",
		label: "Link Target",
		columns: 6,
		selectOptions: [
			{
				label: "Same Tab",
				value: "_self"
			},
			{
				label: "New Tab",
				value: "_blank"
			},
			{
				label: "Parent Frame",
				value: "_parent"
			},
			{
				label: "Top Frame",
				value: "_top"
			}
		],
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["button", "link"]
		}]
	},
	emit: {
		type: "input.text",
		label: "Emit Event Name",
		columns: 6,
		section: "advanced",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["button", "link"]
		}]
	},
	confirm: {
		type: "boolean.switch",
		label: "Require Confirmation",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["button", "link"]
		}]
	},
	confirmMessage: {
		type: "input.textarea",
		label: "Confirmation Message",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "confirm",
			logic: "==",
			value: true
		}]
	},
	items: {
		type: "configuration-block.repeatable",
		label: "Group Items",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["button-group", "buttongroup"]
		}]
	}
};
var ActionStyleMetadataMap = {
	button: {
		displayLabel: "Button",
		description: "A clickable button that triggers an action or navigation."
	},
	"button-group": {
		displayLabel: "Button Group",
		description: "A group of related action buttons rendered side-by-side."
	},
	link: {
		displayLabel: "Link",
		description: "An inline hyperlink that navigates or triggers an action."
	}
};
//#endregion
//#region src/definitions/elements/BooleanElement.ts
var BooleanElementDefaults = {
	type: "boolean.checkbox",
	label: "Boolean Label",
	defaultValue: false,
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var BooleanElementMetadata = {
	icon: "square-check",
	displayLabel: "True or False",
	elementCategory: "boolean",
	description: "Create a boolean field to store true/false values and display as a checkbox, switch, radio button, or icon toggle."
};
/**
* EditConfig describes how the FormBuilder inspector renders each
* configurable property. Each key matches a property on `BooleanElement`;
* the value is a (loosely-typed) element spec.
*/
var BooleanElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Label",
		columns: 12,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Name",
		columns: 12,
		section: "advanced"
	},
	style: {
		type: "option-select.select",
		defaultValue: "checkbox",
		label: "Boolean Style",
		columns: 6,
		selectOptions: [
			{
				label: "Checkbox",
				value: "checkbox"
			},
			{
				label: "Switch",
				value: "switch"
			},
			{
				label: "Radio",
				value: "radio"
			},
			{
				label: "Icon Toggle",
				value: "icon-toggle"
			}
		],
		section: "layout"
	},
	defaultValue: {
		type: "boolean.checkbox",
		label: "Default Value",
		columns: 12,
		section: "configuration"
	},
	required: {
		type: "boolean.switch",
		label: "Make item required",
		columns: 6,
		section: "configuration"
	},
	readonly: {
		type: "boolean.switch",
		label: "Make item read-only",
		columns: 6,
		section: "configuration"
	},
	inline: {
		type: "boolean.switch",
		label: "Inline Options",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "radio"
		}]
	},
	trueLabel: {
		type: "input.text",
		label: "True Label",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["radio", "switch"]
		}]
	},
	falseLabel: {
		type: "input.text",
		label: "False Label",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["radio", "switch"]
		}]
	},
	trueIcon: {
		type: "picker.icon",
		label: "True Icon",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "icon-toggle"
		}]
	},
	falseIcon: {
		type: "picker.icon",
		label: "False Icon",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "icon-toggle"
		}]
	}
};
var BooleanStyleMetadataMap = {
	checkbox: {
		displayLabel: "Checkbox",
		description: "A standard checkbox for toggling a true/false value."
	},
	switch: {
		displayLabel: "Switch",
		description: "A toggle switch for enabling or disabling a setting."
	},
	radio: {
		displayLabel: "Radio",
		description: "Radio buttons showing true/false as two labelled choices."
	},
	"icon-toggle": {
		displayLabel: "Icon Toggle",
		description: "An icon that toggles between two states with custom icons."
	}
};
//#endregion
//#region src/definitions/elements/CardLayoutElement.ts
var CardLayoutElementDefaults = {
	type: "card.list",
	showCard: true,
	gutterY: "1rem",
	gutterX: "0",
	gridCols: 3,
	gridRowHeight: 60,
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var CardLayoutElementMetadata = {
	icon: "layout-panel-left",
	displayLabel: "Card / Layout Block",
	elementCategory: "card",
	description: "A layout container. Use 'list' to group elements in a card, 'tab' to create a tab list (each tab is its own container), 'info' for display tiles, or 'datatable'/'grid' for structured data."
};
var CardLayoutElementEditConfig = {
	style: {
		type: "option-select.select",
		defaultValue: "list",
		label: "Card Style",
		selectOptions: [
			{
				label: "List",
				value: "list"
			},
			{
				label: "Tab List",
				value: "tab"
			},
			{
				label: "Info Card",
				value: "info"
			},
			{
				label: "Data Table",
				value: "datatable"
			},
			{
				label: "Grid Layout",
				value: "grid"
			}
		],
		columns: 12,
		section: "layout"
	},
	title: {
		type: "input.text",
		label: "Title",
		columns: 12,
		section: "configuration"
	},
	subtitle: {
		type: "input.text",
		label: "Subtitle",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["list", "info"]
		}]
	},
	showCard: {
		type: "boolean.switch",
		defaultValue: true,
		label: "Show Card Chrome",
		columns: 12,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: [
				"list",
				"tab",
				"info"
			]
		}]
	},
	horizontalNav: {
		type: "boolean.switch",
		label: "Horizontal Tabs",
		columns: 12,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "tab"
		}]
	},
	navOnTop: {
		type: "boolean.switch",
		label: "Use Top Navigation",
		columns: 12,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "tab"
		}]
	},
	hideNav: {
		type: "boolean.switch",
		label: "Hide Navigation Bar",
		columns: 12,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "tab"
		}]
	},
	gutterY: {
		type: "input.text",
		label: "Vertical Gap",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["list", "tab"]
		}]
	},
	gutterX: {
		type: "input.text",
		label: "Horizontal Gap",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["list", "tab"]
		}]
	},
	gridCols: {
		type: "input.number",
		label: "Grid Columns",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "grid"
		}]
	},
	gridRowHeight: {
		type: "input.number",
		label: "Row Height (px)",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "grid"
		}]
	},
	dataRoute: {
		type: "input.text",
		label: "Data Route",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "datatable"
		}]
	},
	icon: {
		type: "picker.icon",
		label: "Header Icon",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "info"
		}]
	},
	iconColor: {
		type: "input.text",
		label: "Icon Color",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "info"
		}]
	},
	headerImage: {
		type: "file.asset-picker",
		label: "Header Image",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "info"
		}]
	},
	headerRatio: {
		type: "input.text",
		label: "Image Aspect Ratio",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "info"
		}]
	},
	lessPadding: {
		type: "boolean.switch",
		label: "Reduce Padding",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "info"
		}]
	}
};
var CardStyleMetadataMap = {
	list: {
		displayLabel: "List",
		description: "A card containing a vertical list of elements — the primary layout block."
	},
	tab: {
		displayLabel: "Tab List",
		description: "A tab list — a tabbed card where each tab is its own container holding a list of elements."
	},
	info: {
		displayLabel: "Info Card",
		description: "A display tile with an optional header image/icon and key-value fields."
	},
	datatable: {
		displayLabel: "Data Table",
		description: "A sortable, paginated data table fetched from an API route."
	},
	grid: {
		displayLabel: "Grid Layout",
		description: "A CSS-grid canvas for structured multi-column element placement."
	}
};
//#endregion
//#region src/definitions/elements/BuilderElement.ts
var BuilderElementDefaults = {
	type: "builder.object-builder",
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var BuilderElementMetadata = {
	icon: "puzzle",
	displayLabel: "Builder",
	elementCategory: "builder",
	description: "Add a builder to allow creating of forms, objects, reactive canvases, and more."
};
var BuilderElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Label",
		columnsMd: 6,
		columns: 12,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Name",
		columns: 12,
		section: "advanced"
	},
	style: {
		type: "option-select.select",
		defaultValue: "object-builder",
		label: "Builder Style",
		columns: 12,
		section: "layout",
		selectOptions: [
			{
				label: "Form Builder",
				value: "form-builder"
			},
			{
				label: "Object Builder",
				value: "object-builder"
			},
			{
				label: "Preset Builder",
				value: "preset-builder"
			},
			{
				label: "Reactive Canvas Builder",
				value: "reactive-canvas-builder"
			},
			{
				label: "Element List Builder",
				value: "element-list-builder"
			},
			{
				label: "Quiz Builder",
				value: "quiz-builder"
			},
			{
				label: "Dependency List Builder",
				value: "dependency-list-builder"
			},
			{
				label: "Grid Builder",
				value: "grid-builder"
			}
		]
	},
	displayHeader: {
		type: "boolean.switch",
		label: "Show builder header",
		columns: 6,
		section: "layout"
	}
};
var BuilderStyleMetadataMap = {
	"form-builder": {
		displayLabel: "Form Builder",
		description: "A visual builder for creating form element schemas."
	},
	"object-builder": {
		displayLabel: "Object Builder",
		description: "A builder for authoring typed key-value object schemas."
	},
	"preset-builder": {
		displayLabel: "Preset Builder",
		description: "A named preset wrapper around a form builder schema."
	},
	"reactive-canvas-builder": {
		displayLabel: "Reactive Canvas",
		description: "A builder for positioning elements on an absolute canvas."
	},
	"element-list-builder": {
		displayLabel: "Element List",
		description: "A builder for authoring a flat list of elements."
	},
	"quiz-builder": {
		displayLabel: "Quiz Builder",
		description: "A builder for creating quiz questions and answer options."
	},
	"dependency-list-builder": {
		displayLabel: "Dependency Rules",
		description: "A builder for conditional dependency rules between fields."
	},
	"grid-builder": {
		displayLabel: "Grid Builder",
		description: "A builder for arranging elements in a CSS grid layout."
	}
};
//#endregion
//#region src/definitions/elements/CodeElement.ts
var CodeElementDefaults = {
	type: "code.git-editor",
	height: "60vh",
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var CodeElementMetadata = {
	icon: "code",
	displayLabel: "Code",
	elementCategory: "code",
	description: "Developer-oriented blocks: git editor, file tree, pull requests, build status, and chat messages."
};
var CodeElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Label",
		columnsMd: 6,
		columns: 12,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Name",
		columns: 12,
		section: "advanced"
	},
	style: {
		type: "option-select.select",
		defaultValue: "git-editor",
		label: "Code Block Style",
		columns: 12,
		section: "layout",
		selectOptions: [
			{
				label: "Git Editor",
				value: "git-editor"
			},
			{
				label: "File Tree",
				value: "file-tree"
			},
			{
				label: "Pull Requests List",
				value: "pull-requests-list"
			},
			{
				label: "Build Status",
				value: "build-status"
			},
			{
				label: "Chat Message",
				value: "chat-message"
			}
		]
	},
	pluginPageId: {
		type: "input.text",
		contentType: "integer",
		label: "Plugin Page ID",
		columns: 6,
		section: "configuration"
	},
	teamSlug: {
		type: "input.text",
		label: "Team Slug",
		columns: 6,
		section: "configuration"
	},
	repository: {
		type: "input.text",
		label: "Repository",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: [
				"git-editor",
				"file-tree",
				"pull-requests-list",
				"build-status"
			]
		}]
	},
	branch: {
		type: "input.text",
		label: "Branch",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: [
				"git-editor",
				"pull-requests-list",
				"build-status"
			]
		}]
	},
	rootPath: {
		type: "input.text",
		label: "Root Path",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "file-tree"
		}]
	},
	buildId: {
		type: "input.text",
		label: "Build ID",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "build-status"
		}]
	},
	height: {
		type: "input.text",
		label: "Height",
		defaultValue: "60vh",
		columns: 6,
		section: "layout"
	}
};
var CodeStyleMetadataMap = {
	"git-editor": {
		displayLabel: "Git Editor",
		description: "Browse and edit files in a connected git repository."
	},
	"file-tree": {
		displayLabel: "File Tree",
		description: "Display a navigable file tree for a repository."
	},
	"pull-requests-list": {
		displayLabel: "Pull Requests",
		description: "List pull requests for a connected repository."
	},
	"build-status": {
		displayLabel: "Build Status",
		description: "Show CI/CD build status for a branch or commit."
	},
	"chat-message": {
		displayLabel: "Chat Message",
		description: "Render a chat message bubble with author and content."
	}
};
//#endregion
//#region src/definitions/elements/ConfigurationBlockElement.ts
var ConfigurationBlockElementDefaults = {
	type: "configuration-block.elements-block",
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var ConfigurationBlockElementMetadata = {
	icon: "square-dashed-circle-plus",
	displayLabel: "Configuration Group",
	elementCategory: "configuration-block",
	description: "Create a group of configuration elements, these can be repeatable element blocks, modals or dialogs."
};
var ConfigurationBlockElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Label",
		columnsMd: 6,
		columns: 12,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Name",
		columns: 12,
		section: "advanced"
	},
	style: {
		type: "option-select.select",
		defaultValue: "elements-block",
		label: "Configuration Style",
		selectOptions: [
			{
				label: "Elements List",
				value: "elements-block"
			},
			{
				label: "Repeatable",
				value: "repeatable"
			},
			{
				label: "Dialog",
				value: "dialog"
			},
			{
				label: "Modal",
				value: "modal"
			}
		],
		columns: 12,
		section: "layout"
	},
	addOptionButtonLabel: {
		type: "input.text",
		label: "Add Button Label",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "repeatable"
		}]
	},
	collapsedByDefault: {
		type: "boolean.switch",
		label: "Collapse rows by default",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "repeatable"
		}]
	},
	triggerButtonLabel: {
		type: "input.text",
		label: "Trigger Button Label",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["dialog", "modal"]
		}]
	},
	dialogTitle: {
		type: "input.text",
		label: "Dialog Title",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["dialog", "modal"]
		}]
	}
};
var ConfigurationBlockStyleMetadataMap = {
	repeatable: {
		displayLabel: "Repeatable",
		description: "A repeatable row of fields the user can add/remove."
	},
	dialog: {
		displayLabel: "Dialog",
		description: "A configuration block that opens in a modal dialog."
	},
	modal: {
		displayLabel: "Modal",
		description: "A full configuration panel that renders in an overlay modal."
	}
};
//#endregion
//#region src/definitions/elements/DisplayElement.ts
var DisplayElementDefaults = {
	type: "display.type",
	contentType: "paragraph",
	defaultValue: "",
	name: null,
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var DisplayElementMetadata = {
	icon: "type",
	displayLabel: "Display Content",
	elementCategory: "display",
	description: "Read-only content: typography, markdown, images, video, charts, barcodes, icons, and more."
};
var DisplayElementEditConfig = {
	style: {
		type: "option-select.select",
		defaultValue: "type",
		label: "Display Style",
		columns: 12,
		selectOptions: [
			{
				label: "Typography",
				value: "type"
			},
			{
				label: "Markdown",
				value: "markdown"
			},
			{
				label: "HTML",
				value: "html"
			},
			{
				label: "Iframe",
				value: "iframe"
			},
			{
				label: "Image",
				value: "image"
			},
			{
				label: "Video",
				value: "video"
			},
			{
				label: "Banner",
				value: "banner"
			},
			{
				label: "Chart",
				value: "chart"
			},
			{
				label: "Carousel",
				value: "carousel"
			},
			{
				label: "Barcode",
				value: "barcode"
			},
			{
				label: "QR Code",
				value: "qrcode"
			},
			{
				label: "Icon",
				value: "icon"
			},
			{
				label: "Progress Bar",
				value: "progress-bar"
			},
			{
				label: "Sprite",
				value: "sprite"
			},
			{
				label: "Reactive Canvas",
				value: "reactive-canvas"
			}
		],
		section: "layout"
	},
	contentType: {
		type: "option-select.select",
		defaultValue: "paragraph",
		label: "Content Type",
		columns: 12,
		selectOptions: [
			{
				label: "Heading 1",
				value: "heading-1"
			},
			{
				label: "Heading 2",
				value: "heading-2"
			},
			{
				label: "Heading 3",
				value: "heading-3"
			},
			{
				label: "Heading 4",
				value: "heading-4"
			},
			{
				label: "Heading 5",
				value: "heading-5"
			},
			{
				label: "Heading 6",
				value: "heading-6"
			},
			{
				label: "Paragraph",
				value: "paragraph"
			},
			{
				label: "Lead",
				value: "lead"
			},
			{
				label: "Small",
				value: "small"
			},
			{
				label: "Caption",
				value: "caption"
			},
			{
				label: "Code",
				value: "code"
			},
			{
				label: "Quote",
				value: "quote"
			}
		],
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "type"
		}]
	},
	defaultValue: {
		type: "input.textarea",
		label: "Content",
		columns: 12,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		label: "Data Source Name",
		columns: 12,
		section: "configuration"
	},
	src: {
		type: "input.text",
		label: "Source URL",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: [
				"image",
				"video",
				"iframe"
			]
		}]
	},
	alt: {
		type: "input.text",
		label: "Alt Text",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "image"
		}]
	},
	iconName: {
		type: "picker.icon",
		label: "Icon",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "icon"
		}]
	}
};
var DisplayStyleMetadataMap = {
	type: {
		displayLabel: "Typography",
		description: "Render styled text: headings, paragraphs, captions, quotes."
	},
	markdown: {
		displayLabel: "Markdown",
		description: "Render a Markdown string as formatted HTML."
	},
	html: {
		displayLabel: "HTML",
		description: "Render raw HTML content safely."
	},
	iframe: {
		displayLabel: "Iframe",
		description: "Embed an external page or document in an iframe."
	},
	image: {
		displayLabel: "Image",
		description: "Display an image from a URL or asset library."
	},
	video: {
		displayLabel: "Video",
		description: "Embed and play a video from a URL or asset."
	},
	banner: {
		displayLabel: "Banner",
		description: "A full-width banner with a background image and overlay text."
	},
	chart: {
		displayLabel: "Chart",
		description: "Render a Chart.js chart from a data config."
	},
	carousel: {
		displayLabel: "Carousel",
		description: "Display a scrollable slide carousel."
	},
	barcode: {
		displayLabel: "Barcode",
		description: "Render a 1D barcode from a string value."
	},
	qrcode: {
		displayLabel: "QR Code",
		description: "Render a QR code from a string value."
	},
	icon: {
		displayLabel: "Icon",
		description: "Display a single lucide icon with optional colour and size."
	},
	"progress-bar": {
		displayLabel: "Progress Bar",
		description: "A percentage-based progress bar."
	},
	sprite: {
		displayLabel: "Sprite",
		description: "Render an SVG sprite or icon sheet frame."
	},
	"reactive-canvas": {
		displayLabel: "Reactive Canvas",
		description: "A canvas that reactively renders positioned block elements."
	}
};
//#endregion
//#region src/definitions/elements/EditorElement.ts
var EditorElementDefaults = {
	type: "editor.code-editor",
	defaultValue: "",
	height: "40vh",
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var EditorElementMetadata = {
	icon: "file-lines",
	displayLabel: "Editor",
	elementCategory: "editor",
	description: "Create a large text field to allow users to enter a large amount of text as either HTML, Markdown, Code or plain text."
};
var EditorElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Label",
		columnsMd: 6,
		columns: 12,
		section: "configuration"
	},
	defaultValue: {
		type: "input.text",
		label: "Default Value",
		columnsMd: 6,
		columns: 12,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Name",
		columns: 12,
		section: "advanced"
	},
	style: {
		type: "option-select.select",
		defaultValue: "code-editor",
		label: "Display Style",
		section: "layout",
		selectOptions: [
			{
				label: "Code Editor",
				value: "code-editor"
			},
			{
				label: "Markdown Editor",
				value: "markdown-editor"
			},
			{
				label: "HTML Editor",
				value: "html-editor"
			},
			{
				label: "Image Editor",
				value: "image-editor"
			},
			{
				label: "Rich Text Editor",
				value: "rich-text-editor"
			}
		],
		columns: 12
	},
	instructions: {
		type: "editor.html-editor",
		label: "Instructions",
		defaultValue: "",
		columns: 12,
		section: "configuration"
	},
	height: {
		type: "input.text",
		label: "Height",
		defaultValue: "40vh",
		columns: 6,
		section: "layout"
	},
	language: {
		type: "input.text",
		label: "Language",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "code-editor"
		}]
	},
	showLineNumbers: {
		type: "boolean.switch",
		label: "Show line numbers",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["code-editor", "markdown-editor"]
		}]
	},
	wordWrap: {
		type: "boolean.switch",
		label: "Word wrap",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["code-editor", "markdown-editor"]
		}]
	},
	required: {
		type: "boolean.switch",
		label: "Make item required",
		columns: 12,
		section: "configuration"
	},
	readonly: {
		type: "boolean.switch",
		label: "Make item read-only",
		columns: 12,
		section: "configuration"
	}
};
var EditorStyleMetadataMap = {
	"code-editor": {
		displayLabel: "Code Editor",
		description: "A syntax-highlighted code editor for scripting or config."
	},
	"markdown-editor": {
		displayLabel: "Markdown Editor",
		description: "A live-preview Markdown editor."
	},
	"html-editor": {
		displayLabel: "HTML Editor",
		description: "A WYSIWYG HTML editor with source toggle."
	},
	"image-editor": {
		displayLabel: "Image Editor",
		description: "An in-browser image editor with cropping and filters."
	},
	"rich-text-editor": {
		displayLabel: "Rich Text Editor",
		description: "A Tiptap-powered rich text editor with formatting tools."
	}
};
//#endregion
//#region src/definitions/elements/FileElement.ts
var FileElementDefaults = {
	type: "file.upload",
	label: "File Upload",
	disabled: false,
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var FileElementMetadata = {
	icon: "photo-film-music",
	displayLabel: "File Upload",
	elementCategory: "file",
	description: "Upload files or invoke the asset picker to select an asset from the library."
};
var FileElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Label",
		columnsMd: 6,
		columns: 12,
		section: "configuration"
	},
	defaultValue: {
		type: "input.text",
		label: "Default Value",
		columnsMd: 6,
		columns: 12,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Name",
		columns: 12,
		section: "advanced"
	},
	style: {
		type: "option-select.select",
		defaultValue: "upload",
		label: "Input Style",
		columns: 6,
		selectOptions: [
			{
				label: "Upload",
				value: "upload"
			},
			{
				label: "Dropzone",
				value: "dropzone"
			},
			{
				label: "Asset Picker",
				value: "asset-picker"
			}
		],
		section: "layout"
	},
	accept: {
		type: "input.text",
		label: "Accept File Types (comma separated: 'image/jpg, image/jpeg, image/png, image/*, application/pdf')",
		columns: 12,
		section: "configuration"
	},
	multiple: {
		type: "boolean.switch",
		label: "Allow multiple files",
		columns: 6,
		section: "configuration"
	},
	maxFileSize: {
		type: "input.text",
		contentType: "integer",
		label: "Max File Size (bytes)",
		columns: 6,
		section: "configuration"
	},
	assetType: {
		type: "input.text",
		label: "Asset Type",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "asset-picker"
		}]
	},
	required: {
		type: "boolean.switch",
		label: "Make item required",
		columns: 12,
		section: "configuration"
	},
	readonly: {
		type: "boolean.switch",
		label: "Make item read-only",
		columns: 12,
		section: "configuration"
	}
};
var FileStyleMetadataMap = {
	upload: {
		displayLabel: "File Upload",
		description: "A button-triggered file upload input."
	},
	dropzone: {
		displayLabel: "Dropzone",
		description: "A drag-and-drop file upload area."
	},
	"asset-picker": {
		displayLabel: "Asset Picker",
		description: "Browse and select files from the asset library."
	}
};
//#endregion
//#region src/definitions/elements/InputElement.ts
var InputElementDefaults = {
	type: "input.text",
	label: "Input Label",
	placeholder: "",
	defaultValue: "",
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var InputElementMetadata = {
	icon: "type",
	displayLabel: "Input Field",
	elementCategory: "input",
	description: "A single-line or multi-line text input. Supports text, email, password, URL, number, search, textarea, range slider, and barcode scanner variants."
};
/**
* EditConfig describes how the FormBuilder inspector renders each
* configurable property. Each key matches a property on `InputElement`;
* the value is itself a (loosely-typed) element spec.
*
* The `section` tag groups properties in the inspector
* (configuration / layout / advanced / conditions).
*/
var InputElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Field Label",
		columns: 12,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Field Name",
		columns: 12,
		section: "advanced"
	},
	style: {
		type: "option-select.select",
		defaultValue: "text",
		label: "Input Style",
		columns: 12,
		selectOptions: [
			{
				label: "Text",
				value: "text"
			},
			{
				label: "Number",
				value: "number"
			},
			{
				label: "Email",
				value: "email"
			},
			{
				label: "Password",
				value: "password"
			},
			{
				label: "URL",
				value: "url"
			},
			{
				label: "Tel",
				value: "tel"
			},
			{
				label: "Search",
				value: "search"
			},
			{
				label: "Textarea",
				value: "textarea"
			},
			{
				label: "Range Slider",
				value: "range-slider"
			},
			{
				label: "Barcode Scanner",
				value: "barcode-scanner"
			}
		],
		section: "layout"
	},
	placeholder: {
		type: "input.text",
		label: "Placeholder Text",
		columns: 12,
		section: "configuration"
	},
	defaultValue: {
		type: "input.text",
		label: "Default Value",
		columns: 12,
		section: "configuration"
	},
	prepend: {
		type: "input.text",
		label: "Prepend Text",
		columns: 6,
		section: "layout"
	},
	append: {
		type: "input.text",
		label: "Append Text",
		columns: 6,
		section: "layout"
	},
	required: {
		type: "boolean.switch",
		label: "Required",
		columns: 6,
		section: "configuration"
	},
	readonly: {
		type: "boolean.switch",
		label: "Read-only",
		columns: 6,
		section: "configuration"
	},
	maxLength: {
		type: "input.text",
		contentType: "integer",
		label: "Max Length",
		columns: 6,
		section: "configuration"
	},
	minLength: {
		type: "input.text",
		contentType: "integer",
		label: "Min Length",
		columns: 6,
		section: "configuration"
	},
	min: {
		type: "input.text",
		contentType: "number",
		label: "Min Value",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["number", "range-slider"]
		}]
	},
	max: {
		type: "input.text",
		contentType: "number",
		label: "Max Value",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["number", "range-slider"]
		}]
	},
	step: {
		type: "input.text",
		contentType: "number",
		label: "Step",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["number", "range-slider"]
		}]
	},
	rows: {
		type: "input.text",
		contentType: "integer",
		label: "Rows",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "textarea"
		}]
	}
};
var InputStyleMetadataMap = {
	text: {
		displayLabel: "Text",
		description: "A single-line text input field."
	},
	number: {
		displayLabel: "Number",
		description: "A numeric input with optional min, max, and step."
	},
	email: {
		displayLabel: "Email",
		description: "An email address input with format validation."
	},
	password: {
		displayLabel: "Password",
		description: "A masked password input with optional visibility toggle."
	},
	url: {
		displayLabel: "URL",
		description: "A URL input with format validation."
	},
	tel: {
		displayLabel: "Phone",
		description: "A telephone number input."
	},
	search: {
		displayLabel: "Search",
		description: "A search input with a clear button."
	},
	textarea: {
		displayLabel: "Textarea",
		description: "A multi-line text input with configurable row height."
	},
	"range-slider": {
		displayLabel: "Range Slider",
		description: "A slider for selecting a value within a numeric range."
	},
	"barcode-scanner": {
		displayLabel: "Barcode Scanner",
		description: "A camera-powered barcode/QR code scanner input."
	}
};
//#endregion
//#region src/definitions/elements/OptionSelectElement.ts
var OptionSelectElementDefaults = {
	type: "option-select.select",
	label: "Option Select Label",
	defaultValue: null,
	selectOptions: [],
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var OptionSelectElementMetadata = {
	icon: "list-check",
	displayLabel: "Select From Options",
	elementCategory: "option-select",
	description: "Create an option-select field to allow users to select one or more options from a list. Can be displayed as a dropdown, checkboxes, radios, autocomplete, pill picker, and more."
};
/**
* EditConfig describes how the FormBuilder inspector renders each
* configurable property. Each key matches a property on
* `OptionSelectElement`; the value is a (loosely-typed) element spec.
*/
var OptionSelectElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Label",
		columns: 12,
		columnsMd: 6,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Name",
		columns: 12,
		section: "advanced"
	},
	style: {
		type: "option-select.select",
		defaultValue: "select",
		label: "Select Style",
		columns: 12,
		selectOptions: [
			{
				label: "Select",
				value: "select"
			},
			{
				label: "Select (Multiple)",
				value: "select-multiple"
			},
			{
				label: "Checkbox",
				value: "checkbox"
			},
			{
				label: "Radio",
				value: "radio"
			},
			{
				label: "Autocomplete",
				value: "autocomplete"
			},
			{
				label: "List",
				value: "list"
			},
			{
				label: "Pill Select",
				value: "pill-select"
			}
		],
		section: "layout"
	},
	defaultValue: {
		type: "input.text",
		label: "Default Value",
		columns: 12,
		columnsMd: 6,
		section: "configuration"
	},
	selectOptions: {
		type: "configuration-block.repeatable",
		label: "Options",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: [
				"select",
				"select-multiple",
				"checkbox",
				"radio",
				"list",
				"pill-select"
			]
		}]
	},
	restrictOptions: {
		type: "boolean.switch",
		label: "Restrict to Listed Options",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: [
				"select",
				"select-multiple",
				"autocomplete"
			]
		}]
	},
	clearable: {
		type: "boolean.switch",
		label: "Allow Clear",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: [
				"select",
				"select-multiple",
				"autocomplete"
			]
		}]
	},
	inline: {
		type: "boolean.switch",
		label: "Inline Options",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["checkbox", "radio"]
		}]
	},
	searchable: {
		type: "boolean.switch",
		label: "Searchable",
		columns: 6,
		section: "layout",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["select", "select-multiple"]
		}]
	},
	searchRoute: {
		type: "input.text",
		label: "Search Route",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["autocomplete"]
		}]
	},
	minSearchLength: {
		type: "input.text",
		contentType: "integer",
		defaultValue: 1,
		label: "Min Search Length",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["autocomplete"]
		}]
	},
	required: {
		type: "boolean.switch",
		label: "Make item required",
		columns: 6,
		section: "configuration"
	},
	readonly: {
		type: "boolean.switch",
		label: "Make item read-only",
		columns: 6,
		section: "configuration"
	}
};
var OptionSelectStyleMetadataMap = {
	select: {
		displayLabel: "Select",
		description: "A single-value dropdown select."
	},
	"select-multiple": {
		displayLabel: "Multi Select",
		description: "A dropdown that allows selecting multiple values."
	},
	checkbox: {
		displayLabel: "Checkboxes",
		description: "A list of checkboxes for multi-value selection."
	},
	radio: {
		displayLabel: "Radio Buttons",
		description: "Radio buttons for selecting exactly one option."
	},
	autocomplete: {
		displayLabel: "Autocomplete",
		description: "A text input with live option suggestions."
	},
	list: {
		displayLabel: "List",
		description: "A scrollable list of selectable options."
	},
	"pill-select": {
		displayLabel: "Pill Select",
		description: "Selected values shown as removable pill tags."
	}
};
//#endregion
//#region src/definitions/elements/PickerElement.ts
var PickerElementDefaults = {
	type: "picker.color-picker",
	label: "Picker Label",
	defaultValue: null,
	columns: 12,
	columnsSm: 12,
	columnsMd: 12,
	columnsLg: 12,
	columnsXl: 12
};
var PickerElementMetadata = {
	icon: "crosshairs",
	displayLabel: "Custom Pickers",
	elementCategory: "picker",
	description: "Create a picker field to allow users to select a color, date, time, icon, map location, timezone, or remote/async selection and more."
};
/**
* EditConfig describes how the FormBuilder inspector renders each
* configurable property. Each key matches a property on `PickerElement`;
* the value is a (loosely-typed) element spec.
*/
var PickerElementEditConfig = {
	label: {
		type: "input.text",
		defaultValue: "",
		label: "Label",
		columns: 12,
		columnsMd: 6,
		section: "configuration"
	},
	name: {
		type: "picker.data-model",
		defaultValue: "",
		label: "Name",
		columns: 12,
		section: "configuration"
	},
	style: {
		type: "option-select.select",
		defaultValue: "color-picker",
		label: "Picker Style",
		columns: 6,
		selectOptions: [
			{
				label: "Date Picker",
				value: "date-picker"
			},
			{
				label: "Datetime Picker",
				value: "datetime-picker"
			},
			{
				label: "Time Picker",
				value: "time-picker"
			},
			{
				label: "Timezone Picker",
				value: "timezone-picker"
			},
			{
				label: "Color Picker",
				value: "color-picker"
			},
			{
				label: "Icon Picker",
				value: "icon-picker"
			},
			{
				label: "Map Picker",
				value: "map-picker"
			},
			{
				label: "Async Select",
				value: "async-select"
			},
			{
				label: "Data Model Picker",
				value: "data-model"
			},
			{
				label: "Integration Connector",
				value: "integration-connector"
			}
		],
		section: "layout"
	},
	defaultValue: {
		type: "input.text",
		label: "Default Value",
		columns: 12,
		columnsMd: 6,
		section: "configuration"
	},
	format: {
		type: "input.text",
		label: "Format",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: [
				"date-picker",
				"datetime-picker",
				"time-picker"
			]
		}]
	},
	minDate: {
		type: "input.text",
		label: "Min Date (ISO)",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["date-picker", "datetime-picker"]
		}]
	},
	maxDate: {
		type: "input.text",
		label: "Max Date (ISO)",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["date-picker", "datetime-picker"]
		}]
	},
	minuteStep: {
		type: "input.text",
		contentType: "integer",
		defaultValue: 1,
		label: "Minute Step",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "time-picker"
		}]
	},
	colorFormat: {
		type: "option-select.select",
		defaultValue: "hex",
		label: "Color Format",
		columns: 6,
		selectOptions: [
			{
				label: "Hex",
				value: "hex"
			},
			{
				label: "Hex (with alpha)",
				value: "hexa"
			},
			{
				label: "RGB",
				value: "rgb"
			},
			{
				label: "RGBA",
				value: "rgba"
			},
			{
				label: "HSL",
				value: "hsl"
			},
			{
				label: "HSLA",
				value: "hsla"
			}
		],
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "color-picker"
		}]
	},
	showAlpha: {
		type: "boolean.switch",
		label: "Show Alpha Channel",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "color-picker"
		}]
	},
	defaultLat: {
		type: "input.text",
		contentType: "number",
		label: "Default Latitude",
		columns: 4,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "map-picker"
		}]
	},
	defaultLng: {
		type: "input.text",
		contentType: "number",
		label: "Default Longitude",
		columns: 4,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "map-picker"
		}]
	},
	defaultZoom: {
		type: "input.text",
		contentType: "integer",
		label: "Default Zoom",
		columns: 4,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "map-picker"
		}]
	},
	searchRoute: {
		type: "input.text",
		label: "Search Route",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["async-select", "data-model"]
		}]
	},
	minSearchLength: {
		type: "input.text",
		contentType: "integer",
		defaultValue: 1,
		label: "Min Search Length",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "async-select"
		}]
	},
	labelField: {
		type: "input.text",
		label: "Label Field",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["async-select", "data-model"]
		}]
	},
	valueField: {
		type: "input.text",
		label: "Value Field",
		columns: 6,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "in-array",
			value: ["async-select", "data-model"]
		}]
	},
	modelKey: {
		type: "input.text",
		label: "Model Key",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "data-model"
		}]
	},
	connectorKey: {
		type: "input.text",
		label: "Connector Key",
		columns: 12,
		section: "configuration",
		conditionParams: [{
			name: "style",
			logic: "==",
			value: "integration-connector"
		}]
	},
	required: {
		type: "boolean.switch",
		label: "Make item required",
		columns: 6,
		section: "configuration"
	},
	readonly: {
		type: "boolean.switch",
		label: "Make item read-only",
		columns: 6,
		section: "configuration"
	}
};
var PickerStyleMetadataMap = {
	"date-picker": {
		displayLabel: "Date",
		description: "A calendar date picker."
	},
	"datetime-picker": {
		displayLabel: "Date & Time",
		description: "A combined date and time picker."
	},
	"time-picker": {
		displayLabel: "Time",
		description: "A time-of-day picker."
	},
	"timezone-picker": {
		displayLabel: "Timezone",
		description: "A searchable timezone selector."
	},
	"color-picker": {
		displayLabel: "Color",
		description: "A colour wheel and swatch picker."
	},
	"icon-picker": {
		displayLabel: "Icon",
		description: "A searchable icon selector."
	},
	"icon-picker-inline": {
		displayLabel: "Icon Picker Inline",
		description: "A searchable picker that returns a chosen icon identifier."
	},
	"map-picker": {
		displayLabel: "Map",
		description: "An interactive map for picking a geographic location."
	},
	"async-select": {
		displayLabel: "Async Select",
		description: "A remote-search selection picker."
	},
	"data-model": {
		displayLabel: "Data Model",
		description: "A picker that navigates and selects from a data model path."
	},
	"integration-connector": {
		displayLabel: "Integration Connector",
		description: "A picker backed by a third-party integration connector."
	}
};
//#endregion
//#region src/definitions/elements/index.ts
/**
* Runtime registry of element metadata keyed by `type`. Used by the
* FormBuilder palette to enumerate available elements.
*/
var CardElementMetadataMap = {
	card: CardLayoutElementMetadata,
	display: DisplayElementMetadata,
	input: InputElementMetadata,
	boolean: BooleanElementMetadata,
	"option-select": OptionSelectElementMetadata,
	picker: PickerElementMetadata,
	file: FileElementMetadata,
	editor: EditorElementMetadata,
	"configuration-block": ConfigurationBlockElementMetadata,
	action: ActionElementMetadata,
	builder: BuilderElementMetadata,
	code: CodeElementMetadata
};
/** Registry of all per-style metadata maps, keyed by element category. */
var CategoryStyleMetadataMaps = {
	card: CardStyleMetadataMap,
	display: DisplayStyleMetadataMap,
	input: InputStyleMetadataMap,
	boolean: BooleanStyleMetadataMap,
	"option-select": OptionSelectStyleMetadataMap,
	picker: PickerStyleMetadataMap,
	file: FileStyleMetadataMap,
	editor: EditorStyleMetadataMap,
	"configuration-block": ConfigurationBlockStyleMetadataMap,
	action: ActionStyleMetadataMap,
	builder: BuilderStyleMetadataMap,
	code: CodeStyleMetadataMap
};
function deriveStyles(map) {
	return Object.entries(map).filter((entry) => entry[1] != null).map(([value, meta]) => ({
		value,
		label: meta.displayLabel
	}));
}
/**
* All style variants per element category, derived from each category's
* StyleMetadataMap. Adding a new style only requires updating the category's
* definition file — no changes needed here.
*/
var CardElementStylesMap = {
	card: deriveStyles(CardStyleMetadataMap),
	display: deriveStyles(DisplayStyleMetadataMap),
	input: deriveStyles(InputStyleMetadataMap),
	boolean: deriveStyles(BooleanStyleMetadataMap),
	"option-select": deriveStyles(OptionSelectStyleMetadataMap),
	picker: deriveStyles(PickerStyleMetadataMap),
	file: deriveStyles(FileStyleMetadataMap),
	editor: deriveStyles(EditorStyleMetadataMap),
	"configuration-block": deriveStyles(ConfigurationBlockStyleMetadataMap),
	action: deriveStyles(ActionStyleMetadataMap),
	builder: deriveStyles(BuilderStyleMetadataMap),
	code: deriveStyles(CodeStyleMetadataMap)
};
/**
* EditConfig for every element category, keyed by category name.
* Used by the FormBuilder inspector to render element-specific fields.
*/
var CategoryEditConfigMap = {
	card: CardLayoutElementEditConfig,
	display: DisplayElementEditConfig,
	input: InputElementEditConfig,
	boolean: BooleanElementEditConfig,
	"option-select": OptionSelectElementEditConfig,
	picker: PickerElementEditConfig,
	file: FileElementEditConfig,
	editor: EditorElementEditConfig,
	"configuration-block": ConfigurationBlockElementEditConfig,
	action: ActionElementEditConfig,
	builder: BuilderElementEditConfig,
	code: CodeElementEditConfig
};
/**
* Look up the EditConfig for a dot-notation element type (e.g. `"input.text"`).
* Returns the category-level EditConfig whose `conditionParams` narrow which
* fields are visible for the specific style.
*/
function getElementEditConfig(type) {
	return CategoryEditConfigMap[type.split(".")[0]];
}
//#endregion
export { BuilderElementDefaults as A, ActionElementDefaults as B, DisplayElementMetadata as C, CodeElementDefaults as D, ConfigurationBlockElementMetadata as E, CardLayoutElementMetadata as F, ActionElementMetadata as H, CardStyleMetadataMap as I, BooleanElementDefaults as L, BuilderElementMetadata as M, CardLayoutElementDefaults as N, CodeElementEditConfig as O, CardLayoutElementEditConfig as P, BooleanElementEditConfig as R, DisplayElementEditConfig as S, ConfigurationBlockElementEditConfig as T, ActionElementEditConfig as V, FileElementMetadata as _, getElementEditConfig as a, EditorElementMetadata as b, PickerElementMetadata as c, OptionSelectElementMetadata as d, InputElementDefaults as f, FileElementEditConfig as g, FileElementDefaults as h, CategoryStyleMetadataMaps as i, BuilderElementEditConfig as j, CodeElementMetadata as k, OptionSelectElementDefaults as l, InputElementMetadata as m, CardElementStylesMap as n, PickerElementDefaults as o, InputElementEditConfig as p, CategoryEditConfigMap as r, PickerElementEditConfig as s, CardElementMetadataMap as t, OptionSelectElementEditConfig as u, EditorElementDefaults as v, ConfigurationBlockElementDefaults as w, DisplayElementDefaults as x, EditorElementEditConfig as y, BooleanElementMetadata as z };

//# sourceMappingURL=elements-CNyptov7.js.map