one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 67.2 kB
Source Map (JSON)
{"version":3,"file":"composeValidation.js","names":[],"sources":["esm/platform/composeValidation.js"],"sourcesContent":["import { composeDatePickerColorKeys, composeTimePickerColorKeys } from \"./composeTypes\";\nimport { composeIconCodepoints } from \"./generated/composeIcons\";\nimport { isSyncState } from \"./syncStore\";\nconst horizontalAlignments = [\"start\", \"centerHorizontally\", \"end\"];\nconst verticalAlignments = [\"top\", \"centerVertically\", \"bottom\"];\nconst contentAlignments = [\n \"topStart\",\n \"topCenter\",\n \"topEnd\",\n \"centerStart\",\n \"center\",\n \"centerEnd\",\n \"bottomStart\",\n \"bottomCenter\",\n \"bottomEnd\",\n \"top\",\n \"bottom\",\n \"start\",\n \"end\"\n];\nconst verticalArrangements = [\n \"top\",\n \"center\",\n \"bottom\",\n \"spaceBetween\",\n \"spaceAround\",\n \"spaceEvenly\"\n];\nconst horizontalArrangements = [\n \"start\",\n \"center\",\n \"end\",\n \"spaceBetween\",\n \"spaceAround\",\n \"spaceEvenly\"\n];\nconst textAlignments = [\n \"unspecified\",\n \"left\",\n \"right\",\n \"center\",\n \"justify\",\n \"start\",\n \"end\"\n];\nconst fontWeights = [\n \"thin\",\n \"extraLight\",\n \"light\",\n \"normal\",\n \"medium\",\n \"semiBold\",\n \"bold\",\n \"extraBold\",\n \"black\"\n];\nconst buttonVariants = [\"filled\", \"tonal\", \"elevated\", \"outlined\", \"text\"];\nconst buttonTones = [\"default\", \"danger\"];\nconst textFieldVariants = [\"filled\", \"outlined\"];\nconst textFieldKeyboardTypes = [\n \"default\",\n \"number\",\n \"decimal\",\n \"email\",\n \"password\",\n \"phone\",\n \"url\"\n];\nconst textFieldImeActions = [\n \"default\",\n \"none\",\n \"go\",\n \"search\",\n \"send\",\n \"previous\",\n \"next\",\n \"done\"\n];\nconst textFieldCapitalizations = [\n \"none\",\n \"characters\",\n \"words\",\n \"sentences\"\n];\nconst progressVariants = [\"linear\", \"circular\", \"linearWavy\", \"circularWavy\"];\nconst progressStrokeCaps = [\"round\", \"butt\", \"square\"];\nconst composeStyleKeys = /* @__PURE__ */ new Set([\n \"backgroundColor\",\n \"foregroundColor\",\n \"padding\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n \"width\",\n \"height\",\n \"fillMaxWidth\",\n \"fillMaxHeight\",\n \"weight\",\n \"cornerRadius\",\n \"opacity\",\n \"borderColor\",\n \"borderWidth\"\n]);\nconst composeStyleNumberKeys = /* @__PURE__ */ new Set([\n \"padding\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n \"width\",\n \"height\",\n \"cornerRadius\",\n \"borderWidth\"\n]);\nconst composeStyleColorKeys = /* @__PURE__ */ new Set([\n \"backgroundColor\",\n \"foregroundColor\",\n \"borderColor\"\n]);\nconst checkboxColorKeys = /* @__PURE__ */ new Set([\n \"checkedColor\",\n \"disabledCheckedColor\",\n \"uncheckedColor\",\n \"disabledUncheckedColor\",\n \"checkmarkColor\"\n]);\nconst radioColorKeys = /* @__PURE__ */ new Set([\n \"selectedColor\",\n \"unselectedColor\",\n \"disabledSelectedColor\",\n \"disabledUnselectedColor\"\n]);\nconst cardColorKeys = /* @__PURE__ */ new Set([\"containerColor\", \"contentColor\"]);\nconst listItemColorKeys = /* @__PURE__ */ new Set([\n \"containerColor\",\n \"contentColor\",\n \"leadingContentColor\",\n \"trailingContentColor\",\n \"supportingContentColor\",\n \"overlineContentColor\"\n]);\nfunction validateListItemProps(props) {\n if (props.colors !== void 0) assertComposeColors(props.colors, listItemColorKeys, \"ListItem\");\n if (props.tonalElevation !== void 0) {\n assertFiniteNumber(props.tonalElevation, \"ListItem tonalElevation\");\n if (props.tonalElevation < 0)\n throw new Error(\"Compose ListItem tonalElevation must be nonnegative\");\n }\n if (props.shadowElevation !== void 0) {\n assertFiniteNumber(props.shadowElevation, \"ListItem shadowElevation\");\n if (props.shadowElevation < 0)\n throw new Error(\"Compose ListItem shadowElevation must be nonnegative\");\n }\n}\nfunction validateBadgeProps(props) {\n if (props.containerColor !== void 0)\n assertComposeColorValue(props.containerColor, \"Badge containerColor\");\n if (props.contentColor !== void 0)\n assertComposeColorValue(props.contentColor, \"Badge contentColor\");\n}\nconst assistChipColorKeys = /* @__PURE__ */ new Set([\n \"containerColor\",\n \"labelColor\",\n \"leadingIconContentColor\",\n \"trailingIconContentColor\"\n]);\nconst filterChipColorKeys = /* @__PURE__ */ new Set([\n \"containerColor\",\n \"labelColor\",\n \"iconColor\",\n \"selectedContainerColor\",\n \"selectedLabelColor\",\n \"selectedLeadingIconColor\",\n \"selectedTrailingIconColor\"\n]);\nconst inputChipColorKeys = /* @__PURE__ */ new Set([\n \"containerColor\",\n \"labelColor\",\n \"leadingIconColor\",\n \"trailingIconColor\",\n \"selectedContainerColor\",\n \"selectedLabelColor\",\n \"selectedLeadingIconColor\",\n \"selectedTrailingIconColor\"\n]);\nconst suggestionChipColorKeys = /* @__PURE__ */ new Set([\n \"containerColor\",\n \"labelColor\",\n \"iconContentColor\"\n]);\nconst iconButtonColorKeys = /* @__PURE__ */ new Set([\n \"containerColor\",\n \"contentColor\",\n \"disabledContainerColor\",\n \"disabledContentColor\"\n]);\nconst toggleButtonColorKeys = /* @__PURE__ */ new Set([\n \"containerColor\",\n \"contentColor\",\n \"checkedContainerColor\",\n \"checkedContentColor\",\n \"disabledContainerColor\",\n \"disabledContentColor\"\n]);\nconst segmentedButtonColorKeys = /* @__PURE__ */ new Set([\n \"activeBorderColor\",\n \"activeContentColor\",\n \"inactiveBorderColor\",\n \"inactiveContentColor\",\n \"disabledActiveBorderColor\",\n \"disabledActiveContentColor\",\n \"disabledInactiveBorderColor\",\n \"disabledInactiveContentColor\",\n \"activeContainerColor\",\n \"inactiveContainerColor\",\n \"disabledActiveContainerColor\",\n \"disabledInactiveContainerColor\"\n]);\nconst switchColorKeys = /* @__PURE__ */ new Set([\n \"checkedThumbColor\",\n \"checkedTrackColor\",\n \"checkedBorderColor\",\n \"checkedIconColor\",\n \"uncheckedThumbColor\",\n \"uncheckedTrackColor\",\n \"uncheckedBorderColor\",\n \"uncheckedIconColor\",\n \"disabledCheckedThumbColor\",\n \"disabledCheckedTrackColor\",\n \"disabledCheckedBorderColor\",\n \"disabledCheckedIconColor\",\n \"disabledUncheckedThumbColor\",\n \"disabledUncheckedTrackColor\",\n \"disabledUncheckedBorderColor\",\n \"disabledUncheckedIconColor\"\n]);\nconst sliderColorKeys = /* @__PURE__ */ new Set([\n \"thumbColor\",\n \"activeTrackColor\",\n \"inactiveTrackColor\",\n \"activeTickColor\",\n \"inactiveTickColor\"\n]);\nfunction assertComposeColorValue(value, name) {\n const resourcePaths = value && typeof value === \"object\" && \"resource_paths\" in value ? value.resource_paths : void 0;\n if ((typeof value !== \"string\" || !value.trim()) && (typeof value !== \"number\" || !Number.isFinite(value)) && (!Array.isArray(resourcePaths) || resourcePaths.length === 0 || resourcePaths.some((path) => typeof path !== \"string\" || !path)))\n throw new Error(`Compose ${name} must be a color value`);\n}\nfunction assertComposeColors(colors, keys, owner) {\n if (!colors || typeof colors !== \"object\" || Array.isArray(colors))\n throw new Error(`Compose ${owner} colors must be an object`);\n for (const [key, value] of Object.entries(colors)) {\n if (!keys.has(key))\n throw new Error(`Compose ${owner} colors does not support ${key}`);\n if (value !== void 0) assertComposeColorValue(value, `${owner} colors ${key}`);\n }\n}\nfunction assertComposeStyle(style) {\n if (style === void 0) return;\n if (!style || typeof style !== \"object\" || Array.isArray(style))\n throw new Error(\"Compose composeStyle must be an object\");\n for (const key of Object.keys(style)) {\n if (!composeStyleKeys.has(key))\n throw new Error(`Compose composeStyle does not support ${key}`);\n const value = style[key];\n if (value === void 0) continue;\n if (composeStyleNumberKeys.has(key)) {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0)\n throw new Error(`Compose composeStyle ${key} must be a nonnegative finite number`);\n continue;\n }\n if (key === \"opacity\") {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0 || value > 1)\n throw new Error(\"Compose composeStyle opacity must be a number from 0 to 1\");\n continue;\n }\n if (key === \"weight\") {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value <= 0)\n throw new Error(\"Compose composeStyle weight must be a positive finite number\");\n continue;\n }\n if (composeStyleColorKeys.has(key)) {\n assertComposeColorValue(value, `composeStyle ${key}`);\n continue;\n }\n if (typeof value !== \"boolean\")\n throw new Error(`Compose composeStyle ${key} must be a boolean`);\n }\n}\nfunction assertString(value, name, nonEmpty = false) {\n if (typeof value !== \"string\" || nonEmpty && !value.trim())\n throw new Error(`Compose ${name} must be${nonEmpty ? \" a non-empty\" : \"\"} string`);\n}\nfunction assertOptionalString(value, name) {\n if (value !== void 0) assertString(value, name);\n}\nfunction assertBoolean(value, name) {\n if (typeof value !== \"boolean\") throw new Error(`Compose ${name} must be a boolean`);\n}\nfunction assertOptionalBoolean(value, name) {\n if (value !== void 0) assertBoolean(value, name);\n}\nfunction assertOneOf(value, name, values) {\n if (!values.includes(value))\n throw new Error(`Compose ${name} must be one of ${values.join(\", \")}`);\n}\nfunction assertFiniteNumber(value, name) {\n if (typeof value !== \"number\" || !Number.isFinite(value))\n throw new Error(`Compose ${name} must be a finite number`);\n}\nfunction assertFunction(value, name) {\n if (typeof value !== \"function\") throw new Error(`Compose ${name} must be a function`);\n}\nfunction validateColumnProps(props) {\n const horizontalAlignment = props.horizontalAlignment ?? \"start\";\n const verticalArrangement = props.verticalArrangement ?? \"top\";\n assertOneOf(horizontalAlignment, \"Column horizontalAlignment\", horizontalAlignments);\n assertOneOf(verticalArrangement, \"Column verticalArrangement\", verticalArrangements);\n if (props.spacing !== void 0 && (!Number.isFinite(props.spacing) || props.spacing < 0))\n throw new Error(\"Compose Column spacing must be a nonnegative finite number\");\n if (props.spacing !== void 0 && verticalArrangement.startsWith(\"space\"))\n throw new Error(\n \"Compose Column spacing cannot be combined with a space-distribution arrangement\"\n );\n}\nfunction validateRowProps(props) {\n const verticalAlignment = props.verticalAlignment ?? \"top\";\n const horizontalArrangement = props.horizontalArrangement ?? \"start\";\n assertOneOf(verticalAlignment, \"Row verticalAlignment\", verticalAlignments);\n assertOneOf(horizontalArrangement, \"Row horizontalArrangement\", horizontalArrangements);\n if (props.spacing !== void 0 && (!Number.isFinite(props.spacing) || props.spacing < 0))\n throw new Error(\"Compose Row spacing must be a nonnegative finite number\");\n if (props.spacing !== void 0 && horizontalArrangement.startsWith(\"space\"))\n throw new Error(\n \"Compose Row spacing cannot be combined with a space-distribution arrangement\"\n );\n}\nfunction validateFlowRowProps(props) {\n function arrangement(value, name, names) {\n if (typeof value === \"string\") {\n if (!names.includes(value)) throw new Error(`Compose FlowRow ${name} is unsupported`);\n return;\n }\n if (!value || typeof value !== \"object\" || Array.isArray(value) || Object.keys(value).length !== 1 || !(\"spacedBy\" in value) || typeof value.spacedBy !== \"number\" || !Number.isFinite(value.spacedBy) || value.spacedBy < 0)\n throw new Error(`Compose FlowRow ${name} spacedBy must be a nonnegative finite number`);\n }\n arrangement(props.horizontalArrangement ?? \"start\", \"horizontalArrangement\", horizontalArrangements);\n arrangement(props.verticalArrangement ?? \"top\", \"verticalArrangement\", verticalArrangements);\n}\nfunction validateBoxProps(props) {\n assertOneOf(\n props.contentAlignment ?? \"topStart\",\n \"Box contentAlignment\",\n contentAlignments\n );\n}\nfunction validateTextProps(props) {\n assertString(props.text, \"Text text\");\n if (props.fontSize !== void 0 && (!Number.isFinite(props.fontSize) || props.fontSize <= 0))\n throw new Error(\"Compose Text fontSize must be a positive finite number\");\n if (props.fontWeight !== void 0)\n assertOneOf(props.fontWeight, \"Text fontWeight\", fontWeights);\n if (props.textAlign !== void 0) assertOneOf(props.textAlign, \"Text textAlign\", textAlignments);\n if (props.maxLines !== void 0 && (!Number.isInteger(props.maxLines) || props.maxLines <= 0))\n throw new Error(\"Compose Text maxLines must be a positive integer\");\n}\nfunction composeIconGlyph(owner, name) {\n if (!Object.hasOwn(composeIconCodepoints, name))\n throw new Error(\n `Compose ${owner} must be a Material Symbols name, got ${JSON.stringify(name)}`\n );\n return String.fromCodePoint(composeIconCodepoints[name]);\n}\nfunction validateIconProps(props) {\n assertString(props.name, \"Icon name\", true);\n if (props.size !== void 0 && (!Number.isFinite(props.size) || props.size <= 0))\n throw new Error(\"Compose Icon size must be a positive finite number\");\n assertOptionalBoolean(props.filled, \"Icon filled\");\n composeIconGlyph(\"Icon name\", props.name);\n}\nfunction validateButtonProps(props) {\n assertString(props.label, \"Button label\", true);\n assertBoolean(props.disabled ?? false, \"Button disabled\");\n assertOneOf(props.variant ?? \"filled\", \"Button variant\", buttonVariants);\n assertOneOf(props.tone ?? \"default\", \"Button tone\", buttonTones);\n assertBoolean(props.iconFilled ?? false, \"Button iconFilled\");\n if (props.icon !== void 0) composeIconGlyph(\"Button icon\", props.icon);\n if (props.onPress !== void 0) assertFunction(props.onPress, \"Button onPress\");\n}\nfunction validateIconButtonProps(props) {\n assertBoolean(props.enabled ?? true, \"IconButton enabled\");\n if (props.onClick !== void 0) assertFunction(props.onClick, \"IconButton onClick\");\n if (props.colors !== void 0) assertComposeColors(props.colors, iconButtonColorKeys, \"IconButton\");\n}\nfunction validateFloatingActionButtonProps(props, variant) {\n assertOneOf(variant, \"FloatingActionButton variant\", [\"small\", \"medium\", \"large\", \"extended\"]);\n assertBoolean(props.expanded ?? true, \"FloatingActionButton expanded\");\n if (props.containerColor !== void 0) assertComposeColorValue(props.containerColor, \"FloatingActionButton containerColor\");\n if (props.onClick !== void 0) assertFunction(props.onClick, \"FloatingActionButton onClick\");\n}\nfunction validateToggleButtonProps(props) {\n assertBoolean(props.checked, \"ToggleButton checked\");\n assertBoolean(props.enabled ?? true, \"ToggleButton enabled\");\n if (props.onCheckedChange !== void 0) assertFunction(props.onCheckedChange, \"ToggleButton onCheckedChange\");\n if (props.colors !== void 0) assertComposeColors(props.colors, toggleButtonColorKeys, \"ToggleButton\");\n}\nfunction validateSegmentedButtonProps(props) {\n if (props.selected !== void 0) assertBoolean(props.selected, \"SegmentedButton selected\");\n if (props.checked !== void 0) assertBoolean(props.checked, \"SegmentedButton checked\");\n assertBoolean(props.enabled ?? true, \"SegmentedButton enabled\");\n if (props.onClick !== void 0) assertFunction(props.onClick, \"SegmentedButton onClick\");\n if (props.onCheckedChange !== void 0) assertFunction(props.onCheckedChange, \"SegmentedButton onCheckedChange\");\n if (props.colors !== void 0) assertComposeColors(props.colors, segmentedButtonColorKeys, \"SegmentedButton\");\n}\nfunction validateSwitchProps(props) {\n assertBoolean(props.isOn, \"Switch isOn\");\n assertBoolean(props.disabled ?? false, \"Switch disabled\");\n assertString(props.label ?? \"\", \"Switch label\");\n assertFunction(props.onIsOnChange, \"Switch onIsOnChange\");\n if (props.colors !== void 0) assertComposeColors(props.colors, switchColorKeys, \"Switch\");\n}\nfunction validateCheckboxProps(props) {\n assertBoolean(props.value, \"Checkbox value\");\n assertBoolean(props.disabled ?? false, \"Checkbox disabled\");\n if (props.onCheckedChange !== void 0)\n assertFunction(props.onCheckedChange, \"Checkbox onCheckedChange\");\n if (props.colors !== void 0) assertComposeColors(props.colors, checkboxColorKeys, \"Checkbox\");\n}\nfunction validateRadioButtonProps(props) {\n assertBoolean(props.selected, \"RadioButton selected\");\n assertBoolean(props.disabled ?? false, \"RadioButton disabled\");\n if (props.onClick !== void 0) assertFunction(props.onClick, \"RadioButton onClick\");\n if (props.colors !== void 0) assertComposeColors(props.colors, radioColorKeys, \"RadioButton\");\n}\nfunction validateCardProps(props, kind) {\n if (props.colors !== void 0) assertComposeColors(props.colors, cardColorKeys, kind);\n if (props.elevation !== void 0) {\n assertFiniteNumber(props.elevation, `${kind} elevation`);\n if (props.elevation < 0) throw new Error(`Compose ${kind} elevation must be nonnegative`);\n }\n if (kind === \"ElevatedCard\" && props.border !== void 0)\n throw new Error(\"Compose ElevatedCard does not support border\");\n assertComposeBorder(props.border, kind);\n}\nfunction validateSurfaceProps(props) {\n if (props.color !== void 0) assertComposeColorValue(props.color, \"Surface color\");\n if (props.contentColor !== void 0) assertComposeColorValue(props.contentColor, \"Surface contentColor\");\n if (props.tonalElevation !== void 0) {\n assertFiniteNumber(props.tonalElevation, \"Surface tonalElevation\");\n if (props.tonalElevation < 0) throw new Error(\"Compose Surface tonalElevation must be nonnegative\");\n }\n if (props.shadowElevation !== void 0) {\n assertFiniteNumber(props.shadowElevation, \"Surface shadowElevation\");\n if (props.shadowElevation < 0) throw new Error(\"Compose Surface shadowElevation must be nonnegative\");\n }\n assertComposeBorder(props.border, \"Surface\");\n assertOptionalBoolean(props.enabled, \"Surface enabled\");\n assertOptionalBoolean(props.selected, \"Surface selected\");\n assertOptionalBoolean(props.checked, \"Surface checked\");\n if (props.onClick !== void 0) assertFunction(props.onClick, \"Surface onClick\");\n if (props.onCheckedChange !== void 0) assertFunction(props.onCheckedChange, \"Surface onCheckedChange\");\n}\nfunction assertComposeBorder(border, kind) {\n if (border === void 0) return;\n if (!border || typeof border !== \"object\" || Array.isArray(border))\n throw new Error(`Compose ${kind} border must be an object`);\n for (const key of Object.keys(border))\n if (key !== \"width\" && key !== \"color\")\n throw new Error(`Compose ${kind} border does not support ${key}`);\n if (border.width !== void 0) {\n assertFiniteNumber(border.width, `${kind} border width`);\n if (border.width < 0)\n throw new Error(`Compose ${kind} border width must be nonnegative`);\n }\n if (border.color !== void 0) assertComposeColorValue(border.color, `${kind} border color`);\n}\nfunction validateChipProps(props, kind) {\n const selected = \"selected\" in props ? props.selected : void 0;\n if (kind === \"FilterChip\") assertBoolean(selected, `${kind} selected`);\n else if (kind === \"InputChip\" && selected !== void 0)\n assertBoolean(selected, `${kind} selected`);\n assertBoolean(props.enabled ?? true, `${kind} enabled`);\n if (props.onClick !== void 0) assertFunction(props.onClick, `${kind} onClick`);\n if (props.colors !== void 0) {\n const keys = kind === \"AssistChip\" ? assistChipColorKeys : kind === \"FilterChip\" ? filterChipColorKeys : kind === \"InputChip\" ? inputChipColorKeys : suggestionChipColorKeys;\n assertComposeColors(props.colors, keys, kind);\n }\n if (props.elevation !== void 0) {\n assertFiniteNumber(props.elevation, `${kind} elevation`);\n if (props.elevation < 0) throw new Error(`Compose ${kind} elevation must be nonnegative`);\n }\n assertComposeBorder(props.border, kind);\n}\nfunction validateDividerProps(props, kind) {\n if (props.thickness !== void 0) {\n assertFiniteNumber(props.thickness, `${kind} thickness`);\n if (props.thickness < 0) throw new Error(`Compose ${kind} thickness must be nonnegative`);\n }\n if (props.color !== void 0) assertComposeColorValue(props.color, `${kind} color`);\n}\nfunction validateTextFieldProps(props) {\n if (typeof props.text !== \"string\" && !isSyncState(props.text))\n throw new Error(\"Compose TextField text must be a string or NativeState handle\");\n assertFunction(props.onTextChange, \"TextField onTextChange\");\n assertOptionalString(props.label, \"TextField label\");\n assertOptionalString(props.placeholder, \"TextField placeholder\");\n assertOptionalBoolean(props.disabled, \"TextField disabled\");\n if (props.variant !== void 0)\n assertOneOf(props.variant, \"TextField variant\", textFieldVariants);\n if (props.keyboardType !== void 0)\n assertOneOf(props.keyboardType, \"TextField keyboardType\", textFieldKeyboardTypes);\n assertOptionalBoolean(props.secureText, \"TextField secureText\");\n assertOptionalBoolean(props.focused, \"TextField focused\");\n if (props.onFocusChange !== void 0)\n assertFunction(props.onFocusChange, \"TextField onFocusChange\");\n if (props.imeAction !== void 0)\n assertOneOf(props.imeAction, \"TextField imeAction\", textFieldImeActions);\n if (props.onSubmit !== void 0) assertFunction(props.onSubmit, \"TextField onSubmit\");\n if (props.maxLength !== void 0 && (!Number.isInteger(props.maxLength) || props.maxLength < 0))\n throw new Error(\"Compose TextField maxLength must be a nonnegative integer\");\n assertOptionalBoolean(props.multiline, \"TextField multiline\");\n if (props.capitalization !== void 0)\n assertOneOf(props.capitalization, \"TextField capitalization\", textFieldCapitalizations);\n assertOptionalBoolean(props.autoCorrect, \"TextField autoCorrect\");\n if (props.textAlign !== void 0)\n assertOneOf(props.textAlign, \"TextField textAlign\", textAlignments);\n}\nfunction validateSliderProps(props) {\n const minimumValue = props.minimumValue ?? 0;\n const maximumValue = props.maximumValue ?? 1;\n const step = props.step ?? 0;\n assertFiniteNumber(props.value, \"Slider value\");\n assertFiniteNumber(minimumValue, \"Slider minimumValue\");\n assertFiniteNumber(maximumValue, \"Slider maximumValue\");\n assertFiniteNumber(step, \"Slider step\");\n if (props.lowerLimit !== void 0) assertFiniteNumber(props.lowerLimit, \"Slider lowerLimit\");\n if (props.upperLimit !== void 0) assertFiniteNumber(props.upperLimit, \"Slider upperLimit\");\n if (props.lowerLimit !== void 0 && !Number.isFinite(Math.fround(props.lowerLimit)) || props.upperLimit !== void 0 && !Number.isFinite(Math.fround(props.upperLimit)))\n throw new Error(\"Compose Slider limits must be representable by Android Float values\");\n if (minimumValue >= maximumValue)\n throw new Error(\"Compose Slider minimumValue must be less than maximumValue\");\n if (!Number.isFinite(Math.fround(minimumValue)) || !Number.isFinite(Math.fround(maximumValue)) || Math.fround(minimumValue) >= Math.fround(maximumValue))\n throw new Error(\"Compose Slider range must be representable by Android Float values\");\n if (step < 0) throw new Error(\"Compose Slider step must be a nonnegative finite number\");\n if (step > 0) {\n const intervals = (maximumValue - minimumValue) / step;\n const roundedIntervals = Math.round(intervals);\n if (Math.abs(intervals - roundedIntervals) > Number.EPSILON * Math.max(1, Math.abs(intervals)) * 8)\n throw new Error(\"Compose Slider step must evenly divide its range\");\n if (roundedIntervals > 1001)\n throw new Error(\"Compose Slider step must produce at most 1001 intervals\");\n }\n if (props.value < minimumValue || props.value > maximumValue)\n throw new Error(\"Compose Slider value must be between minimumValue and maximumValue\");\n if (Math.max(Math.fround(minimumValue), Math.fround(props.lowerLimit ?? minimumValue)) > Math.min(Math.fround(maximumValue), Math.fround(props.upperLimit ?? maximumValue)))\n throw new Error(\"Compose Slider limits must overlap the value range\");\n assertFunction(props.onValueChange, \"Slider onValueChange\");\n assertOptionalBoolean(props.disabled, \"Slider disabled\");\n if (props.colors !== void 0) assertComposeColors(props.colors, sliderColorKeys, \"Slider\");\n}\nfunction validateAlertDialogProps(props) {\n assertBoolean(props.visible, \"AlertDialog visible\");\n assertOptionalString(props.title, \"AlertDialog title\");\n assertOptionalString(props.message, \"AlertDialog message\");\n assertString(props.confirmLabel, \"AlertDialog confirmLabel\", true);\n assertOptionalString(props.dismissLabel, \"AlertDialog dismissLabel\");\n assertFunction(props.onConfirm, \"AlertDialog onConfirm\");\n assertFunction(props.onDismiss, \"AlertDialog onDismiss\");\n}\nfunction validateDialogProps(props) {\n assertBoolean(props.visible, \"Dialog visible\");\n assertFunction(props.onDismiss, \"Dialog onDismiss\");\n}\nfunction validateProgressIndicatorProps(props) {\n if (props.variant !== void 0)\n assertOneOf(props.variant, \"ProgressIndicator variant\", progressVariants);\n if (props.progress != null && (typeof props.progress !== \"number\" || !Number.isFinite(props.progress) || props.progress < 0 || props.progress > 1))\n throw new Error(\"Compose ProgressIndicator progress must be a number from 0 to 1\");\n if (props.color !== void 0) assertComposeColorValue(props.color, \"ProgressIndicator color\");\n if (props.trackColor !== void 0) assertComposeColorValue(props.trackColor, \"ProgressIndicator trackColor\");\n const variant = props.variant ?? \"circular\";\n if (props.strokeCap !== void 0) {\n assertOneOf(props.strokeCap, \"ProgressIndicator strokeCap\", progressStrokeCaps);\n if (variant !== \"linear\" && variant !== \"circular\") throw new Error(\"Compose ProgressIndicator strokeCap requires a regular indicator\");\n }\n for (const key of [\"gapSize\", \"strokeWidth\", \"stopSize\", \"amplitude\", \"wavelength\", \"waveSpeed\"]) {\n const value = props[key];\n if (value === void 0) continue;\n assertFiniteNumber(value, `ProgressIndicator ${key}`);\n if (value < 0 || key === \"amplitude\" && value > 1) throw new Error(`Compose ProgressIndicator ${key} is out of range`);\n }\n if (props.gapSize !== void 0 && variant !== \"linear\" && variant !== \"circular\") throw new Error(\"Compose ProgressIndicator gapSize requires a regular indicator\");\n if (props.strokeWidth !== void 0 && variant !== \"circular\") throw new Error(\"Compose ProgressIndicator strokeWidth requires a circular indicator\");\n if (props.stopSize !== void 0 && variant !== \"linearWavy\") throw new Error(\"Compose ProgressIndicator stopSize requires a linear wavy indicator\");\n if ((props.amplitude !== void 0 || props.wavelength !== void 0 || props.waveSpeed !== void 0) && variant !== \"linearWavy\" && variant !== \"circularWavy\")\n throw new Error(\"Compose ProgressIndicator wave settings require a wavy indicator\");\n if (props.drawStopIndicator !== void 0) {\n if (variant !== \"linear\" || props.progress == null) throw new Error(\"Compose ProgressIndicator drawStopIndicator requires determinate linear progress\");\n const stop = props.drawStopIndicator;\n if (typeof stop !== \"object\" || stop === null || Array.isArray(stop)) throw new Error(\"Compose ProgressIndicator drawStopIndicator must be an object\");\n for (const key of Object.keys(stop)) if (key !== \"color\" && key !== \"strokeCap\" && key !== \"stopSize\") throw new Error(`Compose ProgressIndicator drawStopIndicator has unknown key ${key}`);\n if (stop.color !== void 0) assertComposeColorValue(stop.color, \"ProgressIndicator drawStopIndicator color\");\n if (stop.strokeCap !== void 0) assertOneOf(stop.strokeCap, \"ProgressIndicator drawStopIndicator strokeCap\", progressStrokeCaps);\n if (stop.stopSize !== void 0) {\n assertFiniteNumber(stop.stopSize, \"ProgressIndicator drawStopIndicator stopSize\");\n if (stop.stopSize < 0) throw new Error(\"Compose ProgressIndicator drawStopIndicator stopSize must be nonnegative\");\n }\n }\n}\nfunction validateLoadingIndicatorProps(props) {\n if (props.progress != null && (typeof props.progress !== \"number\" || !Number.isFinite(props.progress) || props.progress < 0 || props.progress > 1))\n throw new Error(\"Compose LoadingIndicator progress must be a number from 0 to 1\");\n if (props.color !== void 0) assertComposeColorValue(props.color, \"LoadingIndicator color\");\n if (\"containerColor\" in props && props.containerColor !== void 0)\n assertComposeColorValue(props.containerColor, \"ContainedLoadingIndicator containerColor\");\n}\nconst datePickerColorKeys = new Set(composeDatePickerColorKeys);\nconst timePickerColorKeys = new Set(composeTimePickerColorKeys);\nconst pickerVariants = [\"picker\", \"input\"];\nfunction assertDate(value, name) {\n if (!(value instanceof Date) || !Number.isFinite(value.getTime()))\n throw new Error(`Compose ${name} must be a valid Date`);\n}\nfunction composeUtcDay(date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate());\n}\nfunction validatePickerShared(props, owner) {\n assertDate(props.selection, `${owner} selection`);\n if (props.variant !== void 0) assertOneOf(props.variant, `${owner} variant`, pickerVariants);\n if (props.color !== void 0) assertComposeColorValue(props.color, `${owner} color`);\n}\nfunction validateDatePickerProps(props, owner = \"DatePicker\") {\n validatePickerShared(props, owner);\n assertOptionalBoolean(props.showModeToggle, `${owner} showModeToggle`);\n if (props.minimumDate !== void 0) assertDate(props.minimumDate, `${owner} minimumDate`);\n if (props.maximumDate !== void 0) assertDate(props.maximumDate, `${owner} maximumDate`);\n const day = composeUtcDay(props.selection);\n const minimum = props.minimumDate && composeUtcDay(props.minimumDate);\n const maximum = props.maximumDate && composeUtcDay(props.maximumDate);\n if (minimum !== void 0 && maximum !== void 0 && minimum > maximum)\n throw new Error(`Compose ${owner} minimumDate must not be after maximumDate`);\n if (minimum !== void 0 && day < minimum || maximum !== void 0 && day > maximum)\n throw new Error(`Compose ${owner} selection must be between minimumDate and maximumDate`);\n if (props.colors !== void 0) assertComposeColors(props.colors, datePickerColorKeys, owner);\n}\nfunction validateTimePickerProps(props, owner = \"TimePicker\") {\n validatePickerShared(props, owner);\n assertOptionalBoolean(props.is24Hour, `${owner} is24Hour`);\n if (props.colors !== void 0) assertComposeColors(props.colors, timePickerColorKeys, owner);\n}\nfunction validatePickerDialogProps(props, owner) {\n assertBoolean(props.visible, `${owner} visible`);\n assertFunction(props.onConfirm, `${owner} onConfirm`);\n assertFunction(props.onDismiss, `${owner} onDismiss`);\n assertOptionalString(props.confirmLabel, `${owner} confirmLabel`);\n assertOptionalString(props.dismissLabel, `${owner} dismissLabel`);\n}\nconst lazyAlignments = [\"start\", \"end\", \"center\"];\nconst lazyRowAlignments = [\"top\", \"bottom\", \"center\"];\nconst lazyContentPaddingKeys = [\"start\", \"end\", \"top\", \"bottom\"];\nconst imageContentScales = [\n \"fit\",\n \"crop\",\n \"fillBounds\",\n \"fillWidth\",\n \"fillHeight\",\n \"inside\",\n \"none\"\n];\nconst snackbarColorKeys = /* @__PURE__ */ new Set([\n \"containerColor\",\n \"contentColor\",\n \"actionColor\",\n \"actionContentColor\",\n \"dismissActionContentColor\"\n]);\nconst snackbarPropKeys = /* @__PURE__ */ new Set([...snackbarColorKeys, \"actionOnNewLine\"]);\nconst snackbarDurations = [\"short\", \"long\", \"indefinite\"];\nconst sheetPropertyKeys = /* @__PURE__ */ new Set([\"shouldDismissOnClickOutside\"]);\nfunction assertSpacedBy(value, owner, name) {\n if (value === void 0) return void 0;\n if (typeof value === \"string\") {\n assertOneOf(\n value,\n `${owner} ${name}`,\n name === \"horizontalArrangement\" ? horizontalArrangements : verticalArrangements\n );\n return value;\n }\n if (!value || typeof value !== \"object\" || Array.isArray(value) || Object.keys(value).length !== 1 || !(\"spacedBy\" in value))\n throw new Error(`Compose ${owner} ${name} must be a preset or { spacedBy }`);\n const spacedBy = value.spacedBy;\n if (typeof spacedBy !== \"number\" || !Number.isFinite(spacedBy) || spacedBy < 0)\n throw new Error(`Compose ${owner} ${name} spacedBy must be a nonnegative finite number`);\n return spacedBy;\n}\nfunction assertLazyContentPadding(value, owner) {\n if (value === void 0) return;\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n throw new Error(`Compose ${owner} contentPadding must be an object`);\n for (const [key, entry] of Object.entries(value)) {\n if (!lazyContentPaddingKeys.includes(key))\n throw new Error(`Compose ${owner} contentPadding has unknown key ${key}`);\n if (entry !== void 0 && (typeof entry !== \"number\" || !Number.isFinite(entry) || entry < 0))\n throw new Error(`Compose ${owner} contentPadding ${key} must be a nonnegative finite number`);\n }\n}\nfunction validateLazyColumnProps(props) {\n assertOneOf(props.horizontalAlignment ?? \"start\", \"LazyColumn horizontalAlignment\", lazyAlignments);\n assertSpacedBy(props.verticalArrangement ?? \"top\", \"LazyColumn\", \"verticalArrangement\");\n assertLazyContentPadding(props.contentPadding, \"LazyColumn\");\n}\nfunction validateLazyRowProps(props) {\n assertOneOf(props.verticalAlignment ?? \"top\", \"LazyRow verticalAlignment\", lazyRowAlignments);\n assertSpacedBy(props.horizontalArrangement ?? \"start\", \"LazyRow\", \"horizontalArrangement\");\n assertLazyContentPadding(props.contentPadding, \"LazyRow\");\n}\nfunction validateImageProps(props) {\n const source = props.source;\n const validSource = typeof source === \"number\" && Number.isFinite(source) || source !== null && typeof source === \"object\" && !Array.isArray(source) && typeof source.uri === \"string\" && source.uri.length > 0;\n if (!validSource)\n throw new Error(\"Compose Image source must be a { uri } object or a bundled asset id\");\n if (props.contentScale !== void 0)\n assertOneOf(props.contentScale, \"Image contentScale\", imageContentScales);\n if (props.alignment !== void 0)\n assertOneOf(props.alignment, \"Image alignment\", contentAlignments);\n if (props.contentDescription !== void 0 && props.contentDescription !== null && typeof props.contentDescription !== \"string\")\n throw new Error(\"Compose Image contentDescription must be a string or null\");\n if (props.tint !== void 0) assertComposeColorValue(props.tint, \"Image tint\");\n if (props.alpha !== void 0 && (typeof props.alpha !== \"number\" || !(props.alpha >= 0 && props.alpha <= 1)))\n throw new Error(\"Compose Image alpha must be a number from 0 to 1\");\n if (props.onLoad !== void 0) assertFunction(props.onLoad, \"Image onLoad\");\n if (props.onError !== void 0) assertFunction(props.onError, \"Image onError\");\n}\nfunction validateSnackbarProps(props) {\n for (const [key, value] of Object.entries(props)) {\n if (key === \"children\") continue;\n if (!snackbarPropKeys.has(key))\n throw new Error(`Compose Snackbar colors does not support ${key}`);\n if (key === \"actionOnNewLine\") {\n if (value !== void 0) assertBoolean(value, \"Snackbar actionOnNewLine\");\n } else if (value !== void 0)\n assertComposeColorValue(value, `Snackbar ${key}`);\n }\n}\nfunction validateSnackbarShowOptions(options) {\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n throw new Error(\"Compose SnackbarHost message must be a non-empty string\");\n if (typeof options.message !== \"string\" || !options.message.trim())\n throw new Error(\"Compose SnackbarHost message must be a non-empty string\");\n if (options.actionLabel !== void 0 && typeof options.actionLabel !== \"string\")\n throw new Error(\"Compose SnackbarHost actionLabel must be a string\");\n if (options.duration !== void 0)\n assertOneOf(options.duration, \"SnackbarHost duration\", snackbarDurations);\n if (options.withDismissAction !== void 0)\n assertBoolean(options.withDismissAction, \"SnackbarHost withDismissAction\");\n}\nconst navigationBarItemColorKeys = /* @__PURE__ */ new Set([\n \"selectedIconColor\",\n \"selectedTextColor\",\n \"indicatorColor\",\n \"unselectedIconColor\",\n \"unselectedTextColor\",\n \"disabledIconColor\",\n \"disabledTextColor\"\n]);\nfunction validateNavigationBarProps(props) {\n if (props.containerColor !== void 0)\n assertComposeColorValue(props.containerColor, \"NavigationBar containerColor\");\n if (props.contentColor !== void 0)\n assertComposeColorValue(props.contentColor, \"NavigationBar contentColor\");\n if (props.tonalElevation !== void 0) {\n assertFiniteNumber(props.tonalElevation, \"NavigationBar tonalElevation\");\n if (props.tonalElevation < 0)\n throw new Error(\"Compose NavigationBar tonalElevation must be nonnegative\");\n }\n}\nfunction validateNavigationBarItemProps(props) {\n assertBoolean(props.selected, \"NavigationBarItem selected\");\n assertFunction(props.onClick, \"NavigationBarItem onClick\");\n assertOptionalString(props.label, \"NavigationBarItem label\");\n assertString(props.icon, \"NavigationBarItem icon\", true);\n composeIconGlyph(\"NavigationBarItem icon\", props.icon);\n assertOptionalBoolean(props.iconFilled, \"NavigationBarItem iconFilled\");\n assertOptionalBoolean(props.enabled, \"NavigationBarItem enabled\");\n assertOptionalBoolean(props.alwaysShowLabel, \"NavigationBarItem alwaysShowLabel\");\n if (props.colors !== void 0)\n assertComposeColors(props.colors, navigationBarItemColorKeys, \"NavigationBarItem\");\n}\nfunction validateSearchBarProps(props, owner = \"SearchBar\") {\n assertString(props.query, `${owner} query`);\n assertFunction(props.onQueryChange, `${owner} onQueryChange`);\n assertBoolean(props.expanded, `${owner} expanded`);\n assertFunction(props.onExpandedChange, `${owner} onExpandedChange`);\n assertOptionalString(props.placeholder, `${owner} placeholder`);\n assertOptionalBoolean(props.enabled, `${owner} enabled`);\n if (props.onSearch !== void 0) assertFunction(props.onSearch, `${owner} onSearch`);\n if (props.containerColor !== void 0)\n assertComposeColorValue(props.containerColor, `${owner} containerColor`);\n}\nconst dropdownMenuItemColorKeys = /* @__PURE__ */ new Set([\n \"textColor\",\n \"leadingIconColor\",\n \"trailingIconColor\",\n \"disabledTextColor\",\n \"disabledLeadingIconColor\",\n \"disabledTrailingIconColor\"\n]);\nfunction validateDropdownMenuProps(props) {\n assertBoolean(props.expanded, \"DropdownMenu expanded\");\n assertFunction(props.onDismissRequest, \"DropdownMenu onDismissRequest\");\n if (props.containerColor !== void 0)\n assertComposeColorValue(props.containerColor, \"DropdownMenu containerColor\");\n}\nfunction validateDropdownMenuItemProps(props) {\n assertString(props.text, \"DropdownMenuItem text\", true);\n assertFunction(props.onClick, \"DropdownMenuItem onClick\");\n assertOptionalBoolean(props.enabled, \"DropdownMenuItem enabled\");\n if (props.leadingIcon !== void 0) {\n assertString(props.leadingIcon, \"DropdownMenuItem leadingIcon\", true);\n composeIconGlyph(\"DropdownMenuItem leadingIcon\", props.leadingIcon);\n }\n if (props.trailingIcon !== void 0) {\n assertString(props.trailingIcon, \"DropdownMenuItem trailingIcon\", true);\n composeIconGlyph(\"DropdownMenuItem trailingIcon\", props.trailingIcon);\n }\n assertOptionalBoolean(props.iconFilled, \"DropdownMenuItem iconFilled\");\n if (props.colors !== void 0)\n assertComposeColors(props.colors, dropdownMenuItemColorKeys, \"DropdownMenuItem\");\n}\nfunction validateExposedDropdownMenuBoxProps(props) {\n assertBoolean(props.expanded, \"ExposedDropdownMenuBox expanded\");\n assertFunction(props.onExpandedChange, \"ExposedDropdownMenuBox onExpandedChange\");\n assertString(props.value, \"ExposedDropdownMenuBox value\");\n assertOptionalString(props.placeholder, \"ExposedDropdownMenuBox placeholder\");\n assertOptionalBoolean(props.enabled, \"ExposedDropdownMenuBox enabled\");\n}\nfunction validatePullToRefreshBoxProps(props) {\n assertBoolean(props.isRefreshing, \"PullToRefreshBox isRefreshing\");\n assertFunction(props.onRefresh, \"PullToRefreshBox onRefresh\");\n assertOptionalBoolean(props.enabled, \"PullToRefreshBox enabled\");\n}\nconst animatedVisibilityTransitions = [\n \"fade\",\n \"scale\",\n \"slideVertically\",\n \"expandVertically\"\n];\nfunction validateTooltipBoxProps(props) {\n assertString(props.text, \"TooltipBox text\", true);\n assertOptionalString(props.title, \"TooltipBox title\");\n assertOptionalBoolean(props.enabled, \"TooltipBox enabled\");\n}\nfunction validateAnimatedVisibilityProps(props) {\n assertBoolean(props.visible, \"AnimatedVisibility visible\");\n if (props.enter !== void 0)\n assertOneOf(props.enter, \"AnimatedVisibility enter\", animatedVisibilityTransitions);\n if (props.exit !== void 0)\n assertOneOf(props.exit, \"AnimatedVisibility exit\", animatedVisibilityTransitions);\n}\nfunction validateModalBottomSheetProps(props) {\n assertFunction(props.onDismissRequest, \"ModalBottomSheet onDismissRequest\");\n if (props.properties !== void 0) {\n if (!props.properties || typeof props.properties !== \"object\" || Array.isArray(props.properties))\n throw new Error(\"Compose ModalBottomSheet properties must be an object\");\n for (const [key, value] of Object.entries(props.properties)) {\n if (!sheetPropertyKeys.has(key))\n throw new Error(`Compose ModalBottomSheet properties has unknown key ${key}`);\n if (value !== void 0) assertBoolean(value, `ModalBottomSheet properties ${key}`);\n }\n }\n if (props.scrimColor !== void 0)\n assertComposeColorValue(props.scrimColor, \"ModalBottomSheet scrimColor\");\n assertOptionalBoolean(props.skipPartiallyExpanded, \"ModalBottomSheet skipPartiallyExpanded\");\n assertOptionalBoolean(props.initialFullyExpanded, \"ModalBottomSheet initialFullyExpanded\");\n assertOptionalBoolean(props.showDragHandle, \"ModalBottomSheet showDragHandle\");\n assertOptionalBoolean(props.sheetGesturesEnabled, \"ModalBottomSheet sheetGesturesEnabled\");\n}\nexport {\n animatedVisibilityTransitions,\n assertBoolean,\n assertComposeStyle,\n assertFiniteNumber,\n assertFunction,\n assertOneOf,\n assertOptionalBoolean,\n assertOptionalString,\n assertString,\n buttonTones,\n buttonVariants,\n composeIconGlyph,\n composeUtcDay,\n contentAlignments,\n fontWeights,\n horizontalAlignments,\n horizontalArrangements,\n imageContentScales,\n lazyAlignments,\n lazyRowAlignments,\n progressStrokeCaps,\n progressVariants,\n snackbarDurations,\n textAlignments,\n textFieldCapitalizations,\n textFieldImeActions,\n textFieldKeyboardTypes,\n textFieldVariants,\n validateAlertDialogProps,\n validateAnimatedVisibilityProps,\n validateBadgeProps,\n validateBoxProps,\n validateButtonProps,\n validateCardProps,\n validateCheckboxProps,\n validateChipProps,\n validateColumnProps,\n validateDatePickerProps,\n validateDialogProps,\n validateDividerProps,\n validateDropdownMenuItemProps,\n validateDropdownMenuProps,\n validateExposedDropdownMenuBoxProps,\n validateFloatingActionButtonProps,\n validateFlowRowProps,\n validateIconButtonProps,\n validateIconProps,\n validateImageProps,\n validateLazyColumnProps,\n validateLazyRowProps,\n validateListItemProps,\n validateLoadingIndicatorProps,\n validateModalBottomSheetProps,\n validateNavigationBarItemProps,\n validateNavigationBarProps,\n validatePickerDialogProps,\n validateProgressIndicatorProps,\n validatePullToRefreshBoxProps,\n validateRadioButtonProps,\n validateRowProps,\n validateSearchBarProps,\n validateSegmentedButtonProps,\n validateSliderProps,\n validateSnackbarProps,\n validateSnackbarShowOptions,\n validateSurfaceProps,\n validateSwitchProps,\n validateTextFieldProps,\n validateTextProps,\n validateTimePickerProps,\n validateToggleButtonProps,\n validateTooltipBoxProps,\n verticalAlignments,\n verticalArrangements\n};\n//# sourceMappingURL=composeValidation.js.map\n"],"mappings":";;;;;AAGA,MAAM,uBAAuB;CAAC;CAAS;CAAsB;AAAK;AAClE,MAAM,qBAAqB;CAAC;CAAO;CAAoB;AAAQ;AAC/D,MAAM,oBAAoB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,uBAAuB;CAC3B;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,yBAAyB;CAC7B;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,cAAc;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,iBAAiB;CAAC;CAAU;CAAS;CAAY;CAAY;AAAM;AACzE,MAAM,cAAc,CAAC,WAAW,QAAQ;AACxC,MAAM,oBAAoB,CAAC,UAAU,UAAU;AAC/C,MAAM,yBAAyB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,sBAAsB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,MAAM,2BAA2B;CAC/B;CACA;CACA;CACA;AACF;AACA,MAAM,mBAAmB;CAAC;CAAU;CAAY;CAAc;AAAc;AAC5E,MAAM,qBAAqB;CAAC;CAAS;CAAQ;AAAQ;AACrD,MAAM,mCAAmC,IAAI,IAAI;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,yCAAyC,IAAI,IAAI;CACrD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,wCAAwC,IAAI,IAAI;CACpD;CACA;CACA;AACF,CAAC;AACD,MAAM,oCAAoC,IAAI,IAAI;CAChD;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,iCAAiC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,gCAAgC,IAAI,IAAI,CAAC,kBAAkB,cAAc,CAAC;AAChF,MAAM,oCAAoC,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"}