motion-surveyjs-ui 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +738 -699
- package/dist/index.js.map +1 -1
- package/dist/lib/MotionSurvey.d.ts.map +1 -1
- package/dist/lib/ui/Logo.d.ts +5 -0
- package/dist/lib/ui/Logo.d.ts.map +1 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/lib/ui/BaseElement.tsx","../src/lib/ui/Errors.tsx","../src/lib/elements/getQuestionTitle.ts","../src/lib/elements/getQuestionErrors.ts","../src/lib/elements/setQuestionValue.ts","../src/lib/elements/types/TextElement.tsx","../src/lib/elements/types/CommentElement.tsx","../src/lib/elements/types/BooleanElement.tsx","../src/lib/ui/Checkmark.tsx","../src/lib/elements/types/ChoiceElement.tsx","../src/lib/elements/types/DropdownElement.tsx","../src/lib/elements/types/HtmlElement.tsx","../src/lib/elements/types/ImageElement.tsx","../src/lib/elements/types/ExpressionElement.tsx","../src/lib/elements/types/EmptyElement.tsx","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/angry.js","../node_modules/lucide-react/dist/esm/icons/arrow-down.js","../node_modules/lucide-react/dist/esm/icons/arrow-up.js","../node_modules/lucide-react/dist/esm/icons/frown.js","../node_modules/lucide-react/dist/esm/icons/grip-vertical.js","../node_modules/lucide-react/dist/esm/icons/laugh.js","../node_modules/lucide-react/dist/esm/icons/meh.js","../node_modules/lucide-react/dist/esm/icons/plus.js","../node_modules/lucide-react/dist/esm/icons/smile.js","../node_modules/lucide-react/dist/esm/icons/star.js","../node_modules/lucide-react/dist/esm/icons/x.js","../src/lib/elements/types/RatingElement.tsx","../src/lib/elements/types/MultipleTextElement.tsx","../src/lib/elements/types/ImagePickerElement.tsx","../src/lib/elements/types/ButtonGroupElement.tsx","../src/lib/elements/types/TagboxElement.tsx","../src/lib/elements/types/RankingItem.tsx","../src/lib/elements/types/RankingElement.tsx","../src/lib/elements/types/FileElement.tsx","../src/lib/elements/types/SignaturePadElement.tsx","../src/lib/elements/types/PanelDynamicElement.tsx","../src/lib/elements/types/MatrixElement.tsx","../src/lib/elements/types/MatrixDropdownElement.tsx","../src/lib/elements/types/MatrixDynamicElement.tsx","../src/lib/elements/types/FlowPanelElement.tsx","../src/lib/elements/renderElement.tsx","../src/lib/i18n/messages.ts","../src/lib/MotionSurvey.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { useEffect } from 'react'\nimport { Question, type IElement } from 'survey-core'\nimport { motion, useAnimationControls } from 'motion/react'\nimport type { RenderOptions } from './types'\n\nexport function BaseElement({\n element,\n opts,\n children,\n}: {\n element: IElement\n opts: RenderOptions\n children: React.ReactNode\n}) {\n const isQuestion = element instanceof Question\n const question = isQuestion ? (element as Question) : null\n\n const invalid =\n opts.validationSeq > 0 && question && typeof question.hasErrors === 'function'\n ? question.hasErrors()\n : false\n\n const controls = useAnimationControls()\n\n useEffect(() => {\n if (!opts.animate) return\n if (!invalid) return\n\n controls.start({\n x: [0, -6, 6, -4, 0],\n transition: { duration: 0.32, ease: 'easeInOut' },\n })\n }, [controls, invalid, opts.animate, opts.validationSeq])\n\n const elementName = (element as unknown as { name?: string }).name\n\n return (\n <motion.div\n className={invalid ? 'msj__question msj__question--invalid' : 'msj__question'}\n data-msj-element={elementName}\n data-msj-question={question?.name}\n initial={opts.animate ? { opacity: 0.85, y: 12 } : false}\n whileInView={opts.animate ? { opacity: 1, y: 0 } : undefined}\n viewport={{ amount: 0.25, once: true }}\n transition={{ duration: opts.duration }}\n >\n <motion.div className=\"msj__questionInner\" animate={controls}>\n {children}\n </motion.div>\n </motion.div>\n )\n}\n","import { AnimatePresence, motion } from 'motion/react'\nimport type { RenderOptions } from './types'\n\nexport function Errors({ errors, opts }: { errors: string[]; opts: RenderOptions }) {\n if (errors.length === 0) return null\n\n return (\n <AnimatePresence initial={false}>\n {errors.map((t) => (\n <motion.div\n key={t}\n className=\"msj__error\"\n layout\n initial={opts.animate ? { opacity: 0, y: -2 } : false}\n animate={opts.animate ? { opacity: 1, y: 0 } : undefined}\n exit={opts.animate ? { opacity: 0, y: -2 } : undefined}\n transition={{ duration: opts.duration * 0.75 }}\n >\n {t}\n </motion.div>\n ))}\n </AnimatePresence>\n )\n}\n","import type { IElement } from 'survey-core'\nimport type { RenderOptions } from '../ui/types'\n\nexport function getQuestionTitle(element: IElement, opts: RenderOptions): string {\n const base = ((element as unknown as { title?: string }).title ?? '') || element.name\n\n if (opts.showQuestionNumbers === 'off') return base\n\n if (opts.showQuestionNumbers === 'on' && opts.globalQuestionIndex < 0) return base\n if (opts.showQuestionNumbers === 'onPage' && opts.questionIndex < 0) return base\n\n const n = opts.showQuestionNumbers === 'on' ? opts.globalQuestionIndex + 1 : opts.questionIndex + 1\n return `${n}. ${base}`\n}\n","import type { IElement, SurveyError } from 'survey-core'\n\nfunction getErrorText(e: SurveyError): string {\n const maybe = e as unknown as { getText?: () => string; text?: string }\n return (typeof maybe.getText === 'function' ? maybe.getText() : maybe.text) ?? ''\n}\n\nexport function getQuestionErrors(element: IElement): string[] {\n const errs = (element as unknown as { errors?: SurveyError[] }).errors ?? []\n return errs.map(getErrorText).filter(Boolean)\n}\n","import { Question, type IElement } from 'survey-core'\n\nexport function setQuestionValue(element: IElement, value: unknown) {\n if (element instanceof Question) {\n const q = element\n const survey = q.survey\n\n if (survey && typeof (survey as unknown as { setValue: unknown }).setValue === 'function' && q.name) {\n (survey as unknown as { setValue: (n: string, v: unknown) => void }).setValue(q.name, value)\n return\n }\n }\n\n Reflect.set(element as object, 'value', value)\n}\n","import { useState } from 'react'\nimport type { Question } from 'survey-core'\nimport * as Label from '@radix-ui/react-label'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function TextElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n const [focused, setFocused] = useState(false)\n\n return (\n <BaseElement element={q} opts={opts}>\n <Label.Root className=\"msj__label\" htmlFor={q.id}>\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </Label.Root>\n <motion.div\n className=\"msj__inputWrap\"\n initial={false}\n animate={focused ? { scale: 1.01 } : { scale: 1 }}\n transition={{ type: 'spring', stiffness: 400, damping: 30 }}\n >\n <input\n id={q.id}\n className=\"msj__input\"\n value={(q.value ?? '') as string}\n onChange={(e) => setQuestionValue(q, e.currentTarget.value)}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n />\n </motion.div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { useState } from 'react'\nimport type { Question } from 'survey-core'\nimport * as Label from '@radix-ui/react-label'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function CommentElement({\n question,\n opts,\n}: {\n question: Question\n opts: RenderOptions\n}) {\n const q = question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n const [focused, setFocused] = useState(false)\n\n const raw = String(q.value ?? '')\n\n const maxWords =\n (q as unknown as { maxWordCount?: number }).maxWordCount ??\n (q as unknown as { maxWords?: number }).maxWords ??\n 200\n\n const words = raw.trim() ? raw.trim().split(/\\s+/).filter(Boolean) : []\n const wordCount = words.length\n const nearLimit = wordCount >= maxWords * 0.9\n\n return (\n <BaseElement element={q} opts={opts}>\n <Label.Root className=\"msj__label\" htmlFor={q.id}>\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </Label.Root>\n <motion.div\n className=\"msj__textareaWrap\"\n initial={false}\n animate={focused ? { scale: 1.005 } : { scale: 1 }}\n transition={{ type: 'spring', stiffness: 400, damping: 30 }}\n >\n <textarea\n id={q.id}\n className=\"msj__textarea\"\n value={raw}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onChange={(e) => {\n const nextRaw = e.currentTarget.value\n const nextWords = nextRaw.trim()\n ? nextRaw.trim().split(/\\s+/).filter(Boolean)\n : []\n if (nextWords.length <= maxWords) {\n setQuestionValue(q, nextRaw)\n return\n }\n setQuestionValue(q, `${nextWords.slice(0, maxWords).join(' ')} `)\n }}\n />\n <motion.div\n className=\"msj__counter\"\n initial={false}\n animate={nearLimit ? { scale: 1.05, color: '#dc2626' } : { scale: 1, color: '#64748b' }}\n transition={{ type: 'spring', stiffness: 400, damping: 25 }}\n >\n {opts.t('wordCount', { count: wordCount, max: maxWords })}\n </motion.div>\n </motion.div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport * as RadioGroup from '@radix-ui/react-radio-group'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function BooleanElement({\n question,\n opts,\n}: {\n question: Question\n opts: RenderOptions\n}) {\n const q = question as unknown as {\n labelTrue?: string\n labelFalse?: string\n valueTrue?: unknown\n valueFalse?: unknown\n swapOrder?: boolean\n } & Question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n \n const labelTrue = q.labelTrue || \"Yes\"\n const labelFalse = q.labelFalse || \"No\"\n const valueTrue = q.valueTrue ?? true\n const valueFalse = q.valueFalse ?? false\n const swapOrder = q.swapOrder === true\n\n // Determine current selection state\n let currentValue: string | undefined\n if (q.value === valueTrue) currentValue = 'true'\n else if (q.value === valueFalse) currentValue = 'false'\n else if (q.value === true) currentValue = 'true'\n else if (q.value === false) currentValue = 'false'\n\n const handleValueChange = (val: string) => {\n const newValue = val === 'true' ? valueTrue : valueFalse\n setQuestionValue(q, newValue)\n }\n\n // Calculate handle position and width\n // Default: False (Left), True (Right)\n // Swap: True (Left), False (Right)\n \n let position = '50%'\n let x = '-50%'\n let width = '40px' // Small circle/pill when unchosen\n \n if (currentValue === 'true') {\n width = 'calc(50% - 6px)'\n if (swapOrder) {\n // True is Left\n position = '0%'\n x = '4px'\n } else {\n // True is Right\n position = '100%'\n x = 'calc(-100% - 4px)'\n }\n } else if (currentValue === 'false') {\n width = 'calc(50% - 6px)'\n if (swapOrder) {\n // False is Right\n position = '100%'\n x = 'calc(-100% - 4px)'\n } else {\n // False is Left\n position = '0%'\n x = '4px'\n }\n }\n\n const leftLabel = swapOrder ? labelTrue : labelFalse\n const rightLabel = swapOrder ? labelFalse : labelTrue\n const leftValue = swapOrder ? 'true' : 'false'\n const rightValue = swapOrder ? 'false' : 'true'\n\n return (\n <BaseElement element={q} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n \n <RadioGroup.Root\n className=\"msj__toggleSwitch\"\n value={currentValue}\n onValueChange={handleValueChange}\n >\n <div className=\"msj__toggleTrack\" aria-hidden=\"true\">\n <div className=\"msj__toggleTrackLabel msj__toggleTrackLabel--left\">{leftLabel}</div>\n <div className=\"msj__toggleTrackLabel msj__toggleTrackLabel--right\">{rightLabel}</div>\n \n <motion.div \n className={`msj__toggleHandle ${currentValue === 'true' ? 'msj__toggleHandle--true' : currentValue === 'false' ? 'msj__toggleHandle--false' : ''}`}\n initial={false}\n animate={{ left: position, x, width }}\n transition={{ type: 'spring', stiffness: 500, damping: 30 }}\n >\n <motion.span\n key={currentValue || 'empty'}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.8 }}\n >\n {currentValue === 'true' ? labelTrue : currentValue === 'false' ? labelFalse : ''}\n </motion.span>\n </motion.div>\n </div>\n\n <div className=\"msj__toggleInputs\">\n <RadioGroup.Item value={leftValue} className=\"msj__toggleInput\" aria-label={leftLabel} />\n <RadioGroup.Item value={rightValue} className=\"msj__toggleInput\" aria-label={rightLabel} />\n </div>\n </RadioGroup.Root>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { motion } from 'motion/react'\n\nexport function Checkmark({\n active,\n duration,\n size = 14,\n}: {\n active: boolean\n duration: number\n size?: number\n}) {\n return (\n <motion.svg\n className=\"msj__checkmark\"\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden\n >\n <motion.path\n d=\"M3.2 8.4 6.6 11.8 12.8 4.8\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n pathLength={1}\n initial={false}\n animate={active ? { pathLength: 1, opacity: 1 } : { pathLength: 0, opacity: 0 }}\n transition={{ duration }}\n />\n </motion.svg>\n )\n}\n","import type { ChoiceItem, Question } from 'survey-core'\nimport * as Checkbox from '@radix-ui/react-checkbox'\nimport * as RadioGroup from '@radix-ui/react-radio-group'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Checkmark } from '../../ui/Checkmark'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function ChoiceElement({\n question,\n isMulti,\n opts,\n}: {\n question: Question\n isMulti: boolean\n opts: RenderOptions\n}) {\n const q = question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n const choices =\n (q as unknown as { visibleChoices?: ChoiceItem[] }).visibleChoices ?? []\n\n if (!isMulti) {\n const currentStr = q.value == null ? '' : String(q.value)\n\n return (\n <BaseElement element={q} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n <RadioGroup.Root\n className=\"msj__choiceList\"\n value={currentStr}\n onValueChange={(v) => {\n const found = choices.find((c) => String(c.value) === v)\n setQuestionValue(q, found ? found.value : undefined)\n }}\n >\n {choices.map((c) => {\n const valueStr = String(c.value)\n const text = c.text ?? valueStr\n const selected = currentStr === valueStr\n const bgLayoutId = `msj-radio-bg-${q.id}`\n\n return (\n <RadioGroup.Item key={valueStr} value={valueStr} asChild>\n <motion.button\n type=\"button\"\n className=\"msj__choiceOption\"\n layout\n transition={{ duration: opts.duration }}\n >\n {selected ? (\n <motion.span\n className=\"msj__choiceOptionBg\"\n layoutId={bgLayoutId}\n transition={{ type: 'spring', stiffness: 700, damping: 40 }}\n />\n ) : null}\n <span className=\"msj__choiceOptionContent\">\n <span className=\"msj__radioItem\">\n <RadioGroup.Indicator forceMount asChild>\n <motion.span\n className=\"msj__radioIndicator\"\n initial={false}\n animate={selected ? { scale: 1, opacity: 1 } : { scale: 0, opacity: 0 }}\n transition={\n selected\n ? { type: 'spring', stiffness: 900, damping: 45 }\n : { duration: Math.max(0.12, opts.duration * 0.4) }\n }\n />\n </RadioGroup.Indicator>\n\n {selected ? (\n <motion.span\n key={`${valueStr}-pulse`}\n className=\"msj__radioPulse\"\n initial={{ scale: 0.8, opacity: 0.28 }}\n animate={{ scale: 2.2, opacity: 0 }}\n transition={{ duration: Math.max(0.22, opts.duration * 1.4) }}\n />\n ) : null}\n </span>\n <span>{text}</span>\n </span>\n </motion.button>\n </RadioGroup.Item>\n )\n })}\n </RadioGroup.Root>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n }\n\n const set = new Set(Array.isArray(q.value) ? q.value : [])\n\n return (\n <BaseElement element={q} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n <div className=\"msj__choiceList\">\n {choices.map((c) => {\n const value = c.value\n const valueStr = String(value)\n const text = c.text ?? valueStr\n const checked = set.has(value)\n\n return (\n <label\n key={valueStr}\n className=\"msj__choiceOption\"\n data-state={checked ? 'checked' : 'unchecked'}\n >\n <motion.span\n className=\"msj__choiceOptionBg\"\n aria-hidden\n animate={{ opacity: checked ? 1 : 0 }}\n transition={{ duration: opts.duration }}\n />\n\n <span className=\"msj__choiceOptionContent\">\n <Checkbox.Root\n className=\"msj__checkbox\"\n checked={checked}\n onCheckedChange={(v) => {\n const next = new Set(Array.isArray(q.value) ? q.value : [])\n if (v === true) next.add(value)\n else next.delete(value)\n setQuestionValue(q, Array.from(next))\n }}\n >\n <Checkbox.Indicator forceMount asChild>\n <motion.span\n className=\"msj__checkboxIndicator\"\n initial={false}\n animate={checked ? { opacity: 1, scale: 1 } : { opacity: 0, scale: 0.9 }}\n transition={{ duration: Math.max(0.12, opts.duration * 0.5) }}\n >\n <Checkmark active={checked} duration={Math.max(0.22, opts.duration * 1.2)} />\n </motion.span>\n </Checkbox.Indicator>\n </Checkbox.Root>\n <span>{text}</span>\n </span>\n </label>\n )\n })}\n </div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { useState } from 'react'\nimport type { ChoiceItem, Question } from 'survey-core'\nimport * as Select from '@radix-ui/react-select'\nimport { AnimatePresence, motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function DropdownElement({\n question,\n opts,\n}: {\n question: Question\n opts: RenderOptions\n}) {\n const q = question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n const choices =\n (q as unknown as { visibleChoices?: ChoiceItem[] }).visibleChoices ?? []\n\n const EMPTY = '__msj-empty__'\n const currentStr = q.value == null ? EMPTY : String(q.value)\n\n const selectedChoice = choices.find((c) => String(c.value) === currentStr)\n const displayText =\n currentStr === EMPTY ? opts.t('selectPlaceholder') : (selectedChoice?.text ?? currentStr)\n\n const [open, setOpen] = useState(false)\n\n return (\n <BaseElement element={q} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <Select.Root\n open={open}\n onOpenChange={setOpen}\n value={currentStr}\n onValueChange={(v) => {\n if (v === EMPTY) {\n setQuestionValue(q, undefined)\n return\n }\n const found = choices.find((c) => String(c.value) === v)\n setQuestionValue(q, found ? found.value : v)\n }}\n >\n <Select.Trigger className=\"msj__selectTrigger\" aria-label={title}>\n <Select.Value className={currentStr === EMPTY ? 'msj__selectValue msj__selectValue--placeholder' : 'msj__selectValue'}>\n {displayText}\n </Select.Value>\n <Select.Icon className=\"msj__selectIcon\">▾</Select.Icon>\n </Select.Trigger>\n\n <Select.Portal container={opts.portalContainer ?? undefined}>\n <AnimatePresence>\n {open ? (\n <Select.Content className=\"msj__selectContent\" position=\"popper\" asChild>\n <motion.div\n initial={{ opacity: 0, y: -6, scale: 0.98 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: -6, scale: 0.98 }}\n transition={{ type: 'spring', stiffness: 650, damping: 40 }}\n >\n <Select.Viewport className=\"msj__selectViewport\">\n <Select.Item value={EMPTY} className=\"msj__selectItem\">\n <Select.ItemText>{opts.t('selectPlaceholder')}</Select.ItemText>\n </Select.Item>\n {choices.map((c) => {\n const valueStr = String(c.value)\n return (\n <Select.Item key={valueStr} value={valueStr} className=\"msj__selectItem\">\n <Select.ItemText>{c.text ?? valueStr}</Select.ItemText>\n </Select.Item>\n )\n })}\n </Select.Viewport>\n </motion.div>\n </Select.Content>\n ) : null}\n </AnimatePresence>\n </Select.Portal>\n </Select.Root>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function HtmlElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { html?: string; title?: string; name: string }\n const html = q.html ?? ''\n\n return (\n <BaseElement element={question} opts={opts}>\n {q.title ? <div className=\"msj__label\">{getQuestionTitle(question, opts)}</div> : null}\n <div className=\"msj__html\" dangerouslySetInnerHTML={{ __html: html }} />\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function ImageElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { imageLink?: string; title?: string; name: string }\n const src = q.imageLink ?? ''\n const alt = q.title ?? q.name\n\n return (\n <BaseElement element={question} opts={opts}>\n {q.title ? <div className=\"msj__label\">{getQuestionTitle(question, opts)}</div> : null}\n {src ? <img className=\"msj__image\" src={src} alt={alt} /> : null}\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function ExpressionElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { displayValue?: unknown; value?: unknown; title?: string; name: string }\n const title = getQuestionTitle(question, opts)\n const v = q.displayValue ?? q.value\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">{title}</div>\n <div className=\"msj__expression\">{v == null ? '' : String(v)}</div>\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport type { RenderOptions } from '../../ui/types'\n\nexport function EmptyElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n void question\n void opts\n return null\n}\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M16 16s-1.5-2-4-2-4 2-4 2\", key: \"epbg0q\" }],\n [\"path\", { d: \"M7.5 8 10 9\", key: \"olxxln\" }],\n [\"path\", { d: \"m14 9 2.5-1\", key: \"1j6cij\" }],\n [\"path\", { d: \"M9 10h.01\", key: \"qbtxuw\" }],\n [\"path\", { d: \"M15 10h.01\", key: \"1qmjsl\" }]\n];\nconst Angry = createLucideIcon(\"angry\", __iconNode);\n\nexport { __iconNode, Angry as default };\n//# sourceMappingURL=angry.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }],\n [\"path\", { d: \"m19 12-7 7-7-7\", key: \"1idqje\" }]\n];\nconst ArrowDown = createLucideIcon(\"arrow-down\", __iconNode);\n\nexport { __iconNode, ArrowDown as default };\n//# sourceMappingURL=arrow-down.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m5 12 7-7 7 7\", key: \"hav0vg\" }],\n [\"path\", { d: \"M12 19V5\", key: \"x0mq9r\" }]\n];\nconst ArrowUp = createLucideIcon(\"arrow-up\", __iconNode);\n\nexport { __iconNode, ArrowUp as default };\n//# sourceMappingURL=arrow-up.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M16 16s-1.5-2-4-2-4 2-4 2\", key: \"epbg0q\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Frown = createLucideIcon(\"frown\", __iconNode);\n\nexport { __iconNode, Frown as default };\n//# sourceMappingURL=frown.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"9\", cy: \"12\", r: \"1\", key: \"1vctgf\" }],\n [\"circle\", { cx: \"9\", cy: \"5\", r: \"1\", key: \"hp0tcf\" }],\n [\"circle\", { cx: \"9\", cy: \"19\", r: \"1\", key: \"fkjjf6\" }],\n [\"circle\", { cx: \"15\", cy: \"12\", r: \"1\", key: \"1tmaij\" }],\n [\"circle\", { cx: \"15\", cy: \"5\", r: \"1\", key: \"19l28e\" }],\n [\"circle\", { cx: \"15\", cy: \"19\", r: \"1\", key: \"f4zoj3\" }]\n];\nconst GripVertical = createLucideIcon(\"grip-vertical\", __iconNode);\n\nexport { __iconNode, GripVertical as default };\n//# sourceMappingURL=grip-vertical.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z\", key: \"b2q4dd\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Laugh = createLucideIcon(\"laugh\", __iconNode);\n\nexport { __iconNode, Laugh as default };\n//# sourceMappingURL=laugh.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"8\", x2: \"16\", y1: \"15\", y2: \"15\", key: \"1xb1d9\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Meh = createLucideIcon(\"meh\", __iconNode);\n\nexport { __iconNode, Meh as default };\n//# sourceMappingURL=meh.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n];\nconst Plus = createLucideIcon(\"plus\", __iconNode);\n\nexport { __iconNode, Plus as default };\n//# sourceMappingURL=plus.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M8 14s1.5 2 4 2 4-2 4-2\", key: \"1y1vjs\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Smile = createLucideIcon(\"smile\", __iconNode);\n\nexport { __iconNode, Smile as default };\n//# sourceMappingURL=smile.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\",\n key: \"r04s7s\"\n }\n ]\n];\nconst Star = createLucideIcon(\"star\", __iconNode);\n\nexport { __iconNode, Star as default };\n//# sourceMappingURL=star.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import type { Question, QuestionRatingModel } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { Star, Frown, Meh, Smile, Laugh, Angry } from 'lucide-react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\nfunction StarIcon({ active }: { active: boolean }) {\n return <Star size={24} fill={active ? 'currentColor' : 'none'} strokeWidth={2} />\n}\n\nfunction SmileyIcon({ idx, total }: { idx: number; total: number }) {\n const normalized = total > 1 ? idx / (total - 1) : 0.5\n \n if (normalized < 0.2) return <Angry size={24} />\n if (normalized < 0.4) return <Frown size={24} />\n if (normalized < 0.6) return <Meh size={24} />\n if (normalized < 0.8) return <Smile size={24} />\n return <Laugh size={24} />\n}\n\nexport function RatingElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as QuestionRatingModel\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const values = q.visibleRateValues ?? []\n const current = question.value == null ? '' : String(question.value)\n const bgLayoutId = `msj-rating-bg-${question.id}`\n const rateType = q.rateType ?? 'labels'\n const scaleColorMode = q.scaleColorMode\n \n const minDescription = q.minRateDescription\n const maxDescription = q.maxRateDescription\n const displayAsExtreme = q.displayRateDescriptionsAsExtremeItems\n\n const selectedIdx = values.findIndex((iv) => String(iv.value) === current)\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n <div className=\"msj__rating\" data-type={rateType} data-color-mode={scaleColorMode}>\n {minDescription && !displayAsExtreme ? (\n <span className=\"msj__ratingDescription msj__ratingDescription--min\">{minDescription}</span>\n ) : null}\n\n {values.map((iv, idx) => {\n const valueStr = String(iv.value)\n let text = iv.text ?? valueStr\n \n if (displayAsExtreme) {\n if (idx === 0 && minDescription) text = minDescription\n if (idx === values.length - 1 && maxDescription) text = maxDescription\n }\n\n const selected = current === valueStr\n const highlighted = rateType === 'stars' && selectedIdx >= 0 ? idx <= selectedIdx : selected\n \n let style: React.CSSProperties | undefined\n if (scaleColorMode === 'colored') {\n const hue = values.length > 1 ? (idx / (values.length - 1)) * 120 : 60\n style = { '--msj-rating-color': `hsl(${hue}, 70%, 50%)` } as React.CSSProperties\n }\n\n return (\n <motion.button\n key={valueStr}\n type=\"button\"\n className=\"msj__ratingItem\"\n onClick={() => setQuestionValue(question, iv.value)}\n layout\n transition={{ duration: opts.duration }}\n aria-label={text}\n style={style}\n >\n {selected ? (\n <motion.span\n className=\"msj__ratingItemBg\"\n layoutId={bgLayoutId}\n transition={{ type: 'spring', stiffness: 700, damping: 40 }}\n />\n ) : null}\n\n <span className=\"msj__ratingItemContent\">\n {rateType === 'stars' ? <StarIcon active={highlighted} /> : null}\n {rateType === 'smileys' ? <SmileyIcon idx={idx} total={values.length} /> : null}\n {rateType === 'labels' ? text : null}\n </span>\n </motion.button>\n )\n })}\n\n {maxDescription && !displayAsExtreme ? (\n <span className=\"msj__ratingDescription msj__ratingDescription--max\">{maxDescription}</span>\n ) : null}\n </div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport * as Label from '@radix-ui/react-label'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\ntype MultipleTextItem = { name: string; title?: string }\n\nexport function MultipleTextElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { items?: MultipleTextItem[]; value?: unknown }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const items = q.items ?? []\n const current = (question.value ?? {}) as Record<string, string>\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n <div className=\"msj__multipleText\">\n {items.map((it, idx) => {\n const id = `${question.id}-${it.name}`\n return (\n <motion.div\n key={it.name}\n className=\"msj__multipleTextRow\"\n initial={{ opacity: 0, x: -8 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: idx * 0.05, duration: opts.duration }}\n >\n <Label.Root className=\"msj__labelInline\" htmlFor={id}>\n {it.title ?? it.name}\n </Label.Root>\n <input\n id={id}\n className=\"msj__input\"\n value={current[it.name] ?? ''}\n onChange={(e) => {\n setQuestionValue(question, { ...current, [it.name]: e.currentTarget.value })\n }}\n />\n </motion.div>\n )\n })}\n </div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { ChoiceItem, Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\ntype ChoiceWithImage = ChoiceItem & { imageLink?: string }\n\nexport function ImagePickerElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { visibleChoices?: ChoiceWithImage[]; multiSelect?: boolean }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const choices = q.visibleChoices ?? []\n const isMulti = Boolean(q.multiSelect)\n\n const selectedSet = new Set(\n isMulti ? (Array.isArray(question.value) ? (question.value as unknown[]) : []) : [question.value]\n )\n\n const hoverBg = {\n rest: { opacity: 0 },\n hover: { opacity: 1 },\n }\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__imagePicker\">\n {choices.map((c) => {\n const valueStr = String(c.value)\n const selected = selectedSet.has(c.value)\n const bgLayoutId = `msj-imagePicker-bg-${question.id}`\n\n return (\n <motion.button\n key={valueStr}\n type=\"button\"\n className={selected ? 'msj__imagePickerItem msj__imagePickerItem--active' : 'msj__imagePickerItem'}\n onClick={() => {\n if (!isMulti) {\n setQuestionValue(question, c.value)\n return\n }\n const next = new Set(Array.isArray(question.value) ? (question.value as unknown[]) : [])\n if (next.has(c.value)) next.delete(c.value)\n else next.add(c.value)\n setQuestionValue(question, Array.from(next))\n }}\n layout\n initial=\"rest\"\n whileHover={selected ? undefined : 'hover'}\n transition={{ duration: opts.duration }}\n >\n {!selected ? (\n <motion.span\n className=\"msj__imagePickerHoverBg\"\n variants={hoverBg}\n transition={{ type: 'spring', stiffness: 700, damping: 45 }}\n />\n ) : null}\n {selected ? (\n <motion.span\n className=\"msj__imagePickerItemBg\"\n layoutId={bgLayoutId}\n transition={{ type: 'spring', stiffness: 700, damping: 40 }}\n />\n ) : null}\n {c.imageLink ? <img className=\"msj__imagePickerImg\" src={c.imageLink} alt={c.text ?? valueStr} /> : null}\n {c.text ? <span className=\"msj__imagePickerLabel\">{c.text}</span> : null}\n </motion.button>\n )\n })}\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { ChoiceItem, Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function ButtonGroupElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { visibleChoices?: ChoiceItem[] }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const choices = q.visibleChoices ?? []\n const currentStr = question.value == null ? '' : String(question.value)\n const bgLayoutId = `msj-btnGroup-bg-${question.id}`\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__buttonGroup\">\n {choices.map((c) => {\n const valueStr = String(c.value)\n const selected = currentStr === valueStr\n return (\n <motion.button\n key={valueStr}\n type=\"button\"\n className={selected ? 'msj__buttonGroupItem msj__buttonGroupItem--active' : 'msj__buttonGroupItem'}\n onClick={() => setQuestionValue(question, c.value)}\n layout\n transition={{ duration: opts.duration }}\n >\n {selected ? (\n <motion.span\n className=\"msj__buttonGroupItemBg\"\n layoutId={bgLayoutId}\n transition={{ type: 'spring', stiffness: 700, damping: 40 }}\n />\n ) : null}\n <span className=\"msj__buttonGroupItemContent\">{c.text ?? valueStr}</span>\n </motion.button>\n )\n })}\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { ChoiceItem, Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function TagboxElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { visibleChoices?: ChoiceItem[] }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const choices = q.visibleChoices ?? []\n const set = new Set(Array.isArray(question.value) ? (question.value as unknown[]) : [])\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__tagbox\">\n {choices.map((c) => {\n const value = c.value\n const valueStr = String(value)\n const selected = set.has(value)\n return (\n <motion.button\n key={valueStr}\n type=\"button\"\n className={selected ? 'msj__tag msj__tag--active' : 'msj__tag'}\n onClick={() => {\n const next = new Set(Array.isArray(question.value) ? (question.value as unknown[]) : [])\n if (next.has(value)) next.delete(value)\n else next.add(value)\n setQuestionValue(question, Array.from(next))\n }}\n initial={false}\n animate={selected ? { scale: 1.02 } : { scale: 1 }}\n whileHover={{ scale: 1.04 }}\n whileTap={{ scale: 0.97 }}\n transition={{ type: 'spring', stiffness: 500, damping: 30 }}\n >\n {selected ? (\n <motion.span\n className=\"msj__tagBg\"\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ type: 'spring', stiffness: 500, damping: 35 }}\n />\n ) : null}\n <span className=\"msj__tagContent\">{c.text ?? valueStr}</span>\n </motion.button>\n )\n })}\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import React, { useRef } from 'react';\nimport { Reorder, useDragControls } from 'motion/react';\nimport { ArrowUp, ArrowDown, GripVertical, X, Plus } from 'lucide-react';\n\nexport interface RankingItemProps {\n value: string | number;\n text: string;\n index?: number;\n total?: number;\n onClick?: () => void;\n onMoveUp?: () => void;\n onMoveDown?: () => void;\n isRanked?: boolean;\n longTap?: boolean;\n enableDrag?: boolean;\n}\n\nexport const RankingItem: React.FC<RankingItemProps> = ({ \n value, \n text, \n index,\n total,\n onClick, \n onMoveUp,\n onMoveDown,\n isRanked, \n longTap,\n enableDrag = true\n}) => {\n const controls = useDragControls();\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const onPointerDown = (e: React.PointerEvent) => {\n if (longTap && !onClick) {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n \n // For long press, we need to persist the event or clone it if needed,\n // but controls.start(e) needs the original event.\n // React 17+ doesn't pool events, so 'e' is safe to use in timeout.\n \n timeoutRef.current = setTimeout(() => {\n controls.start(e);\n if (navigator.vibrate) navigator.vibrate(50);\n }, 500);\n } else if (!onClick) {\n // Immediate drag for non-longTap\n controls.start(e);\n }\n };\n\n const cancelLongPress = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onClick();\n }\n };\n\n const content = (\n <>\n <span className=\"msj__rankingLabel\" style={{ flex: 1 }}>{text}</span>\n \n <span className=\"msj__rankingControls\" style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n {/* Select to Rank Mode: Add/Remove buttons */}\n {onClick && (\n isRanked ? <X size={16} /> : <Plus size={16} />\n )}\n\n {/* Standard Ranking Mode: Arrows + Drag Handle */}\n {!onClick && (\n <>\n {onMoveUp && index !== undefined && index > 0 && (\n <button \n type=\"button\" \n className=\"msj__miniButton\" \n onClick={(e) => { e.stopPropagation(); onMoveUp(); }}\n aria-label=\"Move up\"\n >\n <ArrowUp size={16} />\n </button>\n )}\n \n {onMoveDown && index !== undefined && total !== undefined && index < total - 1 && (\n <button \n type=\"button\" \n className=\"msj__miniButton\" \n onClick={(e) => { e.stopPropagation(); onMoveDown(); }}\n aria-label=\"Move down\"\n >\n <ArrowDown size={16} />\n </button>\n )}\n\n <div \n className=\"msj__dragHandle\"\n onPointerDown={onPointerDown}\n onPointerUp={cancelLongPress}\n onPointerLeave={cancelLongPress}\n style={{ \n cursor: longTap ? 'context-menu' : 'grab', \n display: 'flex', \n alignItems: 'center',\n padding: '4px'\n }}\n >\n <GripVertical size={16} className=\"msj__muted\" />\n </div>\n </>\n )}\n </span>\n </>\n );\n\n if (!enableDrag) {\n return (\n <li\n className=\"msj__rankingItem\"\n onClick={onClick}\n onKeyDown={handleKeyDown}\n tabIndex={onClick ? 0 : undefined}\n role={onClick ? 'button' : undefined}\n aria-label={onClick ? `${isRanked ? 'Remove' : 'Add'} ${text}` : undefined}\n style={{ \n cursor: onClick ? 'pointer' : 'default',\n touchAction: 'none'\n }}\n >\n {content}\n </li>\n );\n }\n\n return (\n <Reorder.Item\n value={value}\n className=\"msj__rankingItem\"\n dragListener={false} // We always use dragControls for better control\n dragControls={controls}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n tabIndex={onClick ? 0 : undefined}\n role={onClick ? 'button' : undefined}\n aria-label={onClick ? `${isRanked ? 'Remove' : 'Add'} ${text}` : undefined}\n style={{ \n cursor: onClick ? 'pointer' : 'default',\n touchAction: 'none' // Important for drag to work reliably on mobile\n }}\n >\n {content}\n </Reorder.Item>\n );\n};\n","import type { ChoiceItem, Question } from 'survey-core'\nimport { Reorder, motion, AnimatePresence } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\nimport { RankingItem } from './RankingItem'\n\nexport function RankingElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as {\n visibleChoices?: ChoiceItem[]\n selectToRankEnabled?: boolean\n selectToRankAreasLayout?: 'horizontal' | 'vertical'\n selectToRankEmptyRankedAreaText?: string\n selectToRankEmptyUnrankedAreaText?: string\n longTap?: boolean\n } & Question\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const choices = q.visibleChoices ?? []\n\n const current = Array.isArray(question.value) ? (question.value as unknown[]) : []\n \n // Select to Rank logic\n const isSelectToRank = q.selectToRankEnabled === true\n const layout = q.selectToRankAreasLayout || 'horizontal'\n const emptyRankedText = q.selectToRankEmptyRankedAreaText || 'Drag items here to rank them'\n const emptyUnrankedText = q.selectToRankEmptyUnrankedAreaText || 'All items ranked'\n const longTap = q.longTap === true\n\n // If selectToRank, 'current' contains only ranked items.\n // If NOT selectToRank, 'current' usually contains all items (or we default to all).\n \n const all = isSelectToRank \n ? current \n : [...new Set([...current, ...choices.map((c) => c.value)])]\n\n const unranked = isSelectToRank\n ? choices.filter(c => !current.includes(c.value)).map(c => c.value)\n : []\n\n const onReorder = (newOrder: unknown[]) => {\n setQuestionValue(question, newOrder)\n }\n\n const addToRanked = (val: unknown) => {\n const next = [...current, val]\n setQuestionValue(question, next)\n }\n\n const removeFromRanked = (val: unknown) => {\n const next = current.filter(v => v !== val)\n setQuestionValue(question, next)\n }\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n {isSelectToRank ? (\n <div className={`msj__rankingContainer msj__rankingContainer--${layout}`}>\n <div className=\"msj__rankingArea\">\n <div className=\"msj__rankingAreaTitle\">Choices</div>\n {unranked.length === 0 && <div className=\"msj__rankingEmpty\">{emptyUnrankedText}</div>}\n <motion.ul className=\"msj__ranking\" layout>\n <AnimatePresence initial={false}>\n {unranked.map((v) => {\n const valueStr = String(v)\n const text = choices.find((c) => c.value === v)?.text ?? valueStr\n return (\n <motion.div key={valueStr} layout initial={{ opacity: 0, scale: 0.8 }} animate={{ opacity: 1, scale: 1 }} exit={{ opacity: 0, scale: 0.8 }}>\n <RankingItem \n value={v as string | number} \n text={text} \n onClick={() => addToRanked(v)}\n isRanked={false}\n longTap={longTap}\n enableDrag={false}\n />\n </motion.div>\n )\n })}\n </AnimatePresence>\n </motion.ul>\n </div>\n\n <div className=\"msj__rankingArea\">\n <div className=\"msj__rankingAreaTitle\">Ranked</div>\n {all.length === 0 && <div className=\"msj__rankingEmpty\">{emptyRankedText}</div>}\n <Reorder.Group axis=\"y\" values={all} onReorder={onReorder} className=\"msj__ranking\">\n <AnimatePresence initial={false}>\n {all.map((v) => {\n const valueStr = String(v)\n const text = choices.find((c) => c.value === v)?.text ?? valueStr\n return (\n <RankingItem \n key={valueStr} \n value={v as string | number} \n text={text} \n onClick={() => removeFromRanked(v)}\n isRanked={true}\n longTap={longTap}\n />\n )\n })}\n </AnimatePresence>\n </Reorder.Group>\n </div>\n </div>\n ) : (\n <Reorder.Group axis=\"y\" values={all} onReorder={onReorder} className=\"msj__ranking\">\n {all.map((v, index) => {\n const valueStr = String(v)\n const text = choices.find((c) => c.value === v)?.text ?? valueStr\n \n const moveUp = () => {\n if (index > 0) {\n const next = [...all]\n const temp = next[index]\n next[index] = next[index - 1]\n next[index - 1] = temp\n onReorder(next)\n }\n }\n\n const moveDown = () => {\n if (index < all.length - 1) {\n const next = [...all]\n const temp = next[index]\n next[index] = next[index + 1]\n next[index + 1] = temp\n onReorder(next)\n }\n }\n\n return (\n <RankingItem \n key={valueStr} \n value={v as string | number} \n text={text} \n index={index}\n total={all.length}\n onMoveUp={moveUp}\n onMoveDown={moveDown}\n longTap={longTap} \n />\n )\n })}\n </Reorder.Group>\n )}\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { useState } from 'react'\nimport type { Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\ntype SurveyFileValue = { name: string; type: string; content: string }\n\nasync function fileToBase64(file: File): Promise<SurveyFileValue> {\n const content = await new Promise<string>((resolve) => {\n const reader = new FileReader()\n reader.onload = () => resolve(String(reader.result ?? ''))\n reader.readAsDataURL(file)\n })\n return { name: file.name, type: file.type, content }\n}\n\nexport function FileElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { allowMultiple?: boolean }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const [dragOver, setDragOver] = useState(false)\n\n const handleFiles = async (files: File[]) => {\n const out = await Promise.all(files.map(fileToBase64))\n setQuestionValue(question, q.allowMultiple === true ? out : out[0] ?? undefined)\n }\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <motion.div\n className=\"msj__fileDropZone\"\n initial={false}\n animate={dragOver ? { scale: 1.02, borderColor: 'var(--msj-primary)' } : { scale: 1, borderColor: 'var(--msj-border)' }}\n transition={{ type: 'spring', stiffness: 400, damping: 25 }}\n onDragOver={(e) => {\n e.preventDefault()\n setDragOver(true)\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={async (e) => {\n e.preventDefault()\n setDragOver(false)\n const files = Array.from(e.dataTransfer.files)\n if (files.length > 0) await handleFiles(files)\n }}\n >\n <input\n className=\"msj__fileInput\"\n type=\"file\"\n multiple={q.allowMultiple === true}\n onChange={async (e) => {\n const files = Array.from(e.currentTarget.files ?? [])\n await handleFiles(files)\n }}\n />\n <span className=\"msj__fileDropText\">\n {dragOver ? 'Drop files here' : 'Click or drag files here'}\n </span>\n </motion.div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport type { Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function SignaturePadElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n\n const canvasRef = useRef<HTMLCanvasElement | null>(null)\n const drawing = useRef(false)\n const [clearKey, setClearKey] = useState(0)\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n let ctx: CanvasRenderingContext2D | null = null\n try {\n ctx = canvas.getContext('2d')\n } catch {\n return\n }\n if (!ctx) return\n\n ctx.lineWidth = 2\n ctx.lineCap = 'round'\n ctx.strokeStyle = 'rgba(15, 23, 42, 0.9)'\n\n const getPos = (e: PointerEvent) => {\n const r = canvas.getBoundingClientRect()\n const scaleX = canvas.width / r.width\n const scaleY = canvas.height / r.height\n return {\n x: (e.clientX - r.left) * scaleX,\n y: (e.clientY - r.top) * scaleY,\n }\n }\n\n const onDown = (e: PointerEvent) => {\n drawing.current = true\n try {\n canvas.setPointerCapture(e.pointerId)\n } catch {\n // ignore\n }\n const p = getPos(e)\n ctx.beginPath()\n ctx.moveTo(p.x, p.y)\n }\n\n const onMove = (e: PointerEvent) => {\n if (!drawing.current) return\n const p = getPos(e)\n ctx.lineTo(p.x, p.y)\n ctx.stroke()\n }\n\n const onUp = () => {\n if (!drawing.current) return\n drawing.current = false\n try {\n setQuestionValue(question, canvas.toDataURL('image/png'))\n } catch {\n // ignore\n }\n }\n\n canvas.addEventListener('pointerdown', onDown)\n canvas.addEventListener('pointermove', onMove)\n window.addEventListener('pointerup', onUp)\n\n return () => {\n canvas.removeEventListener('pointerdown', onDown)\n canvas.removeEventListener('pointermove', onMove)\n window.removeEventListener('pointerup', onUp)\n }\n }, [question, clearKey])\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__signaturePadWrap\">\n <motion.canvas\n key={clearKey}\n ref={canvasRef}\n className=\"msj__signaturePad\"\n width={560}\n height={160}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2 }}\n />\n <motion.button\n type=\"button\"\n className=\"msj__miniButton\"\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n onClick={() => {\n setClearKey((k) => k + 1)\n setQuestionValue(question, undefined)\n }}\n >\n Clear\n </motion.button>\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { ReactNode } from 'react'\nimport type { IElement, Question } from 'survey-core'\nimport { AnimatePresence, motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function PanelDynamicElement({\n question,\n opts,\n render,\n}: {\n question: Question\n opts: RenderOptions\n render: (el: IElement, opts: RenderOptions) => ReactNode\n}) {\n const q = question as unknown as {\n panels?: IElement[]\n addPanel?: () => void\n removePanel?: (p: IElement) => void\n panelCount?: number\n }\n\n const title = getQuestionTitle(question, opts)\n const panels = q.panels ?? []\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">{title}</div>\n\n <div className=\"msj__panelDynamic\">\n <AnimatePresence mode=\"popLayout\">\n {panels.map((p, idx) => (\n <motion.div\n key={(p as unknown as { name?: string }).name ?? idx}\n className=\"msj__panelDynamicItem\"\n initial={{ opacity: 0, y: -10, scale: 0.98 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: 10, scale: 0.98 }}\n transition={{ type: 'spring', stiffness: 500, damping: 35 }}\n >\n <div className=\"msj__panelDynamicHeader\">\n <div className=\"msj__panelDynamicTitle\">Item {idx + 1}</div>\n {q.removePanel ? (\n <motion.button\n type=\"button\"\n className=\"msj__miniButton\"\n onClick={() => q.removePanel?.(p)}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n >\n Remove\n </motion.button>\n ) : null}\n </div>\n {render(p as unknown as IElement, opts)}\n </motion.div>\n ))}\n </AnimatePresence>\n\n {q.addPanel ? (\n <motion.button\n type=\"button\"\n className=\"msj__button\"\n onClick={() => q.addPanel?.()}\n whileHover={{ scale: 1.02 }}\n whileTap={{ scale: 0.98 }}\n transition={{ type: 'spring', stiffness: 400, damping: 25 }}\n >\n Add item\n </motion.button>\n ) : null}\n </div>\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport * as RadioGroup from '@radix-ui/react-radio-group'\nimport * as Checkbox from '@radix-ui/react-checkbox'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\nimport { Checkmark } from '../../ui/Checkmark'\nimport { motion } from 'motion/react'\n\ntype MatrixRow = { value: unknown; text?: string }\n\ntype MatrixColumn = { value: unknown; text?: string }\n\nexport function MatrixElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as {\n visibleRows?: MatrixRow[]\n visibleColumns?: MatrixColumn[]\n cellType?: string\n isRequired?: boolean\n }\n\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const rows = (q as unknown as { rows?: MatrixRow[] }).rows ?? q.visibleRows ?? []\n const cols = (q as unknown as { columns?: MatrixColumn[] }).columns ?? q.visibleColumns ?? []\n\n const valueObj = (question.value ?? {}) as Record<string, unknown>\n const isMulti = q.cellType === 'checkbox'\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__matrix\" style={{ ['--msj-matrix-cols' as never]: String(cols.length) } as never}>\n <div className=\"msj__matrixHeader\" aria-hidden>\n <div className=\"msj__matrixHeaderCell msj__matrixCorner\" />\n {cols.map((c) => {\n const colKey = String(c.value)\n return (\n <div key={colKey} className=\"msj__matrixHeaderCell\">\n {c.text ?? colKey}\n </div>\n )\n })}\n </div>\n\n {rows.map((r) => {\n const rowKey = String(r.value)\n const rowText = r.text ?? rowKey\n\n return (\n <div key={rowKey} className=\"msj__matrixRow\">\n <div className=\"msj__matrixRowTitle\">{rowText}</div>\n\n {!isMulti ? (\n <RadioGroup.Root\n className=\"msj__matrixRowChoices\"\n value={valueObj[rowKey] == null ? '' : String(valueObj[rowKey])}\n onValueChange={(v) => {\n setQuestionValue(question, { ...valueObj, [rowKey]: v })\n }}\n >\n {cols.map((c) => {\n const colKey = String(c.value)\n const colText = c.text ?? colKey\n const selected = String(valueObj[rowKey] ?? '') === colKey\n return (\n <RadioGroup.Item key={`${rowKey}:${colKey}`} value={colKey} asChild>\n <button\n type=\"button\"\n className=\"msj__matrixCell\"\n aria-label={`${rowText}: ${colText}`}\n data-state={selected ? 'checked' : 'unchecked'}\n >\n <span className=\"msj__radioItem\" aria-hidden>\n <RadioGroup.Indicator forceMount asChild>\n <motion.span\n className=\"msj__radioIndicator\"\n initial={false}\n animate={selected ? { scale: 1, opacity: 1 } : { scale: 0, opacity: 0 }}\n transition={\n selected\n ? { type: 'spring', stiffness: 900, damping: 45 }\n : { duration: Math.max(0.12, opts.duration * 0.4) }\n }\n />\n </RadioGroup.Indicator>\n {selected ? (\n <motion.span\n className=\"msj__radioPulse\"\n initial={{ scale: 0.8, opacity: 0.28 }}\n animate={{ scale: 2.2, opacity: 0 }}\n transition={{ duration: Math.max(0.22, opts.duration * 1.4) }}\n />\n ) : null}\n </span>\n </button>\n </RadioGroup.Item>\n )\n })}\n </RadioGroup.Root>\n ) : (\n <div className=\"msj__matrixRowChoices\">\n {cols.map((c) => {\n const colKey = String(c.value)\n const currentArr = Array.isArray(valueObj[rowKey]) ? (valueObj[rowKey] as unknown[]) : []\n const checked = currentArr.includes(c.value)\n return (\n <label key={colKey} className=\"msj__matrixCell\" data-state={checked ? 'checked' : 'unchecked'}>\n <Checkbox.Root\n className=\"msj__checkbox\"\n checked={checked}\n onCheckedChange={(v) => {\n const nextSet = new Set(currentArr)\n if (v === true) nextSet.add(c.value)\n else nextSet.delete(c.value)\n setQuestionValue(question, { ...valueObj, [rowKey]: Array.from(nextSet) })\n }}\n >\n <Checkbox.Indicator forceMount asChild>\n <motion.span\n className=\"msj__checkboxIndicator\"\n initial={false}\n animate={checked ? { opacity: 1, scale: 1 } : { opacity: 0, scale: 0.9 }}\n transition={{ duration: Math.max(0.12, opts.duration * 0.5) }}\n >\n <Checkmark active={checked} duration={Math.max(0.22, opts.duration * 1.2)} />\n </motion.span>\n </Checkbox.Indicator>\n </Checkbox.Root>\n </label>\n )\n })}\n </div>\n )}\n </div>\n )\n })}\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function MatrixDropdownElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const title = getQuestionTitle(question, opts)\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">{title}</div>\n <div className=\"msj__unsupported\">Matrix Dropdown is not yet fully supported.</div>\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function MatrixDynamicElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const title = getQuestionTitle(question, opts)\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">{title}</div>\n <div className=\"msj__unsupported\">Matrix Dynamic is not yet fully supported.</div>\n </BaseElement>\n )\n}\n","import type { ReactNode } from 'react'\nimport type { IElement } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\n\nexport function FlowPanelElement({\n element,\n opts,\n render,\n}: {\n element: IElement\n opts: RenderOptions\n render: (el: IElement, opts: RenderOptions) => ReactNode\n}) {\n const panel = element as unknown as { title?: string; elements?: IElement[]; getType?: () => string }\n const children = panel.elements ?? []\n\n return (\n <BaseElement element={element} opts={opts}>\n {panel.title ? <div className=\"msj__label\">{panel.title}</div> : null}\n <div className=\"msj__panel\">\n {children.map((el, i) => {\n const type = typeof (el as unknown as { getType?: () => string }).getType === 'function'\n ? (el as unknown as { getType: () => string }).getType()\n : 'unknown'\n const key = (el as unknown as { name?: string }).name ?? `${type}-${i}`\n return <div key={key}>{render(el, opts)}</div>\n })}\n </div>\n </BaseElement>\n )\n}\n","import { Question, type IElement } from 'survey-core'\nimport type { RenderOptions } from '../ui/types'\nimport { TextElement } from './types/TextElement'\nimport { CommentElement } from './types/CommentElement'\nimport { BooleanElement } from './types/BooleanElement'\nimport { ChoiceElement } from './types/ChoiceElement'\nimport { DropdownElement } from './types/DropdownElement'\nimport { HtmlElement } from './types/HtmlElement'\nimport { ImageElement } from './types/ImageElement'\nimport { ExpressionElement } from './types/ExpressionElement'\nimport { EmptyElement } from './types/EmptyElement'\nimport { RatingElement } from './types/RatingElement'\nimport { MultipleTextElement } from './types/MultipleTextElement'\nimport { ImagePickerElement } from './types/ImagePickerElement'\nimport { ButtonGroupElement } from './types/ButtonGroupElement'\nimport { TagboxElement } from './types/TagboxElement'\nimport { RankingElement } from './types/RankingElement'\nimport { FileElement } from './types/FileElement'\nimport { SignaturePadElement } from './types/SignaturePadElement'\nimport { PanelDynamicElement } from './types/PanelDynamicElement'\nimport { MatrixElement } from './types/MatrixElement'\nimport { MatrixDropdownElement } from './types/MatrixDropdownElement'\nimport { MatrixDynamicElement } from './types/MatrixDynamicElement'\nimport { FlowPanelElement } from './types/FlowPanelElement'\n\nexport function renderElement(element: IElement, opts: RenderOptions) {\n const type = typeof (element as unknown as { getType?: () => string }).getType === 'function'\n ? (element as unknown as { getType: () => string }).getType()\n : 'unknown'\n\n // Panels / containers\n if (!(element instanceof Question)) {\n switch (type) {\n case 'flowpanel':\n return <FlowPanelElement element={element} opts={opts} render={renderElement} />\n case 'page':\n // page can appear as nested element in certain configurations\n return <FlowPanelElement element={element} opts={opts} render={renderElement} />\n default:\n return <FlowPanelElement element={element} opts={opts} render={renderElement} />\n }\n }\n\n const question = element\n\n switch (type) {\n case 'comment':\n return <CommentElement question={question} opts={opts} />\n\n case 'boolean':\n return <BooleanElement question={question} opts={opts} />\n\n case 'radiogroup':\n return <ChoiceElement question={question} isMulti={false} opts={opts} />\n\n case 'checkbox':\n return <ChoiceElement question={question} isMulti={true} opts={opts} />\n\n case 'dropdown':\n return <DropdownElement question={question} opts={opts} />\n\n case 'tagbox':\n return <TagboxElement question={question} opts={opts} />\n\n case 'buttongroup':\n return <ButtonGroupElement question={question} opts={opts} />\n\n case 'ranking':\n return <RankingElement question={question} opts={opts} />\n\n case 'imagepicker':\n return <ImagePickerElement question={question} opts={opts} />\n\n case 'file':\n return <FileElement question={question} opts={opts} />\n\n case 'signaturepad':\n return <SignaturePadElement question={question} opts={opts} />\n\n case 'paneldynamic':\n return <PanelDynamicElement question={question} opts={opts} render={renderElement} />\n\n case 'matrix':\n return <MatrixElement question={question} opts={opts} />\n\n case 'matrixdropdown':\n return <MatrixDropdownElement question={question} opts={opts} />\n\n case 'matrixdynamic':\n return <MatrixDynamicElement question={question} opts={opts} />\n\n case 'html':\n return <HtmlElement question={question} opts={opts} />\n\n case 'image':\n return <ImageElement question={question} opts={opts} />\n\n case 'expression':\n return <ExpressionElement question={question} opts={opts} />\n\n case 'empty':\n return <EmptyElement question={question} opts={opts} />\n\n case 'rating':\n return <RatingElement question={question} opts={opts} />\n\n case 'multipletext':\n return <MultipleTextElement question={question} opts={opts} />\n\n case 'text':\n default:\n return <TextElement question={question} opts={opts} />\n }\n}\n","import enGB from './locales/en-GB.json'\nimport enUS from './locales/en-US.json'\n\nexport type MessageKey =\n | 'back'\n | 'next'\n | 'complete'\n | 'thanksTitle'\n | 'thanksHint'\n | 'selectPlaceholder'\n | 'wordCount'\n | 'pageXofY'\n\nexport type Messages = Record<MessageKey, string>\n\nexport type Locale = 'en-US' | 'en-GB'\n\nconst LOCALES: Record<Locale, Messages> = {\n 'en-US': enUS as Messages,\n 'en-GB': enGB as Messages,\n}\n\nexport function getLocaleMessages(locale?: string): Messages {\n const key = (locale ?? 'en-US') as Locale\n return LOCALES[key] ?? LOCALES['en-US']\n}\n\nexport function createTranslator({\n locale,\n messages,\n}: {\n locale?: string\n messages?: Partial<Messages>\n}): (key: MessageKey, vars?: Record<string, string | number>) => string {\n const base = getLocaleMessages(locale)\n const dict: Messages = { ...base, ...(messages ?? {}) }\n\n return (key, vars) => {\n let s = dict[key] ?? key\n if (vars) {\n for (const [k, v] of Object.entries(vars)) {\n s = s.replaceAll(`{${k}}`, String(v))\n }\n }\n return s\n }\n}\n","import { useEffect, useMemo, useReducer, useRef, useState, type ReactNode } from 'react'\nimport { Model, Question, type IElement } from 'survey-core'\nimport { AnimatePresence, motion } from 'motion/react'\nimport { renderElement } from './elements/renderElement'\nimport { createTranslator } from './i18n/messages'\nimport type { Messages } from './i18n/messages'\nimport type { RenderOptions } from './ui/types'\n\nfunction ChevronLeftIcon() {\n return (\n <svg\n className=\"msj__navIcon\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden\n focusable=\"false\"\n >\n <path\n d=\"M10 3.5 6 8l4 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nfunction ChevronRightIcon() {\n return (\n <svg\n className=\"msj__navIcon\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden\n focusable=\"false\"\n >\n <path\n d=\"M6 3.5 10 8l-4 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport type MotionSurveyProps = {\n /** SurveyJS JSON schema. Prefer this if you don't need to manage the model instance yourself. */\n json?: ConstructorParameters<typeof Model>[0]\n /** Provide your own SurveyJS model instance (advanced use). */\n model?: Model\n /** Initial data for the survey model (applied only when `model` is not provided). */\n data?: Record<string, unknown>\n /** Called when the survey completes successfully. */\n onComplete?: (data: Record<string, unknown>, model: Model) => void\n\n /** Enables motion.dev transitions for page/content changes. Default: true */\n animate?: boolean\n /** Animation duration in milliseconds. Default: 180 */\n animationDurationMs?: number\n\n /** Built-in theme presets (CSS variables). */\n theme?: 'modern' | 'business' | 'school' | 'fashion' | 'cyber'\n\n /** Built-in locale for internal UI text. Default: en-US (also supports en-GB). */\n locale?: 'en-US' | 'en-GB'\n /** Override built-in UI text (buttons/placeholders/etc.) */\n messages?: Partial<Messages>\n\n className?: string\n}\n\nexport function MotionSurvey({\n json,\n model,\n data,\n onComplete,\n animate = true,\n animationDurationMs = 180,\n theme = 'modern',\n locale = 'en-US',\n messages,\n className,\n}: MotionSurveyProps) {\n const survey = useMemo(() => {\n if (model) return model\n\n const baseJson = (json ?? {}) as Record<string, unknown>\n const patchedJson =\n baseJson.showQuestionNumbers === undefined\n ? { ...baseJson, showQuestionNumbers: 'onPage' }\n : baseJson\n\n const m = new Model(patchedJson)\n if (data) m.data = data\n return m\n }, [model, json, data])\n\n const [, forceUpdate] = useReducer((x) => x + 1, 0)\n const [validationState, dispatchValidation] = useReducer(\n (\n state: { pageName: string | null; seq: number },\n action: { type: 'bump' | 'setPage'; pageName: string | null }\n ) => {\n if (action.type === 'setPage') return { pageName: action.pageName, seq: 0 }\n if (state.pageName !== action.pageName) return { pageName: action.pageName, seq: 1 }\n return { pageName: state.pageName, seq: state.seq + 1 }\n },\n { pageName: null, seq: 0 }\n )\n const pendingFocusQuestionName = useRef<string | null>(null)\n\n const duration = animationDurationMs / 1000\n const t = useMemo(() => createTranslator({ locale, messages }), [locale, messages])\n const [portalContainer, setPortalContainer] = useState<HTMLDivElement | null>(null)\n\n const rootClassName = [\n 'msj',\n theme ? `msj--theme-${theme}` : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n useEffect(() => {\n const rerender = () => forceUpdate()\n const onPageChanged = () => {\n dispatchValidation({ type: 'setPage', pageName: survey.currentPage?.name ?? null })\n rerender()\n }\n const handleComplete = () => {\n onComplete?.(survey.data as Record<string, unknown>, survey)\n rerender()\n }\n\n survey.onValueChanged.add(rerender)\n survey.onCurrentPageChanged.add(onPageChanged)\n survey.onComplete.add(handleComplete)\n\n return () => {\n survey.onValueChanged.remove(rerender)\n survey.onCurrentPageChanged.remove(onPageChanged)\n survey.onComplete.remove(handleComplete)\n }\n }, [survey, onComplete])\n\n useEffect(() => {\n const name = pendingFocusQuestionName.current\n if (!name) return\n pendingFocusQuestionName.current = null\n\n const esc =\n typeof window !== 'undefined' && window.CSS && typeof window.CSS.escape === 'function'\n ? window.CSS.escape\n : (s: string) => s.replaceAll('\"', '\\\\\"')\n\n const wrap = document.querySelector<HTMLElement>(`[data-msj-question=\"${esc(name)}\"]`)\n if (!wrap) return\n\n const focusEl = wrap.querySelector<HTMLElement>(\n 'input, textarea, select, button, [tabindex]:not([tabindex=\"-1\"])'\n )\n\n try {\n wrap.scrollIntoView({ behavior: 'smooth', block: 'center' })\n } catch {\n wrap.scrollIntoView()\n }\n\n focusEl?.focus({ preventScroll: true })\n })\n\n if (survey.state === 'completed') {\n return (\n <div className={rootClassName}>\n <div className=\"msj__card\">\n <h2 className=\"msj__title\">{t('thanksTitle')}</h2>\n <div className=\"msj__hint\">{t('thanksHint')}</div>\n </div>\n </div>\n )\n }\n\n const page = survey.currentPage\n const questions = (page?.questions ?? []) as Question[]\n const elements =\n ((page as unknown as { elements?: IElement[] })?.elements ?? (questions as unknown as IElement[])) as IElement[]\n const validationSeq = validationState.pageName === (page?.name ?? null) ? validationState.seq : 0\n\n const showPageTitles = (survey as unknown as { showPageTitles?: boolean }).showPageTitles !== false\n const showPageNumbers = (survey as unknown as { showPageNumbers?: boolean }).showPageNumbers === true\n const rawShowQuestionNumbers = (survey as unknown as { showQuestionNumbers?: boolean | string })\n .showQuestionNumbers\n\n const showQuestionNumbers: 'off' | 'on' | 'onPage' =\n rawShowQuestionNumbers === true\n ? 'on'\n : rawShowQuestionNumbers === false\n ? 'off'\n : rawShowQuestionNumbers === 'off' || rawShowQuestionNumbers === 'on' || rawShowQuestionNumbers === 'onPage'\n ? rawShowQuestionNumbers\n : 'onPage'\n\n const navLocation =\n ((survey as unknown as { navigationButtonsLocation?: string }).navigationButtonsLocation as\n | 'top'\n | 'bottom'\n | 'topBottom'\n | undefined) ?? 'bottom'\n\n const globalShowNav =\n (survey as unknown as { showNavigationButtons?: boolean }).showNavigationButtons !== false\n\n const pageNavVisibility =\n (page as unknown as { navigationButtonsVisibility?: string })?.navigationButtonsVisibility ??\n 'inherit'\n\n const showNav =\n pageNavVisibility === 'hide'\n ? false\n : pageNavVisibility === 'show'\n ? true\n : globalShowNav\n\n const showPrevGlobal = (survey as unknown as { showPrevButton?: boolean }).showPrevButton !== false\n const showPrev = showNav && showPrevGlobal && !survey.isFirstPage\n const showNext = showNav && !survey.isLastPage\n const showComplete = showNav && survey.isLastPage\n\n const renderNav = (position: 'top' | 'bottom') => {\n const shouldRender = navLocation === 'topBottom' || navLocation === position\n if (!shouldRender) return null\n\n return (\n <div className={position === 'top' ? 'msj__nav msj__nav--top' : 'msj__nav'}>\n <div className=\"msj__navSlot msj__navSlot--left\">\n <AnimatePresence initial={false}>\n {showPrev ? (\n <motion.button\n key=\"prev\"\n type=\"button\"\n className=\"msj__button msj__button--nav\"\n onClick={() => {\n survey.prevPage()\n forceUpdate()\n }}\n initial={animate ? { opacity: 0, x: -6 } : false}\n animate={animate ? { opacity: 1, x: 0 } : undefined}\n exit={animate ? { opacity: 0, x: -6 } : undefined}\n transition={{ duration }}\n whileHover={animate ? { x: -2 } : undefined}\n whileTap={animate ? { scale: 0.98 } : undefined}\n >\n <ChevronLeftIcon />\n {t('back')}\n </motion.button>\n ) : null}\n </AnimatePresence>\n </div>\n\n <div className=\"msj__navSlot msj__navSlot--center\">\n <AnimatePresence initial={false}>\n {showComplete ? (\n <motion.button\n key=\"complete\"\n type=\"button\"\n className=\"msj__button msj__button--primary msj__button--complete\"\n onClick={() => {\n let ok = false\n try {\n ok = survey.validateCurrentPage()\n } catch {\n ok = false\n }\n\n if (!ok) {\n const firstInvalid = questions.find((q) => q.hasErrors())\n pendingFocusQuestionName.current = firstInvalid?.name ?? null\n dispatchValidation({ type: 'bump', pageName: page?.name ?? null })\n forceUpdate()\n return\n }\n\n survey.tryComplete()\n forceUpdate()\n }}\n initial={animate ? { opacity: 0, y: 6, scale: 0.98 } : false}\n animate={animate ? { opacity: 1, y: 0, scale: 1 } : undefined}\n exit={animate ? { opacity: 0, y: 6, scale: 0.98 } : undefined}\n transition={{\n duration,\n x: { type: 'tween', duration: 0.32, ease: 'easeInOut' },\n rotate: { type: 'tween', duration: 0.32, ease: 'easeInOut' },\n }}\n whileHover={\n animate\n ? {\n x: [0, -2, 2, -2, 0],\n rotate: [0, -1.2, 1.2, -1.2, 0],\n }\n : undefined\n }\n whileTap={animate ? { scale: 0.98 } : undefined}\n >\n {t('complete')}\n </motion.button>\n ) : null}\n </AnimatePresence>\n </div>\n\n <div className=\"msj__navSlot msj__navSlot--right\">\n <AnimatePresence initial={false}>\n {showNext ? (\n <motion.button\n key=\"next\"\n type=\"button\"\n className=\"msj__button msj__button--primary msj__button--navPrimary\"\n onClick={() => {\n let ok = false\n try {\n ok = survey.validateCurrentPage()\n } catch {\n ok = false\n }\n\n if (!ok) {\n const firstInvalid = questions.find((q) => q.hasErrors())\n pendingFocusQuestionName.current = firstInvalid?.name ?? null\n dispatchValidation({ type: 'bump', pageName: page?.name ?? null })\n forceUpdate()\n return\n }\n\n survey.nextPage()\n forceUpdate()\n }}\n initial={animate ? { opacity: 0, x: 6 } : false}\n animate={animate ? { opacity: 1, x: 0 } : undefined}\n exit={animate ? { opacity: 0, x: 6 } : undefined}\n transition={{ duration }}\n whileHover={animate ? { x: 2 } : undefined}\n whileTap={animate ? { scale: 0.98 } : undefined}\n >\n {t('next')}\n <ChevronRightIcon />\n </motion.button>\n ) : null}\n </AnimatePresence>\n </div>\n </div>\n )\n }\n\n return (\n <div className={rootClassName} ref={setPortalContainer}>\n <div className=\"msj__card\">\n {survey.title ? <h2 className=\"msj__title\">{survey.title}</h2> : null}\n\n {renderNav('top')}\n\n <AnimatePresence mode=\"wait\" initial={false}>\n <motion.div\n key={page?.name ?? 'page'}\n initial={animate ? { opacity: 0, y: 8 } : false}\n animate={animate ? { opacity: 1, y: 0 } : undefined}\n exit={animate ? { opacity: 0, y: -8 } : undefined}\n transition={{ duration }}\n >\n {showPageTitles || showPageNumbers ? (\n <div className=\"msj__pageHeader\">\n {showPageTitles && page?.title ? (\n <div className=\"msj__pageTitle\">{page.title}</div>\n ) : null}\n {showPageNumbers ? (\n <div className=\"msj__pageNumber\">\n {t('pageXofY', {\n current: (survey.currentPageNo ?? 0) + 1,\n total: survey.pages?.length ?? 0,\n })}\n </div>\n ) : null}\n </div>\n ) : null}\n\n {(() => {\n const globalStartIndex = (survey.pages ?? [])\n .slice(0, survey.currentPageNo ?? 0)\n .reduce((sum, p) => sum + ((p.questions ?? []) as Question[]).length, 0)\n\n const rendered = elements.reduce(\n (acc, el, i) => {\n const type =\n typeof (el as unknown as { getType?: () => string }).getType === 'function'\n ? (el as unknown as { getType: () => string }).getType()\n : 'unknown'\n\n const countForNumbering =\n el instanceof Question &&\n type !== 'html' &&\n type !== 'image' &&\n type !== 'expression' &&\n type !== 'empty'\n\n const localIndex = countForNumbering ? acc.pageQuestionIndex : -1\n const globalIndex = countForNumbering ? acc.globalQuestionIndex : -1\n\n const key = (el as unknown as { name?: string }).name ?? `${type}-${i}`\n\n return {\n items: [\n ...acc.items,\n <div key={key}>\n {renderElement(\n el,\n {\n animate,\n duration,\n t,\n validationSeq,\n questionIndex: localIndex,\n globalQuestionIndex: globalIndex,\n showQuestionNumbers,\n portalContainer,\n } satisfies RenderOptions\n )}\n </div>,\n ],\n pageQuestionIndex: countForNumbering ? acc.pageQuestionIndex + 1 : acc.pageQuestionIndex,\n globalQuestionIndex: countForNumbering ? acc.globalQuestionIndex + 1 : acc.globalQuestionIndex,\n }\n },\n {\n items: [] as ReactNode[],\n pageQuestionIndex: 0,\n globalQuestionIndex: globalStartIndex,\n }\n )\n\n return rendered.items\n })()}\n </motion.div>\n </AnimatePresence>\n\n {renderNav('bottom')}\n </div>\n </div>\n )\n}\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","BaseElement","element","opts","question","Question","invalid","controls","useAnimationControls","useEffect","elementName","jsx","motion","Errors","errors","AnimatePresence","t","getQuestionTitle","base","getErrorText","e","maybe","getQuestionErrors","setQuestionValue","q","survey","TextElement","title","focused","setFocused","useState","jsxs","Label","CommentElement","raw","maxWords","wordCount","nearLimit","nextRaw","nextWords","BooleanElement","labelTrue","labelFalse","valueTrue","valueFalse","swapOrder","currentValue","handleValueChange","val","position","x","width","leftLabel","rightLabel","leftValue","rightValue","RadioGroup","Checkmark","active","duration","size","ChoiceElement","isMulti","choices","currentStr","v","found","c","valueStr","text","selected","bgLayoutId","set","checked","Checkbox","next","DropdownElement","EMPTY","selectedChoice","displayText","open","setOpen","Select","HtmlElement","html","ImageElement","src","alt","ExpressionElement","EmptyElement","toKebabCase","string","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","classes","className","index","array","hasA11yProp","prop","defaultAttributes","Icon","forwardRef","color","strokeWidth","absoluteStrokeWidth","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","__iconNode","Angry","ArrowDown","ArrowUp","Frown","GripVertical","Laugh","Meh","Plus","Smile","Star","X","StarIcon","SmileyIcon","idx","total","normalized","RatingElement","values","current","rateType","scaleColorMode","minDescription","maxDescription","displayAsExtreme","selectedIdx","iv","highlighted","style","MultipleTextElement","items","it","id","ImagePickerElement","selectedSet","hoverBg","ButtonGroupElement","TagboxElement","RankingItem","onClick","onMoveUp","onMoveDown","isRanked","longTap","enableDrag","useDragControls","timeoutRef","useRef","onPointerDown","cancelLongPress","handleKeyDown","content","Fragment","Reorder","RankingElement","isSelectToRank","layout","emptyRankedText","emptyUnrankedText","all","unranked","onReorder","newOrder","addToRanked","removeFromRanked","moveUp","temp","moveDown","fileToBase64","file","resolve","reader","FileElement","dragOver","setDragOver","handleFiles","files","out","SignaturePadElement","canvasRef","drawing","clearKey","setClearKey","canvas","ctx","getPos","r","scaleX","scaleY","onDown","p","onMove","onUp","PanelDynamicElement","render","panels","MatrixElement","rows","cols","valueObj","colKey","rowKey","rowText","currentArr","nextSet","colText","MatrixDropdownElement","MatrixDynamicElement","FlowPanelElement","panel","el","i","renderElement","LOCALES","enUS","enGB","getLocaleMessages","locale","createTranslator","messages","dict","vars","s","ChevronLeftIcon","ChevronRightIcon","MotionSurvey","json","model","data","onComplete","animate","animationDurationMs","theme","useMemo","baseJson","patchedJson","m","Model","forceUpdate","useReducer","validationState","dispatchValidation","state","action","pendingFocusQuestionName","portalContainer","setPortalContainer","rootClassName","rerender","onPageChanged","handleComplete","esc","wrap","focusEl","page","questions","elements","validationSeq","showPageTitles","showPageNumbers","rawShowQuestionNumbers","showQuestionNumbers","navLocation","globalShowNav","pageNavVisibility","showNav","showPrevGlobal","showPrev","showNext","showComplete","renderNav","ok","firstInvalid","globalStartIndex","sum","acc","countForNumbering","localIndex","globalIndex"],"mappings":"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","x_google_ignoreList":[0,1,2,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/lib/ui/BaseElement.tsx","../src/lib/ui/Errors.tsx","../src/lib/elements/getQuestionTitle.ts","../src/lib/elements/getQuestionErrors.ts","../src/lib/elements/setQuestionValue.ts","../src/lib/elements/types/TextElement.tsx","../src/lib/elements/types/CommentElement.tsx","../src/lib/elements/types/BooleanElement.tsx","../src/lib/ui/Checkmark.tsx","../src/lib/elements/types/ChoiceElement.tsx","../src/lib/elements/types/DropdownElement.tsx","../src/lib/elements/types/HtmlElement.tsx","../src/lib/elements/types/ImageElement.tsx","../src/lib/elements/types/ExpressionElement.tsx","../src/lib/elements/types/EmptyElement.tsx","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/angry.js","../node_modules/lucide-react/dist/esm/icons/arrow-down.js","../node_modules/lucide-react/dist/esm/icons/arrow-up.js","../node_modules/lucide-react/dist/esm/icons/frown.js","../node_modules/lucide-react/dist/esm/icons/grip-vertical.js","../node_modules/lucide-react/dist/esm/icons/laugh.js","../node_modules/lucide-react/dist/esm/icons/meh.js","../node_modules/lucide-react/dist/esm/icons/plus.js","../node_modules/lucide-react/dist/esm/icons/smile.js","../node_modules/lucide-react/dist/esm/icons/star.js","../node_modules/lucide-react/dist/esm/icons/x.js","../src/lib/elements/types/RatingElement.tsx","../src/lib/elements/types/MultipleTextElement.tsx","../src/lib/elements/types/ImagePickerElement.tsx","../src/lib/elements/types/ButtonGroupElement.tsx","../src/lib/elements/types/TagboxElement.tsx","../src/lib/elements/types/RankingItem.tsx","../src/lib/elements/types/RankingElement.tsx","../src/lib/elements/types/FileElement.tsx","../src/lib/elements/types/SignaturePadElement.tsx","../src/lib/elements/types/PanelDynamicElement.tsx","../src/lib/elements/types/MatrixElement.tsx","../src/lib/elements/types/MatrixDropdownElement.tsx","../src/lib/elements/types/MatrixDynamicElement.tsx","../src/lib/elements/types/FlowPanelElement.tsx","../src/lib/elements/renderElement.tsx","../src/lib/ui/Logo.tsx","../src/lib/i18n/messages.ts","../src/lib/MotionSurvey.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { useEffect } from 'react'\nimport { Question, type IElement } from 'survey-core'\nimport { motion, useAnimationControls } from 'motion/react'\nimport type { RenderOptions } from './types'\n\nexport function BaseElement({\n element,\n opts,\n children,\n}: {\n element: IElement\n opts: RenderOptions\n children: React.ReactNode\n}) {\n const isQuestion = element instanceof Question\n const question = isQuestion ? (element as Question) : null\n\n const invalid =\n opts.validationSeq > 0 && question && typeof question.hasErrors === 'function'\n ? question.hasErrors()\n : false\n\n const controls = useAnimationControls()\n\n useEffect(() => {\n if (!opts.animate) return\n if (!invalid) return\n\n controls.start({\n x: [0, -6, 6, -4, 0],\n transition: { duration: 0.32, ease: 'easeInOut' },\n })\n }, [controls, invalid, opts.animate, opts.validationSeq])\n\n const elementName = (element as unknown as { name?: string }).name\n\n return (\n <motion.div\n className={invalid ? 'msj__question msj__question--invalid' : 'msj__question'}\n data-msj-element={elementName}\n data-msj-question={question?.name}\n initial={opts.animate ? { opacity: 0.85, y: 12 } : false}\n whileInView={opts.animate ? { opacity: 1, y: 0 } : undefined}\n viewport={{ amount: 0.25, once: true }}\n transition={{ duration: opts.duration }}\n >\n <motion.div className=\"msj__questionInner\" animate={controls}>\n {children}\n </motion.div>\n </motion.div>\n )\n}\n","import { AnimatePresence, motion } from 'motion/react'\nimport type { RenderOptions } from './types'\n\nexport function Errors({ errors, opts }: { errors: string[]; opts: RenderOptions }) {\n if (errors.length === 0) return null\n\n return (\n <AnimatePresence initial={false}>\n {errors.map((t) => (\n <motion.div\n key={t}\n className=\"msj__error\"\n layout\n initial={opts.animate ? { opacity: 0, y: -2 } : false}\n animate={opts.animate ? { opacity: 1, y: 0 } : undefined}\n exit={opts.animate ? { opacity: 0, y: -2 } : undefined}\n transition={{ duration: opts.duration * 0.75 }}\n >\n {t}\n </motion.div>\n ))}\n </AnimatePresence>\n )\n}\n","import type { IElement } from 'survey-core'\nimport type { RenderOptions } from '../ui/types'\n\nexport function getQuestionTitle(element: IElement, opts: RenderOptions): string {\n const base = ((element as unknown as { title?: string }).title ?? '') || element.name\n\n if (opts.showQuestionNumbers === 'off') return base\n\n if (opts.showQuestionNumbers === 'on' && opts.globalQuestionIndex < 0) return base\n if (opts.showQuestionNumbers === 'onPage' && opts.questionIndex < 0) return base\n\n const n = opts.showQuestionNumbers === 'on' ? opts.globalQuestionIndex + 1 : opts.questionIndex + 1\n return `${n}. ${base}`\n}\n","import type { IElement, SurveyError } from 'survey-core'\n\nfunction getErrorText(e: SurveyError): string {\n const maybe = e as unknown as { getText?: () => string; text?: string }\n return (typeof maybe.getText === 'function' ? maybe.getText() : maybe.text) ?? ''\n}\n\nexport function getQuestionErrors(element: IElement): string[] {\n const errs = (element as unknown as { errors?: SurveyError[] }).errors ?? []\n return errs.map(getErrorText).filter(Boolean)\n}\n","import { Question, type IElement } from 'survey-core'\n\nexport function setQuestionValue(element: IElement, value: unknown) {\n if (element instanceof Question) {\n const q = element\n const survey = q.survey\n\n if (survey && typeof (survey as unknown as { setValue: unknown }).setValue === 'function' && q.name) {\n (survey as unknown as { setValue: (n: string, v: unknown) => void }).setValue(q.name, value)\n return\n }\n }\n\n Reflect.set(element as object, 'value', value)\n}\n","import { useState } from 'react'\nimport type { Question } from 'survey-core'\nimport * as Label from '@radix-ui/react-label'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function TextElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n const [focused, setFocused] = useState(false)\n\n return (\n <BaseElement element={q} opts={opts}>\n <Label.Root className=\"msj__label\" htmlFor={q.id}>\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </Label.Root>\n <motion.div\n className=\"msj__inputWrap\"\n initial={false}\n animate={focused ? { scale: 1.01 } : { scale: 1 }}\n transition={{ type: 'spring', stiffness: 400, damping: 30 }}\n >\n <input\n id={q.id}\n className=\"msj__input\"\n value={(q.value ?? '') as string}\n onChange={(e) => setQuestionValue(q, e.currentTarget.value)}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n />\n </motion.div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { useState } from 'react'\nimport type { Question } from 'survey-core'\nimport * as Label from '@radix-ui/react-label'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function CommentElement({\n question,\n opts,\n}: {\n question: Question\n opts: RenderOptions\n}) {\n const q = question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n const [focused, setFocused] = useState(false)\n\n const raw = String(q.value ?? '')\n\n const maxWords =\n (q as unknown as { maxWordCount?: number }).maxWordCount ??\n (q as unknown as { maxWords?: number }).maxWords ??\n 200\n\n const words = raw.trim() ? raw.trim().split(/\\s+/).filter(Boolean) : []\n const wordCount = words.length\n const nearLimit = wordCount >= maxWords * 0.9\n\n return (\n <BaseElement element={q} opts={opts}>\n <Label.Root className=\"msj__label\" htmlFor={q.id}>\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </Label.Root>\n <motion.div\n className=\"msj__textareaWrap\"\n initial={false}\n animate={focused ? { scale: 1.005 } : { scale: 1 }}\n transition={{ type: 'spring', stiffness: 400, damping: 30 }}\n >\n <textarea\n id={q.id}\n className=\"msj__textarea\"\n value={raw}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onChange={(e) => {\n const nextRaw = e.currentTarget.value\n const nextWords = nextRaw.trim()\n ? nextRaw.trim().split(/\\s+/).filter(Boolean)\n : []\n if (nextWords.length <= maxWords) {\n setQuestionValue(q, nextRaw)\n return\n }\n setQuestionValue(q, `${nextWords.slice(0, maxWords).join(' ')} `)\n }}\n />\n <motion.div\n className=\"msj__counter\"\n initial={false}\n animate={nearLimit ? { scale: 1.05, color: '#dc2626' } : { scale: 1, color: '#64748b' }}\n transition={{ type: 'spring', stiffness: 400, damping: 25 }}\n >\n {opts.t('wordCount', { count: wordCount, max: maxWords })}\n </motion.div>\n </motion.div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport * as RadioGroup from '@radix-ui/react-radio-group'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function BooleanElement({\n question,\n opts,\n}: {\n question: Question\n opts: RenderOptions\n}) {\n const q = question as unknown as {\n labelTrue?: string\n labelFalse?: string\n valueTrue?: unknown\n valueFalse?: unknown\n swapOrder?: boolean\n } & Question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n \n const labelTrue = q.labelTrue || \"Yes\"\n const labelFalse = q.labelFalse || \"No\"\n const valueTrue = q.valueTrue ?? true\n const valueFalse = q.valueFalse ?? false\n const swapOrder = q.swapOrder === true\n\n // Determine current selection state\n let currentValue: string | undefined\n if (q.value === valueTrue) currentValue = 'true'\n else if (q.value === valueFalse) currentValue = 'false'\n else if (q.value === true) currentValue = 'true'\n else if (q.value === false) currentValue = 'false'\n\n const handleValueChange = (val: string) => {\n const newValue = val === 'true' ? valueTrue : valueFalse\n setQuestionValue(q, newValue)\n }\n\n // Calculate handle position and width\n // Default: False (Left), True (Right)\n // Swap: True (Left), False (Right)\n \n let position = '50%'\n let x = '-50%'\n let width = '40px' // Small circle/pill when unchosen\n \n if (currentValue === 'true') {\n width = 'calc(50% - 6px)'\n if (swapOrder) {\n // True is Left\n position = '0%'\n x = '4px'\n } else {\n // True is Right\n position = '100%'\n x = 'calc(-100% - 4px)'\n }\n } else if (currentValue === 'false') {\n width = 'calc(50% - 6px)'\n if (swapOrder) {\n // False is Right\n position = '100%'\n x = 'calc(-100% - 4px)'\n } else {\n // False is Left\n position = '0%'\n x = '4px'\n }\n }\n\n const leftLabel = swapOrder ? labelTrue : labelFalse\n const rightLabel = swapOrder ? labelFalse : labelTrue\n const leftValue = swapOrder ? 'true' : 'false'\n const rightValue = swapOrder ? 'false' : 'true'\n\n return (\n <BaseElement element={q} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n \n <RadioGroup.Root\n className=\"msj__toggleSwitch\"\n value={currentValue}\n onValueChange={handleValueChange}\n >\n <div className=\"msj__toggleTrack\" aria-hidden=\"true\">\n <div className=\"msj__toggleTrackLabel msj__toggleTrackLabel--left\">{leftLabel}</div>\n <div className=\"msj__toggleTrackLabel msj__toggleTrackLabel--right\">{rightLabel}</div>\n \n <motion.div \n className={`msj__toggleHandle ${currentValue === 'true' ? 'msj__toggleHandle--true' : currentValue === 'false' ? 'msj__toggleHandle--false' : ''}`}\n initial={false}\n animate={{ left: position, x, width }}\n transition={{ type: 'spring', stiffness: 500, damping: 30 }}\n >\n <motion.span\n key={currentValue || 'empty'}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.8 }}\n >\n {currentValue === 'true' ? labelTrue : currentValue === 'false' ? labelFalse : ''}\n </motion.span>\n </motion.div>\n </div>\n\n <div className=\"msj__toggleInputs\">\n <RadioGroup.Item value={leftValue} className=\"msj__toggleInput\" aria-label={leftLabel} />\n <RadioGroup.Item value={rightValue} className=\"msj__toggleInput\" aria-label={rightLabel} />\n </div>\n </RadioGroup.Root>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { motion } from 'motion/react'\n\nexport function Checkmark({\n active,\n duration,\n size = 14,\n}: {\n active: boolean\n duration: number\n size?: number\n}) {\n return (\n <motion.svg\n className=\"msj__checkmark\"\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden\n >\n <motion.path\n d=\"M3.2 8.4 6.6 11.8 12.8 4.8\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n pathLength={1}\n initial={false}\n animate={active ? { pathLength: 1, opacity: 1 } : { pathLength: 0, opacity: 0 }}\n transition={{ duration }}\n />\n </motion.svg>\n )\n}\n","import type { ChoiceItem, Question } from 'survey-core'\nimport * as Checkbox from '@radix-ui/react-checkbox'\nimport * as RadioGroup from '@radix-ui/react-radio-group'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Checkmark } from '../../ui/Checkmark'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function ChoiceElement({\n question,\n isMulti,\n opts,\n}: {\n question: Question\n isMulti: boolean\n opts: RenderOptions\n}) {\n const q = question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n const choices =\n (q as unknown as { visibleChoices?: ChoiceItem[] }).visibleChoices ?? []\n\n if (!isMulti) {\n const currentStr = q.value == null ? '' : String(q.value)\n\n return (\n <BaseElement element={q} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n <RadioGroup.Root\n className=\"msj__choiceList\"\n value={currentStr}\n onValueChange={(v) => {\n const found = choices.find((c) => String(c.value) === v)\n setQuestionValue(q, found ? found.value : undefined)\n }}\n >\n {choices.map((c) => {\n const valueStr = String(c.value)\n const text = c.text ?? valueStr\n const selected = currentStr === valueStr\n const bgLayoutId = `msj-radio-bg-${q.id}`\n\n return (\n <RadioGroup.Item key={valueStr} value={valueStr} asChild>\n <motion.button\n type=\"button\"\n className=\"msj__choiceOption\"\n layout\n transition={{ duration: opts.duration }}\n >\n {selected ? (\n <motion.span\n className=\"msj__choiceOptionBg\"\n layoutId={bgLayoutId}\n transition={{ type: 'spring', stiffness: 700, damping: 40 }}\n />\n ) : null}\n <span className=\"msj__choiceOptionContent\">\n <span className=\"msj__radioItem\">\n <RadioGroup.Indicator forceMount asChild>\n <motion.span\n className=\"msj__radioIndicator\"\n initial={false}\n animate={selected ? { scale: 1, opacity: 1 } : { scale: 0, opacity: 0 }}\n transition={\n selected\n ? { type: 'spring', stiffness: 900, damping: 45 }\n : { duration: Math.max(0.12, opts.duration * 0.4) }\n }\n />\n </RadioGroup.Indicator>\n\n {selected ? (\n <motion.span\n key={`${valueStr}-pulse`}\n className=\"msj__radioPulse\"\n initial={{ scale: 0.8, opacity: 0.28 }}\n animate={{ scale: 2.2, opacity: 0 }}\n transition={{ duration: Math.max(0.22, opts.duration * 1.4) }}\n />\n ) : null}\n </span>\n <span>{text}</span>\n </span>\n </motion.button>\n </RadioGroup.Item>\n )\n })}\n </RadioGroup.Root>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n }\n\n const set = new Set(Array.isArray(q.value) ? q.value : [])\n\n return (\n <BaseElement element={q} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n <div className=\"msj__choiceList\">\n {choices.map((c) => {\n const value = c.value\n const valueStr = String(value)\n const text = c.text ?? valueStr\n const checked = set.has(value)\n\n return (\n <label\n key={valueStr}\n className=\"msj__choiceOption\"\n data-state={checked ? 'checked' : 'unchecked'}\n >\n <motion.span\n className=\"msj__choiceOptionBg\"\n aria-hidden\n animate={{ opacity: checked ? 1 : 0 }}\n transition={{ duration: opts.duration }}\n />\n\n <span className=\"msj__choiceOptionContent\">\n <Checkbox.Root\n className=\"msj__checkbox\"\n checked={checked}\n onCheckedChange={(v) => {\n const next = new Set(Array.isArray(q.value) ? q.value : [])\n if (v === true) next.add(value)\n else next.delete(value)\n setQuestionValue(q, Array.from(next))\n }}\n >\n <Checkbox.Indicator forceMount asChild>\n <motion.span\n className=\"msj__checkboxIndicator\"\n initial={false}\n animate={checked ? { opacity: 1, scale: 1 } : { opacity: 0, scale: 0.9 }}\n transition={{ duration: Math.max(0.12, opts.duration * 0.5) }}\n >\n <Checkmark active={checked} duration={Math.max(0.22, opts.duration * 1.2)} />\n </motion.span>\n </Checkbox.Indicator>\n </Checkbox.Root>\n <span>{text}</span>\n </span>\n </label>\n )\n })}\n </div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { useState } from 'react'\nimport type { ChoiceItem, Question } from 'survey-core'\nimport * as Select from '@radix-ui/react-select'\nimport { AnimatePresence, motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport { Errors } from '../../ui/Errors'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function DropdownElement({\n question,\n opts,\n}: {\n question: Question\n opts: RenderOptions\n}) {\n const q = question\n const title = getQuestionTitle(q, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(q) : []\n const choices =\n (q as unknown as { visibleChoices?: ChoiceItem[] }).visibleChoices ?? []\n\n const EMPTY = '__msj-empty__'\n const currentStr = q.value == null ? EMPTY : String(q.value)\n\n const selectedChoice = choices.find((c) => String(c.value) === currentStr)\n const displayText =\n currentStr === EMPTY ? opts.t('selectPlaceholder') : (selectedChoice?.text ?? currentStr)\n\n const [open, setOpen] = useState(false)\n\n return (\n <BaseElement element={q} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {q.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <Select.Root\n open={open}\n onOpenChange={setOpen}\n value={currentStr}\n onValueChange={(v) => {\n if (v === EMPTY) {\n setQuestionValue(q, undefined)\n return\n }\n const found = choices.find((c) => String(c.value) === v)\n setQuestionValue(q, found ? found.value : v)\n }}\n >\n <Select.Trigger className=\"msj__selectTrigger\" aria-label={title}>\n <Select.Value className={currentStr === EMPTY ? 'msj__selectValue msj__selectValue--placeholder' : 'msj__selectValue'}>\n {displayText}\n </Select.Value>\n <Select.Icon className=\"msj__selectIcon\">▾</Select.Icon>\n </Select.Trigger>\n\n <Select.Portal container={opts.portalContainer ?? undefined}>\n <AnimatePresence>\n {open ? (\n <Select.Content className=\"msj__selectContent\" position=\"popper\" asChild>\n <motion.div\n initial={{ opacity: 0, y: -6, scale: 0.98 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: -6, scale: 0.98 }}\n transition={{ type: 'spring', stiffness: 650, damping: 40 }}\n >\n <Select.Viewport className=\"msj__selectViewport\">\n <Select.Item value={EMPTY} className=\"msj__selectItem\">\n <Select.ItemText>{opts.t('selectPlaceholder')}</Select.ItemText>\n </Select.Item>\n {choices.map((c) => {\n const valueStr = String(c.value)\n return (\n <Select.Item key={valueStr} value={valueStr} className=\"msj__selectItem\">\n <Select.ItemText>{c.text ?? valueStr}</Select.ItemText>\n </Select.Item>\n )\n })}\n </Select.Viewport>\n </motion.div>\n </Select.Content>\n ) : null}\n </AnimatePresence>\n </Select.Portal>\n </Select.Root>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function HtmlElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { html?: string; title?: string; name: string }\n const html = q.html ?? ''\n\n return (\n <BaseElement element={question} opts={opts}>\n {q.title ? <div className=\"msj__label\">{getQuestionTitle(question, opts)}</div> : null}\n <div className=\"msj__html\" dangerouslySetInnerHTML={{ __html: html }} />\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function ImageElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { imageLink?: string; title?: string; name: string }\n const src = q.imageLink ?? ''\n const alt = q.title ?? q.name\n\n return (\n <BaseElement element={question} opts={opts}>\n {q.title ? <div className=\"msj__label\">{getQuestionTitle(question, opts)}</div> : null}\n {src ? <img className=\"msj__image\" src={src} alt={alt} /> : null}\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function ExpressionElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { displayValue?: unknown; value?: unknown; title?: string; name: string }\n const title = getQuestionTitle(question, opts)\n const v = q.displayValue ?? q.value\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">{title}</div>\n <div className=\"msj__expression\">{v == null ? '' : String(v)}</div>\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport type { RenderOptions } from '../../ui/types'\n\nexport function EmptyElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n void question\n void opts\n return null\n}\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M16 16s-1.5-2-4-2-4 2-4 2\", key: \"epbg0q\" }],\n [\"path\", { d: \"M7.5 8 10 9\", key: \"olxxln\" }],\n [\"path\", { d: \"m14 9 2.5-1\", key: \"1j6cij\" }],\n [\"path\", { d: \"M9 10h.01\", key: \"qbtxuw\" }],\n [\"path\", { d: \"M15 10h.01\", key: \"1qmjsl\" }]\n];\nconst Angry = createLucideIcon(\"angry\", __iconNode);\n\nexport { __iconNode, Angry as default };\n//# sourceMappingURL=angry.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }],\n [\"path\", { d: \"m19 12-7 7-7-7\", key: \"1idqje\" }]\n];\nconst ArrowDown = createLucideIcon(\"arrow-down\", __iconNode);\n\nexport { __iconNode, ArrowDown as default };\n//# sourceMappingURL=arrow-down.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m5 12 7-7 7 7\", key: \"hav0vg\" }],\n [\"path\", { d: \"M12 19V5\", key: \"x0mq9r\" }]\n];\nconst ArrowUp = createLucideIcon(\"arrow-up\", __iconNode);\n\nexport { __iconNode, ArrowUp as default };\n//# sourceMappingURL=arrow-up.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M16 16s-1.5-2-4-2-4 2-4 2\", key: \"epbg0q\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Frown = createLucideIcon(\"frown\", __iconNode);\n\nexport { __iconNode, Frown as default };\n//# sourceMappingURL=frown.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"9\", cy: \"12\", r: \"1\", key: \"1vctgf\" }],\n [\"circle\", { cx: \"9\", cy: \"5\", r: \"1\", key: \"hp0tcf\" }],\n [\"circle\", { cx: \"9\", cy: \"19\", r: \"1\", key: \"fkjjf6\" }],\n [\"circle\", { cx: \"15\", cy: \"12\", r: \"1\", key: \"1tmaij\" }],\n [\"circle\", { cx: \"15\", cy: \"5\", r: \"1\", key: \"19l28e\" }],\n [\"circle\", { cx: \"15\", cy: \"19\", r: \"1\", key: \"f4zoj3\" }]\n];\nconst GripVertical = createLucideIcon(\"grip-vertical\", __iconNode);\n\nexport { __iconNode, GripVertical as default };\n//# sourceMappingURL=grip-vertical.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M18 13a6 6 0 0 1-6 5 6 6 0 0 1-6-5h12Z\", key: \"b2q4dd\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Laugh = createLucideIcon(\"laugh\", __iconNode);\n\nexport { __iconNode, Laugh as default };\n//# sourceMappingURL=laugh.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"8\", x2: \"16\", y1: \"15\", y2: \"15\", key: \"1xb1d9\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Meh = createLucideIcon(\"meh\", __iconNode);\n\nexport { __iconNode, Meh as default };\n//# sourceMappingURL=meh.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n];\nconst Plus = createLucideIcon(\"plus\", __iconNode);\n\nexport { __iconNode, Plus as default };\n//# sourceMappingURL=plus.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M8 14s1.5 2 4 2 4-2 4-2\", key: \"1y1vjs\" }],\n [\"line\", { x1: \"9\", x2: \"9.01\", y1: \"9\", y2: \"9\", key: \"yxxnd0\" }],\n [\"line\", { x1: \"15\", x2: \"15.01\", y1: \"9\", y2: \"9\", key: \"1p4y9e\" }]\n];\nconst Smile = createLucideIcon(\"smile\", __iconNode);\n\nexport { __iconNode, Smile as default };\n//# sourceMappingURL=smile.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\",\n key: \"r04s7s\"\n }\n ]\n];\nconst Star = createLucideIcon(\"star\", __iconNode);\n\nexport { __iconNode, Star as default };\n//# sourceMappingURL=star.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import type { Question, QuestionRatingModel } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { Star, Frown, Meh, Smile, Laugh, Angry } from 'lucide-react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\nfunction StarIcon({ active }: { active: boolean }) {\n return <Star size={24} fill={active ? 'currentColor' : 'none'} strokeWidth={2} />\n}\n\nfunction SmileyIcon({ idx, total }: { idx: number; total: number }) {\n const normalized = total > 1 ? idx / (total - 1) : 0.5\n \n if (normalized < 0.2) return <Angry size={24} />\n if (normalized < 0.4) return <Frown size={24} />\n if (normalized < 0.6) return <Meh size={24} />\n if (normalized < 0.8) return <Smile size={24} />\n return <Laugh size={24} />\n}\n\nexport function RatingElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as QuestionRatingModel\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const values = q.visibleRateValues ?? []\n const current = question.value == null ? '' : String(question.value)\n const bgLayoutId = `msj-rating-bg-${question.id}`\n const rateType = q.rateType ?? 'labels'\n const scaleColorMode = q.scaleColorMode\n \n const minDescription = q.minRateDescription\n const maxDescription = q.maxRateDescription\n const displayAsExtreme = q.displayRateDescriptionsAsExtremeItems\n\n const selectedIdx = values.findIndex((iv) => String(iv.value) === current)\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n <div className=\"msj__rating\" data-type={rateType} data-color-mode={scaleColorMode}>\n {minDescription && !displayAsExtreme ? (\n <span className=\"msj__ratingDescription msj__ratingDescription--min\">{minDescription}</span>\n ) : null}\n\n {values.map((iv, idx) => {\n const valueStr = String(iv.value)\n let text = iv.text ?? valueStr\n \n if (displayAsExtreme) {\n if (idx === 0 && minDescription) text = minDescription\n if (idx === values.length - 1 && maxDescription) text = maxDescription\n }\n\n const selected = current === valueStr\n const highlighted = rateType === 'stars' && selectedIdx >= 0 ? idx <= selectedIdx : selected\n \n let style: React.CSSProperties | undefined\n if (scaleColorMode === 'colored') {\n const hue = values.length > 1 ? (idx / (values.length - 1)) * 120 : 60\n style = { '--msj-rating-color': `hsl(${hue}, 70%, 50%)` } as React.CSSProperties\n }\n\n return (\n <motion.button\n key={valueStr}\n type=\"button\"\n className=\"msj__ratingItem\"\n onClick={() => setQuestionValue(question, iv.value)}\n layout\n transition={{ duration: opts.duration }}\n aria-label={text}\n style={style}\n >\n {selected ? (\n <motion.span\n className=\"msj__ratingItemBg\"\n layoutId={bgLayoutId}\n transition={{ type: 'spring', stiffness: 700, damping: 40 }}\n />\n ) : null}\n\n <span className=\"msj__ratingItemContent\">\n {rateType === 'stars' ? <StarIcon active={highlighted} /> : null}\n {rateType === 'smileys' ? <SmileyIcon idx={idx} total={values.length} /> : null}\n {rateType === 'labels' ? text : null}\n </span>\n </motion.button>\n )\n })}\n\n {maxDescription && !displayAsExtreme ? (\n <span className=\"msj__ratingDescription msj__ratingDescription--max\">{maxDescription}</span>\n ) : null}\n </div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport * as Label from '@radix-ui/react-label'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\ntype MultipleTextItem = { name: string; title?: string }\n\nexport function MultipleTextElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { items?: MultipleTextItem[]; value?: unknown }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const items = q.items ?? []\n const current = (question.value ?? {}) as Record<string, string>\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n <div className=\"msj__multipleText\">\n {items.map((it, idx) => {\n const id = `${question.id}-${it.name}`\n return (\n <motion.div\n key={it.name}\n className=\"msj__multipleTextRow\"\n initial={{ opacity: 0, x: -8 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: idx * 0.05, duration: opts.duration }}\n >\n <Label.Root className=\"msj__labelInline\" htmlFor={id}>\n {it.title ?? it.name}\n </Label.Root>\n <input\n id={id}\n className=\"msj__input\"\n value={current[it.name] ?? ''}\n onChange={(e) => {\n setQuestionValue(question, { ...current, [it.name]: e.currentTarget.value })\n }}\n />\n </motion.div>\n )\n })}\n </div>\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { ChoiceItem, Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\ntype ChoiceWithImage = ChoiceItem & { imageLink?: string }\n\nexport function ImagePickerElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { visibleChoices?: ChoiceWithImage[]; multiSelect?: boolean }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const choices = q.visibleChoices ?? []\n const isMulti = Boolean(q.multiSelect)\n\n const selectedSet = new Set(\n isMulti ? (Array.isArray(question.value) ? (question.value as unknown[]) : []) : [question.value]\n )\n\n const hoverBg = {\n rest: { opacity: 0 },\n hover: { opacity: 1 },\n }\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__imagePicker\">\n {choices.map((c) => {\n const valueStr = String(c.value)\n const selected = selectedSet.has(c.value)\n const bgLayoutId = `msj-imagePicker-bg-${question.id}`\n\n return (\n <motion.button\n key={valueStr}\n type=\"button\"\n className={selected ? 'msj__imagePickerItem msj__imagePickerItem--active' : 'msj__imagePickerItem'}\n onClick={() => {\n if (!isMulti) {\n setQuestionValue(question, c.value)\n return\n }\n const next = new Set(Array.isArray(question.value) ? (question.value as unknown[]) : [])\n if (next.has(c.value)) next.delete(c.value)\n else next.add(c.value)\n setQuestionValue(question, Array.from(next))\n }}\n layout\n initial=\"rest\"\n whileHover={selected ? undefined : 'hover'}\n transition={{ duration: opts.duration }}\n >\n {!selected ? (\n <motion.span\n className=\"msj__imagePickerHoverBg\"\n variants={hoverBg}\n transition={{ type: 'spring', stiffness: 700, damping: 45 }}\n />\n ) : null}\n {selected ? (\n <motion.span\n className=\"msj__imagePickerItemBg\"\n layoutId={bgLayoutId}\n transition={{ type: 'spring', stiffness: 700, damping: 40 }}\n />\n ) : null}\n {c.imageLink ? <img className=\"msj__imagePickerImg\" src={c.imageLink} alt={c.text ?? valueStr} /> : null}\n {c.text ? <span className=\"msj__imagePickerLabel\">{c.text}</span> : null}\n </motion.button>\n )\n })}\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { ChoiceItem, Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function ButtonGroupElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { visibleChoices?: ChoiceItem[] }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const choices = q.visibleChoices ?? []\n const currentStr = question.value == null ? '' : String(question.value)\n const bgLayoutId = `msj-btnGroup-bg-${question.id}`\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__buttonGroup\">\n {choices.map((c) => {\n const valueStr = String(c.value)\n const selected = currentStr === valueStr\n return (\n <motion.button\n key={valueStr}\n type=\"button\"\n className={selected ? 'msj__buttonGroupItem msj__buttonGroupItem--active' : 'msj__buttonGroupItem'}\n onClick={() => setQuestionValue(question, c.value)}\n layout\n transition={{ duration: opts.duration }}\n >\n {selected ? (\n <motion.span\n className=\"msj__buttonGroupItemBg\"\n layoutId={bgLayoutId}\n transition={{ type: 'spring', stiffness: 700, damping: 40 }}\n />\n ) : null}\n <span className=\"msj__buttonGroupItemContent\">{c.text ?? valueStr}</span>\n </motion.button>\n )\n })}\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { ChoiceItem, Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function TagboxElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { visibleChoices?: ChoiceItem[] }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const choices = q.visibleChoices ?? []\n const set = new Set(Array.isArray(question.value) ? (question.value as unknown[]) : [])\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__tagbox\">\n {choices.map((c) => {\n const value = c.value\n const valueStr = String(value)\n const selected = set.has(value)\n return (\n <motion.button\n key={valueStr}\n type=\"button\"\n className={selected ? 'msj__tag msj__tag--active' : 'msj__tag'}\n onClick={() => {\n const next = new Set(Array.isArray(question.value) ? (question.value as unknown[]) : [])\n if (next.has(value)) next.delete(value)\n else next.add(value)\n setQuestionValue(question, Array.from(next))\n }}\n initial={false}\n animate={selected ? { scale: 1.02 } : { scale: 1 }}\n whileHover={{ scale: 1.04 }}\n whileTap={{ scale: 0.97 }}\n transition={{ type: 'spring', stiffness: 500, damping: 30 }}\n >\n {selected ? (\n <motion.span\n className=\"msj__tagBg\"\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ type: 'spring', stiffness: 500, damping: 35 }}\n />\n ) : null}\n <span className=\"msj__tagContent\">{c.text ?? valueStr}</span>\n </motion.button>\n )\n })}\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import React, { useRef } from 'react';\nimport { Reorder, useDragControls } from 'motion/react';\nimport { ArrowUp, ArrowDown, GripVertical, X, Plus } from 'lucide-react';\n\nexport interface RankingItemProps {\n value: string | number;\n text: string;\n index?: number;\n total?: number;\n onClick?: () => void;\n onMoveUp?: () => void;\n onMoveDown?: () => void;\n isRanked?: boolean;\n longTap?: boolean;\n enableDrag?: boolean;\n}\n\nexport const RankingItem: React.FC<RankingItemProps> = ({ \n value, \n text, \n index,\n total,\n onClick, \n onMoveUp,\n onMoveDown,\n isRanked, \n longTap,\n enableDrag = true\n}) => {\n const controls = useDragControls();\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const onPointerDown = (e: React.PointerEvent) => {\n if (longTap && !onClick) {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n \n // For long press, we need to persist the event or clone it if needed,\n // but controls.start(e) needs the original event.\n // React 17+ doesn't pool events, so 'e' is safe to use in timeout.\n \n timeoutRef.current = setTimeout(() => {\n controls.start(e);\n if (navigator.vibrate) navigator.vibrate(50);\n }, 500);\n } else if (!onClick) {\n // Immediate drag for non-longTap\n controls.start(e);\n }\n };\n\n const cancelLongPress = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onClick();\n }\n };\n\n const content = (\n <>\n <span className=\"msj__rankingLabel\" style={{ flex: 1 }}>{text}</span>\n \n <span className=\"msj__rankingControls\" style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n {/* Select to Rank Mode: Add/Remove buttons */}\n {onClick && (\n isRanked ? <X size={16} /> : <Plus size={16} />\n )}\n\n {/* Standard Ranking Mode: Arrows + Drag Handle */}\n {!onClick && (\n <>\n {onMoveUp && index !== undefined && index > 0 && (\n <button \n type=\"button\" \n className=\"msj__miniButton\" \n onClick={(e) => { e.stopPropagation(); onMoveUp(); }}\n aria-label=\"Move up\"\n >\n <ArrowUp size={16} />\n </button>\n )}\n \n {onMoveDown && index !== undefined && total !== undefined && index < total - 1 && (\n <button \n type=\"button\" \n className=\"msj__miniButton\" \n onClick={(e) => { e.stopPropagation(); onMoveDown(); }}\n aria-label=\"Move down\"\n >\n <ArrowDown size={16} />\n </button>\n )}\n\n <div \n className=\"msj__dragHandle\"\n onPointerDown={onPointerDown}\n onPointerUp={cancelLongPress}\n onPointerLeave={cancelLongPress}\n style={{ \n cursor: longTap ? 'context-menu' : 'grab', \n display: 'flex', \n alignItems: 'center',\n padding: '4px'\n }}\n >\n <GripVertical size={16} className=\"msj__muted\" />\n </div>\n </>\n )}\n </span>\n </>\n );\n\n if (!enableDrag) {\n return (\n <li\n className=\"msj__rankingItem\"\n onClick={onClick}\n onKeyDown={handleKeyDown}\n tabIndex={onClick ? 0 : undefined}\n role={onClick ? 'button' : undefined}\n aria-label={onClick ? `${isRanked ? 'Remove' : 'Add'} ${text}` : undefined}\n style={{ \n cursor: onClick ? 'pointer' : 'default',\n touchAction: 'none'\n }}\n >\n {content}\n </li>\n );\n }\n\n return (\n <Reorder.Item\n value={value}\n className=\"msj__rankingItem\"\n dragListener={false} // We always use dragControls for better control\n dragControls={controls}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n tabIndex={onClick ? 0 : undefined}\n role={onClick ? 'button' : undefined}\n aria-label={onClick ? `${isRanked ? 'Remove' : 'Add'} ${text}` : undefined}\n style={{ \n cursor: onClick ? 'pointer' : 'default',\n touchAction: 'none' // Important for drag to work reliably on mobile\n }}\n >\n {content}\n </Reorder.Item>\n );\n};\n","import type { ChoiceItem, Question } from 'survey-core'\nimport { Reorder, motion, AnimatePresence } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\nimport { RankingItem } from './RankingItem'\n\nexport function RankingElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as {\n visibleChoices?: ChoiceItem[]\n selectToRankEnabled?: boolean\n selectToRankAreasLayout?: 'horizontal' | 'vertical'\n selectToRankEmptyRankedAreaText?: string\n selectToRankEmptyUnrankedAreaText?: string\n longTap?: boolean\n } & Question\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const choices = q.visibleChoices ?? []\n\n const current = Array.isArray(question.value) ? (question.value as unknown[]) : []\n \n // Select to Rank logic\n const isSelectToRank = q.selectToRankEnabled === true\n const layout = q.selectToRankAreasLayout || 'horizontal'\n const emptyRankedText = q.selectToRankEmptyRankedAreaText || 'Drag items here to rank them'\n const emptyUnrankedText = q.selectToRankEmptyUnrankedAreaText || 'All items ranked'\n const longTap = q.longTap === true\n\n // If selectToRank, 'current' contains only ranked items.\n // If NOT selectToRank, 'current' usually contains all items (or we default to all).\n \n const all = isSelectToRank \n ? current \n : [...new Set([...current, ...choices.map((c) => c.value)])]\n\n const unranked = isSelectToRank\n ? choices.filter(c => !current.includes(c.value)).map(c => c.value)\n : []\n\n const onReorder = (newOrder: unknown[]) => {\n setQuestionValue(question, newOrder)\n }\n\n const addToRanked = (val: unknown) => {\n const next = [...current, val]\n setQuestionValue(question, next)\n }\n\n const removeFromRanked = (val: unknown) => {\n const next = current.filter(v => v !== val)\n setQuestionValue(question, next)\n }\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n {isSelectToRank ? (\n <div className={`msj__rankingContainer msj__rankingContainer--${layout}`}>\n <div className=\"msj__rankingArea\">\n <div className=\"msj__rankingAreaTitle\">Choices</div>\n {unranked.length === 0 && <div className=\"msj__rankingEmpty\">{emptyUnrankedText}</div>}\n <motion.ul className=\"msj__ranking\" layout>\n <AnimatePresence initial={false}>\n {unranked.map((v) => {\n const valueStr = String(v)\n const text = choices.find((c) => c.value === v)?.text ?? valueStr\n return (\n <motion.div key={valueStr} layout initial={{ opacity: 0, scale: 0.8 }} animate={{ opacity: 1, scale: 1 }} exit={{ opacity: 0, scale: 0.8 }}>\n <RankingItem \n value={v as string | number} \n text={text} \n onClick={() => addToRanked(v)}\n isRanked={false}\n longTap={longTap}\n enableDrag={false}\n />\n </motion.div>\n )\n })}\n </AnimatePresence>\n </motion.ul>\n </div>\n\n <div className=\"msj__rankingArea\">\n <div className=\"msj__rankingAreaTitle\">Ranked</div>\n {all.length === 0 && <div className=\"msj__rankingEmpty\">{emptyRankedText}</div>}\n <Reorder.Group axis=\"y\" values={all} onReorder={onReorder} className=\"msj__ranking\">\n <AnimatePresence initial={false}>\n {all.map((v) => {\n const valueStr = String(v)\n const text = choices.find((c) => c.value === v)?.text ?? valueStr\n return (\n <RankingItem \n key={valueStr} \n value={v as string | number} \n text={text} \n onClick={() => removeFromRanked(v)}\n isRanked={true}\n longTap={longTap}\n />\n )\n })}\n </AnimatePresence>\n </Reorder.Group>\n </div>\n </div>\n ) : (\n <Reorder.Group axis=\"y\" values={all} onReorder={onReorder} className=\"msj__ranking\">\n {all.map((v, index) => {\n const valueStr = String(v)\n const text = choices.find((c) => c.value === v)?.text ?? valueStr\n \n const moveUp = () => {\n if (index > 0) {\n const next = [...all]\n const temp = next[index]\n next[index] = next[index - 1]\n next[index - 1] = temp\n onReorder(next)\n }\n }\n\n const moveDown = () => {\n if (index < all.length - 1) {\n const next = [...all]\n const temp = next[index]\n next[index] = next[index + 1]\n next[index + 1] = temp\n onReorder(next)\n }\n }\n\n return (\n <RankingItem \n key={valueStr} \n value={v as string | number} \n text={text} \n index={index}\n total={all.length}\n onMoveUp={moveUp}\n onMoveDown={moveDown}\n longTap={longTap} \n />\n )\n })}\n </Reorder.Group>\n )}\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { useState } from 'react'\nimport type { Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\ntype SurveyFileValue = { name: string; type: string; content: string }\n\nasync function fileToBase64(file: File): Promise<SurveyFileValue> {\n const content = await new Promise<string>((resolve) => {\n const reader = new FileReader()\n reader.onload = () => resolve(String(reader.result ?? ''))\n reader.readAsDataURL(file)\n })\n return { name: file.name, type: file.type, content }\n}\n\nexport function FileElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as { allowMultiple?: boolean }\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const [dragOver, setDragOver] = useState(false)\n\n const handleFiles = async (files: File[]) => {\n const out = await Promise.all(files.map(fileToBase64))\n setQuestionValue(question, q.allowMultiple === true ? out : out[0] ?? undefined)\n }\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <motion.div\n className=\"msj__fileDropZone\"\n initial={false}\n animate={dragOver ? { scale: 1.02, borderColor: 'var(--msj-primary)' } : { scale: 1, borderColor: 'var(--msj-border)' }}\n transition={{ type: 'spring', stiffness: 400, damping: 25 }}\n onDragOver={(e) => {\n e.preventDefault()\n setDragOver(true)\n }}\n onDragLeave={() => setDragOver(false)}\n onDrop={async (e) => {\n e.preventDefault()\n setDragOver(false)\n const files = Array.from(e.dataTransfer.files)\n if (files.length > 0) await handleFiles(files)\n }}\n >\n <input\n className=\"msj__fileInput\"\n type=\"file\"\n multiple={q.allowMultiple === true}\n onChange={async (e) => {\n const files = Array.from(e.currentTarget.files ?? [])\n await handleFiles(files)\n }}\n />\n <span className=\"msj__fileDropText\">\n {dragOver ? 'Drop files here' : 'Click or drag files here'}\n </span>\n </motion.div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport type { Question } from 'survey-core'\nimport { motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\n\nexport function SignaturePadElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n\n const canvasRef = useRef<HTMLCanvasElement | null>(null)\n const drawing = useRef(false)\n const [clearKey, setClearKey] = useState(0)\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n let ctx: CanvasRenderingContext2D | null = null\n try {\n ctx = canvas.getContext('2d')\n } catch {\n return\n }\n if (!ctx) return\n\n ctx.lineWidth = 2\n ctx.lineCap = 'round'\n ctx.strokeStyle = 'rgba(15, 23, 42, 0.9)'\n\n const getPos = (e: PointerEvent) => {\n const r = canvas.getBoundingClientRect()\n const scaleX = canvas.width / r.width\n const scaleY = canvas.height / r.height\n return {\n x: (e.clientX - r.left) * scaleX,\n y: (e.clientY - r.top) * scaleY,\n }\n }\n\n const onDown = (e: PointerEvent) => {\n drawing.current = true\n try {\n canvas.setPointerCapture(e.pointerId)\n } catch {\n // ignore\n }\n const p = getPos(e)\n ctx.beginPath()\n ctx.moveTo(p.x, p.y)\n }\n\n const onMove = (e: PointerEvent) => {\n if (!drawing.current) return\n const p = getPos(e)\n ctx.lineTo(p.x, p.y)\n ctx.stroke()\n }\n\n const onUp = () => {\n if (!drawing.current) return\n drawing.current = false\n try {\n setQuestionValue(question, canvas.toDataURL('image/png'))\n } catch {\n // ignore\n }\n }\n\n canvas.addEventListener('pointerdown', onDown)\n canvas.addEventListener('pointermove', onMove)\n window.addEventListener('pointerup', onUp)\n\n return () => {\n canvas.removeEventListener('pointerdown', onDown)\n canvas.removeEventListener('pointermove', onMove)\n window.removeEventListener('pointerup', onUp)\n }\n }, [question, clearKey])\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__signaturePadWrap\">\n <motion.canvas\n key={clearKey}\n ref={canvasRef}\n className=\"msj__signaturePad\"\n width={560}\n height={160}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2 }}\n />\n <motion.button\n type=\"button\"\n className=\"msj__miniButton\"\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n onClick={() => {\n setClearKey((k) => k + 1)\n setQuestionValue(question, undefined)\n }}\n >\n Clear\n </motion.button>\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { ReactNode } from 'react'\nimport type { IElement, Question } from 'survey-core'\nimport { AnimatePresence, motion } from 'motion/react'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function PanelDynamicElement({\n question,\n opts,\n render,\n}: {\n question: Question\n opts: RenderOptions\n render: (el: IElement, opts: RenderOptions) => ReactNode\n}) {\n const q = question as unknown as {\n panels?: IElement[]\n addPanel?: () => void\n removePanel?: (p: IElement) => void\n panelCount?: number\n }\n\n const title = getQuestionTitle(question, opts)\n const panels = q.panels ?? []\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">{title}</div>\n\n <div className=\"msj__panelDynamic\">\n <AnimatePresence mode=\"popLayout\">\n {panels.map((p, idx) => (\n <motion.div\n key={(p as unknown as { name?: string }).name ?? idx}\n className=\"msj__panelDynamicItem\"\n initial={{ opacity: 0, y: -10, scale: 0.98 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: 10, scale: 0.98 }}\n transition={{ type: 'spring', stiffness: 500, damping: 35 }}\n >\n <div className=\"msj__panelDynamicHeader\">\n <div className=\"msj__panelDynamicTitle\">Item {idx + 1}</div>\n {q.removePanel ? (\n <motion.button\n type=\"button\"\n className=\"msj__miniButton\"\n onClick={() => q.removePanel?.(p)}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n >\n Remove\n </motion.button>\n ) : null}\n </div>\n {render(p as unknown as IElement, opts)}\n </motion.div>\n ))}\n </AnimatePresence>\n\n {q.addPanel ? (\n <motion.button\n type=\"button\"\n className=\"msj__button\"\n onClick={() => q.addPanel?.()}\n whileHover={{ scale: 1.02 }}\n whileTap={{ scale: 0.98 }}\n transition={{ type: 'spring', stiffness: 400, damping: 25 }}\n >\n Add item\n </motion.button>\n ) : null}\n </div>\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport * as RadioGroup from '@radix-ui/react-radio-group'\nimport * as Checkbox from '@radix-ui/react-checkbox'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { Errors } from '../../ui/Errors'\nimport { getQuestionErrors } from '../getQuestionErrors'\nimport { getQuestionTitle } from '../getQuestionTitle'\nimport { setQuestionValue } from '../setQuestionValue'\nimport { Checkmark } from '../../ui/Checkmark'\nimport { motion } from 'motion/react'\n\ntype MatrixRow = { value: unknown; text?: string }\n\ntype MatrixColumn = { value: unknown; text?: string }\n\nexport function MatrixElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const q = question as unknown as {\n visibleRows?: MatrixRow[]\n visibleColumns?: MatrixColumn[]\n cellType?: string\n isRequired?: boolean\n }\n\n const title = getQuestionTitle(question, opts)\n const errors = opts.validationSeq > 0 ? getQuestionErrors(question) : []\n const rows = (q as unknown as { rows?: MatrixRow[] }).rows ?? q.visibleRows ?? []\n const cols = (q as unknown as { columns?: MatrixColumn[] }).columns ?? q.visibleColumns ?? []\n\n const valueObj = (question.value ?? {}) as Record<string, unknown>\n const isMulti = q.cellType === 'checkbox'\n\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">\n {title}\n {question.isRequired ? <span aria-hidden> *</span> : null}\n </div>\n\n <div className=\"msj__matrix\" style={{ ['--msj-matrix-cols' as never]: String(cols.length) } as never}>\n <div className=\"msj__matrixHeader\" aria-hidden>\n <div className=\"msj__matrixHeaderCell msj__matrixCorner\" />\n {cols.map((c) => {\n const colKey = String(c.value)\n return (\n <div key={colKey} className=\"msj__matrixHeaderCell\">\n {c.text ?? colKey}\n </div>\n )\n })}\n </div>\n\n {rows.map((r) => {\n const rowKey = String(r.value)\n const rowText = r.text ?? rowKey\n\n return (\n <div key={rowKey} className=\"msj__matrixRow\">\n <div className=\"msj__matrixRowTitle\">{rowText}</div>\n\n {!isMulti ? (\n <RadioGroup.Root\n className=\"msj__matrixRowChoices\"\n value={valueObj[rowKey] == null ? '' : String(valueObj[rowKey])}\n onValueChange={(v) => {\n setQuestionValue(question, { ...valueObj, [rowKey]: v })\n }}\n >\n {cols.map((c) => {\n const colKey = String(c.value)\n const colText = c.text ?? colKey\n const selected = String(valueObj[rowKey] ?? '') === colKey\n return (\n <RadioGroup.Item key={`${rowKey}:${colKey}`} value={colKey} asChild>\n <button\n type=\"button\"\n className=\"msj__matrixCell\"\n aria-label={`${rowText}: ${colText}`}\n data-state={selected ? 'checked' : 'unchecked'}\n >\n <span className=\"msj__radioItem\" aria-hidden>\n <RadioGroup.Indicator forceMount asChild>\n <motion.span\n className=\"msj__radioIndicator\"\n initial={false}\n animate={selected ? { scale: 1, opacity: 1 } : { scale: 0, opacity: 0 }}\n transition={\n selected\n ? { type: 'spring', stiffness: 900, damping: 45 }\n : { duration: Math.max(0.12, opts.duration * 0.4) }\n }\n />\n </RadioGroup.Indicator>\n {selected ? (\n <motion.span\n className=\"msj__radioPulse\"\n initial={{ scale: 0.8, opacity: 0.28 }}\n animate={{ scale: 2.2, opacity: 0 }}\n transition={{ duration: Math.max(0.22, opts.duration * 1.4) }}\n />\n ) : null}\n </span>\n </button>\n </RadioGroup.Item>\n )\n })}\n </RadioGroup.Root>\n ) : (\n <div className=\"msj__matrixRowChoices\">\n {cols.map((c) => {\n const colKey = String(c.value)\n const currentArr = Array.isArray(valueObj[rowKey]) ? (valueObj[rowKey] as unknown[]) : []\n const checked = currentArr.includes(c.value)\n return (\n <label key={colKey} className=\"msj__matrixCell\" data-state={checked ? 'checked' : 'unchecked'}>\n <Checkbox.Root\n className=\"msj__checkbox\"\n checked={checked}\n onCheckedChange={(v) => {\n const nextSet = new Set(currentArr)\n if (v === true) nextSet.add(c.value)\n else nextSet.delete(c.value)\n setQuestionValue(question, { ...valueObj, [rowKey]: Array.from(nextSet) })\n }}\n >\n <Checkbox.Indicator forceMount asChild>\n <motion.span\n className=\"msj__checkboxIndicator\"\n initial={false}\n animate={checked ? { opacity: 1, scale: 1 } : { opacity: 0, scale: 0.9 }}\n transition={{ duration: Math.max(0.12, opts.duration * 0.5) }}\n >\n <Checkmark active={checked} duration={Math.max(0.22, opts.duration * 1.2)} />\n </motion.span>\n </Checkbox.Indicator>\n </Checkbox.Root>\n </label>\n )\n })}\n </div>\n )}\n </div>\n )\n })}\n </div>\n\n <Errors errors={errors} opts={opts} />\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function MatrixDropdownElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const title = getQuestionTitle(question, opts)\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">{title}</div>\n <div className=\"msj__unsupported\">Matrix Dropdown is not yet fully supported.</div>\n </BaseElement>\n )\n}\n","import type { Question } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\nimport { getQuestionTitle } from '../getQuestionTitle'\n\nexport function MatrixDynamicElement({ question, opts }: { question: Question; opts: RenderOptions }) {\n const title = getQuestionTitle(question, opts)\n return (\n <BaseElement element={question} opts={opts}>\n <div className=\"msj__label\">{title}</div>\n <div className=\"msj__unsupported\">Matrix Dynamic is not yet fully supported.</div>\n </BaseElement>\n )\n}\n","import type { ReactNode } from 'react'\nimport type { IElement } from 'survey-core'\nimport { BaseElement } from '../../ui/BaseElement'\nimport type { RenderOptions } from '../../ui/types'\n\nexport function FlowPanelElement({\n element,\n opts,\n render,\n}: {\n element: IElement\n opts: RenderOptions\n render: (el: IElement, opts: RenderOptions) => ReactNode\n}) {\n const panel = element as unknown as { title?: string; elements?: IElement[]; getType?: () => string }\n const children = panel.elements ?? []\n\n return (\n <BaseElement element={element} opts={opts}>\n {panel.title ? <div className=\"msj__label\">{panel.title}</div> : null}\n <div className=\"msj__panel\">\n {children.map((el, i) => {\n const type = typeof (el as unknown as { getType?: () => string }).getType === 'function'\n ? (el as unknown as { getType: () => string }).getType()\n : 'unknown'\n const key = (el as unknown as { name?: string }).name ?? `${type}-${i}`\n return <div key={key}>{render(el, opts)}</div>\n })}\n </div>\n </BaseElement>\n )\n}\n","import { Question, type IElement } from 'survey-core'\nimport type { RenderOptions } from '../ui/types'\nimport { TextElement } from './types/TextElement'\nimport { CommentElement } from './types/CommentElement'\nimport { BooleanElement } from './types/BooleanElement'\nimport { ChoiceElement } from './types/ChoiceElement'\nimport { DropdownElement } from './types/DropdownElement'\nimport { HtmlElement } from './types/HtmlElement'\nimport { ImageElement } from './types/ImageElement'\nimport { ExpressionElement } from './types/ExpressionElement'\nimport { EmptyElement } from './types/EmptyElement'\nimport { RatingElement } from './types/RatingElement'\nimport { MultipleTextElement } from './types/MultipleTextElement'\nimport { ImagePickerElement } from './types/ImagePickerElement'\nimport { ButtonGroupElement } from './types/ButtonGroupElement'\nimport { TagboxElement } from './types/TagboxElement'\nimport { RankingElement } from './types/RankingElement'\nimport { FileElement } from './types/FileElement'\nimport { SignaturePadElement } from './types/SignaturePadElement'\nimport { PanelDynamicElement } from './types/PanelDynamicElement'\nimport { MatrixElement } from './types/MatrixElement'\nimport { MatrixDropdownElement } from './types/MatrixDropdownElement'\nimport { MatrixDynamicElement } from './types/MatrixDynamicElement'\nimport { FlowPanelElement } from './types/FlowPanelElement'\n\nexport function renderElement(element: IElement, opts: RenderOptions) {\n const type = typeof (element as unknown as { getType?: () => string }).getType === 'function'\n ? (element as unknown as { getType: () => string }).getType()\n : 'unknown'\n\n // Panels / containers\n if (!(element instanceof Question)) {\n switch (type) {\n case 'flowpanel':\n return <FlowPanelElement element={element} opts={opts} render={renderElement} />\n case 'page':\n // page can appear as nested element in certain configurations\n return <FlowPanelElement element={element} opts={opts} render={renderElement} />\n default:\n return <FlowPanelElement element={element} opts={opts} render={renderElement} />\n }\n }\n\n const question = element\n\n switch (type) {\n case 'comment':\n return <CommentElement question={question} opts={opts} />\n\n case 'boolean':\n return <BooleanElement question={question} opts={opts} />\n\n case 'radiogroup':\n return <ChoiceElement question={question} isMulti={false} opts={opts} />\n\n case 'checkbox':\n return <ChoiceElement question={question} isMulti={true} opts={opts} />\n\n case 'dropdown':\n return <DropdownElement question={question} opts={opts} />\n\n case 'tagbox':\n return <TagboxElement question={question} opts={opts} />\n\n case 'buttongroup':\n return <ButtonGroupElement question={question} opts={opts} />\n\n case 'ranking':\n return <RankingElement question={question} opts={opts} />\n\n case 'imagepicker':\n return <ImagePickerElement question={question} opts={opts} />\n\n case 'file':\n return <FileElement question={question} opts={opts} />\n\n case 'signaturepad':\n return <SignaturePadElement question={question} opts={opts} />\n\n case 'paneldynamic':\n return <PanelDynamicElement question={question} opts={opts} render={renderElement} />\n\n case 'matrix':\n return <MatrixElement question={question} opts={opts} />\n\n case 'matrixdropdown':\n return <MatrixDropdownElement question={question} opts={opts} />\n\n case 'matrixdynamic':\n return <MatrixDynamicElement question={question} opts={opts} />\n\n case 'html':\n return <HtmlElement question={question} opts={opts} />\n\n case 'image':\n return <ImageElement question={question} opts={opts} />\n\n case 'expression':\n return <ExpressionElement question={question} opts={opts} />\n\n case 'empty':\n return <EmptyElement question={question} opts={opts} />\n\n case 'rating':\n return <RatingElement question={question} opts={opts} />\n\n case 'multipletext':\n return <MultipleTextElement question={question} opts={opts} />\n\n case 'text':\n default:\n return <TextElement question={question} opts={opts} />\n }\n}\n","import type { Model } from 'survey-core'\n\nexport function Logo({ survey }: { survey: Model }) {\n const logo = (survey as unknown as { logo?: string }).logo\n if (!logo) return null\n\n const logoWidth = (survey as unknown as { logoWidth?: string | number }).logoWidth\n const logoHeight = (survey as unknown as { logoHeight?: string | number }).logoHeight\n const logoFit = (survey as unknown as { logoFit?: 'none' | 'contain' | 'cover' | 'fill' }).logoFit ?? 'contain'\n const logoPosition = (survey as unknown as { logoPosition?: 'none' | 'left' | 'right' | 'top' | 'bottom' }).logoPosition ?? 'left'\n\n if (logoPosition === 'none') return null\n\n const style: React.CSSProperties = {\n objectFit: logoFit,\n width: logoWidth ? (typeof logoWidth === 'number' ? `${logoWidth}px` : logoWidth) : undefined,\n height: logoHeight ? (typeof logoHeight === 'number' ? `${logoHeight}px` : logoHeight) : undefined,\n }\n\n return (\n <img\n src={logo}\n alt=\"Survey Logo\"\n className={`msj__logo msj__logo--${logoPosition}`}\n style={style}\n />\n )\n}\n","import enGB from './locales/en-GB.json'\nimport enUS from './locales/en-US.json'\n\nexport type MessageKey =\n | 'back'\n | 'next'\n | 'complete'\n | 'thanksTitle'\n | 'thanksHint'\n | 'selectPlaceholder'\n | 'wordCount'\n | 'pageXofY'\n\nexport type Messages = Record<MessageKey, string>\n\nexport type Locale = 'en-US' | 'en-GB'\n\nconst LOCALES: Record<Locale, Messages> = {\n 'en-US': enUS as Messages,\n 'en-GB': enGB as Messages,\n}\n\nexport function getLocaleMessages(locale?: string): Messages {\n const key = (locale ?? 'en-US') as Locale\n return LOCALES[key] ?? LOCALES['en-US']\n}\n\nexport function createTranslator({\n locale,\n messages,\n}: {\n locale?: string\n messages?: Partial<Messages>\n}): (key: MessageKey, vars?: Record<string, string | number>) => string {\n const base = getLocaleMessages(locale)\n const dict: Messages = { ...base, ...(messages ?? {}) }\n\n return (key, vars) => {\n let s = dict[key] ?? key\n if (vars) {\n for (const [k, v] of Object.entries(vars)) {\n s = s.replaceAll(`{${k}}`, String(v))\n }\n }\n return s\n }\n}\n","import { useEffect, useMemo, useReducer, useRef, useState, type ReactNode } from 'react'\nimport { Model, Question, type IElement } from 'survey-core'\nimport { AnimatePresence, motion } from 'motion/react'\nimport { renderElement } from './elements/renderElement'\nimport { Logo } from './ui/Logo'\nimport { createTranslator } from './i18n/messages'\nimport type { Messages } from './i18n/messages'\nimport type { RenderOptions } from './ui/types'\n\nfunction ChevronLeftIcon() {\n return (\n <svg\n className=\"msj__navIcon\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden\n focusable=\"false\"\n >\n <path\n d=\"M10 3.5 6 8l4 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nfunction ChevronRightIcon() {\n return (\n <svg\n className=\"msj__navIcon\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden\n focusable=\"false\"\n >\n <path\n d=\"M6 3.5 10 8l-4 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport type MotionSurveyProps = {\n /** SurveyJS JSON schema. Prefer this if you don't need to manage the model instance yourself. */\n json?: ConstructorParameters<typeof Model>[0]\n /** Provide your own SurveyJS model instance (advanced use). */\n model?: Model\n /** Initial data for the survey model (applied only when `model` is not provided). */\n data?: Record<string, unknown>\n /** Called when the survey completes successfully. */\n onComplete?: (data: Record<string, unknown>, model: Model) => void\n\n /** Enables motion.dev transitions for page/content changes. Default: true */\n animate?: boolean\n /** Animation duration in milliseconds. Default: 180 */\n animationDurationMs?: number\n\n /** Built-in theme presets (CSS variables). */\n theme?: 'modern' | 'business' | 'school' | 'fashion' | 'cyber'\n\n /** Built-in locale for internal UI text. Default: en-US (also supports en-GB). */\n locale?: 'en-US' | 'en-GB'\n /** Override built-in UI text (buttons/placeholders/etc.) */\n messages?: Partial<Messages>\n\n className?: string\n}\n\nexport function MotionSurvey({\n json,\n model,\n data,\n onComplete,\n animate = true,\n animationDurationMs = 180,\n theme = 'modern',\n locale = 'en-US',\n messages,\n className,\n}: MotionSurveyProps) {\n const survey = useMemo(() => {\n if (model) return model\n\n const baseJson = (json ?? {}) as Record<string, unknown>\n const patchedJson =\n baseJson.showQuestionNumbers === undefined\n ? { ...baseJson, showQuestionNumbers: 'onPage' }\n : baseJson\n\n const m = new Model(patchedJson)\n if (data) m.data = data\n return m\n }, [model, json, data])\n\n const [, forceUpdate] = useReducer((x) => x + 1, 0)\n const [validationState, dispatchValidation] = useReducer(\n (\n state: { pageName: string | null; seq: number },\n action: { type: 'bump' | 'setPage'; pageName: string | null }\n ) => {\n if (action.type === 'setPage') return { pageName: action.pageName, seq: 0 }\n if (state.pageName !== action.pageName) return { pageName: action.pageName, seq: 1 }\n return { pageName: state.pageName, seq: state.seq + 1 }\n },\n { pageName: null, seq: 0 }\n )\n const pendingFocusQuestionName = useRef<string | null>(null)\n\n const duration = animationDurationMs / 1000\n const t = useMemo(() => createTranslator({ locale, messages }), [locale, messages])\n const [portalContainer, setPortalContainer] = useState<HTMLDivElement | null>(null)\n\n const rootClassName = [\n 'msj',\n theme ? `msj--theme-${theme}` : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const logoPosition = (survey as unknown as { logoPosition?: string }).logoPosition ?? 'left'\n\n const bgImage = (survey as unknown as { backgroundImage?: string }).backgroundImage\n const bgFit = (survey as unknown as { backgroundImageFit?: 'auto' | 'contain' | 'cover' }).backgroundImageFit ?? 'auto'\n const bgAttachment = (survey as unknown as { backgroundImageAttachment?: 'scroll' | 'fixed' }).backgroundImageAttachment ?? 'scroll'\n const bgOpacity = (survey as unknown as { backgroundOpacity?: number }).backgroundOpacity ?? 1\n\n const bgStyle: React.CSSProperties | undefined = bgImage\n ? {\n backgroundImage: `url(${bgImage})`,\n backgroundSize: bgFit,\n backgroundAttachment: bgAttachment,\n opacity: bgOpacity,\n }\n : undefined\n\n useEffect(() => {\n const rerender = () => forceUpdate()\n const onPageChanged = () => {\n dispatchValidation({ type: 'setPage', pageName: survey.currentPage?.name ?? null })\n rerender()\n }\n const handleComplete = () => {\n onComplete?.(survey.data as Record<string, unknown>, survey)\n rerender()\n }\n\n survey.onValueChanged.add(rerender)\n survey.onCurrentPageChanged.add(onPageChanged)\n survey.onComplete.add(handleComplete)\n\n return () => {\n survey.onValueChanged.remove(rerender)\n survey.onCurrentPageChanged.remove(onPageChanged)\n survey.onComplete.remove(handleComplete)\n }\n }, [survey, onComplete])\n\n useEffect(() => {\n const name = pendingFocusQuestionName.current\n if (!name) return\n pendingFocusQuestionName.current = null\n\n const esc =\n typeof window !== 'undefined' && window.CSS && typeof window.CSS.escape === 'function'\n ? window.CSS.escape\n : (s: string) => s.replaceAll('\"', '\\\\\"')\n\n const wrap = document.querySelector<HTMLElement>(`[data-msj-question=\"${esc(name)}\"]`)\n if (!wrap) return\n\n const focusEl = wrap.querySelector<HTMLElement>(\n 'input, textarea, select, button, [tabindex]:not([tabindex=\"-1\"])'\n )\n\n try {\n wrap.scrollIntoView({ behavior: 'smooth', block: 'center' })\n } catch {\n wrap.scrollIntoView()\n }\n\n focusEl?.focus({ preventScroll: true })\n })\n\n if (survey.state === 'loading') {\n const loadingHtml = (survey as unknown as { loadingHtml?: string }).loadingHtml\n return (\n <div className={rootClassName}>\n <div className=\"msj__card\">\n {loadingHtml ? (\n <div dangerouslySetInnerHTML={{ __html: loadingHtml }} />\n ) : (\n <div className=\"msj__hint\">Loading...</div>\n )}\n </div>\n </div>\n )\n }\n\n if (survey.state === 'completed') {\n // SurveyJS processes completedHtmlOnCondition automatically into completedHtml\n const completedHtml = (survey as unknown as { completedHtml?: string }).completedHtml\n const completedBeforeHtml = (survey as unknown as { completedBeforeHtml?: string }).completedBeforeHtml\n\n return (\n <div className={rootClassName}>\n <div className=\"msj__card\">\n {completedBeforeHtml ? <div dangerouslySetInnerHTML={{ __html: completedBeforeHtml }} /> : null}\n {completedHtml ? (\n <div dangerouslySetInnerHTML={{ __html: completedHtml }} />\n ) : (\n <>\n <h2 className=\"msj__title\">{t('thanksTitle')}</h2>\n <div className=\"msj__hint\">{t('thanksHint')}</div>\n </>\n )}\n </div>\n </div>\n )\n }\n\n const page = survey.currentPage\n const questions = (page?.questions ?? []) as Question[]\n const elements =\n ((page as unknown as { elements?: IElement[] })?.elements ?? (questions as unknown as IElement[])) as IElement[]\n const validationSeq = validationState.pageName === (page?.name ?? null) ? validationState.seq : 0\n\n const showPageTitles = (survey as unknown as { showPageTitles?: boolean }).showPageTitles !== false\n const showPageNumbers = (survey as unknown as { showPageNumbers?: boolean }).showPageNumbers === true\n const rawShowQuestionNumbers = (survey as unknown as { showQuestionNumbers?: boolean | string })\n .showQuestionNumbers\n\n const showQuestionNumbers: 'off' | 'on' | 'onPage' =\n rawShowQuestionNumbers === true\n ? 'on'\n : rawShowQuestionNumbers === false\n ? 'off'\n : rawShowQuestionNumbers === 'off' || rawShowQuestionNumbers === 'on' || rawShowQuestionNumbers === 'onPage'\n ? rawShowQuestionNumbers\n : 'onPage'\n\n const navLocation =\n ((survey as unknown as { navigationButtonsLocation?: string }).navigationButtonsLocation as\n | 'top'\n | 'bottom'\n | 'topBottom'\n | undefined) ?? 'bottom'\n\n const globalShowNav =\n (survey as unknown as { showNavigationButtons?: boolean }).showNavigationButtons !== false\n\n const pageNavVisibility =\n (page as unknown as { navigationButtonsVisibility?: string })?.navigationButtonsVisibility ??\n 'inherit'\n\n const showNav =\n pageNavVisibility === 'hide'\n ? false\n : pageNavVisibility === 'show'\n ? true\n : globalShowNav\n\n const showPrevGlobal = (survey as unknown as { showPrevButton?: boolean }).showPrevButton !== false\n const showPrev = showNav && showPrevGlobal && !survey.isFirstPage\n const showNext = showNav && !survey.isLastPage\n const showComplete = showNav && survey.isLastPage\n\n const renderNav = (position: 'top' | 'bottom') => {\n const shouldRender = navLocation === 'topBottom' || navLocation === position\n if (!shouldRender) return null\n\n return (\n <div className={position === 'top' ? 'msj__nav msj__nav--top' : 'msj__nav'}>\n <div className=\"msj__navSlot msj__navSlot--left\">\n <AnimatePresence initial={false}>\n {showPrev ? (\n <motion.button\n key=\"prev\"\n type=\"button\"\n className=\"msj__button msj__button--nav\"\n onClick={() => {\n survey.prevPage()\n forceUpdate()\n }}\n initial={animate ? { opacity: 0, x: -6 } : false}\n animate={animate ? { opacity: 1, x: 0 } : undefined}\n exit={animate ? { opacity: 0, x: -6 } : undefined}\n transition={{ duration }}\n whileHover={animate ? { x: -2 } : undefined}\n whileTap={animate ? { scale: 0.98 } : undefined}\n >\n <ChevronLeftIcon />\n {t('back')}\n </motion.button>\n ) : null}\n </AnimatePresence>\n </div>\n\n <div className=\"msj__navSlot msj__navSlot--center\">\n <AnimatePresence initial={false}>\n {showComplete ? (\n <motion.button\n key=\"complete\"\n type=\"button\"\n className=\"msj__button msj__button--primary msj__button--complete\"\n onClick={() => {\n let ok = false\n try {\n ok = survey.validateCurrentPage()\n } catch {\n ok = false\n }\n\n if (!ok) {\n const firstInvalid = questions.find((q) => q.hasErrors())\n pendingFocusQuestionName.current = firstInvalid?.name ?? null\n dispatchValidation({ type: 'bump', pageName: page?.name ?? null })\n forceUpdate()\n return\n }\n\n survey.tryComplete()\n forceUpdate()\n }}\n initial={animate ? { opacity: 0, y: 6, scale: 0.98 } : false}\n animate={animate ? { opacity: 1, y: 0, scale: 1 } : undefined}\n exit={animate ? { opacity: 0, y: 6, scale: 0.98 } : undefined}\n transition={{\n duration,\n x: { type: 'tween', duration: 0.32, ease: 'easeInOut' },\n rotate: { type: 'tween', duration: 0.32, ease: 'easeInOut' },\n }}\n whileHover={\n animate\n ? {\n x: [0, -2, 2, -2, 0],\n rotate: [0, -1.2, 1.2, -1.2, 0],\n }\n : undefined\n }\n whileTap={animate ? { scale: 0.98 } : undefined}\n >\n {t('complete')}\n </motion.button>\n ) : null}\n </AnimatePresence>\n </div>\n\n <div className=\"msj__navSlot msj__navSlot--right\">\n <AnimatePresence initial={false}>\n {showNext ? (\n <motion.button\n key=\"next\"\n type=\"button\"\n className=\"msj__button msj__button--primary msj__button--navPrimary\"\n onClick={() => {\n let ok = false\n try {\n ok = survey.validateCurrentPage()\n } catch {\n ok = false\n }\n\n if (!ok) {\n const firstInvalid = questions.find((q) => q.hasErrors())\n pendingFocusQuestionName.current = firstInvalid?.name ?? null\n dispatchValidation({ type: 'bump', pageName: page?.name ?? null })\n forceUpdate()\n return\n }\n\n survey.nextPage()\n forceUpdate()\n }}\n initial={animate ? { opacity: 0, x: 6 } : false}\n animate={animate ? { opacity: 1, x: 0 } : undefined}\n exit={animate ? { opacity: 0, x: 6 } : undefined}\n transition={{ duration }}\n whileHover={animate ? { x: 2 } : undefined}\n whileTap={animate ? { scale: 0.98 } : undefined}\n >\n {t('next')}\n <ChevronRightIcon />\n </motion.button>\n ) : null}\n </AnimatePresence>\n </div>\n </div>\n )\n }\n\n return (\n <div className={rootClassName} ref={setPortalContainer}>\n {bgStyle ? <div className=\"msj__background\" style={bgStyle} /> : null}\n <div className=\"msj__card\">\n {logoPosition !== 'bottom' ? <Logo survey={survey} /> : null}\n {survey.title ? <h2 className=\"msj__title\">{survey.title}</h2> : null}\n\n {renderNav('top')}\n\n <AnimatePresence mode=\"wait\" initial={false}>\n <motion.div\n key={page?.name ?? 'page'}\n initial={animate ? { opacity: 0, y: 8 } : false}\n animate={animate ? { opacity: 1, y: 0 } : undefined}\n exit={animate ? { opacity: 0, y: -8 } : undefined}\n transition={{ duration }}\n >\n {showPageTitles || showPageNumbers ? (\n <div className=\"msj__pageHeader\">\n {showPageTitles && page?.title ? (\n <div className=\"msj__pageTitle\">{page.title}</div>\n ) : null}\n {showPageNumbers ? (\n <div className=\"msj__pageNumber\">\n {t('pageXofY', {\n current: (survey.currentPageNo ?? 0) + 1,\n total: survey.pages?.length ?? 0,\n })}\n </div>\n ) : null}\n </div>\n ) : null}\n\n {(() => {\n const globalStartIndex = (survey.pages ?? [])\n .slice(0, survey.currentPageNo ?? 0)\n .reduce((sum, p) => sum + ((p.questions ?? []) as Question[]).length, 0)\n\n const rendered = elements.reduce(\n (acc, el, i) => {\n const type =\n typeof (el as unknown as { getType?: () => string }).getType === 'function'\n ? (el as unknown as { getType: () => string }).getType()\n : 'unknown'\n\n const countForNumbering =\n el instanceof Question &&\n type !== 'html' &&\n type !== 'image' &&\n type !== 'expression' &&\n type !== 'empty'\n\n const localIndex = countForNumbering ? acc.pageQuestionIndex : -1\n const globalIndex = countForNumbering ? acc.globalQuestionIndex : -1\n\n const key = (el as unknown as { name?: string }).name ?? `${type}-${i}`\n\n return {\n items: [\n ...acc.items,\n <div key={key}>\n {renderElement(\n el,\n {\n animate,\n duration,\n t,\n validationSeq,\n questionIndex: localIndex,\n globalQuestionIndex: globalIndex,\n showQuestionNumbers,\n portalContainer,\n } satisfies RenderOptions\n )}\n </div>,\n ],\n pageQuestionIndex: countForNumbering ? acc.pageQuestionIndex + 1 : acc.pageQuestionIndex,\n globalQuestionIndex: countForNumbering ? acc.globalQuestionIndex + 1 : acc.globalQuestionIndex,\n }\n },\n {\n items: [] as ReactNode[],\n pageQuestionIndex: 0,\n globalQuestionIndex: globalStartIndex,\n }\n )\n\n return rendered.items\n })()}\n </motion.div>\n </AnimatePresence>\n\n {renderNav('bottom')}\n {logoPosition === 'bottom' ? <Logo survey={survey} /> : null}\n </div>\n </div>\n )\n}\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","BaseElement","element","opts","question","Question","invalid","controls","useAnimationControls","useEffect","elementName","jsx","motion","Errors","errors","AnimatePresence","t","getQuestionTitle","base","getErrorText","e","maybe","getQuestionErrors","setQuestionValue","q","survey","TextElement","title","focused","setFocused","useState","jsxs","Label","CommentElement","raw","maxWords","wordCount","nearLimit","nextRaw","nextWords","BooleanElement","labelTrue","labelFalse","valueTrue","valueFalse","swapOrder","currentValue","handleValueChange","val","position","x","width","leftLabel","rightLabel","leftValue","rightValue","RadioGroup","Checkmark","active","duration","size","ChoiceElement","isMulti","choices","currentStr","v","found","c","valueStr","text","selected","bgLayoutId","set","checked","Checkbox","next","DropdownElement","EMPTY","selectedChoice","displayText","open","setOpen","Select","HtmlElement","html","ImageElement","src","alt","ExpressionElement","EmptyElement","toKebabCase","string","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","classes","className","index","array","hasA11yProp","prop","defaultAttributes","Icon","forwardRef","color","strokeWidth","absoluteStrokeWidth","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","__iconNode","Angry","ArrowDown","ArrowUp","Frown","GripVertical","Laugh","Meh","Plus","Smile","Star","X","StarIcon","SmileyIcon","idx","total","normalized","RatingElement","values","current","rateType","scaleColorMode","minDescription","maxDescription","displayAsExtreme","selectedIdx","iv","highlighted","style","MultipleTextElement","items","it","id","ImagePickerElement","selectedSet","hoverBg","ButtonGroupElement","TagboxElement","RankingItem","onClick","onMoveUp","onMoveDown","isRanked","longTap","enableDrag","useDragControls","timeoutRef","useRef","onPointerDown","cancelLongPress","handleKeyDown","content","Fragment","Reorder","RankingElement","isSelectToRank","layout","emptyRankedText","emptyUnrankedText","all","unranked","onReorder","newOrder","addToRanked","removeFromRanked","moveUp","temp","moveDown","fileToBase64","file","resolve","reader","FileElement","dragOver","setDragOver","handleFiles","files","out","SignaturePadElement","canvasRef","drawing","clearKey","setClearKey","canvas","ctx","getPos","r","scaleX","scaleY","onDown","onMove","onUp","PanelDynamicElement","render","panels","p","MatrixElement","rows","cols","valueObj","colKey","rowKey","rowText","currentArr","nextSet","colText","MatrixDropdownElement","MatrixDynamicElement","FlowPanelElement","panel","el","i","renderElement","Logo","logo","logoWidth","logoHeight","logoFit","logoPosition","LOCALES","enUS","enGB","getLocaleMessages","locale","createTranslator","messages","dict","vars","s","ChevronLeftIcon","ChevronRightIcon","MotionSurvey","json","model","data","onComplete","animate","animationDurationMs","theme","useMemo","baseJson","patchedJson","m","Model","forceUpdate","useReducer","validationState","dispatchValidation","state","action","pendingFocusQuestionName","portalContainer","setPortalContainer","rootClassName","bgImage","bgFit","bgAttachment","bgOpacity","bgStyle","rerender","onPageChanged","handleComplete","esc","wrap","focusEl","loadingHtml","completedHtml","completedBeforeHtml","page","questions","elements","validationSeq","showPageTitles","showPageNumbers","rawShowQuestionNumbers","showQuestionNumbers","navLocation","globalShowNav","pageNavVisibility","showNav","showPrevGlobal","showPrev","showNext","showComplete","renderNav","ok","firstInvalid","globalStartIndex","sum","acc","countForNumbering","localIndex","globalIndex"],"mappings":"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","x_google_ignoreList":[0,1,2,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]}
|