{"version":3,"file":"DynamicValueDisplay.fMhwFWRa.mjs","names":["useSyncExternalStore","useState","useRef","useCallback","useMemo","useId"],"sources":["https:/framerusercontent.com/modules/Pte0HWJA44FrkkHSZRD6/QpdYC7npTWEif7tCk0SH/displayValueFormSubmission.js","https:/framerusercontent.com/modules/5Ix20dDho5D2OHmlnyZu/3K8ZDqDEiX7XSLWDxtVY/Countries.js","https:/framerusercontent.com/modules/JuFDdB0T6hfQnnTurnv8/b0xa5FqRl3AgRn23PInP/quizScoringShared.js","https:/framerusercontent.com/modules/z8cIEIxb4MjL2nvvhvk3/r8zaR1SV4VEekNzR8koh/FramerFormsShared.js","https:/framerusercontent.com/modules/Tm1sa7lCpDrSWJm7brRS/NvETdl39d2NYUdBt3RtD/formSubmitNetworkHack.js","https:/framerusercontent.com/modules/fsE8bx1iOsHZhHNrjcBc/023O8gKrHgFM2Rit464K/DynamicValueDisplay.js"],"sourcesContent":["import{useEffect}from\"react\";/** Marks our hidden input so we can update/remove it without clashing with other fields. */export const DISPLAY_VALUE_SUBMIT_ATTR=\"data-framerforms-display-value-submit\";function selectorForInstance(instanceId){const escaped=typeof CSS!==\"undefined\"&&typeof CSS.escape===\"function\"?CSS.escape(instanceId):instanceId.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"');return`input[type=\"hidden\"][${DISPLAY_VALUE_SUBMIT_ATTR}=\"${escaped}\"]`;}/**\n * Injects/updates a hidden input on `submit` (capture) so Framer hosted-form payloads\n * include the display value. Uses {@link DISPLAY_VALUE_SUBMIT_ATTR} to own the node.\n */export function useDisplayValueFormSubmission(form,options){const{active,fieldName,instanceId,payloadRef}=options;useEffect(()=>{if(!form)return;const sel=selectorForInstance(instanceId);const removeOurs=()=>{form.querySelector(sel)?.remove();};if(!active){removeOurs();return;}const name=fieldName.trim();if(!name){removeOurs();return;}const onSubmitCapture=()=>{let el=form.querySelector(sel);if(!el){el=document.createElement(\"input\");el.type=\"hidden\";el.setAttribute(DISPLAY_VALUE_SUBMIT_ATTR,instanceId);form.appendChild(el);}el.name=name;el.value=payloadRef.current;};form.addEventListener(\"submit\",onSubmitCapture,true);return()=>{form.removeEventListener(\"submit\",onSubmitCapture,true);removeOurs();};},[form,active,fieldName,instanceId,payloadRef]);}\nexport const __FramerMetadata__ = {\"exports\":{\"DISPLAY_VALUE_SUBMIT_ATTR\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useDisplayValueFormSubmission\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./displayValueFormSubmission.map","export const countries=[\"Afghanistan\",\"\\xc5land Islands\",\"Albania\",\"Algeria\",\"American Samoa\",\"Andorra\",\"Angola\",\"Anguilla\",\"Antarctica\",\"Antigua & Barbuda\",\"Argentina\",\"Armenia\",\"Aruba\",\"Ascension Island\",\"Australia\",\"Austria\",\"Azerbaijan\",\"Bahamas\",\"Bahrain\",\"Bangladesh\",\"Barbados\",\"Belarus\",\"Belgium\",\"Belize\",\"Benin\",\"Bermuda\",\"Bhutan\",\"Bolivia\",\"Bosnia & Herzegovina\",\"Botswana\",\"Bouvet Island\",\"Brazil\",\"British Indian Ocean Territory\",\"British Virgin Islands\",\"Brunei\",\"Bulgaria\",\"Burkina Faso\",\"Burundi\",\"Cambodia\",\"Cameroon\",\"Canada\",\"Canary Islands\",\"Cape Verde\",\"Caribbean Netherlands\",\"Cayman Islands\",\"Central African Republic\",\"Ceuta & Melilla\",\"Chad\",\"Chile\",\"China\",\"Christmas Island\",\"Clipperton Island\",\"Cocos (Keeling) Islands\",\"Colombia\",\"Comoros\",\"Congo - Brazzaville\",\"Congo - Kinshasa\",\"Cook Islands\",\"Costa Rica\",\"C\\xf4te D’Ivoire\",\"Croatia\",\"Cuba\",\"Cura\\xe7ao\",\"Cyprus\",\"Czechia\",\"Denmark\",\"Diego Garcia\",\"Djibouti\",\"Dominica\",\"Dominican Republic\",\"Ecuador\",\"Egypt\",\"El Salvador\",\"England\",\"Equatorial Guinea\",\"Eritrea\",\"Estonia\",\"Ethiopia\",\"European Union\",\"Falkland Islands\",\"Faroe Islands\",\"Fiji\",\"Finland\",\"France\",\"French Guiana\",\"French Polynesia\",\"French Southern Territories\",\"Gabon\",\"Gambia\",\"Georgia\",\"Germany\",\"Ghana\",\"Gibraltar\",\"Greece\",\"Greenland\",\"Grenada\",\"Guadeloupe\",\"Guam\",\"Guatemala\",\"Guernsey\",\"Guinea\",\"Guinea-Bissau\",\"Guyana\",\"Haiti\",\"Heard & McDonald Islands\",\"Honduras\",\"Hong Kong SAR China\",\"Hungary\",\"Iceland\",\"India\",\"Indonesia\",\"Iran\",\"Iraq\",\"Ireland\",\"Isle of Man\",\"Israel\",\"Italy\",\"Jamaica\",\"Japan\",\"Jersey\",\"Jordan\",\"Kazakhstan\",\"Kenya\",\"Kiribati\",\"Kosovo\",\"Kuwait\",\"Kyrgyzstan\",\"Laos\",\"Latvia\",\"Lebanon\",\"Lesotho\",\"Liberia\",\"Libya\",\"Liechtenstein\",\"Lithuania\",\"Luxembourg\",\"Macau SAR China\",\"Macedonia\",\"Madagascar\",\"Malawi\",\"Malaysia\",\"Maldives\",\"Mali\",\"Malta\",\"Marshall Islands\",\"Martinique\",\"Mauritania\",\"Mauritius\",\"Mayotte\",\"Mexico\",\"Micronesia\",\"Moldova\",\"Monaco\",\"Mongolia\",\"Montenegro\",\"Montserrat\",\"Morocco\",\"Mozambique\",\"Myanmar (Burma)\",\"Namibia\",\"Nauru\",\"Nepal\",\"Netherlands\",\"New Caledonia\",\"New Zealand\",\"Nicaragua\",\"Niger\",\"Nigeria\",\"Niue\",\"Norfolk Island\",\"North Korea\",\"Northern Mariana Islands\",\"Norway\",\"Oman\",\"Pakistan\",\"Palau\",\"Palestinian Territories\",\"Panama\",\"Papua New Guinea\",\"Paraguay\",\"Peru\",\"Philippines\",\"Pitcairn Islands\",\"Poland\",\"Portugal\",\"Puerto Rico\",\"Qatar\",\"R\\xe9union\",\"Romania\",\"Russia\",\"Rwanda\",\"Samoa\",\"San Marino\",\"S\\xe3o Tom\\xe9 & Pr\\xedncipe\",\"Saudi Arabia\",\"Scotland\",\"Senegal\",\"Serbia\",\"Seychelles\",\"Sierra Leone\",\"Singapore\",\"Sint Maarten\",\"Slovakia\",\"Slovenia\",\"Solomon Islands\",\"Somalia\",\"South Africa\",\"South Georgia & South Sandwich Islands\",\"South Korea\",\"South Sudan\",\"Spain\",\"Sri Lanka\",\"St. Barth\\xe9lemy\",\"St. Helena\",\"St. Kitts & Nevis\",\"St. Lucia\",\"St. Martin\",\"St. Pierre & Miquelon\",\"St. Vincent & Grenadines\",\"Sudan\",\"Suriname\",\"Svalbard & Jan Mayen\",\"Swaziland\",\"Sweden\",\"Switzerland\",\"Syria\",\"Taiwan\",\"Tajikistan\",\"Tanzania\",\"Thailand\",\"Timor-Leste\",\"Togo\",\"Tokelau\",\"Tonga\",\"Trinidad & Tobago\",\"Tristan Da Cunha\",\"Tunisia\",\"Turkey\",\"Turkmenistan\",\"Turks & Caicos Islands\",\"Tuvalu\",\"U.S. Outlying Islands\",\"U.S. Virgin Islands\",\"Uganda\",\"Ukraine\",\"United Arab Emirates\",\"United Kingdom\",\"United Nations\",\"United States\",\"Uruguay\",\"Uzbekistan\",\"Vanuatu\",\"Vatican City\",\"Venezuela\",\"Vietnam\",\"Wales\",\"Wallis & Futuna\",\"Western Sahara\",\"Yemen\",\"Zambia\",\"Zimbabwe\"];export const countryEmojis=[\"🇦🇫\",\"🇦🇽\",\"🇦🇱\",\"🇩🇿\",\"🇦🇸\",\"🇦🇩\",\"🇦🇴\",\"🇦🇮\",\"🇦🇶\",\"🇦🇬\",\"🇦🇷\",\"🇦🇲\",\"🇦🇼\",\"🇦🇨\",\"🇦🇺\",\"🇦🇹\",\"🇦🇿\",\"🇧🇸\",\"🇧🇭\",\"🇧🇩\",\"🇧🇧\",\"🇧🇾\",\"🇧🇪\",\"🇧🇿\",\"🇧🇯\",\"🇧🇲\",\"🇧🇹\",\"🇧🇴\",\"🇧🇦\",\"🇧🇼\",\"🇧🇻\",\"🇧🇷\",\"🇮🇴\",\"🇻🇬\",\"🇧🇳\",\"🇧🇬\",\"🇧🇫\",\"🇧🇮\",\"🇰🇭\",\"🇨🇲\",\"🇨🇦\",\"🇮🇨\",\"🇨🇻\",\"🇧🇶\",\"🇰🇾\",\"🇨🇫\",\"🇪🇦\",\"🇹🇩\",\"🇨🇱\",\"🇨🇳\",\"🇨🇽\",\"🇨🇵\",\"🇨🇨\",\"🇨🇴\",\"🇰🇲\",\"🇨🇬\",\"🇨🇩\",\"🇨🇰\",\"🇨🇷\",\"🇨🇮\",\"🇭🇷\",\"🇨🇺\",\"🇨🇼\",\"🇨🇾\",\"🇨🇿\",\"🇩🇰\",\"🇩🇬\",\"🇩🇯\",\"🇩🇲\",\"🇩🇴\",\"🇪🇨\",\"🇪🇬\",\"🇸🇻\",\"🏴󠁧󠁢󠁥󠁮󠁧󠁿\",\"🇬🇶\",\"🇪🇷\",\"🇪🇪\",\"🇪🇹\",\"🇪🇺\",\"🇫🇰\",\"🇫🇴\",\"🇫🇯\",\"🇫🇮\",\"🇫🇷\",\"🇬🇫\",\"🇵🇫\",\"🇹🇫\",\"🇬🇦\",\"🇬🇲\",\"🇬🇪\",\"🇩🇪\",\"🇬🇭\",\"🇬🇮\",\"🇬🇷\",\"🇬🇱\",\"🇬🇩\",\"🇬🇵\",\"🇬🇺\",\"🇬🇹\",\"🇬🇬\",\"🇬🇳\",\"🇬🇼\",\"🇬🇾\",\"🇭🇹\",\"🇭🇲\",\"🇭🇳\",\"🇭🇰\",\"🇭🇺\",\"🇮🇸\",\"🇮🇳\",\"🇮🇩\",\"🇮🇷\",\"🇮🇶\",\"🇮🇪\",\"🇮🇲\",\"🇮🇱\",\"🇮🇹\",\"🇯🇲\",\"🇯🇵\",\"🇯🇪\",\"🇯🇴\",\"🇰🇿\",\"🇰🇪\",\"🇰🇮\",\"🇽🇰\",\"🇰🇼\",\"🇰🇬\",\"🇱🇦\",\"🇱🇻\",\"🇱🇧\",\"🇱🇸\",\"🇱🇷\",\"🇱🇾\",\"🇱🇮\",\"🇱🇹\",\"🇱🇺\",\"🇲🇴\",\"🇲🇰\",\"🇲🇬\",\"🇲🇼\",\"🇲🇾\",\"🇲🇻\",\"🇲🇱\",\"🇲🇹\",\"🇲🇭\",\"🇲🇶\",\"🇲🇷\",\"🇲🇺\",\"🇾🇹\",\"🇲🇽\",\"🇫🇲\",\"🇲🇩\",\"🇲🇨\",\"🇲🇳\",\"🇲🇪\",\"🇲🇸\",\"🇲🇦\",\"🇲🇿\",\"🇲🇲\",\"🇳🇦\",\"🇳🇷\",\"🇳🇵\",\"🇳🇱\",\"🇳🇨\",\"🇳🇿\",\"🇳🇮\",\"🇳🇪\",\"🇳🇬\",\"🇳🇺\",\"🇳🇫\",\"🇰🇵\",\"🇲🇵\",\"🇳🇴\",\"🇴🇲\",\"🇵🇰\",\"🇵🇼\",\"🇵🇸\",\"🇵🇦\",\"🇵🇬\",\"🇵🇾\",\"🇵🇪\",\"🇵🇭\",\"🇵🇳\",\"🇵🇱\",\"🇵🇹\",\"🇵🇷\",\"🇶🇦\",\"🇷🇪\",\"🇷🇴\",\"🇷🇺\",\"🇷🇼\",\"🇼🇸\",\"🇸🇲\",\"🇸🇹\",\"🇸🇦\",\"🏴󠁧󠁢󠁳󠁣󠁴󠁿\",\"🇸🇳\",\"🇷🇸\",\"🇸🇨\",\"🇸🇱\",\"🇸🇬\",\"🇸🇽\",\"🇸🇰\",\"🇸🇮\",\"🇸🇧\",\"🇸🇴\",\"🇿🇦\",\"🇬🇸\",\"🇰🇷\",\"🇸🇸\",\"🇪🇸\",\"🇱🇰\",\"🇧🇱\",\"🇸🇭\",\"🇰🇳\",\"🇱🇨\",\"🇲🇫\",\"🇵🇲\",\"🇻🇨\",\"🇸🇩\",\"🇸🇷\",\"🇸🇯\",\"🇸🇿\",\"🇸🇪\",\"🇨🇭\",\"🇸🇾\",\"🇹🇼\",\"🇹🇯\",\"🇹🇿\",\"🇹🇭\",\"🇹🇱\",\"🇹🇬\",\"🇹🇰\",\"🇹🇴\",\"🇹🇹\",\"🇹🇦\",\"🇹🇳\",\"🇹🇷\",\"🇹🇲\",\"🇹🇨\",\"🇹🇻\",\"🇺🇲\",\"🇻🇮\",\"🇺🇬\",\"🇺🇦\",\"🇦🇪\",\"🇬🇧\",\"🇺🇳\",\"🇺🇸\",\"🇺🇾\",\"🇺🇿\",\"🇻🇺\",\"🇻🇦\",\"🇻🇪\",\"🇻🇳\",\"🏴󠁧󠁢󠁷󠁬󠁳󠁿\",\"🇼🇫\",\"🇪🇭\",\"🇾🇪\",\"🇿🇲\",\"🇿🇼\"];// Country dial codes (international calling codes)\nexport const countryDialCodes=[\"93\",\"358\",\"355\",\"213\",\"1684\",\"376\",\"244\",\"1264\",\"672\",\"1268\",\"54\",\"374\",\"297\",\"247\",\"61\",\"43\",\"994\",\"1242\",\"973\",\"880\",\"1246\",\"375\",\"32\",\"501\",\"229\",\"1441\",\"975\",\"591\",\"387\",\"267\",\"47\",\"55\",\"246\",\"1284\",\"673\",\"359\",\"226\",\"257\",\"855\",\"237\",\"1\",\"34\",\"238\",\"599\",\"1345\",\"236\",\"34\",\"235\",\"56\",\"86\",\"61\",\"33\",\"61\",\"57\",\"269\",\"242\",\"243\",\"682\",\"506\",\"225\",\"385\",\"53\",\"599\",\"357\",\"420\",\"45\",\"246\",\"253\",\"1767\",\"1809\",\"593\",\"20\",\"503\",\"44\",\"240\",\"291\",\"372\",\"251\",\"\",\"500\",\"298\",\"679\",\"358\",\"33\",\"594\",\"689\",\"262\",\"241\",\"220\",\"995\",\"49\",\"233\",\"350\",\"30\",\"299\",\"1473\",\"590\",\"1671\",\"502\",\"44\",\"224\",\"245\",\"592\",\"509\",\"672\",\"504\",\"852\",\"36\",\"354\",\"91\",\"62\",\"98\",\"964\",\"353\",\"44\",\"972\",\"39\",\"1876\",\"81\",\"44\",\"962\",\"7\",\"254\",\"686\",\"383\",\"965\",\"996\",\"856\",\"371\",\"961\",\"266\",\"231\",\"218\",\"423\",\"370\",\"352\",\"853\",\"389\",\"261\",\"265\",\"60\",\"960\",\"223\",\"356\",\"692\",\"596\",\"222\",\"230\",\"262\",\"52\",\"691\",\"373\",\"377\",\"976\",\"382\",\"1664\",\"212\",\"258\",\"95\",\"264\",\"674\",\"977\",\"31\",\"687\",\"64\",\"505\",\"227\",\"234\",\"683\",\"672\",\"850\",\"1670\",\"47\",\"968\",\"92\",\"680\",\"970\",\"507\",\"675\",\"595\",\"51\",\"63\",\"870\",\"48\",\"351\",\"1787\",\"974\",\"262\",\"40\",\"7\",\"250\",\"685\",\"378\",\"239\",\"966\",\"44\",\"221\",\"381\",\"248\",\"232\",\"65\",\"1721\",\"421\",\"386\",\"677\",\"252\",\"27\",\"500\",\"82\",\"211\",\"34\",\"94\",\"590\",\"290\",\"1869\",\"1758\",\"590\",\"508\",\"1784\",\"249\",\"597\",\"47\",\"268\",\"46\",\"41\",\"963\",\"886\",\"992\",\"255\",\"66\",\"670\",\"228\",\"690\",\"676\",\"1868\",\"290\",\"216\",\"90\",\"993\",\"1649\",\"688\",\"1\",\"1340\",\"256\",\"380\",\"971\",\"44\",\"\",\"1\",\"598\",\"998\",\"678\",\"39\",\"58\",\"84\",\"44\",\"681\",\"212\",\"967\",\"260\",\"263\"];// Country-specific phone formats (using X for digits)\n// Default format for countries without specific format: \"XXXXXXXXXX\"\nexport const countryPhoneFormats=[\"XX XXX XXXX\",\"XXX XXX XXXX\",\"XXX XXX XXX\",\"XXXX XX XX XX\",\"(XXX) XXX-XXXX\",\"XXX XXX\",\"XXX XXX XXX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"(XXX) XXX-XXXX\",\"XX XXXX-XXXX\",\"XX XXX XXX\",\"XXX XXXX\",\"XXXX\",\"XXXX XXX XXX\",\"XXXX XXXXXXXXX\",\"XX XXX XX XX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"XXXX-XXXXXX\",\"(XXX) XXX-XXXX\",\"XX XXX-XX-XX\",\"XXXX XX XX XX\",\"XXX-XXXX\",\"XX XX XX XX\",\"(XXX) XXX-XXXX\",\"X XXXX XXXX\",\"X XXX XXXX\",\"XX XXX XXX\",\"XX XXX XXX\",\"XXX XX XXX\",\"(XX) XXXX-XXXX\",\"XXXX\",\"(XXX) XXX-XXXX\",\"XXX XXXX\",\"XXX XXX XXX\",\"XX XX XX XX\",\"XX XX XX XX\",\"XXX XXX XXX\",\"X XX XX XX XX\",\"(XXX) XXX-XXXX\",\"XXX XXX XXX\",\"XXX XX XX\",\"XXX XXXX\",\"(XXX) XXX-XXXX\",\"XX XX XX XX\",\"XXX XXX XXX\",\"XX XX XX XX\",\"X XXXX XXXX\",\"XXX XXXX XXXX\",\"XXXX XXX XXX\",\"X XX XX XX XX\",\"XXXX XXX XXX\",\"X XXX XXXX\",\"XXX XX XX\",\"XX XXX XXXX\",\"XXX XXX XXXX\",\"XX XXX\",\"XXXX XXXX\",\"XX XX XX XX XX\",\"XX XXX XXXX\",\"X XXX XXXX\",\"X XXX XXXX\",\"XX XXX XXX\",\"XXX XXX XXX\",\"XX XX XX XX\",\"XXXX\",\"XX XX XX XX\",\"(XXX) XXX-XXXX\",\"(XXX) XXX-XXXX\",\"XX XXX XXXX\",\"XXX XXX XXXX\",\"XXXX XXXX\",\"XXXX XXXX XXX\",\"XXX XXX XXX\",\"X XXX XXX\",\"XXXX XXXX\",\"XXX XXX XXXX\",\"XXXXXXXXXX\",\"XXXXX\",\"XXX XXX\",\"XXX XXXX\",\"XX XXX XXXX\",\"X XX XX XX XX XX\",\"XXXX XX XX XX\",\"XX XX XX XX\",\"XXX XX XX XX\",\"X XX XX XX XX\",\"XXX XXXX\",\"XXX XX XX XX\",\"XXXX XXXXXXXXX\",\"XXX XXX XXXX\",\"XXXX XXXXX\",\"XXX XXX XXXX\",\"XX XX XX\",\"(XXX) XXX-XXXX\",\"XXXX XX XX XX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"XXXX XXXX XXX\",\"XXX XX XX XX\",\"XXX XXXX\",\"XXX XXXX\",\"XX XX-XXXX\",\"XXXX XXXX\",\"XXXX-XXXX\",\"XXXX XXXX\",\"XX XXX XXXX\",\"XXX XXXX\",\"XXXXX XXXXX\",\"XXX-XXXX-XXXX\",\"XXX XXX XXXX\",\"XXX XXX XXXX\",\"XX XXX XXXX\",\"XXXX XXXX XXX\",\"XX-XXX-XXXX\",\"XXX XXX XXXX\",\"(XXX) XXX-XXXX\",\"XX-XXXX-XXXX\",\"XXXX XXXX XXX\",\"X XXXX XXXX\",\"X XXX XXX-XX-XX\",\"XXX XXXXXXX\",\"XXXXX\",\"XXX XXX XXX\",\"XXXX XXXX\",\"XXX XX-XX-XX\",\"XX XX XXX XXX\",\"XX XXX XXX\",\"X XXX XXX\",\"X XXX XXXX\",\"XXX XXX XXXX\",\"XX-XXXX-XXXX\",\"XXX XX XX\",\"(X-XX) XXXXX\",\"XXX XXX XXX\",\"XXXX XXXX\",\"XX XXX XXX\",\"XX XX XXX XX\",\"X XXXX XXXX\",\"XX-XXX XXXX\",\"XXX-XXXX\",\"XX XX XX XX\",\"XXXX XXXX\",\"XXX-XXXX\",\"XXXX XX XX XX\",\"XX XX XX XX\",\"XXXX XXXX\",\"XXX XX XX XX\",\"XX XXXX XXXX\",\"XXX-XXXX\",\"XXXX XXXX\",\"X XX XX XX XX\",\"XXXX XXXX\",\"XX XXX XXX\",\"(XXX) XXX-XXXX\",\"XXXX-XXXXXX\",\"XX XXX XXXX\",\"X XXXX XXXX\",\"XX XXX XXXX\",\"XXX XXXX\",\"XXX-XXX-XXXX\",\"X XXXX XXXX\",\"XX.XX.XX\",\"XXX XXX XXXX\",\"XXXX XXXX\",\"XX XX XX XX\",\"XXX XXX XXXX\",\"XXXX\",\"XXXX XXX\",\"XXX-XXXX-XXXX\",\"(XXX) XXX-XXXX\",\"XXX XX XXX\",\"XXXX XXXX\",\"XXX-XXXXXXX\",\"XXX-XXXX\",\"XX XXX XXXX\",\"XXXX-XXXX\",\"XXX XXXX\",\"XXXX XXX XXX\",\"XXX XXX XXX\",\"XXXX XXX XXXX\",\"XXXXX\",\"XXX XXX XXX\",\"XXX XXX XXX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"XXX XX XX XX\",\"XXX XXX XXX\",\"XXX XXX-XX-XX\",\"XXX XXX XXX\",\"XXXX\",\"XXXX XXXXXXX\",\"XXX XXXX\",\"XX XXX XXXX\",\"XXXX XXXX XXX\",\"XX XXX XX XX\",\"XX XXX XXXX\",\"X XXX XXX\",\"XX XXX XXX\",\"XXXX XXXX\",\"(XXX) XXX-XXXX\",\"XXX XXX XXX\",\"XX XXX XXX\",\"XXXX\",\"XX XXXX XXX\",\"XX XXX XXXX\",\"XXXXX\",\"XX-XXXX-XXXX\",\"XXXX XXX XXX\",\"XXX XXX XXX\",\"XX X XXX XXXX\",\"XXXX XX XX XX\",\"XXXX\",\"(XXX) XXX-XXXX\",\"(XXX) XXX-XXXX\",\"XXXX XX XX XX\",\"XX XX XX XX\",\"(XXX) XXX-XXXX\",\"XXX XXX XXXX\",\"XXX-XXXX\",\"XXX XX XXX\",\"XXXX XXXX\",\"XX-XXX XX XX\",\"XX XXX XX XX\",\"XXX XXX XXXX\",\"XXXX XXX XXX\",\"XXX XX-XX-XX\",\"XXX XXX XXXX\",\"XX-XXX-XXXX\",\"XXXX XXXX\",\"XX XX XX XX\",\"XXXX\",\"XXXXX\",\"(XXX) XXX-XXXX\",\"XXXX\",\"XX XXX XXX\",\"XXX XXX XX XX\",\"XX XX-XX-XX\",\"(XXX) XXX-XXXX\",\"XXXXX\",\"(XXX) XXX-XXXX\",\"(XXX) XXX-XXXX\",\"XXX XXX XXX\",\"XXX XXX XX XX\",\"XX XXX XXXX\",\"XXXX XXXX XXX\",\"XXXXXXXXXX\",\"(XXX) XXX-XXXX\",\"XXXX XXXX\",\"XX XXX XX XX\",\"XXXXX\",\"XX XXXX XXXX\",\"XXXX-XXXXXXX\",\"XXX XXXX XXX\",\"XXXX XXXX XXX\",\"XX XX XX\",\"XXXX-XXXXXX\",\"X XXX XXX\",\"XX XXXX XXXX\",\"X XXXX XXXX\"];// Helper function to get dial code by country name\nexport function getDialCodeByCountry(countryName){const index=countries.indexOf(countryName);return index>=0?countryDialCodes[index]:\"1\";}// Helper function to get phone format by country name\nexport function getPhoneFormatByCountry(countryName){const index=countries.indexOf(countryName);return index>=0?countryPhoneFormats[index]:\"(XXX) XXX-XXXX\";}// Helper function to get country by dial code\nexport function getCountryByDialCode(dialCode){const index=countryDialCodes.indexOf(dialCode);return index>=0?countries[index]:null;}\nexport const __FramerMetadata__ = {\"exports\":{\"getCountryByDialCode\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPhoneFormatByCountry\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countryPhoneFormats\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countryEmojis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getDialCodeByCountry\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countryDialCodes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countries\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Countries.map","import{ControlType}from\"framer\";export function normalizeOptionPointRows(raw){if(!raw?.length)return[];return raw.map(r=>({optionValue:(r.optionValue??\"\").trim(),points:r.points!==undefined&&Number.isFinite(r.points)?Number(r.points):0})).filter(r=>r.optionValue.length>0);}export function parseOptionPointsAttr(attr){if(!attr)return null;try{const v=JSON.parse(attr);const rows=normalizeOptionPointRows(v.rows);if(!rows.length)return null;const defaultPoints=v.defaultPoints!==undefined&&Number.isFinite(v.defaultPoints)?Number(v.defaultPoints):0;return{defaultPoints,rows};}catch{return null;}}function resolvePartToPoints(part,rows,defaultPoints){const row=rows.find(r=>r.optionValue===part);if(row&&Number.isFinite(row.points))return row.points;return defaultPoints;}/** Maximum achievable points for one weighted question. */export function maxWeightedQuestionPoints(parsed,multiSelect){const{rows,defaultPoints}=parsed;if(!rows.length)return 0;if(multiSelect){return rows.reduce((sum,r)=>sum+Math.max(0,r.points),0);}const rowMax=Math.max(...rows.map(r=>r.points),defaultPoints);return Number.isFinite(rowMax)?rowMax:defaultPoints;}export function scoreWeightedFieldValue(value,parsed,opts){const multiSelect=opts.matchMode===\"set\";const maxPoints=maxWeightedQuestionPoints(parsed,multiSelect);const trimmed=value.trim();if(!trimmed){return{earned:0,maxPoints};}if(multiSelect){const sep=opts.valueSeparator??\", \";const parts=trimmed.split(sep).map(s=>s.trim()).filter(Boolean);const earned=parts.reduce((sum,part)=>sum+resolvePartToPoints(part,parsed.rows,parsed.defaultPoints),0);return{earned,maxPoints};}const earned=resolvePartToPoints(trimmed,parsed.rows,parsed.defaultPoints);return{earned,maxPoints};}export function isQuizWeightedConfig(quiz){return!!quiz?.isQuizInput&&quiz.scoringMethod===\"weighted\"&&normalizeOptionPointRows(quiz.optionPoints).length>0;}export const QUIZ_DATA_ATTRIBUTE_KEYS=[\"data-framerforms-quiz\",\"data-framerforms-quiz-scoring\",\"data-framerforms-correct-answer\",\"data-framerforms-quiz-points\",\"data-framerforms-quiz-wrong-points\",\"data-framerforms-quiz-options\",\"data-framerforms-quiz-option-points\"];export function clearQuizDataAttributes(el){for(const key of QUIZ_DATA_ATTRIBUTE_KEYS){el.removeAttribute(key);}}export function applyQuizDataAttributes(el,attrs){clearQuizDataAttributes(el);for(const[key,value]of Object.entries(attrs)){el.setAttribute(key,value);}}export function buildQuizInputDataAttributes(quiz,options){if(!quiz?.isQuizInput)return{};if(isQuizWeightedConfig(quiz)){const rows=normalizeOptionPointRows(quiz.optionPoints);const defaultPoints=quiz.defaultOptionPoints!==undefined&&Number.isFinite(quiz.defaultOptionPoints)?Number(quiz.defaultOptionPoints):0;const attrs={\"data-framerforms-quiz\":\"true\",\"data-framerforms-quiz-scoring\":\"weighted\",\"data-framerforms-quiz-option-points\":JSON.stringify({defaultPoints,rows})};if(options.quizOptionsJson&&Object.keys(options.quizOptionsJson).length){attrs[\"data-framerforms-quiz-options\"]=JSON.stringify(options.quizOptionsJson);}return attrs;}const ca=options.correctAnswer;const hasCorrect=ca!=null&&ca!==\"\"&&!(Array.isArray(ca)&&ca.length===0);if(!hasCorrect)return{};const correctStr=Array.isArray(ca)?JSON.stringify(ca):String(ca);const attrs={\"data-framerforms-quiz\":\"true\",\"data-framerforms-quiz-scoring\":\"correctIncorrect\",\"data-framerforms-correct-answer\":correctStr,\"data-framerforms-quiz-points\":String(quiz.points??1),\"data-framerforms-quiz-wrong-points\":String(quiz.wrongPoints??0)};if(options.quizOptionsJson&&Object.keys(options.quizOptionsJson).length){attrs[\"data-framerforms-quiz-options\"]=JSON.stringify(options.quizOptionsJson);}return attrs;}/** Property controls shared by quiz-enabled inputs. Pass input-specific correct-* controls. */export function createQuizNestedControls(correctControls){const hideUnlessQuiz=inner=>!inner.isQuizInput;const hideUnlessWeighted=inner=>!inner.isQuizInput||inner.scoringMethod!==\"weighted\";const hideUnlessCorrect=inner=>!inner.isQuizInput||(inner.scoringMethod??\"correctIncorrect\")===\"weighted\";const wrappedCorrect={};for(const[key,ctrl]of Object.entries(correctControls)){const c=ctrl;const prevHidden=c.hidden;wrappedCorrect[key]={...c,hidden:inner=>hideUnlessCorrect(inner)||typeof prevHidden===\"function\"&&prevHidden(inner)};}return{isQuizInput:{type:ControlType.Boolean,title:\"Quiz\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},scoringMethod:{type:ControlType.Enum,title:\"Scoring\",options:[\"correctIncorrect\",\"weighted\"],optionTitles:[\"Correct / wrong\",\"Weighted options\"],defaultValue:\"correctIncorrect\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",hidden:hideUnlessQuiz},...wrappedCorrect,points:{type:ControlType.Number,title:\"Correct\",defaultValue:1,min:-100,max:100,step:1,displayStepper:true,description:\"Points if user is correct\",hidden:hideUnlessCorrect},wrongPoints:{type:ControlType.Number,title:\"Wrong\",defaultValue:0,min:-100,max:100,step:1,displayStepper:true,description:\"Points if user is wrong\",hidden:hideUnlessCorrect},defaultOptionPoints:{type:ControlType.Number,title:\"If no match\",defaultValue:0,min:-1e9,max:1e9,step:.01,displayStepper:true,hidden:hideUnlessWeighted},optionPoints:{type:ControlType.Array,title:\"Points\",defaultValue:[{optionValue:\"\",points:1}],description:\"Map each submitted option value to points.\",hidden:hideUnlessWeighted,control:{type:ControlType.Object,controls:{optionValue:{type:ControlType.String,title:\"Value\",defaultValue:\"\",placeholder:\"e.g. 'Option1'\"},points:{type:ControlType.Number,title:\"Points\",defaultValue:1,min:-1e9,max:1e9,step:.01,displayStepper:true}}}}};}\nexport const __FramerMetadata__ = {\"exports\":{\"normalizeOptionPointRows\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizOptionPointRow\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buildQuizInputDataAttributes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizScoringMethod\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createQuizNestedControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scoreWeightedFieldValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"applyQuizDataAttributes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearQuizDataAttributes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NormalizedOptionPoints\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizInputConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"maxWeightedQuestionPoints\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QUIZ_DATA_ATTRIBUTE_KEYS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseOptionPointsAttr\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isQuizWeightedConfig\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./quizScoringShared.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{ControlType,RenderTarget,withCSS}from\"framer\";import{forwardRef,useEffect,useState,useRef,useId,useCallback}from\"react\";import{motion}from\"framer-motion\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{parseOptionPointsAttr,scoreWeightedFieldValue}from\"https://framerusercontent.com/modules/JuFDdB0T6hfQnnTurnv8/b0xa5FqRl3AgRn23PInP/quizScoringShared.js\";// ---------------------------------------------------------------------------\n// Shared property controls (Insert Frame docs / support)\n// ---------------------------------------------------------------------------\nconst INSERT_FRAME_FRAMER_FORMS_DOCS=\"https://insertframe.io/docs/framerforms\";/** Spread into `addPropertyControls`: “Need help?” → Get support (Framer Forms docs). */export const insertFrameSupportPropertyControl={needHelp:{type:ControlType.Object,title:\"Need help?\",buttonTitle:\"Get support\",icon:\"interaction\",controls:{info:{type:ControlType.Enum,defaultValue:\"info\",options:[\"info\"],optionTitles:[\"Get support 🛟\"],displaySegmentedControl:true,title:\"Get support\",description:`Documentation and live chat: [FramerForms docs](${INSERT_FRAME_FRAMER_FORMS_DOCS}).`}}}};export const useMultiStepFormStore=createStore({});export const useQuizStore=createStore({});/** Typed tuple for consumers (avoids `as` at every call site). */export function useQuizStoreApi(){return useQuizStore();}export function createEmptyQuizScore(){return{correct:0,total:0,points:0,maxPoints:0,answers:{}};}export const useFormSubmittedStore=createStore({});export function useFormSubmittedStoreApi(){return useFormSubmittedStore();}export const HIDDEN_CLASS_NAME=\"framerforms-hidden\";const CANVAS_HIDDEN_CLASS_NAME=\"framerforms-canvas-hidden\";export const useInstanceId=()=>{const id=useId();const cleanId=id.replace(/:/g,\"\");const instanceId=`superfields-${cleanId}`;return instanceId;};export const HiddenInput=/*#__PURE__*/forwardRef(function HiddenInput({name,required,value,setInvalid,onSetValueEvent,noPrefill=false,disabled=false,style:styleProp,...rest},parentRef){const internalRef=useRef(null);const setRefs=useCallback(el=>{internalRef.current=el;if(typeof parentRef===\"function\"){parentRef(el);}else if(parentRef){parentRef.current=el;}},[parentRef]);const prevValueRef=useRef(value);// Store callback in ref to avoid listener churn\nconst onSetValueEventRef=useRef(onSetValueEvent);onSetValueEventRef.current=onSetValueEvent;useEffect(()=>{const element=internalRef.current;if(!element||!onSetValueEventRef.current)return;// Use a wrapper that always calls the latest callback\nconst handler=event=>{onSetValueEventRef.current?.(event);};element.addEventListener(\"framerFormsSetValue\",handler);// Mark as ready AFTER listener is attached - FormPersistence checks for this\nelement.dataset.framerformsSetValueReady=\"true\";return()=>{element.removeEventListener(\"framerFormsSetValue\",handler);delete element.dataset.framerformsSetValueReady;};},[])// Empty deps - only attach once\n;// Dispatch change event when value changes so FormPersistence can track updates\nuseEffect(()=>{const element=internalRef.current;if(!element)return;// Only dispatch if value actually changed (not on initial mount)\nif(prevValueRef.current!==value){prevValueRef.current=value;// Dispatch both input and change events for compatibility\nelement.dispatchEvent(new Event(\"input\",{bubbles:true}));element.dispatchEvent(new Event(\"change\",{bubbles:true}));}},[value]);return /*#__PURE__*/_jsx(\"input\",{ref:setRefs,type:\"text\",\"data-framerforms-set-value-event\":!!onSetValueEvent,\"data-framerforms-no-prefill\":noPrefill,...rest,style:{position:\"absolute\",opacity:0,pointerEvents:\"none\",inset:0,...styleProp},tabIndex:-1,name:name,required:required,value:value,disabled:disabled,onChange:()=>{},onInvalid:event=>{event.preventDefault();setInvalid(true);}});});const HideElementComponent=/*#__PURE__*/forwardRef(({},ref)=>{return /*#__PURE__*/_jsx(\"div\",{ref:ref,className:HIDDEN_CLASS_NAME});});export const HideElement=withCSS(HideElementComponent,[`div:has(> .${HIDDEN_CLASS_NAME}) { display: none; }`,`.${HIDDEN_CLASS_NAME} { display: none; }`],HIDDEN_CLASS_NAME);HideElement.displayName=\"FramerForms/Hide Element Staging\";export const HiddenComponentLabel=/*#__PURE__*/forwardRef(function HiddenComponentLabel({text,subtext=\"\",children=null,...otherProps},ref){const isCanvas=RenderTarget.current()===RenderTarget.canvas;return isCanvas?/*#__PURE__*/_jsxs(\"div\",{\"data-framerforms\":true,...otherProps,ref:ref,className:CANVAS_HIDDEN_CLASS_NAME,style:{backgroundColor:\"rgba(187, 187, 187, 0.15)\",borderRadius:10,padding:\"12px 16px\",fontFamily:\"Inter\",fontWeight:500,fontSize:12,color:\"#999\",display:\"flex\",flexDirection:\"column\",gap:4,alignItems:\"center\",textAlign:\"center\",width:\"100%\",height:\"100%\",textWrap:\"nowrap\"},children:[children,text,subtext&&/*#__PURE__*/_jsx(\"span\",{style:{opacity:.7,whiteSpace:\"pre\",lineHeight:1.4},children:subtext}),/*#__PURE__*/_jsx(Border,{width:\"1px\",style:\"solid\",borderColor:\"rgba(136, 136, 136, 0.1)\"}),/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:`\n                        [data-framer-component-container=\"true\"] div:has(> .${CANVAS_HIDDEN_CLASS_NAME}) {\n                            display: none !important;\n                        }`}})]}):/*#__PURE__*/_jsxs(\"div\",{...otherProps,ref:ref,className:HIDDEN_CLASS_NAME,children:[/*#__PURE__*/_jsx(HideElement,{}),children]});});HiddenComponentLabel.displayName=\"FramerForms/Hidden Component Label Staging\";export function iconProp({size=16,buttonTitle=\"Icon\",controls={}}={}){return{type:ControlType.Object,buttonTitle,optional:true,defaultValue:{color:\"#999\",size},controls:{image:{type:ControlType.Image},color:{type:ControlType.Color,optional:true,defaultValue:\"#999\"},size:{type:ControlType.Number,defaultValue:size,min:1,step:1,displayStepper:true},...controls}};}export function Icon({image,color,size,style={},defaultImage}){return /*#__PURE__*/_jsx(\"div\",{style:{width:size,height:size,minWidth:size,minHeight:size,pointerEvents:\"none\",backgroundColor:color,backgroundImage:color?\"none\":image?`url('${image}')`:defaultImage,maskImage:image?`url('${image}')`:defaultImage,backgroundSize:\"contain\",backgroundPosition:\"center\",maskSize:\"contain\",maskPosition:\"center\",...style}});}Icon.displayName=\"FramerForms/Icon Staging\";export function Border({width,style,transition=null,borderColor=\"inherit\",opacity=1}){return /*#__PURE__*/_jsx(motion.div,{animate:{borderColor,opacity},style:{position:\"absolute\",inset:0,borderWidth:width,borderStyle:style,borderRadius:\"inherit\",pointerEvents:\"none\"},initial:false,transition:transition});}Border.displayName=\"FramerForms/Border Staging\";export function createBackground(fill,on=null,focused=null,invalid=null){if(fill){const onOff=typeof on==\"boolean\";if(fill.type==\"color\"){let color=invalid&&fill.colorInvalid||focused&&fill.colorFocus||(onOff?on?fill.colorOn:fill.colorOff:fill.color);return{backgroundColor:color,backgroundImage:\"none\"};}else{const colorA=invalid&&fill.colorAInvalid||focused&&fill.colorAFocus||(onOff?on?fill.colorAOn:fill.colorAOff:fill.colorA);const colorB=invalid&&fill.colorBInvalid||focused&&fill.colorBFocus||(onOff?on?fill.colorBOn:fill.colorBOff:fill.colorB);return{backgroundColor:\"none\",backgroundImage:`linear-gradient(${fill.gradientAngle}deg, ${colorB}, ${colorA})`};}}return{};}export function parsePadding(padding){if(typeof padding!==\"string\"){return[0,0,0,0];}const values=padding.split(\" \");const parsedValues=values.map(value=>parseInt(value.replace(\"px\",\"\"),10));switch(parsedValues.length){case 1:const p=parsedValues[0];return[p,p,p,p];case 4:return parsedValues;}return[0,0,0,0];}export function fillProp({onOff=false,focus=true,invalid=true,optional=false,hidden=null,color=\"rgba(187, 187, 187, 0.15)\",colorA=\"#BBB\",colorB=\"#676767\",colorOn=\"rgba(70, 160, 219, 0.2)\",colorAOn=\"#66C2FF\",colorBOn=\"#0099FF\",colorOff=\"rgba(187, 187, 187, 0.15)\",colorAOff=\"#BBB\",colorBOff=\"#676767\"}={}){return{type:ControlType.Object,optional,hidden,icon:\"color\",defaultValue:{type:\"color\",...onOff?{colorOn,colorOff}:{color,colorA,colorB}},controls:{type:{type:ControlType.Enum,defaultValue:\"color\",options:[\"color\",\"linearGradient\"],optionTitles:[\"Color\",\"Gradient\"],displaySegmentedControl:true},...onOff?{colorOn:{type:ControlType.Color,defaultValue:colorOn,hidden:props=>props.type!==\"color\"},colorOff:{type:ControlType.Color,defaultValue:colorOff,hidden:props=>props.type!==\"color\"}}:{color:{type:ControlType.Color,defaultValue:color,hidden:props=>props.type!==\"color\"}},...focus?{colorFocus:{type:ControlType.Color,optional:true,title:\"Focus\",hidden:props=>props.type!==\"color\"}}:{},...invalid?{colorInvalid:{type:ControlType.Color,optional:true,title:\"Invalid\",hidden:props=>props.type!==\"color\"}}:{},...onOff?{colorAOn:{type:ControlType.Color,defaultValue:colorAOn,title:\"Colors On\",hidden:props=>props.type!==\"linearGradient\"},colorBOn:{type:ControlType.Color,defaultValue:colorBOn,title:\" \",hidden:props=>props.type!==\"linearGradient\"},colorAOff:{type:ControlType.Color,defaultValue:colorAOff,title:\"Colors Off\",hidden:props=>props.type!==\"linearGradient\"},colorBOff:{type:ControlType.Color,defaultValue:colorBOff,title:\" \",hidden:props=>props.type!==\"linearGradient\"}}:{colorA:{type:ControlType.Color,defaultValue:colorA,title:\"Colors\",hidden:props=>props.type!==\"linearGradient\"},colorB:{type:ControlType.Color,defaultValue:colorB,title:\" \",hidden:props=>props.type!==\"linearGradient\"}},...focus?{colorAFocus:{type:ControlType.Color,optional:true,title:\"Focus\",hidden:props=>props.type!==\"linearGradient\"},colorBFocus:{type:ControlType.Color,optional:true,title:\" \",hidden:props=>props.type!==\"linearGradient\"}}:{},...invalid?{colorAInvalid:{type:ControlType.Color,optional:true,title:\"Invalid\",hidden:props=>props.type!==\"linearGradient\"},colorBInvalid:{type:ControlType.Color,optional:true,title:\" \",hidden:props=>props.type!==\"linearGradient\"}}:{},gradientAngle:{type:ControlType.Number,defaultValue:0,title:\"Angle\",step:1,min:0,max:360,unit:\"\\xb0\",hidden:props=>props.type!=\"linearGradient\"}}};}export function borderProp({onOff=false,focus=true,invalid=true,defaultValue=true,color=\"rgba(136, 136, 136, 0.1)\",colorOn=\"#0099FF\",colorOff=\"rgba(136, 136, 136, 0.1)\",colorFocus=\"#0099FF\",colorInvalid=\"#FF5A6F\",hidden=null}={}){return{type:ControlType.Object,optional:true,hidden,defaultValue:defaultValue?{color,colorOn,colorOff,colorFocus,colorInvalid,width:\"1px\"}:undefined,controls:{...onOff?{colorOn:{type:ControlType.Color,defaultValue:colorOn},colorOff:{type:ControlType.Color,defaultValue:colorOff}}:{color:{type:ControlType.Color,defaultValue:color}},...focus?{colorFocus:{type:ControlType.Color,defaultValue:colorFocus,optional:true,title:\"Focus\"}}:{},...invalid?{colorInvalid:{type:ControlType.Color,defaultValue:colorInvalid,optional:true,title:\"Invalid\"}}:{},width:{type:ControlType.Padding,defaultValue:\"1px\"},style:{type:ControlType.Enum,defaultValue:\"solid\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"]}}};}export function shadowsProp({invalid=true,onOff=false}={}){return{type:ControlType.Object,buttonTitle:\"Shadows\",optional:true,controls:{...onOff?{on:{type:ControlType.BoxShadow,defaultValue:\"rgba(0, 153, 255, 0.5) 0px 2px 4px 0px\"},off:{type:ControlType.BoxShadow,defaultValue:\"rgba(0, 0, 0, 0.25) 0px 2px 4px 0px\"}}:{default:{type:ControlType.BoxShadow,defaultValue:\"rgba(0, 0, 0, 0.25) 0px 2px 4px 0px\"}},focus:{type:ControlType.BoxShadow},invalid:invalid?{type:ControlType.BoxShadow}:null}};}export function useCanvasState(ref){const[totalPages,setTotalPages]=useState(1);useEffect(()=>{const element=ref.current;let pages=null;function updateState(){setTotalPages(pages?pages.children.length:1);}if(element){const multiStepForms=document.querySelectorAll(\"div[data-framerforms-multi-step-form]\");for(const multiStepForm of multiStepForms){const form=multiStepForm.closest(\"form\")||multiStepForm.parentElement.parentElement.parentElement;if(form&&isAncestor(form,element)){pages=form.querySelector(':scope > [data-framer-name=\"Pages\" i]');}}}updateState();if(pages){const observer=new MutationObserver((mutationsList,observer)=>{for(let mutation of mutationsList){if(mutation.type===\"childList\"){updateState();}}});observer.observe(pages,{childList:true});return()=>observer.disconnect();}},[]);return{page:0,totalPages};}export function isAncestor(ancestorElement,descendantElement){if(!ancestorElement||!descendantElement){return false;}let currentElement=descendantElement;while(currentElement!==null){if(currentElement===ancestorElement){return true;}currentElement=currentElement.parentElement;}return false;}export function getFormInfo(element){const form=element?.closest(\"form\")??null;let formId=null;let pages=null;if(form){formId=form.getAttribute(\"framerforms-id\");pages=form.querySelector(':scope > [data-framer-name=\"Pages\" i]');if(!formId){formId=uuid();form.setAttribute(\"framerforms-id\",formId);}}return{form,formId,pages};}function uuid(){let d=new Date().getTime()// Timestamp\n;let d2=performance&&performance.now&&performance.now()*1e3||0// Time in microseconds since page-load or 0 if unsupported\n;return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(c){let r=Math.random()*16// random number between 0 and 16\n;if(d>0){// Use timestamp until depleted\nr=(d+r)%16|0;d=Math.floor(d/16);}else{// Use microseconds since page-load if supported\nr=(d2+r)%16|0;d2=Math.floor(d2/16);}return(c===\"x\"?r:r&3|8).toString(16);});}function parseQuizOptions(attr){if(!attr)return{};try{const v=JSON.parse(attr);return{caseSensitive:Boolean(v.caseSensitive),ignoreSpaces:Boolean(v.ignoreSpaces),useRegex:Boolean(v.useRegex),matchMode:v.matchMode===\"set\"?\"set\":\"exact\",valueSeparator:typeof v.valueSeparator===\"string\"?v.valueSeparator:\", \"};}catch{return{};}}function parseExpectedAnswer(raw){if(raw==null||raw===\"\")return\"\";const trimmed=raw.trim();if(trimmed.startsWith(\"[\")&&trimmed.endsWith(\"]\")){try{const v=JSON.parse(trimmed);if(Array.isArray(v)){return v.map(x=>String(x));}}catch{return raw;}}return raw;}function normalizeCompare(s,ignoreSpaces,caseSensitive){let out=s;if(ignoreSpaces)out=out.replace(/\\s/g,\"\");if(!caseSensitive)out=out.toLowerCase();return out;}function isQuizAnswerCorrect(value,expected,opts){const matchMode=opts.matchMode??\"exact\";if(matchMode===\"set\"&&Array.isArray(expected)&&expected.length>0){const sep=opts.valueSeparator??\", \";const userParts=value.split(sep).map(s=>s.trim()).filter(Boolean);const expParts=expected.map(e=>String(e).trim()).filter(Boolean);if(userParts.length!==expParts.length)return false;const normOne=s=>normalizeCompare(s,!!opts.ignoreSpaces,!!opts.caseSensitive);const sortedUser=[...userParts].map(normOne).sort();const sortedExp=[...expParts].map(normOne).sort();return sortedUser.every((x,i)=>x===sortedExp[i]);}const caseSensitive=!!opts.caseSensitive;const ignoreSpaces=!!opts.ignoreSpaces;const useRegex=!!opts.useRegex;if(Array.isArray(expected)){return expected.some(e=>{const exp=String(e);if(useRegex){try{return new RegExp(exp).test(value);}catch{return false;}}return normalizeCompare(value,ignoreSpaces,caseSensitive)===normalizeCompare(exp,ignoreSpaces,caseSensitive);});}const exp=String(expected);if(useRegex){try{return new RegExp(exp).test(value);}catch{return false;}}return normalizeCompare(value,ignoreSpaces,caseSensitive)===normalizeCompare(exp,ignoreSpaces,caseSensitive);}function readQuizQuestionPoints(el){const pCorrect=Number(el.getAttribute(\"data-framerforms-quiz-points\")??\"1\");const pWrong=Number(el.getAttribute(\"data-framerforms-quiz-wrong-points\")??\"0\");return{maxPointsIfCorrect:Number.isFinite(pCorrect)?pCorrect:1,pointsIfWrong:Number.isFinite(pWrong)?pWrong:0};}/**\n * Read one quiz field’s live answer, expected answer text, and correctness.\n * Use the field’s `name` (same as in the Layers / form). For radio groups,\n * pass the shared `name` attribute.\n */export function getQuestionData(form,inputName){const empty={userValue:\"\",correctAnswer:\"\",isCorrect:null,isQuizField:false,maxPointsIfCorrect:0,pointsIfWrong:0};if(!form||!inputName?.trim())return empty;const esc=typeof CSS!==\"undefined\"&&typeof CSS.escape===\"function\"?CSS.escape(inputName):inputName.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"');const sel=`input[name=\"${esc}\"], select[name=\"${esc}\"], textarea[name=\"${esc}\"]`;const all=form.querySelectorAll(sel);if(all.length===0)return empty;let el=all[0];if(all.length>1&&el instanceof HTMLInputElement&&el.type===\"radio\"){let checked=null;for(const n of all){if(n instanceof HTMLInputElement&&n.type===\"radio\"&&n.checked){checked=n;break;}}el=checked??el;}const userValue=getQuizFieldValue(el);if(el.getAttribute(\"data-framerforms-quiz\")!==\"true\"){return{userValue,correctAnswer:\"\",isCorrect:null,isQuizField:false,maxPointsIfCorrect:0,pointsIfWrong:0};}if(el.getAttribute(\"data-framerforms-quiz-scoring\")===\"weighted\"){const parsed=parseOptionPointsAttr(el.getAttribute(\"data-framerforms-quiz-option-points\"));if(!parsed){return{userValue,correctAnswer:\"\",isCorrect:null,isQuizField:true,maxPointsIfCorrect:0,pointsIfWrong:0,earnedPoints:0};}const opts=parseQuizOptions(el.getAttribute(\"data-framerforms-quiz-options\"));const{earned,maxPoints}=scoreWeightedFieldValue(userValue,parsed,opts);return{userValue,correctAnswer:\"\",isCorrect:null,isQuizField:true,maxPointsIfCorrect:maxPoints,pointsIfWrong:0,earnedPoints:earned};}const expectedRaw=el.getAttribute(\"data-framerforms-correct-answer\")??\"\";const expected=parseExpectedAnswer(expectedRaw);const opts=parseQuizOptions(el.getAttribute(\"data-framerforms-quiz-options\"));const{maxPointsIfCorrect,pointsIfWrong}=readQuizQuestionPoints(el);const correctAnswer=Array.isArray(expected)?expected.map(String).join(\", \"):String(expected??\"\");if(expected===\"\"||Array.isArray(expected)&&expected.length===0){return{userValue,correctAnswer:\"\",isCorrect:null,isQuizField:true,maxPointsIfCorrect,pointsIfWrong};}const isOk=isQuizAnswerCorrect(userValue,expected,opts);return{userValue,correctAnswer,isCorrect:isOk,isQuizField:true,maxPointsIfCorrect,pointsIfWrong};}function getQuizFieldValue(el){if(el instanceof HTMLSelectElement){return el.value??\"\";}const inp=el;if(inp.type===\"checkbox\"||inp.type===\"radio\"){return inp.checked?inp.value||\"on\":\"\";}return inp.value??\"\";}/**\n * Computes quiz score from the form DOM.\n * Correct/incorrect fields need `data-framerforms-correct-answer`.\n * Weighted fields use `data-framerforms-quiz-option-points` (no correct answer).\n * Skips inputs disabled for multi-step unvisited pages (`disabled=\"FramerForms\"`).\n */export function calculateQuizScoreFromForm(form,_scoringMode){const nodes=form.querySelectorAll('input[data-framerforms-quiz=\"true\"], select[data-framerforms-quiz=\"true\"], textarea[data-framerforms-quiz=\"true\"]');let correct=0;let total=0;let points=0;let maxPoints=0;const answers={};const countedNames=new Set;let fieldIndex=0;const fieldKey=el=>{fieldIndex+=1;return el.name?.trim()?el.name:`quiz-field-${fieldIndex}`;};nodes.forEach(el=>{if(el.getAttribute(\"disabled\")===\"FramerForms\")return;const nameKey=el.name?.trim();if(nameKey&&countedNames.has(nameKey))return;const scoringMethod=el.getAttribute(\"data-framerforms-quiz-scoring\")??\"correctIncorrect\";if(scoringMethod===\"weighted\"){const parsed=parseOptionPointsAttr(el.getAttribute(\"data-framerforms-quiz-option-points\"));if(!parsed)return;const opts=parseQuizOptions(el.getAttribute(\"data-framerforms-quiz-options\"));const value=getQuizFieldValue(el);const{earned,maxPoints:fieldMax}=scoreWeightedFieldValue(value,parsed,opts);const key=fieldKey(el);if(nameKey)countedNames.add(nameKey);total+=1;maxPoints+=fieldMax;points+=earned;answers[key]={isCorrect:null,earnedPoints:earned};return;}if(!el.hasAttribute(\"data-framerforms-correct-answer\"))return;const expectedRaw=el.getAttribute(\"data-framerforms-correct-answer\")??\"\";const expected=parseExpectedAnswer(expectedRaw);if(expected===\"\"||Array.isArray(expected)&&expected.length===0)return;const opts=parseQuizOptions(el.getAttribute(\"data-framerforms-quiz-options\"));const pCorrect=Number(el.getAttribute(\"data-framerforms-quiz-points\")??\"1\");const pWrong=Number(el.getAttribute(\"data-framerforms-quiz-wrong-points\")??\"0\");const pc=Number.isFinite(pCorrect)?pCorrect:1;const pw=Number.isFinite(pWrong)?pWrong:0;const key=fieldKey(el);if(nameKey)countedNames.add(nameKey);total+=1;maxPoints+=pc;const value=getQuizFieldValue(el);const isOk=isQuizAnswerCorrect(value,expected,opts);if(isOk){correct+=1;points+=pc;answers[key]={isCorrect:true,earnedPoints:pc};}else{points+=pw;answers[key]={isCorrect:false,earnedPoints:pw};}});return{correct,total,points,maxPoints,answers};}// ============================================================================\n// FORM UTILITIES\n// ============================================================================\n/**\n * Clears all form input values and dispatches events to notify React components.\n * Handles regular inputs, checkboxes, radios, and custom FramerForms inputs\n * (RatingInput, PhoneNumberInput, etc.).\n *\n * @param form - The form element to clear\n */export function clearFormInputs(form){if(!form)return;// Reset the form (clears most inputs)\nform.reset();// Manually clear inputs that might not be reset by form.reset()\nconst inputs=form.querySelectorAll(\"input, select, textarea\");inputs.forEach(input=>{if(input.type===\"checkbox\"||input.type===\"radio\"){input.checked=false;}else{input.value=\"\";}// Dispatch events to notify React components\ninput.dispatchEvent(new Event(\"input\",{bubbles:true}));input.dispatchEvent(new Event(\"change\",{bubbles:true}));});// Clear custom FramerForms inputs (RatingInput, PhoneNumberInput, etc.)\n// These use HiddenInput with data-framerforms-set-value-event=\"true\"\nconst customInputs=form.querySelectorAll('input[data-framerforms-set-value-event=\"true\"]');customInputs.forEach(input=>{const inputName=input.name?.toLowerCase()||\"\";// Identify component type by checking parent structure\nconst parent=input.closest(\"[data-framerforms]\");const buttonCount=parent?.querySelectorAll('button[type=\"button\"]').length||0;// RatingInput typically has 2-10 star buttons\nconst isLikelyRating=buttonCount>=2&&buttonCount<=10;// RatingInput needs 0 to clear, others need empty string\nconst clearValue=isLikelyRating||inputName.includes(\"rating\")?0:\"\";input.dispatchEvent(new CustomEvent(\"framerFormsSetValue\",{detail:clearValue,bubbles:true}));});}// ============================================================================\n// AUTOFILL STYLING OVERRIDE\n// ============================================================================\n/**\n * Sets up global CSS to override browser autofill styling.\n * This prevents browsers from applying their default yellow/blue backgrounds\n * to autofilled form inputs, which can break custom designs.\n *\n * Runs once when the module loads and applies to all inputs on the page,\n * including native Framer components.\n */function setupAutofillOverride(){// Check if we're in a browser environment\nif(typeof document===\"undefined\")return;// Check if the style tag already exists to avoid duplicates\nconst existingStyle=document.getElementById(\"framerforms-autofill-override\");if(existingStyle)return;// Create and inject the style tag\nconst style=document.createElement(\"style\");style.id=\"framerforms-autofill-override\";style.textContent=`\n        /* Override browser autofill styling for all inputs */\n        input:-webkit-autofill,\n        input:-webkit-autofill:hover,\n        input:-webkit-autofill:focus,\n        input:-webkit-autofill:active,\n        select:-webkit-autofill,\n        select:-webkit-autofill:hover,\n        select:-webkit-autofill:focus,\n        select:-webkit-autofill:active,\n        textarea:-webkit-autofill,\n        textarea:-webkit-autofill:hover,\n        textarea:-webkit-autofill:focus,\n        textarea:-webkit-autofill:active {\n            /* Use box-shadow to override background color */\n            /* The large spread radius ensures it covers the entire input */\n            -webkit-box-shadow: 0 0 0 1000px transparent inset !important;\n            box-shadow: 0 0 0 1000px transparent inset !important;\n            \n            /* Override text color */\n            -webkit-text-fill-color: inherit !important;\n            color: inherit !important;\n            \n            /* Use transition trick to prevent background color changes */\n            /* The extremely long duration (5000s) effectively prevents the change */\n            transition: background-color 5000s ease-in-out 0s, \n                        color 5000s ease-in-out 0s !important;\n        }\n        \n        /* Ensure autofilled inputs maintain their original styling */\n        input:-webkit-autofill::first-line,\n        select:-webkit-autofill::first-line,\n        textarea:-webkit-autofill::first-line {\n            -webkit-text-fill-color: inherit !important;\n            color: inherit !important;\n        }\n    `;// Append to document head\ndocument.head.appendChild(style);}// Run the setup immediately when the module loads\n// This ensures it applies globally before any components render\nif(typeof document!==\"undefined\"){// Use requestAnimationFrame to ensure DOM is ready\nif(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",setupAutofillOverride);}else{// DOM is already loaded, run immediately\nsetupAutofillOverride();}}\nexport const __FramerMetadata__ = {\"exports\":{\"HiddenComponentLabelProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearFormInputs\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useQuizStoreApi\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fillProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenInputOwnProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createEmptyQuizScore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PageHistory\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"insertFrameSupportPropertyControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScoringMode\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"shadowsProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInstanceId\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FormSubmittedStoreState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormSubmittedStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HIDDEN_CLASS_NAME\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenComponentLabel\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFormInfo\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parsePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getQuestionData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InsertFrameNeedHelpProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizScore\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MultiStepFormState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"createBackground\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizStoreSetter\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiStepFormStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useQuizStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenInput\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Border\":{\"type\":\"reactComponent\",\"name\":\"Border\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"MultiStepFormStore\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FormInfo\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LogicConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HideElement\":{\"type\":\"reactComponent\",\"name\":\"HideElement\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculateQuizScoreFromForm\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isAncestor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizStoreState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FormSubmittedSetter\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"iconProp\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"QuizRuntimeState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HiddenInputProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useCanvasState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormSubmittedStoreApi\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","/**\n * Experimental: detect Framer hosted-form API success by patching fetch/XHR.\n * Pairs responses to the form that most recently fired `submit` (by framerforms-id).\n * State lives on `window` so every bundled copy of this file shares one snapshot.\n * May break if Framer changes endpoints or transport. Prefer canvas Success variants when possible.\n */import{useSyncExternalStore}from\"react\";const GLOBAL_KEY=\"__framerFormsSubmitHackState\";const MATCH_WINDOW_MS=15e3;function getSubmitHackState(){if(typeof window===\"undefined\"){return{snapshot:{pendingSubmitAt:{},revealed:{}},listeners:new Set,installed:false,successWaiters:new Map};}const w=window;if(!w[GLOBAL_KEY]){w[GLOBAL_KEY]={snapshot:{pendingSubmitAt:{},revealed:{}},listeners:new Set,installed:false,successWaiters:new Map};}return w[GLOBAL_KEY];}function emit(){const{listeners}=getSubmitHackState();for(const l of listeners)l();}function subscribe(cb){const{listeners}=getSubmitHackState();listeners.add(cb);return()=>{listeners.delete(cb);};}function getSnapshot(){return getSubmitHackState().snapshot;}function getServerSnapshot(){return{pendingSubmitAt:{},revealed:{}};}function flushSuccessWaiters(formId){const state=getSubmitHackState();const waiters=state.successWaiters.get(formId);if(!waiters?.size)return;state.successWaiters.delete(formId);for(const fn of waiters){try{fn();}catch{// ignore redirect / reveal errors\n}}}function clearSuccessWaiters(formId){getSubmitHackState().successWaiters.delete(formId);}function isFramerHostedFormSubmitUrl(url){if(!url)return false;const u=url.toLowerCase();return u.includes(\"framer.com\")&&u.includes(\"/forms/\")&&(u.includes(\"/submit\")||u.endsWith(\"submit\"));}function resolveUrl(input){if(typeof input===\"string\")return input;if(input instanceof Request)return input.url;if(input instanceof URL)return input.href;return\"\";}function onHostedFormResponseFinished(ok,status){const state=getSubmitHackState();const now=Date.now();let bestId=null;let bestT=0;for(const[id,t]of Object.entries(state.snapshot.pendingSubmitAt)){if(typeof t===\"number\"&&now-t<MATCH_WINDOW_MS&&t>bestT){bestT=t;bestId=id;}}if(!bestId)return;const nextPending={...state.snapshot.pendingSubmitAt};delete nextPending[bestId];if(ok&&status>=200&&status<300){state.snapshot={pendingSubmitAt:nextPending,revealed:{...state.snapshot.revealed,[bestId]:true}};flushSuccessWaiters(bestId);}else{state.snapshot={pendingSubmitAt:nextPending,revealed:{...state.snapshot.revealed,[bestId]:false}};clearSuccessWaiters(bestId);}emit();}export function ensureFramerSubmitNetworkHackInstalled(){const state=getSubmitHackState();if(state.installed)return;state.installed=true;if(typeof window===\"undefined\")return;const w=window;const origFetch=w.fetch.bind(w);w.fetch=async function(input,init){const res=await origFetch(input,init);try{const url=resolveUrl(input);if(isFramerHostedFormSubmitUrl(url)){onHostedFormResponseFinished(res.ok,res.status);}}catch{// ignore\n}return res;};const XHR=window.XMLHttpRequest;if(!XHR?.prototype)return;const origOpen=XHR.prototype.open;const origSend=XHR.prototype.send;XHR.prototype.open=function(method,url,...rest){this.__ffHackUrl=typeof url===\"string\"?url:url.href;return origOpen.apply(this,[method,url,...rest]);};XHR.prototype.send=function(...args){const url=this.__ffHackUrl??\"\";const done=()=>{if(isFramerHostedFormSubmitUrl(url)){onHostedFormResponseFinished(this.status>=200&&this.status<300,this.status);}this.removeEventListener(\"load\",done);};this.addEventListener(\"load\",done);return origSend.apply(this,args);};}/** Call from a form `submit` listener (same form as the display). Resets reveal until next success. */export function registerFramerFormSubmitIntentForHack(formId){if(!formId)return;const state=getSubmitHackState();state.snapshot={...state.snapshot,pendingSubmitAt:{...state.snapshot.pendingSubmitAt,[formId]:Date.now()},revealed:{...state.snapshot.revealed,[formId]:false}};emit();}/**\n * Run `fn` once after Framer hosted form POST returns 2xx for `formId`.\n * Call from `submit` **after** {@link registerFramerFormSubmitIntentForHack} (same tick is fine).\n * Uses a global waiter queue so redirects still run if the caller unmounts after submit.\n */export function runAfterFramerHostedSubmitSuccess(formId,fn){const id=formId?.trim();if(!id)return()=>{};ensureFramerSubmitNetworkHackInstalled();const state=getSubmitHackState();if(state.snapshot.revealed[id]===true){fn();return()=>{};}let waiters=state.successWaiters.get(id);if(!waiters){waiters=new Set;state.successWaiters.set(id,waiters);}waiters.add(fn);return()=>{waiters?.delete(fn);};}/**\n * When hack is off, always returns true (show live value).\n * When on, true only after we saw a 2xx Framer `/forms/.../submit` response after this form’s submit.\n */export function useFramerSubmitNetworkReveal(formId,hackEnabled){const revealed=useSyncExternalStore(subscribe,getSnapshot,getServerSnapshot);if(!hackEnabled)return true;const id=formId?.trim();if(!id)return false;return!!revealed.revealed[id];}/** When to show the live value vs fallback (network hack only applies in `afterSubmit`). */export const NETWORK_HACK_REVEAL_TIMING={LIVE:\"live\",AFTER_SUBMIT:\"afterSubmit\"};\nexport const __FramerMetadata__ = {\"exports\":{\"registerFramerFormSubmitIntentForHack\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NETWORK_HACK_REVEAL_TIMING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"runAfterFramerHostedSubmitSuccess\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NetworkHackRevealTiming\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ensureFramerSubmitNetworkHackInstalled\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFramerSubmitNetworkReveal\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./formSubmitNetworkHack.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useState,useRef,useMemo,useCallback,useId}from\"react\";import{useDisplayValueFormSubmission}from\"https://framerusercontent.com/modules/Pte0HWJA44FrkkHSZRD6/QpdYC7npTWEif7tCk0SH/displayValueFormSubmission.js\";import{countries,countryEmojis,countryDialCodes}from\"https://framerusercontent.com/modules/5Ix20dDho5D2OHmlnyZu/3K8ZDqDEiX7XSLWDxtVY/Countries.js\";import{getFormInfo}from\"https://framerusercontent.com/modules/z8cIEIxb4MjL2nvvhvk3/r8zaR1SV4VEekNzR8koh/FramerFormsShared.js\";import{ensureFramerSubmitNetworkHackInstalled,NETWORK_HACK_REVEAL_TIMING,registerFramerFormSubmitIntentForHack,useFramerSubmitNetworkReveal}from\"https://framerusercontent.com/modules/Tm1sa7lCpDrSWJm7brRS/NvETdl39d2NYUdBt3RtD/formSubmitNetworkHack.js\";// ============================================================================\n// CONSTANTS\n// ============================================================================\nconst INPUT_TYPES={TEXT:\"text\",SELECT:\"select\",CHECKBOX:\"checkbox\",PHONE:\"phone\",RATING:\"rating\",COUNTRY:\"country\",NUMBER:\"number\",RADIO:\"radio\",EMAIL:\"email\",OTHER:\"other\"};const RATING_FORMATS={NUMBER:\"number\",FRACTION:\"fraction\",THRESHOLD:\"threshold\"};const COUNTRY_FORMATS={COUNTRY:\"country\",FLAG:\"flag\",CODE:\"code\",FLAG_NAME:\"flagName\",NAME_FLAG:\"nameFlag\",CODE_NAME:\"codeName\",NAME_CODE:\"nameCode\",CODE_NAME_FLAG:\"codeNameFlag\"};// ============================================================================\n// FORMATTERS\n// ============================================================================\nconst formatCheckboxValue=(isChecked,checkedValue,uncheckedValue,fallback)=>{if(isChecked){return checkedValue||fallback||\"On\";}return uncheckedValue||fallback||\"Off\";};const formatSelectValue=(value,titleValue,fallback)=>{if(!value)return fallback;return titleValue||value||fallback;};const formatPhoneValue=(value,showPrefix,fallback)=>{if(!value)return fallback;if(showPrefix)return value;if(value.startsWith(\"+\")){const match=value.match(/^\\+\\d+\\s+(.+)$/);return match?match[1]:value.replace(/^\\+\\d+\\s*/,\"\");}return value;};const formatRatingValue=(value,options,fallback)=>{const rating=parseInt(value,10);if(isNaN(rating)||rating<=0)return fallback;const format=options?.format||RATING_FORMATS.THRESHOLD;const maxStars=options?.maxStars||5;const threshold=options?.threshold||3;switch(format){case RATING_FORMATS.NUMBER:return String(rating);case RATING_FORMATS.FRACTION:return`${rating}/${maxStars}`;case RATING_FORMATS.THRESHOLD:return rating>=threshold?options?.highText||\"Great!\":options?.lowText||\"Could be better\";default:return String(rating);}};const formatCountryValue=(value,format,fallback)=>{if(!value)return fallback;const countryIndex=countries.indexOf(value);if(countryIndex<0)return value;const emoji=countryEmojis[countryIndex]||\"\";const dialCode=countryDialCodes[countryIndex]||\"\";const formatters={[COUNTRY_FORMATS.FLAG]:emoji,[COUNTRY_FORMATS.FLAG_NAME]:`${emoji} ${value}`,[COUNTRY_FORMATS.NAME_CODE]:`${value} (+${dialCode})`,[COUNTRY_FORMATS.CODE]:`+${dialCode}`,[COUNTRY_FORMATS.NAME_FLAG]:`${value} ${emoji}`,[COUNTRY_FORMATS.CODE_NAME]:`(+${dialCode}) ${value}`,[COUNTRY_FORMATS.CODE_NAME_FLAG]:`(+${dialCode}) ${value} ${emoji}`,[COUNTRY_FORMATS.COUNTRY]:value};return formatters[format]||value;};export function useInputObserver(inputName,scopeRef){const[state,setState]=useState({value:\"\",titleValue:\"\",isChecked:false,inputFound:false});const componentRef=useRef(null);const lastStateRef=useRef(\"\");const readInputValue=useCallback(input=>{if(input instanceof HTMLInputElement&&input.type===\"checkbox\"){return{isChecked:input.checked};}if(input instanceof HTMLInputElement&&input.type===\"radio\"){return input.checked?{value:input.value}:{};}if(input instanceof HTMLSelectElement){const selectedOption=input.options[input.selectedIndex];return{value:input.value,titleValue:selectedOption?.text||\"\"};}return{value:input.value||\"\"};},[]);const getInputStateKey=useCallback(input=>{if(!input)return\"\";if(input instanceof HTMLInputElement){if(input.type===\"checkbox\")return`checked:${input.checked}`;if(input.type===\"radio\")return`radio:${input.checked}:${input.value}`;}return input.value;},[]);useEffect(()=>{if(!inputName){setState(prev=>({...prev,inputFound:false}));return;}const form=(scopeRef?.current??componentRef.current)?.closest(\"form\")??null;const container=form||document;const findInput=()=>{const selector=`input[name=\"${inputName}\"], select[name=\"${inputName}\"], textarea[name=\"${inputName}\"]`;const allInputs=container.querySelectorAll(selector);if(allInputs.length===0)return null;// Handle radio groups: find the checked radio or return first\nconst firstInput=allInputs[0];if(allInputs.length>1&&firstInput instanceof HTMLInputElement&&firstInput.type===\"radio\"){for(const input of allInputs){if(input instanceof HTMLInputElement&&input.checked){return input;}}return firstInput;}return firstInput;};const checkValue=()=>{const input=findInput();if(!input){setState(prev=>({...prev,inputFound:false}));return;}const currentStateKey=getInputStateKey(input);if(currentStateKey!==lastStateRef.current){lastStateRef.current=currentStateKey;const newValues=readInputValue(input);setState(prev=>({...prev,...newValues,inputFound:true}));}else{setState(prev=>prev.inputFound?prev:{...prev,inputFound:true});}};// Initial check\ncheckValue();// Event delegation for input/change events\nconst handleEvent=e=>{const target=e.target;if(target?.name===inputName)checkValue();};container.addEventListener(\"input\",handleEvent);container.addEventListener(\"change\",handleEvent);// MutationObserver for DOM changes\nconst observer=new MutationObserver(checkValue);observer.observe(container,{subtree:true,childList:true,attributes:true,characterData:true});// Polling fallback for React's value property updates\nconst pollInterval=setInterval(checkValue,100);return()=>{container.removeEventListener(\"input\",handleEvent);container.removeEventListener(\"change\",handleEvent);observer.disconnect();clearInterval(pollInterval);};},[inputName,getInputStateKey,readInputValue,scopeRef]);return{...state,ref:componentRef};}/**\n * All unique `name` attributes on form controls inside the scoped form.\n * Used by Answer Display advanced mode so expressions can reference any input.\n */export function useFormInputNames(scopeRef,enabled=true){const[names,setNames]=useState([]);const fallbackRef=useRef(null);const resolvedScope=scopeRef??fallbackRef;useEffect(()=>{if(!enabled){setNames([]);return;}const refresh=()=>{const form=resolvedScope.current?.closest(\"form\")??null;const container=form||document;const next=new Set;container.querySelectorAll(\"input[name], select[name], textarea[name]\").forEach(el=>{if(el.name)next.add(el.name);});const sorted=[...next].sort();setNames(prev=>{if(prev.length===sorted.length&&prev.every((name,index)=>name===sorted[index])){return prev;}return sorted;});};refresh();const form=resolvedScope.current?.closest(\"form\")??null;const container=form||document;const observer=new MutationObserver(refresh);observer.observe(container,{subtree:true,childList:true,attributes:true,attributeFilter:[\"name\"]});const pollInterval=setInterval(refresh,100);return()=>{observer.disconnect();clearInterval(pollInterval);};},[enabled,resolvedScope]);return names;}/**\n * Latest string values for many named inputs (for advanced calculator expressions).\n * `names` should be stable; updates on input/change and polling like useInputObserver.\n */export function useInputValuesMap(names,scopeRef){const namesKey=useMemo(()=>[...new Set(names.filter(Boolean))].sort().join(\"\\x00\"),[names.join(\"\\x00\")]);const[map,setMap]=useState({});const fallbackRef=useRef(null);const resolvedScope=scopeRef??fallbackRef;const readOne=useCallback((inputName,container)=>{const selector=`input[name=\"${inputName}\"], select[name=\"${inputName}\"], textarea[name=\"${inputName}\"]`;const allInputs=container.querySelectorAll(selector);if(allInputs.length===0)return\"\";const firstInput=allInputs[0];if(allInputs.length>1&&firstInput instanceof HTMLInputElement&&firstInput.type===\"radio\"){for(const input of allInputs){if(input instanceof HTMLInputElement&&input.checked)return input.value||\"\";}return\"\";}const input=firstInput;if(input instanceof HTMLInputElement&&input.type===\"checkbox\"){return input.checked?input.value||\"on\":\"\";}if(input instanceof HTMLSelectElement){return input.value??\"\";}return input.value??\"\";},[]);useEffect(()=>{if(!namesKey){setMap({});return;}const list=namesKey.split(\"\\x00\");const refresh=()=>{const form=resolvedScope.current?.closest(\"form\")??null;const container=form||document;const next={};for(const n of list){next[n]=readOne(n,container);}setMap(prev=>{const keys=new Set([...Object.keys(prev),...Object.keys(next)]);for(const k of keys){if(prev[k]!==next[k])return next;}return prev;});};refresh();const form=resolvedScope.current?.closest(\"form\")??null;const container=form||document;const handleEvent=e=>{const t=e.target;if(t?.name&&list.includes(t.name))refresh();};container.addEventListener(\"input\",handleEvent);container.addEventListener(\"change\",handleEvent);const observer=new MutationObserver(refresh);observer.observe(container,{subtree:true,childList:true,attributes:true,characterData:true});const pollInterval=setInterval(refresh,100);return()=>{container.removeEventListener(\"input\",handleEvent);container.removeEventListener(\"change\",handleEvent);observer.disconnect();clearInterval(pollInterval);};},[namesKey,readOne,resolvedScope]);return map;}// ============================================================================\n// STYLE UTILITIES\n// ============================================================================\nexport function calculateMinHeight(font){const fontSize=parseFloat(String(font?.fontSize||\"14\"));const lineHeight=font?.lineHeight;if(typeof lineHeight===\"number\"){return`${fontSize*lineHeight}px`;}if(typeof lineHeight===\"string\"&&lineHeight.endsWith(\"%\")){return`${fontSize*(parseFloat(lineHeight)/100)}px`;}if(typeof lineHeight===\"string\"){return lineHeight;}return`${fontSize}px`;}// ============================================================================\n// MAIN COMPONENT\n// ============================================================================\n/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n */export default function DynamicValueDisplay({inputName,inputType,showPhonePrefix=true,checkedValue=\"\",uncheckedValue=\"\",ratingOptions={},countryOptions=COUNTRY_FORMATS.COUNTRY,fallbackValue=\"\",prefix=\"\",suffix=\"\",font={},color=\"inherit\",textOptions={},style={},valueColor=\"inherit\",hackRevealTiming=NETWORK_HACK_REVEAL_TIMING.LIVE,includeInFormSubmission=true,submissionFieldName=\"dynamic_display\"}){const submitNetworkHackActive=hackRevealTiming===NETWORK_HACK_REVEAL_TIMING.AFTER_SUBMIT;const{value,titleValue,isChecked,inputFound,ref:observerRef}=useInputObserver(inputName);const[formMeta,setFormMeta]=useState(null);const setTagRef=useCallback(node=>{observerRef.current=node;if(!node){setFormMeta(null);return;}const{form,formId}=getFormInfo(node);if(form&&formId)setFormMeta({form,formId});else setFormMeta(null);},[observerRef]);const computedDisplayValue=useMemo(()=>{const fallback=fallbackValue||\"\";if(!inputFound)return fallback;switch(inputType){case INPUT_TYPES.CHECKBOX:return formatCheckboxValue(isChecked,checkedValue,uncheckedValue,fallback);case INPUT_TYPES.SELECT:return formatSelectValue(value,titleValue,fallback);case INPUT_TYPES.PHONE:return formatPhoneValue(value,showPhonePrefix,fallback);case INPUT_TYPES.RATING:return formatRatingValue(value,ratingOptions,fallback);case INPUT_TYPES.COUNTRY:return formatCountryValue(value,countryOptions,fallback);default:return value||fallback;}},[inputFound,inputType,isChecked,value,titleValue,checkedValue,uncheckedValue,showPhonePrefix,ratingOptions,countryOptions,fallbackValue]);const submissionPayloadRef=useRef(\"\");submissionPayloadRef.current=computedDisplayValue;const submitInstanceId=useId();const isCanvas=RenderTarget.current()===RenderTarget.canvas;useDisplayValueFormSubmission(formMeta?.form??null,{active:includeInFormSubmission&&!isCanvas,fieldName:submissionFieldName,instanceId:submitInstanceId,payloadRef:submissionPayloadRef});useEffect(()=>{if(!submitNetworkHackActive)return;ensureFramerSubmitNetworkHackInstalled();},[submitNetworkHackActive]);useEffect(()=>{if(!submitNetworkHackActive||!formMeta?.form||!formMeta.formId)return;const{form,formId}=formMeta;const onSubmit=()=>registerFramerFormSubmitIntentForHack(formId);form.addEventListener(\"submit\",onSubmit,false);return()=>form.removeEventListener(\"submit\",onSubmit,false);},[submitNetworkHackActive,formMeta]);const networkRevealed=useFramerSubmitNetworkReveal(formMeta?.formId,submitNetworkHackActive);const displayValue=networkRevealed?computedDisplayValue:fallbackValue||\"\";const containerStyle=useMemo(()=>({width:\"100%\",maxWidth:\"100%\",color,userSelect:textOptions?.userSelect?\"auto\":\"none\",margin:0,whiteSpace:\"normal\",wordWrap:\"break-word\",overflowWrap:\"break-word\",wordBreak:\"normal\",minHeight:calculateMinHeight(font),textTransform:textOptions?.transform,textDecoration:textOptions?.decoration,textWrap:textOptions?.balance?\"balance\":undefined,...font,...style}),[color,textOptions,font,style]);const Tag=textOptions?.tag||\"span\";return(// eslint-disable-next-line @typescript-eslint/no-explicit-any\n/*#__PURE__*/_jsxs(Tag,{ref:setTagRef,style:containerStyle,children:[prefix&&`${prefix} `,/*#__PURE__*/_jsx(\"span\",{style:{color:valueColor},children:displayValue}),suffix&&`${suffix}`]}));}DynamicValueDisplay.displayName=\"Dynamic Value Display\";// ============================================================================\n// PROPERTY CONTROLS\n// ============================================================================\naddPropertyControls(DynamicValueDisplay,{includeInFormSubmission:{type:ControlType.Boolean,title:\"Include in submit\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},submissionFieldName:{type:ControlType.String,title:\"Name\",defaultValue:\"Dynamic Value\",preventLocalization:true,hidden:props=>!props.includeInFormSubmission},inputName:{type:ControlType.String,title:\"Input Name\",description:\"The name of the input to display. For radio groups, use the shared name of all radio buttons.\",placeholder:\"e.g., Name, Email, Radio\"},inputType:{type:ControlType.Enum,defaultValue:INPUT_TYPES.TEXT,title:\"Input Type\",options:Object.values(INPUT_TYPES),optionTitles:[\"Text\",\"Select\",\"Checkbox\",\"Phone Number\",\"Rating\",\"Country\",\"Number\",\"Radio\",\"Email\",\"Other\"]},showPhonePrefix:{type:ControlType.Boolean,defaultValue:true,title:\"Show Country Code\",description:\"Display phone number with country code prefix (+CC)\",hidden:props=>props.inputType!==INPUT_TYPES.PHONE},hackRevealTiming:{type:ControlType.Enum,title:\"Show Result\",defaultValue:NETWORK_HACK_REVEAL_TIMING.LIVE,options:[NETWORK_HACK_REVEAL_TIMING.LIVE,NETWORK_HACK_REVEAL_TIMING.AFTER_SUBMIT],optionTitles:[\"Live\",\"After Submit\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},checkedValue:{type:ControlType.String,defaultValue:\"On\",displayTextArea:true,title:\"Checked\",placeholder:\"e.g., Yes, Active, Enabled\",hidden:props=>props.inputType!==INPUT_TYPES.CHECKBOX},uncheckedValue:{type:ControlType.String,defaultValue:\"Off\",displayTextArea:true,title:\"Unchecked\",placeholder:\"e.g., No, Inactive, Disabled\",hidden:props=>props.inputType!==INPUT_TYPES.CHECKBOX},ratingOptions:{type:ControlType.Object,title:\"Options\",hidden:props=>props.inputType!==INPUT_TYPES.RATING,controls:{format:{type:ControlType.Enum,title:\"Show as\",defaultValue:RATING_FORMATS.THRESHOLD,options:Object.values(RATING_FORMATS),optionTitles:[\"Number (3)\",\"Fraction (3/5)\",\"Custom Text\"]},maxStars:{type:ControlType.Number,defaultValue:5,min:1,max:5,step:1,displayStepper:true,title:\"Max Stars\",hidden:props=>props.format!==RATING_FORMATS.FRACTION},threshold:{type:ControlType.Number,defaultValue:3,min:1,max:5,step:1,displayStepper:true,title:\"Threshold\",description:\"Ratings at or above this show 'High' text\",hidden:props=>props.format!==RATING_FORMATS.THRESHOLD},highText:{type:ControlType.String,defaultValue:\"Great!\",title:\"High Rating\",placeholder:\"e.g., Thanks for the love!\",hidden:props=>props.format!==RATING_FORMATS.THRESHOLD},lowText:{type:ControlType.String,defaultValue:\"Could be better\",title:\"Low Rating\",placeholder:\"e.g., We'll do better!\",hidden:props=>props.format!==RATING_FORMATS.THRESHOLD}}},countryOptions:{title:\"Show as\",hidden:props=>props.inputType!==INPUT_TYPES.COUNTRY,type:ControlType.Enum,defaultValue:COUNTRY_FORMATS.COUNTRY,options:Object.values(COUNTRY_FORMATS),optionTitles:[\"Country Only (United States)\",\"Flag Only (🇺🇸)\",\"Code Only (+1)\",\"Flag + Name (🇺🇸 United States)\",\"Name + Flag (United States 🇺🇸)\",\"Code + Name (United States +1)\",\"Name + Code (United States +1)\",\"Code + Name + Flag (United States +1 🇺🇸)\"]},fallbackValue:{type:ControlType.String,defaultValue:\"User\",displayTextArea:false,title:\"Fallback\",placeholder:\"Shown when input is empty or not found\"},prefix:{type:ControlType.String,defaultValue:\"Hello\",title:\"Prefix\",placeholder:\"e.g., Hello... \",displayTextArea:true},suffix:{type:ControlType.String,defaultValue:\", Thanks for signing up!\",title:\"Suffix\",placeholder:\"e.g., , thanks for signing up!\",displayTextArea:true},font:{type:ControlType.Font,title:\"Font\",defaultValue:{textAlign:\"left\",fontSize:16,letterSpacing:0,lineHeight:1.5,//@ts-ignore\nvariant:\"Medium\"},defaultFontType:\"sans-serif\",defaultFontSize:\"16px\",displayTextAlignment:true,displayFontSize:true,controls:\"extended\"},color:{type:ControlType.Color,defaultValue:\"#787878\"},valueColor:{type:ControlType.Color,defaultValue:\"#009DFF\"},textOptions:{type:ControlType.Object,title:\"Text Style\",controls:{tag:{type:ControlType.Enum,defaultValue:\"span\",options:[\"p\",\"span\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],optionTitles:[\"Paragraph\",\"Span\",\"Heading 1\",\"Heading 2\",\"Heading 3\",\"Heading 4\",\"Heading 5\",\"Heading 6\"]},transform:{type:ControlType.Enum,defaultValue:\"none\",options:[\"none\",\"inherit\",\"capitalize\",\"uppercase\",\"lowercase\"],optionTitles:[\"None\",\"Inherit\",\"Capitalize\",\"Uppercase\",\"Lowercase\"]},decoration:{type:ControlType.Enum,defaultValue:\"none\",options:[\"none\",\"underline\",\"line-through\"],optionTitles:[\"None\",\"Underline\",\"Strikethrough\"]},balance:{type:ControlType.Boolean,defaultValue:false,title:\"Text Balance\",description:\"Use CSS text-wrap: balance for better text wrapping\"},userSelect:{type:ControlType.Boolean,defaultValue:false,title:\"User Select\",description:\"Allow text selection\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"useInputValuesMap\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"calculateMinHeight\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"DynamicValueDisplay\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"* @framerIntrinsicWidth 400\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"FontStyle\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DynamicValueDisplayProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useInputObserver\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFormInputNames\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DynamicValueDisplay.map"],"mappings":"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"}