From e68387f4da0d3ec6339708364c9fdeb800c2f93a Mon Sep 17 00:00:00 2001 From: Joshua Lochner <26504141+xenova@users.noreply.github.com> Date: Wed, 13 Aug 2025 17:00:30 -0400 Subject: [PATCH 1/2] Create bedtime story generation demo --- bedtime-story-generator/.gitignore | 24 + bedtime-story-generator/README.md | 69 + bedtime-story-generator/eslint.config.js | 23 + bedtime-story-generator/index.html | 16 + bedtime-story-generator/package-lock.json | 2985 +++++++++++++++++ bedtime-story-generator/package.json | 41 + bedtime-story-generator/public/bubble.mp3 | Bin 0 -> 34560 bytes bedtime-story-generator/public/hover.mp3 | Bin 0 -> 14754 bytes bedtime-story-generator/public/music.mp3 | Bin 0 -> 4199653 bytes bedtime-story-generator/src/App.tsx | 138 + .../src/components/ErrorScreen.tsx | 37 + .../src/components/LandingScreen.tsx | 49 + .../src/components/MainApplication.tsx | 523 +++ .../src/components/NeoButton.tsx | 47 + .../src/components/OptionCard.tsx | 88 + .../src/components/ProgressScreen.tsx | 25 + bedtime-story-generator/src/constants.ts | 31 + .../src/hooks/useAudioPlayer.ts | 86 + bedtime-story-generator/src/hooks/useLLM.ts | 86 + bedtime-story-generator/src/hooks/useTTS.ts | 75 + bedtime-story-generator/src/index.css | 88 + bedtime-story-generator/src/main.tsx | 10 + bedtime-story-generator/src/play-worklet.js | 63 + bedtime-story-generator/src/vite-env.d.ts | 1 + bedtime-story-generator/tsconfig.app.json | 29 + bedtime-story-generator/tsconfig.json | 4 + bedtime-story-generator/tsconfig.node.json | 25 + bedtime-story-generator/vite.config.ts | 14 + 28 files changed, 4577 insertions(+) create mode 100644 bedtime-story-generator/.gitignore create mode 100644 bedtime-story-generator/README.md create mode 100644 bedtime-story-generator/eslint.config.js create mode 100644 bedtime-story-generator/index.html create mode 100644 bedtime-story-generator/package-lock.json create mode 100644 bedtime-story-generator/package.json create mode 100644 bedtime-story-generator/public/bubble.mp3 create mode 100644 bedtime-story-generator/public/hover.mp3 create mode 100644 bedtime-story-generator/public/music.mp3 create mode 100644 bedtime-story-generator/src/App.tsx create mode 100644 bedtime-story-generator/src/components/ErrorScreen.tsx create mode 100644 bedtime-story-generator/src/components/LandingScreen.tsx create mode 100644 bedtime-story-generator/src/components/MainApplication.tsx create mode 100644 bedtime-story-generator/src/components/NeoButton.tsx create mode 100644 bedtime-story-generator/src/components/OptionCard.tsx create mode 100644 bedtime-story-generator/src/components/ProgressScreen.tsx create mode 100644 bedtime-story-generator/src/constants.ts create mode 100644 bedtime-story-generator/src/hooks/useAudioPlayer.ts create mode 100644 bedtime-story-generator/src/hooks/useLLM.ts create mode 100644 bedtime-story-generator/src/hooks/useTTS.ts create mode 100644 bedtime-story-generator/src/index.css create mode 100644 bedtime-story-generator/src/main.tsx create mode 100644 bedtime-story-generator/src/play-worklet.js create mode 100644 bedtime-story-generator/src/vite-env.d.ts create mode 100644 bedtime-story-generator/tsconfig.app.json create mode 100644 bedtime-story-generator/tsconfig.json create mode 100644 bedtime-story-generator/tsconfig.node.json create mode 100644 bedtime-story-generator/vite.config.ts diff --git a/bedtime-story-generator/.gitignore b/bedtime-story-generator/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/bedtime-story-generator/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/bedtime-story-generator/README.md b/bedtime-story-generator/README.md new file mode 100644 index 00000000..10e1545a --- /dev/null +++ b/bedtime-story-generator/README.md @@ -0,0 +1,69 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default tseslint.config([ + globalIgnores(["dist"]), + { + files: ["**/*.{ts,tsx}"], + extends: [ + // Other configs... + + // Remove tseslint.configs.recommended and replace with this + ...tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + ...tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + ...tseslint.configs.stylisticTypeChecked, + + // Other configs... + ], + languageOptions: { + parserOptions: { + project: ["./tsconfig.node.json", "./tsconfig.app.json"], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]); +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from "eslint-plugin-react-x"; +import reactDom from "eslint-plugin-react-dom"; + +export default tseslint.config([ + globalIgnores(["dist"]), + { + files: ["**/*.{ts,tsx}"], + extends: [ + // Other configs... + // Enable lint rules for React + reactX.configs["recommended-typescript"], + // Enable lint rules for React DOM + reactDom.configs.recommended, + ], + languageOptions: { + parserOptions: { + project: ["./tsconfig.node.json", "./tsconfig.app.json"], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]); +``` diff --git a/bedtime-story-generator/eslint.config.js b/bedtime-story-generator/eslint.config.js new file mode 100644 index 00000000..f4616740 --- /dev/null +++ b/bedtime-story-generator/eslint.config.js @@ -0,0 +1,23 @@ +import js from "@eslint/js"; +import globals from "globals"; +import reactHooks from "eslint-plugin-react-hooks"; +import reactRefresh from "eslint-plugin-react-refresh"; +import tseslint from "typescript-eslint"; +import { globalIgnores } from "eslint/config"; + +export default tseslint.config([ + globalIgnores(["dist"]), + { + files: ["**/*.{ts,tsx}"], + extends: [ + js.configs.recommended, + tseslint.configs.recommended, + reactHooks.configs["recommended-latest"], + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + }, +]); diff --git a/bedtime-story-generator/index.html b/bedtime-story-generator/index.html new file mode 100644 index 00000000..0739f869 --- /dev/null +++ b/bedtime-story-generator/index.html @@ -0,0 +1,16 @@ + + +
+ + + +G)Q-MD&5^6NJ~qq zU_3AW-oIgI_xHL#=UnHeNC~dz5&qs_J#D0-`A89PG0Z#I*CU<(afLCe{^_8t?I+AY z+N&l1EJHZtaVlQ}iO@?e%C10M!yyU$6|M(BuZ>gF$oga|!%m8)m8{RHDK&^(Thy)o zvznlqR~7OHOt1?CJXRv7^7EvsDBM+ldI;VZb@&M=(&iV(W26NGh%ve7^5p`9W9Caw zxVMFm#57mRRQuCA>n4wP1f0B~eFn>uWg5ascD!|oLD3R9l&3*W6yD4N=l KTBR&Kd0Zt3V|I7#O|OY;VZx@^o$I)*LBj-)gE zD9CM;55ZK`U)FYOvsB|wL9v^#9oDu31GxCeFx5YY5MSprdWX|cDrKMWp_UF=w^SiS z2$8MXJr@NA50JQ#tV@k@+JlEsagWzX7uW^i9Acxd|JjfuUU!L}rF=cr?9 z97DOB^qj@rrs2|@Wr)`{%39@7}5GSm4uV4sp;FU%wr4~UjseDk{Y|f9W-fE9F?|bZJc@XlQ z5+K)3y~oA4l*rSQHdb};*Y+| LsEdsC zLeyP_(U^31dA5V2R?l+3)bL&(Yl3u4`&TN_#>*Mfi74K@8E1q5WmAv(A%-5L=pQVP z z#R=`J-6<(WTH8`hwYg|8u)nDhX;1Pj>=OD?#1`+9r~8nm2~lOO4Tj-NBieLcK0D zJnwf;8)Mc*1jNKO;|-iennZZA#xt{2xIED)IZAZ8u0ad?;d%;bzuQ#l;)i?gyOPOi zvQX ;jEAyl=u&0D(%fKWM*!U)DWq+dj0oQgrpd4aI++(70Aq&=B5C zd wm`}2_j2&{EA}w!?UPW`hWBPCGKjP zuQcHc|LNf#UzB*^pOAn2=W+OT&zD#Cpn$o$1i~r8pVvq^+ILdAGgoKj1#P{(R3nrI zfuT_)1v4 ikK1i&1Dn5ca2(7t+1uAFXMpm?@JhgNc9ITb-@m zHl_cWc~TbHd*XV-ZCDdAVYR;up}l8NCh+;`=N0pfZkFe7{w@41{YDkQ#i>|n-)K2{ zKCV{7EQ-Tf1s a3B%bG2l+hSJO*tx@QgqrZ8755o1sjNkB zezMVwDvS=7Jm|5~y#AC8#U1~|xM(QO#YsGk(v*D!7NjIsVyAz-A`>yW<>8E@wa@-Y z%`H^e &8;Xr^xuEG9IQsufj!QPx}l!FZ%(t>FP;Y z^rZ7}nTKPH&N8g=!MY**fm5c&qh{x?vxNCnkbbDoBxB4!cO zQHrQwP#g(xoLF%D1h=8*;ixoz<_r);BCZa5Ta0l%J z( eMX~*oKVWrk7C=Z2jb_rMtydPL;U_*Zi9U3IkFI%D(eF;)ctzG6v46!qlRZe zODKtn8sl;S-4c@?#e<8TeL5P^M74RB0fD~9a(risK&HDDG(Yhz{W9m&C^f%MSg!Kw z3w|G<+@yR?Qp%FpM&P0*<+5Av?6pJH`GEu*g1YLCZ{|e!*VD?LJU^|C6iXDol&xSc zRmV87AfZ?*$udpFQ_8V(*v4jdOPZ=)&$qWGb)#Jyr5N@69?E_QaQVu
|2(PI97oB&n>94rF^xbEm7N7^W*auEdVLl}*z?AS8f9a20672K=T z?qyD>rMCgczy}go`^ZF*zcOuNoWe5t 539bFI&2E_r-;N|%hEo0_1JxnpZ3l7 zSjS!B&m_#`N->`nOIYL <* zDL5!oD8ms8B-+}iyo3ac_-M^d=2fxt6m7tW-#HRfO&=^$d+l{D+ZXD0FAlz~(O9`a z9Sd8ciG*rlZJGteOfl4w)&N1)bvkk*^~n&bBc$GG?CUYlgT~;`f&Oha%?Jlu3&mrR zXsb>5>ht56^B4aPAq8Jx!99Se+vimau59YBRNipr #He zbjlqfxd6~Mz~Ee%#m&&B-rV(mMu!>J!PUR*SLcvnPW<(^uaGNI)X!pXz;V+yO2w^h zzd^6>_P(g{N~svk;!Ei2)7zrStL3*!h%wMesetwU+mc?F4%+H(s}R*ldvK2WtR z+!cpO&6(J0KCE-ffBL^pg4e#x|1bVmOGD=Zz$KYHY3*6L{An7c_l@Dhz|Wx&1vZW2 zQK1_`an4@VR|MXdNc+S{X{D8`?4gmRh6JlReZ`_AwWFK7P4 MRIVNC%ItTsUq5u9*nhx?Zr04(MVq0 zEoUa1Za^u^YXmVq7249SMoDR+rsP&?+6$BEg@0~$@#q6Sls*!@VJ7In@Uzk>0QvBkloUY={-8c5vCg&Ou;ZMz&qHE}_w#9c!XPQs8O#I_Ig zbQafmzI(rktw7nUpzdez(=V`OP6zw3Yp!yfv2ahR=~qS%idcxSL_q11&k(6ifnQ8a z5W5cFk_$r&yFgbnBfcR {SgTu!mZ?Jd(b=nX@qa_a|qLeA;B&VtO{5 zBse{}>RjINZIx845}y&eWi~Q1s7_ Haf3_YY*1KVD$ %ru?7& z&ypUWeFrkof^YifI$!1=H&W7#zeY z%C+I+F^0!ylioGO5lR7Dxk0!R#v9tGytB am zGJ}~J3&eIU$d$I0t!|RWhe29}H(VhLl^VGo4#fs-IH+*I2&%|MR;kq?GQ~y`Y)5jP zE|KKODp+ltVwPB+Hfd#0?2%9Nyz__<7ucCcyXhE9Z$uyMuB=J8G&-Jj#MSMFf)h>T z+u8J?Q)^K5A=N2Ky;7YdCG6FDMZG-gw_5yPcee>0mt@z T6a_-hrLWrgI+0<`S8v#$GO1#KY-oX zRofOie&q>x0X}-+l=Hyqvh|B>RPx8tOv#)VuPuA^hZ0&OA>AcJ^q9A=&R4)`p>ywk zfF}ImE l@8!$hrpUNs` zI*r6MJq^pq1f`{IVj-0jPu@=
nPF?{<2q!#Sx494d?F2nmVUU{Nl1OLg} zoy 8_&rAXBm7A0%M1VSo~>;xcQxJ#@Svnbb^Jwhb@#H0GZe4O>?+l|p5!>GUwOVn zF;)y^-&=(Dmn+qqRV`1kXaH`dF&}_tx-r4FIZrrM&?@7vO ( z*g}7uoxRYMp-`xG|Ct=eFw6lee&WysEe~PbSFbL(w^nvBj((>0qRy+lP%=wjcqsBu z6}Dz8sUfNDC{VPp32y*V+O$XlNyYJ2#cro@5BbKrT;KbV9}jsvN9j}Q?Rt*dh|pkI zO_|Xb*Q%i}sbaWf%lW)Qwr)bSEmUQzgVmhQzxVjyW7v>FymAsm3NkG>5}zo`T=Yps z9icjSg!=`l1-?UAlXkA=U-*QbbXt0M3T84oDRM^ltNIUcL*k79Kz>gcHsEMtCZ0lM z88K#Yy4NyJe(1*Hdhj3I8I)|PIZ4Yn9Lc|U)D{foFYe8cb}y6kzGVbi1wV*$F`KiH zO*0>to@k;lj3A=@Bh!#j!rNXgvWYAj)vzk;|8d&i3sDEs!(&?gRA0TK=BD;iAv0Ei zWC`2T$k?qw$pM*apK(2SK*+_69~9Fi)khuE%l#T66e)`Yw{y6=-twQk+xZe5R39fA zZ{MrQ__T9UR;tUwVVxg$q)Th3&2Xo|xupy*6nvyZp%LPPO3+Bf8SRO771f`e#0r3$ zxYx1|$CdiFK?Uhb%iVHkQeKPrTC&mC)biF 4=kA7bxhP NW9#PYcIk$o!ztEe$HV0}AkB`Iy zGz`O-=0;cur!!M)hP%i1z4$XI4eg~}ao}lNs`7=gYc+hXYGcMK9|Yf{Zm2-sd>3-j zdud*A`hm-4UiwBM%E;(?6*KCe{;yD1hhFZ#%y!xxb1(dVz5&|5@#~-eHP!PaGDG@9 zbvol31(o%Hm1htg;}xcB@OPm?5KHcn<`{SgrX{OQTXS$wKkRv*FIds$3Pmt-w)H9S zXSyY64&D562@E$SF8wo+DxWUVz}va!K i>dV0qA4 z_PDN5u#c)Y@@W)r0=qn! v$#le4%S&ycRz%Q9Jg4 zG>on0>IMl{nE<>%g*=^hlOw7G>isx`Uv6tBn 2IhQG@)e?ix_9=0UIeNDiTBnI rR_}x;39 >zZdn=KU+1*3)#lyk1)(DK?03|y< z-oKPdOIw2MT34ED%68XiMhZyS=n}%}c_VaLWq+U*c8%0Qy6oI8InQCit>mC>fp 64B_*y7?moF2<_ay0{7X6Q26Y zDf$#%vw~bz2h}HH&@L)Y-{bWq%A}a{JbE`rpQcW1jhzMyLp;iw)tk2Y;YP6-)0jEx z|M8!1FZt*H=l>tM$3MN~f5?hgezO#(O-=L^Mc#wDYl&DI3SEstztsw4n3qt_rikLy z40&b3 IP!VV2vzlqz3YjcIbUR(j&^ zVqgA^svF$y+6DjzwcY)-3UXN8H=I)==oIco_i}ks1vwo(&kT}KV5qnY*ujZ;8rhp0 z?>hV+U!!93bCUOqEiEmdE|3*wCQrwsN32ZGUcQvdu$(j$*M;zHMUXy|_NZ(6@+ivb zH19aFe;6TB=>tpM7> y?Gz1C99R+if*!GHMg1fc|T2bm}Q9Z%|WQgy&N`> zqtZk_kGjp&gXFv2)ITw1I+j?Nn$P*^Hu7` JRJILFCn?j{B{DVMSkstB9@U@y+Dvw?`9R}fBwB^cRC_G~{`0WEAXScE8a zq)AFui+cCf>sOy%Vb7_ikl@F826qQ0h^IVqIj@=LZ$sTYb7BR{e1$$J)PL7{E%kS^ z`bfE;lzw&p`zG#fcdzEWu%TO_byK@y*_iLRB$pJO>LQrWJ_p-JA~UDV5 2gnr={=Y1?Un zS^D#jqBdO3uGDLhRfkj+Cl@fp0*}2|%`|ZV<%b1M31(+v`MA^*3k><7E!Ikw_ 7Ga|E*@C5`sdw;u#IaZBV%L&i1A2w}G6GTkL#AGG!!OcEVPiSY z2=OaM#W0BQvsj%fl7y3L)i?X7^2iY!L1;2Jj^-g> jtkPB+5LI}2*pqrhl3Et)( z%l3-RqUy{>)A>%4g Do|;ZE|}Rg+50q~IT+XK)P7O6~J nAYe?+iq&57;T?l z_GvQ!*@#7~oW|1|FAyc2izb}VaW+3F4ds(yDx?B&s*LMmZhGApN5%i6S$rk2lDHub z6Er?a(&RyA1g2EE1rM)|b1pMTlFCK<^0UOD+q-5Fbuhq@2xni*B1m;{Re;3{n^r<) z8H@A-eX*ei?uS^GVaZf7!lD%Ev6C8_g{F@y-LwbRv*vX&JA3BeHEEVTzJZ6Gb&R@Z zVRv7a|4Tb4>i^hq=fg%4yE?96VRK ue< !+2Ks^o$V{?rsI_kk5Bb@ 0n<)u&UeAr7fvw z?6wg@NG4ed |F6kP$*ztPQh#!z((%$JRa(5ZTASd$nkJ3@P zTc9Hb^XC-qpjW=J7(^P13p@-l|I>fcYRrrNU;MAO DJoCDp}G zYgbh|;BCT%pwUy&m0!NY@=2x*`VNe|_www-I<4Ut_Yl_~k7P+`9}0+EPA-YflW%GA zuc6#t)+Q=TW1sOUJ1h`cv8+z33Qd*fbg9PS(-W%S>3Y9A)Jju3S#{VsF9+1D$BLPORG7;6miXFL=}AiQc**cb zB9RB8%D0_rB$%Ph%xLSFHXkEe%R5KxtfMfCFR;a#Y_SwP-%1;1Ex*;&+qTwEQ!5>v zwN}+ls2~BpUv)=}VXwqL`yWF&P!kg%-1-yD?R-l!Qw5&fj^9aTzj*FGH5E3{(9~GI z+LEzMU2P>V=U{(Q77XY-*S6N&VE~+ShC8-as%ZK-VuOLlXQf}*Fw3W}?0P9F?HoC? z*+ZP6id;L-*b}bkDv#FNSk9x8Z`7aIu#ko~$tc~ql;2t?dKKcJian>pL-(po;!gK! zT1Uz1UtKEekA*Z1K=a~7zK1%CFr0dljYPnr2z6t1*yp37k3$*615Za;up&atwXEPV zUc@=tviLE8I~cS?T*tn|=zswp&HJg&9~lm8EDD`p{&=>2^>I|AgF)275pnxoTYSRC zaYKK;Q}bN(jz&JvbC@8ywVNrqnd8GywiGPsI+yi2skxD~_iB7(3^s$)ZI+g9AMZb( zNA;WaFOf0(!*$5upjqbjs5L@>tisNVAFGQUf%v{UgDTEB{asH|x4EN6JCAcnfqdjV zaY_{~C_TM6^{7*9#!7Im@P25oOghcMicPb?&EXIOo 7J{HLN$1bG}MLU>+ zXKMU=pJu`Kv`kXmmr26O2UeavsU+M12fm{?IxIV4T|u@eI{y`lOwQ;xTJghH#CAWl zBRs2bw>N(^CJB@E2yE}Fp1IiMqG=GHiHWJ?2c%)M6El{ooQklg^QM|-kuC;odcfmx za^wE#|Hc0*^BIU^4)JWqTVLRP+e1FN_WZB^_PY0t!o5@%u>&m5cOePo9<+>BO`k{l z=FQ0g PCKh{lYcUdiKYS~ofy>t&%jm<9hz!3p23ScDe z8r#atNMMe%Q7{&~mY_yI?~5%3xnkIPl%cLHoE-`7PG+Gjp^;0we0_{gG5w^nUb2 zHcz@*fcSx^N}Ip#fp3G{cj=GGMK)3rM6Pc)(*r`QC3-ZYnA7Qge;87rP#^`hS@syU zr*GL>y2AWNegAy4(yec}>9z?0-mPNev+f&+KE5_>)eG84aWgy|(k^nYN> 4- zL90{MMtOHh9ggg+W-Nvlw^tjW%D lsx5*>QUF={d8? z&=L?fxGF1?ndV8TaBIV5X?P}iWK+n*T}X f;NrjEna54WZ4{a%zoJB;h{HvFff8YzF)8hNBNQ`?|Q4~ zi)mxuQBAQEvw9^jk%*ih%1 ;*XFacrK 6a!P_CuhIXVoNUK1{fPp;6SHPb>VnWqmJ zMd$iZ5>b`QfWF*MfHS0`aD{J-6~W%@2u7;EFExEC85T?>< >ksj*$<|}RLPhP2R^nY>*U55zI8V44VBOQDDKxtv)v5VKi;a(CZz?y zsC5sIIB2K8@P9oa96gl9vmFEiB9z4-Na;%TD0g-u1cZ~XT%_JMvDL#aIC1XgQI@NA zm680`@?Yu%?wUhiUPpj^MTpi$>fE}q8gR!geyAzChW1zs04$r-XcdaO?NKUcX`o6A z-Bz~vWa9$JpB}OcihrJF? oBZKpbM)^HK6B)gTAZNtXqww-< zu97TlI*>UbmFt~}2Dqc#C#Tv;h5VS^`Pm?{<-m$IeBjB)4WwA_#QbN{>6c)QQ%m$g zvR2KPB;)fV4(Rg;AyqL5 @*A5#;kIYj(8}#+?W}@|D&|j2cs#_C^R{`hX0UGN|igo{*>%(S-eI2br)t8d-mei+$)XvyE`b z>o;f5ZTMhV5+ZtFKAyqkMW>%eh}AJ>=!Wx8|F=n`126nD+U`@kTjwez=XZlY|MCy_ zL#N^vGLauQ&@ayPzuxO693Pi$TFVhU7i>mWgAk?r<*ZQ(rqy|v#?^@j%0r+8Phl3$ z&O*~#$`t;3%~EbQRFk8yK$BQa-6{Lnv5_Yh#c?!68BwG|ToHkimzAO=$4L(k@Df#g zJZK^ i z-mvz5|4iRNzS4RFpj>%;?fm8@5f7%fNS!i`uh0ZLs60x-tBJZsaS08{6Vw$__7aR> z@Ds)N>B_^TeIv^(I;OHsx>QDS`c1i`l$G!UC(yPI&I)?X8JYp(9R|7026l9rp1J*5 zSXG_vb=GG*s)%jjsy9V&eb4_Qs=#H4X6=9ONW#&$O(JmdEbaX C83miRoO^F9ruk{TTeHW zW*7^B0*j2uOCeVso1Km?M1`VE5@zGNHgoyQZFlST+gr+SPlKG0F*(Xet=Y>U3nAEt zD(gi;q1@1GB6)Y#<@ZBGQkPmMDRhk`G9gIR;~vMoo4H^5lbF(d{NiXnI94By9x7%G z=xff5JR^fi;&ho-L}mN*RBHPfZExeZ+zV?eqK=IBsc{ELK=5 F(|#Z86R*A&&OjLs3TD+?Tew;w=raroq|6$1_roQSzP@o-EU`KH z>=&Q=DY62kA)^1yKlrQ7|NLLun-1>r{g?Tl40Y)@dJcSQQ~b@#{nvlublWMifAOfI zo2NdCQyGWVVZbu=h=ax_a=bET #4`f+{lr;_;6i_2q)I7LRFl?(B=tF z5A#4F6$~zY?PQ-j9_VU5chVU{$wN$RBmOStUbNpZosBFDsJ|Lp_LfW2;|Mbmi%QkW zUcEp6;URQa&1`vHv^eiDr>4Ajl#PY$2m3aTeL0wf;5o|x_UGZ|BjvP%2f1^jWOmA4 zuM)dcA*zYOj|P#i)?dF(GwBjm>kx<0L=i;-7%*DE-xujPc}P-l7B{AZN~M8hi1Pvk zs8*$+Bx!Q~-a`+$9#uYmnT(1EM?EdpkZ5p^JM5JJvnS42x=3!-HLgw)Rp&S8L49qS zAe5}c@mUO=(RUZZk6El^UL xu3~L`=*UIMD zHo8DTB42g-p|1Csq@TpklJU-t{IM$xZpxET(=JR=6IvXj1 MAdgT%kU)o+kGG z(TgoH>Zv;oyC7EUvQ> I>1!6XPv01E_p{)FS?%F`^I)ADJQuD`8P(jYgB%Az-qMYgQ>U)S 7X9tF!5U7))Fxr5g5x>4@^e1|un`PhglNSW zfgBhkDeW|DFMkSSG$O%MpOA&`4Tb({KHVkg-ObM0J*_zkH9P$Tec!Jvg9@Duf49=+ zt)Ks~3B6kGW(%t22=!SR#|d21BGQktcQmalWj9=^D=r#YzWu7bG11UgAz4iKPyaV5 zt1s_gghhwA_sy*@@bS!%%f9Tt@coC>BmO2b^P>n?q!%9>{)W2glOMW5g|JXm>SbLp zA9t!tY8lL9Vx}ooyBA8Im4*2bF4}kYzRpO2H4T-arXhK^T;=7LQ(dTuOp~WvNvuL5R7>Ah_^J@tTa0618U@RhgDj_v|8B^WRsO62kZKj-)y=hdojYt;brV_XyIeQrN` zj^A`^&j;-1>E<751Qr0k=%lK8=TtS{PkQgHn_nZmoJAe0)VnJ?$b{lb1jup@nG0Ie zPh;b-Mp1GK;~q0nsU %`3xgC-Q7^ib0Ki;9}QfgwPYb^!LsL3WsP|FTyY>Ruif8)n% zDqUkd^X8gFY3TTnf0ZNWv;yDp`JvcdmEJS;i@mZk6sw%sOgquOB2`C#aJ|VW6PMGz z^qA%cgZ`9W(x^Rqs%nJd3>}O=4QP1`n_3`Mkkpk^-*%;BN=P^RmgzJ)bXCE&)^V$_ zQQ{s$^QdGs@+XId)Qw|!2V}z + #(VMZsiwS$mg39q9vx}eqQ%a(nD07*0l+t3G?TQ zkt)-UC6Q%VtIO8cn*6|{Sp}{|0?{h$2-58t;w~k9D|ga=MkA;9&TDB5HRa-6Y2_u* zBT9^6vJVCy*S@!yMA10Ht`s Jdk)f z|C3h!cmBWZzfat@(u>w{?mvRT);g09jRDTrj67I7EPAcT4*rI5lq>Zr?)l2zWo9Kh z5S(m7W!aIP)&{W>JyksHm~witx(;!=e8i-3^h82*ED9a^WSk|lfT_!s! t ^_;GMT7N-HKfW12}@&1jc}*CW10C^Zo%L=xhP^}&oqCN9>nldPly$7 z)K>7NfXXRgR>?LCWt(rN;j =b5Eyt#wVG3I3TJF|tjdXoJ#U zPFVI#cjfms(@jl*c5#anFqe*btjt~_b{oS{HyhxKbP894Thm{;PJvE=-bm_Se}soY zYs%=&G#U|<<%Ozgk^;N9$fzox 2HRqip&5} Z8Vra1vYp2u4=ahW1Bv6yr$1gAK6=L1A)#^F zAG*GoQdLd;4Jes)*z*2-mh(^l7r3j<|Mq`F+ vj*_$=pf3T96}Ik&A=f3mBNg zsRD< JnRD@OdVmD1eLw~K=w*TB+eOu!UKA8GK5u-lK z(j31tTf-gn)`!PzF%bd&is$sJ!*Qeup(#A>HA}?`fg!qoF^6c{{(f8L-7t|pbf6TE zDd l+uSPa^5Hx(V9ugoMipST4#NKYpaMjjo~bX4fZ))Ym?>1Nc6?3TO54-zu# z=whRuSuOoqGYy8_^?nET9RDsyfO?Zjq-o3RiN Mx}8zj za^(bDp6!O@Q!4z fG#@LwdVb;AJq;SS%M?F@T+*e zX8B|0EYf*)|9(t7_4)ZtIyDmY-~uEe?Rf_vndUtBusBSls_I1Gc$pCtqm@Ofyh1p~ zYpBOv>MUm)Q+lh1|0+I%gr__80j+@$SFSmg(S)7_eK0ov{dzbnTR31=i+xX@2REm1 zmMWb#s7`M8xr4DC!7E6>eX}jjoIc{kwb@P0)K`MJJ@|a3pFWdVV45IsY&sZ2WvezC zY|iICk|JAVF_Jl1COg8|rHC!UVL7BMkEABxpuVZwJWDwJc6TVKlI)M7rg~TK^8)D< zw31Zxkmy_6UUYjy?yBmKy7M1sm83RQZI|8|PTKW7c8RN);naCf6h~G10yMQ5qB?we zQ!6%{K42fiA_X40F~=^8&(w2Kc9SHpqxh<7EDu2AG#P36DJ!i^G+A#;UyEo{chXlO z^{u4o<+O?@&b70JmgNboYfKBpL*ne};FGoK{lDIX!0yd(6Zg-vf<4O1o0W1$G>TUwK@fsW`DO@2y(g*Uh)w{Eu*Fdd9Ql4idAM zV{n0dq&cRspXwxH3!(syROjfEqp&4yRtAq|lyPR;MVm<0?Gh9*YR^4dtFeh1xl}VE z2JqTO+P;9u4Hhsw6NwQ;&9^Qdl&lXHu@Zkx)iC1&<>UEJqLi*S-VH0q^{>Gc>-dci zwp^UuM3226Q(l3+FK6K88uiD}TD9}&j4fE~Tw0~0xF{z_a$>%k%drqkh Q546&kPv%N#?J-LuBPB6OzbG&N8m_M=m#UXWCG+Gabw=xor#&cdfDuR@ zW$G1Q8PC8vmmqA}yBth*BuJr_GQ0{t7;0MyYDj19i8I%XIeRWu+p%3?X0 l{uS$iFC^9FmPV00kM{Otr^z~ySulLqfO|> }G~ znHebUmz8Pnlr2HEI1SDYMjTa1Of>~{JwqgE>Z{!aNF2(YhMrND-yu 9G*Llv>;@ zf+%c>F?QRI#(Qi6zZ7NV!CJn!WS=mETaHuc0kjQgX}^8u1F;3yo9Pw0L~B;S>R0me zo`wKKfx2cY)S2!#ZFKqGB$N@SC5vei(@R5R+fuER?8fi#$p*at>HkL@^qsF{+{^qk zGS@l!l7G 8cE}gML4bPT-&KdyCJ6MUhOHQHHMyQl=0Q5-?WDhVE z`vY2BPE 10Yz1_ zt!nsF6lf96c8A7%z}^UsVr#P=WhpAqd%T@Av{}BEaCVzm91thu>A|v QTjvFKC4Mr7$ut9a( z@j| 8cK;?o32Vyg@eV#Mdjapnc`vk#DWWJ5CGjTu|fD4mh!wg}ISmYY&K+ LnF*LgzK=`@kGm51*yCyEWwrkbNsQxbwPtiXFY!GWM{R@C!? 1|NUgB&Wzi56OgBYbad-CfHEt5 z@a6s+Iq B3mCc=nrd&ijFmw9=r!b)a^ z@ubrp8NU2LNK(NtW=e1qtEDNpaeA4{KpFP_GQa(q-ox^xga`41M6w}T59^z5ow4qz zkS`*y`ZQ;Iw7A=Iy!?%E#XBFrEF+d{w!ea&;re2~XcDSX+cL|_T*bpq)*<8{QL3pZ z>z=ljFF&xbuH)yV;~A 1usmuL%jqhoo^cKoGd2qZ{ko&b3i`3SIDJ(56%Jpg2uE2F9X;#~(xTS$Q-*PYk z+sEe>C8ff-%_+HDP^D<7@phJo0jbC1>>!VRds^Yqbc?PJyqbv7&JWe(PzYD_R>LH6 z ~oMn_r(`M%~ zZNF{1S)x<&-dme7ja7e^+PsyEyKv?TRwFu42Z;A!tPxAcDu~uMRp7$q!Krt~@ -nSs8!WnbXr3-g+J9AW?8u>h4nznsDA9`Cum D#Zq0OstpB_J;;vr3@SnI)_fEIY{TKdYu>Y_BFk wc-ods2mwg|3Ze%E6vv*>ojd7XbV98^D zjtMR1ltppxCQ*TibMMJAy#!+V^I_x&H&vfUjk?TuB*0ZT=XoGQ!l3zDqA*q9Wvjz9 z*Q74+`X<-$OY4&9c=YYb{a(#{#yZ~j)-NOdSI=^uYi ^1(e_6{#)x5ST(|yOrq&Ns78K%!daaZd7HWbQ{u QuW0)0)7==n~Z?RCfbiZClDwdQspNZbYEkjX2)?aNrZ}Kff`#iUq zeYYx{{g2LlZ2hkd `m1x&umTI;`8w5g4QjOv3uqrRVe`uocuPd# zb9=bNjA?U!rUwnU2`6U^h8Ttxa;L>(BvL92XaONtm7p^Q#x%!nv9U^B;>;jSZ jBw-}$Drj%X3N3Ji|TBuxdPt8u_#Dj=OtRhlb=iI?EMSzT@6XHSndl07_X6O0Y{ zc4}{_$VNwyUS9Wj+6MLZd3<;EgQ=%S)uKDFKBH4J{=PZ4hpA}e3@sX`w&l`J!$M*@ z!}@Qx&!gzpeaQDxf*a?-=^tWYBKU?e-1DqiMlq(|3!XWgWy5TOF=LVAR-Dyq@6Dh{ zcY^1$PRdcwhM8>ngM8t>8280`Z5hyU*5t&7% z3Y8$vl9X7Eu-Ttl4~P})AwihuiR4L ailb2~YKcU{nBOUKI$@JTQtG;@*>K=0%blpFsR_y9 z(!o%VK(Rbe`N&U^-v3+1myOG%{6e|4g}*B1y2+dr$)0dfPW^M&Of@I(F4GzFrb!B) z`Ji|vzEAn<$yVMt{WB+Wxj#1)N*#aQXs3ESW7aIcR~(G3tU_7tVySEP9}6-1e`{(~ z;J%u)pW(?tS5|Ot*8lK){{O#0Z!|rAT)Af6>ZaRT`)l>pUsqa#uBT;s=UKip0^WfY zRrsaL#p9^w!6lEcnM7PYZol@oue#i7b0)QESsoL$TDin>TBaFY4Y+!wWlBqfP|Q@0 zrBjRpSG?qW;xY56kE5?^XlN)SLxTbXivTNwhN;=qs9E1WC90`}+$aq0G@n~KV^{Vw zE!XUb?6&M>d&| CNB Ri8T8#Ppx9U7DZK|_cK>(=Uiw}wz+(5yR6%G+o@aU zS{8VzM_t~tb2_`iN()oFwVo>XX06>e)n&%4?N^tsj=eQ!#_pL<16=s#eHK!3mEYT` zI_FW;kK=-_+pnGV|8YFz8a1muRG@ogk zFeOz^X4kddmv#R9x}Gjxt*#vv`)1DMymu*TTDfLByAHoy^m?wOE!VyDwPu;c*ET)h z^5px>ps=vys*@+*+Am#tdfuE}_qLd7H40@ dQujm4y>azWm_oaol)o#zA3c;cN4*?#)zT>}^Y2;_uXHV&Kx9 z)V_A(rz<9#o@{h#GxP}3Ofy}gIHg-yO_aq^*l@+8OCLkDI41k+^2MYEP1*K1T(>uW z`oE=>+dUTlUpnibUAX*Sp ;tjTvgHGn>k+ zrpW~EpZIvO^0R$QgL3t+Ym4=T$?HZXRTocPt`(=UV`mQgd83CHp0H06-nKeySL)-F zCaYBD^*dBXOtP64=@FHh`7+YCi7Rv3+j(tMT<(SaUvez0qdhCxrTO5)RIPUJr+SSK zIBeuBxa4dT-~N~E`?%_0h>w1+=gjccVKT{S4L;WnO}Q90?OKb)e(p&VWe$5s37+XQ z?+CmCT%+pub(j0ATVAK9yjrfKb=~Xr-l{ua+tSpvUVdG0@!RY8+^cUQl_P-%V{Bay yyqfm+x1ZOtS*>1vd#FA2@~cY=*O^w`IlE2Vf4e9s6&vdr8W;eR@+cT_Apii<7F;a= literal 0 HcmV?d00001 diff --git a/bedtime-story-generator/public/hover.mp3 b/bedtime-story-generator/public/hover.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d16e1a93d595b3a684e6bd396476e67f421f26df GIT binary patch literal 14754 zcmeI2XHZj5|L7A^NFYGy5CKCkQbLuY5_<2whaQSZ7pzHu(2>wVM0!_2X`*20N|Po{ z(I6mIM6oMy<@r7LKXdPWbMMUa>i*pqdv ^J8#pZV_YIWf{zqyzjZC!=j`Yybc@ zfPrVYr@ybZXNV749wVzDi_x(#0|4*<-w^)*+o%w83u`j~8uRb+|IkoT{r6xUy?-~f zG5_c7fPY0J{m*DNW|rFjdo%_4f8VF3d-}g7IQ~6K7&W#3>iAbfUInB5zxEuD`@iWq zM)J4(CGeNPUjly#{3Y<0z+VD?3H&ASm%v{Fe+m30@c#{gqhI&2000;#uTT8hi%WU; zl;&;WYE7F~qF>%l@ezIp_&phR?VdkHbrUTMrn!#1_SCMtNzSLS;wo@N@*TYPieXZ2 z-9lTKUE#hUcoZH{h*i|02(@M{36sDOozmuPu99cN49*BJ>*?uqk`ASVsfPA`U_ mpB!7dxeV&r 5A;44ne2jlbGqlY&LuezXSogPL2@+?(M`j@}~@b_kz>W zUhJD*MN)fU@_ *?^mV3!jRKYp%ATwijqlU9S B=1VNw33l^Ouh{3Is;71@2VnaaBw=uOzIcA zIW1eBB{4Vf#MaL!g@De0PH5`sFg5DvgU|X2xe2;s36_79!+`;yO_^b$+$FEJ;Q*wj zoV%r@48mtQXjnzKjHy^T3{aolaVfK6M%$9O6|9;i3yS%4qB>PdkC4wHD2S~|4b6rp zrNUUxiq;Yt_>A^EVG}y0r2cDp(;^Wpv;AtWB@yQJVf$QMn^D0A%~AM;JNR!F?TtMZ zJLjauUk*4=ls6rz+CEfagiB6ZX%3S1E-joap6c7P4~u>ZZ@Q)9h}wtCG5GK- zOI*JDPRGg@>hko{J?~5ePs-@yNA+K(qH1h%@!Y(9CNp-(0>Y5<;C~>5` zsiBD~A|Mnj(i49nE@y+?KSfNGYkCl0aGN2Io9 86%&z{G?xplO(fWQxAM4Dnyy+>9};^yh%yRRhdR#VweEqe1?`i2F!9r&8o6F zt{lymu_BSxd2g#pjn!}AlUkd4q6s%@!+r9V&l@fAgxgb#q`i3SZh^aPki@sSr?$qF zZ_SiFa!zDgu~E-26I8x0TQdifHRp0xF^(t$;>|OWb~0XZprm*>3zAM-QIBJU1>mK8 ziD{u!L0H{U@FS5=glWROrGla^QD2?BS5VQzUCqEsdPteT5J80VX7h&bvh_`jT=vLG zZ=HIs9NH{J>-pp9ZM~3iH-y$cyTam3OC(QXzcx<;Ipv_02%r00x{w_|;8H2R2+91= z({UkXk4M*cOA4@4ot?s9&IhRhlHdxWP;~_VDSj)-Bvy_+TWr{}-!rVamf#ZlA&?P9 z;`Z((v`k!_&QI$Cz|QS6al}}^= IRxzzFEZ7a)}wa?0w+A{aw9B>;M? zPr%W82{>1zR})%D()Z#jrD^ps1Fz-%Myp&iX5=;W>E<u#8>z0qa)LCjCB|I(}^F zmzTEG#Y&{%n(!$Tg(G6uz1UnnoZ6 { zHK3`d3(K?qY?Q1M2aD!Rt?BZD(1`)zG)qRWsI)m#ztPCN?{cfT3}orgn5ZO`r_MI~ zTHe~j6vTw_b7UG0q+`S>kmz6o$*GWx%u1ZZgNHsoGr$}xCkX%}Ww6J}#e;`vnz6<# zKJ9e$D{vAc*U3N1VFH|#^?B)ym;6+Zl%$@7z09+?n_(SswRh>&?U7vEHMgZh2c}AH z2GyUBteziex@_>Vpq${08!|&`op0+SKwuJGFNDrdflCm?C#d)pO|}sOOA0HLdm|L- z61evUu!dw^K{=*Vmi~44g1~dR^&4ooN$p2DaGu2ja`xCnX`HcWC=ZawtCTJuAIy|I z{p6EGoZB|`c4W!y;E`?lhme;nrEG9jBJkdY=K2#$U+bQy1PKHnKLrZvX<*!$=ANlE z22U2%{?yM$BRNu%QEf^QgC}RsLc$2BorH=m8%|G0gRumzFJ6q&3 lmuZBf4RcygA-^vk+H(T$PA zl$~gH>$C0y#_Fi9hVhF>hrQ5-9k0Q2N5dTf@?pP~=pT!q-jDrUL|A}+IyR*P@$GBg z30NE348v(p!OK)TbeTN7A+(PZUy8JB2{!$@It _3VA5IQ&Re$Spuu*rP!>iMH` z%hCdyVKfS#&0K#*q|eOKN?a=`T?QjsXa!htN4(TmI#$k{0D31wCH_(Fa{SPqx05le z$O{0%pOJKe-GgwjEb&&SiLS63) )xx6>W<%w>tdu^p-tp_9i+Ln{F;2 f)(>b OEA*jLBel(+I5R d)LjVB`)gG4Mo-BcA zL5J^@u`2rmOVBDPgC?C?3kX +|D~;!zcWZax zO8fqP*ZNweNkJ|(JNE~iO+}}})W$qDZ@CA3b7=eV^XS6`l}ia-?^B%&j9+*;M5W3* z=zT+o-!B9^Nzp2k9BPZojBA6f<%FfrU|S+LZ;5zcC$rFNOZOllY>KO*@6|qDwGTR8=y&^a0(pYo&?)trZ+tpPo&v-<> zvj2#Tcg?zUC94V!D=w4x%GGNv!&m_DIirv (5TT9sFD3_iV9CvQG6v$p&Ev}}l=fCaJApP!0!>v S&^&vB7cR=B;3(gmP(Ye z?BUv9omKf|G8R&G;fy6++tt11kta=@_#__tcz|8jq`RO_Qio#xL^n$!AHrI(A|)>0 zE|F)D0`{26q!$UxI2#KiARUm!v@+sQF V1t$z=`EOq!# ^P%hiAbvW zv-&;h{>t$3OAf2yr?h$vyH&6dX-WvelSUA-W+qCJ6jB-K2Ixvu5|uqGoMSQ)(laO^ z2*g7{+ZGV%6z$ oB*-s==%szE>7}443?PH{ zs$^{+mWYY%Zr+#4ea*8(mOi_h>Ie5^hX;aV-@HCnE)D=z`)4ng4QZdybT(z@m^wrR zF_Mfb{$#nyu(Qwe=XaO9=*+bbF$_LQ1^9@|={oGe%2TN_-|OFVosW*rC=1 pDF5Os1jj(^}@FPdr}TIby#AW6P~Ga6hN8X5-NO@K;4-NM*selXH8-lW)SV zAGWINKJ4FqJ^Pr~sQ0r&$wkY`9TzpR)w&<=N>#a@K~uLV(ZEplRN9l&XJWa%?ksc# z)Vi`1RA2yk;f5)(2?)U Qg+@*EWocRd3xToS1oym@l)+bC&*+B4w#s+i(qke zQ;k;jyD7a7Wkq%?tYag;zG-L 3eI1p5H^R zwaow8tcsmuU@OT}W68;ue;uPh|KsV^@lr37b~vWCES0~75C}|87OiU(=0nEbM5J=? z{K#VGLKrR!S|QL};()tTFXX)}w_!Z80p!}wQ;BTQPWjm$!+ycOG^=D7i0xuRuI#M- zxX;AO0brP4t+VKkwUhWYe8kM>v6C8!bA!jqB@)0?Wla$8FpUf`plMz* pT{G%N4 zGv`U_m@g*GRQf${W$oERvkdK _< z2}$|b3{E=>v=EPXVjTfysFnl+5GWh~noQUMHq >56;5B^#|4n?oLtYzAtG+}*Y5;n~tKK~d&kf9$i1 zef8t$rBw5#c8^r5PO|G>FAVl o=230To(t77<2-K2zMx8OCJ!I4e$pG>SK-V*o9zjWd7(6oF7OvjhV~i |A)V+J}18kgI?cTdb>DsK9ZlB=|?DR?&am<~Q+5Kug zKakSreOGu>CUK$Q)5Hu-zk~-U!L+y^SUM6X^YBS{V1GfNSTww-64Srg%!NjnmTbnm z+gW&-iCFI~i=+XyXH}{CgGhN}!o2mXUVdnTeAYyQ=F`$7OMr1IGDYassh3&fnNJrH zDd(%6TzGU-N8~DgEj)SnahHeN(cJp6aufiBTd6w^)k`ZRe{1q~c4gn_{i7T_<$SI? z^ r%6<}aL8-1?cL z?c<1ZP2GXQg3T)h{(EUZ-(0-zb}^!j%lU#<_wLsn#q<(%a$8xYAOqS+Ox=+H>?uVi z-%2kGr6hu36J}>?2Wrx~eOCEL?PvPOO-)OC81)bwhzIu+MC&-tqu5bQ#j+i?iifY* z7g)0Zz3kFTTzoMXZed_ISUt7+u_CFm%;;w)24xR4(|uivb^_B|V)J{Cq9xyna#+e* zzkCtC%Xx`jHNfwp7#%hg3PKkDq}z4OVO3v)uGE)W#;7?Le=i9fyvtB=jT~5v3=4%O zvI2^+tj`iTGha_cqU$RvkzlUk4)UcQTmp~DN0=dfTqcLecS)hAO15|Gl`8Dgn+U-( zf+@kdLRF!hc^Jp6gig8Mt?Xvs;!H)(i$SoLaj?Ls6<$}e&zTwXgYVs{7c{s-cUvFt z{ce48U^hM7^|k-HUn1{&!2IX4(#(|a(dfB=-;{C5vejfd2pu$)4Ooaa3{@jQ)b!~j z@VkCS0(evHo LM?R_!$#tuEHs6?BIBAO}{ |F@ vK`bKac9xEddfHCk+Ea6z*>2{YLjFNr-BYKQ>|jc%vUUk31s+~VNJ;C%=U@6 z_xi8#ze6%IJUnbaF{(W3TzK8}t<_Rb^7JpjhTetGcc4Q#FrKRm!!S0u#aW3%?5d^! z!&h*UA#YF?pg%644~V6sQq9;R?gtAXY+2K}{Inp(X$b;>yqFH_FfGHZ0^HkbyOa{- z4WBq75&Oc?N5}61hsZD#UzBQHtjnrLAjO%9`pRtSfzB^+bsq-0?rJtEojj4_&}w%2 z`q{-7$-}qf?}nG`s*kt6QhPFTw40e*XT6-Oske k;X z#(F zjv2s}i@X9|~E)PFM^|p1j>7ac*-pfT73lI+0Lhl6J+d8UR z$TuG{)BH*5-3ruA2p&`54>sw>Dp=xeX8P%U1mReEJxY=p*oW6EYzu^=upyubW=<%J zK6iXTKSKq~G`_OSl(f#oW9YeDPvJdL7?XXMo(#F;YH6xg-W|&vCFPV7-`d8)7MYy% z{0-i3hwbY m`( z-5NGdNNXd^d**G7cv*#F!96yKipC0Aj4B5o0EhO=)b^s%DNKVPQ01cj=D~#%UXrC0 z)JsdRtsx9+OPp*9>&T=dT1tq4lLErt%w`sXN`Qoz8RC%&^ne}9^>i-?yP55*N^elw zmqcrg=hIc-DarM7(Wqw| 0(rJ_D0hi+&cobW>@X5YIfU>MSK|5 *oMh-STG5C)Q>r;Wl+Z! x$#;#pTd*XL>uiviVGXI(|ta%;^sJb7D idy_D$^xpP@talB=Q_u+Zx*@&ElK9oj&<(0$rPK(_i_uhM_+J8=V zyz!ndGONydr!!F@DM?Hs5E$z8n686RK!Z%Rkp>V+tX8H`=3sgdCKp%YLoTmNl7 6@%Wz16rp}$#FX?y+|!b*31iy==rFzYqk9E NYQ4+B}irnc!L`PtAv33zG-Kl1_)uE zrn|W}n0`cJ5ojeOtzQS34}h3JtAR{#94qQ=f%^Nx`8*x@Jgyg2<4lUQ-+c=C<$ )L5+sTyOvH#ui*9QYGSL(qUraPbamwnYc>O6 zV^Q21bhgk;H@;+Gj&C_X2SBJ}n$p4~@1X(Wuq^{Tz;-Zgj5Pt8d5z17s~f)1hX%d4 zxu;Mrgr!}$8r Iw_P4O;b&l3^ z`#z5g-^)1TXS8l%ZD(fpQg!wkBDf@FtXy7iDjQLsa^UqvamIX|>*q(qP9duF=O?*8 z*Cb9^UOhGY%1YnT&=8a=1p(Uo0P`kFB{+nDJc henO*w047UMiG tpK=JT%h#Y%RP2qa-CI;NOuLy5w04+ta$pj#RcieHgM zOY<2C0 c>6m~?EGU_pf;iX}UPQ5s%C(WFd#FIt zWi7NwU=DyHwn4S!2mbWx3h|_tIb9Z 4V;l86~{J=dnQ{UbcR+BVxebOB#u(Sd az8(iy!)+tC4T98-?^(Ld3l;r>(UMGfmIhCI~jR5&CR+qn=w{R(pI$? z+L#O`!gIu$Y{kwP=0VK^%~36hEddoF@x8*dsXnb_Z36k89?F67#}%mrN1LKoseQUV z4h(roQ;f2#!13lGwzPg;V+&%P!)PvTx6U^-#s9_QXH!M(U(~eD+PCZV`Mqu`y8gED z;*r(2AZH)?HbB8*WmaSVqI(@GN~&09J6zUDimj)nsX#QhpZFBAStUN@b)QRE7bCwZ z3g60k<)VXAmCqhn%v5sg;1IPOmfOl%`Npniy{ Y~4z+#ix&6j7_BHwoA z7V2?nq?jt3en~}1%d}gW$~@ifFOjtpGg)*|j_Vh8hGY%)+TMvfl}BtZ1^ShcZzp4PkfndMXQ>mYishC2j0P(U8Vp0 z8Rl5IVgg7)s-0MH3FlBbxF^nHOy6|nHLz UJ*No7;e_a57jr)hg K-}*mJ;C}$JO7v9# literal 0 HcmV?d00001 diff --git a/bedtime-story-generator/public/music.mp3 b/bedtime-story-generator/public/music.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c6af57bed52807aaf9393649ec5394cb694319ad GIT binary patch literal 4199653 zcmYhC1yCJ58>p9qyE~=0yA-FmyA^l$;!@n*U5nen-QBfVDN>x`#foz--#>Hj+|2CG z>}Gc+Z;~gkC6MQN2>^hVQBw_L-v)BebS+EjfnR)ac8?i>(3%{~JnVshVNXCVB8c4h z3;}8cal%w5=i&9muV0IigkT2x`w;8iE~o)reEyEa8#j8QlEDvMb@tlqMG?`=#)-7? zusHrzWC9BsYTS*NeymUtw%-T7u$>%J0V<@OEL9AG+pvM7CvCSwzz%X>!B&!)(&J zCa5y^inV(gbkfhgq--1#i+83C2i!NFCnM%^eP60KwrQ8IUb!KV!~5R9Z@dAJmyhU> zH}vk0r$9dd&%Mwl0SXq|22ij}|18XTST|;`KL(hXj?v3~>YkqQODAA@muJBw f|3Z7wUKX!aXy@uz*52WVJr6HO?(~-MJYubt+XTn{wywm7@f)b`4LS1F%FRx zgvD@76xC8$tA6vks_)3VTqd-$QdP(@b)p5&)DS95MAinjJAbLwiz0>|>os%Fs_J7| z*U|Er{CRhWgir9Rm+zZXSOU1d-wzpmqXFN2(>>=4mOLEx$=>G0uB3yl<`>Vo+M6qQ z-@CAl!w7 @DGKTUnaAQCFtFPWpzm#iLDKjyzaYihURXOD_?x`f)%C z7@Ry#hJgqqr?h1mLK9X^GVxrwl?m)}dAa$Z`}pA1YaHZYBI4?$bZ(@R)Ki0g?3D&n zu$Qi6Vks>Le|SLi4=?+crnH TID)jK?GD!>k-8_*TTy zgWZ6erXtL-!O;gHC_le!>RPF|F3Xr|N>|aIZ55cDCG>!t-u-Tpju))NuXAY)h>PVD zCF_~JM{2v74cmhZX)-JtR+?^Uxd)KcEdJP;+iJY%n)Ppytkk-28S|bRn|%?5=v{xj z>mvgY1^@s65ov40VSB@zGwr8}A=CM57q$D)A-9*!!$`i_JAb^?oSw4POni!+p7UjZ zJpYg&1YpNKzg${u12yp{Pv=|!(a3kB*wVLRtEMyeaN*qCkF~q?^}_kYXJ5vD6X6z% zZhT45_shJ`_3R_4HI|B Uq^AKe&nKpH8#SI)7ZY(c 1@n0ZO-Qg!6F1HnjbqH+WFm r{@mkv0$1xz z$=wtSwl)${WdgZ phZe@&EilHP}EC@s|ZC$s?5hY zLanRQ(%LeIfkt3Mz-?koiGj`8pek)1TQ7|_k7p=u7U996Vm2JHy{@omN! DcgylxliXmW*>G8Ct`ETlF~?$@cHw%BQx-O#bt}D-P?;@Ai1ID#Lf5`V*k$nEH8* z^OD#}q1L2SG4NfvX_|f&%UUtkS6Z++G0T!I^}CaYpF$_XBzQMAPfjc37X~M~>x*G0 zL^0TEax#+EVC(u7j~mw9dShxW)v6Dyogf$b>SWtCSj7Kb&m)fvwX7e!s3eHHQ1sAo z@(*omu4nxHdDx>HBP4J;bCI+-)&$11N<3;MM+^7K)qgwF#V8Znpr!ivPy*IpqO;#! z!iz7uy0gD#-%u@5PdPR=NIo*+qaZ!C3flWgW+rUxmnf48?P&>9K=*unJTd3X15>jR zZwG8|qD~|2_eeouBjCFAGjYqWSE@DM_F35%8SVv!)>_PSHCQa*eIGoXVHwQl!5>Ud zcl?hbQUH$7Q+p2ue|*%w>$AmK9N|K-MU4>89%pm4dq(yHImZ6oC)I434I_S8dq+-x z>Rd-g+xm5^l_?U4LQ=S6p1oWQqwJy3^g#&QZ z{ka&|nQI5QXvH4Ck_xmmJAKL5J`1v%wV23l-924tJN#^!UMJGf$*So8YxOC^=VD*M zZr!zGW@AtANkw5(3#HN9ZOd%A}^kjM?6av<(EHG!_ZI;u&H*#&RgfF~gGujY_AX z$s+o(ana%;@#G_PlGr6P4tqxzuO9~Q)~PXaJn>i<`!Sn%3f1bYX