<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Knowledge]]></title><description><![CDATA[Knowledge. Insight into our process, ethos and how we build world class digital experiences at Studio.]]></description><link>https://buildwithstudio.com/knowledge/</link><image><url>https://buildwithstudio.com/knowledge/favicon.png</url><title>Knowledge</title><link>https://buildwithstudio.com/knowledge/</link></image><generator>Ghost 5.49</generator><lastBuildDate>Wed, 22 Apr 2026 16:58:19 GMT</lastBuildDate><atom:link href="https://buildwithstudio.com/knowledge/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Implementing a Digital Reward System]]></title><description><![CDATA[The Product Manager’s Guide to Gamification: Driving Engagement with Points, Badges, and Leaderboards]]></description><link>https://buildwithstudio.com/knowledge/guide-to-building-an-mvp-reward-system/</link><guid isPermaLink="false">67c233bd857119000135a4d3</guid><category><![CDATA[Guides]]></category><category><![CDATA[Product]]></category><category><![CDATA[Member]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Mon, 17 Mar 2025 13:46:06 GMT</pubDate><content:encoded><![CDATA[<p>Integrating gamification elements into digital products is a powerful tool to boost user engagement, increase retention, and drive organic growth. This guide explores how our product team creates stickier digital experiences using points, badges, and leaderboards (PBLs).</p><h2 id="driving-forces-of-gamification">Driving Forces of Gamification</h2><p>To build a compelling gamification system, it&#x2019;s important to understand what drives your users and what your internal product goals are for the system.</p><p>Gamification taps into intrinsic and extrinsic motivators, making potentially mundane activities feel rewarding. The core psychological drivers behind gamification include:</p><ul><li><strong>Autonomy:</strong> Users feel in control of their progress.</li><li><strong>Competence:</strong> A sense of achievement keeps them engaged.</li><li><strong>Relatedness:</strong> Competition and collaboration foster community.</li><li><strong>Progression:</strong> Visible growth encourages continued participation.</li></ul><p>Your product goals should consider the above drivers, as well as any internal KPIs like - </p><p><em>Do users need guidance through functionality that experiences drop-off? Are growth numbers stagnant? Does your team want to give users a reason to return more frequently to increase MAU or DAU?</em></p><p>Prioritizing team goals and perceived problems will help build a cohesive and clear system that avoids gimmicky and superficial reward hacks.</p><h2 id="core-elements-points-badges-leaderboards">Core Elements: Points, Badges, &amp; Leaderboards </h2><p>Points, Badges, and Leaderboards (PBLs) are often considered the fundamentals of gamification, so it&#x2019;s important to master their use cases:</p><h3 id="1-points">1. Points</h3><p>Points are the simplest form of gamification, providing immediate feedback and reinforcing user behavior through easily understood scoring.</p><p><strong>How to Use Them:</strong></p><ul><li>Reward users for completing key actions (e.g., logging in daily, completing tasks, referring others).</li><li>Use points to unlock perks, discounts, or exclusive content.</li><li>Ensure points have perceived value&#x2014;whether monetary or status-driven.</li></ul><p>Point systems fail when they lack clear purpose or connection to user value. Before implementing points, define exactly what they represent in your product ecosystem and how they translate to user benefit. Then make sure product marketing and design teams all drive the same message to users. These points should accumulate towards meaningful goals and may serve as a virtual currency within your product.</p><h3 id="2-badges">2. Badges</h3><p>Badges represent an achievement or milestone and can be showcased for clout.</p><p><strong>How to Use Them:</strong></p><ul><li>Recognize major achievements like reaching a certain usage threshold.</li><li>Create tiers to encourage progression (e.g., Beginner, Expert, Master).</li><li>Make badges shareable to enhance social proof and brand advocacy.</li></ul><p>Badges should focus on meaningful accomplishments to drive action. Consider memorable moments that drive an emotional connection to the badge - surprise &amp; delight unlocking unexpected badges and reward rare badges for use on underutilized features.</p><h3 id="3-leaderboards">3. Leaderboards</h3><p>Leaderboards rank user performance relative to others.</p><p><strong>How to Use Them:</strong></p><ul><li>Foster healthy competition by ranking users based on key metrics.</li><li>Create segmented leaderboards by experience, skill, time period, etc. to encourage engagement at different levels and make competition relevant. Segmenting by friends rather than global can be a huge motivator!</li><li>Measure progress over absolute performance to encourage a growth mindset.</li><li>Rotate leaderboard challenges to prevent fatigue and sustain excitement.</li></ul><p>Leaderboards are most successful when used in inherently competitive contexts. If your product is collaborative or learning-focused, it may make less sense to implement a leaderboard that ranks users against one another and better to track personal growth or team achievements over singular, comparative numbers.</p><h2 id="implementation-tips">Implementation Tips </h2><ul><li><strong>Communication system: </strong>automated emails, push notifications, and social comms should all speak to these gamification levers. Users should instantly understand how actions connect to rewards or advancement.</li><li><strong>Create meaningful progression</strong>: The first few points or badges should be relatively easy to achieve so users feel the psychological benefit of a quick reward. The challenges should then increase in difficulty to encourage ongoing engagement.</li><li><strong>Avoid reward inflation</strong>: Too many badges or points devalue the entire system. Be selective about what you reward. Recognize truly significant achievements rather than trivial actions.</li><li><strong>Know your users</strong>: Different user segments respond differently to competitive vs. collaborative mechanics. Ensure gamification enhances your product&apos;s primary purpose rather than distracting from it.</li></ul><hr><p>Gamification isn&#x2019;t about adding points and badges for the sake of it&#x2014;it&#x2019;s about designing experiences that tap into human psychology to drive long-term engagement. Whether you&#x2019;re building a fitness app or a productivity tool, strategic gamification can transform user behavior and create more compelling digital experiences.</p><p>By thoughtfully integrating points, badges, and leaderboards, product teams can turn passive users into active participants&#x2014;fueling retention and growth.</p><p>Need help designing a gamification system that works for your product? <a href="buildwithstudio.com/contact">Contact Studio. </a></p><p></p><p><br></p><p>Badge - any data point tracked in system assigned a value or a sequence or achievement based on number of times completed</p><p>Level based achievements - Duolingo</p><p><br></p><p>Progression on experience points can then move them through leaderboards</p><p>Points are standard to move through levels (easy to get to level 1 then harder as you scale up). Want progression fast at th beginning then harder to win.</p><p><br></p><p>Currency sep than points</p><p><br></p><p>Currency - when you take an action, get a badge, etc. you get a reward (randomized loot) for some made up currency in the system. If the currency is sep than experience, you can use currency to purchase things in system like customization. Balance of currency used</p><p><br></p><p>Leaderboards - rank individual based on experience or score or points. Can also tier leaderboards. Sometimes need a more segmented view to be motivating.</p>]]></content:encoded></item><item><title><![CDATA[How to Build a Shoppable Video Strategy]]></title><description><![CDATA[Successful video commerce requires more than just streaming capability - you need thoughtful analytics, community features, and seamless shopping experiences. Here's how to plan for it. ]]></description><link>https://buildwithstudio.com/knowledge/how-to-build-a-shoppable-video-strategy/</link><guid isPermaLink="false">679bf7e1857119000135a4a7</guid><category><![CDATA[Guides]]></category><category><![CDATA[Member]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Thu, 30 Jan 2025 22:11:12 GMT</pubDate><content:encoded><![CDATA[<p>At Studio, we know video commerce. We&apos;ve built shoppable video for established brands like QVC and Alice + Olivia, and integrated our in-house products (<a href="https://sellwith.live/?ref=buildwithstudio.com">LIVE</a> and <a href="https://refer.shop/?ref=buildwithstudio.com">Refer</a>) into brands like Fahlo and Comfrt. Over the past decade, we&apos;ve seen video commerce go from an expensive, technically complex solution only available to those with extensive development teams, into an essential tool for brands of all sizes.</p><p>Successful video commerce requires more than just streaming capability - you need thoughtful analytics, community features, and seamless shopping experiences. We&apos;re seeing unprecedented demand for these solutions as brands recognize video&apos;s power to drive sales and supercharge brand growth. </p><p>Here&apos;s how to plan for it. </p><h2 id="why-video-commerce-matters"><strong>Why Video Commerce Matters</strong></h2><p>Video is <em>everywhere</em>. And growing. Brands who dispatch shoppable video are seeing higher click-through rates and improved conversions, but the benefits go beyond immediate cash gains. Video commerce sells product, yes, but it also creates authentic connections between brands and their communities by:</p><ol><li><strong>Building trust: </strong>Video quite literally puts a face to your brand. Transparent and up-close views of product, customer testimonials and reviews, and behind-the-scenes content can build trust in current customers and create gravity to draw in new ones.</li><li><strong>Driving brand value:</strong> Regular video programming can become a cornerstone of your brand identity. You can educate your community on your UVP with special drops and influencer partnerships, detailed product tutorials, and live customer Q&amp;A&#x2019;s.</li><li><strong>Creating purchasing opportunities:</strong> Once customers understand the product (see above) you can make it simple for them to convert by offering seamless add-to-cart functionality, infusing videos with strategic upsells, and adding the ability to shop without clicking away.</li></ol><h2 id="platform-strategy-own-your-channel"><strong>Platform Strategy: Own Your Channel</strong></h2><p>While platforms like YouTube, TikTok, and Instagram offer tempting turnkey live-streaming solutions, they come with significant limitations. The stark reality is that you don&apos;t own your audience on these platforms - you&apos;re just renting their eyeballs.</p><p>Owned channels enable your brand to have:</p><ul><li><strong>Direct relationships with your community.</strong> Third party platforms are notoriously fickle: changes to the algorithm or UX patterns can greatly alter viewer engagement (not to mention how you understand performance.) Without this social media &#x201C;gatekeeping&#x201D; you make and keep connections with your ideal customer.</li><li><strong>360 perspective.</strong> When the middleman gets booted from the equation, you also get access to customer data and behavioral analytics that can inform email campaigns and re-engagement strategies.</li><li><strong>Controlled user experience.</strong> With owned platforms, you control all the levers of influence. Want to add a discount or a shop-while-you-watch feature? That&#x2019;s all on you (and your product development team).</li></ul><p>That said, social platforms shouldn&apos;t be ignored - they play a crucial role in content distribution. The key is using them strategically to drive awareness and direct traffic to your owned channels, where you can optimize for conversion and community building.</p><h2 id="the-short-form-revolution"><strong>The Short-Form Revolution</strong></h2><p>Even with TikTok&apos;s rocky month, short-form video dominates engagement across platforms. It&#x2019;s the top leveraged media format in marketers&#x2019; content strategies. And for good reason:</p><h3 id="tiktok">TikTok</h3><ul><li>Estimated to have roughly <a href="https://www.searchlogistics.com/learn/statistics/tiktok-user-statistics/?ref=buildwithstudio.com">692 million global monthly active users</a> last year, according to eMarketer. (Future ban or no, TikTok&#x2019;s hold is strong.)</li><li>TikTok has added &quot;Shop Now&quot; buttons so creators can add shopping links to their videos, making it easy for viewers to purchase featured items</li></ul><h3 id="instagram-reels">Instagram Reels</h3><ul><li>As of 2025, more than <a href="https://www.demandsage.com/instagram-reel-statistics/?ref=buildwithstudio.com">2 billion people interact with Reels every month</a>, and they receive 22% more interaction than standard video posts.</li><li>With Instagram&apos;s &quot;Shop Now&quot; Feature brands can tag products in their posts and stories.</li></ul><h3 id="youtube-shorts">YouTube Shorts</h3><ul><li>2 billion people use YouTube every month, and YouTube shorts get <a href="https://adamconnell.me/youtube-shorts-statistics/?ref=buildwithstudio.com">15 billion daily views</a>.</li><li>With shoppable ads and product tagging features, YouTube allows creators to make their video content directly shoppable.</li></ul><p>These platforms are bursting with content, and established brands with brick-and-mortar offerings are scrambling to establish competitive digital offerings or secure a brand POV in this noisy social space. The key is to find the authentic voices and use them to amplify your product through UGC or influencer-sponsored content. Remembering that in an ideal world <em><strong>these platforms are distribution mechanisms</strong></em>, best used to drive traffic back to your owned site.</p><h2 id="building-your-video-strategy"><strong>Building Your Video Strategy</strong></h2><p>Creating a successful video commerce strategy requires a deep understanding of who your customers are, what content type and format most appeals to them, and what your team is capable (realistically) of producing.</p><h3 id="questions-to-ask-before-getting-started"><strong>Questions to Ask Before Getting Started</strong></h3><p>These are the questions we ask new brands working with us on Refer or LIVE who are trying to build out a video programming plan:</p><p><strong>1. Content Production</strong>. It&#x2019;s important to make an honest index of your existing process for creating and producing content. This means asking questions like:</p><ul><li>What resources do you have available?</li><li>Will you be creating short or long-form content, and how does that align with broader content goals?</li><li>How often do you plan on posting and what systems/bandwidth do you have in place to maintain quality and consistency?</li></ul><p><strong>2. Channel Performance</strong>. Look at your current channels (such as they are) and assess which perform best for your brand &#x2013; these assessments will help to inform your distribution strategy. Ask yourself:</p><ul><li>What content types resonate with your audience, right now? Which don&#x2019;t?</li><li>How do you segment your audience, and how can content align to these segments?</li><li>How do you plan on utilizing your existing social channels? Are there gaps in your current social strategy?</li><li>Do you have an owned platform and how are you currently set up to drive traffic/eyeballs back to it?</li></ul><p>Once you have answers to these questions you can begin to think about larger content goals like: franchising content, establishing a programming cadence and choosing content themes that best align with your brand. But we start with a focus on production and distribution because without a clear strategy for <em>what you&#x2019;ll make</em> and <em>how you&#x2019;ll make it</em>, you&#x2019;ll have trouble implementing any larger video commerce plans.</p><p>Here&#x2019;s how the answers break down in practice:</p><h3 id="length-isn%E2%80%99t-everything"><strong>Length Isn&#x2019;t Everything</strong></h3><p>Short form may be popular, but it&#x2019;s not always best for <em>your</em> brand. Consider all the content types when designing your video strategy. There are use cases (more on this below) where long form will be the best vehicle to tell your product story. Plus, a long form piece content can easily be &#x201C;chunked&#x201D; out into smaller videos to feed more birds. Don&#x2019;t let length be the only arbiter of taste.</p><h3 id="long-form">Long Form</h3><p>Best suited for:</p><ul><li>New product drops and releases</li><li>Try-ons with stylists</li><li>Fireside chats and interviews</li><li>Behind-the-scenes footage</li></ul><p>This content should be polished (or as much as budget will allow), owned by the brand, and may work best in landscape format for desktop viewing (though that depends on your normal user traffic sources). When properly tagged and categorized on your website, it becomes a valuable asset in your content library.</p><h3 id="short-form">Short Form</h3><p>Perfect for:</p><ul><li>Promotions and limited releases</li><li>User-generated content</li><li>Influencer collaborations</li><li>Quick product highlights</li></ul><p>These mobile-first, portrait-oriented videos tend to be more spontaneous and authentic. They&apos;re ideal for social distribution and can be produced more frequently to maintain consistent engagement.</p><h3 id="posting-frequency"><strong>Posting Frequency</strong></h3><p>This should be entirely dependent on the channel and content type you&#x2019;re posting on/creating. Be realistic to your company&#x2019;s strengths (if you don&#x2019;t have a content team, chances are you aren&#x2019;t going to post long-form edited videos 2x a week. Just sayin&#x2019;.)</p><ul><li>Leverage UGC for more regular content, as long as it doesn&#x2019;t tarnish your brand voice.</li><li>Consider how longer form content can be split into smaller nuggets. Maybe that 8-minute video should actually be 4 x 2-minute ones?</li><li>Pair marketing campaigns (especially email + push) around sales or new releases with video content that amplifies the main message or a particular benefit/feature.</li></ul><p>Pro tip: Frequency isn&#x2019;t just about the amount of content you push, but also what kind of communications go into marketing that content. If the video content is particularly compelling (sale, new release, try on, limited access, etc.) then you&#x2019;ll want to also consider the frequency of sms, push, email, social etc., leading up to that video.</p><h3 id="distribution"><strong>Distribution</strong></h3><p>While social platforms don&#x2019;t need to be your primary video commerce destination, they do play a crucial role in content distribution. Here&#x2019;s how to use both:</p><p>1. Use social platforms to:</p><ul><li><strong>Drive awareness:</strong> The algorithmic nature of platforms like Instagram and TikTok (or whoever is next) can help your content find relevant viewers who might not discover you otherwise. Especially compelling for small brands.</li><li><strong>Preview content:</strong> Sharing 15-second clips from an upcoming live shopping event or behind-the-scenes moments will entice viewers to join the full experience.</li><li><strong>Engage new audiences:</strong> Social platforms excel at casual, frequent engagement through comments, shares, and reactions. This ongoing dialogue keeps your brand top-of-mind.</li><li><strong>Direct traffic to owned channels:</strong> Use clear calls-to-action and compelling previews to guide viewers to your owned platforms where the full shopping experience lives. Think of social as the hook that leads to deeper engagement.</li></ul><p>2. Focus owned channels on:</p><ul><li><strong>Conversion optimization:</strong> Build shopping experiences that minimize friction and maximize conversion - seamless checkout flows, integrated product details and real-time inventory updates are great for this.</li><li><strong>Data collection:</strong> Track viewing patterns, purchase behavior, and engagement metrics without the limitations of third-party platforms. First-party data will help refine your video strategy.</li><li><strong>Community building:</strong> Create spaces where your most engaged customers can interact meaningfully with your brand and each other to foster loyalty and repeat engagement.</li><li><strong>Direct monetization:</strong> Owned channels give you complete control over monetization so you can implement multiple revenue streams without platform fees cutting into margins.</li></ul><h2 id="where-to-go-from-here"><strong>Where to Go From Here</strong></h2><p>Once you&#x2019;ve decided on your strategy (multi-channel is ideal), assessed your current capabilities and defined your success metrics, you&#x2019;re next best step is to&#x2026; get started.</p><ul><li>Develop a realistic content calendar that accounts for your resources and production timeline.</li><li>Include clear plans for A/B testing, performance benchmarking, and iteration based on feedback.</li><li>Make sure you&#x2019;re considering a mix of video hosted on your brand website and distribution via active social networks, email, and SMS campaigns.</li></ul><p>If you don&#x2019;t have an in-house team, find the production, design, and technical partners that can help you bring your videos to life. Studio has 10+ years&#x2019; experience helping early/mid-stage companies and enterprise teams create video commerce, and we love seeing the brand transformations that result.</p><h2 id="the-case-for-shoppable-video"><strong>The Case for Shoppable Video</strong></h2><p>Let&#x2019;s review:</p><ul><li><strong>Video is an audience-builder</strong>, for both loyal customers and brand new ones: it&#x2019;s how most of us consume content and (for better or worse) make our buying decisions. Use it to create an open dialogue between your brand and its customers and foment trust in your product.</li><li><strong>Social is a brand-builder.</strong> Social channels aren&#x2019;t going anywhere, and while they can feel over-saturated, they&#x2019;re a great distribution channel (if utilized correctly) to drive users back to a brand&#x2019;s owned site/platform.</li><li><strong>Strategy is a must.</strong> From content types to integrated shopping features, there&#x2019;s a lot to consider when it comes to developing ecommerce video that converts.</li></ul><p>But if you do it well&#x2026; shoppable video has the potential to 10x your conversion, and effectively share your brand/product story with the people who most need to hear it.</p><p>Ready to implement video commerce for your brand? <a href="https://buildwithstudio.com/contact/?ref=buildwithstudio.com">Contact Studio</a> to learn how we can help build your video strategy and technical infrastructure.</p>]]></content:encoded></item><item><title><![CDATA[How to Build the Best App Onboarding]]></title><description><![CDATA[This guide – rife with examples and walkthroughs – was created to help you create an app onboarding experience that works. ]]></description><link>https://buildwithstudio.com/knowledge/how-to-build-the-best-app-onboarding/</link><guid isPermaLink="false">677e7da9857119000135a342</guid><category><![CDATA[Guides]]></category><category><![CDATA[Design]]></category><category><![CDATA[Product]]></category><category><![CDATA[Member]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Thu, 09 Jan 2025 20:39:57 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/Hero--1--2.png" class="kg-image" alt loading="lazy" width="2000" height="1142" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/Hero--1--2.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/Hero--1--2.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/Hero--1--2.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/Hero--1--2.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Onboarding new users is simple in theory but hard to get right in design and execution. There is a lot to consider, and it&#x2019;s not always easy to know the answers to questions like:</p><ul><li>What do users need to know about features before sign-up?</li><li>Where do I put subscription offerings?</li><li>When and how should we integrate with social authentication?</li></ul><p>This guide &#x2013; rife with examples and walkthroughs &#x2013; was created to help you create an app onboarding experience that works. An onboarding that communicates the value of your app effectively, is enticing enough to get users to click &#x201C;sign up,&#x201D; and is designed (literally) to give you the best chance at converting those sign-ups into paid users.</p><h2 id="feature-education"><strong>Feature Education</strong></h2><p>Most new app users want to know what lies behind the sign-up wall. If they don&#x2019;t, they might not be compelled to keep going. That&#x2019;s why a thoughtful product feature page is your friend when it comes to onboarding.</p><h3 id="overall-length-and-critical-features">Overall length and critical features</h3><p>This might be a &#x201C;kill your darlings&#x201D; moment, but you don&#x2019;t need to pack in every cool app feature in onboarding. Think about what&#x2019;s going to push a user over the finish line fastest. You need to understand what your ideal demographic cares about, and what makes your product unique (UVP).</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/LOVELLE.png" class="kg-image" alt loading="lazy" width="2000" height="1305" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/LOVELLE.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/LOVELLE.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/LOVELLE.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/LOVELLE.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>When designing this screen for a QVC shopping app, we opted for a short and to the point explainer. Just a simple three-step introduction with minimal text but a crystal clear value for their target user. Attention span is short, so we kept onboarding to that pace.</p><h2 id="walkthrough-design">Walkthrough design</h2><p>Is your product walkthrough absolutely required reading for all users or can you make it optional? It may make sense to create an option to skip straight to &#x201C;Sign In&#x201D; for those users who are coming to your app already educated (or at least confident) in your features.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/CRYB.png" class="kg-image" alt loading="lazy" width="2000" height="971" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/CRYB.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/CRYB.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/CRYB.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/CRYB.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>For Cryb&#x2019;s &#x201C;social wallet,&#x201D; we created the feature page as a swipeable carousel which appears before Sign In. It&#x2019;s optional and at any time a user can click &quot;Get Started&quot; to skip the noise.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/SLACK.png" class="kg-image" alt loading="lazy" width="2000" height="774" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/SLACK.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/SLACK.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/SLACK.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/SLACK.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Slack&#x2019;s feature page is another great example of this. It appears for a first-time user that needs to create an account, but is skippable by tapping either &#x201C;Sign In&#x201D; or &#x201C;Skip.&#x201D;</p><h2 id="pattern-play">Pattern play</h2><p>You&#x2019;ll want to think a lot about user experience when you&#x2019;re designing your walkthrough. In addition to branding, consider which patterns help convey the walkthrough process most successfully/succinctly to users.</p><p>Options:</p><ul><li>Large branded visuals to illustrate the &#x201C;why&#x201D; of your product</li><li>Illustrations that demonstrate functionality</li><li>3D renderings or other technical drawings that step uses through connected tech</li></ul><h2 id="best-practices-for-communicating-value">Best practices for communicating value</h2><p>Don&#x2019;t overwhelm first-time users with details or complex visuals. Make your feature walkthrough as compelling and easy-to-use as your app. Answer the questions that matter to users: where do they need to go, what will it look/feel like, how are they going to be better on the other side?</p><p>As a note: this part of the onboarding doesn&#x2019;t need to teach users how to use every feature within the product. It&#x2019;s another indicator of your app&#x2019;s value, not a feature wizard. Ideally, your UX is strong enough within the product, no additional explainers are needed. However, they can always be added at the time of interaction or based on analytics findings post-launch. </p><h2 id="subscription-strategy"><strong>Subscription strategy</strong></h2><p>You&#x2019;ll want to have a compelling subscription option as a part of your onboarding to entice users to start paying for your product. But don&#x2019;t throw up a subscription wall too early, as it could drive away or confuse potential paying customers. We highly recommend having a freemium model for your app so that any interested user can get a taste of your product before they commit. (For what it&#x2019;s worth, Apple recommends the same)</p><h2 id="how-it-works-when-it-works">How it works when it works</h2><p>There are some intricacies to how and when to introduce a paywall. You&#x2019;ll definitely want to start with a visually impactful introduction screen before presenting your subscription option that clearly outlines the value and the relevant details (tiers, cost, cancellation, etc.). This can occur before, during or after account creation.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/MUSTARD.png" class="kg-image" alt loading="lazy" width="2000" height="918" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/MUSTARD.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/MUSTARD.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/MUSTARD.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/MUSTARD.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>For baseball pitching app, Mustard, we created a drawer that slides up midway through onboarding to encourage users to subscribe to gain access to extra features and based on their user type. </p><h2 id="tiers">Tiers</h2><p>You&#x2019;ll also want to make your subscription options and value crystal clear. Make sure to visually outline all of the benefits for each tier that you offer, and include details about any free trials. Consider how upsell opportunities to a different tier can tie into user features later on in the user&apos;s journey, rather than trying to upsell at the start. </p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/ALKEME.png" class="kg-image" alt loading="lazy" width="2000" height="1241" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/ALKEME.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/ALKEME.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/ALKEME.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/ALKEME.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>For Alkeme, a digital health platform, we created a screen to show their single subscription tier with multiple benefits. We made sure to clearly outline pricing and show users options to skip or restore their purchase.</p><h2 id="timing-is-everything">Timing is everything</h2><p>Earlier isn&#x2019;t always better, but there are apps who push toward subscriptions at the beginning of onboarding and have success.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/BLOOM.png" class="kg-image" alt loading="lazy" width="2000" height="1366" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/BLOOM.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/BLOOM.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/BLOOM.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/BLOOM.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Bloom&#x2019;s self therapy app shows subscription options right at the beginning of onboarding, and makes the value of their model clear over the course of several screens.</p><h2 id="other-winning-subscription-pages">Other winning subscription pages</h2><p>There are a number of ways to visually outline your subscription offerings and details. We found some great examples out in the wild that use:</p><ul><li>Progressive graphics to introduce subscription plans <em>(Babbel)</em></li><li>Split/swipeable sections on a single screen <em>(Bumble)</em></li><li>Concertinaed format <em>(FEELD)</em></li><li>Tiered screen with savings tag on top <em>(Skillshare)</em></li></ul><h2 id="notifications">Notifications</h2><p>Push notifications are a necessary feature and how you&#x2019;ll market and reengage your app users. But if you just flat-out ask for permission to send notifications, most people will say no. (I mean, wouldn&#x2019;t you?)</p><p>Explain why you&apos;re sending notifications. What value it brings the user. By using visual language to engage and excite your users - and placing your notification ask in the right position in your onboarding flow - you can illicit an enthusiastic yes. They won&#x2019;t just allow your notifications, they&#x2019;ll <em>want</em> them.</p><h2 id="go-native">Go native</h2><p>One great way to make notifications feel integral to the app experience is to design around and for the native notification module.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/Fahlo.png" class="kg-image" alt loading="lazy" width="2000" height="959" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/Fahlo.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/Fahlo.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/Fahlo.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/Fahlo.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>For Fahlo, a wildlife tracking app, we encouraged and nudged users towards allowing notifications by including a designed, tappable, module that shows up before the native overlay appears. But more importantly: we explained why giving permissions to the app has real value for users - more animal content and movement updates, something the user asks <em>us</em> for already.</p><h2 id="stay-consistent-with-tov">Stay consistent with TOV</h2><p>No matter how you&#x2019;re asking, make sure to use your brand&#x2019;s tone of voice (visually and in copy) to embellish an often generic permissions screen.<br></p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/LOVELLE-1.png" class="kg-image" alt loading="lazy" width="2000" height="983" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/LOVELLE-1.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/LOVELLE-1.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/LOVELLE-1.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/LOVELLE-1.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>For Lovelle, we kept their playful branding and used illustrative elements to bring full user attention to the &#x201C;Allow&#x201D; button on the notification screen.<br></p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/SOMEWHERE-GOOD.png" class="kg-image" alt loading="lazy" width="2000" height="1305" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/SOMEWHERE-GOOD.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/SOMEWHERE-GOOD.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/SOMEWHERE-GOOD.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/SOMEWHERE-GOOD.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>For Somewhere Good, the audio-centric social platform, we opted to show the notification screen at the end of the onboarding flow with a simple/whimsical brand style.<br></p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/DUOLINGO.png" class="kg-image" alt loading="lazy" width="2000" height="972" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/DUOLINGO.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/DUOLINGO.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/DUOLINGO.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/DUOLINGO.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Language learning app, Duolingo, similarly includes a notification screen towards the end of a data gathering flow. They also use their owl as a brand mascot to ask the user questions.</p><h2 id="make-it-visual">Make it visual</h2><p>In order to make your ask more compelling, decide how you&#x2019;ll visually outline all of the benefits a user will get from pressing &#x201C;allow.&#x201D; Can you show exactly what features will be enhanced with notifications? How else can you make notifications feel necessary and simple?<br></p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/STRAVA.png" class="kg-image" alt loading="lazy" width="2000" height="1306" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/STRAVA.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/STRAVA.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/STRAVA.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/STRAVA.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Fitness app, Strava, shows visuals of notification examples so that users know exactly what to expect. This demonstrates value, but it also relieves any trepidation around whether notifications will be bothersome/intrusive.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/VENMO.png" class="kg-image" alt loading="lazy" width="2000" height="1303" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/VENMO.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/VENMO.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/VENMO.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/VENMO.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Venmo, the popular mobile-payment app, shows a modal pop up after onboarding and before landing on the homepage to very clearly answer the &#x201C;why notifications?&#x201D; question.</p><h2 id="friend-invites">Friend Invites</h2><p>This onboarding screen is where you&#x2019;ll encourage users to invite their friends to use your app. It&#x2019;s hugely important for top of funnel growth. If you pull off friend invites successfully (think of social-engagement apps like Clubhouse or Beli) you&#x2019;ll expand your user base fast.</p><p>One goal is to capitalize on the all important &#x201C;K-factor:&#x201D; a metric used to measure how likely a product or service is to spread through word-of-mouth or recommendations. A powerful KPI. Getting permission to view a user&apos;s contact list can be a crucial part of onboarding, even if you don&#x2019;t get users to invite friends right off the bat. It can help you create a social graph of who is connected to the product, which can support invites and growth down the road.</p><p>Make the benefit of invites clear to both sender and recipient, and you may be able to compel users to start combing through their contact list - or at the very least, letting you.</p><h2 id="friends-with-benefits">Friends with benefits</h2><p>Make it clear what they (the user) or their friend will receive in return for inviting them to your platform. Discounts? Freebies? A more premium app experience?</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/WHOOP.png" class="kg-image" alt loading="lazy" width="2000" height="1366" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/WHOOP.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/WHOOP.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/WHOOP.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/WHOOP.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Sleep app, Whoop, offers a 1 month free membership when you invite a friend. This happens right after sign in, and is clearly stated on the invite screen.</p><h2 id="make-the-mechanics-clear">Make the mechanics clear</h2><p>Show users exactly what&#x2019;s involved in the invite flow/process. What&#x2019;s expected of them when sending the invite, how will it show up for their friend, and what are the necessary next steps?</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/10--Happier.png" class="kg-image" alt loading="lazy" width="2000" height="1366" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/10--Happier.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/10--Happier.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/10--Happier.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/10--Happier.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>The mindfulness and meditation app, Ten Percent Happier, encourages users to collaborate with friends on challenges. In a series of invite screens they explain how users will learn about the challenge, what happens when they invite friends, and how their challenges will appear in the app once initiated. This sequence happens at the end of onboarding. Gamification paired with friend invites is a killer combo.</p><h2 id="the-invite-flow">The invite flow</h2><p>When considering a friend invite screen, you&#x2019;ll want to be clear on whether the invite friend flow effects the core functionality of your app. Are invites at the center of what your app does? If so, it&#x2019;s worth providing a visual walkthrough so users can see exactly what they (and their friends) are signing up for.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/RETRO-2.png" class="kg-image" alt loading="lazy" width="2000" height="1381" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/RETRO-2.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/RETRO-2.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/RETRO-2.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/RETRO-2.png 2400w" sizes="(min-width: 720px) 720px"></figure><p><br>Social app Retro uses multiple methods on one screen to invite friends to the app. Inputting contacts is imperative to app functionality, so they provide a contact sheet to quickly add contacts in your existing phone book, a share button and a copy link.</p><h2 id="look-and-feel">Look and feel</h2><p>The biggest technical question you&#x2019;ll face when designing your friend invite screen is determining how to integrate the &#x201C;invite friend&#x201D; button into the UI and how it then translates to native invite functionality. Keep in mind how a user might nudge an invite to a friend, and what the invite looks like - what copy gets sent to that friend.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/DISCORD.png" class="kg-image" alt loading="lazy" width="2000" height="1017" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/DISCORD.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/DISCORD.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/DISCORD.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/DISCORD.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Discord, the social/gaming app, uses the same styling and pattern as the notification screen to sync contacts. This keeps users &#x201C;in the flow&#x201D; and makes the native modules feel like an integrated part of the onboarding experience.</p><h2 id="last-thoughts-on-invites">Last thoughts on invites</h2><p>Every app is going to have different needs when it comes to friend invites. For some, a permanent invite friend module will make the most sense (especially true for social apps or those that require large networks to provide the most value). For others, a one-time invite pop-up might do the trick. Consider both UX and UI when designing your invite screen(s).</p><h2 id="customization-and-data-capture">Customization and Data Capture</h2><p>This won&#x2019;t apply to every app, but for those apps that require information from the account holder to personalize the in-app experience, creating a thoughtful data capture screen is crucial. You&#x2019;ll want to engage in some serious hand-holding to make sure users are inclined to fill in the necessary data. It&#x2019;s up to you to decide whether this piece of the onboarding puzzle is necessary. </p><h2 id="just-the-facts-ma%E2%80%99am">Just the facts, ma&#x2019;am</h2><p>When designing any customization or data capture screens you&#x2019;ll need to know exactly what data you want to collect during onboarding. Start by thinking about what mechanics of your app will benefit most from customization during onboarding. Use those insights to guide you when deciding on data to collect upfront.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/MUSTARD-1.png" class="kg-image" alt loading="lazy" width="2000" height="773" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/MUSTARD-1.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/MUSTARD-1.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/MUSTARD-1.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/MUSTARD-1.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>For Mustard, user measurements&#x2014;height, weight, and shoe size&#x2014;are crucial to the core functionality of the app. They use onboarding to collect all of this data, upfront.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/ZING.png" class="kg-image" alt loading="lazy" width="2000" height="808" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/ZING.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/ZING.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/ZING.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/ZING.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Money app, Zing, gathers financial data in order to follow regulatory requirements for their international money app.</p><h2 id="how-to-collect">How to collect</h2><p>Once you know what to collect, you&#x2019;ll need to decide how. Is it a single step process, or will there be several screens leading the user through the process? Have you created a UI that makes it easy for the user to understand what action to take? Can you use compelling visuals to help guide them through the process?</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/How-We-Feel.png" class="kg-image" alt loading="lazy" width="2000" height="811" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/How-We-Feel.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/How-We-Feel.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/How-We-Feel.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/How-We-Feel.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>How We Feel, the app/well-being journal, uses iconography and color to guide users through a multiple-choice flow.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/COSMOS.png" class="kg-image" alt loading="lazy" width="2000" height="1018" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/COSMOS.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/COSMOS.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/COSMOS.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/COSMOS.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Cosmos, called &#x201C;a discovery engine for creatives,&#x201D; pushes users to create a cluster and populate it with inspirational imagery. This enables the app to create a customized profile page.</p><h2 id="need-or-want">Need or want?</h2><p>As with the other onboarding sections, you&#x2019;ll want to decide where in the flow the customization and data capture occurs. Do you need to collect data right away (i.e., is it a necessary first step that can&#x2019;t be avoided), or is it something that can be skipped? Other options to collecting data right away:</p><ul><li>Let the user experience the app so that the product can infer data and confirm it.</li><li>Show the value of the product&#x2019;s features, then send push/in-app messages to encourage the user to finish the data collection.</li></ul><p>As a general rule of thumb, if it&apos;s not crucial to the app&apos;s success we would suggest removing it from onboarding so that the user can get into the product faster. Always keep user value top of mind.</p><h2 id="social-sign-in-authentication">Social Sign In &amp; Authentication</h2><p>Social Sign In is a great way to allow users to easily navigate through the sign-in process using multiple funnels. However, creating authentication options for your app requires additional development work, so don&#x2019;t tread lightly here. Before you proceed, think carefully about the most valuable sign-in method for your target app audience.</p><h2 id="options-for-them-decisions-for-you">Options for them, decisions for you</h2><p>When deciding how many funnel options to present, think first about your users. Mobile-first users tend to have great conversion rates because they&#x2019;re comfortable doing phone sign ups (OTP login) but what if your user base is older and used to Facebook or standard email/password logins? Give options that match these preferences whenever possible.</p><p>Remember: any new authentication method adds development and testing time. Once you add a new funnel, you&#x2019;ll have to cater to those authentication types moving forward, so choose wisely.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/CREATIVELY-2.png" class="kg-image" alt loading="lazy" width="2000" height="1319" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/CREATIVELY-2.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/CREATIVELY-2.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/CREATIVELY-2.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/CREATIVELY-2.png 2400w" sizes="(min-width: 720px) 720px"></figure><p><br><br>Job search app Creatively gives users options for native login, or through Apple and Google, but doesn&#x2019;t include a Facebook option. Most likely not a priority method for its primary users.</p><h2 id="weight-and-see">Weight and see</h2><p>No matter how many funnels you offer, you can give visual weight to your preferred sign-in options using branding, animation, even video.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/Fahlo-1.png" class="kg-image" alt loading="lazy" width="2000" height="974" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/Fahlo-1.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/Fahlo-1.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/Fahlo-1.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/Fahlo-1.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>For the Fahlo app we used video and animation to accompany the sign-in flow. While we did provide options, we gave more visual weight to native sign in methods.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/TILMO.png" class="kg-image" alt loading="lazy" width="2000" height="1367" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/TILMO.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/TILMO.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/TILMO.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2025/01/TILMO.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Tilmo, a daily planning app, gives visual weight to signing in via Apple. The other sign in button is demoted to the bottom of the page.</p><h2 id="the-how-when-of-verification">The how &amp; when of verification</h2><p>Once you&#x2019;ve chosen your funnels you&#x2019;ll need to decide how you&#x2019;re going to handle verification. How will you authenticate your users before letting them continue, and where does verification happen in the onboarding process?</p><p>Some ways to verify:</p><ul><li>Travel app, Expedia, uses a code authentication process.</li><li>Lime, the e-scooter provider, uses a toggle functionality to select multiple methods of verification - all of it outlined in a summary screen.</li><li>Dating app, Bumble, uses a mobile verification code when using phone sign in</li></ul><h2 id="the-buck-starts-at-onboarding"><strong>The buck starts at onboarding</strong></h2><p>While there&apos;s no one-size-fits-all solution for an effective onboarding, following the best practices outlined in this guide will help you design a flow that:</p><ul><li>Clearly communicates your app&apos;s value proposition</li><li>Introduces features in a digestible way</li><li>Strategically positions subscription offers</li><li>Makes permissions requests feel natural and valuable</li><li>Captures necessary user data</li><li>Provides appropriate authentication options</li></ul><p>Remember that onboarding is often your only chance to convert an interested user into an active one. Onboarding is part of your product that will likely always be evolving iteratively. Test different approaches, measure results, and iterate based on user behavior and feedback. With a thoughtful, well-designed onboarding experience, you&apos;ll be well positioned to turn curious users into long-term, engaged (and paying) customers.</p><p>Check out all our examples listed above in our comprehensive Figma guide <strong>here</strong>. </p><p>Need help auditing your existing onboarding or designing it for a new product? We can help. Contact <a href="buildwithstudio.com/contact">Studio</a>.</p>]]></content:encoded></item><item><title><![CDATA[The Guide to Submitting to Apple's App Store]]></title><description><![CDATA[Everything you need to know to submit to the App Store. Our guide walks you through what materials you’ll need to gather, how to write your app store copy, key tips, checklists and even a Figma template for product screenshots.]]></description><link>https://buildwithstudio.com/knowledge/the-guide-to-submitting-to-apples-app-store/</link><guid isPermaLink="false">676dd011857119000135a2b1</guid><category><![CDATA[Member]]></category><category><![CDATA[Product]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Thu, 26 Dec 2024 22:34:05 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/12/App-Store-Hero-2.png" class="kg-image" alt loading="lazy" width="2000" height="936" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/12/App-Store-Hero-2.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/12/App-Store-Hero-2.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2024/12/App-Store-Hero-2.png 1600w, https://buildwithstudio.com/knowledge/content/images/2024/12/App-Store-Hero-2.png 2308w" sizes="(min-width: 720px) 720px"></figure><p>You&#x2019;ve worked through digital strategy, designed a beautiful and intuitive mobile UI/UX, gathered feedback from users along the way, and ultimately built and QA&#x2019;d the product extensively. Now all that remains is to submit your app to the App Store for distribution. </p><p>While submitting your app for approval isn&apos;t exactly a creative challenge, it can be time-consuming - there are lots of t&#x2019;s to cross and i&#x2019;s to dot. The good news is that a lot of this can be done ahead of time to avoid any scrambles near launch. Submission hiccups are common, and the last thing you want is to be stuck madly fixing features on a tight launch deadline. </p><p>To avoid a dreaded rejection, follow our key tips, templates, and checklist for a smooth submission process.</p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/step-1.png" class="kg-image" alt loading="lazy" width="2000" height="931" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/step-1.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/step-1.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/step-1.png 1600w, https://buildwithstudio.com/knowledge/content/images/2025/01/step-1.png 2320w" sizes="(min-width: 720px) 720px"><figcaption>Step One: Create Your Accounts</figcaption></figure><ol><li><strong>Developer Account:</strong> If your team has been testing your app using Apple distribution channels like Testflight, you likely already have a developer account. If not, create one <a href="https://developer.apple.com/programs/enroll/?ref=buildwithstudio.com">here</a>.</li><li><strong>Support Email:</strong> The listing must provide users with a place to reach out for support, so make sure to set up a &#x201C;help,&#x201D; &#x201C;hello,&#x201D; or &#x201C;support&#x201D; group within your existing email domain.</li><li><strong>Apple Test Accounts:</strong> If your product is walled off with a sign up flow, you&#x2019;ll need to provide Apple with test account credentials with full access to the platform features. Create that account in your backend and double check on the frontend that the account works.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/Step-2.png" class="kg-image" alt loading="lazy" width="2000" height="931" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/Step-2.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/Step-2.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/Step-2.png 1600w, https://buildwithstudio.com/knowledge/content/images/2025/01/Step-2.png 2320w" sizes="(min-width: 720px) 720px"><figcaption>Step Two: Gather &amp; Create Materials</figcaption></figure><p>Most Apple submission requirements can be gathered while development is still in progress. No need to scramble - start this process weeks in advance to give you and your team enough time to produce the best possible assets to market your app.</p><h3 id="design-app-store-screenshots">Design App Store Screenshots</h3><p>App Store screenshots are an opportunity to entice and educate customers who are visiting your app listing page. Designing beautiful and feature informative screens can also be a helpful tool in other marketing efforts outside of the listing.</p><p>Apple is extremely particular about the dimensions and phone sizes displayed in these screenshots, and often companies are left to adjust their designs for an approved export last minute. To avoid that stress, use our recommended <strong><a href="https://www.figma.com/community/file/886620275115089774/app-store-play-store-preview-templates-icon-generator?ref=buildwithstudio.com">Figma template community library</a></strong> to drag and drop your designs into the correct sizes and export settings. </p><p>A few extra tips to keep in mind while designing:</p><ol><li>As the main visual on the listing page, these screenshots are a wonderful tool to draw a user in. Design these panels with room for a phone screen <em>as well as</em> educational copy, rather than a raw export of just the app on a phone mock up.</li><li>Evaluate what the key features are that might appeal to users who are first learning about your app. Don&#x2019;t lead with basic profile, setting, or onboarding designs - focus on the meat of what makes your product great. Don&#x2019;t shy away from sharing impressive metrics or stats directly on these screens.</li><li>Consider what your screenshots look like individually and as one long container. Users will swipe through these images in the App Store so it may be a nice visual touch to provide cohesion between each screen.</li><li>It&#x2019;s vital that the features and design displayed in these screenshots accurately represent what your product looks like for submission. Don&#x2019;t tease new features that aren&#x2019;t yet available in-app, as you will get rejected for inaccuracies between the listing and the live build.</li></ol><h3 id="define-privacy-policy">Define Privacy Policy</h3><p>Every app needs a privacy page for submission. The URL is required as a field in the submission questionnaire <em>and</em> it must be linked to from within the app&#x2019;s sign up flow. Work with your legal team to produce this content and host it on an accessible page.</p><p><em>Tip:</em> For MVP, if your product doesn&#x2019;t yet support these pages in-app or your product doesn&#x2019;t have a website, host this content on a publicly accessible Notion page.</p><h3 id="write-app-store-copy">Write App Store copy</h3><p>There are a few key areas in the App Store listing that require thoughtful product marketing copy. These areas include:</p><ol><li><strong>Title + Subtitle:</strong> The title and subtitle of the app is crucial in ensuring the product is easy to discover and download. Consider a short and memorable product name with a subtitle that describes what you do best in 2-3 words. That subtitle will show up in all App Store searches.</li><li><strong>App Description:</strong> This is the best place to define what your product does, explain who your company is, and speak directly to users on why they will get value out of your app. Until you have major functional changes, this description can (and should) stay the same between releases. It provides a solid backbone and explanation of what your app is all about. Think of it as your <em>About Us</em> section!</li><li><strong>Promo Text:</strong> This text sits above your description - it&#x2019;s often the first thing users see after screenshots and before they expand to learn more. This is also one of the rare parts of the listing that can be edited at any time between submissions, so it&#x2019;s a good place to note changes to users when a new build isn&#x2019;t available.</li><li><strong>What&#x2019;s New: </strong>This can and should change with each new release. Some companies keep it generic - noting when bugs and improvements have been made generally - while others value sharing specifics with customers. Please note, this section is required for each subsequent submission.</li></ol><h3 id="define-a-keyword-strategy-for-aso">Define a Keyword Strategy for ASO</h3><p>While SEO is all about search results on web, ASO (app store optimization) helps product marketers improve their app&apos;s visibility in the app store search results. There are paid and organic options to consider, so you may want to consult with an ASO specialist to determine your strategy and which <a href="https://searchads.apple.com/best-practices/keywords?ref=buildwithstudio.com">keywords</a> will boost your chances of discoverability.</p><p>Tip: We have historically found that paid campaigns on social tend to be a better driver of downloads than ASO efforts. Of course this is highly dependent on your target demographic and app&apos;s use case, but browsing the App Store for general search results <em>typically</em> is less common than responding to ads or web search results. Again, not a rule but something to consider. </p><h3 id="pick-categories">Pick categories</h3><p>There is a predefined list of categories <a href="https://developer.apple.com/app-store/categories/?ref=buildwithstudio.com">here</a> that you can select from when defining what your product does. This will help your app show up in top lists for that category and get served to users exploring the App Store.</p><h3 id="a-word-on-in-app-purchases">A word on in-app purchases</h3><p>If you&#x2019;re considering in-app purchases, you&#x2019;ll need to add those products separately and get approval from Apple prior to launching.</p><p>Note: Apple takes what some lovingly refer to as an &#x201C;Apple tax&#x201D; on any digital in-app purchases. Currently, those rates are:</p><ul><li><strong>Standard rate:</strong> 30% for most in-app purchases, including one-time purchases and the first year of subscriptions.</li><li><strong>Small Business Program:</strong> Eligible small businesses can get a reduced commission rate of 15% on paid apps and In-App Purchases. Check out their <a href="https://developer.apple.com/app-store/small-business-program?ref=buildwithstudio.com">program description page</a> to find out if you&#x2019;re eligible. (As long as you earn less than $1M/year on app sales, you probably are.)</li><li><strong>Subscription reduction:</strong> After the first year of a subscription, Apple&apos;s commission drops to 15%.</li></ul><p>If you want to avoid that cut, be sure you&#x2019;re selling something physical, rather than digital.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/Step-3.png" class="kg-image" alt loading="lazy" width="2000" height="931" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/Step-3.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/Step-3.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/Step-3.png 1600w, https://buildwithstudio.com/knowledge/content/images/2025/01/Step-3.png 2320w" sizes="(min-width: 720px) 720px"><figcaption>Step Three: Complete the Listing</figcaption></figure><p>As you complete tasks mentioned above, check them off in our master submission checklist <strong><a href="https://storyarb.notion.site/Apple-s-App-Store-Submission-Checklist-1511f3634e9a80be865afec66a318b2d?pvs=4&amp;ref=buildwithstudio.com">here</a>.</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/Step-4.png" class="kg-image" alt loading="lazy" width="2000" height="931" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/Step-4.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/Step-4.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/Step-4.png 1600w, https://buildwithstudio.com/knowledge/content/images/2025/01/Step-4.png 2320w" sizes="(min-width: 720px) 720px"><figcaption>Step Four: Functional Requirements</figcaption></figure><p>Congratulations, you&#x2019;ve successfully set up the listing page to Apple standards! Now it&#x2019;s important to comb through the functional requirements to ensure nothing in-app will cause a rejection:</p><ul><li>If you have user accounts, you need the ability to delete your account from in-app. If this functionality doesn&#x2019;t exist, you <em>will</em> get rejected.</li><li>Users must have an easy way to access terms + privacy from within app, even if it opens a web view.</li><li>If there is user generated content, you must give users the ability to report or block users. Note: providing a channel (like email) to report user activity is enough to satisfy this requirement.</li><li>If you do not want to support iPad, then you must uncheck that from Xcode. If not, you&#x2019;ll need iPad screenshots and some support for iPad designs in the product - it can&#x2019;t appear broken for iPad users.</li><li>If your app requires a user to be logged in to see features, make sure you&#x2019;ve provided a test account to Apple and that the test account has the right permission levels to view all the features needed for submission.</li><li>If your product is solely a transactional commerce/retail app, you must let users explore without blocking access behind a sign up wall.</li><li>If there is a digital product to purchase, you must add the product in the App Store Connect account, add bank account details, and allow users to natively restore purchases.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://buildwithstudio.com/knowledge/content/images/2025/01/Step-5.png" class="kg-image" alt loading="lazy" width="2000" height="931" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2025/01/Step-5.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2025/01/Step-5.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2025/01/Step-5.png 1600w, https://buildwithstudio.com/knowledge/content/images/2025/01/Step-5.png 2320w" sizes="(min-width: 720px) 720px"><figcaption>Final QA: Don&#x2019;t Forget!</figcaption></figure><p>A couple last tips to help with the big day:</p><ul><li><strong>Test Submission:</strong> We absolutely recommend submitting a test version of the app and getting an approval under your belt with a ton of advance notice (weeks prior to launch). There may be a functional issue in the app that requires actual development time to resolve - submitting early and often is the best way to catch those.</li><li><strong>Version History:</strong> Define your version history strategy with your team - ie: 1.0, 1.1, 1.2 vs 1.0.0, 1.0.1, 1.0.2, etc.</li><li><strong>Maintain Release Notes Internally:</strong> Each new release will host a bucket of new functionality or bug fixes and it&#x2019;s good practice to keep a running list of these pushes within your org.</li><li><strong>Ratings:</strong> Ratings are a major indicator of customer happiness and can provide key authority and legitimacy to your product. After you&#x2019;ve found product market fit, consider adding an in-app pop-up that requests users to fill out an app store rating once they have had a positive interaction.</li></ul><h2 id="need-more-help">Need More Help?</h2><p>With a decade of experience building digital products together, our team has submitted hundreds of apps to the App Store for review. If you&#x2019;re struggling to get your app submission-ready, <strong><a href="buildwithstudio.com/contact">contact Studio today</a>.</strong></p>]]></content:encoded></item><item><title><![CDATA[45+ Resources to Become a Great Product Manager]]></title><description><![CDATA[After nearly a decade building digital products that transform companies, we’ve cultivated the most crucial resources for aspiring (or seasoned) Product Managers.]]></description><link>https://buildwithstudio.com/knowledge/product-management-resources/</link><guid isPermaLink="false">6769c7a9857119000135a27f</guid><category><![CDATA[Member]]></category><category><![CDATA[Product]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Mon, 23 Dec 2024 20:33:09 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/12/product-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/12/product-1.png" alt="45+ Resources to Become a Great Product Manager"><p>The best Product Managers are Swiss Army knives - well-versed in business strategy, user experience and technical execution. Plus a host of other topics that evolve as quickly as the technology itself.</p><p>After nearly a decade building digital products that transform companies, we&#x2019;ve cultivated a healthy list of &#xA0;books, podcasts, and other learning materials to help you along your way. The content found here has helped our team navigate a variety of challenges - from prioritizing features and conducting sound user research, to communicating effectively with stakeholders. It&apos;s mandatory reading for our team.</p><p>Explore the resources below. Read, watch, listen. Our hope is that this curated selection of content will help you level up your skills, so that you can build better, smarter, more relevant products.</p><h2 id="books">Books</h2><ul><li><em>Design of Everyday Things</em> - Classic on user-centered design principles</li><li><em>Essential Scrum</em> - Practical framework for agile product development </li><li><em>Four Steps to the Epiphany</em> - Customer development methodology for product-market fit </li><li><em>Hard Thing About Hard Things</em> - Real-world lessons in building tech companies </li><li><em>High Output Management</em> - Andy Grove&apos;s principles for managing product teams </li><li><em>Hooked</em> - Framework for building habit-forming products </li><li><em>How to Win Friends &amp; Influence People</em> - Essential skills for product leadership</li><li><em>Innovator&apos;s Dilemma</em> - Why great companies fail to innovate effectively</li><li><em>Innovator&apos;s Solution</em> - Strategies for creating disruptive innovations successfully </li><li><em>Inspired</em> - Practical guide to modern product management practices </li><li><em>Lean Start Up</em> - Essential methodology for building products under uncertainty</li><li><em>Positioning</em> - Classic marketing strategy for product differentiation </li><li><em>Predictably Irrational</em> - Understanding customer psychology and decision-making </li><li><em>Sprint</em> - Google Ventures&apos; 5-day process for solving product problems </li><li><em>Super Thinking</em> - Mental models for better product decisions </li><li><em>Win Without Pitching</em> - Blair Enn&#x2019;s standard-setting framework for selling your product vision</li></ul><h2 id="websites">Websites</h2><ul><li><a href="https://a16z.com/news-content/?ref=buildwithstudio.com"><em>Andreessen Horowitz</em> </a>- VC perspectives on tech trends and product strategy</li><li> <a href="https://appleinsider.com/?ref=buildwithstudio.com"><em>Apple Insider</em> </a>- Latest Apple product news and analysis Department of Product - Practical guides for product management careers </li><li><em><a href="https://review.firstround.com/?ref=buildwithstudio.com">First Round</a></em> - In-depth articles on product and startup leadership </li><li><em><a href="https://medium.com/@yegg/mental-models-i-find-repeatedly-useful-936f1cc405d?ref=buildwithstudio.com#.wt934rkul">Gabriel Weinburg Mental Models</a></em> - Decision-making frameworks for product leaders </li><li><a href="https://news.ycombinator.com/?ref=buildwithstudio.com"><em>Hacker News</em> -</a> Tech community discussions on products and engineering </li><li><em><a href="https://www.bringthedonuts.com/?ref=buildwithstudio.com">Ken Norton</a></em> - Google PM veteran&apos;s essays on product leadership. A must read. </li><li><em>Lenny&apos;s Newsletter</em> - Actionable advice from experienced product leaders.</li><li><em><a href="https://www.nytimes.com/section/technology?ref=buildwithstudio.com">NYT Tech</a></em> - Tech industry coverage and product analysis </li><li><em><a href="https://paulgraham.com/articles.html?ref=buildwithstudio.com">Paul Graham Essays</a></em> - Y Combinator founder&apos;s insights on building products. Classic and value-packed.</li><li><em><a href="https://chromewebstore.google.com/detail/product-hunt/likjafohlgffamccflcidmedfongmkee?hl=en&amp;pli=1&amp;ref=buildwithstudio.com">Product Hunt</a></em> - Daily showcase of new products and tools (check out the chrome plugin, too)</li><li><em>Product Talk</em> - Product discovery and customer-centric development resources</li><li><em><a href="https://steveblank.com/tools-and-blogs-for-entrepreneurs/?ref=buildwithstudio.com">Steve Blank Toolkit</a></em> - Customer development and startup methodology resources </li><li><a href="https://www.tiny.com/writing?ref=buildwithstudio.com"><em>Tiny</em> / Metalab</a> - Product and company leadership insights from Andrew Wilkinson and others </li><li><em><a href="https://techcrunch.com/?ref=buildwithstudio.com">Techcrunch</a></em> - Breaking news on products and startups </li><li><em>The Product Guy</em> - Jeremy Horn&#x2019;s podcast, community and resources to master product management. </li><li><a href="https://www.ycombinator.com/library?ref=buildwithstudio.com"><em>YC Resources</em> </a>- Y Combinator&apos;s startup and product development guides</li></ul><h2 id="video-podcasts">Video &amp; Podcasts</h2><ul><li>A16Z - Andreessen Horowitz&apos;s insights on tech and product </li><li>Appleinsider - Deep analysis of Apple&apos;s product strategies </li><li>Ctrl-Alt-Delete - Award-winning podcast on work, wellbeing and creativity from host Emma Gannon. </li><li>Emmett Shear - Definitive guide to conducting effective user interviews </li><li>Farmerama - Innovation and product development in agriculture tech</li><li>Freakonomics - Economics principles applied to product decisions </li><li>Giant Ideas - Big-picture thinking for product strategy </li><li>Inc Uncensored - Behind-the-scenes of company building </li><li>Masters of Scale - Reid Hoffman on growing products into companies </li><li>NPR Politics - Policy impacts on product development </li><li>Planet Money - Economics stories relevant to product decisions </li><li>Radiolab - Storytelling and innovation insights </li><li>Talk show with John Gruber - Apple and tech product analysis </li><li>TED Radio Hour - Big ideas in technology and innovation </li><li>Tim Ferris - Interviews with product leaders and entrepreneurs </li><li>This is Product Management - Weekly interviews with product leaders </li></ul>]]></content:encoded></item><item><title><![CDATA[How to Build Something Your Users Will Share]]></title><description><![CDATA[<p>There&#x2019;s a myth out there about social sharing from apps.</p><p>The common sentiment seems to be: &#x201C;just slap on a share button&#x201D; and like magic, your content will start making its way around the wilds of the internet. This is especially true if the target is</p>]]></description><link>https://buildwithstudio.com/knowledge/how-to-build-something-your-users-will-share/</link><guid isPermaLink="false">67623633857119000135a261</guid><category><![CDATA[Product]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Wed, 18 Dec 2024 02:41:29 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/12/product.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/12/product.png" alt="How to Build Something Your Users Will Share"><p>There&#x2019;s a myth out there about social sharing from apps.</p><p>The common sentiment seems to be: &#x201C;just slap on a share button&#x201D; and like magic, your content will start making its way around the wilds of the internet. This is especially true if the target is a younger audience. Unfortunately, there is no &#x201C;go viral&#x201D; button.</p><p>If you want users to share content around your product, you&#x2019;re going to need to consider:</p><ol><li>What motivates people to share? And;</li><li>How to align your feature or content so it speaks directly to #1?</li></ol><p>Let&#x2019;s get into it.</p><h3 id="why-people-share"><strong>Why People Share</strong></h3><p>We have developed enough apps to have seen the share-cycle in action, and we&#x2019;ve distilled the primary motivations for sharing into four categories:</p><h3 id="1-the-cocktail-party-effect"><strong>1. The Cocktail Party Effect</strong></h3><p><strong>Motivation:</strong> to be seen as &#x201C;in the know.&#x201D; People who share for this reason are often positioning themselves as knowledgeable or cutting edge. They want to be the very first one in their network to share the cool new thing.</p><p><strong>Reward:</strong> praise &amp; validation from their peers.</p><p><strong>Notable Cocktail Shares:</strong> the latest and greatest article on a cultural topic, newly released features on an existing product or a brand new cutting-edge one (think Google Glass when it first arrived on the scene. RIP.)</p><h3 id="2-the-bandwagon-effect"><strong>2. The Bandwagon Effect</strong></h3><p><strong>Motivation:</strong> to participate in a viral moment. Users who share for this reason are often motivated by FOMO: they don&#x2019;t want to be the only ones in their circle (either physical or virtual) who haven&#x2019;t yet joined the movement.</p><p><strong>Reward:</strong> feeling a part of a larger, like-minded, community</p><p><strong>Notable Bandwagon Shares:</strong> the ALS ice-bucket challenge was a great example of the bandwagon effect. Being tagged to participate (and share) was a badge of honor. Political movements also capitalize on the bandwagon mentality, getting supporters to forward and share content as a means of participation in a campaign. Often there is some branded element that ties this together - a hashtag, a sticker, etc. </p><h3 id="3-the-omg-effect"><strong>3. The OMG Effect</strong></h3><p><strong>Motivation:</strong> the content has elicited such a strong, organic emotion &#x2013; joy, sadness, fear, surprise &#x2013; the user feels compelled to share it. Their motivation is simply that: to spread the feeling, good or bad, to others.</p><p><strong>Reward:</strong> validation and expansion of their experience</p><p><strong>Notable OMG Shares:</strong> the early adopters of the &#x201C;Faceapp&#x201D; AI aging filter were compelled to spread the word far and wide. This wasn&#x2019;t just because of the novelty of the tech, but because for young people, seeing themselves in the latter half of their golden years was too delightful, terrifying, and compelling not to share.</p><h3 id="4-the-need-to-know-effect"><strong>4. The Need-to-Know Effect</strong></h3><p><strong>Motivation:</strong> possibly the most difficult to inspire, this kind of sharing is motivated by a genuine desire to inform their network. Either to clue them in to an important cause, tap into collective wisdom, or uplift and elevate their community&#x2019;s knowledge.</p><p><strong>Reward:</strong> having an impact on friends, family, and like-minded others.</p><p><strong>Notable Need-to-Know Shares:</strong> those looking to raise awareness on important issues, seek or offer travel recommendations, or share new results/innovations on a topic close to their heart are all examples of this kind of spontaneous (and hard to capture) sharing.</p><h3 id="how-to-light-the-sharing-fire"><strong>How to light the sharing fire</strong></h3><p>Instead of making assumptions about shareability, consider the primary motivations for your target audience and focus there. Do they want to be moved? Shocked? Beckoned onto a fast-moving bandwagon? Design your features and content accordingly.</p><p>Think about sparking the impulse to share, rather than just declaring something shareable and hoping for the best. After all, sharing isn&#x2019;t about the button - it&#x2019;s about giving users something worth pressing for.</p>]]></content:encoded></item><item><title><![CDATA[Using Screen Navigation with Compose]]></title><description><![CDATA[In this guide, we deep dive into Compose navigation to help establish efficient navigation flows for your Android apps.]]></description><link>https://buildwithstudio.com/knowledge/using-screen-navigation-with-compose/</link><guid isPermaLink="false">66a7a9d9857119000135a1f0</guid><category><![CDATA[Engineering]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Mon, 29 Jul 2024 17:47:19 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/07/Engineering-4.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/07/Engineering-4.png" alt="Using Screen Navigation with Compose"><p>Moving between screens and views is a crucial aspect of creating robust and user-friendly Android applications. The approach to navigation has been totally transformed with the advent of Jetpack Compose, Google&apos;s modern declarative UI toolkit.</p><p>Managing navigation effectively can be a daunting task, especially when it involves passing data between screens. So in this guide, we will dive into Compose navigation to help establish efficient navigation flows for your Android apps.</p><p>To illustrate this, we&#x2019;ll construct a basic app with 3 distinct screens. The app will feature a Home Screen with a button to navigate to the Profile Screen. Additionally, the Home Screen will include a list of clickable items that lead to a detail screen. We&#x2019;ll develop the app using Compose and <a href="https://insert-koin.io/docs/quickstart/android/?ref=buildwithstudio.com">Koin</a> - straightforward library for injecting dependencies and viewModels.</p><h2 id="getting-started">Getting Started</h2><p>Let&apos;s kick off by incorporating the necessary dependencies in <code>build.gradle.kts</code>.</p><pre><code class="language-kotlin">
implementation(&quot;androidx.lifecycle:lifecycle-viewmodel-compose:2.8.1&quot;)

val composeNavVersion = &quot;2.7.7&quot;

implementation(&quot;androidx.navigation:navigation-compose:$composeNavVersion&quot;)

val koinVersion = &quot;3.5.6&quot;

implementation(&quot;io.insert-koin:koin-core:$koinVersion&quot;)

implementation(&quot;io.insert-koin:koin-android:$koinVersion&quot;)

implementation(&quot;io.insert-koin:koin-androidx-compose:$koinVersion&quot;)

</code></pre><h2 id="building-the-ui">Building the UI</h2><h3 id="home-screen">Home Screen</h3><p>The home screen is a very simple one that inputs a list of items and functions as the user taps on the button to navigate to the profile and item screens.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/07/image-1-1.png" class="kg-image" alt="Using Screen Navigation with Compose" loading="lazy" width="1583" height="1600" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/07/image-1-1.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/07/image-1-1.png 1000w, https://buildwithstudio.com/knowledge/content/images/2024/07/image-1-1.png 1583w" sizes="(min-width: 720px) 720px"></figure><pre><code class="language-kotlin">@Composable
fun HomeScreen(items: List&lt;ItemData&gt;, onTapProfile: () -&gt; Unit, onTapItem: (ItemData) -&gt; Unit) {

    Box(
        Modifier.fillMaxSize().background(Color(0xFF3F51B5)).safeDrawingPadding(),
        Alignment.Center
    ) {
        LazyColumn {
            item {
                Box(Modifier.fillMaxWidth(), Alignment.Center) {
                    Button(
                        modifier = Modifier.fillMaxWidth().padding(20.dp),
                        onClick = { onTapProfile() }
                    ) {
                        Text(&quot;Go to Profile&quot;)
                    }
                }
            }

            item {
                Text(
                    &quot;Items : &quot;,
                    fontSize = 30.sp,
                    color = Color.White,
                    modifier = Modifier.padding(10.dp)
                )
            }

            items(items) { item -&gt;
                Column(
                    Modifier.fillMaxWidth()
                        .height(50.dp)
                        .background(Color(item.color))
                        .clickable { onTapItem(item) }
                        .padding(horizontal = 20.dp)
                ) {
                    Spacer(Modifier.size(8.dp))

                    Text(&quot;Item&#xA0; #${item.id}&quot;, fontSize = 20.sp, color = Color.White)

                    Spacer(Modifier.size(8.dp))

                    Box(Modifier.fillMaxWidth().height(1.dp).background(Color.White))
                }
            }
        }
    }
}
</code></pre><h3 id="profile-screen">Profile Screen</h3><p>The profile screen is the simplest screen of all. It just has a title and text positioned at the center. We will come back to the ProfileViewModel later.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/07/image-2-profile.png" class="kg-image" alt="Using Screen Navigation with Compose" loading="lazy" width="1583" height="1600" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/07/image-2-profile.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/07/image-2-profile.png 1000w, https://buildwithstudio.com/knowledge/content/images/2024/07/image-2-profile.png 1583w" sizes="(min-width: 720px) 720px"></figure><pre><code class="language-kotlin">@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ProfileScreen() {

    val viewModel: ProfileViewModel = koinViewModel()

    Scaffold(
        topBar = {
            CenterAlignedTopAppBar(
                title = { Text(&quot;Profile&quot;, color = Color.Black, fontSize = 30.sp) },
                navigationIcon = {
                    IconButton({ viewModel.navigateBack() }) {
                        Icon(
                            painterResource(R.drawable.back_arrow),
                            &quot;back&quot;,
                            tint = Color.Black,
                            modifier = Modifier.size(30.dp)
                        )
                    }
                },
                modifier = Modifier,
                colors = TopAppBarDefaults.topAppBarColors(containerColor = Color.Transparent)
            )
        }
    ) { paddingValues -&gt;
        Box(Modifier.fillMaxSize().background(Color.White), Alignment.Center) {
            Text(&quot;Profile Screen&quot;, fontSize = 30.sp, color = Color.Black)
        }
    }
}
</code></pre><h3 id="item-details-screen">Item Details Screen</h3><p>The ItemDetailsScreen will take the data from the ItemDetailsViewModel to display the number of the item and use the color for the background.</p><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/07/image-3-details.png" class="kg-image" alt="Using Screen Navigation with Compose" loading="lazy" width="1583" height="1600" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/07/image-3-details.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/07/image-3-details.png 1000w, https://buildwithstudio.com/knowledge/content/images/2024/07/image-3-details.png 1583w" sizes="(min-width: 720px) 720px"></figure><pre><code class="language-kotlin">@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ItemDetailsScreen() {

    val viewModel: ItemDetailsViewModel = koinViewModel()

    Scaffold(
        topBar = {
            CenterAlignedTopAppBar(
                title = { Text(&quot;Item Details&quot;, color = Color.White, fontSize = 30.sp) },
                navigationIcon = {
                    IconButton({
                        // TODO: Add back navigation
                    }) {
                        Icon(
                            painterResource(R.drawable.back_arrow),
                            &quot;back&quot;,
                            tint = Color.White,
                            modifier = Modifier.size(30.dp)
                        )
                    }
                },
                modifier = Modifier,
                colors = TopAppBarDefaults.topAppBarColors(containerColor = Color.Transparent)
            )
        }
    ) { paddingValues -&gt;
        val item by remember { mutableStateOf(viewModel.item) }

        Box(Modifier.fillMaxSize().background(Color(item.color)), Alignment.Center) {
            Text(&quot;Item #${item.id}&quot;, fontSize = 30.sp, color = Color.White)
        }
    }
}
</code></pre><h2 id="the-domain-layer">The Domain layer</h2><p>To replicate a real-life scenario, let&#x2019;s utilize a service that will supply us with the necessary data to showcase on our various screens. The ItemService will be injected into both the AppViewModel and ItemDetailsViewModel. These viewModels will then retrieve the required data and send it to the view.</p><pre><code class="language-kotlin">interface ItemService {
    val items: List&lt;ItemData&gt;
}

class RealItemService : ItemService {

    override val items: List&lt;ItemData&gt; = generateItems()

    // Generate a list of 100 items with the index as ID and a random color from the list below
    private fun generateItems(): List&lt;ItemData&gt; =
        (0 until 100).map { ItemData(id = it, color = getRandomColor()) }

    private fun getRandomColor(): Long {

        val colorList =
            listOf(
                0xFFF44336,
                0xFF009688,
                0xFF9C27B0,
                0xFF673AB7,
                0xFF3F51B5,
                0xFF4CAF50,
                0xFFFF5722,
                0xFF5F1700,
                0xFF690024,
                0xFF000D53,
                0xFF003602
            )

        return colorList[(0..colorList.lastIndex).random()]
    }
}

data class ItemData(val id: Int, val color: Long)
</code></pre><h2 id="dependency-injection">Dependency Injection</h2><p>In order to be able to inject the service into the ViewModels and inject the ViewModels into the views, we are going to use <a href="https://insert-koin.io/docs/quickstart/android/?ref=buildwithstudio.com">Koin</a>. The setup is very simple.</p><p>First, we need to create a custom App class:</p><pre><code class="language-kotlin">class MainApp : Application() {

    override fun onCreate() {

        super.onCreate()

        startKoin {
            androidContext(this@MainApp)

            modules(appModule)
        }
    }
}
</code></pre><p>Set the MainApp as the class to run at launch in the manifest:</p><pre><code class="language-xml">&lt;manifest xmlns:android=&quot;&lt;http://schemas.android.com/apk/res/android&gt;&quot; xmlns:tools=&quot;&lt;http://schemas.android.com/tools&gt;&quot;&gt;

&lt;application android:name=&quot;.MainApp&quot;&gt;</code></pre><p>Almost there! Just create a kotlin file called <code>appModule.kt</code>. This file will contain all the different components to inject:</p><pre><code class="language-kotlin">val appModule = module {

    // create a viewModel with all the required dependencies
    viewModelOf(::ItemDetailsViewModel)

    viewModelOf(::ProfileViewModel)

    viewModelOf(::AppViewModel)

    // Inject a Singleton
    single&lt;ItemService&gt; { RealItemService() }
}
</code></pre><p>And now we can create our viewModels to inject in the views:</p><pre><code class="language-kotlin">
val viewModel: ViewModel = koinViewModel()

</code></pre><pre><code class="language-kotlin">class AppViewModel(itemService: ItemService) : ViewModel() {
    val itemList = itemService.items
}

class ItemDetailsViewModel(itemService: ItemService) : ViewModel()

class ProfileViewModel(private val navigator: Navigator) : ViewModel()
</code></pre><h2 id="navigation-handling">Navigation Handling</h2><p>Now that we&#x2019;ve set up the foundation, it&apos;s time to explore how to manage navigation using Jetpack Compose. To achieve this, we&apos;ll utilize the <code>NavHost</code> Component to encapsulate the various destinations within our app:</p><pre><code class="language-kotlin">// Call this view from the MainActivity
// setContent {
// &#xA0; &#xA0; TutorialNavigationTheme {
// &#xA0; &#xA0; &#xA0; &#xA0; AppScreen()
// &#xA0; &#xA0; }
// }

@Composable
fun AppScreen() {

    val viewModel: AppViewModel = koinViewModel()

    val navController = rememberNavController()

    NavHost(navController = navController, startDestination = HomeDestination.route) {
        composable(HomeDestination.route) {
            HomeContent(
                viewModel.itemList,
                {
                    // TODO: Add Profile Navigation
                }
            ) {
                // TODO: Add Item Navigation
            }
        }

        composableSlideInOut(ProfileDestination.route) { ProfileScreen() }

        composableSlideInOut(
            ItemDetailsDestination.route,
            arguments = ItemDetailsDestination.navArgs
        ) {
            ItemDetailsScreen()
        }
    }
}
</code></pre><p><code>composableSlideInOut</code> is just an extension to customize the transition between two screens:</p><pre><code class="language-kotlin">private const val transitionDuration = 700

fun NavGraphBuilder.composableSlideInOut(
    route: String,
    arguments: List&lt;NamedNavArgument&gt; = emptyList(),
    deepLinks: List&lt;NavDeepLink&gt; = emptyList(),
    enterTransition:
        (@JvmSuppressWildcards
        AnimatedContentTransitionScope&lt;NavBackStackEntry&gt;.() -&gt; EnterTransition?)? =
        {
            slideIntoContainer(
                AnimatedContentTransitionScope.SlideDirection.Left,
                tween(transitionDuration)
            )
        },
    exitTransition:
        (@JvmSuppressWildcards
        AnimatedContentTransitionScope&lt;NavBackStackEntry&gt;.() -&gt; ExitTransition?)? =
        {
            slideOutOfContainer(
                AnimatedContentTransitionScope.SlideDirection.Left,
                tween(transitionDuration)
            )
        },
    popEnterTransition:
        (@JvmSuppressWildcards
        AnimatedContentTransitionScope&lt;NavBackStackEntry&gt;.() -&gt; EnterTransition?)? =
        {
            slideIntoContainer(
                AnimatedContentTransitionScope.SlideDirection.Right,
                tween(transitionDuration)
            )
        },
    popExitTransition:
        (@JvmSuppressWildcards
        AnimatedContentTransitionScope&lt;NavBackStackEntry&gt;.() -&gt; ExitTransition?)? =
        {
            slideOutOfContainer(
                AnimatedContentTransitionScope.SlideDirection.Right,
                tween(transitionDuration)
            )
        },
    content: @Composable AnimatedContentScope.(NavBackStackEntry) -&gt; Unit
) {

    composable(
        route,
        arguments,
        deepLinks,
        enterTransition,
        exitTransition,
        popEnterTransition,
        popExitTransition,
        content
    )
}
</code></pre><p>Within the <code>NavHost</code>, you&apos;ll find composables that specify the various views and how to navigate between them. Remember to include a <code>NavController</code> using <code>rememberNavController</code> to handle the navigation.</p><p>The <code>NavHost</code> must designate a start destination to determine the initial screen to show. This start destination is simply a <code>String</code> that corresponds to one provided to a <code>composable</code>.</p><p>Here, we want the app to start on the HomeScreen.</p><h3 id="destinations">Destinations</h3><p>There are numerous effective approaches to handle destinations - scattered <code>Strings</code> however, is not one of the recommended approaches. It&apos;s quite easy to misspell them and encounter a crash. Instead, a popular approach is to utilize either an <code>enum class</code> or a <code>sealed class</code>.</p><p>For now, we&apos;ll handle destinations differently. Every destination will be a class that contains a static string for the route.</p><pre><code class="language-kotlin">object HomeDestination {

    private const val root = &quot;home&quot;

    const val route = root
}
</code></pre><p>Or:</p><pre><code class="language-kotlin">object ProfileDestination {

    private const val root = &quot;profile&quot;

    const val route = root
}
</code></pre><p>This will work nicely for a simple navigation without passing any arguments between screens. It might even be overkill.</p><p>Issues may arise when trying to send data - like the item id - to <code>ItemDetailsScreen</code> in this case.</p><p>To send parameters to a different screen, you must include the parameter name after the destination name in the route definition, for example: <code>&quot;$root/$index&quot;</code>. As you construct the route, the argument name will be substituted with its actual value.</p><p>To make it easy, each destination will extend <code>NavDestination</code>.</p><pre><code class="language-kotlin">interface NavDestination {

    fun buildRoute(): String
}

object HomeDestination : NavDestination {

    override fun buildRoute(): String = route

    private const val root = &quot;home&quot;

    const val route = root
}

object ProfileDestination : NavDestination {

    override fun buildRoute(): String = route

    private const val root = &quot;profile&quot;

    const val route = root
}

class ItemDetailsDestination(val index: Int) : NavDestination {

    constructor(
        savedStateHandle: SavedStateHandle
    ) : this(index = requireNotNull(savedStateHandle.get&lt;Int&gt;(inputArg)))

    override fun buildRoute(): String = &quot;$root/$index&quot;

    companion object {

        private const val root = &quot;item_details&quot;

        private const val inputArg = &quot;index&quot;

        const val route = &quot;$root/{$inputArg}&quot;

        val navArgs = listOf(navArgument(inputArg) { type = NavType.IntType })
    }
}
</code></pre><p>As you can see, <code>ItemDetailsDestination</code> will pass the index of the selected item to the detailed screen. For this, we pass the static <code>route</code> and navigation arguments <code>navArgs</code> which consist of a list of name (<code>inputArg</code> which is <code>index</code>) and a type (Here <code>NavType.IntType</code>).</p><p>The custom constructor will be used to recreate ItemDetailsDestination with the params that were passed from <code>HomeScreen</code> thanks to <code>SavedStateHandle</code>. More to come on that.</p><h3 id="navigator">Navigator</h3><p>Let&apos;s look at the main component of this architecture - the <code>Navigator</code> :</p><pre><code class="language-kotlin">interface Navigator {

    fun setController(navController: NavController)

    fun navigate(route: NavDestination, builder: NavOptionsBuilder.() -&gt; Unit = {})

    fun popBackStack()

    fun popBackStack(route: NavDestination, inclusive: Boolean, saveState: Boolean = false)
}

class RealNavigator : Navigator {

    private var navController: NavController? = null

    override fun setController(navController: NavController) {

        this.navController = navController
    }

    override fun navigate(route: NavDestination, builder: NavOptionsBuilder.() -&gt; Unit) {

        navController?.navigate(route.buildRoute(), builder)
            ?: Log.w(&quot;Navigator&quot;, &quot;No NavController set in the Navigator&quot;)
    }

    override fun popBackStack() {

        navController?.popBackStack() ?: Log.w(&quot;Navigator&quot;, &quot;No NavController set in the Navigator&quot;)
    }

    override fun popBackStack(route: NavDestination, inclusive: Boolean, saveState: Boolean) {

        navController?.popBackStack(route.buildRoute(), inclusive, saveState)
    }
}
</code></pre><p>The <code>Navigator</code> will handle the navigation for us. From now on, every time we want to navigate, we are not going to call the usual <code>navController.navigate(&quot;route&quot;)</code> but <code>navigator.navigate(NavDestination)</code> instead. The <code>Navigator</code> will also take care of the back navigation calling <code>popBackStack()</code> to navigate back to the previous screen or to a desired screen present in the navigation back stack.</p><p>The <code>Navigator</code> will be injected into the viewModel of every screen and the view will call a viewModel function that will handle the desired navigation.</p><p>Now, let&apos;s see how to set that up.</p><p>In the <code>appModule</code> that we created previously, define how to instantiate the <code>Navigator</code></p><pre><code class="language-kotlin">val appModule = module {
    viewModelOf(::ItemDetailsViewModel)

    viewModelOf(::ProfileViewModel)

    viewModelOf(::AppViewModel)

    single&lt;ItemService&gt; { RealItemService() }

    // Add this line
    single&lt;Navigator&gt; { RealNavigator() }
}
</code></pre><p>In order for the <code>Navigator</code> to work, it needs to have the Compose <code>NavController</code> used by the <code>NavHost</code>. As the <code>Navigator</code> is a singleton, only one instance will be created, ensuring that we have a common <code>Navigator</code> across the app.</p><p>So we can inject it in the <code>AppScreen</code> where we will pass the <code>NavController</code>:</p><pre><code class="language-kotlin">@Composable
fun AppScreen(
    // Inject the navigator
    navigator: Navigator = koinInject()
) {

    val viewModel: AppViewModel = koinViewModel()

    val navController = rememberNavController()

    // Pass the navController to the navigator
    LaunchedEffect(navController) { 	
    	navigator.setController(navController) 
    }
    
    ...
}
</code></pre><p>Now we can modify each viewModel by adding the navigator to their constructor. As the navigator is defined in the <code>appModule</code>, Koin knows how to instantiate and pass it to the ViewModel</p><pre><code class="language-kotlin">class AppViewModel(itemService: ItemService, private val navigator: Navigator) : ViewModel() {

    val itemList = itemService.items

    fun navigateToProfile() {
        navigator.navigate(ProfileDestination)
    }

    fun navigateToItem(index: Int) {
        navigator.navigate(ItemDetailsDestination(index))
    }
}
</code></pre><p>The ViewModel will now handle the navigation. We can fill the <code>HomeScreen</code> lambda with the navigation logic:</p><pre><code class="language-kotlin">fun AppScreen(navigator: Navigator = koinInject()) {
    ...
    NavHost(navController = navController, startDestination = HomeDestination.route) {
        composable(HomeDestination.route) {
            HomeScreen(viewModel.itemList, { viewModel.navigateToProfile() }) { item -&gt;
                viewModel.navigateToItem(item.id)
            }
        }

        ...
    }
}</code></pre><h2 id="receiving-arguments">Receiving arguments</h2><p>In order to receive the arguments, we will inject the <code>Navigator</code> and the <code>SavedStateHandle</code> which holds the arguments in a key-value format.</p><p>Koin takes care of <code>SavedStateHandle</code> as stated <a href="https://insert-koin.io/docs/reference/koin-android/viewmodel/?ref=buildwithstudio.com#savedstatehandle-injection-330">here</a>.</p><pre><code class="language-kotlin">class ItemDetailsViewModel(
    itemService: ItemService,
    private val navigator: Navigator,
    savedStateHandle: SavedStateHandle
) : ViewModel() {

    private val route = ItemDetailsDestination(savedStateHandle)

    val item = itemService.items[route.index]

    fun navigateBack() {
        navigator.popBackStack()
    }
}
</code></pre><p>First, <code>ItemDetailsViewModel</code> retrieves the index of the item from the <code>SavedStateHandle</code> and then gets the item object from the itemService.</p><p>We can now call <code>navigateBack()</code> from the view to navigate back to our <code>HomeScreen</code></p><pre><code class="language-kotlin">Scaffold(
    topBar = {
        CenterAlignedTopAppBar(
            title = { Text(&quot;Item Details&quot;, color = Color.White, fontSize = 30.sp) },
            navigationIcon = {
                IconButton({
                    // Call back navigation here
                    viewModel.navigateBack()
                }) {
                    Icon(
                        painterResource(R.drawable.back_arrow),
                        &quot;back&quot;,
                        tint = Color.White,
                        modifier = Modifier.size(30.dp)
                    )
                }
            }
        )
    }
)
</code></pre><p>So there you have it! We&apos;ve just explored the best way to handle navigation in your Jetpack Compose Android apps.</p><p>By using this architecture you can create a navigation structure that&apos;s not only robust but also super easy to maintain and scale, without using too many callbacks to call the <code>NavController</code> from the parent view with the <code>NavHost</code>.</p><p>This approach makes for cleaner code and reduces the chance of errors. If you&apos;re looking for help building your Android product, <a href="buildwithstudio.com/contact">contact Studio today</a>. </p>]]></content:encoded></item><item><title><![CDATA[A Frontend Developer's Take On AI]]></title><description><![CDATA[AI is shaking things up in frontend development, changing the way developers build and improve web applications. Learn how to leverage AI best in frontend and where to skip it. ]]></description><link>https://buildwithstudio.com/knowledge/a-frontend-developers-take-on-ai/</link><guid isPermaLink="false">669dc15f857119000135a1b0</guid><category><![CDATA[Engineering]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Mon, 22 Jul 2024 10:44:22 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/07/Engineering-3.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/07/Engineering-3.png" alt="A Frontend Developer&apos;s Take On AI"><p>AI is shaking things up in frontend development, changing the way developers build and improve web applications. AI can of course add interesting benefits to product design and development - automating mundane tasks or offering alternative design patterns. But it can also divide the community. Some believe it&#x2019;s ushering in a new era of smart, responsive, and user-friendly web applications, while others are concerned about the dependence on AI, potential biases, ethical implications, overall quality and accuracy, and security vulnerabilities to boot.</p><p>As Studio&#x2019;s lead frontend developer, I am cautiously optimistic about AI. I already utilize OpenAI regularly: first with VSCode and GitHub&#x2019;s Copilot code completion extension, and second by leveraging ChatGPT to convert UX components from one technology to another. My experience so far has been using ChatGPT for internal UX prototypes that I build on Codepen or CodeSandbox, while I&apos;ve been using Copilot for around 2 years both when it was free and now behind a subscription for both commercial and personal projects.</p><p>This won&#x2019;t be another how-to get started with AI, but rather a reflection on my frontend experience leveraging AI.</p><h2 id="vscode-github-copilotcode-completion-tools">VSCode &amp; Github Copilot - Code Completion Tools</h2><p>In the past, traditional code completion tools relied on developers to provide direct code-related input, such as variable names and functions, without the use of natural language descriptions. These tools were integrated into IDEs over the last 2 decades or so, but they often relied on small datasets and heuristics to offer suggestions, which were limited in scope and context.</p><p>However, tools like Emmet, which include code completion as just one feature of their toolkit, still hold value. Whether they are more useful than AI depends on your approach to extracting designs that might be in Figma, in browser, or built from static images (I feel your pain). Like mentioned above, this is code completion and not exported code generation from uploading or inputting files.</p><h3 id="css-html-js"><strong>CSS, HTML &amp; JS</strong></h3><p>My overall experience is that HTML &amp; CSS code completion isn&#x2019;t strong enough yet, but has glimpses of greatness. After a recent update to Copilot, it can now access project workspaces. This has given me a false sense of security in its understanding of a project&#x2019;s overall context. I find myself more often deleting suggested code after accidentally hitting tab when a suggestion is provided. That finger that presses that tab key is awfully itchy.</p><h3 id="css">CSS</h3><p>I&#x2019;m under the impression that it has access to variables / mixins / functions that are recurring patterns throughout the code, so it will get you 50% of the way for recurring, mostly typographical, elements. If you&#x2019;re setting up your typographical elements for a design system, it won&#x2019;t get this right immediately. For those small modifiers it can provide all the necessary properties but still requires backtracking to adjust the values you actually need.</p><p>Productivity may have been marginally improved given the above, but experienced developers can write those properties out just as quickly without the backtrack or need to wait for an API to catch up. It rightly assumes that you want to reuse properties from other components in your library, but this can lead to extra scruff if those properties have already been componentized specifically. This can be time-consuming when working on a new isolated component. Just be cautious on hitting that tab/enter key.</p><p>Some additional thoughts:</p><ul><li>Useful for recurring properties like flex/grid and their related properties like align-items/grid-template-columns. However, productivity isn&apos;t significantly better than writing it yourself as it&#x2019;s highly unlikely it&#x2019;ll get it spot on without - again - the context of seeing the design.</li><li>Copilot won&#x2019;t catch cross browser compatibility issues. While Figma-generated CSS is exactly what you want the design to look like, it&apos;s worth noting that Figma CSS may not fully work with all browsers or will work but have performance bottlenecks. Looking at you, Safari on MacOS and iOS.</li></ul><h4 id="html-js">HTML &amp; JS</h4><p>It seems that code completion for HTML is generally better than it is for CSS, though the effectiveness varies depending on your tech stack. When it comes to plain HTML, stick with Emmet (or your IDE&#x2019;s version of it), it&#x2019;s so much faster and it gets all class name methodologies, css utilities/modifiers and attributes right the first time.</p><p>It truly shines with JS/TS and JSX/TSX, largely due to the extra steps these types require. Initially, I wouldn&#x2019;t use it when setting up a JSX/TSX component, using abbreviated shorthand commands that come from great extensions to generate boilerplate can be faster for the initial setup than the time it takes to input a query, receive a response from Copilot, and accept that response. </p><p>However the part that it really excels at is when you&#x2019;ve happily finished writing your components HTML-like syntax, adding the accompanying functions or states/hooks is a blast. When writing the JSDoc or a comment first, it will grab the context and more often than not can be spot on with the functionality, give or take a few odd values or misspelled variables it didn&#x2019;t know you had already created. Writing JSDoc or comments always tend to be an afterthought that a developer tacks on when preparing a PR for review - here it&#x2019;s pushing me to write this first so I do less later. Takes me back to writing JSDoc for Google&#x2019;s closure compiler without the constant failing.</p><p>It&#x2019;s worth noting that if you&#x2019;re not providing context in comments/JSDoc first then setting up functions, it is more often wrong as it misses the execution you want and wastes time generating responses. If you&#x2019;re not 100% sure about a library for example, it can take you down a rabbit hole which may be distracting for a junior developer.</p><p>Here are some other observations I&apos;ve made:</p><ul><li>The suggestions for unordered lists can be wild in HTML and CSS. &#x201C;Did you want extra list items or pseudo elements in your sandwich? No?&#x201D;.</li></ul><h2 id="recreating-components-from-one-tech-library-to-another-using-chatgpt">Recreating components from one tech library to another using ChatGPT</h2><p>Using ChatGPT to recreate JavaScript components from one technology library to another can be a highly effective approach, particularly when dealing with animations. I like to scope around for new emerging libraries that I&#x2019;ve not used before or not currently using in a tech stack and recreate those components in a sandbox or on Codepen to something I&#x2019;m more familiar with. For instance, converting animations from AnimeJS to GSAP can be streamlined with the help of ChatGPT.</p><p>Below is an example of using ChatGPT to recreate a component from the Aceternity UI library (if you haven&#x2019;t checked them out, highly recommend).The example converts AnimeJS and Tailwind to GSAP with plain HTML &amp; CSS.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ui.aceternity.com/components/background-beams?ref=buildwithstudio.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Background Beams</div><div class="kg-bookmark-description">Multiple background beams that follow a path of SVG, makes a good hero section background.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ui.aceternity.com/apple-icon.png?2deb28af3ac52d4d" alt="A Frontend Developer&apos;s Take On AI"><span class="kg-bookmark-author">(function(){var w=window;var ic=w.Intercom;if(typeof ic===&quot;function&quot;){ic(&apos;reattach_activator&apos;);ic(&apos;update&apos;,w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement(&apos;script&apos;);s.type=&apos;text/javascript&apos;;s.async=true;s.src=&apos;https://widget.intercom.io/widget/duup7948&apos;;var x=d.getElementsByTagName(&apos;script&apos;)[0];x.parentNode.insertBefore(s,x);};if(document.readyState===&apos;complete&apos;){l();}else if(w.attachEvent){w.attachEvent(&apos;onload&apos;,l);}else{w.addEventListener(&apos;load&apos;,l,false);}}})(); !function(){try{var d=document.documentElement,c=d.classList;c.remove(&apos;light&apos;,&apos;dark&apos;);var e=localStorage.getItem(&apos;theme&apos;);if(&apos;system&apos;===e||(!e&amp;&amp;true)){var t=&apos;(prefers-color-scheme: dark)&apos;,m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = &apos;dark&apos;;c.add(&apos;dark&apos;)}else{d.style.colorScheme = &apos;light&apos;;c.add(&apos;light&apos;)}}else if(e){c.add(e|| &apos;&apos;)}if(e===&apos;light&apos;||e===&apos;dark&apos;)d.style.colorScheme=e}catch(e){}}() Aceternity UIComponentsTemplatesnewPricingDiscordTwitterToggle themeSearch Components&#x2318;K[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}Follow for updatesTwitter @mannupaajiInstallationInstall Next.jsInstall Tailwind CSSAdd utilitiesCLIAll Components3D Card Effect3D PinAnimated ModalNewAnimated TooltipAurora BackgroundBackground BeamsBackground BoxesBackground GradientBento GridCanvas Reveal EffectCard Hover EffectCard StackContainer Scroll AnimationDirection Aware HoverEvervault CardExpandable CardNewFlip WordsFloating NavbarFollowing PointerGitHub GlobeGlare CardNewGlowing StarsGoogle Gemini EffectGradient AnimationGrid and Dot BackgroundsHero HighlightHero ParallaxHover Border GradientImages SliderInfinite Moving CardsLamp effectLayout GridLink PreviewMacbook ScrollMeteorsMoving BorderMulti Step LoaderNavbar MenuParallax ScrollPlaceholders And Vanish InputSidebarNewSignup FormSparklesSpotlightSticky Scroll RevealSVG Mask EffectTabsTailwind CSS buttonsText Generate EffectText Reveal CardTracing BeamTypewriter EffectVortexWavy BackgroundWobble CardMarketingCards3Feature sections3Background BeamsMultiple background beams that follow a path of SVG, makes a good hero section background.self.__wrap_n=self.__wrap_n||(self.CSS&amp;&amp;CSS.supports(&quot;text-wrap&quot;,&quot;balance&quot;)?1:2);self.__wrap_b=(e,t,r)=&gt;{let n=(r=r||document.querySelector(`[data-br=&quot;${e}&quot;]`)).parentElement,i=e=&gt;r.style.maxWidth=e+&quot;px&quot;;r.style.maxWidth=&quot;&quot;;let s=n.clientWidth,l=n.clientHeight,u=s/2-.25,o=s+.5,a;if(s){for(i(u),u=Math.max(r.scrollWidth,u);u+1&lt;o;)i(a=Math.round((u+o)/2)),n.clientHeight===l?o=a:u=a;i(o*t+s*(1-t))}r.__wrap_o||&quot;undefined&quot;!=typeof ResizeObserver&amp;&amp;(r.__wrap_o=new ResizeObserver(()=&gt;{self.__wrap_b(0,+r.dataset.brr,r)})).observe(n)};self.__wrap_n!=1&amp;&amp;self.__wrap_b(&quot;:Rjffaul5a:&quot;,1)cardbackgroundgradientspecialPreviewCodeJoin the waitlistWelcome to MailJet, the best transactional email service on the web. We provide reliable, scalable, and customizable email solutions for your business. Whether you&apos;re sending order confirmations, password reset emails, or promotional campaigns, MailJet has got you covered.InstallationCLIManualInstall dependenciesnpm i framer-motion clsx tailwind-mergeCopyAdd util filelib/utils.tsimport { ClassValue, clsx } from &quot;clsx&quot;;import { twMerge } from &quot;tailwind-merge&quot;; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs));}CopyAdd Tailwind CSS plugin for variable classestailwind.config.tsconst defaultTheme = require(&quot;tailwindcss/defaultTheme&quot;); const colors = require(&quot;tailwindcss/colors&quot;);const { default: flattenColorPalette,} = require(&quot;tailwindcss/lib/util/flattenColorPalette&quot;); /** @type {import(&apos;tailwindcss&apos;).Config} */module.exports = { content: [&quot;./src/**/*.{ts,tsx}&quot;], darkMode: &quot;class&quot;, theme: { // rest of the code }, plugins: [addVariablesForColors],}; function addVariablesForColors({ addBase, theme }: any) { let allColors = flattenColorPalette(theme(&quot;colors&quot;)); let newVars = Object.fromEntries( Object.entries(allColors).map(([key, val]) =&gt; [`--${key}`, val]) ); addBase({ &quot;:root&quot;: newVars, });}CopyCopy the source codecomponents/ui/background-beams.tsx&quot;use client&quot;;import React from &quot;react&quot;;import { motion } from &quot;framer-motion&quot;;import { cn } from &quot;@/lib/utils&quot;; export const BackgroundBeams = React.memo( ({ className }: { className?: string }) =&gt; { const paths = [ &quot;M-380 -189C-380 -189 -312 216 152 343C616 470 684 875 684 875&quot;, &quot;M-373 -197C-373 -197 -305 208 159 335C623 462 691 867 691 867&quot;, &quot;M-366 -205C-366 -205 -298 200 166 327C630 454 698 859 698 859&quot;, &quot;M-359 -213C-359 -213 -291 192 173 319C637 446 705 851 705 851&quot;, &quot;M-352 -221C-352 -221 -284 184 180 311C644 438 712 843 712 843&quot;, &quot;M-345 -229C-345 -229 -277 176 187 303C651 430 719 835 719 835&quot;, &quot;M-338 -237C-338 -237 -270 168 194 295C658 422 726 827 726 827&quot;, &quot;M-331 -245C-331 -245 -263 160 201 287C665 414 733 819 733 819&quot;, &quot;M-324 -253C-324 -253 -256 152 208 279C672 406 740 811 740 811&quot;, &quot;M-317 -261C-317 -261 -249 144 215 271C679 398 747 803 747 803&quot;, &quot;M-310 -269C-310 -269 -242 136 222 263C686 390 754 795 754 795&quot;, &quot;M-303 -277C-303 -277 -235 128 229 255C693 382 761 787 761 787&quot;, &quot;M-296 -285C-296 -285 -228 120 236 247C700 374 768 779 768 779&quot;, &quot;M-289 -293C-289 -293 -221 112 243 239C707 366 775 771 775 771&quot;, &quot;M-282 -301C-282 -301 -214 104 250 231C714 358 782 763 782 763&quot;, &quot;M-275 -309C-275 -309 -207 96 257 223C721 350 789 755 789 755&quot;, &quot;M-268 -317C-268 -317 -200 88 264 215C728 342 796 747 796 747&quot;, &quot;M-261 -325C-261 -325 -193 80 271 207C735 334 803 739 803 739&quot;, &quot;M-254 -333C-254 -333 -186 72 278 199C742 326 810 731 810 731&quot;, &quot;M-247 -341C-247 -341 -179 64 285 191C749 318 817 723 817 723&quot;, &quot;M-240 -349C-240 -349 -172 56 292 183C756 310 824 715 824 715&quot;, &quot;M-233 -357C-233 -357 -165 48 299 175C763 302 831 707 831 707&quot;, &quot;M-226 -365C-226 -365 -158 40 306 167C770 294 838 699 838 699&quot;, &quot;M-219 -373C-219 -373 -151 32 313 159C777 286 845 691 845 691&quot;, &quot;M-212 -381C-212 -381 -144 24 320 151C784 278 852 683 852 683&quot;, &quot;M-205 -389C-205 -389 -137 16 327 143C791 270 859 675 859 675&quot;, &quot;M-198 -397C-198 -397 -130 8 334 135C798 262 866 667 866 667&quot;, &quot;M-191 -405C-191 -405 -123 0 341 127C805 254 873 659 873 659&quot;, &quot;M-184 -413C-184 -413 -116 -8 348 119C812 246 880 651 880 651&quot;, &quot;M-177 -421C-177 -421 -109 -16 355 111C819 238 887 643 887 643&quot;, &quot;M-170 -429C-170 -429 -102 -24 362 103C826 230 894 635 894 635&quot;, &quot;M-163 -437C-163 -437 -95 -32 369 95C833 222 901 627 901 627&quot;, &quot;M-156 -445C-156 -445 -88 -40 376 87C840 214 908 619 908 619&quot;, &quot;M-149 -453C-149 -453 -81 -48 383 79C847 206 915 611 915 611&quot;, &quot;M-142 -461C-142 -461 -74 -56 390 71C854 198 922 603 922 603&quot;, &quot;M-135 -469C-135 -469 -67 -64 397 63C861 190 929 595 929 595&quot;, &quot;M-128 -477C-128 -477 -60 -72 404 55C868 182 936 587 936 587&quot;, &quot;M-121 -485C-121 -485 -53 -80 411 47C875 174 943 579 943 579&quot;, &quot;M-114 -493C-114 -493 -46 -88 418 39C882 166 950 571 950 571&quot;, &quot;M-107 -501C-107 -501 -39 -96 425 31C889 158 957 563 957 563&quot;, &quot;M-100 -509C-100 -509 -32 -104 432 23C896 150 964 555 964 555&quot;, &quot;M-93 -517C-93 -517 -25 -112 439 15C903 142 971 547 971 547&quot;, &quot;M-86 -525C-86 -525 -18 -120 446 7C910 134 978 539 978 539&quot;, &quot;M-79 -533C-79 -533 -11 -128 453 -1C917 126 985 531 985 531&quot;, &quot;M-72 -541C-72 -541 -4 -136 460 -9C924 118 992 523 992 523&quot;, &quot;M-65 -549C-65 -549 3 -144 467 -17C931 110 999 515 999 515&quot;, &quot;M-58 -557C-58 -557 10 -152 474 -25C938 102 1006 507 1006 507&quot;, &quot;M-51 -565C-51 -565 17 -160 481 -33C945 94 1013 499 1013 499&quot;, &quot;M-44 -573C-44 -573 24 -168 488 -41C952 86 1020 491 1020 491&quot;, &quot;M-37 -581C-37 -581 31 -176 495 -49C959 78 1027 483 1027 483&quot;, ]; return ( &lt;div className={cn( &quot;absolute h-full w-full inset-0 [mask-size:40px] [mask-repeat:no-repeat] flex items-center justify-center&quot;, className )} &gt; &lt;svg className=&quot; z-0 h-full w-full pointer-events-none absolute &quot; width=&quot;100%&quot; height=&quot;100%&quot; viewBox=&quot;0 0 696 316&quot; fill=&quot;none&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; &gt; &lt;path d=&quot;M-380 -189C-380 -189 -312 216 152 343C616 470 684 875 684 875M-373 -197C-373 -197 -305 208 159 335C623 462 691 867 691 867M-366 -205C-366 -205 -298 200 166 327C630 454 698 859 698 859M-359 -213C-359 -213 -291 192 173 319C637 446 705 851 705 851M-352 -221C-352 -221 -284 184 180 311C644 438 712 843 712 843M-345 -229C-345 -229 -277 176 187 303C651 430 719 835 719 835M-338 -237C-338 -237 -270 168 194 295C658 422 726 827 726 827M-331 -245C-331 -245 -263 160 201 287C665 414 733 819 733 819M-324 -253C-324 -253 -256 152 208 279C672 406 740 811 740 811M-317 -261C-317 -261 -249 144 215 271C679 398 747 803 747 803M-310 -269C-310 -269 -242 136 222 263C686 390 754 795 754 795M-303 -277C-303 -277 -235 128 229 255C693 382 761 787 761 787M-296 -285C-296 -285 -228 120 236 247C700 374 768 779 768 779M-289 -293C-289 -293 -221 112 243 239C707 366 775 771 775 771M-282 -301C-282 -301 -214 104 250 231C714 358 782 763 782 763M-275 -309C-275 -309 -207 96 257 223C721 350 789 755 789 755M-268 -317C-268 -317 -200 88 264 215C728 342 796 747 796 747M-261 -325C-261 -325 -193 80 271 207C735 334 803 739 803 739M-254 -333C-254 -333 -186 72 278 199C742 326 810 731 810 731M-247 -341C-247 -341 -179 64 285 191C749 318 817 723 817 723M-240 -349C-240 -349 -172 56 292 183C756 310 824 715 824 715M-233 -357C-233 -357 -165 48 299 175C763 302 831 707 831 707M-226 -365C-226 -365 -158 40 306 167C770 294 838 699 838 699M-219 -373C-219 -373 -151 32 313 159C777 286 845 691 845 691M-212 -381C-212 -381 -144 24 320 151C784 278 852 683 852 683M-205 -389C-205 -389 -137 16 327 143C791 270 859 675 859 675M-198 -397C-198 -397 -130 8 334 135C798 262 866 667 866 667M-191 -405C-191 -405 -123 0 341 127C805 254 873 659 873 659M-184 -413C-184 -413 -116 -8 348 119C812 246 880 651 880 651M-177 -421C-177 -421 -109 -16 355 111C819 238 887 643 887 643M-170 -429C-170 -429 -102 -24 362 103C826 230 894 635 894 635M-163 -437C-163 -437 -95 -32 369 95C833 222 901 627 901 627M-156 -445C-156 -445 -88 -40 376 87C840 214 908 619 908 619M-149 -453C-149 -453 -81 -48 383 79C847 206 915 611 915 611M-142 -461C-142 -461 -74 -56 390 71C854 198 922 603 922 603M-135 -469C-135 -469 -67 -64 397 63C861 190 929 595 929 595M-128 -477C-128 -477 -60 -72 404 55C868 182 936 587 936 587M-121 -485C-121 -485 -53 -80 411 47C875 174 943 579 943 579M-114 -493C-114 -493 -46 -88 418 39C882 166 950 571 950 571M-107 -501C-107 -501 -39 -96 425 31C889 158 957 563 957 563M-100 -509C-100 -509 -32 -104 432 23C896 150 964 555 964 555M-93 -517C-93 -517 -25 -112 439 15C903 142 971 547 971 547M-86 -525C-86 -525 -18 -120 446 7C910 134 978 539 978 539M-79 -533C-79 -533 -11 -128 453 -1C917 126 985 531 985 531M-72 -541C-72 -541 -4 -136 460 -9C924 118 992 523 992 523M-65 -549C-65 -549 3 -144 467 -17C931 110 999 515 999 515M-58 -557C-58 -557 10 -152 474 -25C938 102 1006 507 1006 507M-51 -565C-51 -565 17 -160 481 -33C945 94 1013 499 1013 499M-44 -573C-44 -573 24 -168 488 -41C952 86 1020 491 1020 491M-37 -581C-37 -581 31 -176 495 -49C959 78 1027 483 1027 483M-30 -589C-30 -589 38 -184 502 -57C966 70 1034 475 1034 475M-23 -597C-23 -597 45 -192 509 -65C973 62 1041 467 1041 467M-16 -605C-16 -605 52 -200 516 -73C980 54 1048 459 1048 459M-9 -613C-9 -613 59 -208 523 -81C987 46 1055 451 1055 451M-2 -621C-2 -621 66 -216 530 -89C994 38 1062 443 1062 443M5 -629C5 -629 73 -224 537 -97C1001 30 1069 435 1069 435M12 -637C12 -637 80 -232 544 -105C1008 22 1076 427 1076 427M19 -645C19 -645 87 -240 551 -113C1015 14 1083 419 1083 419&quot; stroke=&quot;url(#paint0_radial_242_278)&quot; strokeOpacity=&quot;0.05&quot; strokeWidth=&quot;0.5&quot; &gt;&lt;/path&gt; {paths.map((path, index) =&gt; ( &lt;motion.path key={`path-` + index} d={path} stroke={`url(#linearGradient-${index})`} strokeOpacity=&quot;0.4&quot; strokeWidth=&quot;0.5&quot; &gt;&lt;/motion.path&gt; ))} &lt;defs&gt; {paths.map((path, index) =&gt; ( &lt;motion.linearGradient id={`linearGradient-${index}`} key={`gradient-${index}`} initial={{ x1: &quot;0%&quot;, x2: &quot;0%&quot;, y1: &quot;0%&quot;, y2: &quot;0%&quot;, }} animate={{ x1: [&quot;0%&quot;, &quot;100%&quot;], x2: [&quot;0%&quot;, &quot;95%&quot;], y1: [&quot;0%&quot;, &quot;100%&quot;], y2: [&quot;0%&quot;, `${93 + Math.random() * 8}%`], }} transition={{ duration: Math.random() * 10 + 10, ease: &quot;easeInOut&quot;, repeat: Infinity, delay: Math.random() * 10, }} &gt; &lt;stop stopColor=&quot;#18CCFC&quot; stopOpacity=&quot;0&quot;&gt;&lt;/stop&gt; &lt;stop stopColor=&quot;#18CCFC&quot;&gt;&lt;/stop&gt; &lt;stop offset=&quot;32.5%&quot; stopColor=&quot;#6344F5&quot;&gt;&lt;/stop&gt; &lt;stop offset=&quot;100%&quot; stopColor=&quot;#AE48FF&quot; stopOpacity=&quot;0&quot;&gt;&lt;/stop&gt; &lt;/motion.linearGradient&gt; ))} &lt;radialGradient id=&quot;paint0_radial_242_278&quot; cx=&quot;0&quot; cy=&quot;0&quot; r=&quot;1&quot; gradientUnits=&quot;userSpaceOnUse&quot; gradientTransform=&quot;translate(352 34) rotate(90) scale(555 1560.62)&quot; &gt; &lt;stop offset=&quot;0.0666667&quot; stopColor=&quot;var(--neutral-300)&quot;&gt;&lt;/stop&gt; &lt;stop offset=&quot;0.243243&quot; stopColor=&quot;var(--neutral-300)&quot;&gt;&lt;/stop&gt; &lt;stop offset=&quot;0.43594&quot; stopColor=&quot;white&quot; stopOpacity=&quot;0&quot;&gt;&lt;/stop&gt; &lt;/radialGradient&gt; &lt;/defs&gt; &lt;/svg&gt; &lt;/div&gt; ); }); BackgroundBeams.displayName = &quot;BackgroundBeams&quot;;CopyExpandPropsProp nameTypeDescriptionclassNamestringThe class name of the Background Beams component. Aceternity UIA product by AceternityBuilding in public at @mannupaajiPricingComponentsTemplatesCategoriesBlogBox ShadowsTwitterDiscord(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])self.__next_f.push([1,&quot;1:HL[\&quot;/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2\&quot;,\&quot;font\&quot;,{\&quot;crossOrigin\&quot;:\&quot;\&quot;,\&quot;type\&quot;:\&quot;font/woff2\&quot;}]\n2:HL[\&quot;/_next/static/media/e11418ac562b8ac1-s.p.woff2\&quot;,\&quot;font\&quot;,{\&quot;crossOrigin\&quot;:\&quot;\&quot;,\&quot;type\&quot;:\&quot;font/woff2\&quot;}]\n3:HL[\&quot;/_next/static/css/67e111cfe08aedf0.css\&quot;,\&quot;style\&quot;,{\&quot;crossOrigin\&quot;:\&quot;\&quot;}]\n0:\&quot;$L4\&quot;\n&quot;])self.__next_f.push([1,&quot;5:HL[\&quot;/_next/static/media/122c360d7fe6d395-s.p.woff2\&quot;,\&quot;font\&quot;,{\&quot;crossOrigin\&quot;:\&quot;\&quot;,\&quot;type\&quot;:\&quot;font/woff2\&quot;}]\n6:HL[\&quot;/_next/static/css/6b6b43a691930088.css\&quot;,\&quot;style\&quot;,{\&quot;crossOrigin\&quot;:\&quot;\&quot;}]\n&quot;])self.__next_f.push([1,&quot;7:I[47690,[],\&quot;\&quot;]\na:I[5613,[],\&quot;\&quot;]\nc:I[31778,[],\&quot;\&quot;]\nd:I[32302,[\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;6447\&quot;,\&quot;static/chunks/6447-ae975e329e21b198.js\&quot;,\&quot;2686\&quot;,\&quot;static/chunks/app/components/layout-38c738ac732dbd30.js\&quot;],\&quot;ScrollArea\&quot;]\ne:I[45467,[\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;6447\&quot;,\&quot;static/chunks/64&quot;])self.__next_f.push([1,&quot;47-ae975e329e21b198.js\&quot;,\&quot;2686\&quot;,\&quot;static/chunks/app/components/layout-38c738ac732dbd30.js\&quot;],\&quot;DocsSidebarNav\&quot;]\n11:I[48955,[],\&quot;\&quot;]\nb:[\&quot;slug\&quot;,\&quot;background-beams\&quot;,\&quot;d\&quot;]\n&quot;])self.__next_f.push([1,&quot;4:[[[\&quot;$\&quot;,\&quot;link\&quot;,\&quot;0\&quot;,{\&quot;rel\&quot;:\&quot;stylesheet\&quot;,\&quot;href\&quot;:\&quot;/_next/static/css/67e111cfe08aedf0.css\&quot;,\&quot;precedence\&quot;:\&quot;next\&quot;,\&quot;crossOrigin\&quot;:\&quot;\&quot;}]],[\&quot;$\&quot;,\&quot;$L7\&quot;,null,{\&quot;buildId\&quot;:\&quot;iuH6UfiLDNWMGyM69cLJP\&quot;,\&quot;assetPrefix\&quot;:\&quot;\&quot;,\&quot;initialCanonicalUrl\&quot;:\&quot;/components/background-beams\&quot;,\&quot;initialTree\&quot;:[\&quot;\&quot;,{\&quot;children\&quot;:[\&quot;components\&quot;,{\&quot;children\&quot;:[[\&quot;slug\&quot;,\&quot;background-beams\&quot;,\&quot;d\&quot;],{\&quot;children\&quot;:[\&quot;__PAGE__?{\\\&quot;slug\\\&quot;:\\\&quot;background-beams\\\&quot;}\&quot;,{}]}]}]},\&quot;$undefined\&quot;,\&quot;$undefined\&quot;,true],\&quot;initialSeedData\&quot;:[\&quot;\&quot;,{\&quot;children\&quot;:[\&quot;components\&quot;,{\&quot;children\&quot;:[[\&quot;slug\&quot;,\&quot;background-beams\&quot;,\&quot;d\&quot;],{\&quot;children\&quot;:[\&quot;__PAGE__\&quot;,{},[\&quot;$L8\&quot;,\&quot;$L9\&quot;,null]]},[\&quot;$\&quot;,\&quot;$La\&quot;,null,{\&quot;parallelRouterKey\&quot;:\&quot;children\&quot;,\&quot;segmentPath\&quot;:[\&quot;children\&quot;,\&quot;components\&quot;,\&quot;children\&quot;,\&quot;$b\&quot;,\&quot;children\&quot;],\&quot;loading\&quot;:\&quot;$undefined\&quot;,\&quot;loadingStyles\&quot;:\&quot;$undefined\&quot;,\&quot;loadingScripts\&quot;:\&quot;$undefined\&quot;,\&quot;hasLoading\&quot;:false,\&quot;error\&quot;:\&quot;$undefined\&quot;,\&quot;errorStyles\&quot;:\&quot;$undefined\&quot;,\&quot;errorScripts\&quot;:\&quot;$undefined\&quot;,\&quot;template\&quot;:[\&quot;$\&quot;,\&quot;$Lc\&quot;,null,{}],\&quot;templateStyles\&quot;:\&quot;$undefined\&quot;,\&quot;templateScripts\&quot;:\&quot;$undefined\&quot;,\&quot;notFound\&quot;:\&quot;$undefined\&quot;,\&quot;notFoundStyles\&quot;:\&quot;$undefined\&quot;,\&quot;styles\&quot;:[[\&quot;$\&quot;,\&quot;link\&quot;,\&quot;0\&quot;,{\&quot;rel\&quot;:\&quot;stylesheet\&quot;,\&quot;href\&quot;:\&quot;/_next/static/css/6b6b43a691930088.css\&quot;,\&quot;precedence\&quot;:\&quot;next\&quot;,\&quot;crossOrigin\&quot;:\&quot;\&quot;}]]}]]},[null,[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot; bg-white dark:bg-brand pt-20\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;container flex-1 items-start lg:grid lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-10\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;aside\&quot;,null,{\&quot;className\&quot;:\&quot;fixed top-14 z-30 -ml-2 hidden h-[calc(100vh-3.5rem)] w-full shrink-0 lg:sticky lg:block lg:self-start\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$Ld\&quot;,null,{\&quot;className\&quot;:\&quot;h-full py-6 pr-6 lg:py-8 \&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$Le\&quot;,null,{\&quot;items\&quot;:[{\&quot;title\&quot;:\&quot;Follow for updates\&quot;,\&quot;items\&quot;:[{\&quot;title\&quot;:\&quot;Twitter @mannupaaji\&quot;,\&quot;href\&quot;:\&quot;https://twitter.com/mannupaaji\&quot;,\&quot;items\&quot;:[]}]},{\&quot;title\&quot;:\&quot;Installation\&quot;,\&quot;items\&quot;:[{\&quot;title\&quot;:\&quot;Install Next.js\&quot;,\&quot;href\&quot;:\&quot;/docs/install-nextjs\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Install Tailwind CSS\&quot;,\&quot;href\&quot;:\&quot;/docs/install-tailwindcss\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Add utilities\&quot;,\&quot;href\&quot;:\&quot;/docs/add-utilities\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;CLI\&quot;,\&quot;href\&quot;:\&quot;/docs/cli\&quot;,\&quot;items\&quot;:[]}]},{\&quot;title\&quot;:\&quot;All Components\&quot;,\&quot;items\&quot;:[{\&quot;title\&quot;:\&quot;3D Card Effect\&quot;,\&quot;href\&quot;:\&quot;/components/3d-card-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;3D Pin\&quot;,\&quot;href\&quot;:\&quot;/components/3d-pin\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Animated Modal\&quot;,\&quot;href\&quot;:\&quot;/components/animated-modal\&quot;,\&quot;items\&quot;:[],\&quot;label\&quot;:\&quot;New\&quot;},{\&quot;title\&quot;:\&quot;Animated Tooltip\&quot;,\&quot;href\&quot;:\&quot;/components/animated-tooltip\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Aurora Background\&quot;,\&quot;href\&quot;:\&quot;/components/aurora-background\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Background Beams\&quot;,\&quot;href\&quot;:\&quot;/components/background-beams\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Background Boxes\&quot;,\&quot;href\&quot;:\&quot;/components/background-boxes\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Background Gradient\&quot;,\&quot;href\&quot;:\&quot;/components/background-gradient\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Bento Grid\&quot;,\&quot;href\&quot;:\&quot;/components/bento-grid\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Canvas Reveal Effect\&quot;,\&quot;href\&quot;:\&quot;/components/canvas-reveal-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Card Hover Effect\&quot;,\&quot;href\&quot;:\&quot;/components/card-hover-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Card Stack\&quot;,\&quot;href\&quot;:\&quot;/components/card-stack\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Container Scroll Animation\&quot;,\&quot;href\&quot;:\&quot;/components/container-scroll-animation\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Direction Aware Hover\&quot;,\&quot;href\&quot;:\&quot;/components/direction-aware-hover\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Evervault Card\&quot;,\&quot;href\&quot;:\&quot;/components/evervault-card\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Expandable Card\&quot;,\&quot;href\&quot;:\&quot;/components/expandable-card\&quot;,\&quot;items\&quot;:[],\&quot;label\&quot;:\&quot;New\&quot;},{\&quot;title\&quot;:\&quot;Flip Words\&quot;,\&quot;href\&quot;:\&quot;/components/flip-words\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Floating Navbar\&quot;,\&quot;href\&quot;:\&quot;/components/floating-navbar\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Following Pointer\&quot;,\&quot;href\&quot;:\&quot;/components/following-pointer\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;GitHub Globe\&quot;,\&quot;href\&quot;:\&quot;/components/github-globe\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Glare Card\&quot;,\&quot;href\&quot;:\&quot;/components/glare-card\&quot;,\&quot;items\&quot;:[],\&quot;label\&quot;:\&quot;New\&quot;},{\&quot;title\&quot;:\&quot;Glowing Stars\&quot;,\&quot;href\&quot;:\&quot;/components/glowing-stars-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Google Gemini Effect\&quot;,\&quot;href\&quot;:\&quot;/components/google-gemini-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Gradient Animation\&quot;,\&quot;href\&quot;:\&quot;/components/background-gradient-animation\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Grid and Dot Backgrounds\&quot;,\&quot;href\&quot;:\&quot;/components/grid-and-dot-backgrounds\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Hero Highlight\&quot;,\&quot;href\&quot;:\&quot;/components/hero-highlight\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Hero Parallax\&quot;,\&quot;href\&quot;:\&quot;/components/hero-parallax\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Hover Border Gradient\&quot;,\&quot;href\&quot;:\&quot;/components/hover-border-gradient\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Images Slider\&quot;,\&quot;href\&quot;:\&quot;/components/images-slider\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Infinite Moving Cards\&quot;,\&quot;href\&quot;:\&quot;/components/infinite-moving-cards\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Lamp effect\&quot;,\&quot;href\&quot;:\&quot;/components/lamp-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Layout Grid\&quot;,\&quot;href\&quot;:\&quot;/components/layout-grid\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Link Preview\&quot;,\&quot;href\&quot;:\&quot;/components/link-preview\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Macbook Scroll\&quot;,\&quot;href\&quot;:\&quot;/components/macbook-scroll\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Meteors\&quot;,\&quot;href\&quot;:\&quot;/components/meteors\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Moving Border\&quot;,\&quot;href\&quot;:\&quot;/components/moving-border\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Multi Step Loader\&quot;,\&quot;href\&quot;:\&quot;/components/multi-step-loader\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Navbar Menu\&quot;,\&quot;href\&quot;:\&quot;/components/navbar-menu\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Parallax Scroll\&quot;,\&quot;href\&quot;:\&quot;/components/parallax-scroll\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Placeholders And Vanish Input\&quot;,\&quot;href\&quot;:\&quot;/components/placeholders-and-vanish-input\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Sidebar\&quot;,\&quot;href\&quot;:\&quot;/components/sidebar\&quot;,\&quot;items\&quot;:[],\&quot;label\&quot;:\&quot;New\&quot;},{\&quot;title\&quot;:\&quot;Signup Form\&quot;,\&quot;href\&quot;:\&quot;/components/signup-form\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Sparkles\&quot;,\&quot;href\&quot;:\&quot;/components/sparkles\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Spotlight\&quot;,\&quot;href\&quot;:\&quot;/components/spotlight\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Sticky Scroll Reveal\&quot;,\&quot;href\&quot;:\&quot;/components/sticky-scroll-reveal\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;SVG Mask Effect\&quot;,\&quot;href\&quot;:\&quot;/components/svg-mask-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Tabs\&quot;,\&quot;href\&quot;:\&quot;/components/tabs\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Tailwind CSS buttons\&quot;,\&quot;href\&quot;:\&quot;/components/tailwindcss-buttons\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Text Generate Effect\&quot;,\&quot;href\&quot;:\&quot;/components/text-generate-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Text Reveal Card\&quot;,\&quot;href\&quot;:\&quot;/components/text-reveal-card\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Tracing Beam\&quot;,\&quot;href\&quot;:\&quot;/components/tracing-beam\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Typewriter Effect\&quot;,\&quot;href\&quot;:\&quot;/components/typewriter-effect\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Vortex\&quot;,\&quot;href\&quot;:\&quot;/components/vortex\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Wavy Background\&quot;,\&quot;href\&quot;:\&quot;/components/wavy-background\&quot;,\&quot;items\&quot;:[]},{\&quot;title\&quot;:\&quot;Wobble Card\&quot;,\&quot;href\&quot;:\&quot;/components/wobble-card\&quot;,\&quot;items\&quot;:[]}]},{\&quot;title\&quot;:\&quot;Marketing\&quot;,\&quot;items\&quot;:[{\&quot;title\&quot;:\&quot;Cards\&quot;,\&quot;href\&quot;:\&quot;/components/cards\&quot;,\&quot;items\&quot;:[],\&quot;badge\&quot;:\&quot;3\&quot;},{\&quot;title\&quot;:\&quot;Feature sections\&quot;,\&quot;href\&quot;:\&quot;/components/feature-sections\&quot;,\&quot;items\&quot;:[],\&quot;badge\&quot;:\&quot;3\&quot;}]}]}]}]}],[\&quot;$\&quot;,\&quot;$La\&quot;,null,{\&quot;parallelRouterKey\&quot;:\&quot;children\&quot;,\&quot;segmentPath\&quot;:[\&quot;children\&quot;,\&quot;components\&quot;,\&quot;children\&quot;],\&quot;loading\&quot;:\&quot;$undefined\&quot;,\&quot;loadingStyles\&quot;:\&quot;$undefined\&quot;,\&quot;loadingScripts\&quot;:\&quot;$undefined\&quot;,\&quot;hasLoading\&quot;:false,\&quot;error\&quot;:\&quot;$undefined\&quot;,\&quot;errorStyles\&quot;:\&quot;$undefined\&quot;,\&quot;errorScripts\&quot;:\&quot;$undefined\&quot;,\&quot;template\&quot;:[\&quot;$\&quot;,\&quot;$Lc\&quot;,null,{}],\&quot;templateStyles\&quot;:\&quot;$undefined\&quot;,\&quot;templateScripts\&quot;:\&quot;$undefined\&quot;,\&quot;notFound\&quot;:\&quot;$undefined\&quot;,\&quot;notFoundStyles\&quot;:\&quot;$undefined\&quot;,\&quot;styles\&quot;:null}]]}]}],null]]},[null,\&quot;$Lf\&quot;,null]],\&quot;initialHead\&quot;:[false,\&quot;$L10\&quot;],\&quot;globalErrorComponent\&quot;:\&quot;$11\&quot;}]]\n&quot;])self.__next_f.push([1,&quot;12:I[77279,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;\&quot;]\n&quot;])self.__next_f.push([1,&quot;13:I[25250,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;\&quot;]\n&quot;])self.__next_f.push([1,&quot;14:I[22171,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;ComponentPreview\&quot;]\n&quot;])self.__next_f.push([1,&quot;15:I[21928,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;StyleWrapper\&quot;]\n&quot;])self.__next_f.push([1,&quot;16:I[23546,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;CopyButton\&quot;]\n&quot;])self.__next_f.push([1,&quot;18:I[99497,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;Tabs\&quot;]\n&quot;])self.__next_f.push([1,&quot;19:I[99497,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;TabsList\&quot;]\n&quot;])self.__next_f.push([1,&quot;1a:I[99497,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;TabsTrigger\&quot;]\n&quot;])self.__next_f.push([1,&quot;1b:I[99497,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;TabsContent\&quot;]\n&quot;])self.__next_f.push([1,&quot;1c:I[23546,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;CopyNpmCommandButton\&quot;]\n&quot;])self.__next_f.push([1,&quot;1e:I[69020,[\&quot;2400\&quot;,\&quot;static/chunks/12038df7-5e1a9cb2eb03676e.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;4953\&quot;,\&quot;static/chunks/4953-c79c69f17011d0ca.js\&quot;,\&quot;3185\&quot;,\&quot;static/chunks/app/layout-008cb20813097fc7.js\&quot;],\&quot;InitIntercom\&quot;]\n1f:I[30078,[\&quot;2400\&quot;,\&quot;static/chunks/12038df&quot;])self.__next_f.push([1,&quot;7-5e1a9cb2eb03676e.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;4953\&quot;,\&quot;static/chunks/4953-c79c69f17011d0ca.js\&quot;,\&quot;3185\&quot;,\&quot;static/chunks/app/layout-008cb20813097fc7.js\&quot;],\&quot;ThemeProvider\&quot;]\n20:I[33488,[\&quot;2400\&quot;,\&quot;static/chunks/12038df7-5e1a9cb2eb03676e.js\&quot;,\&quot;7895\&quot;,\&quot;static/ch&quot;])self.__next_f.push([1,&quot;unks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;4953\&quot;,\&quot;static/chunks/4953-c79c69f17011d0ca.js\&quot;,\&quot;3185\&quot;,\&quot;static/chunks/app/layout-008cb20813097fc7.js\&quot;],\&quot;\&quot;]\n&quot;])self.__next_f.push([1,&quot;21:I[81749,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;Image\&quot;]\n&quot;])self.__next_f.push([1,&quot;22:I[69657,[\&quot;2400\&quot;,\&quot;static/chunks/12038df7-5e1a9cb2eb03676e.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;4953\&quot;,\&quot;static/chunks/4953-c79c69f17011d0ca.js\&quot;,\&quot;3185\&quot;,\&quot;static/chunks/app/layout-008cb20813097fc7.js\&quot;],\&quot;Toaster\&quot;]\n17:T517,&quot;])self.__next_f.push([1,&quot;\&quot;use client\&quot;;\nimport React from \&quot;react\&quot;;\nimport { BackgroundBeams } from \&quot;../ui/background-beams\&quot;;\n\nexport function BackgroundBeamsDemo() {\n return (\n \u003cdiv className=\&quot;h-[40rem] w-full rounded-md bg-neutral-950 relative flex flex-col items-center justify-center antialiased\&quot;\u003e\n \u003cdiv className=\&quot;max-w-2xl mx-auto p-4\&quot;\u003e\n \u003ch1 className=\&quot;relative z-10 text-lg md:text-7xl bg-clip-text text-transparent bg-gradient-to-b from-neutral-200 to-neutral-600 text-center font-sans font-bold\&quot;\u003e\n Join the waitlist\n \u003c/h1\u003e\n \u003cp\u003e\u003c/p\u003e\n \u003cp className=\&quot;text-neutral-500 max-w-lg mx-auto my-2 text-sm text-center relative z-10\&quot;\u003e\n Welcome to MailJet, the best transactional email service on the web.\n We provide reliable, scalable, and customizable email solutions for\n your business. Whether you\u0026apos;re sending order confirmations,\n password reset emails, or promotional campaigns, MailJet has got you\n covered.\n \u003c/p\u003e\n \u003cinput\n type=\&quot;text\&quot;\n placeholder=\&quot;hi@manuarora.in\&quot;\n className=\&quot;rounded-lg border border-neutral-800 focus:ring-2 focus:ring-teal-500 w-full relative z-10 mt-4 bg-neutral-950 placeholder:text-neutral-700\&quot;\n /\u003e\n \u003c/div\u003e\n \u003cBackgroundBeams /\u003e\n \u003c/div\u003e\n );\n}\n&quot;])self.__next_f.push([1,&quot;9:[\&quot;$\&quot;,\&quot;main\&quot;,null,{\&quot;className\&quot;:\&quot;relative py-6 lg:gap-10 lg:py-8\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;mx-auto w-full min-w-0\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;space-y-2\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;h1\&quot;,null,{\&quot;className\&quot;:\&quot;scroll-m-20 text-4xl font-bold tracking-tight text-black dark:text-white\&quot;,\&quot;children\&quot;:\&quot;Background Beams\&quot;}],[\&quot;$\&quot;,\&quot;p\&quot;,null,{\&quot;className\&quot;:\&quot;text-lg text-muted-foreground\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$L12\&quot;,null,{\&quot;children\&quot;:\&quot;Multiple background beams that follow a path of SVG, makes a good hero section background.\&quot;}]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;flex gap-2 flex-wrap\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;$L13\&quot;,\&quot;card0\&quot;,{\&quot;href\&quot;:\&quot;/categories/card\&quot;,\&quot;className\&quot;:\&quot; bg-neutral-50 text-neutral-700 dark:text-zinc-300 dark:bg-zinc-900 dark:border-zinc-800 border border-neutral-100 text-xs px-1 py-0.5 rounded-md capitalize\&quot;,\&quot;children\&quot;:\&quot;card\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,\&quot;background1\&quot;,{\&quot;href\&quot;:\&quot;/categories/background\&quot;,\&quot;className\&quot;:\&quot; bg-neutral-50 text-neutral-700 dark:text-zinc-300 dark:bg-zinc-900 dark:border-zinc-800 border border-neutral-100 text-xs px-1 py-0.5 rounded-md capitalize\&quot;,\&quot;children\&quot;:\&quot;background\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,\&quot;gradient2\&quot;,{\&quot;href\&quot;:\&quot;/categories/gradient\&quot;,\&quot;className\&quot;:\&quot; bg-neutral-50 text-neutral-700 dark:text-zinc-300 dark:bg-zinc-900 dark:border-zinc-800 border border-neutral-100 text-xs px-1 py-0.5 rounded-md capitalize\&quot;,\&quot;children\&quot;:\&quot;gradient\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,\&quot;special3\&quot;,{\&quot;href\&quot;:\&quot;/categories/special\&quot;,\&quot;className\&quot;:\&quot; bg-neutral-50 text-neutral-700 dark:text-zinc-300 dark:bg-zinc-900 dark:border-zinc-800 border border-neutral-100 text-xs px-1 py-0.5 rounded-md capitalize\&quot;,\&quot;children\&quot;:\&quot;special\&quot;}]]}]]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;pb-12 pt-8\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;mdx\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;$L14\&quot;,null,{\&quot;name\&quot;:\&quot;background-beams-demo\&quot;,\&quot;className\&quot;:\&quot;[\u0026_.preview\u003e[data-orientation=vertical]]:sm:max-w-[70%]\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-fragment\&quot;:\&quot;\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$L15\&quot;,null,{\&quot;styleName\&quot;:\&quot;$undefined\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;pre\&quot;,null,{\&quot;className\&quot;:\&quot;mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border bg-[#1C2433] py-4 dark:bg-zinc-900\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;use client\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;import\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;React\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;from\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;react\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;import\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;BackgroundBeams\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;from\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;../ui/background-beams\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;export\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;function\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; BackgroundBeamsDemo\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;()\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;return\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;div \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;h-[40rem] w-full rounded-md bg-neutral-950 relative flex flex-col items-center justify-center antialiased\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;div\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;max-w-2xl mx-auto p-4\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;h1\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;relative z-10 text-lg md:text-7xl bg-clip-text text-transparent bg-gradient-to-b from-neutral-200 to-neutral-600 text-center font-sans font-bold\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; Join the waitlist\&quot;}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;h1\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;p\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;p\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;p\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;text-neutral-500 max-w-lg mx-auto my-2 text-sm text-center relative z-10\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; Welcome to MailJet, the best transactional email service on the web.\&quot;}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; We provide reliable, scalable, and customizable email solutions for\&quot;}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; your business. Whether you\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;\u0026\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#E35535\&quot;},\&quot;children\&quot;:\&quot;apos\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot;re sending order confirmations,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; password reset emails, or promotional campaigns, MailJet has got you\&quot;}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; covered.\&quot;}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;p\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;input\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;type\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;text\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;placeholder\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;hi@manuarora.in\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;rounded-lg border border-neutral-800 focus:ring-2 focus:ring-teal-500 w-full relative z-10 mt-4 bg-neutral-950 placeholder:text-neutral-700\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;/\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;div\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;BackgroundBeams\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;/\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;div\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]}]]}]}],[\&quot;$\&quot;,\&quot;$L16\&quot;,null,{\&quot;value\&quot;:\&quot;$17\&quot;,\&quot;src\&quot;:\&quot;src/registry/default/example/background-beams-demo.tsx\&quot;,\&quot;event\&quot;:\&quot;$undefined\&quot;,\&quot;className\&quot;:\&quot;absolute right-4 top-4\&quot;}],\&quot;$undefined\&quot;]}]}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;h2\&quot;,null,{\&quot;className\&quot;:\&quot;font-heading mt-12 scroll-m-20 pb-2 text-2xl font-semibold tracking-tight first:mt-0 text-black dark:text-white\&quot;,\&quot;id\&quot;:\&quot;installation\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;a\&quot;,null,{\&quot;className\&quot;:\&quot;font-medium underline underline-offset-4 subheading-anchor\&quot;,\&quot;aria-label\&quot;:\&quot;Link to section\&quot;,\&quot;href\&quot;:\&quot;#installation\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;icon icon-link\&quot;}]}],\&quot;Installation\&quot;]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;$L18\&quot;,null,{\&quot;className\&quot;:\&quot;relative mt-6 w-full\&quot;,\&quot;defaultValue\&quot;:\&quot;manual\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;$L19\&quot;,null,{\&quot;className\&quot;:\&quot;w-full justify-start rounded-none border-b bg-transparent p-0\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;$L1a\&quot;,null,{\&quot;className\&quot;:\&quot;relative h-9 rounded-none border-b-2 border-b-transparent bg-transparent px-4 pb-3 pt-2 font-semibold text-muted-foreground shadow-none transition-none data-[state=active]:border-b-primary data-[state=active]:text-foreground data-[state=active]:shadow-none\&quot;,\&quot;value\&quot;:\&quot;cli\&quot;,\&quot;children\&quot;:\&quot;CLI\&quot;}],[\&quot;$\&quot;,\&quot;$L1a\&quot;,null,{\&quot;className\&quot;:\&quot;relative h-9 rounded-none border-b-2 border-b-transparent bg-transparent px-4 pb-3 pt-2 font-semibold text-muted-foreground shadow-none transition-none data-[state=active]:border-b-primary data-[state=active]:text-foreground data-[state=active]:shadow-none\&quot;,\&quot;value\&quot;:\&quot;manual\&quot;,\&quot;children\&quot;:\&quot;Manual\&quot;}]]}],[\&quot;$\&quot;,\&quot;$L1b\&quot;,null,{\&quot;className\&quot;:\&quot;relative [\u0026_h3.font-heading]:text-base [\u0026_h3.font-heading]:font-semibold\&quot;,\&quot;value\&quot;:\&quot;cli\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;[\u0026\u003eh3]:step steps mb-12 ml-4 border-l pl-8 [counter-reset:step]\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;h3\&quot;,null,{\&quot;className\&quot;:\&quot;font-heading relative mt-8 scroll-m-20 text-xl font-semibold tracking-tight text-black dark:text-neutral-200\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;absolute block -left-8 rounded-tr-full rounded-br-full top-0 z-20 h-full bg-neutral-200 dark:bg-neutral-700 w-[6px]\&quot;}],\&quot;Run the following command\&quot;]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-fragment\&quot;:\&quot;\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$L15\&quot;,null,{\&quot;styleName\&quot;:\&quot;$undefined\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;pre\&quot;,null,{\&quot;className\&quot;:\&quot;mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border bg-[#1C2433] py-4 dark:bg-zinc-900\&quot;,\&quot;data-language\&quot;:\&quot;bash\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;data-language\&quot;:\&quot;bash\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot;npx \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;aceternity-ui@latest\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;add\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;background-beams\&quot;}]]}]}]}],false,[\&quot;$\&quot;,\&quot;$L1c\&quot;,null,{\&quot;commands\&quot;:{\&quot;__npmCommand__\&quot;:\&quot;npx aceternity-ui@latest add background-beams\\n\&quot;,\&quot;__yarnCommand__\&quot;:\&quot;npx aceternity-ui@latest add background-beams\\n\&quot;,\&quot;__pnpmCommand__\&quot;:\&quot;pnpm dlx aceternity-ui@latest add background-beams\\n\&quot;,\&quot;__bunCommand__\&quot;:\&quot;bunx --bun aceternity-ui@latest add background-beams\\n\&quot;},\&quot;className\&quot;:\&quot;absolute right-4 top-4\&quot;}]]}]}],[\&quot;$\&quot;,\&quot;h3\&quot;,null,{\&quot;className\&quot;:\&quot;font-heading relative mt-8 scroll-m-20 text-xl font-semibold tracking-tight text-black dark:text-neutral-200\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;absolute block -left-8 rounded-tr-full rounded-br-full top-0 z-20 h-full bg-neutral-200 dark:bg-neutral-700 w-[6px]\&quot;}],\&quot;Add Tailwind CSS plugin for variable classes\&quot;]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-fragment\&quot;:\&quot;\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-title\&quot;:\&quot;\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:\&quot;tailwind.config.ts\&quot;}],[\&quot;$\&quot;,\&quot;$L15\&quot;,null,{\&quot;styleName\&quot;:\&quot;$undefined\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;pre\&quot;,null,{\&quot;className\&quot;:\&quot;mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border bg-[#1C2433] py-4 dark:bg-zinc-900\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;const\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;defaultTheme\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;require\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;tailwindcss/defaultTheme\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;const\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;colors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;require\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;tailwindcss/colors\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;const\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;default\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;flattenColorPalette\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;require\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;tailwindcss/lib/util/flattenColorPalette\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#54617B\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;/** \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;@type\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#54617B\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;import(&apos;tailwindcss&apos;).Config\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#54617B\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot; */\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;module\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;exports\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;content\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;./src/**/*.{ts,tsx}\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;],\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;darkMode\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;class\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;theme\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#54617B\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;// rest of the code\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;},\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;plugins\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;addVariablesForColors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;],\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;};\&quot;}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;function\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; addVariablesForColors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;({\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;addBase\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;theme\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;any\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;)\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;let\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;allColors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; flattenColorPalette\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;theme\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;colors\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;));\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;let\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;newVars\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;Object\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;fromEntries\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;Object\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;entries\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;allColors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;).\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;map\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(([\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;key\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;val\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;])\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;=\u003e\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`--\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;$${\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;key\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;val\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;])\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; addBase\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;({\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;:root\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;newVars\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;});\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]}]]}]}],[\&quot;$\&quot;,\&quot;$L16\&quot;,null,{\&quot;value\&quot;:\&quot;const defaultTheme = require(\\\&quot;tailwindcss/defaultTheme\\\&quot;);\\n\\nconst colors = require(\\\&quot;tailwindcss/colors\\\&quot;);\\nconst {\\n default: flattenColorPalette,\\n} = require(\\\&quot;tailwindcss/lib/util/flattenColorPalette\\\&quot;);\\n\\n/** @type {import(&apos;tailwindcss&apos;).Config} */\\nmodule.exports = {\\n content: [\\\&quot;./src/**/*.{ts,tsx}\\\&quot;],\\n darkMode: \\\&quot;class\\\&quot;,\\n theme: {\\n // rest of the code\\n },\\n plugins: [addVariablesForColors],\\n};\\n\\nfunction addVariablesForColors({ addBase, theme }: any) {\\n let allColors = flattenColorPalette(theme(\\\&quot;colors\\\&quot;));\\n let newVars = Object.fromEntries(\\n Object.entries(allColors).map(([key, val]) =\u003e [`--${key}`, val])\\n );\\n\\n addBase({\\n \\\&quot;:root\\\&quot;: newVars,\\n });\\n}\\n\&quot;,\&quot;src\&quot;:\&quot;$undefined\&quot;,\&quot;event\&quot;:\&quot;$undefined\&quot;,\&quot;className\&quot;:\&quot;absolute right-4 top-16\&quot;}],\&quot;$undefined\&quot;]}]]}]]}]}],[\&quot;$\&quot;,\&quot;$L1b\&quot;,null,{\&quot;className\&quot;:\&quot;relative [\u0026_h3.font-heading]:text-base [\u0026_h3.font-heading]:font-semibold\&quot;,\&quot;value\&quot;:\&quot;manual\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;[\u0026\u003eh3]:step steps mb-12 ml-4 border-l pl-8 [counter-reset:step]\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;h3\&quot;,null,{\&quot;className\&quot;:\&quot;font-heading relative mt-8 scroll-m-20 text-xl font-semibold tracking-tight text-black dark:text-neutral-200\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;absolute block -left-8 rounded-tr-full rounded-br-full top-0 z-20 h-full bg-neutral-200 dark:bg-neutral-700 w-[6px]\&quot;}],\&quot;Install dependencies\&quot;]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-fragment\&quot;:\&quot;\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$L15\&quot;,null,{\&quot;styleName\&quot;:\&quot;$undefined\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;pre\&quot;,null,{\&quot;className\&quot;:\&quot;mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border bg-[#1C2433] py-4 dark:bg-zinc-900\&quot;,\&quot;data-language\&quot;:\&quot;bash\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;data-language\&quot;:\&quot;bash\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot;npm \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;i\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;framer-motion\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;clsx\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;tailwind-merge\&quot;}]]}]}]}],[\&quot;$\&quot;,\&quot;$L16\&quot;,null,{\&quot;value\&quot;:\&quot;npm i framer-motion clsx tailwind-merge\\n\&quot;,\&quot;src\&quot;:\&quot;$undefined\&quot;,\&quot;event\&quot;:\&quot;$undefined\&quot;,\&quot;className\&quot;:\&quot;absolute right-4 top-4\&quot;}],\&quot;$undefined\&quot;]}]}],[\&quot;$\&quot;,\&quot;h3\&quot;,null,{\&quot;className\&quot;:\&quot;font-heading relative mt-8 scroll-m-20 text-xl font-semibold tracking-tight text-black dark:text-neutral-200\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;absolute block -left-8 rounded-tr-full rounded-br-full top-0 z-20 h-full bg-neutral-200 dark:bg-neutral-700 w-[6px]\&quot;}],\&quot;Add util file\&quot;]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-fragment\&quot;:\&quot;\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-title\&quot;:\&quot;\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:\&quot;lib/utils.ts\&quot;}],[\&quot;$\&quot;,\&quot;$L15\&quot;,null,{\&quot;styleName\&quot;:\&quot;$undefined\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;pre\&quot;,null,{\&quot;className\&quot;:\&quot;mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border bg-[#1C2433] py-4 dark:bg-zinc-900\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;import\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;ClassValue\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;clsx\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;from\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;clsx\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;import\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;twMerge\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;from\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;tailwind-merge\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;export\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;function\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; cn\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(...\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;inputs\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;ClassValue\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[])\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;return\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; twMerge\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;clsx\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;inputs\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;));\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]}]]}]}],[\&quot;$\&quot;,\&quot;$L16\&quot;,null,{\&quot;value\&quot;:\&quot;import { ClassValue, clsx } from \\\&quot;clsx\\\&quot;;\\nimport { twMerge } from \\\&quot;tailwind-merge\\\&quot;;\\n\\nexport function cn(...inputs: ClassValue[]) {\\n return twMerge(clsx(inputs));\\n}\\n\&quot;,\&quot;src\&quot;:\&quot;$undefined\&quot;,\&quot;event\&quot;:\&quot;$undefined\&quot;,\&quot;className\&quot;:\&quot;absolute right-4 top-16\&quot;}],\&quot;$undefined\&quot;]}]]}],[\&quot;$\&quot;,\&quot;h3\&quot;,null,{\&quot;className\&quot;:\&quot;font-heading relative mt-8 scroll-m-20 text-xl font-semibold tracking-tight text-black dark:text-neutral-200\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;absolute block -left-8 rounded-tr-full rounded-br-full top-0 z-20 h-full bg-neutral-200 dark:bg-neutral-700 w-[6px]\&quot;}],\&quot;Add Tailwind CSS plugin for variable classes\&quot;]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-fragment\&quot;:\&quot;\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-title\&quot;:\&quot;\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:\&quot;tailwind.config.ts\&quot;}],[\&quot;$\&quot;,\&quot;$L15\&quot;,null,{\&quot;styleName\&quot;:\&quot;$undefined\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;pre\&quot;,null,{\&quot;className\&quot;:\&quot;mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border bg-[#1C2433] py-4 dark:bg-zinc-900\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;const\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;defaultTheme\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;require\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;tailwindcss/defaultTheme\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;const\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;colors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;require\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;tailwindcss/colors\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;const\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;default\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;flattenColorPalette\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;require\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;tailwindcss/lib/util/flattenColorPalette\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#54617B\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;/** \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;@type\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#54617B\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;import(&apos;tailwindcss&apos;).Config\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#54617B\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot; */\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;module\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;exports\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;content\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;./src/**/*.{ts,tsx}\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;],\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;darkMode\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;class\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;theme\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#54617B\&quot;,\&quot;fontStyle\&quot;:\&quot;italic\&quot;},\&quot;children\&quot;:\&quot;// rest of the code\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;},\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;plugins\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;addVariablesForColors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;],\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;};\&quot;}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;function\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; addVariablesForColors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;({\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;addBase\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;theme\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;any\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;)\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;let\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;allColors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; flattenColorPalette\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;theme\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;colors\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;));\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;let\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;newVars\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;Object\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;fromEntries\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;Object\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;entries\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;allColors\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;).\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;map\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(([\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;key\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;val\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;])\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;=\u003e\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`--\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;$${\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;key\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;val\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;])\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; addBase\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;({\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;:root\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;newVars\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;});\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line line--highlighted\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]}]]}]}],[\&quot;$\&quot;,\&quot;$L16\&quot;,null,{\&quot;value\&quot;:\&quot;const defaultTheme = require(\\\&quot;tailwindcss/defaultTheme\\\&quot;);\\n\\nconst colors = require(\\\&quot;tailwindcss/colors\\\&quot;);\\nconst {\\n default: flattenColorPalette,\\n} = require(\\\&quot;tailwindcss/lib/util/flattenColorPalette\\\&quot;);\\n\\n/** @type {import(&apos;tailwindcss&apos;).Config} */\\nmodule.exports = {\\n content: [\\\&quot;./src/**/*.{ts,tsx}\\\&quot;],\\n darkMode: \\\&quot;class\\\&quot;,\\n theme: {\\n // rest of the code\\n },\\n plugins: [addVariablesForColors],\\n};\\n\\nfunction addVariablesForColors({ addBase, theme }: any) {\\n let allColors = flattenColorPalette(theme(\\\&quot;colors\\\&quot;));\\n let newVars = Object.fromEntries(\\n Object.entries(allColors).map(([key, val]) =\u003e [`--${key}`, val])\\n );\\n\\n addBase({\\n \\\&quot;:root\\\&quot;: newVars,\\n });\\n}\\n\&quot;,\&quot;src\&quot;:\&quot;$undefined\&quot;,\&quot;event\&quot;:\&quot;$undefined\&quot;,\&quot;className\&quot;:\&quot;absolute right-4 top-16\&quot;}],\&quot;$undefined\&quot;]}]]}],[\&quot;$\&quot;,\&quot;h3\&quot;,null,{\&quot;className\&quot;:\&quot;font-heading relative mt-8 scroll-m-20 text-xl font-semibold tracking-tight text-black dark:text-neutral-200\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;absolute block -left-8 rounded-tr-full rounded-br-full top-0 z-20 h-full bg-neutral-200 dark:bg-neutral-700 w-[6px]\&quot;}],\&quot;Copy the source code\&quot;]}],[\&quot;$\&quot;,\&quot;p\&quot;,null,{\&quot;className\&quot;:\&quot;leading-7 [\u0026:not(:first-child)]:mt-6 text-black dark:text-white\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;children\&quot;:\&quot;components/ui/background-beams.tsx\&quot;}]}],\&quot;$L1d\&quot;]}]}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;h2\&quot;,null,{\&quot;className\&quot;:\&quot;font-heading mt-12 scroll-m-20 pb-2 text-2xl font-semibold tracking-tight first:mt-0 text-black dark:text-white\&quot;,\&quot;id\&quot;:\&quot;props\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;a\&quot;,null,{\&quot;className\&quot;:\&quot;font-medium underline underline-offset-4 subheading-anchor\&quot;,\&quot;aria-label\&quot;:\&quot;Link to section\&quot;,\&quot;href\&quot;:\&quot;#props\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;icon icon-link\&quot;}]}],\&quot;Props\&quot;]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;my-6 w-full overflow-y-auto dark:text-white text-sm\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;table\&quot;,null,{\&quot;className\&quot;:\&quot;w-full\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;thead\&quot;,null,{\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;tr\&quot;,null,{\&quot;className\&quot;:\&quot;m-0 border-t p-0 even:bg-muted dark:even:bg-zinc-900 text-black dark:text-white text-sm\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;th\&quot;,null,{\&quot;className\&quot;:\&quot;border px-4 py-2 text-left font-bold [\u0026[align=center]]:text-center [\u0026[align=right]]:text-right text-sm\&quot;,\&quot;children\&quot;:\&quot;Prop name\&quot;}],[\&quot;$\&quot;,\&quot;th\&quot;,null,{\&quot;className\&quot;:\&quot;border px-4 py-2 text-left font-bold [\u0026[align=center]]:text-center [\u0026[align=right]]:text-right text-sm\&quot;,\&quot;children\&quot;:\&quot;Type\&quot;}],[\&quot;$\&quot;,\&quot;th\&quot;,null,{\&quot;className\&quot;:\&quot;border px-4 py-2 text-left font-bold [\u0026[align=center]]:text-center [\u0026[align=right]]:text-right text-sm\&quot;,\&quot;children\&quot;:\&quot;Description\&quot;}]]}]}],[\&quot;$\&quot;,\&quot;tbody\&quot;,null,{\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;tr\&quot;,null,{\&quot;className\&quot;:\&quot;m-0 border-t p-0 even:bg-muted dark:even:bg-zinc-900 text-black dark:text-white text-sm\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;td\&quot;,null,{\&quot;className\&quot;:\&quot;border px-4 py-3 text-left [\u0026[align=center]]:text-center [\u0026[align=right]]:text-right text-sm font-sans\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;children\&quot;:\&quot;className\&quot;}]}],[\&quot;$\&quot;,\&quot;td\&quot;,null,{\&quot;className\&quot;:\&quot;border px-4 py-3 text-left [\u0026[align=center]]:text-center [\u0026[align=right]]:text-right text-sm font-sans\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;children\&quot;:\&quot;string\&quot;}]}],[\&quot;$\&quot;,\&quot;td\&quot;,null,{\&quot;className\&quot;:\&quot;border px-4 py-3 text-left [\u0026[align=center]]:text-center [\u0026[align=right]]:text-right text-sm font-sans\&quot;,\&quot;children\&quot;:\&quot;The class name of the Background Beams component.\&quot;}]]}]}]]}]}]]}]}]]}]}]\n&quot;])self.__next_f.push([1,&quot;f:[\&quot;$\&quot;,\&quot;html\&quot;,null,{\&quot;lang\&quot;:\&quot;en\&quot;,\&quot;className\&quot;:\&quot;\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;body\&quot;,null,{\&quot;className\&quot;:\&quot;antialiased dark:bg-brand bg-white __className_3a0388\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;script\&quot;,null,{\&quot;defer\&quot;:true,\&quot;data-domain\&quot;:\&quot;ui.aceternity.com\&quot;,\&quot;src\&quot;:\&quot;https://analytics.aceternity.com/js/script.js\&quot;}],[\&quot;$\&quot;,\&quot;script\&quot;,null,{\&quot;dangerouslySetInnerHTML\&quot;:{\&quot;__html\&quot;:\&quot;\\n(function(){var w=window;var ic=w.Intercom;if(typeof ic===\\\&quot;function\\\&quot;){ic(&apos;reattach_activator&apos;);ic(&apos;update&apos;,w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement(&apos;script&apos;);s.type=&apos;text/javascript&apos;;s.async=true;s.src=&apos;https://widget.intercom.io/widget/duup7948&apos;;var x=d.getElementsByTagName(&apos;script&apos;)[0];x.parentNode.insertBefore(s,x);};if(document.readyState===&apos;complete&apos;){l();}else if(w.attachEvent){w.attachEvent(&apos;onload&apos;,l);}else{w.addEventListener(&apos;load&apos;,l,false);}}})();\\n \&quot;}}],[\&quot;$\&quot;,\&quot;$L1e\&quot;,null,{}],[\&quot;$\&quot;,\&quot;$L1f\&quot;,null,{\&quot;attribute\&quot;:\&quot;class\&quot;,\&quot;defaultTheme\&quot;:\&quot;system\&quot;,\&quot;enableSystem\&quot;:true,\&quot;disableTransitionOnChange\&quot;:true,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;$L20\&quot;,null,{\&quot;user\&quot;:{\&quot;paid\&quot;:true},\&quot;isSubscribed\&quot;:true}],[\&quot;$\&quot;,\&quot;$La\&quot;,null,{\&quot;parallelRouterKey\&quot;:\&quot;children\&quot;,\&quot;segmentPath\&quot;:[\&quot;children\&quot;],\&quot;loading\&quot;:\&quot;$undefined\&quot;,\&quot;loadingStyles\&quot;:\&quot;$undefined\&quot;,\&quot;loadingScripts\&quot;:\&quot;$undefined\&quot;,\&quot;hasLoading\&quot;:false,\&quot;error\&quot;:\&quot;$undefined\&quot;,\&quot;errorStyles\&quot;:\&quot;$undefined\&quot;,\&quot;errorScripts\&quot;:\&quot;$undefined\&quot;,\&quot;template\&quot;:[\&quot;$\&quot;,\&quot;$Lc\&quot;,null,{}],\&quot;templateStyles\&quot;:\&quot;$undefined\&quot;,\&quot;templateScripts\&quot;:\&quot;$undefined\&quot;,\&quot;notFound\&quot;:[[\&quot;$\&quot;,\&quot;title\&quot;,null,{\&quot;children\&quot;:\&quot;404: This page could not be found.\&quot;}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;style\&quot;:{\&quot;fontFamily\&quot;:\&quot;system-ui,\\\&quot;Segoe UI\\\&quot;,Roboto,Helvetica,Arial,sans-serif,\\\&quot;Apple Color Emoji\\\&quot;,\\\&quot;Segoe UI Emoji\\\&quot;\&quot;,\&quot;height\&quot;:\&quot;100vh\&quot;,\&quot;textAlign\&quot;:\&quot;center\&quot;,\&quot;display\&quot;:\&quot;flex\&quot;,\&quot;flexDirection\&quot;:\&quot;column\&quot;,\&quot;alignItems\&quot;:\&quot;center\&quot;,\&quot;justifyContent\&quot;:\&quot;center\&quot;},\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;style\&quot;,null,{\&quot;dangerouslySetInnerHTML\&quot;:{\&quot;__html\&quot;:\&quot;body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\&quot;}}],[\&quot;$\&quot;,\&quot;h1\&quot;,null,{\&quot;className\&quot;:\&quot;next-error-h1\&quot;,\&quot;style\&quot;:{\&quot;display\&quot;:\&quot;inline-block\&quot;,\&quot;margin\&quot;:\&quot;0 20px 0 0\&quot;,\&quot;padding\&quot;:\&quot;0 23px 0 0\&quot;,\&quot;fontSize\&quot;:24,\&quot;fontWeight\&quot;:500,\&quot;verticalAlign\&quot;:\&quot;top\&quot;,\&quot;lineHeight\&quot;:\&quot;49px\&quot;},\&quot;children\&quot;:\&quot;404\&quot;}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;style\&quot;:{\&quot;display\&quot;:\&quot;inline-block\&quot;},\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;h2\&quot;,null,{\&quot;style\&quot;:{\&quot;fontSize\&quot;:14,\&quot;fontWeight\&quot;:400,\&quot;lineHeight\&quot;:\&quot;49px\&quot;,\&quot;margin\&quot;:0},\&quot;children\&quot;:\&quot;This page could not be found.\&quot;}]}]]}]}]],\&quot;notFoundStyles\&quot;:[],\&quot;styles\&quot;:null}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;border-t border-neutral-100 dark:border-white/[0.1] px-8 py-20 bg-white dark:bg-brand\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;max-w-7xl mx-auto text-sm text-neutral-500 flex sm:flex-row flex-col justify-between items-start \&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;mr-4 md:flex mb-4\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;href\&quot;:\&quot;/\&quot;,\&quot;className\&quot;:\&quot;flex items-center justify-center space-x-2 text-2xl font-bold text-center text-neutral-600 dark:text-gray-100 selection:bg-emerald-500 mr-10 py-0\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;relative h-8 w-8 md:h-6 md:w-6 bg-black border border-slate-800 text-white flex items-center justify-center rounded-md text-sm antialiased\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;absolute h-10 w-full bg-white/[0.2] -top-10 inset-x-0 rounded-full blur-xl\&quot;}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;text-sm text-emerald-500 relative z-20\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$L21\&quot;,null,{\&quot;src\&quot;:\&quot;/logo.png\&quot;,\&quot;height\&quot;:\&quot;50\&quot;,\&quot;width\&quot;:\&quot;50\&quot;,\&quot;alt\&quot;:\&quot;Logo\&quot;}]}]]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;flex flex-col\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;h1\&quot;,null,{\&quot;className\&quot;:\&quot;text-black dark:text-white font-sans\&quot;,\&quot;children\&quot;:[\&quot; \&quot;,\&quot;Aceternity UI\&quot;]}]}]]}]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;children\&quot;:[\&quot;A product by\&quot;,\&quot; \&quot;,[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;href\&quot;:\&quot;https://aceternity.com\&quot;,\&quot;target\&quot;:\&quot;__blank\&quot;,\&quot;className\&quot;:\&quot;dark:text-sky-500 text-neutral-600 font-medium\&quot;,\&quot;children\&quot;:\&quot;Aceternity\&quot;}]]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;mt-2\&quot;,\&quot;children\&quot;:[\&quot;Building in public at\&quot;,\&quot; \&quot;,[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;href\&quot;:\&quot;https://twitter.com/mannupaaji\&quot;,\&quot;className\&quot;:\&quot;dark:text-sky-500 font-medium text-neutral-600\&quot;,\&quot;target\&quot;:\&quot;__blank\&quot;,\&quot;children\&quot;:\&quot;@mannupaaji\&quot;}]]}]]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;grid grid-cols-2 gap-10 items-start mt-10 md:mt-0\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;flex justify-center space-y-4 flex-col mt-4\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;className\&quot;:\&quot;transition-colors hover:text-foreground/80 text-foreground/60\&quot;,\&quot;href\&quot;:\&quot;/pricing\&quot;,\&quot;children\&quot;:\&quot;Pricing\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;className\&quot;:\&quot;transition-colors hover:text-foreground/80 text-foreground/60\&quot;,\&quot;href\&quot;:\&quot;/components\&quot;,\&quot;children\&quot;:\&quot;Components\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;className\&quot;:\&quot;transition-colors hover:text-foreground/80 text-foreground/60\&quot;,\&quot;href\&quot;:\&quot;/templates\&quot;,\&quot;children\&quot;:\&quot;Templates\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;className\&quot;:\&quot;transition-colors hover:text-foreground/80 text-foreground/60\&quot;,\&quot;href\&quot;:\&quot;/categories\&quot;,\&quot;children\&quot;:\&quot;Categories\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;className\&quot;:\&quot;transition-colors hover:text-foreground/80 text-foreground/60\&quot;,\&quot;href\&quot;:\&quot;/blog\&quot;,\&quot;children\&quot;:\&quot;Blog\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;className\&quot;:\&quot;transition-colors hover:text-foreground/80 text-foreground/60\&quot;,\&quot;href\&quot;:\&quot;/tools/box-shadows\&quot;,\&quot;children\&quot;:\&quot;Box Shadows\&quot;}]]}],[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;className\&quot;:\&quot;flex justify-center space-y-4 flex-col mt-4\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;target\&quot;:\&quot;__blank\&quot;,\&quot;className\&quot;:\&quot;transition-colors hover:text-foreground/80 text-foreground/60\&quot;,\&quot;href\&quot;:\&quot;https://twitter.com/aceternitylabs\&quot;,\&quot;children\&quot;:\&quot;Twitter\&quot;}],[\&quot;$\&quot;,\&quot;$L13\&quot;,null,{\&quot;target\&quot;:\&quot;__blank\&quot;,\&quot;className\&quot;:\&quot;transition-colors hover:text-foreground/80 text-foreground/60\&quot;,\&quot;href\&quot;:\&quot;https://discord.gg/ftZbQvCdN7\&quot;,\&quot;children\&quot;:\&quot;Discord\&quot;}]]}]]}]]}]}]]}],[\&quot;$\&quot;,\&quot;$L22\&quot;,null,{}]]}]}]\n&quot;])self.__next_f.push([1,&quot;10:[[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;0\&quot;,{\&quot;name\&quot;:\&quot;viewport\&quot;,\&quot;content\&quot;:\&quot;width=device-width, initial-scale=1\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;1\&quot;,{\&quot;charSet\&quot;:\&quot;utf-8\&quot;}],[\&quot;$\&quot;,\&quot;title\&quot;,\&quot;2\&quot;,{\&quot;children\&quot;:\&quot;Background Beams\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;3\&quot;,{\&quot;name\&quot;:\&quot;description\&quot;,\&quot;content\&quot;:\&quot;Multiple background beams that follow a path of SVG, makes a good hero section background.\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;4\&quot;,{\&quot;property\&quot;:\&quot;og:title\&quot;,\&quot;content\&quot;:\&quot;Background Beams\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;5\&quot;,{\&quot;property\&quot;:\&quot;og:description\&quot;,\&quot;content\&quot;:\&quot;Multiple background beams that follow a path of SVG, makes a good hero section background.\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;6\&quot;,{\&quot;property\&quot;:\&quot;og:image\&quot;,\&quot;content\&quot;:\&quot;https://assets.aceternity.com/cloudinary_bkp/Background_Beams_ilbyga.png\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;7\&quot;,{\&quot;property\&quot;:\&quot;og:type\&quot;,\&quot;content\&quot;:\&quot;article\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;8\&quot;,{\&quot;name\&quot;:\&quot;twitter:card\&quot;,\&quot;content\&quot;:\&quot;summary_large_image\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;9\&quot;,{\&quot;name\&quot;:\&quot;twitter:creator\&quot;,\&quot;content\&quot;:\&quot;@mannupaaji\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;10\&quot;,{\&quot;name\&quot;:\&quot;twitter:title\&quot;,\&quot;content\&quot;:\&quot;Background Beams\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;11\&quot;,{\&quot;name\&quot;:\&quot;twitter:description\&quot;,\&quot;content\&quot;:\&quot;Multiple background beams that follow a path of SVG, makes a good hero section background.\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;12\&quot;,{\&quot;name\&quot;:\&quot;twitter:image\&quot;,\&quot;content\&quot;:\&quot;https://assets.aceternity.com/cloudinary_bkp/Background_Beams_ilbyga.png\&quot;}],[\&quot;$\&quot;,\&quot;link\&quot;,\&quot;13\&quot;,{\&quot;rel\&quot;:\&quot;icon\&quot;,\&quot;href\&quot;:\&quot;/favicon.ico\&quot;,\&quot;type\&quot;:\&quot;image/x-icon\&quot;,\&quot;sizes\&quot;:\&quot;16x16\&quot;}],[\&quot;$\&quot;,\&quot;link\&quot;,\&quot;14\&quot;,{\&quot;rel\&quot;:\&quot;apple-touch-icon\&quot;,\&quot;href\&quot;:\&quot;/apple-icon.png?2deb28af3ac52d4d\&quot;,\&quot;type\&quot;:\&quot;image/png\&quot;,\&quot;sizes\&quot;:\&quot;114x114\&quot;}],[\&quot;$\&quot;,\&quot;meta\&quot;,\&quot;15\&quot;,{\&quot;name\&quot;:\&quot;next-size-adjust\&quot;}]]\n&quot;])self.__next_f.push([1,&quot;8:null\n&quot;])self.__next_f.push([1,&quot;23:I[49026,[\&quot;6115\&quot;,\&quot;static/chunks/8dc5345f-7c0cf51404ce5c83.js\&quot;,\&quot;8310\&quot;,\&quot;static/chunks/0e5ce63c-1571cb7fe04f565a.js\&quot;,\&quot;7895\&quot;,\&quot;static/chunks/7895-fcd52de26680f886.js\&quot;,\&quot;5250\&quot;,\&quot;static/chunks/5250-b576df20f9ecedca.js\&quot;,\&quot;2255\&quot;,\&quot;static/chunks/2255-574587277be16c13.js\&quot;,\&quot;6691\&quot;,\&quot;static/chunks/6691-3643fde9a53a3b64.js\&quot;,\&quot;2690\&quot;,\&quot;static/chunks/2690-0ab0d0783f55dc75.js\&quot;,\&quot;7106\&quot;,\&quot;static/chunks/7106-71a563599bfa5483.js\&quot;,\&quot;6653\&quot;,\&quot;static/chunks/6653-ebf8bb3ce1899584.js\&quot;,\&quot;2791\&quot;,\&quot;static/chunks/2791-7e4a53a19f9d17a6.js\&quot;,\&quot;1424\&quot;,\&quot;static/chunks/1424-d724e09ff7e0aa5f.js\&quot;,\&quot;3649\&quot;,\&quot;static/chunks/3649-a7b35ecf47a0263a.js\&quot;,\&quot;2235\&quot;,\&quot;static/chunks/2235-c91b6c9e3c9fcd60.js\&quot;,\&quot;8226\&quot;,\&quot;static/chunks/8226-58a16fab4276c086.js\&quot;,\&quot;4067\&quot;,\&quot;static/chunks/4067-c82acd005c5a407d.js\&quot;,\&quot;7858\&quot;,\&quot;static/chunks/app/components/%5Bslug%5D/page-6f3d015f6a7eb41c.js\&quot;],\&quot;CodeBlockWrapper\&quot;]\n&quot;])self.__next_f.push([1,&quot;24:Td81,&quot;])self.__next_f.push([1,&quot;\&quot;M-380 -189C-380 -189 -312 216 152 343C616 470 684 875 684 875M-373 -197C-373 -197 -305 208 159 335C623 462 691 867 691 867M-366 -205C-366 -205 -298 200 166 327C630 454 698 859 698 859M-359 -213C-359 -213 -291 192 173 319C637 446 705 851 705 851M-352 -221C-352 -221 -284 184 180 311C644 438 712 843 712 843M-345 -229C-345 -229 -277 176 187 303C651 430 719 835 719 835M-338 -237C-338 -237 -270 168 194 295C658 422 726 827 726 827M-331 -245C-331 -245 -263 160 201 287C665 414 733 819 733 819M-324 -253C-324 -253 -256 152 208 279C672 406 740 811 740 811M-317 -261C-317 -261 -249 144 215 271C679 398 747 803 747 803M-310 -269C-310 -269 -242 136 222 263C686 390 754 795 754 795M-303 -277C-303 -277 -235 128 229 255C693 382 761 787 761 787M-296 -285C-296 -285 -228 120 236 247C700 374 768 779 768 779M-289 -293C-289 -293 -221 112 243 239C707 366 775 771 775 771M-282 -301C-282 -301 -214 104 250 231C714 358 782 763 782 763M-275 -309C-275 -309 -207 96 257 223C721 350 789 755 789 755M-268 -317C-268 -317 -200 88 264 215C728 342 796 747 796 747M-261 -325C-261 -325 -193 80 271 207C735 334 803 739 803 739M-254 -333C-254 -333 -186 72 278 199C742 326 810 731 810 731M-247 -341C-247 -341 -179 64 285 191C749 318 817 723 817 723M-240 -349C-240 -349 -172 56 292 183C756 310 824 715 824 715M-233 -357C-233 -357 -165 48 299 175C763 302 831 707 831 707M-226 -365C-226 -365 -158 40 306 167C770 294 838 699 838 699M-219 -373C-219 -373 -151 32 313 159C777 286 845 691 845 691M-212 -381C-212 -381 -144 24 320 151C784 278 852 683 852 683M-205 -389C-205 -389 -137 16 327 143C791 270 859 675 859 675M-198 -397C-198 -397 -130 8 334 135C798 262 866 667 866 667M-191 -405C-191 -405 -123 0 341 127C805 254 873 659 873 659M-184 -413C-184 -413 -116 -8 348 119C812 246 880 651 880 651M-177 -421C-177 -421 -109 -16 355 111C819 238 887 643 887 643M-170 -429C-170 -429 -102 -24 362 103C826 230 894 635 894 635M-163 -437C-163 -437 -95 -32 369 95C833 222 901 627 901 627M-156 -445C-156 -445 -88 -40 376 87C840 214 908 619 908 619M-149 -453C-149 -453 -81 -48 383 79C847 206 915 611 915 611M-142 -461C-142 -461 -74 -56 390 71C854 198 922 603 922 603M-135 -469C-135 -469 -67 -64 397 63C861 190 929 595 929 595M-128 -477C-128 -477 -60 -72 404 55C868 182 936 587 936 587M-121 -485C-121 -485 -53 -80 411 47C875 174 943 579 943 579M-114 -493C-114 -493 -46 -88 418 39C882 166 950 571 950 571M-107 -501C-107 -501 -39 -96 425 31C889 158 957 563 957 563M-100 -509C-100 -509 -32 -104 432 23C896 150 964 555 964 555M-93 -517C-93 -517 -25 -112 439 15C903 142 971 547 971 547M-86 -525C-86 -525 -18 -120 446 7C910 134 978 539 978 539M-79 -533C-79 -533 -11 -128 453 -1C917 126 985 531 985 531M-72 -541C-72 -541 -4 -136 460 -9C924 118 992 523 992 523M-65 -549C-65 -549 3 -144 467 -17C931 110 999 515 999 515M-58 -557C-58 -557 10 -152 474 -25C938 102 1006 507 1006 507M-51 -565C-51 -565 17 -160 481 -33C945 94 1013 499 1013 499M-44 -573C-44 -573 24 -168 488 -41C952 86 1020 491 1020 491M-37 -581C-37 -581 31 -176 495 -49C959 78 1027 483 1027 483M-30 -589C-30 -589 38 -184 502 -57C966 70 1034 475 1034 475M-23 -597C-23 -597 45 -192 509 -65C973 62 1041 467 1041 467M-16 -605C-16 -605 52 -200 516 -73C980 54 1048 459 1048 459M-9 -613C-9 -613 59 -208 523 -81C987 46 1055 451 1055 451M-2 -621C-2 -621 66 -216 530 -89C994 38 1062 443 1062 443M5 -629C5 -629 73 -224 537 -97C1001 30 1069 435 1069 435M12 -637C12 -637 80 -232 544 -105C1008 22 1076 427 1076 427M19 -645C19 -645 87 -240 551 -113C1015 14 1083 419 1083 419\&quot;&quot;])self.__next_f.push([1,&quot;25:T266d,&quot;])self.__next_f.push([1,&quot;\&quot;use client\&quot;;\nimport React from \&quot;react\&quot;;\nimport { motion } from \&quot;framer-motion\&quot;;\nimport { cn } from \&quot;@/lib/utils\&quot;;\n\nexport const BackgroundBeams = React.memo(\n ({ className }: { className?: string }) =\u003e {\n const paths = [\n \&quot;M-380 -189C-380 -189 -312 216 152 343C616 470 684 875 684 875\&quot;,\n \&quot;M-373 -197C-373 -197 -305 208 159 335C623 462 691 867 691 867\&quot;,\n \&quot;M-366 -205C-366 -205 -298 200 166 327C630 454 698 859 698 859\&quot;,\n \&quot;M-359 -213C-359 -213 -291 192 173 319C637 446 705 851 705 851\&quot;,\n \&quot;M-352 -221C-352 -221 -284 184 180 311C644 438 712 843 712 843\&quot;,\n \&quot;M-345 -229C-345 -229 -277 176 187 303C651 430 719 835 719 835\&quot;,\n \&quot;M-338 -237C-338 -237 -270 168 194 295C658 422 726 827 726 827\&quot;,\n \&quot;M-331 -245C-331 -245 -263 160 201 287C665 414 733 819 733 819\&quot;,\n \&quot;M-324 -253C-324 -253 -256 152 208 279C672 406 740 811 740 811\&quot;,\n \&quot;M-317 -261C-317 -261 -249 144 215 271C679 398 747 803 747 803\&quot;,\n \&quot;M-310 -269C-310 -269 -242 136 222 263C686 390 754 795 754 795\&quot;,\n \&quot;M-303 -277C-303 -277 -235 128 229 255C693 382 761 787 761 787\&quot;,\n \&quot;M-296 -285C-296 -285 -228 120 236 247C700 374 768 779 768 779\&quot;,\n \&quot;M-289 -293C-289 -293 -221 112 243 239C707 366 775 771 775 771\&quot;,\n \&quot;M-282 -301C-282 -301 -214 104 250 231C714 358 782 763 782 763\&quot;,\n \&quot;M-275 -309C-275 -309 -207 96 257 223C721 350 789 755 789 755\&quot;,\n \&quot;M-268 -317C-268 -317 -200 88 264 215C728 342 796 747 796 747\&quot;,\n \&quot;M-261 -325C-261 -325 -193 80 271 207C735 334 803 739 803 739\&quot;,\n \&quot;M-254 -333C-254 -333 -186 72 278 199C742 326 810 731 810 731\&quot;,\n \&quot;M-247 -341C-247 -341 -179 64 285 191C749 318 817 723 817 723\&quot;,\n \&quot;M-240 -349C-240 -349 -172 56 292 183C756 310 824 715 824 715\&quot;,\n \&quot;M-233 -357C-233 -357 -165 48 299 175C763 302 831 707 831 707\&quot;,\n \&quot;M-226 -365C-226 -365 -158 40 306 167C770 294 838 699 838 699\&quot;,\n \&quot;M-219 -373C-219 -373 -151 32 313 159C777 286 845 691 845 691\&quot;,\n \&quot;M-212 -381C-212 -381 -144 24 320 151C784 278 852 683 852 683\&quot;,\n \&quot;M-205 -389C-205 -389 -137 16 327 143C791 270 859 675 859 675\&quot;,\n \&quot;M-198 -397C-198 -397 -130 8 334 135C798 262 866 667 866 667\&quot;,\n \&quot;M-191 -405C-191 -405 -123 0 341 127C805 254 873 659 873 659\&quot;,\n \&quot;M-184 -413C-184 -413 -116 -8 348 119C812 246 880 651 880 651\&quot;,\n \&quot;M-177 -421C-177 -421 -109 -16 355 111C819 238 887 643 887 643\&quot;,\n \&quot;M-170 -429C-170 -429 -102 -24 362 103C826 230 894 635 894 635\&quot;,\n \&quot;M-163 -437C-163 -437 -95 -32 369 95C833 222 901 627 901 627\&quot;,\n \&quot;M-156 -445C-156 -445 -88 -40 376 87C840 214 908 619 908 619\&quot;,\n \&quot;M-149 -453C-149 -453 -81 -48 383 79C847 206 915 611 915 611\&quot;,\n \&quot;M-142 -461C-142 -461 -74 -56 390 71C854 198 922 603 922 603\&quot;,\n \&quot;M-135 -469C-135 -469 -67 -64 397 63C861 190 929 595 929 595\&quot;,\n \&quot;M-128 -477C-128 -477 -60 -72 404 55C868 182 936 587 936 587\&quot;,\n \&quot;M-121 -485C-121 -485 -53 -80 411 47C875 174 943 579 943 579\&quot;,\n \&quot;M-114 -493C-114 -493 -46 -88 418 39C882 166 950 571 950 571\&quot;,\n \&quot;M-107 -501C-107 -501 -39 -96 425 31C889 158 957 563 957 563\&quot;,\n \&quot;M-100 -509C-100 -509 -32 -104 432 23C896 150 964 555 964 555\&quot;,\n \&quot;M-93 -517C-93 -517 -25 -112 439 15C903 142 971 547 971 547\&quot;,\n \&quot;M-86 -525C-86 -525 -18 -120 446 7C910 134 978 539 978 539\&quot;,\n \&quot;M-79 -533C-79 -533 -11 -128 453 -1C917 126 985 531 985 531\&quot;,\n \&quot;M-72 -541C-72 -541 -4 -136 460 -9C924 118 992 523 992 523\&quot;,\n \&quot;M-65 -549C-65 -549 3 -144 467 -17C931 110 999 515 999 515\&quot;,\n \&quot;M-58 -557C-58 -557 10 -152 474 -25C938 102 1006 507 1006 507\&quot;,\n \&quot;M-51 -565C-51 -565 17 -160 481 -33C945 94 1013 499 1013 499\&quot;,\n \&quot;M-44 -573C-44 -573 24 -168 488 -41C952 86 1020 491 1020 491\&quot;,\n \&quot;M-37 -581C-37 -581 31 -176 495 -49C959 78 1027 483 1027 483\&quot;,\n ];\n return (\n \u003cdiv\n className={cn(\n \&quot;absolute h-full w-full inset-0 [mask-size:40px] [mask-repeat:no-repeat] flex items-center justify-center\&quot;,\n className\n )}\n \u003e\n \u003csvg\n className=\&quot; z-0 h-full w-full pointer-events-none absolute \&quot;\n width=\&quot;100%\&quot;\n height=\&quot;100%\&quot;\n viewBox=\&quot;0 0 696 316\&quot;\n fill=\&quot;none\&quot;\n xmlns=\&quot;http://www.w3.org/2000/svg\&quot;\n \u003e\n \u003cpath\n d=\&quot;M-380 -189C-380 -189 -312 216 152 343C616 470 684 875 684 875M-373 -197C-373 -197 -305 208 159 335C623 462 691 867 691 867M-366 -205C-366 -205 -298 200 166 327C630 454 698 859 698 859M-359 -213C-359 -213 -291 192 173 319C637 446 705 851 705 851M-352 -221C-352 -221 -284 184 180 311C644 438 712 843 712 843M-345 -229C-345 -229 -277 176 187 303C651 430 719 835 719 835M-338 -237C-338 -237 -270 168 194 295C658 422 726 827 726 827M-331 -245C-331 -245 -263 160 201 287C665 414 733 819 733 819M-324 -253C-324 -253 -256 152 208 279C672 406 740 811 740 811M-317 -261C-317 -261 -249 144 215 271C679 398 747 803 747 803M-310 -269C-310 -269 -242 136 222 263C686 390 754 795 754 795M-303 -277C-303 -277 -235 128 229 255C693 382 761 787 761 787M-296 -285C-296 -285 -228 120 236 247C700 374 768 779 768 779M-289 -293C-289 -293 -221 112 243 239C707 366 775 771 775 771M-282 -301C-282 -301 -214 104 250 231C714 358 782 763 782 763M-275 -309C-275 -309 -207 96 257 223C721 350 789 755 789 755M-268 -317C-268 -317 -200 88 264 215C728 342 796 747 796 747M-261 -325C-261 -325 -193 80 271 207C735 334 803 739 803 739M-254 -333C-254 -333 -186 72 278 199C742 326 810 731 810 731M-247 -341C-247 -341 -179 64 285 191C749 318 817 723 817 723M-240 -349C-240 -349 -172 56 292 183C756 310 824 715 824 715M-233 -357C-233 -357 -165 48 299 175C763 302 831 707 831 707M-226 -365C-226 -365 -158 40 306 167C770 294 838 699 838 699M-219 -373C-219 -373 -151 32 313 159C777 286 845 691 845 691M-212 -381C-212 -381 -144 24 320 151C784 278 852 683 852 683M-205 -389C-205 -389 -137 16 327 143C791 270 859 675 859 675M-198 -397C-198 -397 -130 8 334 135C798 262 866 667 866 667M-191 -405C-191 -405 -123 0 341 127C805 254 873 659 873 659M-184 -413C-184 -413 -116 -8 348 119C812 246 880 651 880 651M-177 -421C-177 -421 -109 -16 355 111C819 238 887 643 887 643M-170 -429C-170 -429 -102 -24 362 103C826 230 894 635 894 635M-163 -437C-163 -437 -95 -32 369 95C833 222 901 627 901 627M-156 -445C-156 -445 -88 -40 376 87C840 214 908 619 908 619M-149 -453C-149 -453 -81 -48 383 79C847 206 915 611 915 611M-142 -461C-142 -461 -74 -56 390 71C854 198 922 603 922 603M-135 -469C-135 -469 -67 -64 397 63C861 190 929 595 929 595M-128 -477C-128 -477 -60 -72 404 55C868 182 936 587 936 587M-121 -485C-121 -485 -53 -80 411 47C875 174 943 579 943 579M-114 -493C-114 -493 -46 -88 418 39C882 166 950 571 950 571M-107 -501C-107 -501 -39 -96 425 31C889 158 957 563 957 563M-100 -509C-100 -509 -32 -104 432 23C896 150 964 555 964 555M-93 -517C-93 -517 -25 -112 439 15C903 142 971 547 971 547M-86 -525C-86 -525 -18 -120 446 7C910 134 978 539 978 539M-79 -533C-79 -533 -11 -128 453 -1C917 126 985 531 985 531M-72 -541C-72 -541 -4 -136 460 -9C924 118 992 523 992 523M-65 -549C-65 -549 3 -144 467 -17C931 110 999 515 999 515M-58 -557C-58 -557 10 -152 474 -25C938 102 1006 507 1006 507M-51 -565C-51 -565 17 -160 481 -33C945 94 1013 499 1013 499M-44 -573C-44 -573 24 -168 488 -41C952 86 1020 491 1020 491M-37 -581C-37 -581 31 -176 495 -49C959 78 1027 483 1027 483M-30 -589C-30 -589 38 -184 502 -57C966 70 1034 475 1034 475M-23 -597C-23 -597 45 -192 509 -65C973 62 1041 467 1041 467M-16 -605C-16 -605 52 -200 516 -73C980 54 1048 459 1048 459M-9 -613C-9 -613 59 -208 523 -81C987 46 1055 451 1055 451M-2 -621C-2 -621 66 -216 530 -89C994 38 1062 443 1062 443M5 -629C5 -629 73 -224 537 -97C1001 30 1069 435 1069 435M12 -637C12 -637 80 -232 544 -105C1008 22 1076 427 1076 427M19 -645C19 -645 87 -240 551 -113C1015 14 1083 419 1083 419\&quot;\n stroke=\&quot;url(#paint0_radial_242_278)\&quot;\n strokeOpacity=\&quot;0.05\&quot;\n strokeWidth=\&quot;0.5\&quot;\n \u003e\u003c/path\u003e\n\n {paths.map((path, index) =\u003e (\n \u003cmotion.path\n key={`path-` + index}\n d={path}\n stroke={`url(#linearGradient-${index})`}\n strokeOpacity=\&quot;0.4\&quot;\n strokeWidth=\&quot;0.5\&quot;\n \u003e\u003c/motion.path\u003e\n ))}\n \u003cdefs\u003e\n {paths.map((path, index) =\u003e (\n \u003cmotion.linearGradient\n id={`linearGradient-${index}`}\n key={`gradient-${index}`}\n initial={{\n x1: \&quot;0%\&quot;,\n x2: \&quot;0%\&quot;,\n y1: \&quot;0%\&quot;,\n y2: \&quot;0%\&quot;,\n }}\n animate={{\n x1: [\&quot;0%\&quot;, \&quot;100%\&quot;],\n x2: [\&quot;0%\&quot;, \&quot;95%\&quot;],\n y1: [\&quot;0%\&quot;, \&quot;100%\&quot;],\n y2: [\&quot;0%\&quot;, `${93 + Math.random() * 8}%`],\n }}\n transition={{\n duration: Math.random() * 10 + 10,\n ease: \&quot;easeInOut\&quot;,\n repeat: Infinity,\n delay: Math.random() * 10,\n }}\n \u003e\n \u003cstop stopColor=\&quot;#18CCFC\&quot; stopOpacity=\&quot;0\&quot;\u003e\u003c/stop\u003e\n \u003cstop stopColor=\&quot;#18CCFC\&quot;\u003e\u003c/stop\u003e\n \u003cstop offset=\&quot;32.5%\&quot; stopColor=\&quot;#6344F5\&quot;\u003e\u003c/stop\u003e\n \u003cstop offset=\&quot;100%\&quot; stopColor=\&quot;#AE48FF\&quot; stopOpacity=\&quot;0\&quot;\u003e\u003c/stop\u003e\n \u003c/motion.linearGradient\u003e\n ))}\n\n \u003cradialGradient\n id=\&quot;paint0_radial_242_278\&quot;\n cx=\&quot;0\&quot;\n cy=\&quot;0\&quot;\n r=\&quot;1\&quot;\n gradientUnits=\&quot;userSpaceOnUse\&quot;\n gradientTransform=\&quot;translate(352 34) rotate(90) scale(555 1560.62)\&quot;\n \u003e\n \u003cstop offset=\&quot;0.0666667\&quot; stopColor=\&quot;var(--neutral-300)\&quot;\u003e\u003c/stop\u003e\n \u003cstop offset=\&quot;0.243243\&quot; stopColor=\&quot;var(--neutral-300)\&quot;\u003e\u003c/stop\u003e\n \u003cstop offset=\&quot;0.43594\&quot; stopColor=\&quot;white\&quot; stopOpacity=\&quot;0\&quot;\u003e\u003c/stop\u003e\n \u003c/radialGradient\u003e\n \u003c/defs\u003e\n \u003c/svg\u003e\n \u003c/div\u003e\n );\n }\n);\n\nBackgroundBeams.displayName = \&quot;BackgroundBeams\&quot;;\n&quot;])self.__next_f.push([1,&quot;1d:[\&quot;$\&quot;,\&quot;$L23\&quot;,null,{\&quot;expandButtonTitle\&quot;:\&quot;Expand\&quot;,\&quot;className\&quot;:\&quot;my-6 overflow-hidden rounded-md\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;div\&quot;,null,{\&quot;data-rehype-pretty-code-fragment\&quot;:\&quot;\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;$L15\&quot;,null,{\&quot;styleName\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;pre\&quot;,null,{\&quot;className\&quot;:\&quot;mb-4 mt-6 max-h-[650px] overflow-x-auto rounded-lg border bg-[#1C2433] py-4 dark:bg-zinc-900\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;code\&quot;,null,{\&quot;className\&quot;:\&quot;relative rounded bg-muted px-[0.3rem] py-[0.2rem] text-sm dark:text-neutral-200 __className_6dcaa2\&quot;,\&quot;data-language\&quot;:\&quot;tsx\&quot;,\&quot;data-theme\&quot;:\&quot;default\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;use client\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;import\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;React\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;from\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;react\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;import\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;motion\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;from\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;framer-motion\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;import\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;cn\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;from\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;@/lib/utils\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;export\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;const\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;BackgroundBeams\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;React\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;memo\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;({\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;?:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;string\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;})\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;=\u003e\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#22ECDB\&quot;},\&quot;children\&quot;:\&quot;const\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;paths\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-380 -189C-380 -189 -312 216 152 343C616 470 684 875 684 875\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-373 -197C-373 -197 -305 208 159 335C623 462 691 867 691 867\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-366 -205C-366 -205 -298 200 166 327C630 454 698 859 698 859\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-359 -213C-359 -213 -291 192 173 319C637 446 705 851 705 851\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-352 -221C-352 -221 -284 184 180 311C644 438 712 843 712 843\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-345 -229C-345 -229 -277 176 187 303C651 430 719 835 719 835\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-338 -237C-338 -237 -270 168 194 295C658 422 726 827 726 827\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-331 -245C-331 -245 -263 160 201 287C665 414 733 819 733 819\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-324 -253C-324 -253 -256 152 208 279C672 406 740 811 740 811\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-317 -261C-317 -261 -249 144 215 271C679 398 747 803 747 803\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-310 -269C-310 -269 -242 136 222 263C686 390 754 795 754 795\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-303 -277C-303 -277 -235 128 229 255C693 382 761 787 761 787\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-296 -285C-296 -285 -228 120 236 247C700 374 768 779 768 779\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-289 -293C-289 -293 -221 112 243 239C707 366 775 771 775 771\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-282 -301C-282 -301 -214 104 250 231C714 358 782 763 782 763\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-275 -309C-275 -309 -207 96 257 223C721 350 789 755 789 755\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-268 -317C-268 -317 -200 88 264 215C728 342 796 747 796 747\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-261 -325C-261 -325 -193 80 271 207C735 334 803 739 803 739\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-254 -333C-254 -333 -186 72 278 199C742 326 810 731 810 731\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-247 -341C-247 -341 -179 64 285 191C749 318 817 723 817 723\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-240 -349C-240 -349 -172 56 292 183C756 310 824 715 824 715\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-233 -357C-233 -357 -165 48 299 175C763 302 831 707 831 707\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-226 -365C-226 -365 -158 40 306 167C770 294 838 699 838 699\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-219 -373C-219 -373 -151 32 313 159C777 286 845 691 845 691\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-212 -381C-212 -381 -144 24 320 151C784 278 852 683 852 683\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-205 -389C-205 -389 -137 16 327 143C791 270 859 675 859 675\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-198 -397C-198 -397 -130 8 334 135C798 262 866 667 866 667\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-191 -405C-191 -405 -123 0 341 127C805 254 873 659 873 659\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-184 -413C-184 -413 -116 -8 348 119C812 246 880 651 880 651\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-177 -421C-177 -421 -109 -16 355 111C819 238 887 643 887 643\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-170 -429C-170 -429 -102 -24 362 103C826 230 894 635 894 635\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-163 -437C-163 -437 -95 -32 369 95C833 222 901 627 901 627\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-156 -445C-156 -445 -88 -40 376 87C840 214 908 619 908 619\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-149 -453C-149 -453 -81 -48 383 79C847 206 915 611 915 611\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-142 -461C-142 -461 -74 -56 390 71C854 198 922 603 922 603\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-135 -469C-135 -469 -67 -64 397 63C861 190 929 595 929 595\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-128 -477C-128 -477 -60 -72 404 55C868 182 936 587 936 587\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-121 -485C-121 -485 -53 -80 411 47C875 174 943 579 943 579\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-114 -493C-114 -493 -46 -88 418 39C882 166 950 571 950 571\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-107 -501C-107 -501 -39 -96 425 31C889 158 957 563 957 563\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-100 -509C-100 -509 -32 -104 432 23C896 150 964 555 964 555\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-93 -517C-93 -517 -25 -112 439 15C903 142 971 547 971 547\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-86 -525C-86 -525 -18 -120 446 7C910 134 978 539 978 539\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-79 -533C-79 -533 -11 -128 453 -1C917 126 985 531 985 531\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-72 -541C-72 -541 -4 -136 460 -9C924 118 992 523 992 523\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-65 -549C-65 -549 3 -144 467 -17C931 110 999 515 999 515\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-58 -557C-58 -557 10 -152 474 -25C938 102 1006 507 1006 507\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-51 -565C-51 -565 17 -160 481 -33C945 94 1013 499 1013 499\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-44 -573C-44 -573 24 -168 488 -41C952 86 1020 491 1020 491\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;M-37 -581C-37 -581 31 -176 495 -49C959 78 1027 483 1027 483\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;];\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;return\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;div\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;cn\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;absolute h-full w-full inset-0 [mask-size:40px] [mask-repeat:no-repeat] flex items-center justify-center\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;)}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;svg\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;className\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot; z-0 h-full w-full pointer-events-none absolute \\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;width\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;100%\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;height\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;100%\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;viewBox\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0 0 696 316\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;fill\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;none\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;xmlns\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;http://www.w3.org/2000/svg\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;path\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;d\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;$24\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stroke\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;url(#paint0_radial_242_278)\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;strokeOpacity\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0.05\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;strokeWidth\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0.5\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;path\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;paths\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;map\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;((\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;path\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;index\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;)\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;=\u003e\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;motion.path\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;key\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`path-`\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;+\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;index\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;d\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;path\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stroke\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`url(#linearGradient-\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;$${\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;index\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;)`\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;strokeOpacity\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0.4\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;strokeWidth\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0.5\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;motion.path\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;))}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;defs\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;{\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;paths\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;map\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;((\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;path\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#F38CEC\&quot;},\&quot;children\&quot;:\&quot;index\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;)\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;=\u003e\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;(\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;motion.linearGradient\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;id\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`linearGradient-\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;$${\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;index\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;key\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`gradient-\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;$${\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;index\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;initial\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;x1\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;x2\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;y1\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;y2\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;animate\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;x1\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;100%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;],\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;x2\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;95%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;],\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;y1\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;100%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;],\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;y2\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;[\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;`\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;$${\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;93\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;+\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;Math\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;random\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;()\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;*\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;8\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;%`\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;],\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;transition\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;={{\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;duration\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;Math\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;random\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;()\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;*\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;10\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;+\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;10\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;ease\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;easeInOut\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;repeat\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#E35535\&quot;},\&quot;children\&quot;:\&quot;Infinity\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E1\&quot;},\&quot;children\&quot;:\&quot;delay\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;:\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;Math\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;random\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;()\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;*\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;10\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;,\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopColor\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;#18CCFC\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopOpacity\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopColor\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;#18CCFC\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;offset\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;32.5%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopColor\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;#6344F5\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;offset\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;100%\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopColor\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;#AE48FF\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopOpacity\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;motion.linearGradient\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;))}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;radialGradient\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;id\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;paint0_radial_242_278\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;cx\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;cy\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;r\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;1\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;gradientUnits\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;userSpaceOnUse\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;gradientTransform\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;translate(352 34) rotate(90) scale(555 1560.62)\\\&quot;\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;offset\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0.0666667\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopColor\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;var(--neutral-300)\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;offset\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0.243243\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopColor\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;var(--neutral-300)\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;offset\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0.43594\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopColor\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;white\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#EACD61\&quot;},\&quot;children\&quot;:\&quot;stopOpacity\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;0\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;stop\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B78AFF\&quot;},\&quot;children\&quot;:\&quot;radialGradient\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;defs\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;svg\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003c/\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FF\&quot;},\&quot;children\&quot;:\&quot;div\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#69C3FFAA\&quot;},\&quot;children\&quot;:\&quot;\u003e\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;}\&quot;}]]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;);\&quot;}]}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:\&quot; \&quot;}],\&quot;\\n\&quot;,[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;className\&quot;:\&quot;line\&quot;,\&quot;children\&quot;:[[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF955C\&quot;},\&quot;children\&quot;:\&quot;BackgroundBeams\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;.\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#FF738A\&quot;},\&quot;children\&quot;:\&quot;displayName\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;=\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#B5BDCC\&quot;},\&quot;children\&quot;:\&quot; \&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#3CEC85\&quot;},\&quot;children\&quot;:\&quot;\\\&quot;BackgroundBeams\\\&quot;\&quot;}],[\&quot;$\&quot;,\&quot;span\&quot;,null,{\&quot;style\&quot;:{\&quot;color\&quot;:\&quot;#D3D8E160\&quot;},\&quot;children\&quot;:\&quot;;\&quot;}]]}]]}]}],[\&quot;$\&quot;,\&quot;$L16\&quot;,null,{\&quot;value\&quot;:\&quot;$25\&quot;,\&quot;src\&quot;:\&quot;src/registry/default/ui/background-beams.tsx\&quot;,\&quot;event\&quot;:\&quot;$undefined\&quot;,\&quot;className\&quot;:\&quot;absolute right-4 top-4\&quot;}],\&quot;$undefined\&quot;]}]}]}]\n&quot;])self.__next_f.push([1,&quot;&quot;])</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.aceternity.com/cloudinary_bkp/Background_Beams_ilbyga.png" alt="A Frontend Developer&apos;s Take On AI"></div></a></figure><!--kg-card-begin: html--><iframe height="300" style="width: 100%;" scrolling="no" title="Background Beams - aceternity" src="https://codepen.io/buildwithstudio/embed/eYaaBGZ?default-tab=html%2Cresult" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
See the Pen <a href="https://codepen.io/buildwithstudio/pen/eYaaBGZ?ref=buildwithstudio.com">
Background Beams - aceternity</a> by Studio (<a href="https://codepen.io/buildwithstudio?ref=buildwithstudio.com">@buildwithstudio</a>)
on <a href="https://codepen.io/?ref=buildwithstudio.com">CodePen</a>.
</iframe><!--kg-card-end: html--><p></p><p>As you can see from the above example, while basic animations can be easily translated, the process requires providing extensive context. Simply querying the model to &quot;convert this AnimeJS component using Tailwind to vanilla GSAP, HTML and JS&quot; won&#x2019;t yield the instant result you assume it can deliver. You need to detail the specific animations and the desired outcomes for more accurate assistance with plenty of back and forth dialog.</p><p>When it comes to complex animations, ChatGPT can get you about 50-75% of the way there, assuming you have a good understanding of the library you are comfortable using. The model will drop specifics, so you must be able to read and understand the code you&#x2019;re converting. It provides a good starting point and can handle much of the boilerplate and basic setup, but fine-tuning and final adjustments will be necessary. This hands-on involvement is crucial, especially for intricate animations where the nuances of each library&#x2019;s capabilities and syntax come into play. Here&#x2019;s a <a href="https://chatgpt.com/share/54af3871-b94f-400b-86b0-321d24bd7ab5?ref=buildwithstudio.com">link</a> to my conversation with ChatGPT to get the above.</p><p>Using ChatGPT for this purpose is excellent for prototyping and expanding your own knowledge. It allows you to explore different approaches and techniques within a new library, giving you a solid foundation to build upon. However, for client work, it&#x2019;s less ideal. The need to experiment with and refine contextual prompts can be time-consuming. Ensuring the model stays on the right track requires careful guidance and may result in wasted time that could be better spent on direct implementation. Therefore, while ChatGPT is a valuable tool for learning and initial development, it&#x2019;s best supplemented with your expertise for polished, user-ready products.<br></p><h2 id="conclusion">Conclusion</h2><p>GitHub Copilot and ChatGPT are intriguing tools that significantly aid learning, yet they require a serious amount of contextual input and experience to discern whether their suggestions are correct&#x2014;a common theme across various practices beyond engineering. While these tools can propose useful code snippets, they may also recommend poor practices that overlook essential aspects like methodology, brevity, or readability. Experienced developers can recognize and avoid these &quot;code smells&quot; or bad practices, but these tools won&apos;t elevate a junior developer&#x2019;s expertise.</p><p>In many cases, the guidance provided by Copilot and ChatGPT can lead novices astray, wasting valuable time and potentially causing confusion without fostering a deep understanding of the code. For senior developers, these tools can sometimes enhance development speed, but only if the prompts are crafted correctly and contextually. Crafting such prompts can itself be time-consuming and may detract from the overall efficiency.</p><p>While these tools can serve as a helpful pair programmer, particularly when a senior developer is unavailable, they have limitations. They seem to handle components under 100 lines of code well, but for more complex tasks, they often miss critical details, necessitating frequent corrections and diminishing their utility. Despite these shortcomings, these tools can still certainly be enjoyable to use. Even when they suggest flawed or suboptimal code, they sometimes introduce new ideas or approaches that enhance my technical understanding of a library or language. Through practice, I&apos;ve learned when I should seek their assistance and when to proceed independently.</p><p>This is an ongoing conversation and I&#x2019;d love to hear your thoughts as the tech advances. Feel free to reach me at <a href="mailto:chris@buildwithstudio.com">chris@buildwithstudio.com</a></p><p><em>Written by Chris Tough, a frontend lead at Studio, this post summarizes the state of AI platforms as reviewed by their impact and usefulness for frontend developers as of July 2024. AI is changing quickly, and if you&apos;re looking for the latest insight, subscribe to Studio Bytes or contact us.</em></p>]]></content:encoded></item><item><title><![CDATA[A Deepdive on Caching Strategies using Django Rest Framework]]></title><description><![CDATA[Studio's strategies for utilizing caching as a way to speed up queries and save resources on the RDBMS server.]]></description><link>https://buildwithstudio.com/knowledge/a-deepdive-on-caching-strategies-using-django-rest-framework/</link><guid isPermaLink="false">668444b0857119000135a158</guid><category><![CDATA[Engineering]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Tue, 02 Jul 2024 18:32:56 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/07/Engineering-2.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/07/Engineering-2.png" alt="A Deepdive on Caching Strategies using Django Rest Framework"><p>Given the volume of website traffic to many sites today, you may find yourself needing either a better or faster RDBMS server earlier than expected. As an alternative, consider caching as a way to speed up queries and save resources on the RDBMS server. Below, we&#x2019;ll dig into a few strategies we utilize when we have a need for caching, especially within the context of using Django Rest Framework rather than vanilla Django.</p><h2 id="reasons-for-caching">Reasons for Caching</h2><h3 id="faster-response-times">Faster response times</h3><p>By using smart caching strategies, you can reduce your response times and enhance the overall experience for the end user.</p><h3 id="load-reduction">Load reduction</h3><p>Caching saves not only database resources, but can only save precious compute time on your backend servers - like saving responses in serialized form. This load reduction means you can handle more traffic with fewer resources, which can lead to cost reductions especially on cloud platforms.</p><h3 id="prerequisites">Prerequisites</h3><p>Let&#x2019;s look at an example, assuming some familiarity with both Django and Django Rest Framework and the current (at publish) version of Django 4.2 (LTS) and DRF 3.14.0. Django&#x2019;s caching framework is a nice abstraction so no matter the backend you use, the following example will still work and be relevant. Let&#x2019;s use Redis as our cache backend. </p><p>Here is the setup used:</p><pre><code class="language-python">CACHES = {
        &quot;default&quot;: {
            &quot;BACKEND&quot;: &quot;django.core.cache.backends.redis.RedisCache&quot;,
            &quot;LOCATION&quot;: &quot;redis://127.0.0.1:6379&quot;,
            }
        }

</code></pre><p>Nothing fancy, just the default client pointing to a local instance.</p><h2 id="the-project">The Project</h2><p>Now let&#x2019;s imagine our site is a toy blog project, which is interesting given a mostly read-only data experience (aside from comments) which makes it an easy candidate for caching. Admittedly queries are simplistic enough that you likely wouldn&#x2019;t need any caching in actuality, but let&#x2019;s proceed. </p><p>Assume the following simple implementation as our base:</p><pre><code class="language-python">class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    author = models.ForeignKey(User, on_delete=models.CASCADE, related_name=&quot;posts&quot;)
    date_added = models.DateTimeField(auto_now_add=True)
    likes = models.ManyToManyField(User, related_name=&quot;liked&quot;, blank=True)

    def __str__(self):
        return self.title

</code></pre><p>And the assorted serializers:</p><pre><code class="language-python">class ListPostSerializer(serializers.ModelSerializer):
    likes_count = serializers.SerializerMethodField()

    class Meta:
        model = models.Post
        fields = [&quot;id&quot;, &quot;title&quot;, &quot;author&quot;, &quot;date_added&quot;, &quot;likes_count&quot;]

    def get_likes_count(self, obj):
        return obj.likes.count()

class RetrievePostSerializer(ListPostSerializer):
    class Meta:
        model = models.Post
        fields = ListPostSerializer.Meta.fields + [&quot;content&quot;]

</code></pre><h2 id="django-caching-strategies">Django Caching Strategies</h2><p>The per-view cache that comes with Django vanilla can be made to work with DRF&apos;s own apiview/viewsets using method_decorator from django.utils.decorator. This is documented <a href="https://www.django-rest-framework.org/api-guide/caching/?ref=buildwithstudio.com">here</a> for reference. The biggest problem we have had with this strategy is that as far as we know, there is no simple way to invalidate the cache. Sure, you can specify a cache-key prefix but there is no low level API to wild card delete cache entries. Because most of our data isn&apos;t cache-able on a time basis and invalidation is determined programmatically, we find ourselves in need of another caching solution.</p><h2 id="the-low-level-api">The Low Level API</h2><p>Most of the time for our project use cases, the high level caching strategies from Django are not an ideal solution. Fortunately, Django provides access to its so-called low level API with a basic API as well as a few other more specialized APIs that we&#x2019;ll get back to:</p><pre><code class="language-python">from django.core.cache import cache

cache.set(key, value, timeout=DEFAULT_TIMEOUT, version=None)
cache.get(key, default=None, version=None)
cache.delete(key, version=None)

</code></pre><p>See the <a href="https://docs.djangoproject.com/en/5.0/topics/cache/?ref=buildwithstudio.com#the-low-level-cache-api">official documentation</a> for a detailed API explanation.</p><p>The key is a string as expected and the value is any Python object that can be picked (most of them). Armed with this basic API, we now can devise new caching strategies.</p><h2 id="caching-single-objects">Caching Single Objects</h2><p>The likes count is simple to cache, as it doesn&#x2019;t need to be updated in realtime so a simple timeout of 10 minutes for invalidation does the trick. It saves us a possible expensive count query on both the list and retrieve endpoints. This can have significant impact - especially on the listing endpoints if people <em>really</em> like your content.</p><pre><code class="language-python">def get_post_likes_count(post):
    cache_key = f&quot;post-likes-count-{post.id}&quot;
    data = cache.get(cache_key)

    if not data:
        data = post.likes.count()
        cache.set(key=cache_key, value=data, timeout=600)

    return data

</code></pre><p>And our serializer becomes:</p><pre><code class="language-python"># &lt;snip&gt;
def get_likes_count(self, obj):
	return get_post_likes_count(obj)

</code></pre><h2 id="retrieving-multiple-objects-from-cache">Retrieving Multiple Objects from Cache</h2><p>All of this is great, but we can do better. Starting with the list endpoint. Currently we end up with many cache calls which in itself is not a big deal, but we know our cache backend (redis) supports a get_many primitive. Turns out, django low level cache also exposes it.</p><p>The problem is that right now, we only know the key (the post id) once in the serializer, which is too late to do a batching call. We must move the logic a bit earlier, in the view implementation.</p><p>Here is the viewset&apos;s list implementation:</p><pre><code class="language-python">def list(self, request, *args, **kwargs):
	page = self.paginate_queryset(self.get_queryset())
	likes = get_posts_likes_count(page)

	context = self.get_serializer_context()
	context.update({&quot;likes&quot;: likes})
	serializer = self.get_serializer(page, many=True, context=context)

	return self.get_paginated_response(serializer.data)

</code></pre><p>By doing the pagination early, we ensure that our full queryset is evaluated only once, avoiding any unwanted queries. We then use that list to get a mapping of post IDs to likes count which is fed to our previous serializer through the context.</p><p>Let&apos;s get into the actual fetching and mapping implementation:</p><pre><code class="language-python">def get_posts_likes_count(posts):
    cache_keys = {f&quot;post-likes-count-{p.id}&quot;: p.id for p in posts}
    data = cache.get_many(cache_keys.keys())

    data = {cache_keys[k]: v for k, v in data.items()}

    if len(data) != len(posts):
        missings = [p for p in posts if p.id not in data]
        for post in missings:
            data[post.id] = get_post_likes_count(post)

    return data

</code></pre><p>The implementation is pretty simple, we lookup all the keys using django&apos;s get_many function which saves many round trips. Then comes the logic bit to deal with caches missed. Because we might get partial cache misses, we must actually go over the full initial list and individually fetch the missing ones.</p><p>On to the last piece of the puzzle: the serializer modifications to read from our context provided mapping. This last part is pretty simple:</p><pre><code class="language-python"># &lt;snip&gt;
def get_likes_count(self, obj):
    if &quot;likes&quot; in self.context:
        return self.context[&quot;likes&quot;][obj.id]
    else:
        return get_post_likes_count(obj)

</code></pre><p>Note that we still fall back to the get_post_likes_count() fetching function to keep this serializer usable in others context (the retrieve case, for example).</p><p>And there you have it, list endpoint lookup with one SQL query and one cache lookup.</p><h2 id="caching-serialized-objects">Caching Serialized Objects</h2><p>A maybe lesser known benefit of using caching in django is to save CPU time on the actual backend server. DRF&apos;s serializer are known to be bit a slow, some more than others like the GeoPoint serializers, for example. So when possible, we have found great speed and cpu usage benefits by caching the serialized form of the response. Implementation is trivial and left as an exercise for you.</p><h2 id="bonus-double-caching-trick">Bonus: Double Caching Trick</h2><p>One final bonus idea dubbed &#x2018;double caching,&#x2019; is to store the result of the caching on the object instance which takes advantage of the fact that they are stateful during serialization. This is only useful in the rare occurrence that you need access twice to the same data to produce different serialized fields. For instance, perhaps you need to serialize the full list of comments of a blog post, but also have the latest one serialized to its own top level field.</p><p>Here is a possible implementation for this:</p><pre><code class="language-python">def get_post_comments(post):
    cache_key = f&quot;post-comments-{post.id}&quot;

    if not hasattr(post, &quot;_post_comments_cache&quot;):
        data = cache.get(cache_key)

        if not data:
            data = list(post.comments.all())
            cache.set(key=cache_key, value=data, timeout=0)

        post._post_comments_cache = data

    return post._post_comments_cache

</code></pre><p>As you can see, we first check if a specially chosen attribute exists on the obj and if it does, it indicates that the caching function has already been called and we just need to return it. Otherwise, it means we are first and we do the usual caching dance.</p><p>The serializer part (a bit contrived admittedly) looks like this:</p><pre><code class="language-python">#&lt;snip&gt;
def get_first_comment(self, obj):
  comments = get_post_comments(obj)
  return CommentSerializer(comments[0]).data if comments else None

def get_comments(self, obj):
  return CommentSerializer(get_post_comments(obj), many=True).data

</code></pre><p>This will only hit the cache or database depending if it&apos;s a cache miss, once during the object serialization.</p><hr><p>We have seen a variety of caching strategies geared toward API use, using Django&apos;s low level cache. There is a famous saying by Phil Karlton that goes &quot;There are only two hard things in Computer Science: cache invalidation and naming things.&quot; Stay tuned - we may next dig into that invalidation chapter! </p><hr><p>Our team of backend developers and technical architects can help build a robust, scalable, and efficient backend for your project. Contact Studio today.</p>]]></content:encoded></item><item><title><![CDATA[How to Optimize Backend Services]]></title><description><![CDATA[Studio's guide to making strategic use of resources using tools like celery, thread pools, and process pools.]]></description><link>https://buildwithstudio.com/knowledge/optimizing-backend/</link><guid isPermaLink="false">667f04b8857119000135a102</guid><category><![CDATA[Engineering]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Fri, 28 Jun 2024 19:46:00 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/07/Engineering-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/07/Engineering-1.png" alt="How to Optimize Backend Services"><p>At Studio, we make strategic use of resources to ensure our backend services remain reliable while also being efficient. By optimizing resource usage through techniques like parallel processing, we deliver responsive applications that enhance user experience and maximize performance. Utilizing tools like Celery for distributed task management, process pools for CPU-intensive operations, and thread pools for I/O-bound tasks, ensure our applications can handle workloads efficiently.</p><p>Parallelizing task execution is important for several reasons. It improves performance and efficiency, making the most of available resources. It allows our applications to handle larger workloads while remaining responsive. Overall, It increases throughput by processing multiple tasks at once.</p><p>Given the impact of parallel processing, it&#x2019;s important to get the most out of the implementation. Choosing the right method will ensure efficient use of resources and minimize processing time. Below, we will explore three popular solutions: Celery tasks, Python process pools and thread pools. </p><h2 id="celery-tasks">Celery Tasks</h2><p>Celery is a distributed task queue that allows you to run tasks asynchronously. It is particularly useful for tasks that take a long time to complete, such as sending emails, processing images, or running complex calculations. Celery can distribute tasks across multiple worker nodes, making it highly scalable and well suited for on demand event based tasks. We favor Celery in most situations because of its reliability. The celery task queue is stored on disk so even in the case of an unhandled error the task will be picked up after restart.</p><p>Social media platforms use Celery to handle the distribution of notifications. When a user performs an action that triggers a notification, a Celery task is created to process and send the notification asynchronously. This ensures that the main application remains responsive and can handle other user requests without delay.</p><h2 id="process-pool">Process Pool</h2><p>A process pool is a collection of worker processes that can execute tasks in parallel. This is useful for CPU-bound tasks that require heavy computation, as it can leverage multiple CPU cores. Process pools are tailored to operations like complex mathematical calculations, simulations, and encryption.</p><p>Financial institutions use multiprocessing to handle complex calculations and data analysis. By using process pools, they can process vast amounts of financial data in parallel, ensuring timely delivery of critical information to their users.</p><h2 id="thread-pool">Thread Pool</h2><p>A thread pool is a collection of worker threads that can execute tasks concurrently. Threads are lighter than processes, allowing for more efficient use of system resources. This is primarily applicable when the CPU&apos;s computational capacity is not the primary focus. Generally thread pools are most useful for I/O-bound tasks, such as reading from or writing to a database or making network requests.</p><p>E-commerce platforms and job search services often rely on web scraping, a task inherently bound by input/output operations due to the latency involved. With threading, web scraping can be executed concurrently, enabling multiple requests to be sent simultaneously without waiting for each to complete before initiating the next. Given that these threads handle only data retrieval and not processing, a lightweight threading approach suffices, eliminating the need for dedicated processes.</p><hr><p>Below are some examples of when each solution excels, compared to what execution looks like when used otherwise. Note, the following examples try to match the number of available celery works, processes, and threads.</p><h2 id="scenario-1">Scenario 1</h2><p>Lets assume we have an API call that requires some processing but we don&#x2019;t need to wait on it to complete to return the request. We don&#x2019;t have a ton of processing to do but we want to be as responsive as possible so we leverage parallel processing.</p><h3 id="setup">Setup</h3><pre><code class="language-python">import time

# Simulate some work
def my_function():
    time.sleep(2)
    return &quot;Function result&quot;
</code></pre><h3 id="celery">Celery</h3><pre><code class="language-python">from post_request_task.task import shared_task
from django.utils import timezone

@shared_task
def task():
    my_function()
    
start = timezone.now()
task.apply_async()
end = timezone.now()
total_time = end - start
print(f&quot;Time taken to execute: {total_time.total_seconds()} seconds&quot;)

&gt;&gt;&gt; Time taken to start task: 0.070198 seconds
&gt;&gt;&gt; task completes in 2.004567665979266s # (from celery logs)

</code></pre><h3 id="thread-pool-1">Thread Pool</h3><pre><code class="language-python">from django.utils import timezone
import concurrent.futures

start = timezone.now()
with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
    future = executor.submit(my_function)
    result = future.result()

end = timezone.now()
total_time = end - start
print(f&quot;Total time taken: {total_time.total_seconds()} seconds&quot;)

&gt;&gt;&gt; Total time taken: 2.006199 seconds
</code></pre><h3 id="process-pool-1">Process Pool</h3><pre><code class="language-python">from datetime import datetime
import concurrent.futures

start = datetime.now()

with concurrent.futures.ProcessPoolExecutor(max_workers=1) as executor:
    future = executor.submit(my_function)
    result = future.result()

end = datetime.now()
total_time = end - start

print(f&quot;Total time taken: {total_time.total_seconds()} seconds&quot;)

&gt;&gt;&gt; Total time taken: 2.064775 seconds

</code></pre><h2 id="scenario-2">Scenario 2</h2><p>Let&apos;s assume we have the same processing to handle, but this time we need to run multiple instances at once. It&#x2019;s light weight so thread pools should have the upper hand.</p><h3 id="celery-1">Celery</h3><pre><code class="language-python">for _ in range(100):
    task.apply_async()

&gt;&gt;&gt; Time taken to start tasks: 16 seconds # (from celerey log) 
&gt;&gt;&gt; Total time taken: 26 seconds
</code></pre><h3 id="thread-pool-2">Thread Pool</h3><pre><code class="language-python">from django.utils import timezone
import concurrent.futures
start = timezone.now()

# Execute my_function 100 times using ThreadPoolExecutor
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
    futures = [executor.submit(my_function) for _ in range(100)]
    results = [future.result() for future in futures]  # Collect results if needed

end = timezone.now()
total_time = end - start

print(f&quot;Total time taken for 100 executions: {total_time.total_seconds()} seconds&quot;)
&gt;&gt;&gt; Total time taken for 100 executions: 2.005628 seconds
</code></pre><h3 id="process-pool-2">Process Pool</h3><pre><code class="language-python">from datetime import datetime
import concurrent.futures

start = datetime.now()

with concurrent.futures.ProcessPoolExecutor(max_workers=10) as executor:
    futures = [executor.submit(my_function) for _ in range(100)]
    result = [future.result() for future in futures]

end = datetime.now()
total_time = end - start

print(f&quot;Total time taken: {total_time.total_seconds()} seconds&quot;)

&gt;&gt;&gt; Total time taken: 20.182926 seconds
</code></pre><h2 id="scenario-3">Scenario 3</h2><p>This time lets use a CPU bound task to highlight the efficiency of process pools.</p><h3 id="setup-1">Setup</h3><pre><code class="language-python">import math
# Simulate some CPU bound work
def calculate_factorial(n):
    for _ in range(50):
        math.factorial(n)
    return 
</code></pre><h3 id="celery-2">Celery</h3><pre><code class="language-python">
from post_request_task.task import shared_task
from django.utils import timezone

@shared_task
def calculate_factorial_task(n):
    math.factorial(n)
    
start_cpu_time = resource.getrusage(resource.RUSAGE_SELF).ru_utime
start_real = timezone.now()

for _ in range(20):
    calculate_factorial_task.apply_async((100000,))

end_cpu_time = resource.getrusage(resource.RUSAGE_SELF).ru_utime

# Calculate total CPU time
total_time = end_cpu_time - start_cpu_time
end_real = timezone.now()
total_real_time = end_real - start_real

print(f&quot;Total CPU time taken by ThreadPoolExecutor: {total_time} seconds&quot;)
print(f&quot;Total real time taken by ThreadPoolExecutor: {total_real_time.total_seconds()} seconds&quot;)

&gt;&gt;&gt; CPU time start Celery tasks: 0.01562299999999972 seconds
&gt;&gt;&gt; Real time start Celery tasks: 0.087077 seconds

&gt;&gt;&gt; total time execution 33 seconds
</code></pre><h3 id="thread-pool-3">Thread Pool</h3><pre><code class="language-python">from django.utils import timezone
import resource
import concurrent.futures

start = resource.getrusage(resource.RUSAGE_SELF).ru_utime
start_real = timezone.now()
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
    futures = [executor.submit(calculate_factorial, 100000) for _ in range(20)]
    result = [future.result() for future in futures]

end = resource.getrusage(resource.RUSAGE_SELF).ru_utime
end_real = timezone.now()
total_time = end - start
total_real_time = end_real - start_real

print(f&quot;Total CPU time taken by ThreadPoolExecutor: {total_time} seconds&quot;)
print(f&quot;Total real time taken by ThreadPoolExecutor: {total_real_time.total_seconds()} seconds&quot;)
&gt;&gt;&gt; Total CPU time taken by ThreadPoolExecutor: 150.78055900000004 seconds
&gt;&gt;&gt; Total real time taken by ThreadPoolExecutor: 152.458499 seconds

</code></pre><h3 id="process-pool-3">Process Pool</h3><pre><code class="language-python">from concurrent.futures import ProcessPoolExecutor
from datetime import datetime
import resource

start = resource.getrusage(resource.RUSAGE_CHILDREN).ru_utime
start_real = datetime.now()    
with ProcessPoolExecutor(max_workers=10) as executor:
    futures = [executor.submit(calculate_factorial, 100000) for _ in range(20)]
    result = [future.result() for future in futures]
          
end_real = datetime.now()
end = resource.getrusage(resource.RUSAGE_CHILDREN).ru_utime
total_time = end - start
total_real_time = end_real - start_real

print(f&quot;Total CPU time taken by Process Pool: {total_time} seconds&quot;)
print(f&quot;Total real time taken by Process Pool: {total_real_time.total_seconds()} seconds&quot;)

&gt;&gt;&gt; Total CPU time taken by Process Pool: 218.499442 seconds
&gt;&gt;&gt; Total real time taken by Process Pool: 30.106353 seconds
</code></pre><hr><p>Choosing the right data processing method depends on the nature of the task at hand. By understanding the strengths and limitations of each method, you can select the most appropriate one for your specific use case, ensuring optimal performance and resource utilization. </p><p>Building a digital product? Let Studio&apos;s technical architects guide your product development to best process data and optimize performance. Contact us today.</p>]]></content:encoded></item><item><title><![CDATA[User-Centered Design in Mobile: Crafting Exceptional User Experiences]]></title><description><![CDATA[The success of any mobile application hinges on its ability to meet and exceed user expectations.]]></description><link>https://buildwithstudio.com/knowledge/ucd/</link><guid isPermaLink="false">666aeb8e8571190001359fae</guid><category><![CDATA[Design]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Fri, 14 Jun 2024 13:28:57 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/06/Design-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Design-1.png" alt="User-Centered Design in Mobile: Crafting Exceptional User Experiences"><p>At Studio, we believe that the success of any mobile application hinges on its ability to meet and exceed user expectations. By prioritizing the needs, preferences, and behaviors of users, we build products that are intuitive, engaging, and foster engagement. So what makes User-centered design (UCD) different from standard design processes?</p><h2 id="understanding-user-centered-design">Understanding User-Centered Design</h2><p>User-centered design is an iterative design process that places the user at the center of each stage of development. It involves understanding the user&apos;s needs and designing products that provide meaningful and relevant experiences. This approach contrasts with traditional design methodologies, which often prioritize technical or business requirements over the end-user experience.</p><p>Our designers put themselves in the user&apos;s shoes, considering their challenges, goals, and motivations. This empathetic approach ensures that the end product resonates with users, leading to higher satisfaction and participation.</p><h3 id="1-user-research">1. User Research</h3><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Personas.png" class="kg-image" alt="User-Centered Design in Mobile: Crafting Exceptional User Experiences" loading="lazy" width="2000" height="1181" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/06/Personas.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/06/Personas.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2024/06/Personas.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2024/06/Personas.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Understanding our target audience is the first step in our user-centered design process. Conducting thorough user research helps us identify the characteristics, behaviors, and needs of potential users. Methods such as surveys, interviews, and focus groups provide valuable insights into user preferences and pain points.</p><h3 id="2-usability-and-accessibility">2. Usability and Accessibility</h3><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Usability.png" class="kg-image" alt="User-Centered Design in Mobile: Crafting Exceptional User Experiences" loading="lazy" width="2000" height="1070" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/06/Usability.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/06/Usability.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2024/06/Usability.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2024/06/Usability.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Usability is a critical component of user-centric design. A mobile application must be easy to use, with a clear and intuitive interface that minimizes the learning curve. Key usability principles include:</p><ul><li><strong>Consistency:</strong> Ensuring a consistent layout, design elements, and interactions across the application to prevent user confusion.</li><li><strong>Feedback:</strong> Providing immediate and clear feedback for user actions, such as button presses or form submissions.</li><li><strong>Efficiency:</strong> Designing workflows that minimize the number of steps required to complete a task.</li></ul><p>Accessibility is equally important, ensuring that the application can be used by as many people as possible, including those with disabilities. Adhering to accessibility standards, such as the Web Content Accessibility Guidelines (WCAG), ensures that our app is inclusive. This includes providing text alternatives for non-text content, ensuring sufficient color contrast, and designing for screen reader compatibility.</p><p>View the <a href="https://buildwithstudio.com/portfolio/mustard/?ref=buildwithstudio.com">Mustard case study</a></p><h3 id="3-intuitive-navigation">3. Intuitive Navigation</h3><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Navigation.png" class="kg-image" alt="User-Centered Design in Mobile: Crafting Exceptional User Experiences" loading="lazy" width="2000" height="1070" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/06/Navigation.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/06/Navigation.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2024/06/Navigation.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2024/06/Navigation.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Navigation is a crucial aspect of mobile design, significantly impacting user experience. Users should be able to find what they need quickly and easily, without getting lost in a maze of screens. Best practices for intuitive navigation include:</p><ul><li><strong>Clear Hierarchy:</strong> Organizing content in a logical structure, with the most important information easily accessible.</li><li><strong>Standard Navigation Patterns:</strong> Using familiar navigation patterns, such as bottom navigation bars or hamburger menus, helps users navigate effortlessly.</li><li><strong>Search Functionality:</strong> Including a robust search feature that allows users to quickly find specific content or features.</li></ul><p>View the <a href="https://buildwithstudio.com/portfolio/creatively/?ref=buildwithstudio.com">Creatively case study</a></p><h3 id="4-aesthetic-and-minimalist-design">4. Aesthetic and Minimalist Design</h3><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Minimal.png" class="kg-image" alt="User-Centered Design in Mobile: Crafting Exceptional User Experiences" loading="lazy" width="2000" height="1070" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/06/Minimal.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/06/Minimal.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2024/06/Minimal.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2024/06/Minimal.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Aesthetics play a significant role in user experience. A visually appealing design not only attracts users but also enhances their overall satisfaction. However, aesthetics should not compromise functionality. Minimalist design, which focuses on simplicity and clarity, is often more effective in mobile applications. Key principles of minimalist design include:</p><ul><li><strong>Focus on Content:</strong> Prioritizing content over decorative elements ensures that users can easily access the information they need.</li><li><strong>Whitespace:</strong> Using ample whitespace to create a clean and uncluttered interface.</li><li><strong>Consistent Visual Style:</strong> Maintaining a consistent visual style throughout the app, including colors, fonts, and iconography.</li></ul><h3 id="5-performance-and-responsiveness">5. Performance and Responsiveness</h3><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Responsive.png" class="kg-image" alt="User-Centered Design in Mobile: Crafting Exceptional User Experiences" loading="lazy" width="2000" height="1070" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/06/Responsive.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/06/Responsive.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2024/06/Responsive.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2024/06/Responsive.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Performance is a critical factor in user satisfaction. Mobile applications must load quickly and respond efficiently to user inputs. There are a number of areas design can help with this:</p><ul><li><strong>Optimizing Load Times:</strong> Minimizing the size of assets and using efficient coding practices to reduce load times.</li><li><strong>Responsive Design:</strong> Ensuring that the application performs well across different devices and screen sizes.</li><li><strong>Mobile + Desktop Assets:</strong> Providing mobile-optimized and desktop-optimized assets for loading on each device type. </li><li><strong>Regular Testing:</strong> Continuously testing the app for performance issues and proactively optimizing.</li></ul><h3 id="6-user-feedback-and-iterative-design">6. User Feedback and Iterative Design</h3><figure class="kg-card kg-image-card"><img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Testing.png" class="kg-image" alt="User-Centered Design in Mobile: Crafting Exceptional User Experiences" loading="lazy" width="2000" height="1070" srcset="https://buildwithstudio.com/knowledge/content/images/size/w600/2024/06/Testing.png 600w, https://buildwithstudio.com/knowledge/content/images/size/w1000/2024/06/Testing.png 1000w, https://buildwithstudio.com/knowledge/content/images/size/w1600/2024/06/Testing.png 1600w, https://buildwithstudio.com/knowledge/content/images/size/w2400/2024/06/Testing.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>The process of designing around users is ever evolving. So constantly collecting user feedback is essential for understanding how users interact with the app and identifying areas for improvement. Some of the methods we use to gather this data are:</p><ul><li><strong>In-App Surveys:</strong> Prompting users to provide feedback through short surveys within the app.</li><li><strong>Analytics:</strong> Using analytics tools to track user behavior and identify pain points or drop-off areas.</li><li><strong>User Testing:</strong> Conducting regular user testing sessions to observe how real users interact with the app and gather qualitative insights.</li></ul><p>An iterative design process, where the app is continuously refined based on user feedback, ensures that the final product meets users&apos; needs and expectations. This approach allows us to make incremental improvements and address issues before they become major problems.</p><hr><h2 id="conclusion">Conclusion</h2><p>User-centered design is essential for creating a successful mobile application. Prioritizing the needs and preferences of users enables us to build experiences that are not only functional but also enjoyable and memorable. Through thorough user research, intuitive navigation, aesthetic and minimalist design, and a commitment to usability and accessibility, we create mobile apps that truly resonate with their audience.</p><p>Continuous user feedback and an iterative design process further ensure that our apps evolve to meet changing user needs and preferences, leading to sustained success in the competitive mobile landscape. </p><p>Designing a product? Let our experts help. Contact Studio today. </p>]]></content:encoded></item><item><title><![CDATA[Guide to Building an MVP Shopify App]]></title><description><![CDATA[Checkout Upsell by Studio is the latest Shopify app we’ve released. This guide should serve as a helpful set of tips that we’ve learned from releasing multiple Shopify applications.]]></description><link>https://buildwithstudio.com/knowledge/building-checkout-upsell-by-studio-an-mvp-shopify-app-guide/</link><guid isPermaLink="false">666646a98571190001359f77</guid><category><![CDATA[Product]]></category><category><![CDATA[Guides]]></category><category><![CDATA[Member]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Mon, 10 Jun 2024 00:28:22 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/06/Product.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Product.png" alt="Guide to Building an MVP Shopify App"><p>As a Shopify Plus development partner and the design and development team behind multiple Shopify stores and D2C brands, we occasionally find that the only solution to a partner&#x2019;s specific problem is the development of our own dedicated Shopify application. <a href="https://apps.shopify.com/checkout-upsell-by-studio?ref=buildwithstudio.com">Checkout Upsell by Studio</a> is the latest Shopify app we&#x2019;ve released inspired by a problem our clients are facing. This guide should serve as a helpful set of tips that we&#x2019;ve learned from now releasing multiple applications into the Shopify app ecosystem.</p><h3 id="releasing-your-first-shopify-application-a-quick-note-on-mvp">Releasing your first Shopify application, a quick note on MVP.</h3><p>The technical complexity of any potential app is obviously going to be based on the problem you&#x2019;re solving, and your customer need &#x2013; instead of detailing all of the parameters of what makes a good MVP here, we recommend exploring the <a href="https://buildwithstudio.com/knowledge/#founders">Studio Knowledge founders posts</a> on how to approach your product. In short, when it comes to releasing your app &#x2013; we&#x2019;ll simply say:</p><ul><li><strong>Prioritize speed.</strong> You can and should have a working app version installable into a test store within a day.</li><li><strong>Know your customer.</strong> If you don&#x2019;t already have a customer &#x2013; get one! Don&#x2019;t build your app without some validation from someone who is going to need it.</li><li><strong>Race to review.</strong> Public app review and release can be a slow process. The faster you can get to submission, the better.</li></ul><h3 id="options-for-designing-mvp-shopify-applications">Options for designing MVP Shopify applications.</h3><p>We&#x2019;ve built apps that both operate partially within Shopify, or entirely within Shopify. When designing your app, you should start with some questions that will help you determine the right options for how your app is contained and displayed.</p><ul><li>Do you ever intend to run outside Shopify or integrate other ecommerce platforms?</li><li>Are you pushing for being a prestigious, &#x2018;Built for Shopify&#x2019; app?</li><li>What&#x2019;s your backend architecture and will it work inside Shopify, or does it require more or complex frameworks outside Shopify?</li></ul><p>The answers to these questions will help determine whether your app should be fully hosted in Shopify, load as a frame in Shopify, or require separate mobile apps or web applications for your users.</p><figure class="kg-card kg-image-card"><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfEE-l6YDjykRoHakqp6vunbOGx7mZu5HMBKjkLe9uJ2xOp-KLl36op_moT3q8Cqklvf62k8BPtziKxF1iGojyHLXD0d0n7qxX-tqu03WuSOY9dal2gceaQqarPysIMjmBge9Q0zu87c9KROxnhYdNEfW3V?key=j0vaX8LOtd1V7rvOVP3JTA" class="kg-image" alt="Guide to Building an MVP Shopify App" loading="lazy" width="624" height="379"></figure><p>For the sake of simplicity, if your app <em>can</em> be hosted fully in Shopify, it may make the most sense to get your app out and in the hands of users by prioritizing a Shopify hosted application first. You can fully utilize the <a href="https://polaris.shopify.com/?ref=buildwithstudio.com">Shopify Polaris design framework</a> for your application UI, and then consider scaling into your own web application SaaS model after early market success.</p><h3 id="options-for-developing-mvp-shopify-applications">Options for developing MVP Shopify applications.</h3><p>While you can use Shopify to display your application to users, you&#x2019;ll still want to set up the backend database and API connections that power your application. Similarly as with design, your MVP can benefit from using tools like <a href="https://gadget.dev/?ref=buildwithstudio.com">Gadget.dev</a>, that can empower your setup with a dedicated Shopify plugin serverless framework.</p><figure class="kg-card kg-image-card"><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcQdlvKCihDVQtPbzzFTkDHf02lVGPTvA794f45IJTUvR2-vFzyGe-nvh6mUH5tkp_AECC7xvygoMEudv4X8NyVcsfTHMi8jTH1D69uIfxgtaIhdDuR_YmgUmE5ZJumEKU7BV-v4Blgm8Y328OtvpT9pFKA?key=j0vaX8LOtd1V7rvOVP3JTA" class="kg-image" alt="Guide to Building an MVP Shopify App" loading="lazy" width="624" height="413"></figure><p>These tools can also empower non-technical team members to have a greater role in the application management, or simply save time by enabling things like API scoped requests based specifically on Shopify&#x2019;s APIs.</p><p>Ultimately, your development setup should keep some scale in mind, but you shouldn&#x2019;t over-engineer your infrastructure or your features. Keep in mind your customer needs, and only build the data models that make sense for your MVP. Release, and iterate. Rebuilding in this case isn&#x2019;t a problem, but an indicator of success &#x2013; if you&#x2019;ve made it far enough to need a rebuild, you&#x2019;re doing great!</p><h3 id="tips-to-keep-in-mind-when-developing-mvp-shopify-applications">Tips to keep in mind when developing MVP Shopify applications.</h3><p>In our experience, getting your Shopify app out on to the market can be a fast, simple process &#x2013; but occasionally, you might get tossed a curveball. If we were to distill what we&#x2019;ve learned from multiple apps, we&#x2019;d make sure to keep the following in mind:</p><ul><li>Releasing a sales channel application is a slower, more detailed process of both development and submission/review, so plan accordingly.</li><li>Make sure to not over-request development scopes beyond what your app needs, and this will slow your review and approval.</li><li>Plan each review submission to take anywhere from 2 to 10 days. (Painful, we know!) To that end, while perfection is the enemy of progress, don&#x2019;t submit if you don&#x2019;t think things are buttoned up. You can end up spending 2x of your development time in submission waiting cycles on a fast build, so only submit if you&#x2019;re really ready to release.</li><li>The process of collecting your submission collateral (release notes, images, benefits, copy, and so on) &#x2013; takes about a day to pull together a nice package to put your app on even footing with the rest of the marketplace, so keep that in mind.</li></ul><p>If you&#x2019;d like to learn about what we built in our Shopify MVP application, read our post <a href="https://buildwithstudio.com/knowledge/">introducing Checkout Upsell by Studio</a>, or check out our video shopping sales channel app, <a href="https://refer.shop/?ref=buildwithstudio.com">Refer</a>.</p><p>If you need help with Shopify, Shopify Plus or Shopify app development, feel free to <a href="https://buildwithstudio.com/contact/?ref=buildwithstudio.com">reach out to Studio</a> now.</p>]]></content:encoded></item><item><title><![CDATA[Working with MatchedGeometryEffect]]></title><description><![CDATA[In SwiftUI, MatchedGeometryEffect is a powerful modifier that allows you to create smooth, seamless animations. Learn more.]]></description><link>https://buildwithstudio.com/knowledge/working-with-matchedgeometryeffect/</link><guid isPermaLink="false">666349048571190001359f66</guid><category><![CDATA[Engineering]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Fri, 07 Jun 2024 17:54:14 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/06/Engineering.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/06/Engineering.png" alt="Working with MatchedGeometryEffect"><p>In SwiftUI, MatchedGeometryEffect is a powerful modifier that allows you to create smooth, seamless animations when transitioning views between different states. It is particularly useful for animating changes in view hierarchy, position, size, and shape.</p><p>To use MatchedGeometryEffect, you need a Namespace. A Namespace is created using the @Namespace property wrapper, and it ensures that the identifier is unique within a specific scope.</p><pre><code class="language-swift">	@Namespace var animation

</code></pre><h2 id="diving-in">Diving In</h2><p>To start, we&apos;re going to animate a text and an icon from one view to another:</p><pre><code class="language-swift">
struct ContentView: View {

	@Namespace var animation
	@State var showDetails = false

    var body: some View {
			ZStack {
				if !showDetails {
					VStack {
						Image(systemName: &quot;globe&quot;)
							.imageScale(.large)
							.foregroundStyle(.tint)
							.matchedGeometryEffect(id: &quot;globe&quot;, in: animation)
						Text(&quot;Hello, world!&quot;)
							.font(.title)
							.frame(width: 150, height: 50)
							.matchedGeometryEffect(id: &quot;text&quot;, in: animation)

					}
					.padding()
				} else {
					VStack {
						HStack {
							Image(systemName: &quot;globe&quot;)
								.imageScale(.large)
								.foregroundStyle(.tint)
								.matchedGeometryEffect(id: &quot;globe&quot;, in: animation)
							Text(&quot;Hello, world!&quot;)
								.font(.title)
								.frame(width: 150, height: 50)
								.matchedGeometryEffect(id: &quot;text&quot;, in: animation)
						}
						Text(&quot;Long description to display when showing the details of Hello World! &quot;)

					}
				}
			}
			.onTapGesture {
				withAnimation {
					showDetails.toggle()
				}
			}
    }
}

</code></pre><p>To match one element to another you need to use the same ID on both the first view and the second. As you can see we use fixed size here for the Text Element. We could use autolayout for this but it results in some janky animation with truncated text, which we want to avoid. And using two different fonts requires using <code>Animatable</code> which we&apos;ll save for another time. </p><p>We can also add a background to our view and animate it:</p><pre><code class="language-swift">struct ContentView: View {

	@Namespace var animation
	@State var showDetails = false

	var body: some View {
		ZStack {
			if !showDetails {
				VStack {
					Image(systemName: &quot;globe&quot;)
						.imageScale(.large)
						.foregroundStyle(.tint)
						.matchedGeometryEffect(id: &quot;globe&quot;, in: animation)
					Text(&quot;Hello, world!&quot;)
						.font(.title)
						.frame(width: 150, height: 50)
						.matchedGeometryEffect(id: &quot;text&quot;, in: animation)
				}
				.padding()
				.background {
					Rectangle()
						.fill(.pink)
						.matchedGeometryEffect(id: &quot;background&quot;, in: animation)
				}
			} else {
				VStack {
					HStack {
						Image(systemName: &quot;globe&quot;)
							.imageScale(.large)
							.foregroundStyle(.tint)
							.matchedGeometryEffect(id: &quot;globe&quot;, in: animation)
						Text(&quot;Hello, world!&quot;)
							.font(.title)
							.frame(width: 150, height: 50)
							.matchedGeometryEffect(id: &quot;text&quot;, in: animation)
					}
					.padding()
					.background {
						Rectangle()
							.fill(.pink)
							.matchedGeometryEffect(id: &quot;background&quot;, in: animation)
					}
					Text(&quot;Long description to display when showing the details of Hello World! &quot;)

				}
			}
		}
		.onTapGesture {
			withAnimation {
				showDetails.toggle()
			}
		}
	}
}

</code></pre><p>If we want to animate the container of the view, then it&apos;s important to note that ZStack, VStack and HStack don&apos;t work well with matchedGeometryEffect, so we would need to first apply a modifier to the background of the view. As you can see it smoothly transitions between the small and large states.</p><h2 id="in-review">In Review</h2><p>MatchedGeometryEffect is a versatile and powerful tool for creating visually appealing animations. It can be particularly effective for complex view transitions and interactive UI elements, providing a smooth and intuitive user experience.</p><p>If you have questions on this modifier or if you need support building your product, contact Studio today. </p>]]></content:encoded></item><item><title><![CDATA[How to Make Lottie Animations: A Complete 4-Part Guide]]></title><description><![CDATA[Welcome to our 4-part Studio Design Guide on how to make Lottie animations.]]></description><link>https://buildwithstudio.com/knowledge/how-to-make-lottie-animations-guide/</link><guid isPermaLink="false">658ec5008571190001359ecc</guid><category><![CDATA[Design]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Fri, 29 Dec 2023 13:58:45 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/01/Lottie-Files.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/01/Lottie-Files.png" alt="How to Make Lottie Animations: A Complete 4-Part Guide"><p>Welcome to our 4-part Studio Design Guide on how to make Lottie animations. Lottie, developed by Airbnb, is an open-source tool revolutionizing animation with real-time rendering of vector animations. Ahead, we&#x2019;ll introduce you to Lottie files and guide you through how to use the tool to make complex animations. </p><p>This comprehensive guide equips you with the skills to master how to use Lottie and bring your animations to life, making it a valuable resource for animation enthusiasts and businesses seeking captivating animations. Dive into our guide to unlock the full potential of Lottie animations and embark on a creative journey.</p><h2 id="part-1-understanding-lottie-animations">Part 1: Understanding Lottie Animations</h2><p>Here in part 1, we will discuss the benefits of using Lottiefiles for your animations.</p><p>Lottie allows our design team and developers to create complex animations that are lightweight and easy to implement. We often create animations within the projects we work on. Some ranging from simple loaders to more complex UX animations. With Lottie, animations can be exported as JSON files, making them easily shareable across different platforms and devices.</p><p>To understand how to use Lottie, it&apos;s important to have a basic understanding of how vector animations work. Vector animations are made up of mathematical equations that define each element of an animation, like the position, size, and color of shapes. Unlike raster animations, which are made up of individual pixels, vector animations can be scaled up or down without losing quality.</p><p>Lottie takes vector animations a step further by allowing them to be easily integrated into mobile and web applications. This is because Lottie animations are rendered natively on the device, rather than being pre-rendered and played back as a video. This means that Lottie animations can be controlled and manipulated in real time, giving designers and developers more control over how animations are displayed and interacted with.</p><p>Now you have an understanding of LottieFiles and its uses, we will continue to talk about vector file preparation for your animation in part 2.</p><h2 id="part-2-vector-file-preparation">Part 2: Vector File Preparation</h2><p>Ahead, we&#x2019;re guiding you through how to prepare your files as vectors ready to import to After Effects for creating Lottie animations.</p><p>Here we will be using Figma as an example for creating the vector file. But you can use any software that works with vectors like Adobe Illustrator.</p><p>To setup a Figma file to support the Lottie plugin on After Effects, follow the steps below:</p><ol><li>Open your Figma file and navigate to the page or artboard that contains the vector graphic you want to animate.<br></li><li>Select the vector graphic and click on the Export button in the properties panel on the right.</li><li>In the Export dialog box that appears, choose &quot;SVG&quot; as the format and select the folder where you want to save the exported file.</li></ol><p>Now you have an understanding of vector file preparation, we will continue to talk about importing and animating in After Effects.</p><h2 id="part-3-importing-to-after-effects-to-create-lottie-animations">Part 3: Importing to After Effects to Create Lottie Animations</h2><p>After Effects is a popular software used for creating animations, motion graphics, and visual effects. One of the benefits of using After Effects is the ability to export animations to the Lottie format, which is a lightweight and scalable animation format that can be easily integrated into web and mobile apps. To create Lottie animations in After Effects, you can follow these steps:</p><ol><li>Create a new composition in After Effects and import your vector files.</li><li>Use keyframes to animate the properties of your design assets such as position, rotation, and scale.</li><li>Preview your animation and make any necessary adjustments.</li><li>Install the Lottie plugin for After Effects (if you haven&apos;t already) and use it to export your animation as a JSON file.</li></ol><p>Let&#x2019;s continue learning about how to make a Lottie animation by discussing rendering and exporting in part 4.</p><h2 id="part-4-rendering-and-exporting-a-lottie-animation">Part 4: Rendering and Exporting a Lottie Animation</h2><p>To render and export Lottie animation files in After Effects, you can use the LottieFiles plugin.</p><ol><li>First, select the composition in After Effects that you want to export as a Lottie file. Then, go to the File menu and select Window &gt; Extensions &gt; LottieFiles.</li><li>In the LottieFiles panel, select the correct composition if you have more than one in your project. You can choose the settings for your Lottie file, such as the resolution, frame rate, and compression.</li><li>Once you&apos;re satisfied with the settings, click Render to export your Lottie file. You will them have the option to download your animation as a JSON file. Your Lottie animation will also be stored in your online account that was created when downloaded the plugin. You can then use the Lottie file in your web or mobile projects.</li></ol><p>Now you&#x2019;re ready to apply what you learned about how to make Lottie animations to create your own - it&#x2019;s time to get creative!</p><p>Need some more inspiration for your Lottie animations? Check out one we made earlier! Download for free and try it out: <a href="https://lottiefiles.com/animations/bouncing-baseball-loader-hGbGbAMYEc?ref=buildwithstudio.com">https://lottiefiles.com/animations/bouncing-baseball-loader</a></p>]]></content:encoded></item><item><title><![CDATA[How To Use Figma: A Complete Tutorial in 5 Parts]]></title><description><![CDATA[Welcome to Studio's comprehensive tutorial on harnessing the power of Figma for creating and implementing dynamic design systems.]]></description><link>https://buildwithstudio.com/knowledge/how-to-use-figma-guide/</link><guid isPermaLink="false">658ec66f8571190001359eeb</guid><category><![CDATA[Design]]></category><category><![CDATA[Guides]]></category><dc:creator><![CDATA[Studio]]></dc:creator><pubDate>Fri, 29 Dec 2023 13:38:48 GMT</pubDate><media:content url="https://buildwithstudio.com/knowledge/content/images/2024/01/Design-System-Figma.png" medium="image"/><content:encoded><![CDATA[<img src="https://buildwithstudio.com/knowledge/content/images/2024/01/Design-System-Figma.png" alt="How To Use Figma: A Complete Tutorial in 5 Parts"><p>Welcome to Studio&apos;s comprehensive tutorial on harnessing the power of Figma for creating and implementing dynamic design systems. Figma, a game-changer in the world of design, offers unparalleled collaboration, vector editing, and prototyping capabilities, making it an indispensable tool for designers and teams striving for high-quality and efficient design work. </p><p>In this five-part Studio Design Guide, we&apos;ll delve into everything regarding how to use Figma, from understanding its fundamentals to mastering its advanced features. By the end of this Figma tutorial, you&#x2019;ll be equipped to leverage the powerful tool for your design projects with maximum proficiency.</p><h2 id="part-1-understanding-how-to-use-figma">Part 1: Understanding How to Use Figma</h2><p>In part 1, we will discuss the benefits of using Figma and give an introduction to design systems.</p><p>We are a small design team working on multiple projects. To be efficient and to easily collaborate, we recommend using Figma over other design software. It&#x2019;s an essential tool for designers and teams who want to create high-quality designs and collaborate effectively. Its real-time collaboration, vector editing, online autosaving, and prototyping capabilities make it an extremely flexible tool.</p><p>When starting a design project, the goal for us is to create a cohesive and water tight design system that translates through all elements of your work. This usually starts with a brand guide (logo, font, colors etc.) to establish how the project will look. A component library will be formed from that brand guide to transfer the brand elements to usable objects for building your project. This level of cross pollination is very important for us to execute well and stay organized.</p><p>Design systems are a collection of reusable components, guidelines, and assets that ensure consistency and efficiency across all design projects. Figma is an excellent tool for creating design systems because it allows designers to easily create and organize design components in a shared library.</p><p>How to use Figma to create a design system: Designers create a component library where they can store all the necessary design elements, such as colors, typography, buttons, and icons. This library can be shared with the entire team, ensuring that everyone has access to the same design assets.</p><p>By knowing how to use Figma for this purpose, we can streamline our design process and ensure consistency and efficiency across all design projects. This is also useful when handing over files to clients, as you can create copies and set access permissions.</p><p>Now you have an understanding of why we use design systems in Figma. We will continue to talk about understanding your design systems needs and share additional Figma tutorials in part 2.</p><h2 id="part-2-understanding-your-design-system-needs">Part 2: Understanding Your Design System Needs</h2><p>In part 2 of this Figma tutorial, we will be guiding you through key considerations when creating a design system.</p><p>Design systems are a collection of reusable components, guidelines, and assets that ensure consistency and efficiency across all design projects. Designers that understand how to use Figma for creating design systems can easily create and organize design components in a shared library.</p><p>To create a design system in Figma, designers create a component library where they can store all the necessary design elements, such as colors, typography, buttons, and icons. This library can be shared with the entire team, ensuring that everyone has access to the same design assets.</p><p>Design systems are an essential aspect of any organization that values consistency, efficiency, and scalability in its design work. They provide a framework for creating, managing, and presenting design assets, guidelines, and principles that define a brand&apos;s visual language and user experience.</p><p>However, creating a design system with some Figma how-to knowledge requires a significant investment of time, resources, and expertise. Therefore, it&apos;s crucial to understand your organization&#x2019;s specific needs before embarking on this journey. Here are some key considerations to keep in mind:</p><h3 id="know-your-design-goals-and-objectives">Know your design goals and objectives</h3><p>Before creating a design system with Figma, you need to have a clear understanding of your design goals and objectives. What problem are you trying to solve? What do you want to achieve with your designs? What values and attributes do you want to convey through your brand? Answering these questions will help you define your design system&apos;s scope, components, and guidelines.</p><h3 id="assess-your-design-teams-skills-and-capabilities">Assess your design team&apos;s skills and capabilities</h3><p>Design systems require a multidisciplinary team with a wide range of skills and expertise, from design research and strategy to UI/UX design and development. Assess your team&apos;s strengths and weaknesses to identify the gaps you need to fill. You may need to hire new talent, train your existing team, or outsource some tasks to external experts.</p><h3 id="evaluate-your-design-workflow-and-processes">Evaluate your design workflow and processes</h3><p>Design systems are only effective if they integrate seamlessly into your design workflow and processes. Evaluate your existing workflow to identify the pain points, bottlenecks, and inefficiencies that a design system can address. Consider the tools and technologies your team uses, the feedback and collaboration mechanisms, and the version control and documentation practices. Then you can better understand how to use Figma to create a design system that feels integral to your existing operations and processes.</p><h3 id="define-your-design-systems-components-and-guidelines">Define your design system&apos;s components and guidelines</h3><p>Based on your design goals, team skills, and workflow evaluation, you can start defining your design system&apos;s components and guidelines. These may include color palettes, typography, iconography, layout grids, UI patterns, accessibility standards, and more. Make sure to document these components and guidelines in a clear and accessible way and communicate them to your team and stakeholders to ensure everyone knows how to use the Figma in the correct, on-brand way.</p><h3 id="continuously-test-iterate-and-improve-your-design-system">Continuously test, iterate, and improve your design system</h3><p>Design systems in Figma are not static entities; they need to evolve and adapt to changing design trends, technological advancements, and user feedback. Therefore, it&apos;s essential to continuously test, iterate, and improve your design system over time. Collect feedback from your team and users, measure the system&apos;s impact on your design outcomes, and adjust your components and guidelines accordingly.</p><p>By understanding your design systems needs and with a little Figma how-to knowledge, you can create a design system that supports your organization&apos;s goals, empowers your team, and enhances your brand&apos;s identity and user experience. Good luck!</p><p>Now that you have an understanding of your design systems needs, we will continue to talk about organizing your files and folders in part 3.</p><h2 id="part-3-organizing-your-figma-files-and-folders">Part 3: Organizing Your Figma Files and Folders</h2><p>In part 3, we will be guiding you through how to set up your files in order in Figma to stay organized and efficient when creating your design system files.</p><p>For this Figma tutorial, we have included visual examples of a project of ours called Creatively. This project required a high level of implementation as there were lots of files linking to the design system - not only product design files, but also marketing, social assets, end of year stats, etc.</p><p>Keeping your files and folders organized is an essential piece of Figma how-to knowledge for improving productivity, saving time, and reducing stress. Tidying your files and folders can help you stay on top of your daily tasks and obligations. Here are some tips to help you organize your Figma files and folders:</p><h3 id="1-create-a-system">1. Create a system</h3><p>The first step in organizing your Figma files and folders is to create a system that works for you. This can be as simple or as complex as you want it to be. The key is to make sure that it is easy to use and that it makes sense to you. You can organize your files by date, by project, by client, or by any other category that makes sense for your needs.</p><h3 id="2-use-descriptive-names">2. Use descriptive names</h3><p>When you save a file in Figma, use a descriptive name that will help you find it later. Use a name that describes the content of the document, such as &quot;project proposal&quot; or &quot;sales report.&quot;</p><h3 id="3-use-folders">3. Use folders</h3><p>Folders are an essential tool for organizing your Figma files. Use folders to group related files together. For example, you could create a folder for each project you are working on or a folder for each client you work with.</p><p>Now you have an understanding of organizing your files and folders in Figma. We will continue to talk about type styles, color palettes, and components in part 4 of this Figma tutorial.</p><h2 id="part-4-type-styles-color-palettes-and-components">Part 4: Type Styles, Color Palettes, and Components</h2><p>In part 4, we will be guiding you through creating the key ingredients for your design system in Figma. These elements will be used in multiple places throughout your project. They have functional purpose and must meet general design requirements like font size and color contrast for legibility.</p><p>When learning how to use Figma for designing any visual content or layout, there are three important aspects that need to be considered; the type styles, color palettes and components.</p><h3 id="type-styles">Type Styles</h3><p>Type styles refer to the various types of fonts and typography used in any design. Different type styles can convey different emotions and can be used to create a specific tone or mood. For instance, serif fonts are considered to be more traditional and formal, whereas sans-serif fonts are more modern and casual.</p><p>It is important to use a consistent type style throughout the Figma design to create a cohesive look and feel. Using too many different type styles can create visual chaos and make the design appear unprofessional.</p><h3 id="color-palettes">Color Palettes</h3><p>The color palette refers to the range of colors used in any design. Colors can be used to evoke emotions, convey messages and create a visual hierarchy. For instance, a muted color palette can create a calming effect, while bright colors can be used to create a sense of excitement or urgency.</p><p>Choosing the right color palette is crucial to creating a successful design in Figma. It is important to choose colors that complement each other and convey the desired emotion or message.</p><h3 id="components">Components</h3><p>Components refer to the individual elements that make up a design. This can include images, icons, buttons, and other design elements. It is important to choose components that are consistent with the overall design aesthetic and that support the message or purpose of the design.</p><p>Using consistent components throughout the Figma design can create a visual unity and make the design easier to understand.</p><p>In conclusion, when using Figma to design any visual content or layout, it is important to consider the type styles, color palettes, and components. These three aspects can have a significant impact on the success of the design and should be carefully considered to create a cohesive and effective final product.</p><p>Now you have an understanding of type styles, color palettes, and components - and their importance when designing in Figma. We will continue to talk about connecting, publishing and reviewing libraries in part 5.</p><h2 id="part-5-how-to-connect-publish-and-review-libraries-in-figma">Part 5: How to Connect, Publish, and Review Libraries in Figma</h2><p>Figma is a powerful design tool that allows designers to create visually stunning designs. One of the key features of Figma is the ability to connect, update, and review libraries. In part 5 of this Figma tutorial, we will explore how to do each of these tasks.</p><h3 id="connecting-libraries">Connecting Libraries</h3><p>Connecting a library in Figma allows you to access all the design assets stored in the library and use them in your design. To connect a library, follow these steps:</p><ol><li>Open the file you want to connect the library to.</li><li>Go to the Assets panel and click on the Libraries tab.</li></ol><p>Once you have connected the library, you will be able to access all the design assets stored in the library and use them in your Figma design.</p><h3 id="publishing-changes">Publishing Changes</h3><p>To publish changes made to a library in Figma, follow these steps:</p><ol><li>Open the library file you want to publish changes from.</li><li>Go to the File menu and click on the Publish Changes button.</li><li>In the Publish Changes dialog box, select the changes you want to publish.</li><li>Click on the Publish button.</li></ol><p>Once you have published the changes, the library will be updated to the latest version and all users with access to the library will be able to see and use the updated assets.</p><h3 id="reviewing-libraries">Reviewing Libraries</h3><p>Knowing how to use Figma and review libraries allows you to see all the changes made to the library and decide which changes to accept or reject. To review a library, follow these steps:</p><ol><li>Open the library file you want to review.</li><li>Go to the File menu and click on the History tab.</li><li>Click on the Library tab.</li><li>Select the version of the library you want to review.</li><li>Click on the Review Changes button.</li><li>Review all the changes made to the library.</li><li>Accept or reject each change.</li></ol><p>Once you have reviewed and accepted the changes, the library will be updated to the latest version.</p><h2 id="conclusion">Conclusion</h2><p>Over this five-part Figma tutorial, we&apos;ve journeyed through the intricacies of this powerful design tool, from establishing robust design systems to efficiently organizing files and harnessing the synergy of type styles, color palettes, and components. We&apos;ve also explored the pivotal role of connecting, publishing, and reviewing libraries in Figma, underscoring its significance in enhancing design workflows. This series not only equips you with the Figma how-to knowledge to confidently create and manage design systems on the platform, but also inspires innovation and sophistication in your design endeavors, positioning you at the forefront of digital design excellence. For more insights and guidance, explore our range of design guides and continue your journey in learning how to use Figma for exceptional design outcomes.</p>]]></content:encoded></item></channel></rss>