nx-react-native-cli 2.1.2 → 2.1.3

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.
Files changed (24) hide show
  1. package/lib/index.cjs +1 -1
  2. package/package.json +1 -1
  3. package/templates/apps/mobile/src/components/atoms/BottomSheet/bottom-sheet.component.tsx +4 -1
  4. package/templates/apps/mobile/src/components/atoms/TextInput/bottom-sheet-text-input.component.tsx +79 -0
  5. package/templates/apps/mobile/src/components/atoms/TextInput/constants.ts +3 -0
  6. package/templates/apps/mobile/src/components/atoms/TextInput/index.ts +2 -0
  7. package/templates/apps/mobile/src/components/atoms/TextInput/text-input-area.component.tsx +68 -0
  8. package/templates/apps/mobile/src/components/atoms/TextInput/text-input.component.tsx +2 -63
  9. package/templates/apps/mobile/src/components/atoms/TextInput/util.ts +12 -0
  10. package/templates/apps/mobile/src/icons/index.ts +1 -30
  11. package/templates/apps/mobile/src/screens/LandingScreen/landing.screen.tsx +1 -29
  12. package/templates/apps/mobile/src/icons/checkbox-active.svg +0 -4
  13. package/templates/apps/mobile/src/icons/checkbox-unactive.svg +0 -4
  14. package/templates/apps/mobile/src/icons/close.svg +0 -3
  15. package/templates/apps/mobile/src/icons/download.svg +0 -4
  16. package/templates/apps/mobile/src/icons/email.svg +0 -10
  17. package/templates/apps/mobile/src/icons/eye-slash.svg +0 -11
  18. package/templates/apps/mobile/src/icons/eye.svg +0 -4
  19. package/templates/apps/mobile/src/icons/home.svg +0 -3
  20. package/templates/apps/mobile/src/icons/pencil.svg +0 -3
  21. package/templates/apps/mobile/src/icons/phone.svg +0 -3
  22. package/templates/apps/mobile/src/icons/user-circle.svg +0 -3
  23. package/templates/apps/mobile/src/icons/user.svg +0 -4
  24. package/templates/apps/mobile/src/icons/warning.svg +0 -3
package/lib/index.cjs CHANGED
@@ -61,7 +61,7 @@ ${m.description}`:"";return`${[a,v,b].filter(Boolean).join(" ")}
61
61
  ${g}${I}${E}${M2.default.cursorHide}`});var D1=j(require("node:readline"),1),q=j(s1(),1),dl=j(x1(),1),h1=j(Ua(),1),p1=j(mt(),1),d1={set:(e,r="",t)=>{let n=e;r.split(".").forEach((i,u,o)=>{i==="__proto__"||i==="constructor"||(u===o.length-1?n[i]=t:i in n||(n[i]={}),n=n[i])})},get:(e,r="",t)=>{let n=u=>String.prototype.split.call(r,u).filter(Boolean).reduce((o,a)=>o!=null?o[a]:o,e),i=n(/[,[\]]+?/)||n(/[,.[\]]+?/);return i===void 0||i===e?t:i}};function fl(e,r,t){if(r in e){let n=e[r];if(typeof n=="function")return(0,q.from)((0,dl.default)(n)(t).then(i=>Object.assign(e,{[r]:i})))}return(0,q.of)(e)}var xl=class extends Error{isTtyError=!0};function mS(e={}){e.skipTTYChecks=e.skipTTYChecks===void 0?!0:e.skipTTYChecks;let r=e.input||process.stdin;if(!e.skipTTYChecks&&!r.isTTY)throw new xl("Prompts can not be meaningfully rendered in non-TTY environments");let t=new h1.default;return t.pipe(e.output||process.stdout),{terminal:!0,...e,input:r,output:t}}function vS(e){return Object.values(e).every(r=>typeof r=="object"&&!Array.isArray(r)&&r!=null)}function bS(e){return e.prototype&&"run"in e.prototype&&typeof e.prototype.run=="function"}var xn=class{prompts;answers={};process=q.EMPTY;onClose;opt;rl;constructor(r,t){this.opt=t,this.prompts=r}run(r,t){this.answers=typeof t=="object"?{...t}:{};let n;Array.isArray(r)?n=(0,q.from)(r):(0,q.isObservable)(r)?n=r:vS(r)?n=(0,q.from)(Object.entries(r).map(([u,o])=>Object.assign({},o,{name:u}))):n=(0,q.from)([r]),this.process=n.pipe((0,q.concatMap)(u=>this.processQuestion(u)));let i=(0,q.lastValueFrom)(this.process.pipe((0,q.reduce)((u,o)=>(d1.set(u,o.name,o.answer),u),this.answers))).then(()=>this.onCompletion(),u=>this.onError(u));return Object.assign(i,{ui:this})}onCompletion(){return this.close(),this.answers}onError(r){return this.close(),Promise.reject(r)}processQuestion(r){return r={...r},(0,q.defer)(()=>(0,q.of)(r).pipe((0,q.concatMap)(this.setDefaultType),(0,q.concatMap)(this.filterIfRunnable),(0,q.concatMap)(n=>fl(n,"message",this.answers)),(0,q.concatMap)(n=>fl(n,"default",this.answers)),(0,q.concatMap)(n=>fl(n,"choices",this.answers)),(0,q.concatMap)(n=>("choices"in n&&(n.choices=n.choices.map(i=>typeof i=="string"?{name:i,value:i}:i)),(0,q.of)(n))),(0,q.concatMap)(n=>this.fetchAnswer(n))))}fetchAnswer(r){let t=this.prompts[r.type];if(t==null)throw new Error(`Prompt for type ${r.type} not found`);return bS(t)?(0,q.defer)(()=>{let n=D1.default.createInterface(mS(this.opt));n.resume();let i=()=>{n.removeListener("SIGINT",this.onForceClose),n.setPrompt(""),n.output.unmute(),n.output.write(p1.default.cursorShow),n.output.end(),n.close()};this.onClose=i,this.rl=n,process.on("exit",this.onForceClose),n.on("SIGINT",this.onForceClose);let u=new t(r,n,this.answers);return(0,q.from)(u.run().then(o=>(i(),this.onClose=void 0,this.rl=void 0,{name:r.name,answer:o})))}):(0,q.defer)(()=>(0,q.from)(t(r,this.opt).then(n=>({name:r.name,answer:n}))))}onForceClose=()=>{this.close(),process.kill(process.pid,"SIGINT"),console.log("")};close=()=>{process.removeListener("exit",this.onForceClose),typeof this.onClose=="function"&&this.onClose()};setDefaultType=r=>(this.prompts[r.type]||(r.type="input"),(0,q.defer)(()=>(0,q.of)(r)));filterIfRunnable=r=>{if(r.askAnswered!==!0&&d1.get(this.answers,r.name)!==void 0)return q.EMPTY;let{when:t}=r;return t===!1?q.EMPTY:typeof t!="function"?(0,q.of)(r):(0,q.defer)(()=>(0,q.from)((0,dl.default)(t)(this.answers).then(n=>{if(n)return r})).pipe((0,q.filter)(n=>n!=null)))}};var m1={input:Vs,select:Vi,list:Vi,number:Ws,confirm:$s,rawlist:Ys,expand:zs,checkbox:Xa,password:Js,editor:Us};function v1(e){function r(t,n){let i=new xn(r.prompts,e);try{return i.run(t,n)}catch(u){let o=Promise.reject(u);return Object.assign(o,{ui:i})}}return r.prompts={...m1},r.registerPrompt=function(t,n){return r.prompts[t]=n,this},r.restoreDefaultPrompts=function(){r.prompts={...m1}},r}var Dl=v1();function ES(e,r){Dl.registerPrompt(e,r)}function FS(){Dl.restoreDefaultPrompts()}var _S={prompt:Dl,ui:{Prompt:xn},createPromptModule:v1,registerPrompt:ES,restoreDefaultPrompts:FS,Separator:oe},hl=_S;var ri=j(require("node:process"),1);var bl=j(require("node:process"),1);var S1=j(require("node:process"),1),B1=j(_1(),1),q1=j(O1(),1),gS=(0,B1.default)(()=>{(0,q1.default)(()=>{S1.default.stderr.write("\x1B[?25h")},{alwaysLast:!0})}),j1=gS;var oa=!1,pn={};pn.show=(e=bl.default.stderr)=>{e.isTTY&&(oa=!1,e.write("\x1B[?25h"))};pn.hide=(e=bl.default.stderr)=>{e.isTTY&&(j1(),oa=!0,e.write("\x1B[?25l"))};pn.toggle=(e,r)=>{e!==void 0&&(oa=e),oa?pn.show(r):pn.hide(r)};var El=pn;var ti=j(pi(),1);var Ce=j(require("node:process"),1);function Fl(){return Ce.default.platform!=="win32"?Ce.default.env.TERM!=="linux":!!Ce.default.env.CI||!!Ce.default.env.WT_SESSION||!!Ce.default.env.TERMINUS_SUBLIME||Ce.default.env.ConEmuTask==="{cmd::Cmder}"||Ce.default.env.TERM_PROGRAM==="Terminus-Sublime"||Ce.default.env.TERM_PROGRAM==="vscode"||Ce.default.env.TERM==="xterm-256color"||Ce.default.env.TERM==="alacritty"||Ce.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var CS={info:z.blue("\u2139"),success:z.green("\u2714"),warning:z.yellow("\u26A0"),error:z.red("\u2716")},wS={info:z.blue("i"),success:z.green("\u221A"),warning:z.yellow("\u203C"),error:z.red("\xD7")},AS=Fl()?CS:wS,Zn=AS;function _l({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var OS=_l();function ei(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(OS,"")}function P1(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function T1(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function M1(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9800&&e<=9811||e===9855||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101632&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129672||e>=129680&&e<=129725||e>=129727&&e<=129733||e>=129742&&e<=129755||e>=129760&&e<=129768||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function SS(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function k1(e,{ambiguousAsWide:r=!1}={}){return SS(e),T1(e)||M1(e)||r&&P1(e)?2:1}var L1=j(R1(),1),BS=new Intl.Segmenter,qS=/^\p{Default_Ignorable_Code_Point}$/u;function yl(e,r={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:t=!0,countAnsiEscapeCodes:n=!1}=r;if(n||(e=ei(e)),e.length===0)return 0;let i=0,u={ambiguousAsWide:!t};for(let{segment:o}of BS.segment(e)){let a=o.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!qS.test(o)){if((0,L1.default)().test(o)){i+=2;continue}i+=k1(a,u)}}return i}function gl({stream:e=process.stdout}={}){return!!(e&&e.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}var Pe=j(require("node:process"),1);function Cl(){return Pe.default.platform!=="win32"?Pe.default.env.TERM!=="linux":!!Pe.default.env.WT_SESSION||!!Pe.default.env.TERMINUS_SUBLIME||Pe.default.env.ConEmuTask==="{cmd::Cmder}"||Pe.default.env.TERM_PROGRAM==="Terminus-Sublime"||Pe.default.env.TERM_PROGRAM==="vscode"||Pe.default.env.TERM==="xterm-256color"||Pe.default.env.TERM==="alacritty"||Pe.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Te=j(require("node:process"),1),jS=3,wl=class{#i=0;start(){this.#i++,this.#i===1&&this.#t()}stop(){if(this.#i<=0)throw new Error("`stop` called more times than `start`");this.#i--,this.#i===0&&this.#e()}#t(){Te.default.platform==="win32"||!Te.default.stdin.isTTY||(Te.default.stdin.setRawMode(!0),Te.default.stdin.on("data",this.#u),Te.default.stdin.resume())}#e(){Te.default.stdin.isTTY&&(Te.default.stdin.off("data",this.#u),Te.default.stdin.pause(),Te.default.stdin.setRawMode(!1))}#u(r){r[0]===jS&&Te.default.emit("SIGINT")}},PS=new wl,Al=PS;var TS=j(pi(),1),Ol=class{#i=0;#t=!1;#e=0;#u=0;#r;#o;#n;#x;#d;#c;#l;#f;#h;#a;#s;color;constructor(r){typeof r=="string"&&(r={text:r}),this.#r={color:"cyan",stream:ri.default.stderr,discardStdin:!0,hideCursor:!0,...r},this.color=this.#r.color,this.spinner=this.#r.spinner,this.#d=this.#r.interval,this.#n=this.#r.stream,this.#c=typeof this.#r.isEnabled=="boolean"?this.#r.isEnabled:gl({stream:this.#n}),this.#l=typeof this.#r.isSilent=="boolean"?this.#r.isSilent:!1,this.text=this.#r.text,this.prefixText=this.#r.prefixText,this.suffixText=this.#r.suffixText,this.indent=this.#r.indent,ri.default.env.NODE_ENV==="test"&&(this._stream=this.#n,this._isEnabled=this.#c,Object.defineProperty(this,"_linesToClear",{get(){return this.#i},set(t){this.#i=t}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#u}}),Object.defineProperty(this,"_lineCount",{get(){return this.#e}}))}get indent(){return this.#f}set indent(r=0){if(!(r>=0&&Number.isInteger(r)))throw new Error("The `indent` option must be an integer from 0 and up");this.#f=r,this.#D()}get interval(){return this.#d??this.#o.interval??100}get spinner(){return this.#o}set spinner(r){if(this.#u=0,this.#d=void 0,typeof r=="object"){if(r.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#o=r}else if(!Cl())this.#o=ti.default.line;else if(r===void 0)this.#o=ti.default.dots;else if(r!=="default"&&ti.default[r])this.#o=ti.default[r];else throw new Error(`There is no built-in spinner named '${r}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#h}set text(r=""){this.#h=r,this.#D()}get prefixText(){return this.#a}set prefixText(r=""){this.#a=r,this.#D()}get suffixText(){return this.#s}set suffixText(r=""){this.#s=r,this.#D()}get isSpinning(){return this.#x!==void 0}#p(r=this.#a,t=" "){return typeof r=="string"&&r!==""?r+t:typeof r=="function"?r()+t:""}#m(r=this.#s,t=" "){return typeof r=="string"&&r!==""?t+r:typeof r=="function"?t+r():""}#D(){let r=this.#n.columns??80,t=this.#p(this.#a,"-"),n=this.#m(this.#s,"-"),i=" ".repeat(this.#f)+t+"--"+this.#h+"--"+n;this.#e=0;for(let u of ei(i).split(`
62
62
  `))this.#e+=Math.max(1,Math.ceil(yl(u,{countAnsiEscapeCodes:!0})/r))}get isEnabled(){return this.#c&&!this.#l}set isEnabled(r){if(typeof r!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#c=r}get isSilent(){return this.#l}set isSilent(r){if(typeof r!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#l=r}frame(){let{frames:r}=this.#o,t=r[this.#u];this.color&&(t=z[this.color](t)),this.#u=++this.#u%r.length;let n=typeof this.#a=="string"&&this.#a!==""?this.#a+" ":"",i=typeof this.text=="string"?" "+this.text:"",u=typeof this.#s=="string"&&this.#s!==""?" "+this.#s:"";return n+t+i+u}clear(){if(!this.#c||!this.#n.isTTY)return this;this.#n.cursorTo(0);for(let r=0;r<this.#i;r++)r>0&&this.#n.moveCursor(0,-1),this.#n.clearLine(1);return(this.#f||this.lastIndent!==this.#f)&&this.#n.cursorTo(this.#f),this.lastIndent=this.#f,this.#i=0,this}render(){return this.#l?this:(this.clear(),this.#n.write(this.frame()),this.#i=this.#e,this)}start(r){return r&&(this.text=r),this.#l?this:this.#c?this.isSpinning?this:(this.#r.hideCursor&&El.hide(this.#n),this.#r.discardStdin&&ri.default.stdin.isTTY&&(this.#t=!0,Al.start()),this.render(),this.#x=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#n.write(`- ${this.text}
63
63
  `),this)}stop(){return this.#c?(clearInterval(this.#x),this.#x=void 0,this.#u=0,this.clear(),this.#r.hideCursor&&El.show(this.#n),this.#r.discardStdin&&ri.default.stdin.isTTY&&this.#t&&(Al.stop(),this.#t=!1),this):this}succeed(r){return this.stopAndPersist({symbol:Zn.success,text:r})}fail(r){return this.stopAndPersist({symbol:Zn.error,text:r})}warn(r){return this.stopAndPersist({symbol:Zn.warning,text:r})}info(r){return this.stopAndPersist({symbol:Zn.info,text:r})}stopAndPersist(r={}){if(this.#l)return this;let t=r.prefixText??this.#a,n=this.#p(t," "),i=r.symbol??" ",u=r.text??this.text,o=typeof u=="string"?" "+u:"",a=r.suffixText??this.#s,s=this.#m(a," "),c=n+i+o+s+`
64
- `;return this.stop(),this.#n.write(c),this}};function nt(e){return new Ol(e)}var $1=require("child_process"),nr=j(require("fs"),1),mn=j(require("path"),1);var N1={dependencies:{"@gorhom/bottom-sheet":"^5.1.2","@hookform/resolvers":"^4.1.3","@react-native-community/datetimepicker":"^8.3.0","@react-native-community/hooks":"^100.1.0","@react-navigation/core":"^7.4.0","@react-navigation/material-top-tabs":"^7.1.1","@react-navigation/native-stack":"^7.2.1","@react-navigation/native":"^7.0.15","@react-navigation/routers":"^7.2.0","@react-navigation/stack":"^7.1.2","@shopify/react-native-skia":"^1.11.11","@tanstack/query-async-storage-persister":"^5.67.3","@tanstack/query-core":"^5.67.3","@tanstack/query-sync-storage-persister":"^5.67.3","@tanstack/react-query-persist-client":"^5.67.3","@tanstack/react-query":"^5.67.3",axios:"^1.8.3","babel-plugin-module-resolver":"^5.0.2",dayjs:"^1.11.13","jotai-optics":"^0.4.0",jotai:"^2.12.2",lodash:"^4.17.21","lottie-react-native":"^7.2.2","react-hook-form":"^7.54.2","react-native-dotenv":"^3.4.11","react-native-gesture-handler":"^2.24.0","react-native-get-random-values":"^1.11.0","react-native-haptic-feedback":"^2.3.3","react-native-keyboard-aware-scroll-view":"^0.9.5","react-native-mmkv":"^3.2.0","react-native-modal-datetime-picker":"^18.0.0","react-native-modal":"^14.0.0-rc.0","react-native-pager-view":"^6.7.0","react-native-reanimated":"^3.17.1","react-native-safe-area-context":"^5.3.0","react-native-screens":"^4.9.1","react-native-simple-toast":"^3.3.2","react-native-turbo-image":"^1.22.1","react-native-url-polyfill":"^2.0.0","react-native":"0.78.0",react:"19.0.0",tailwindcss:"^3.4.16",twrnc:"^4.6.1",uuid:"^11.1.0","zod-validation-error":"^3.4.0",zod:"^3.24.2",zustand:"^5.0.3"}};var U1={devDependencies:{"@babel/core":"^7.25.2","@babel/preset-env":"^7.25.3","@babel/runtime":"^7.25.0","@react-native-community/cli-platform-android":"15.0.1","@react-native-community/cli-platform-ios":"15.0.1","@react-native-community/cli":"15.0.1","@react-native/babel-preset":"0.78.0","@react-native/eslint-config":"0.78.0","@react-native/metro-config":"0.78.0","@react-native/typescript-config":"0.78.0","@swc-node/register":"~1.8.0","@tanstack/eslint-plugin-query":"^5.67.2","@types/jest":"^29.5.13","@types/lodash":"^4.17.16","@types/react-test-renderer":"^19.0.0","@types/react":"^19.0.0","@typescript-eslint/eslint-plugin":"^6.13.2","@typescript-eslint/parser":"^6.21.0","babel-plugin-module-resolver":"^5.0.2","eslint-config-airbnb-typescript":"^17.1.0","eslint-config-prettier":"^9.1.0","eslint-import-resolver-typescript":"^3.8.5","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-perf":"^3.3.3","eslint-plugin-react":"^7.32.2","eslint-plugin-sonarjs":"0.25.1","eslint-plugin-sort-destructure-keys":"^2.0.0","eslint-plugin-sort-keys-fix":"^1.1.2","eslint-plugin-tailwindcss":"^3.18.0",husky:"^9.1.7","prettier-plugin-tailwindcss":"^0.6.11",prettier:"^3.3.2","react-native-dotenv":"^3.4.11","react-native-svg-transformer":"^1.3.0","react-native-svg":"15.11.2"}};function V1(){return __dirname}var it=(e,r)=>{(0,$1.execSync)(`cd ${e} && ${r}`,{stdio:"inherit"})},Me=(e,r)=>{let t=mn.default.join(V1(),`../templates/${r}`);nr.default.copyFile(t,e,n=>{if(n){console.error(`Error copying file: ${n.message}`);return}})},aa=(e,r)=>{let t=mn.default.join(V1(),`../templates/${r}`);nr.default.cpSync(t,e,{recursive:!0},n=>{if(n){console.error(`Error copying file: ${n.message}`);return}})},W1=e=>{nr.default.rmSync(e,{recursive:!0,force:!0},r=>{if(r){console.error(`Error removing directory: ${r.message}`);return}})},Sl=e=>{nr.default.rmSync(e,{recursive:!0,force:!0},r=>{if(r){console.error(`Error removing file: ${r.message}`);return}})},H1=e=>{let r={doctor:"npx nx react-native doctor",android:"npx nx run-android mobile --skip-nx-cache","android:connect":"cd apps/mobile && npm run android:connect","check-env:mobile":"./check-env.sh apps/mobile/.env apps/mobile/.env.template",clean:"./clean-generated-outputs.sh","create-env":"printenv > ","lint:all":"npx nx run-many -t lint -p mobile --parallel=1 --skip-nx-cache","lint:mobile":"npx nx run mobile:lint --skip-nx-cache","mobile-android":"cd apps/mobile && npm run run-android","mobile-ios":"cd apps/mobile && npm run run-ios",prepare:"husky install","serve:mobile":"cd apps/mobile && npm start","serve:all":"npx nx run-many -t serve -p mobile --parallel=1 --skip-nx-cache",xcode:"cd apps/mobile && npm run xcode","touch-xcode":"cd apps/mobile && npm run touch-xcode","setup-fastlane":"cd apps/mobile && npm run setup-fastlane","deploy-android:dev":"cd apps/mobile && npm run deploy-android:dev","deploy-ios:dev":"cd apps/mobile && npm run deploy-ios:dev","ios-certificates":"cd apps/mobile && npm run ios-certificates","pod-install":"cd apps/mobile && npm run pod-install","react-native-asset":"cd apps/mobile && npx react-native-asset"},t=mn.default.join(e,"package.json"),n=JSON.parse(nr.default.readFileSync(t,"utf8"));n.dependencies={...n.dependencies,...N1.dependencies},n.devDependencies={...n.devDependencies,...U1.devDependencies},n.scripts={...n.scripts,...r},nr.default.writeFileSync(t,JSON.stringify(n,null,2))},G1=(e,r)=>{let t=mn.default.join(e,"apps/mobile"),n={xcode:`open -a Xcode ios/${r}.xcworkspace`},i=mn.default.join(t,"package.json"),u=JSON.parse(nr.default.readFileSync(i,"utf8"));u.scripts={...u.scripts,...n},nr.default.writeFileSync(i,JSON.stringify(u,null,2))};var IS="2.1.2",A={title:z.bold.cyan,subtitle:z.cyan,success:z.bold.green,info:z.bold.blue,warning:z.hex("#FFA500").bold,error:z.bold.red,highlight:z.bold.magenta,command:z.yellow.italic,path:z.green.underline,step:e=>z.bgCyan.black(` STEP ${e} `),emoji:{rocket:"\u{1F680}",check:"\u2705",warning:"\u26A0\uFE0F",star:"\u2B50",sparkles:"\u2728",tools:"\u{1F6E0}\uFE0F",mobile:"\u{1F4F1}",folder:"\u{1F4C1}",code:"\u{1F4BB}"}},RS=()=>{console.log(`
64
+ `;return this.stop(),this.#n.write(c),this}};function nt(e){return new Ol(e)}var $1=require("child_process"),nr=j(require("fs"),1),mn=j(require("path"),1);var N1={dependencies:{"@gorhom/bottom-sheet":"^5.1.2","@hookform/resolvers":"^4.1.3","@react-native-community/datetimepicker":"^8.3.0","@react-native-community/hooks":"^100.1.0","@react-navigation/core":"^7.4.0","@react-navigation/material-top-tabs":"^7.1.1","@react-navigation/native-stack":"^7.2.1","@react-navigation/native":"^7.0.15","@react-navigation/routers":"^7.2.0","@react-navigation/stack":"^7.1.2","@shopify/react-native-skia":"^1.11.11","@tanstack/query-async-storage-persister":"^5.67.3","@tanstack/query-core":"^5.67.3","@tanstack/query-sync-storage-persister":"^5.67.3","@tanstack/react-query-persist-client":"^5.67.3","@tanstack/react-query":"^5.67.3",axios:"^1.8.3","babel-plugin-module-resolver":"^5.0.2",dayjs:"^1.11.13","jotai-optics":"^0.4.0",jotai:"^2.12.2",lodash:"^4.17.21","lottie-react-native":"^7.2.2","react-hook-form":"^7.54.2","react-native-dotenv":"^3.4.11","react-native-gesture-handler":"^2.24.0","react-native-get-random-values":"^1.11.0","react-native-haptic-feedback":"^2.3.3","react-native-keyboard-aware-scroll-view":"^0.9.5","react-native-mmkv":"^3.2.0","react-native-modal-datetime-picker":"^18.0.0","react-native-modal":"^14.0.0-rc.0","react-native-pager-view":"^6.7.0","react-native-reanimated":"^3.17.1","react-native-safe-area-context":"^5.3.0","react-native-screens":"^4.9.1","react-native-simple-toast":"^3.3.2","react-native-turbo-image":"^1.22.1","react-native-url-polyfill":"^2.0.0","react-native":"0.78.0",react:"19.0.0",tailwindcss:"^3.4.16",twrnc:"^4.6.1",uuid:"^11.1.0","zod-validation-error":"^3.4.0",zod:"^3.24.2",zustand:"^5.0.3"}};var U1={devDependencies:{"@babel/core":"^7.25.2","@babel/preset-env":"^7.25.3","@babel/runtime":"^7.25.0","@react-native-community/cli-platform-android":"15.0.1","@react-native-community/cli-platform-ios":"15.0.1","@react-native-community/cli":"15.0.1","@react-native/babel-preset":"0.78.0","@react-native/eslint-config":"0.78.0","@react-native/metro-config":"0.78.0","@react-native/typescript-config":"0.78.0","@swc-node/register":"~1.8.0","@tanstack/eslint-plugin-query":"^5.67.2","@types/jest":"^29.5.13","@types/lodash":"^4.17.16","@types/react-test-renderer":"^19.0.0","@types/react":"^19.0.0","@typescript-eslint/eslint-plugin":"^6.13.2","@typescript-eslint/parser":"^6.21.0","babel-plugin-module-resolver":"^5.0.2","eslint-config-airbnb-typescript":"^17.1.0","eslint-config-prettier":"^9.1.0","eslint-import-resolver-typescript":"^3.8.5","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-perf":"^3.3.3","eslint-plugin-react":"^7.32.2","eslint-plugin-sonarjs":"0.25.1","eslint-plugin-sort-destructure-keys":"^2.0.0","eslint-plugin-sort-keys-fix":"^1.1.2","eslint-plugin-tailwindcss":"^3.18.0",husky:"^9.1.7","prettier-plugin-tailwindcss":"^0.6.11",prettier:"^3.3.2","react-native-dotenv":"^3.4.11","react-native-svg-transformer":"^1.3.0","react-native-svg":"15.11.2"}};function V1(){return __dirname}var it=(e,r)=>{(0,$1.execSync)(`cd ${e} && ${r}`,{stdio:"inherit"})},Me=(e,r)=>{let t=mn.default.join(V1(),`../templates/${r}`);nr.default.copyFile(t,e,n=>{if(n){console.error(`Error copying file: ${n.message}`);return}})},aa=(e,r)=>{let t=mn.default.join(V1(),`../templates/${r}`);nr.default.cpSync(t,e,{recursive:!0},n=>{if(n){console.error(`Error copying file: ${n.message}`);return}})},W1=e=>{nr.default.rmSync(e,{recursive:!0,force:!0},r=>{if(r){console.error(`Error removing directory: ${r.message}`);return}})},Sl=e=>{nr.default.rmSync(e,{recursive:!0,force:!0},r=>{if(r){console.error(`Error removing file: ${r.message}`);return}})},H1=e=>{let r={doctor:"npx nx react-native doctor",android:"npx nx run-android mobile --skip-nx-cache","android:connect":"cd apps/mobile && npm run android:connect","check-env:mobile":"./check-env.sh apps/mobile/.env apps/mobile/.env.template",clean:"./clean-generated-outputs.sh","create-env":"printenv > ","lint:all":"npx nx run-many -t lint -p mobile --parallel=1 --skip-nx-cache","lint:mobile":"npx nx run mobile:lint --skip-nx-cache","mobile-android":"cd apps/mobile && npm run run-android","mobile-ios":"cd apps/mobile && npm run run-ios",prepare:"husky install","serve:mobile":"cd apps/mobile && npm start","serve:all":"npx nx run-many -t serve -p mobile --parallel=1 --skip-nx-cache",xcode:"cd apps/mobile && npm run xcode","touch-xcode":"cd apps/mobile && npm run touch-xcode","setup-fastlane":"cd apps/mobile && npm run setup-fastlane","deploy-android:dev":"cd apps/mobile && npm run deploy-android:dev","deploy-ios:dev":"cd apps/mobile && npm run deploy-ios:dev","ios-certificates":"cd apps/mobile && npm run ios-certificates","pod-install":"cd apps/mobile && npm run pod-install","react-native-asset":"cd apps/mobile && npx react-native-asset"},t=mn.default.join(e,"package.json"),n=JSON.parse(nr.default.readFileSync(t,"utf8"));n.dependencies={...n.dependencies,...N1.dependencies},n.devDependencies={...n.devDependencies,...U1.devDependencies},n.scripts={...n.scripts,...r},nr.default.writeFileSync(t,JSON.stringify(n,null,2))},G1=(e,r)=>{let t=mn.default.join(e,"apps/mobile"),n={xcode:`open -a Xcode ios/${r}.xcworkspace`},i=mn.default.join(t,"package.json"),u=JSON.parse(nr.default.readFileSync(i,"utf8"));u.scripts={...u.scripts,...n},nr.default.writeFileSync(i,JSON.stringify(u,null,2))};var IS="2.1.3",A={title:z.bold.cyan,subtitle:z.cyan,success:z.bold.green,info:z.bold.blue,warning:z.hex("#FFA500").bold,error:z.bold.red,highlight:z.bold.magenta,command:z.yellow.italic,path:z.green.underline,step:e=>z.bgCyan.black(` STEP ${e} `),emoji:{rocket:"\u{1F680}",check:"\u2705",warning:"\u26A0\uFE0F",star:"\u2B50",sparkles:"\u2728",tools:"\u{1F6E0}\uFE0F",mobile:"\u{1F4F1}",folder:"\u{1F4C1}",code:"\u{1F4BB}"}},RS=()=>{console.log(`
65
65
  `),console.log(A.title("\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557")),console.log(A.title("\u2551 \u2551")),console.log(A.title("\u2551 ")+A.highlight("NX REACT NATIVE CLI")+A.title(" \u2551")),console.log(A.title("\u2551 ")+A.subtitle("A powerful starter for React Native with NX")+A.title(" \u2551")),console.log(A.title("\u2551 \u2551")),console.log(A.title("\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D")),console.log(`
66
66
  `)};si.name("React Native Starter with NX").description("A starter script to create a new React Native project with NX").version(IS);si.command("create [workspace_name] [bundle_id]").description("create nx workspace with react-native").option("--fresh","Create a fresh project without copying template files").action(async(e,r,t)=>{RS(),e||(e=(await hl.prompt([{type:"input",name:"workspace_name",message:A.info("Enter the workspace name:")}])).workspace_name),r||(r=(await hl.prompt([{type:"input",name:"bundle_id",message:A.info("Enter the bundle ID: ex. org.reactjsnative.example")}])).bundle_id);let n=t.fresh||!1,i=process.cwd(),u=`${i}/${e}`,o=`${u}/apps/mobile`;console.log(`
67
67
  ${A.step(1)} ${A.emoji.folder} ${A.success(`Creating Nx workspace in ${A.path(`./${e}`)}`)}`);let a=nt({text:"Setting up Nx workspace...",color:"cyan"}).start();(0,z1.execSync)(`cd ${i} && npx create-nx-workspace@19.7.0 --preset apps --workspaceType integrated --name ${e} --package-manager=yarn --nxCloud skip`,{stdio:"inherit"}),a.succeed(A.success("Nx workspace created successfully")),console.log(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx-react-native-cli",
3
- "version": "2.1.2",
3
+ "version": "2.1.3",
4
4
  "description": "A react native starter (with NX) cli script",
5
5
  "type": "module",
6
6
  "files": [
@@ -120,7 +120,10 @@ export function BottomSheet(props: BottomSheetProps) {
120
120
  style,
121
121
  ]}
122
122
  >
123
- <BottomSheetScrollView contentContainerStyle={contentContainerStyle}>
123
+ <BottomSheetScrollView
124
+ contentContainerStyle={contentContainerStyle}
125
+ keyboardShouldPersistTaps="handled"
126
+ >
124
127
  {children}
125
128
  </BottomSheetScrollView>
126
129
  </BottomSheetModal>
@@ -0,0 +1,79 @@
1
+ import { BottomSheetTextInput as RNBottomSheetTextInput } from '@gorhom/bottom-sheet';
2
+ import React, { useState } from 'react';
3
+ import {
4
+ TextInput as RNTextInput,
5
+ TextInputProps as RNTextInputProps,
6
+ StyleProp,
7
+ TextStyle,
8
+ View,
9
+ } from 'react-native';
10
+
11
+ import { DefaultNameInputProps } from '@/components/atoms/TextInput/constants';
12
+ import {
13
+ colors,
14
+ defaultInputContainerStyle,
15
+ defaultInputTextStyle,
16
+ disabledInputStyle,
17
+ focusedInputStyle,
18
+ } from '@/tailwind';
19
+ import { DefaultComponentProps } from '@/types';
20
+
21
+ export type BottomSheetTextInputProps = DefaultComponentProps &
22
+ RNTextInputProps & {
23
+ textInputRef?: React.RefObject<RNTextInput>;
24
+ textStyle?: StyleProp<TextStyle>;
25
+ };
26
+
27
+ export function BottomSheetTextInput(props: BottomSheetTextInputProps) {
28
+ const {
29
+ isDisabled = false,
30
+ multiline = false,
31
+ onChangeText,
32
+ placeholder,
33
+ style,
34
+ textInputRef,
35
+ textStyle,
36
+ value,
37
+ ...extraProps
38
+ } = props;
39
+ const [isFocused, setFocused] = useState<boolean>(false);
40
+
41
+ function handleOnChangeText(text: string) {
42
+ onChangeText?.(text);
43
+ }
44
+
45
+ function handleOnFocus() {
46
+ setFocused(true);
47
+ }
48
+
49
+ function handleOnBlur() {
50
+ setFocused(false);
51
+ }
52
+
53
+ return (
54
+ <View
55
+ style={[
56
+ defaultInputContainerStyle,
57
+ focusedInputStyle(isFocused),
58
+ disabledInputStyle(isDisabled),
59
+ style,
60
+ ]}
61
+ >
62
+ <RNBottomSheetTextInput
63
+ {...DefaultNameInputProps}
64
+ ref={textInputRef as unknown as any}
65
+ editable={!isDisabled}
66
+ multiline={multiline}
67
+ placeholder={placeholder}
68
+ placeholderTextColor={colors.gray[600]}
69
+ selectionColor={colors.primary[400]}
70
+ style={[defaultInputTextStyle, textStyle]}
71
+ value={value}
72
+ onBlur={handleOnBlur}
73
+ onChangeText={handleOnChangeText}
74
+ onFocus={handleOnFocus}
75
+ {...extraProps}
76
+ />
77
+ </View>
78
+ );
79
+ }
@@ -1,5 +1,8 @@
1
1
  import { TextInputProps } from 'react-native';
2
2
 
3
+ export const TEXT_INPUT_MIN_HEIGHT = 100;
4
+ export const TEXT_INPUT_LINE_HEIGHT = 21;
5
+
3
6
  export const DefaultPhonePadInputProps: TextInputProps = {
4
7
  autoCapitalize: 'none',
5
8
  autoCorrect: false,
@@ -1,2 +1,4 @@
1
+ export * from './bottom-sheet-text-input.component';
1
2
  export * from './constants';
3
+ export * from './text-input-area.component';
2
4
  export * from './text-input.component';
@@ -0,0 +1,68 @@
1
+ import { useState, useEffect } from 'react';
2
+ import {
3
+ TextInput as RNTextInput,
4
+ TextInputProps as RNTextInputProps,
5
+ StyleProp,
6
+ TextStyle,
7
+ } from 'react-native';
8
+
9
+ import { TextInput } from '@/components/atoms/TextInput';
10
+ import {
11
+ DefaultTextAreaInputProps,
12
+ TEXT_INPUT_MIN_HEIGHT,
13
+ } from '@/components/atoms/TextInput/constants';
14
+ import { getTextInputHeightAdjustment } from '@/components/atoms/TextInput/util';
15
+ import { DefaultComponentProps } from '@/types';
16
+
17
+ export type TextInputAreaProps = DefaultComponentProps &
18
+ RNTextInputProps & {
19
+ textInputRef?: React.RefObject<RNTextInput>;
20
+ textStyle?: StyleProp<TextStyle>;
21
+ };
22
+
23
+ export function TextInputArea(props: TextInputAreaProps) {
24
+ const {
25
+ numberOfLines = DefaultTextAreaInputProps.numberOfLines as number,
26
+ onChangeText,
27
+ textStyle,
28
+ value,
29
+ ...extraProps
30
+ } = props;
31
+ const [numberOfNewLines, setNumberOfNewLines] = useState<number>(numberOfLines);
32
+
33
+ function handleOnChangeText(text: string) {
34
+ onChangeText?.(text);
35
+ }
36
+ useEffect(() => {
37
+ if (!value) {
38
+ return;
39
+ }
40
+
41
+ const newLines = value.split(/\r\n|\r|\n/).length;
42
+
43
+ if (numberOfNewLines !== newLines) {
44
+ setNumberOfNewLines(newLines);
45
+ }
46
+
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ }, [value]);
49
+
50
+ return (
51
+ <TextInput
52
+ {...DefaultTextAreaInputProps}
53
+ multiline
54
+ numberOfLines={numberOfLines}
55
+ textStyle={[
56
+ textStyle,
57
+ {
58
+ height: getTextInputHeightAdjustment(numberOfNewLines),
59
+ minHeight: TEXT_INPUT_MIN_HEIGHT,
60
+ textAlignVertical: 'top',
61
+ },
62
+ ]}
63
+ value={value}
64
+ onChangeText={handleOnChangeText}
65
+ {...extraProps}
66
+ />
67
+ );
68
+ }
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import React, { useState } from 'react';
2
2
  import {
3
3
  TextInput as RNTextInput,
4
4
  TextInputProps as RNTextInputProps,
@@ -7,10 +7,7 @@ import {
7
7
  View,
8
8
  } from 'react-native';
9
9
 
10
- import {
11
- DefaultNameInputProps,
12
- DefaultTextAreaInputProps,
13
- } from '@/components/atoms/TextInput/constants';
10
+ import { DefaultNameInputProps } from '@/components/atoms/TextInput/constants';
14
11
  import {
15
12
  colors,
16
13
  defaultInputContainerStyle,
@@ -20,17 +17,6 @@ import {
20
17
  } from '@/tailwind';
21
18
  import { DefaultComponentProps } from '@/types';
22
19
 
23
- export const TEXT_INPUT_MIN_HEIGHT = 100;
24
- export const TEXT_INPUT_LINE_HEIGHT = 21;
25
-
26
- export function getTextInputHeightAdjustment(numberOfNewLines: number) {
27
- if (numberOfNewLines < 2) {
28
- return TEXT_INPUT_MIN_HEIGHT;
29
- }
30
-
31
- return TEXT_INPUT_MIN_HEIGHT + (numberOfNewLines - 2) * TEXT_INPUT_LINE_HEIGHT;
32
- }
33
-
34
20
  export type TextInputProps = DefaultComponentProps &
35
21
  RNTextInputProps & {
36
22
  textInputRef?: React.RefObject<RNTextInput>;
@@ -90,50 +76,3 @@ export function TextInput(props: TextInputProps) {
90
76
  </View>
91
77
  );
92
78
  }
93
-
94
- export function TextInputArea(props: TextInputProps) {
95
- const {
96
- numberOfLines = DefaultTextAreaInputProps.numberOfLines as number,
97
- onChangeText,
98
- textStyle,
99
- value,
100
- ...extraProps
101
- } = props;
102
- const [numberOfNewLines, setNumberOfNewLines] = useState<number>(numberOfLines);
103
-
104
- function handleOnChangeText(text: string) {
105
- onChangeText?.(text);
106
- }
107
- useEffect(() => {
108
- if (!value) {
109
- return;
110
- }
111
-
112
- const newLines = value.split(/\r\n|\r|\n/).length;
113
-
114
- if (numberOfNewLines !== newLines) {
115
- setNumberOfNewLines(newLines);
116
- }
117
-
118
- // eslint-disable-next-line react-hooks/exhaustive-deps
119
- }, [value]);
120
-
121
- return (
122
- <TextInput
123
- {...DefaultTextAreaInputProps}
124
- multiline
125
- numberOfLines={numberOfLines}
126
- textStyle={[
127
- textStyle,
128
- {
129
- height: getTextInputHeightAdjustment(numberOfNewLines),
130
- minHeight: TEXT_INPUT_MIN_HEIGHT,
131
- textAlignVertical: 'top',
132
- },
133
- ]}
134
- value={value}
135
- onChangeText={handleOnChangeText}
136
- {...extraProps}
137
- />
138
- );
139
- }
@@ -0,0 +1,12 @@
1
+ import {
2
+ TEXT_INPUT_LINE_HEIGHT,
3
+ TEXT_INPUT_MIN_HEIGHT,
4
+ } from '@/components/atoms/TextInput/constants';
5
+
6
+ export function getTextInputHeightAdjustment(numberOfNewLines: number) {
7
+ if (numberOfNewLines < 2) {
8
+ return TEXT_INPUT_MIN_HEIGHT;
9
+ }
10
+
11
+ return TEXT_INPUT_MIN_HEIGHT + (numberOfNewLines - 2) * TEXT_INPUT_LINE_HEIGHT;
12
+ }
@@ -1,33 +1,4 @@
1
1
  import ArrowLeftIcon from './arrow-left.svg';
2
- import ActiveCheckboxIcon from './checkbox-active.svg';
3
- import UnActiveCheckboxIcon from './checkbox-unactive.svg';
4
- import CloseIcon from './close.svg';
5
- import DownloadIcon from './download.svg';
6
- import EmailIcon from './email.svg';
7
- import EyeSlashIcon from './eye-slash.svg';
8
- import EyeIcon from './eye.svg';
9
2
  import GearIcon from './gear.svg';
10
- import HomeIcon from './home.svg';
11
- import PencilIcon from './pencil.svg';
12
- import PhoneIcon from './phone.svg';
13
- import UserCircleIcon from './user-circle.svg';
14
- import UserIcon from './user.svg';
15
- import WarningIcon from './warning.svg';
16
3
 
17
- export {
18
- ActiveCheckboxIcon,
19
- ArrowLeftIcon,
20
- CloseIcon,
21
- DownloadIcon,
22
- EmailIcon,
23
- EyeIcon,
24
- EyeSlashIcon,
25
- GearIcon,
26
- HomeIcon,
27
- PencilIcon,
28
- PhoneIcon,
29
- UnActiveCheckboxIcon,
30
- UserCircleIcon,
31
- UserIcon,
32
- WarningIcon,
33
- };
4
+ export { ArrowLeftIcon, GearIcon };
@@ -1,24 +1,10 @@
1
1
  import React from 'react';
2
- import { View } from 'react-native';
3
2
 
4
- import {
5
- BottomSheet,
6
- Button,
7
- Divider,
8
- OutlinedButton,
9
- ScreenContainer,
10
- ScreenHeader,
11
- Typography,
12
- useBottomSheet,
13
- } from '@/components';
14
- import { ArrowLeftIcon, HomeIcon } from '@/icons';
3
+ import { ScreenContainer, ScreenHeader } from '@/components';
15
4
  import { PublicScreenProps, Screens } from '@/routes';
16
- import { tw } from '@/tailwind';
17
5
  import { toast } from '@/utils';
18
6
 
19
7
  export function LandingScreen(props: PublicScreenProps<Screens.LANDING>) {
20
- const { expandSheet, sheetRef } = useBottomSheet();
21
-
22
8
  function toastHi() {
23
9
  toast('Hi!');
24
10
  }
@@ -26,20 +12,6 @@ export function LandingScreen(props: PublicScreenProps<Screens.LANDING>) {
26
12
  return (
27
13
  <ScreenContainer>
28
14
  <ScreenHeader title="Landing" onExtraActionPress={toastHi} />
29
- <ArrowLeftIcon />
30
- <Divider />
31
- <HomeIcon />
32
- <View style={tw`mx-4`}>
33
- <View style={tw`gap-2`}>
34
- <Button title="Show Bottom Sheet" onPress={expandSheet} />
35
- <OutlinedButton title="Login" />
36
- </View>
37
- </View>
38
- <BottomSheet sheetRef={sheetRef}>
39
- <View>
40
- <Typography>Bottom Sheet</Typography>
41
- </View>
42
- </BottomSheet>
43
15
  </ScreenContainer>
44
16
  );
45
17
  }
@@ -1,4 +0,0 @@
1
- <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <rect width="18" height="18" rx="4.5" fill="currentColor"/>
3
- <path d="M5.0625 9.5625L7.3125 11.8125L12.9375 6.1875" stroke="white" stroke-width="1.6875" stroke-linecap="round" stroke-linejoin="round"/>
4
- </svg>
@@ -1,4 +0,0 @@
1
- <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <rect width="18" height="18" fill="none"/>
3
- <rect x="0.5625" y="0.5625" width="16.875" height="16.875" rx="3.9375" stroke="currentColor" stroke-width="1.125"/>
4
- </svg>
@@ -1,3 +0,0 @@
1
- <svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M6.66101 5.21985C6.51884 5.08737 6.33079 5.01524 6.13649 5.01867C5.94219 5.0221 5.7568 5.10081 5.61939 5.23822C5.48198 5.37564 5.40327 5.56102 5.39984 5.75532C5.39641 5.94963 5.46853 6.13767 5.60101 6.27985L9.32101 9.99985L5.60101 13.7198C5.52733 13.7885 5.46822 13.8713 5.42723 13.9633C5.38624 14.0553 5.3642 14.1546 5.36242 14.2553C5.36064 14.356 5.37917 14.4561 5.41689 14.5494C5.45461 14.6428 5.51076 14.7277 5.58197 14.7989C5.65319 14.8701 5.73803 14.9262 5.83142 14.964C5.9248 15.0017 6.02483 15.0202 6.12554 15.0184C6.22624 15.0167 6.32555 14.9946 6.41755 14.9536C6.50955 14.9126 6.59235 14.8535 6.66101 14.7798L10.381 11.0598L14.101 14.7798C14.1697 14.8535 14.2525 14.9126 14.3445 14.9536C14.4365 14.9946 14.5358 15.0167 14.6365 15.0184C14.7372 15.0202 14.8372 15.0017 14.9306 14.964C15.024 14.9262 15.1088 14.8701 15.1801 14.7989C15.2513 14.7277 15.3074 14.6428 15.3451 14.5494C15.3829 14.4561 15.4014 14.356 15.3996 14.2553C15.3978 14.1546 15.3758 14.0553 15.3348 13.9633C15.2938 13.8713 15.2347 13.7885 15.161 13.7198L11.441 9.99985L15.161 6.27985C15.2935 6.13767 15.3656 5.94963 15.3622 5.75532C15.3588 5.56102 15.28 5.37564 15.1426 5.23822C15.0052 5.10081 14.8198 5.0221 14.6255 5.01867C14.4312 5.01524 14.2432 5.08737 14.101 5.21985L10.381 8.93985L6.66101 5.21985Z" fill="currentColor"/>
3
- </svg>
@@ -1,4 +0,0 @@
1
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M12.9004 3.2999C12.9004 2.80285 12.4974 2.3999 12.0004 2.3999C11.5033 2.3999 11.1004 2.80285 11.1004 3.2999V13.6362L7.55471 9.88194C7.21341 9.52058 6.6438 9.5043 6.28243 9.84559C5.92107 10.1869 5.90479 10.7565 6.24608 11.1179L11.3461 16.5179C11.5161 16.6979 11.7528 16.7999 12.0004 16.7999C12.248 16.7999 12.4847 16.6979 12.6547 16.5179L17.7547 11.1179C18.096 10.7565 18.0797 10.1869 17.7184 9.84559C17.357 9.5043 16.7874 9.52058 16.4461 9.88194L12.9004 13.6362V3.2999Z" fill="currentColor"/>
3
- <path d="M4.20039 15.2999C4.20039 14.8028 3.79745 14.3999 3.30039 14.3999C2.80333 14.3999 2.40039 14.8028 2.40039 15.2999V18.2999C2.40039 20.1224 3.87785 21.5999 5.70039 21.5999H18.3004C20.1229 21.5999 21.6004 20.1224 21.6004 18.2999V15.2999C21.6004 14.8028 21.1974 14.3999 20.7004 14.3999C20.2033 14.3999 19.8004 14.8028 19.8004 15.2999V18.2999C19.8004 19.1283 19.1288 19.7999 18.3004 19.7999H5.70039C4.87196 19.7999 4.20039 19.1283 4.20039 18.2999V15.2999Z" fill="currentColor"/>
4
- </svg>
@@ -1,10 +0,0 @@
1
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_17463_17612)">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M3.404 12.5957C2.6481 11.8399 2.09028 10.9093 1.77995 9.88637C1.46961 8.86345 1.41635 7.77978 1.62488 6.73135C1.8334 5.68293 2.29728 4.70212 2.97542 3.8758C3.65355 3.04948 4.52502 2.40316 5.51261 1.99409C6.50021 1.58503 7.57344 1.42585 8.63725 1.53065C9.70106 1.63544 10.7226 2.00099 11.6114 2.5949C12.5002 3.18882 13.2288 3.99276 13.7326 4.93552C14.2365 5.87829 14.5001 6.93076 14.5 7.99972C14.5 8.33124 14.3683 8.64918 14.1339 8.88361C13.8995 9.11803 13.5815 9.24972 13.25 9.24972C12.9185 9.24972 12.6005 9.11803 12.3661 8.88361C12.1317 8.64918 12 8.33124 12 7.99972C11.9999 7.03228 11.6492 6.09766 11.0128 5.36898C10.3765 4.6403 9.49757 4.16694 8.53895 4.03659C7.58033 3.90624 6.60696 4.12773 5.79913 4.66004C4.9913 5.19234 4.40376 5.99938 4.14534 6.93167C3.88693 7.86395 3.97515 8.85831 4.39366 9.73053C4.81218 10.6028 5.53263 11.2938 6.42156 11.6755C7.31049 12.0573 8.30766 12.1039 9.22835 11.8068C10.149 11.5098 10.9309 10.8891 11.429 10.0597C11.8257 10.4103 12.3152 10.6389 12.8386 10.7181C13.3621 10.7973 13.8972 10.7237 14.3799 10.5062C14.8626 10.2887 15.2722 9.93646 15.5595 9.49185C15.8469 9.04724 15.9999 8.52913 16 7.99972C15.9999 6.14888 15.3581 4.35533 14.1839 2.92465C13.0097 1.49397 11.3757 0.514697 9.56046 0.153678C7.74517 -0.207342 5.86086 0.0722327 4.2286 0.944765C2.59633 1.8173 1.3171 3.2288 0.608871 4.93878C-0.0993615 6.64875 -0.192774 8.55139 0.344549 10.3225C0.881871 12.0936 2.01668 13.6237 3.55563 14.6519C5.09457 15.6801 6.94243 16.1429 8.78436 15.9615C10.6263 15.78 12.3483 14.9655 13.657 13.6567C13.7895 13.5145 13.8616 13.3265 13.8582 13.1322C13.8547 12.9379 13.776 12.7525 13.6386 12.6151C13.5012 12.4777 13.3158 12.399 13.1215 12.3955C12.9272 12.3921 12.7392 12.4642 12.597 12.5967C11.9934 13.2004 11.2768 13.6793 10.4881 14.006C9.69947 14.3327 8.85417 14.5008 8.0005 14.5008C7.14684 14.5008 6.30153 14.3327 5.51286 14.006C4.72419 13.6793 4.00759 13.2004 3.404 12.5967M8 5.49972C7.33696 5.49972 6.70108 5.76311 6.23223 6.23195C5.76339 6.7008 5.5 7.33668 5.5 7.99972C5.5 8.66276 5.76339 9.29865 6.23223 9.76749C6.70108 10.2363 7.33696 10.4997 8 10.4997C8.66304 10.4997 9.29893 10.2363 9.76777 9.76749C10.2366 9.29865 10.5 8.66276 10.5 7.99972C10.5 7.33668 10.2366 6.7008 9.76777 6.23195C9.29893 5.76311 8.66304 5.49972 8 5.49972Z" fill="currentColor"/>
4
- </g>
5
- <defs>
6
- <clipPath id="clip0_17463_17612">
7
- <rect width="16" height="16" fill="white"/>
8
- </clipPath>
9
- </defs>
10
- </svg>
@@ -1,11 +0,0 @@
1
- <svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_17391_14338)">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M3.12426 1.77583C2.88995 1.54152 2.51005 1.54152 2.27574 1.77583C2.04142 2.01015 2.04142 2.39005 2.27574 2.62436L13.8757 14.2244C14.11 14.4587 14.4899 14.4587 14.7243 14.2244C14.9586 13.99 14.9586 13.6101 14.7243 13.3758L13.3281 11.9797C14.5051 11.0876 15.4276 9.87728 15.9675 8.47684C16.0852 8.17159 16.0853 7.83311 15.9678 7.5278C14.8136 4.5285 11.9048 2.4001 8.49887 2.4001C7.12566 2.4001 5.83325 2.74609 4.70408 3.35565L3.12426 1.77583ZM6.70155 5.35312L7.57494 6.22651C7.85161 6.08188 8.16633 6.0001 8.50015 6.0001C9.60472 6.0001 10.5001 6.89553 10.5001 8.0001C10.5001 8.33392 10.4184 8.64863 10.2737 8.92531L11.1473 9.79885C11.4963 9.28625 11.7003 8.667 11.7003 8.0001C11.7003 6.23279 10.2676 4.8001 8.5003 4.8001C7.8334 4.8001 7.21415 5.00411 6.70155 5.35312Z" fill="#939FA3"/>
4
- <path d="M9.09871 11.1442L11.1169 13.1624C10.297 13.446 9.41664 13.6001 8.5003 13.6001C5.09438 13.6001 2.18558 11.4717 1.0314 8.4724C0.913913 8.16708 0.914015 7.82861 1.03169 7.52336C1.42483 6.50355 2.02086 5.58456 2.77033 4.81585L5.35616 7.40168C5.31948 7.59554 5.3003 7.79558 5.3003 8.0001C5.3003 9.76741 6.73299 11.2001 8.5003 11.2001C8.70482 11.2001 8.90486 11.1809 9.09871 11.1442Z" fill="#939FA3"/>
5
- </g>
6
- <defs>
7
- <clipPath id="clip0_17391_14338">
8
- <rect width="16" height="16" fill="white" transform="translate(0.5)"/>
9
- </clipPath>
10
- </defs>
11
- </svg>
@@ -1,4 +0,0 @@
1
- <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M10 12.5C11.3807 12.5 12.5 11.3807 12.5 10C12.5 8.61929 11.3807 7.5 10 7.5C8.61929 7.5 7.5 8.61929 7.5 10C7.5 11.3807 8.61929 12.5 10 12.5Z" fill="currentColor"/>
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M0.664255 10.5904C0.517392 10.2087 0.517518 9.78563 0.66461 9.40408C2.10878 5.65788 5.7433 3 9.99859 3C14.256 3 17.892 5.66051 19.3347 9.40962C19.4816 9.79127 19.4814 10.2144 19.3344 10.5959C17.8902 14.3421 14.2557 17 10.0004 17C5.74298 17 2.10698 14.3395 0.664255 10.5904ZM14.0004 10C14.0004 12.2091 12.2095 14 10.0004 14C7.79123 14 6.00037 12.2091 6.00037 10C6.00037 7.79086 7.79123 6 10.0004 6C12.2095 6 14.0004 7.79086 14.0004 10Z" fill="currentColor"/>
4
- </svg>
@@ -1,3 +0,0 @@
1
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M7.43395 1.83441C7.74637 1.52199 8.2529 1.52199 8.56532 1.83441L14.1653 7.43441C14.3941 7.66321 14.4626 8.0073 14.3387 8.30624C14.2149 8.60518 13.9232 8.8001 13.5996 8.8001H12.7996V13.6001C12.7996 14.0419 12.4415 14.4001 11.9996 14.4001H10.3996C9.9578 14.4001 9.59963 14.0419 9.59963 13.6001V11.2001C9.59963 10.7583 9.24146 10.4001 8.79963 10.4001H7.19963C6.7578 10.4001 6.39963 10.7583 6.39963 11.2001V13.6001C6.39963 14.0419 6.04146 14.4001 5.59963 14.4001H3.99963C3.5578 14.4001 3.19963 14.0419 3.19963 13.6001V8.8001H2.39963C2.07606 8.8001 1.78435 8.60518 1.66053 8.30624C1.5367 8.0073 1.60515 7.66321 1.83395 7.43441L7.43395 1.83441Z" fill="currentColor"/>
3
- </svg>
@@ -1,3 +0,0 @@
1
- <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M16.8617 4.48667L18.5492 2.79917C19.2814 2.06694 20.4686 2.06694 21.2008 2.79917C21.9331 3.53141 21.9331 4.71859 21.2008 5.45083L6.83219 19.8195C6.30351 20.3481 5.65144 20.7368 4.93489 20.9502L2.25 21.75L3.04978 19.0651C3.26323 18.3486 3.65185 17.6965 4.18052 17.1678L16.8617 4.48667ZM16.8617 4.48667L19.5 7.12499" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
3
- </svg>
@@ -1,3 +0,0 @@
1
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M1.59961 2.8001C1.59961 2.13736 2.13687 1.6001 2.79961 1.6001H3.71831C4.28074 1.6001 4.76772 1.99074 4.88973 2.53978L5.4627 5.11815C5.60045 5.738 5.23148 6.35786 4.62094 6.5323L3.87471 6.74551C3.54609 6.8394 3.36047 7.18942 3.49078 7.50537C4.42362 9.76709 6.23262 11.5761 8.49434 12.5089C8.81029 12.6392 9.16031 12.4536 9.2542 12.125L9.46741 11.3788C9.64185 10.7682 10.2617 10.3993 10.8816 10.537L13.4599 11.11C14.009 11.232 14.3996 11.719 14.3996 12.2814V13.2001C14.3996 13.8628 13.8623 14.4001 13.1996 14.4001H11.9996C11.0808 14.4001 10.1889 14.2808 9.339 14.0565C5.73292 13.1048 2.89487 10.2668 1.9432 6.66071C1.71891 5.81083 1.59961 4.91894 1.59961 4.0001V2.8001Z" fill="currentColor"/>
3
- </svg>
@@ -1,3 +0,0 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M12.6004 7.00039C12.6004 10.0932 10.0932 12.6004 7.00039 12.6004C3.9076 12.6004 1.40039 10.0932 1.40039 7.00039C1.40039 3.9076 3.9076 1.40039 7.00039 1.40039C10.0932 1.40039 12.6004 3.9076 12.6004 7.00039ZM8.75039 5.25039C8.75039 6.21689 7.96689 7.00039 7.00039 7.00039C6.03389 7.00039 5.25039 6.21689 5.25039 5.25039C5.25039 4.28389 6.03389 3.50039 7.00039 3.50039C7.96689 3.50039 8.75039 4.28389 8.75039 5.25039ZM7.00039 8.40039C5.62932 8.40039 4.4117 9.05736 3.64514 10.0737C4.47695 10.9813 5.67221 11.5504 7.00039 11.5504C8.32857 11.5504 9.52383 10.9813 10.3556 10.0737C9.58908 9.05736 8.37146 8.40039 7.00039 8.40039Z" fill="currentColor"/>
3
- </svg>
@@ -1,4 +0,0 @@
1
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M8.00039 6.4001C9.32587 6.4001 10.4004 5.32558 10.4004 4.0001C10.4004 2.67461 9.32587 1.6001 8.00039 1.6001C6.67491 1.6001 5.60039 2.67461 5.60039 4.0001C5.60039 5.32558 6.67491 6.4001 8.00039 6.4001Z" fill="currentColor"/>
3
- <path d="M2.77253 11.5949C2.61662 12.0013 2.75587 12.4569 3.09975 12.7238C4.45364 13.7745 6.154 14.4001 8.00048 14.4001C9.84884 14.4001 11.5508 13.7733 12.9054 12.7206C13.2491 12.4534 13.388 11.9978 13.2318 11.5915C12.4244 9.49093 10.3877 8.0001 8.00284 8.0001C5.61664 8.0001 3.57902 9.49256 2.77253 11.5949Z" fill="currentColor"/>
4
- </svg>
@@ -1,3 +0,0 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M6.99987 5.25001V7.43751M1.57297 9.40662C1.06817 10.2816 1.69967 11.375 2.70984 11.375H11.2899C12.3001 11.375 12.9316 10.2816 12.4268 9.40662L8.13673 1.97058C7.63165 1.09509 6.36809 1.09509 5.863 1.97058L1.57297 9.40662ZM6.99987 9.18751H7.00424V9.19188H6.99987V9.18751Z" stroke="currentColor" stroke-width="1.05" stroke-linecap="round" stroke-linejoin="round"/>
3
- </svg>