UNPKG

txtroller

Version:

A customizable React typewriter component with 15+ animation variants.

23 lines (22 loc) 6.89 kB
"use strict";const p=require("react");var h={exports:{}},S={};/** * @license React * react-jsx-runtime.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var L;function ne(){if(L)return S;L=1;var o=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function i(m,s,u){var E=null;if(u!==void 0&&(E=""+u),s.key!==void 0&&(E=""+s.key),"key"in s){u={};for(var c in s)c!=="key"&&(u[c]=s[c])}else u=s;return s=u.ref,{$$typeof:o,type:m,key:E,ref:s!==void 0?s:null,props:u}}return S.Fragment=l,S.jsx=i,S.jsxs=i,S}var x={};/** * @license React * react-jsx-runtime.development.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var U;function ae(){return U||(U=1,process.env.NODE_ENV!=="production"&&function(){function o(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ee?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case k:return"Fragment";case V:return"Profiler";case z:return"StrictMode";case B:return"Suspense";case Z:return"SuspenseList";case K:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case _:return"Portal";case X:return(e.displayName||"Context")+".Provider";case G:return(e._context.displayName||"Context")+".Consumer";case H:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Q:return r=e.displayName||null,r!==null?r:o(e.type)||"Memo";case Y:r=e._payload,e=e._init;try{return o(e(r))}catch{}}return null}function l(e){return""+e}function i(e){try{l(e);var r=!1}catch{r=!0}if(r){r=console;var t=r.error,n=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",n),l(e)}}function m(e){if(e===k)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===Y)return"<...>";try{var r=o(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function s(){var e=j.A;return e===null?null:e.getOwner()}function u(){return Error("react-stack-top-frame")}function E(e){if(I.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function c(e,r){function t(){$||($=!0,console.error("%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)",r))}t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}function O(){var e=o(this.type);return D[e]||(D[e]=!0,console.error("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.")),e=this.props.ref,e!==void 0?e:null}function b(e,r,t,n,d,f,w,y){return t=f.ref,e={$$typeof:T,type:e,key:r,props:f,_owner:d},(t!==void 0?t:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:O}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:w}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:y}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function g(e,r,t,n,d,f,w,y){var a=r.children;if(a!==void 0)if(n)if(re(a)){for(n=0;n<a.length;n++)A(a[n]);Object.freeze&&Object.freeze(a)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else A(a);if(I.call(r,"key")){a=o(e);var v=Object.keys(r).filter(function(te){return te!=="key"});n=0<v.length?"{key: someKey, "+v.join(": ..., ")+": ...}":"{key: someKey}",W[a+n]||(v=0<v.length?"{"+v.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX: let props = %s; <%s {...props} /> React keys must be passed directly to JSX without using spread: let props = %s; <%s key={someKey} {...props} />`,n,a,v,a),W[a+n]=!0)}if(a=null,t!==void 0&&(i(t),a=""+t),E(r)&&(i(r.key),a=""+r.key),"key"in r){t={};for(var N in r)N!=="key"&&(t[N]=r[N])}else t=r;return a&&c(t,typeof e=="function"?e.displayName||e.name||"Unknown":e),b(e,a,f,d,s(),t,w,y)}function A(e){typeof e=="object"&&e!==null&&e.$$typeof===T&&e._store&&(e._store.validated=1)}var R=p,T=Symbol.for("react.transitional.element"),_=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),z=Symbol.for("react.strict_mode"),V=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),X=Symbol.for("react.context"),H=Symbol.for("react.forward_ref"),B=Symbol.for("react.suspense"),Z=Symbol.for("react.suspense_list"),Q=Symbol.for("react.memo"),Y=Symbol.for("react.lazy"),K=Symbol.for("react.activity"),ee=Symbol.for("react.client.reference"),j=R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=Object.prototype.hasOwnProperty,re=Array.isArray,P=console.createTask?console.createTask:function(){return null};R={"react-stack-bottom-frame":function(e){return e()}};var $,D={},F=R["react-stack-bottom-frame"].bind(R,u)(),M=P(m(u)),W={};x.Fragment=k,x.jsx=function(e,r,t,n,d){var f=1e4>j.recentlyCreatedOwnerStacks++;return g(e,r,t,!1,n,d,f?Error("react-stack-top-frame"):F,f?P(m(e)):M)},x.jsxs=function(e,r,t,n,d){var f=1e4>j.recentlyCreatedOwnerStacks++;return g(e,r,t,!0,n,d,f?Error("react-stack-top-frame"):F,f?P(m(e)):M)}}()),x}var q;function oe(){return q||(q=1,process.env.NODE_ENV==="production"?h.exports=ne():h.exports=ae()),h.exports}var C=oe();const J=({texts:o=["Hello"],speed:l=100,pause:i=1500,loop:m=!0,className:s=""})=>{const[u,E]=p.useState(0),[c,O]=p.useState(0),[b,g]=p.useState(!1),[A,R]=p.useState("");return p.useEffect(()=>{const T=o[u%o.length];let _;return!b&&c<T.length?_=setTimeout(()=>{R(T.substring(0,c+1)),O(c+1)},l):b&&c>0?_=setTimeout(()=>{R(T.substring(0,c-1)),O(c-1)},l/2):_=setTimeout(()=>{g(!b),b&&m&&E(k=>(k+1)%o.length)},i),()=>clearTimeout(_)},[c,b,u,m,i,l,o]),C.jsxs("span",{className:`typewriter-classic ${s}`,children:[A,C.jsx("span",{className:"blinking-cursor",children:"|"})]})},se={classic:J},ue=({variant:o,...l})=>{const i=se[o]||J;return C.jsx(i,{...l})};module.exports=ue;