{"version":3,"file":"inputStyles.MCAt2ImQ.mjs","names":["Tokens","Tokens"],"sources":["https:/framerusercontent.com/modules/4pMWeMAsoCjjLKLkLWe0/VhUlwP62LXwCskpiIzYR/styles.js","https:/framerusercontent.com/modules/ROegQIHYMJvErUHBeerm/qxxnaB8BeS0oZpBIRiZF/inputStyles.js"],"sourcesContent":["/**\n * Shared Style Utilities.\n *\n * Memoizable style helper functions for common component styling patterns.\n * These utilities help reduce code duplication and ensure consistency.\n */import Tokens,{LIQUID_GLASS_SHARED,getLiquidGlassBackdropBlurFilter}from\"https://framerusercontent.com/modules/trqsvmaimtqmRw7lebtr/P3gcEmpY4oCI03EBOoMx/index.js\";// Default focus border color used across inputs and interactive elements\nconst DEFAULT_FOCUS_BORDER_COLOR=\"/Borders/border-brand-bunq\";/**\n * Get common interactive styles (hover, focus, disabled states).\n *\n * @param options - Interactive state options\n * @returns CSS properties object with interactive styles\n */export function getInteractiveStyles(options){const{isInteractive,isHovered,isPressed,isFocused,isDisabled,focusBorderColor=DEFAULT_FOCUS_BORDER_COLOR}=options;return{cursor:isInteractive?\"pointer\":\"not-allowed\",filter:Tokens.getBrightnessFilter(isDisabled,isHovered,isPressed),outline:isFocused?`${Tokens.getFocusOutlineWidth()} solid ${Tokens.getColorValue(focusBorderColor)}`:\"none\",outlineOffset:Tokens.getSpacing(2),pointerEvents:isInteractive?\"auto\":\"none\",transition:`${Tokens.getTransition(\"background\",\"quick\")}, ${Tokens.getTransition(\"filter\",\"quick\")}`};}/**\n * Get shared input container styles.\n *\n * @param options - Input container style options\n * @returns CSS properties object for input container\n */export function getInputContainerStyles(options){const{breakpoint=\"desktop\",isDisabled,isFocused,isHovered,borderColor=\"/Borders/border-primary\",backgroundColor=\"/Backgrounds/bg-tertiary\",focusBorderColor=DEFAULT_FOCUS_BORDER_COLOR}=options;return{display:\"flex\",alignItems:\"center\",gap:Tokens.getResponsiveSpacing(8,breakpoint),backgroundColor:Tokens.getColorValue(backgroundColor),borderRadius:Tokens.getRadius(\"radius-lg\"),border:`1px solid ${Tokens.getColorValue(borderColor)}`,outline:isFocused?`${Tokens.getFocusOutlineWidth()} solid ${Tokens.getColorValue(focusBorderColor)}`:\"none\",outlineOffset:Tokens.getSpacing(2),filter:Tokens.getBrightnessFilter(isDisabled,isHovered,false),transition:`${Tokens.getTransition(\"border\",\"standard\")}, ${Tokens.getTransition(\"filter\",\"quick\")}`,overflow:\"hidden\",cursor:isDisabled?\"not-allowed\":\"default\",height:Tokens.getSpacing(48),width:\"100%\",minWidth:Tokens.getSpacing(160),boxSizing:\"border-box\"};}/**\n * Get consistent focus ring styles.\n *\n * @param options - Focus ring options\n * @returns CSS properties object with focus ring styles\n */export function getFocusRingStyles(options){const{isFocused,focusColor=DEFAULT_FOCUS_BORDER_COLOR,offset=Tokens.getSpacing(2)}=options;return{outline:isFocused?`${Tokens.getFocusOutlineWidth()} solid ${Tokens.getColorValue(focusColor)}`:\"none\",outlineOffset:offset};}/**\n * Dropdown styling constants.\n */export const DROPDOWN_CONSTANTS={/**\n     * Z-index for dropdown menus (scale 0–10; use Tokens.getZIndex(\"elevated\") for consistency).\n     */Z_INDEX:Tokens.getZIndex(\"elevated\"),/**\n     * Maximum height for dropdown menus before scrolling (300px; not in spacing scale).\n     */MAX_HEIGHT:\"300px\",/**\n     * Gap between dropdown trigger and menu (spacing(8)).\n     */GAP_FROM_TRIGGER:8,/**\n     * Padding inside dropdown container (spacing(8)).\n     */CONTAINER_PADDING:8,/**\n     * Gap between dropdown options (spacing(2)).\n     */OPTION_GAP:2,/**\n     * Padding for dropdown options (spacing(10)).\n     */OPTION_PADDING:10};/**\n * Get consistent dropdown container styles.\n *\n * @param options - Dropdown container style options\n * @returns CSS properties object for dropdown container\n */export function getDropdownContainerStyles(options={}){const{breakpoint=\"desktop\",backgroundColor=\"/Backgrounds/bg-tertiary\",borderColor,maxHeight=DROPDOWN_CONSTANTS.MAX_HEIGHT,zIndex=DROPDOWN_CONSTANTS.Z_INDEX,useTwoLayer=false}=options;const useGlassBackdrop=typeof backgroundColor===\"string\"&&backgroundColor.endsWith(\"-glass\");const glassBackdrop=useGlassBackdrop?getLiquidGlassBackdropBlurFilter(LIQUID_GLASS_SHARED.frostBlurPx,LIQUID_GLASS_SHARED.saturation):undefined;return{position:\"absolute\",top:`calc(100% + ${Tokens.getResponsiveSpacing(DROPDOWN_CONSTANTS.GAP_FROM_TRIGGER,breakpoint)})`,left:0,width:\"100%\",maxHeight:useTwoLayer?maxHeight:undefined,zIndex,background:Tokens.getColorValue(backgroundColor),...glassBackdrop?{backdropFilter:glassBackdrop,WebkitBackdropFilter:glassBackdrop}:{},borderRadius:Tokens.getRadius(\"radius-lg\"),overflow:useTwoLayer?\"hidden\":\"auto\",// Border is optional - only render if borderColor is explicitly provided.\nborder:borderColor?`${Tokens.getResponsiveSpacing(1,breakpoint)} solid ${Tokens.getColorValue(borderColor)}`:\"none\",// Drop shadow for visual elevation.\nboxShadow:Tokens.getShadow(\"medium\"),padding:useTwoLayer?0:Tokens.getResponsiveSpacing(DROPDOWN_CONSTANTS.CONTAINER_PADDING,breakpoint),display:\"flex\",flexDirection:\"column\",gap:useTwoLayer?0:Tokens.getResponsiveSpacing(DROPDOWN_CONSTANTS.OPTION_GAP,breakpoint),boxSizing:\"border-box\"};}/**\n * Get styles for the inner scrollable container (used with two-layer structure).\n *\n * @param options - Inner container style options\n * @returns CSS properties object for inner container\n */export function getDropdownInnerContainerStyles(options={}){const{breakpoint=\"desktop\",maxHeight=DROPDOWN_CONSTANTS.MAX_HEIGHT}=options;return{overflowY:\"auto\",maxHeight,padding:Tokens.getResponsiveSpacing(DROPDOWN_CONSTANTS.CONTAINER_PADDING,breakpoint),display:\"flex\",flexDirection:\"column\",gap:Tokens.getResponsiveSpacing(DROPDOWN_CONSTANTS.OPTION_GAP,breakpoint)};}/**\n * Get consistent dropdown option styles.\n *\n * @param options - Dropdown option style options\n * @returns CSS properties object for dropdown option\n */export function getDropdownOptionStyles(options){const{breakpoint=\"desktop\",isSelected,isHovered,reducedMotion=false,selectedTextColor=\"/Text/text-primary\",unselectedTextColor=\"/Text/text-secondary\",selectedBackgroundColor=\"/Backgrounds/bg-quinary\",hoveredBackgroundColor=\"/Backgrounds/bg-quaternary\",typography=\"/Body MD/Light\"}=options;return{padding:Tokens.getResponsiveSpacing(DROPDOWN_CONSTANTS.OPTION_PADDING,breakpoint),cursor:\"pointer\",background:isSelected?Tokens.getColorValue(selectedBackgroundColor):isHovered?Tokens.getColorValue(hoveredBackgroundColor):\"transparent\",color:isSelected?Tokens.getColorValue(selectedTextColor):Tokens.getColorValue(unselectedTextColor),...Tokens.getTypographyStyles(typography,breakpoint),whiteSpace:\"nowrap\",borderRadius:Tokens.getRadius(\"radius-lg\"),filter:Tokens.getBrightnessFilter(false,isHovered&&!isSelected,false),transition:reducedMotion?\"none\":`${Tokens.getTransition(\"background-color\",\"quick\")}, ${Tokens.getTransition(\"filter\",\"quick\")}`};}/**\n * Get consistent input wrapper styles (outer container div).\n * This is the wrapper that contains the input container and error messages.\n *\n * @param options - Input wrapper style options\n * @returns CSS properties object for input wrapper\n */export function getInputWrapperStyles(options={}){const{customStyle,minWidth=\"280px\",maxWidth=\"600px\"}=options;return{position:\"relative\",width:\"100%\",minWidth,maxWidth,...customStyle};}/**\n * Get padding string for icon/button components (balanced when icon on one side, uniform when icon-only or no icon).\n *\n * @param options - Padding options\n * @returns CSS padding value string\n */export function getIconButtonPadding(options){const{iconOnly=false,showIconLeading=false,showIconTrailing=false,iconOnlyPadding=\"0\",paddingTop=\"0\",paddingHorizontal=\"0\",paddingGap=\"0\"}=options;if(iconOnly){return iconOnlyPadding;}const vertical=paddingTop;if(showIconLeading&&!showIconTrailing){return`${vertical} ${paddingHorizontal} ${vertical} ${paddingGap}`;}if(showIconTrailing&&!showIconLeading){return`${vertical} ${paddingGap} ${vertical} ${paddingHorizontal}`;}if(showIconLeading&&showIconTrailing){return`${vertical} ${paddingGap} ${vertical} ${paddingGap}`;}return`${vertical} ${paddingHorizontal}`;}// ─── Shadow value helper ──────────────────────────────────────────────────────\n/**\n * Map a shadow size shorthand to a Tokens shadow value.\n *\n * Extracted from the identical `getShadowValue` functions that were duplicated\n * in VideoPlayer.tsx.\n *\n * @param size - Shadow size: \"sm\" (small), \"md\" (medium), \"lg\" (large), or \"none\"\n * @returns CSS box-shadow string from the token system, or \"none\"\n */export function getShadowValue(size){switch(size){case\"sm\":return Tokens.getShadow(\"small\");case\"md\":return Tokens.getShadow(\"medium\");case\"lg\":return Tokens.getShadow(\"large\");default:return\"none\";}}/**\n * Generate placeholder CSS styles as a string for use in dangerouslySetInnerHTML.\n *\n * @param inputId - The ID of the input element\n * @param placeholderColor - The color value for the placeholder text\n * @returns CSS string for placeholder styles\n */export function getPlaceholderCSS(inputId,placeholderColor){return`\n        #${inputId}::placeholder {\n            color: ${placeholderColor};\n            opacity: 1;\n        }\n    `;}\nexport const __FramerMetadata__ = {\"exports\":{\"getDropdownOptionStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInteractiveStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputContainerStylesOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPlaceholderCSS\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getDropdownInnerContainerStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputWrapperStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownContainerStylesOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InteractiveStylesOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getDropdownContainerStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FocusRingStylesOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFocusRingStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputWrapperStylesOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIconButtonPadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DROPDOWN_CONSTANTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DropdownOptionStylesOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IconButtonPaddingOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputContainerStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getShadowValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Input Style Utilities.\n *\n * Shared inline style helpers for all input components (InputText, InputNumber,\n * InputEmail, InputPassword, etc.). These replace the CSS Module approach, making\n * styles compatible with Framer's TSX-only constraint.\n *\n * This module establishes the pattern formerly provided by InputBaseTheme.module.css\n * and the per-component CSS modules. All token lookups go through Tokens.get*().\n */import Tokens,{LIQUID_GLASS_SHARED,getLiquidGlassBackdropBlurFilter}from\"https://framerusercontent.com/modules/trqsvmaimtqmRw7lebtr/P3gcEmpY4oCI03EBOoMx/index.js\";import{getPlaceholderCSS}from\"https://framerusercontent.com/modules/4pMWeMAsoCjjLKLkLWe0/VhUlwP62LXwCskpiIzYR/styles.js\";// Re-export placeholder CSS helper so callers have a single import point.\nexport{getPlaceholderCSS};// ── Color helpers ─────────────────────────────────────────────────────────────\n/**\n * Get background color for an input container based on theme.\n *\n * Uses frosted glass tokens paired with {@link getInputGlassBackdropStyles} /\n * `backdrop-filter` so fields match the liquid glass system.\n *\n * @param theme - Color theme variant.\n * @returns CSS background-color value.\n */export function getInputBackgroundColor(theme=\"default\"){return theme===\"inverted\"?Tokens.getColorValue(\"/Backgrounds/bg-inverted-tertiary-glass\"):Tokens.getColorValue(\"/Backgrounds/bg-tertiary-glass\");}/**\n * Shared `backdrop-filter` stack for input surfaces (aligned with Liquid Glass frost).\n */export function getInputGlassBackdropStyles(){const bf=getLiquidGlassBackdropBlurFilter(LIQUID_GLASS_SHARED.frostBlurPx,LIQUID_GLASS_SHARED.saturation);return{backdropFilter:bf,WebkitBackdropFilter:bf};}/**\n * Get text color for an input element based on theme and disabled state.\n *\n * @param theme - Color theme variant.\n * @param disabled - Whether the input is disabled.\n * @returns CSS color value.\n */export function getInputTextColor(theme=\"default\",disabled=false){if(disabled)return Tokens.getColorValue(\"/Text/text-disabled\");return theme===\"inverted\"?Tokens.getColorValue(\"/Text/text-inverted-primary\"):Tokens.getColorValue(\"/Text/text-primary\");}/**\n * Get placeholder text color for an input based on theme.\n *\n * @param theme - Color theme variant.\n * @returns CSS color value for ::placeholder text.\n */export function getInputPlaceholderColor(theme=\"default\"){return theme===\"inverted\"?Tokens.getColorValue(\"/Text/text-inverted-tertiary\"):Tokens.getColorValue(\"/Text/text-tertiary\");}// ── Outline helper ─────────────────────────────────────────────────────────────\n/**\n * Compute the CSS outline for an input container.\n *\n * Priority: error > success > focus > none.\n *\n * @param isFocused - Whether the container is focused.\n * @param isValid - Validation state (null | true | false).\n * @param validateField - Whether validation is active (required for success outline).\n * @returns CSS outline shorthand value.\n */export function getInputOutline(isFocused,isValid,validateField){if(!isFocused)return\"none\";if(isValid===false){return`${Tokens.getFocusOutlineWidth()} solid ${Tokens.getColorValue(\"/Borders/border-error\")}`;}if(validateField&&isValid===true){return`${Tokens.getFocusOutlineWidth()} solid ${Tokens.getColorValue(\"/Borders/border-success\")}`;}return`${Tokens.getFocusOutlineWidth()} solid ${Tokens.getColorValue(\"/Borders/border-brand-bunq\")}`;}// ── Style objects ─────────────────────────────────────────────────────────────\n/**\n * Get inline styles for the outer wrapper div.\n *\n * The wrapper provides position context, full width, and a desktop max-width cap.\n * It intentionally keeps `minWidth: 0` so inputs can shrink inside mobile flex/grid parents.\n * Any user-provided `style` prop is merged last so it can override defaults.\n *\n * @param customStyle - Optional user-provided style overrides.\n * @returns CSS properties for the outer wrapper div.\n */export function getInputWrapperStyle(customStyle){return{position:\"relative\",width:\"100%\",minWidth:0,maxWidth:Tokens.getSpacing(320),boxSizing:\"border-box\",...customStyle};}/**\n * Get inline styles for the input container (the colored, bordered box).\n *\n * Covers layout, background, border-radius, focus outline, hover filter,\n * disabled state, and transition.\n *\n * @param options - Container style options.\n * @returns CSS properties for the container div.\n */export function getInputContainerStyle(options){const{breakpoint=\"desktop\",theme=\"default\",disabled=false,isFocused=false,isHovered=false,isValid,validateField=false,reducedMotion=false,positionRelative=false}=options;return{display:\"flex\",alignItems:\"center\",gap:Tokens.getResponsiveSpacing(8,breakpoint),backgroundColor:getInputBackgroundColor(theme),...getInputGlassBackdropStyles(),borderRadius:Tokens.getRadius(\"radius-lg\"),border:\"none\",outline:getInputOutline(isFocused,isValid,validateField),outlineOffset:Tokens.getSpacing(2),overflow:\"hidden\",height:Tokens.getSpacing(48),width:\"100%\",minWidth:Tokens.getSpacing(160),boxSizing:\"border-box\",filter:Tokens.getBrightnessFilter(disabled,isHovered,false),cursor:disabled?\"not-allowed\":\"default\",transition:reducedMotion?\"none\":Tokens.getTransition(\"filter\",\"quick\"),...positionRelative?{position:\"relative\"}:{}};}/**\n * Get inline styles for the actual `<input>` element.\n *\n * Handles font (via typography tokens), padding, color, and cursor.\n * Typography is responsive: desktop/tablet use the base size, phone uses the smaller size.\n *\n * Horizontal padding for number/email/password inputs is smaller on phone (12px vs 20px).\n * For InputText, padding stays constant at 20px — pass `paddingRight` only when needed.\n *\n * @param options - Input element style options.\n * @returns CSS properties for the `<input>` element.\n */export function getInputElementStyle(options){const{breakpoint=\"desktop\",theme=\"default\",disabled=false,paddingRight}=options;const typography=Tokens.getTypographyStyles(\"/Body MD/Light\",breakpoint);const paddingV=Tokens.getResponsiveSpacing(12,breakpoint);const paddingH=Tokens.getResponsiveSpacing(20,breakpoint);const resolvedPaddingRight=paddingRight??paddingH;return{flex:1,border:\"none\",background:\"transparent\",outline:\"none\",...typography??{},paddingTop:paddingV,paddingBottom:paddingV,paddingLeft:paddingH,paddingRight:resolvedPaddingRight,boxSizing:\"border-box\",textAlign:\"left\",color:getInputTextColor(theme,disabled),cursor:disabled?\"not-allowed\":\"text\",width:\"100%\"};}/**\n * Get inline styles for the validation icon container.\n *\n * Provides padding that mirrors the input's horizontal padding on the right side.\n *\n * @param options - Style options including breakpoint.\n * @returns CSS properties for the validation icon wrapper div.\n */export function getValidationIconContainerStyle(options){const{breakpoint=\"desktop\"}=options;const paddingV=Tokens.getResponsiveSpacing(12,breakpoint);const paddingH=Tokens.getResponsiveSpacing(20,breakpoint);return{padding:`${paddingV} ${paddingH} ${paddingV} 0`,display:\"flex\",alignItems:\"center\",flexShrink:0};}/**\n * Get inline styles for the error message element below an input.\n *\n * Uses \"/Body SM/Light\" typography token: 16px desktop/tablet, 14px phone.\n * Top margin is slightly smaller on phone (2px vs 4px).\n *\n * @param options - Style options including breakpoint.\n * @returns CSS properties for the error message div.\n */export function getInputErrorMessageStyle(options){const{breakpoint=\"desktop\",theme=\"default\"}=options;const typography=Tokens.getTypographyStyles(\"/Body SM/Light\",breakpoint);const marginTop=breakpoint===\"phone\"?Tokens.getSpacing(2):Tokens.getSpacing(4);const errorColor=theme===\"inverted\"?Tokens.getColorValue(\"/Foregrounds/fg-error\"):Tokens.getColorValue(\"/Text/text-error\");return{...typography??{},color:errorColor,margin:0,padding:0,marginTop};}/**\n * Get inline styles for the InputPassword toggle button.\n *\n * The button is absolutely positioned inside the container. `right` is dynamic\n * (based on horizontal padding). Focus ring is rendered via `boxShadow`.\n *\n * @param options - Toggle button style options.\n * @returns CSS properties for the toggle `<button>` element.\n */export function getPasswordToggleButtonStyle(options){const{breakpoint=\"desktop\",disabled=false,isToggleFocused=false,reducedMotion=false,focusBorderColor=\"/Borders/border-brand-bunq\"}=options;const paddingH=Tokens.getResponsiveSpacing(20,breakpoint);const focusColor=Tokens.getColorValue(focusBorderColor);return{position:\"absolute\",top:\"50%\",right:paddingH,transform:\"translateY(-50%)\",background:\"transparent\",border:\"none\",padding:Tokens.getSpacing(4),display:\"flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:Tokens.getRadius(\"radius-lg\"),outline:\"none\",cursor:disabled?\"not-allowed\":\"pointer\",color:Tokens.getColorValue(\"/Foregrounds/fg-tertiary\"),filter:disabled?Tokens.getBrightnessFilter(true,false,false):\"none\",zIndex:Tokens.getZIndex(\"raised\"),boxShadow:isToggleFocused&&!disabled?`0 0 0 ${Tokens.getFocusOutlineWidth()} ${focusColor}`:\"none\",transition:reducedMotion?\"none\":`${Tokens.getTransition(\"color\",\"quick\")}, ${Tokens.getTransition(\"box-shadow\",\"standard\")}`};}\nexport const __FramerMetadata__ = {\"exports\":{\"InputContainerStyleOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputErrorMessageStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getValidationIconContainerStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputOutline\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputWrapperStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputElementStyleOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputGlassBackdropStyles\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputBackgroundColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputContainerStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPasswordToggleButtonStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputTextColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPlaceholderCSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputTheme\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputElementStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getInputPlaceholderColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}