@sanity/personalization-plugin

3.1.03.1.1
dist/fieldExperiments-D9NPbCCN.js
dist/fieldExperiments-D9NPbCCN.jsDeleted
−550
Index: package/dist/fieldExperiments-D9NPbCCN.js
===================================================================
--- package/dist/fieldExperiments-D9NPbCCN.js
+++ package/dist/fieldExperiments-D9NPbCCN.js
@@ -1,550 +0,0 @@
-import { defineDocumentFieldAction, defineField, definePlugin, defineType, getPublishedId, isDocumentSchemaType, isImage, isObjectInputProps, isReference, set, unset, useClient, useDocumentOperation, useFormValue, useWorkspace } from "sanity";
-import { c } from "react/compiler-runtime";
-import { createContext, useContext, useEffect, useState } from "react";
-import { Button, Card, Inline, Select, Stack, Text } from "@sanity/ui";
-import { uuid } from "@sanity/uuid";
-import equal from "fast-deep-equal";
-import { suspend } from "suspend-react";
-import { jsx, jsxs } from "react/jsx-runtime";
-import { CloseIcon } from "@sanity/icons/Close";
-import { GiSoapExperiment } from "react-icons/gi";
-const ArrayItem = (props) => {
-	let $ = c(6), { active } = props.value, { onChange } = props.inputProps, t0, t1;
-	$[0] !== active || $[1] !== onChange ? (t0 = () => {
-		active || onChange(set(!0, ["active"]));
-	}, t1 = [active, onChange], $[0] = active, $[1] = onChange, $[2] = t0, $[3] = t1) : (t0 = $[2], t1 = $[3]), useEffect(t0, t1);
-	let t2;
-	return $[4] === props ? t2 = $[5] : (t2 = props.renderDefault(props), $[4] = props, $[5] = t2), t2;
-}, CONFIG_DEFAULT = {
-	fields: [],
-	apiVersion: "2024-11-07",
-	experimentNameOverride: "experiment",
-	variantNameOverride: "variant",
-	variantId: "variantId",
-	variantArrayName: "variants",
-	experimentId: "experimentId"
-}, ExperimentContext = createContext({
-	...CONFIG_DEFAULT,
-	experiments: []
-});
-function useExperimentContext() {
-	return useContext(ExperimentContext);
-}
-function ExperimentProvider(props) {
-	let $ = c(14), { experimentFieldPluginConfig } = props, t0;
-	$[0] === experimentFieldPluginConfig.apiVersion ? t0 = $[1] : (t0 = { apiVersion: experimentFieldPluginConfig.apiVersion }, $[0] = experimentFieldPluginConfig.apiVersion, $[1] = t0);
-	let client = useClient(t0), workspace = useWorkspace(), t1;
-	$[2] !== client || $[3] !== experimentFieldPluginConfig || $[4] !== workspace ? (t1 = Array.isArray(experimentFieldPluginConfig.experiments) ? experimentFieldPluginConfig.experiments : suspend(async () => typeof experimentFieldPluginConfig.experiments == "function" ? experimentFieldPluginConfig.experiments(client) : experimentFieldPluginConfig.experiments, [workspace, "field-level-experiments"], { equal }), $[2] = client, $[3] = experimentFieldPluginConfig, $[4] = workspace, $[5] = t1) : t1 = $[5];
-	let experiments = t1, t2;
-	$[6] !== experimentFieldPluginConfig || $[7] !== experiments ? (t2 = {
-		...experimentFieldPluginConfig,
-		experiments
-	}, $[6] = experimentFieldPluginConfig, $[7] = experiments, $[8] = t2) : t2 = $[8];
-	let context = t2, t3;
-	$[9] === props ? t3 = $[10] : (t3 = props.renderDefault(props), $[9] = props, $[10] = t3);
-	let t4;
-	return $[11] !== context || $[12] !== t3 ? (t4 = /* @__PURE__ */ jsx(ExperimentContext.Provider, {
-		value: context,
-		children: t3
-	}), $[11] = context, $[12] = t3, $[13] = t4) : t4 = $[13], t4;
-}
-const ArrayInput = (props) => {
-	let $ = c(35), experimentId, onItemAppend, t0, t1, variantId, variantName;
-	if ($[0] !== props) {
-		let fieldPath = props.path.slice(0, -1);
-		({onItemAppend, variantName, variantId, experimentId} = props), t0 = useFormValue, t1 = [...fieldPath, experimentId], $[0] = props, $[1] = experimentId, $[2] = onItemAppend, $[3] = t0, $[4] = t1, $[5] = variantId, $[6] = variantName;
-	} else experimentId = $[1], onItemAppend = $[2], t0 = $[3], t1 = $[4], variantId = $[5], variantName = $[6];
-	let experimentValue = t0(t1), { experiments } = useExperimentContext(), t2;
-	$[7] !== experimentId || $[8] !== experimentValue || $[9] !== onItemAppend || $[10] !== variantId || $[11] !== variantName ? (t2 = async (variant) => {
-		let item = {
-			_key: uuid(),
-			[variantId]: variant.id,
-			[experimentId]: experimentValue,
-			_type: variantName
-		};
-		onItemAppend(item);
-	}, $[7] = experimentId, $[8] = experimentValue, $[9] = onItemAppend, $[10] = variantId, $[11] = variantName, $[12] = t2) : t2 = $[12];
-	let handleClick = t2, T0, T1, t3, t4, t5, t6;
-	if ($[13] !== experimentValue || $[14] !== experiments || $[15] !== handleClick || $[16] !== props || $[17] !== variantId) {
-		let filteredVariants = experiments.find((option) => option.id === experimentValue)?.variants || [], usedVariants = (props.value || [])?.map((variant_0) => variant_0[variantId]);
-		T1 = Stack, t5 = 3, $[24] === props ? t6 = $[25] : (t6 = props.renderDefault({
-			...props,
-			arrayFunctions: _temp$2
-		}), $[24] = props, $[25] = t6), T0 = Inline, t3 = 1, t4 = filteredVariants.map((variant_1) => /* @__PURE__ */ jsx(Button, {
-			text: `Add ${variant_1.label}`,
-			mode: "ghost",
-			disabled: usedVariants?.includes(variant_1.id),
-			onClick: () => handleClick(variant_1)
-		}, `${experimentValue}-${variant_1.id}`)), $[13] = experimentValue, $[14] = experiments, $[15] = handleClick, $[16] = props, $[17] = variantId, $[18] = T0, $[19] = T1, $[20] = t3, $[21] = t4, $[22] = t5, $[23] = t6;
-	} else T0 = $[18], T1 = $[19], t3 = $[20], t4 = $[21], t5 = $[22], t6 = $[23];
-	let t7;
-	$[26] !== T0 || $[27] !== t3 || $[28] !== t4 ? (t7 = /* @__PURE__ */ jsx(T0, {
-		gap: t3,
-		children: t4
-	}), $[26] = T0, $[27] = t3, $[28] = t4, $[29] = t7) : t7 = $[29];
-	let t8;
-	return $[30] !== T1 || $[31] !== t5 || $[32] !== t6 || $[33] !== t7 ? (t8 = /* @__PURE__ */ jsxs(T1, {
-		gap: t5,
-		children: [t6, t7]
-	}), $[30] = T1, $[31] = t5, $[32] = t6, $[33] = t7, $[34] = t8) : t8 = $[34], t8;
-};
-function _temp$2() {
-	return null;
-}
-/**
-* Safely updates deeply nested children props to clear groups array
-* This prevents field grouping UI conflicts in personalization mode
-*/
-const clearChildrenGroups = (props) => {
-	let children = props.children;
-	if (!children || typeof children != "object" || !children.props) return props;
-	let innerChild = children.props.children;
-	return !innerChild || typeof innerChild != "object" || Array.isArray(innerChild) || !("props" in innerChild) ? props : {
-		...props,
-		children: {
-			...children,
-			props: {
-				...children.props,
-				children: {
-					...innerChild,
-					props: {
-						...innerChild.props,
-						groups: []
-					}
-				}
-			}
-		}
-	};
-}, useAddExperimentAction = (props) => {
-	let $ = c(6), { onChange, active, experimentNameOverride } = props, t0;
-	$[0] !== active || $[1] !== onChange ? (t0 = () => {
-		onChange([set(!active, ["active"])]);
-	}, $[0] = active, $[1] = onChange, $[2] = t0) : t0 = $[2];
-	let handleAddAction = t0, t1 = `Add ${experimentNameOverride}`, t2;
-	return $[3] !== handleAddAction || $[4] !== t1 ? (t2 = {
-		title: t1,
-		type: "action",
-		icon: GiSoapExperiment,
-		onAction: handleAddAction,
-		renderAsButton: !0
-	}, $[3] = handleAddAction, $[4] = t1, $[5] = t2) : t2 = $[5], t2;
-}, useRemoveExperimentAction = (props) => {
-	let $ = c(8), { onChange, active, experimentId, experimentNameOverride, variantNameOverride } = props, t0;
-	$[0] !== active || $[1] !== experimentId || $[2] !== onChange || $[3] !== variantNameOverride ? (t0 = () => {
-		let activeId = ["active"], experiment = [experimentId], variants = [`${variantNameOverride}s`];
-		onChange([
-			set(!active, activeId),
-			unset(experiment),
-			unset(variants)
-		]);
-	}, $[0] = active, $[1] = experimentId, $[2] = onChange, $[3] = variantNameOverride, $[4] = t0) : t0 = $[4];
-	let handleClearAction = t0, t1 = `Remove ${experimentNameOverride}`, t2;
-	return $[5] !== handleClearAction || $[6] !== t1 ? (t2 = {
-		title: t1,
-		type: "action",
-		icon: CloseIcon,
-		onAction: handleClearAction,
-		renderAsButton: !0
-	}, $[5] = handleClearAction, $[6] = t1, $[7] = t2) : t2 = $[7], t2;
-}, createActions = ({ onChange, inputId, active, experimentNameOverride, experimentId, variantNameOverride }) => {
-	let removeAction = defineDocumentFieldAction({
-		name: `Remove ${experimentNameOverride}`,
-		useAction: (props) => useRemoveExperimentAction({
-			...props,
-			active: !0,
-			onChange,
-			inputId,
-			experimentNameOverride,
-			experimentId,
-			variantNameOverride
-		})
-	}), addAction = defineDocumentFieldAction({
-		name: `Add ${experimentNameOverride}`,
-		useAction: (props) => useAddExperimentAction({
-			...props,
-			active: !1,
-			onChange,
-			inputId,
-			experimentNameOverride,
-			experimentId
-		})
-	});
-	return active ? removeAction : addAction;
-}, Field = (props) => {
-	let $ = c(22), { onChange } = props.inputProps, { inputId, experimentNameOverride, experimentId, variantNameOverride } = props, active = props.value?.active, t0;
-	$[0] !== active || $[1] !== experimentId || $[2] !== experimentNameOverride || $[3] !== inputId || $[4] !== onChange || $[5] !== variantNameOverride ? (t0 = {
-		onChange,
-		inputId,
-		active,
-		experimentNameOverride,
-		experimentId,
-		variantNameOverride
-	}, $[0] = active, $[1] = experimentId, $[2] = experimentNameOverride, $[3] = inputId, $[4] = onChange, $[5] = variantNameOverride, $[6] = t0) : t0 = $[6];
-	let actionProps = t0, t1;
-	$[7] === props.actions ? t1 = $[8] : (t1 = props.actions || [], $[7] = props.actions, $[8] = t1);
-	let oldActions = t1, t2;
-	$[9] === actionProps ? t2 = $[10] : (t2 = createActions(actionProps), $[9] = actionProps, $[10] = t2);
-	let t3;
-	$[11] !== oldActions || $[12] !== t2 ? (t3 = [t2, ...oldActions], $[11] = oldActions, $[12] = t2, $[13] = t3) : t3 = $[13];
-	let memoizedActions = t3, t4;
-	$[14] === props ? t4 = $[15] : (t4 = clearChildrenGroups(props), $[14] = props, $[15] = t4);
-	let propsWithClearedGroups = t4, t5;
-	$[16] !== memoizedActions || $[17] !== propsWithClearedGroups ? (t5 = {
-		...propsWithClearedGroups,
-		actions: memoizedActions
-	}, $[16] = memoizedActions, $[17] = propsWithClearedGroups, $[18] = t5) : t5 = $[18];
-	let enhancedProps = t5, t6;
-	return $[19] !== enhancedProps || $[20] !== props.renderDefault ? (t6 = props.renderDefault(enhancedProps), $[19] = enhancedProps, $[20] = props.renderDefault, $[21] = t6) : t6 = $[21], t6;
-}, Select$1 = (props) => {
-	let $ = c(12), { value, onChange, elementProps, listOptions, handleChange } = props, t0;
-	$[0] === Symbol.for("react.memo_cache_sentinel") ? (t0 = [
-		3,
-		3,
-		4
-	], $[0] = t0) : t0 = $[0];
-	let t1 = value || "", t2;
-	$[1] !== handleChange || $[2] !== onChange ? (t2 = (event) => handleChange(event, onChange), $[1] = handleChange, $[2] = onChange, $[3] = t2) : t2 = $[3];
-	let t3;
-	$[4] === Symbol.for("react.memo_cache_sentinel") ? (t3 = /* @__PURE__ */ jsx("option", {
-		value: "",
-		children: "Select an option..."
-	}), $[4] = t3) : t3 = $[4];
-	let t4;
-	$[5] === listOptions ? t4 = $[6] : (t4 = listOptions.map(_temp$1), $[5] = listOptions, $[6] = t4);
-	let t5;
-	return $[7] !== elementProps || $[8] !== t1 || $[9] !== t2 || $[10] !== t4 ? (t5 = /* @__PURE__ */ jsxs(Select, {
-		...elementProps,
-		fontSize: 2,
-		padding: 3,
-		gap: t0,
-		value: t1,
-		onChange: t2,
-		children: [t3, t4]
-	}), $[7] = elementProps, $[8] = t1, $[9] = t2, $[10] = t4, $[11] = t5) : t5 = $[11], t5;
-};
-function _temp$1(t0) {
-	let { value: optionValue, title } = t0;
-	return /* @__PURE__ */ jsx("option", {
-		value: optionValue,
-		children: title
-	}, optionValue);
-}
-const formatlistOptions = (experiments) => experiments.map((experiment) => ({
-	title: experiment.label,
-	value: experiment.id
-})), Input = (props) => {
-	let $ = c(20), { experiments } = useExperimentContext(), t0;
-	$[0] === Symbol.for("react.memo_cache_sentinel") ? (t0 = ["_id"], $[0] = t0) : t0 = $[0];
-	let id = useFormValue(t0), t1;
-	$[1] !== props.path || $[2] !== props.variantNameOverride ? (t1 = [...props.path.slice(0, -1), `${props.variantNameOverride}s`], $[1] = props.path, $[2] = props.variantNameOverride, $[3] = t1) : t1 = $[3];
-	let additionalChangePath = t1, subValues = useFormValue(additionalChangePath), t2;
-	$[4] === id ? t2 = $[5] : (t2 = getPublishedId(id), $[4] = id, $[5] = t2);
-	let { patch } = useDocumentOperation(t2, props.schemaType.name), t3;
-	$[6] !== additionalChangePath || $[7] !== patch || $[8] !== subValues ? (t3 = (event, onChange) => {
-		let inputValue = event.currentTarget.value;
-		if (onChange(inputValue ? set(inputValue) : unset()), subValues) {
-			let patchEvent = { unset: [additionalChangePath.join(".")] };
-			patch.execute([patchEvent]);
-		}
-	}, $[6] = additionalChangePath, $[7] = patch, $[8] = subValues, $[9] = t3) : t3 = $[9];
-	let handleChange = t3;
-	if (!experiments.length) {
-		let t4;
-		$[10] === Symbol.for("react.memo_cache_sentinel") ? (t4 = [
-			3,
-			3,
-			4
-		], $[10] = t4) : t4 = $[10];
-		let t5;
-		$[11] === Symbol.for("react.memo_cache_sentinel") ? (t5 = [
-			2,
-			2,
-			3
-		], $[11] = t5) : t5 = $[11];
-		let t6;
-		return $[12] === props.experimentNameOverride ? t6 = $[13] : (t6 = /* @__PURE__ */ jsx(Card, {
-			padding: t4,
-			radius: 2,
-			shadow: 1,
-			tone: "caution",
-			children: /* @__PURE__ */ jsxs(Text, {
-				align: "center",
-				size: t5,
-				children: [
-					"There are no defined ",
-					props.experimentNameOverride,
-					"s"
-				]
-			})
-		}), $[12] = props.experimentNameOverride, $[13] = t6), t6;
-	}
-	let t4;
-	$[14] === experiments ? t4 = $[15] : (t4 = formatlistOptions(experiments), $[14] = experiments, $[15] = t4);
-	let t5;
-	return $[16] !== handleChange || $[17] !== props || $[18] !== t4 ? (t5 = /* @__PURE__ */ jsx(Select$1, {
-		...props,
-		listOptions: t4,
-		handleChange
-	}), $[16] = handleChange, $[17] = props, $[18] = t4, $[19] = t5) : t5 = $[19], t5;
-}, VariantInput = (props) => {
-	let $ = c(13), t0, t1;
-	if ($[0] !== props.path) {
-		let experimentPath = props.path.slice(0, -2);
-		t0 = useFormValue, t1 = [...experimentPath, "default"], $[0] = props.path, $[1] = t0, $[2] = t1;
-	} else t0 = $[1], t1 = $[2];
-	let defaultValue = t0(t1), t2;
-	$[3] !== defaultValue || $[4] !== props ? (t2 = () => {
-		props.onChange(set(defaultValue, ["value"]));
-	}, $[3] = defaultValue, $[4] = props, $[5] = t2) : t2 = $[5];
-	let handleClick = t2, t3;
-	$[6] === props ? t3 = $[7] : (t3 = props.renderDefault(props), $[6] = props, $[7] = t3);
-	let t4;
-	$[8] === handleClick ? t4 = $[9] : (t4 = /* @__PURE__ */ jsx(Inline, {
-		gap: 1,
-		children: /* @__PURE__ */ jsx(Button, {
-			text: "Copy default",
-			mode: "ghost",
-			onClick: () => handleClick()
-		})
-	}), $[8] = handleClick, $[9] = t4);
-	let t5;
-	return $[10] !== t3 || $[11] !== t4 ? (t5 = /* @__PURE__ */ jsxs(Stack, {
-		gap: 3,
-		children: [t3, t4]
-	}), $[10] = t3, $[11] = t4, $[12] = t5) : t5 = $[12], t5;
-}, VariantPreview = (props) => {
-	let $ = c(26), [subtitle, setSubtitle] = useState(void 0), [title, setTitle] = useState(void 0), [media, setMedia] = useState(void 0), { experiments, apiVersion } = useExperimentContext(), t0;
-	$[0] === apiVersion ? t0 = $[1] : (t0 = { apiVersion }, $[0] = apiVersion, $[1] = t0);
-	let client = useClient(t0), { experiment, variant, value } = props, selectedExperiment, t1;
-	if ($[2] !== experiment || $[3] !== experiments || $[4] !== variant) {
-		let t2;
-		$[7] === experiment ? t2 = $[8] : (t2 = (experimentItem) => experimentItem.id === experiment, $[7] = experiment, $[8] = t2), selectedExperiment = experiments.find(t2), t1 = selectedExperiment?.variants.find((variantItem) => variantItem.id === variant), $[2] = experiment, $[3] = experiments, $[4] = variant, $[5] = selectedExperiment, $[6] = t1;
-	} else selectedExperiment = $[5], t1 = $[6];
-	let selectedVariant = t1, t2;
-	$[9] !== client || $[10] !== props.schemaType || $[11] !== selectedExperiment || $[12] !== selectedVariant || $[13] !== value ? (t2 = () => {
-		let getSubtitle = async () => {
-			if (setTitle(selectedExperiment?.label && selectedVariant?.label ? `${selectedExperiment.label} - ${selectedVariant.label}` : selectedExperiment?.label || selectedVariant?.label), typeof value == "string") return setSubtitle(value);
-			if (isReference(value)) {
-				let doc = await client.getDocument(value._ref), referenceType = (props.schemaType.fields.find(_temp)?.type).to.find((field_0) => field_0.type?.name === doc?._type), selectFields = {}, previewFields = referenceType?.preview?.select || {};
-				Object.keys(previewFields).forEach((key) => {
-					let valueKey = referenceType?.preview?.select?.[key];
-					selectFields[key] = valueKey && doc ? valueKey.split(".").reduce(_temp2, doc) : void 0;
-				});
-				let previewContent = referenceType?.preview?.prepare?.(selectFields);
-				return setMedia(previewContent?.media || selectFields.media), setSubtitle(previewContent?.title || selectFields.title);
-			}
-			return isImage(value) && setMedia(value), "";
-		};
-		getSubtitle();
-	}, $[9] = client, $[10] = props.schemaType, $[11] = selectedExperiment, $[12] = selectedVariant, $[13] = value, $[14] = t2) : t2 = $[14];
-	let t3 = selectedExperiment?.label, t4 = selectedVariant?.label, t5;
-	$[15] !== client || $[16] !== props.schemaType || $[17] !== t3 || $[18] !== t4 || $[19] !== value ? (t5 = [
-		value,
-		client,
-		t3,
-		t4,
-		props.schemaType
-	], $[15] = client, $[16] = props.schemaType, $[17] = t3, $[18] = t4, $[19] = value, $[20] = t5) : t5 = $[20], useEffect(t2, t5);
-	let t6;
-	if ($[21] !== media || $[22] !== props || $[23] !== subtitle || $[24] !== title) {
-		let previewProps = {
-			...props,
-			title,
-			subtitle,
-			media
-		};
-		t6 = props.renderDefault(previewProps), $[21] = media, $[22] = props, $[23] = subtitle, $[24] = title, $[25] = t6;
-	} else t6 = $[25];
-	return t6;
-};
-function _temp(field) {
-	return field.name === "value";
-}
-function _temp2(acc, index) {
-	return acc?.[index];
-}
-/**
-* Flattens a document's schema type into a flat array of fields and includes their path
-*/
-function flattenSchemaType(schemaType) {
-	return isDocumentSchemaType(schemaType) ? extractInnerFields(schemaType.fields, [], 5) : (console.error("Schema type is not a document"), []);
-}
-function extractInnerFields(fields, path, maxDepth) {
-	if (path.length >= maxDepth) return [];
-	let result = [];
-	for (let field of fields) if (result.push({
-		path: [...path, field.name],
-		...field
-	}), field.type.jsonType === "object") result.push(...extractInnerFields(field.type.fields, [...path, field.name], maxDepth));
-	else if (field.type.jsonType === "array") {
-		let arrayTypes = field.type.of || [];
-		for (let arrayType of arrayTypes) "fields" in arrayType && result.push(...extractInnerFields(arrayType.fields, [...path, field.name], maxDepth));
-	}
-	return result;
-}
-const createExperimentType = ({ field, experimentNameOverride, variantNameOverride, variantId, variantArrayName, experimentId }) => {
-	let typeName = typeof field == "string" ? field : field.name, usedName = String(typeName[0]).toUpperCase() + typeName.slice(1), variantName = `${variantNameOverride}${usedName}`;
-	return defineType({
-		name: `${experimentNameOverride}${usedName}`,
-		type: "object",
-		groups: [
-			{
-				name: "default",
-				title: "Default",
-				hidden: ({ parent }) => !Array.isArray(parent)
-			},
-			{
-				name: "experiments",
-				title: "Experiments",
-				hidden: ({ parent }) => !Array.isArray(parent)
-			},
-			{
-				name: "all-fields",
-				title: "All fields",
-				hidden: ({ parent }) => Array.isArray(parent)
-			}
-		],
-		components: {
-			field: (props) => /* @__PURE__ */ jsx(Field, {
-				...props,
-				experimentId,
-				experimentNameOverride,
-				variantNameOverride
-			}),
-			item: ArrayItem
-		},
-		fields: [
-			typeof field == "string" ? defineField({
-				name: "default",
-				type: field,
-				group: "default"
-			}) : {
-				...field,
-				name: "default",
-				group: "default"
-			},
-			defineField({
-				name: "active",
-				type: "boolean",
-				hidden: !0,
-				initialValue: !1
-			}),
-			defineField({
-				name: experimentId,
-				type: "string",
-				group: "experiments",
-				components: { input: (props) => /* @__PURE__ */ jsx(Input, {
-					...props,
-					experimentNameOverride,
-					variantNameOverride
-				}) },
-				hidden: ({ parent }) => !parent?.active
-			}),
-			defineField({
-				name: variantArrayName,
-				type: "array",
-				group: "experiments",
-				hidden: ({ parent }) => !parent?.[experimentId],
-				components: { input: (props) => /* @__PURE__ */ jsx(ArrayInput, {
-					...props,
-					variantName,
-					variantId,
-					experimentId
-				}) },
-				of: [defineField({
-					name: variantName,
-					type: variantName
-				})]
-			})
-		],
-		preview: {
-			select: {
-				base: "default",
-				experiment: experimentId
-			},
-			prepare: ({ base, experiment }) => {
-				let title = typeof base == "string" ? base : base && typeof base == "object" && (base.title || base.name) || "", experimentTitle = experiment ? `Experiment: ${experiment}` : "", media = base && typeof base == "object" && (base.image || base.photo || base.media) || "";
-				return {
-					title: title || experimentTitle,
-					subtitle: title ? experimentTitle : "",
-					media
-				};
-			}
-		}
-	});
-}, createVariantType = ({ field, variantNameOverride, variantId, experimentId }) => {
-	let typeName = typeof field == "string" ? field : field.name, usedName = String(typeName[0]).toUpperCase() + typeName.slice(1);
-	return defineType({
-		name: `${variantNameOverride}${usedName}`,
-		title: `${variantNameOverride} array ${usedName}`,
-		type: "object",
-		components: {
-			preview: VariantPreview,
-			input: VariantInput
-		},
-		fields: [
-			{
-				type: "string",
-				name: variantId,
-				readOnly: !0
-			},
-			{
-				type: "string",
-				name: experimentId,
-				hidden: !0
-			},
-			typeof field == "string" ? defineField({
-				name: "value",
-				type: field
-			}) : {
-				...field,
-				name: "value"
-			}
-		],
-		preview: { select: {
-			variant: variantId,
-			experiment: experimentId,
-			value: "value"
-		} }
-	});
-}, fieldSchema = ({ fields, experimentNameOverride, variantNameOverride, variantId, variantArrayName, experimentId }) => [...fields.map((field) => createVariantType({
-	field,
-	variantNameOverride,
-	variantId,
-	experimentId
-})), ...fields.map((field) => createExperimentType({
-	field,
-	experimentNameOverride,
-	variantNameOverride,
-	variantId,
-	variantArrayName,
-	experimentId
-}))], fieldLevelExperiments = definePlugin((config) => {
-	let pluginConfig = {
-		...CONFIG_DEFAULT,
-		...config
-	}, { fields, experimentNameOverride, variantNameOverride } = pluginConfig, experimentId = `${experimentNameOverride}Id`, variantArrayName = `${variantNameOverride}s`, variantId = `${variantNameOverride}Id`;
-	return {
-		name: "sanity-personalization-plugin-field-level-experiments",
-		schema: { types: fieldSchema({
-			fields,
-			experimentNameOverride,
-			variantNameOverride,
-			variantId,
-			variantArrayName,
-			experimentId
-		}) },
-		form: { components: { input: (props) => !(props.id === "root" && isObjectInputProps(props)) || !flattenSchemaType(props.schemaType).some((field) => field.type.name.startsWith(experimentNameOverride) || field.name.startsWith(experimentNameOverride)) ? props.renderDefault(props) : /* @__PURE__ */ jsx(ExperimentProvider, {
-			...props,
-			experimentFieldPluginConfig: {
-				...pluginConfig,
-				variantId,
-				variantArrayName,
-				experimentId
-			}
-		}) } }
-	};
-});
-export { ArrayItem as i, flattenSchemaType as n, clearChildrenGroups as r, fieldLevelExperiments as t };
-
-//# sourceMappingURL=fieldExperiments-D9NPbCCN.js.map
\ No newline at end of file