@explorer02/cfm-survey-sdk 0.2.2 → 0.2.4
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/cli/index.js +140 -33
- package/dist/cli/index.mjs +140 -33
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +8 -1
- package/postinstall.js +8 -5
- package/templates/AGENT.md +62 -17
- package/templates/deploy-wizard-to-s3.sh +52 -0
- package/templates/docs/00-integration/agent-execution-flow.md +281 -0
- package/templates/docs/00-integration/agent-operating-contract.md +260 -0
- package/templates/docs/00-integration/analytics-events-catalog.md +54 -0
- package/templates/docs/00-integration/apply-ui-config.md +365 -0
- package/templates/docs/00-integration/canonical-survey-fixtures.md +94 -0
- package/templates/docs/00-integration/client-integration-guide.md +10 -8
- package/templates/docs/00-integration/client-lib-folder.md +115 -0
- package/templates/docs/00-integration/component-checklist.md +90 -54
- package/templates/docs/00-integration/constraints.md +13 -5
- package/templates/docs/00-integration/custom-field-logic-and-navigation.md +56 -0
- package/templates/docs/00-integration/display-logic-and-navigation.md +16 -1
- package/templates/docs/00-integration/file-upload-aws.md +116 -0
- package/templates/docs/00-integration/logic-fields-catalog.md +105 -0
- package/templates/docs/00-integration/partial-save-and-recovery.md +24 -0
- package/templates/docs/00-integration/progress.md +4 -2
- package/templates/docs/00-integration/question-type-sdk-matrix.md +11 -9
- package/templates/docs/00-integration/setup.md +15 -3
- package/templates/docs/00-integration/skip-logic-and-navigation.md +1 -1
- package/templates/docs/00-integration/survey-lifecycle-analytics.md +1 -1
- package/templates/docs/00-integration/ui-customization-wizard.md +144 -0
- package/templates/docs/00-integration/useSurveySDK.md +35 -1
- package/templates/docs/00-integration/wizard-api.md +134 -0
- package/templates/docs/00-integration/wizard-config-handoff.md +246 -0
- package/templates/docs/00-integration/wizard-preview-build-guide.md +400 -0
- package/templates/docs/00-integration/wizard-question-type-styling.md +195 -0
- package/templates/docs/01-components/01-survey-page.md +18 -8
- package/templates/docs/01-components/02-question.md +2 -2
- package/templates/docs/01-components/03-rating-scale.md +12 -18
- package/templates/docs/01-components/05-csat-matrix-scale.md +18 -26
- package/templates/docs/01-components/06-likert-matrix-scale.md +19 -38
- package/templates/docs/01-components/07-slider-matrix-scale.md +48 -33
- package/templates/docs/01-components/08-file-upload-scale.md +15 -52
- package/templates/docs/01-components/09-custom-slider-track.md +15 -25
- package/templates/docs/01-components/10-header-footer.md +23 -4
- package/templates/docs/01-components/11-progress-bar.md +14 -6
- package/templates/docs/01-components/13-matrix-dropdown.md +28 -33
- package/templates/docs/01-components/17-heatmap-scale.md +4 -4
- package/templates/docs/01-components/18-rank-order-scale.md +24 -31
- package/templates/docs/01-components/19-survey-sticky-chrome.md +79 -0
- package/templates/docs/01-components/README.md +2 -2
- package/templates/docs/02-reference/question-types/10-slider-matrix.md +38 -26
- package/templates/docs/02-reference/question-types/11-file-upload.md +36 -21
- package/templates/docs/02-reference/question-types/README.md +11 -1
- package/templates/docs/02-reference/routing-table.md +1 -0
- package/templates/docs/02-reference/value-derivation.md +1 -1
- package/templates/docs/03-ui-specs/00-question-shell.md +10 -0
- package/templates/docs/03-ui-specs/01-rating.md +28 -2
- package/templates/docs/03-ui-specs/02-radio.md +94 -24
- package/templates/docs/03-ui-specs/03-text.md +12 -1
- package/templates/docs/03-ui-specs/04-csat.md +90 -26
- package/templates/docs/03-ui-specs/06-slider.md +3 -1
- package/templates/docs/03-ui-specs/07-matrix-cfm.md +74 -35
- package/templates/docs/03-ui-specs/08-matrix-csat-rating.md +50 -16
- package/templates/docs/03-ui-specs/09-slider-matrix.md +70 -26
- package/templates/docs/03-ui-specs/10-file-upload.md +52 -20
- package/templates/docs/03-ui-specs/11-text-and-media.md +4 -0
- package/templates/docs/03-ui-specs/12-survey-chrome.md +92 -5
- package/templates/docs/03-ui-specs/13-heatmap.md +21 -3
- package/templates/docs/03-ui-specs/14-rank-order.md +108 -28
- package/templates/docs/03-ui-specs/README.md +11 -7
- package/templates/docs/03-ui-specs/shared/custom-slider-track.md +28 -35
- package/templates/docs/03-ui-specs/shared/matrix-dropdown.md +1 -1
- package/templates/docs/MANIFEST.json +187 -6
- package/templates/docs/index.md +116 -116
- package/templates/docs/templates/CsatMatrixScale.tsx +637 -0
- package/templates/docs/templates/CustomSliderTrack.tsx +144 -0
- package/templates/docs/templates/FileUploadScale.tsx +262 -0
- package/templates/docs/templates/HeatmapScale.tsx +114 -0
- package/templates/docs/templates/LikertMatrixScale.tsx +414 -0
- package/templates/docs/templates/MatrixDropdown.tsx +216 -0
- package/templates/docs/templates/Question.tsx +3 -0
- package/templates/docs/templates/RankOrderScale.tsx +353 -0
- package/templates/docs/templates/RatingScale.tsx +129 -0
- package/templates/docs/templates/SliderMatrixScale.tsx +248 -0
- package/templates/docs/templates/SurveyStickyChrome.tsx +24 -0
- package/templates/docs/templates/customFieldValues.ts +36 -0
- package/templates/docs/templates/implementation_plan.md +75 -8
- package/templates/docs/templates/labelStyles.ts +33 -0
- package/templates/docs/templates/selectionStyles.ts +100 -0
- package/templates/docs/templates/survey-inventory.schema.json +28 -23
- package/templates/docs/templates/surveyUiIcons.tsx +63 -0
- package/templates/docs/templates/surveyUiScaleUtils.ts +51 -0
- package/templates/docs/templates/verify-agent-build.sh +151 -0
- package/templates/preview-harness/preview-bridge.inline.js +201 -0
- package/templates/preview-harness/previewPages.js +108 -0
- package/templates/preview-harness/previewPages.ts +298 -0
- package/templates/preview-harness/vite-app/src/PreviewConfigContext.tsx +67 -0
- package/templates/preview-harness/vite-app/src/QuestionPreview.tsx +122 -0
- package/templates/preview-harness/vite-app/src/SurveyPagePreview.tsx +75 -0
- package/templates/preview-harness/vite-app/src/fixtures/questions.ts +311 -0
- package/templates/preview-harness/vite-app/src/globals.css +16 -0
- package/templates/preview-harness/vite-app/src/mount.tsx +9 -0
- package/templates/preview-harness/vite-app/src/preview-live-overrides.css +101 -0
- package/templates/preview-harness/vite-app/stubs/next-dynamic.tsx +25 -0
- package/templates/preview-harness/vite-app/stubs/next-image.tsx +29 -0
- package/templates/previewBridge.ts +153 -0
- package/templates/survey-theme.css +295 -0
- package/templates/survey-ui-config.schema.json +213 -0
- package/templates/wizard-dist/assets/PreviewMock-DgHfrVeb.js +1 -0
- package/templates/wizard-dist/assets/TypePanel-CFVC3Ptn.js +1 -0
- package/templates/wizard-dist/assets/index-BhWM50Yu.css +1 -0
- package/templates/wizard-dist/assets/index-DYK3X1e5.js +34 -0
- package/templates/wizard-dist/assets/vendor-BwkXDkd3.js +17 -0
- package/templates/wizard-dist/index.html +20 -0
- package/templates/wizard.html +13 -1129
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function oe(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var M={exports:{}},n={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var K;function ie(){if(K)return n;K=1;var s=Symbol.for("react.transitional.element"),_=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),p=Symbol.for("react.strict_mode"),O=Symbol.for("react.profiler"),P=Symbol.for("react.consumer"),T=Symbol.for("react.context"),R=Symbol.for("react.forward_ref"),o=Symbol.for("react.suspense"),t=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),E=Symbol.for("react.activity"),S=Symbol.iterator;function C(e){return e===null||typeof e!="object"?null:(e=S&&e[S]||e["@@iterator"],typeof e=="function"?e:null)}var U={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Y=Object.assign,k={};function A(e,r,i){this.props=e,this.context=r,this.refs=k,this.updater=i||U}A.prototype.isReactComponent={},A.prototype.setState=function(e,r){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,r,"setState")},A.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function x(){}x.prototype=A.prototype;function N(e,r,i){this.props=e,this.context=r,this.refs=k,this.updater=i||U}var D=N.prototype=new x;D.constructor=N,Y(D,A.prototype),D.isPureReactComponent=!0;var q=Array.isArray;function j(){}var l={H:null,A:null,T:null,S:null},G=Object.prototype.hasOwnProperty;function b(e,r,i){var u=i.ref;return{$$typeof:s,type:e,key:r,ref:u!==void 0?u:null,props:i}}function F(e,r){return b(e.type,r,e.props)}function I(e){return typeof e=="object"&&e!==null&&e.$$typeof===s}function ee(e){var r={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(i){return r[i]})}var z=/\/+/g;function L(e,r){return typeof e=="object"&&e!==null&&e.key!=null?ee(""+e.key):r.toString(36)}function te(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(j,j):(e.status="pending",e.then(function(r){e.status==="pending"&&(e.status="fulfilled",e.value=r)},function(r){e.status==="pending"&&(e.status="rejected",e.reason=r)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function h(e,r,i,u,c){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var y=!1;if(e===null)y=!0;else switch(a){case"bigint":case"string":case"number":y=!0;break;case"object":switch(e.$$typeof){case s:case _:y=!0;break;case f:return y=e._init,h(y(e._payload),r,i,u,c)}}if(y)return c=c(e),y=u===""?"."+L(e,0):u,q(c)?(i="",y!=null&&(i=y.replace(z,"$&/")+"/"),h(c,r,i,"",function(ue){return ue})):c!=null&&(I(c)&&(c=F(c,i+(c.key==null||e&&e.key===c.key?"":(""+c.key).replace(z,"$&/")+"/")+y)),r.push(c)),1;y=0;var m=u===""?".":u+":";if(q(e))for(var v=0;v<e.length;v++)u=e[v],a=m+L(u,v),y+=h(u,r,i,a,c);else if(v=C(e),typeof v=="function")for(e=v.call(e),v=0;!(u=e.next()).done;)u=u.value,a=m+L(u,v++),y+=h(u,r,i,a,c);else if(a==="object"){if(typeof e.then=="function")return h(te(e),r,i,u,c);throw r=String(e),Error("Objects are not valid as a React child (found: "+(r==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return y}function w(e,r,i){if(e==null)return e;var u=[],c=0;return h(e,u,"","",function(a){return r.call(i,a,c++)}),u}function re(e){if(e._status===-1){var r=e._result;r=r(),r.then(function(i){(e._status===0||e._status===-1)&&(e._status=1,e._result=i)},function(i){(e._status===0||e._status===-1)&&(e._status=2,e._result=i)}),e._status===-1&&(e._status=0,e._result=r)}if(e._status===1)return e._result.default;throw e._result}var B=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var r=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(r))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},ne={map:w,forEach:function(e,r,i){w(e,function(){r.apply(this,arguments)},i)},count:function(e){var r=0;return w(e,function(){r++}),r},toArray:function(e){return w(e,function(r){return r})||[]},only:function(e){if(!I(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};return n.Activity=E,n.Children=ne,n.Component=A,n.Fragment=g,n.Profiler=O,n.PureComponent=N,n.StrictMode=p,n.Suspense=o,n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=l,n.__COMPILER_RUNTIME={__proto__:null,c:function(e){return l.H.useMemoCache(e)}},n.cache=function(e){return function(){return e.apply(null,arguments)}},n.cacheSignal=function(){return null},n.cloneElement=function(e,r,i){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var u=Y({},e.props),c=e.key;if(r!=null)for(a in r.key!==void 0&&(c=""+r.key),r)!G.call(r,a)||a==="key"||a==="__self"||a==="__source"||a==="ref"&&r.ref===void 0||(u[a]=r[a]);var a=arguments.length-2;if(a===1)u.children=i;else if(1<a){for(var y=Array(a),m=0;m<a;m++)y[m]=arguments[m+2];u.children=y}return b(e.type,c,u)},n.createContext=function(e){return e={$$typeof:T,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:P,_context:e},e},n.createElement=function(e,r,i){var u,c={},a=null;if(r!=null)for(u in r.key!==void 0&&(a=""+r.key),r)G.call(r,u)&&u!=="key"&&u!=="__self"&&u!=="__source"&&(c[u]=r[u]);var y=arguments.length-2;if(y===1)c.children=i;else if(1<y){for(var m=Array(y),v=0;v<y;v++)m[v]=arguments[v+2];c.children=m}if(e&&e.defaultProps)for(u in y=e.defaultProps,y)c[u]===void 0&&(c[u]=y[u]);return b(e,a,c)},n.createRef=function(){return{current:null}},n.forwardRef=function(e){return{$$typeof:R,render:e}},n.isValidElement=I,n.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:re}},n.memo=function(e,r){return{$$typeof:t,type:e,compare:r===void 0?null:r}},n.startTransition=function(e){var r=l.T,i={};l.T=i;try{var u=e(),c=l.S;c!==null&&c(i,u),typeof u=="object"&&u!==null&&typeof u.then=="function"&&u.then(j,B)}catch(a){B(a)}finally{r!==null&&i.types!==null&&(r.types=i.types),l.T=r}},n.unstable_useCacheRefresh=function(){return l.H.useCacheRefresh()},n.use=function(e){return l.H.use(e)},n.useActionState=function(e,r,i){return l.H.useActionState(e,r,i)},n.useCallback=function(e,r){return l.H.useCallback(e,r)},n.useContext=function(e){return l.H.useContext(e)},n.useDebugValue=function(){},n.useDeferredValue=function(e,r){return l.H.useDeferredValue(e,r)},n.useEffect=function(e,r){return l.H.useEffect(e,r)},n.useEffectEvent=function(e){return l.H.useEffectEvent(e)},n.useId=function(){return l.H.useId()},n.useImperativeHandle=function(e,r,i){return l.H.useImperativeHandle(e,r,i)},n.useInsertionEffect=function(e,r){return l.H.useInsertionEffect(e,r)},n.useLayoutEffect=function(e,r){return l.H.useLayoutEffect(e,r)},n.useMemo=function(e,r){return l.H.useMemo(e,r)},n.useOptimistic=function(e,r){return l.H.useOptimistic(e,r)},n.useReducer=function(e,r,i){return l.H.useReducer(e,r,i)},n.useRef=function(e){return l.H.useRef(e)},n.useState=function(e){return l.H.useState(e)},n.useSyncExternalStore=function(e,r,i){return l.H.useSyncExternalStore(e,r,i)},n.useTransition=function(){return l.H.useTransition()},n.version="19.2.7",n}var W;function J(){return W||(W=1,M.exports=ie()),M.exports}var $={exports:{}},d={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react-dom.production.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var X;function se(){if(X)return d;X=1;var s=J();function _(o){var t="https://react.dev/errors/"+o;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var f=2;f<arguments.length;f++)t+="&args[]="+encodeURIComponent(arguments[f])}return"Minified React error #"+o+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function g(){}var p={d:{f:g,r:function(){throw Error(_(522))},D:g,C:g,L:g,m:g,X:g,S:g,M:g},p:0,findDOMNode:null},O=Symbol.for("react.portal");function P(o,t,f){var E=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:O,key:E==null?null:""+E,children:o,containerInfo:t,implementation:f}}var T=s.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function R(o,t){if(o==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}return d.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=p,d.createPortal=function(o,t){var f=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(_(299));return P(o,t,null,f)},d.flushSync=function(o){var t=T.T,f=p.p;try{if(T.T=null,p.p=2,o)return o()}finally{T.T=t,p.p=f,p.d.f()}},d.preconnect=function(o,t){typeof o=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,p.d.C(o,t))},d.prefetchDNS=function(o){typeof o=="string"&&p.d.D(o)},d.preinit=function(o,t){if(typeof o=="string"&&t&&typeof t.as=="string"){var f=t.as,E=R(f,t.crossOrigin),S=typeof t.integrity=="string"?t.integrity:void 0,C=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;f==="style"?p.d.S(o,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:E,integrity:S,fetchPriority:C}):f==="script"&&p.d.X(o,{crossOrigin:E,integrity:S,fetchPriority:C,nonce:typeof t.nonce=="string"?t.nonce:void 0})}},d.preinitModule=function(o,t){if(typeof o=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var f=R(t.as,t.crossOrigin);p.d.M(o,{crossOrigin:f,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&p.d.M(o)},d.preload=function(o,t){if(typeof o=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var f=t.as,E=R(f,t.crossOrigin);p.d.L(o,f,{crossOrigin:E,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}},d.preloadModule=function(o,t){if(typeof o=="string")if(t){var f=R(t.as,t.crossOrigin);p.d.m(o,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:f,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else p.d.m(o)},d.requestFormReset=function(o){p.d.r(o)},d.unstable_batchedUpdates=function(o,t){return o(t)},d.useFormState=function(o,t,f){return T.H.useFormState(o,t,f)},d.useFormStatus=function(){return T.H.useHostTransitionStatus()},d.version="19.2.7",d}var Q;function ye(){if(Q)return $.exports;Q=1;function s(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(_){console.error(_)}}return s(),$.exports=se(),$.exports}var ce=J();const H=oe(ce),V=s=>{let _;const g=new Set,p=(t,f)=>{const E=typeof t=="function"?t(_):t;if(!Object.is(E,_)){const S=_;_=f??(typeof E!="object"||E===null)?E:Object.assign({},_,E),g.forEach(C=>C(_,S))}},O=()=>_,R={setState:p,getState:O,getInitialState:()=>o,subscribe:t=>(g.add(t),()=>g.delete(t))},o=_=s(p,O,R);return R},fe=(s=>s?V(s):V),ae=s=>s;function le(s,_=ae){const g=H.useSyncExternalStore(s.subscribe,H.useCallback(()=>_(s.getState()),[s,_]),H.useCallback(()=>_(s.getInitialState()),[s,_]));return H.useDebugValue(g),g}const Z=s=>{const _=fe(s),g=p=>le(_,p);return Object.assign(g,_),g},_e=(s=>s?Z(s):Z);export{ye as a,ce as b,_e as c,J as r};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>CFM Survey — UI Customization</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
|
+
<link
|
|
10
|
+
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@500;600;700&display=swap"
|
|
11
|
+
rel="stylesheet"
|
|
12
|
+
/>
|
|
13
|
+
<script type="module" crossorigin src="./assets/index-DYK3X1e5.js"></script>
|
|
14
|
+
<link rel="modulepreload" crossorigin href="./assets/vendor-BwkXDkd3.js">
|
|
15
|
+
<link rel="stylesheet" crossorigin href="./assets/index-BhWM50Yu.css">
|
|
16
|
+
</head>
|
|
17
|
+
<body>
|
|
18
|
+
<div id="root"></div>
|
|
19
|
+
</body>
|
|
20
|
+
</html>
|