11import { CgSpinner } from 'react-icons/cg'
2- import * as React from 'react'
32import { Link , getRouteApi } from '@tanstack/react-router'
4- import { Carbon } from '~/components/Carbon'
53import { Footer } from '~/components/Footer'
6- import { TbHeartHandshake } from 'react-icons/tb'
74import { FaCheckCircle } from 'react-icons/fa'
85import SponsorPack from '~/components/SponsorPack'
96import { pacerProject } from '~/libraries/pacer'
@@ -42,31 +39,62 @@ export default function PacerVersionIndex() {
4239 < span > TanStack</ span >
4340 < span className = { twMerge ( gradientText ) } > Pacer</ span >
4441 </ h1 >
42+ < div
43+ className = { twMerge (
44+ 'text-sm' ,
45+ 'md:text-base font-black' ,
46+ 'lg:text-lg align-super text-white animate-bounce uppercase' ,
47+ 'dark:text-black bg-black dark:bg-white shadow-xl shadow-black/30 px-2 py-1 rounded-md' ,
48+ 'leading-none whitespace-nowrap'
49+ ) }
50+ >
51+ STATUS: ALPHA
52+ </ div >
4553 < h2
4654 className = "font-bold text-2xl max-w-md
4755 md:text-3xl
4856 lg:text-5xl lg:max-w-2xl"
4957 >
5058 < span className = "underline decoration-dashed decoration-gray-500 decoration-3 underline-offset-2" >
51- Framework agnostic
59+ Flexible
5260 </ span > { ' ' }
53- type-safe rate-limiting and queueing utilities
61+ type-safe throttling and queuing utilities
5462 </ h2 >
5563 < p
5664 className = "text opacity-90 max-w-[500px]
5765 lg:text-xl lg:max-w-[800px]"
5866 >
59- Take control of your application's timing with TanStack Pacer's{ ' ' }
60- < strong > rate limiting, throttling, and debouncing utilities</ strong >
61- . Manage complex async workflows using{ ' ' }
62- < strong > intelligent queuing and concurrency controls</ strong > while
63- maintaining full control with built-in pause, resume, and cancel
64- capabilities.
67+ Optimize your application's performance with TanStack Pacer's core
68+ primitives:{ ' ' }
69+ < strong >
70+ Debouncing, Throttling, Rate Limiting, Queuing, and Batching
71+ </ strong >
72+ .
73+ </ p >
74+ < p
75+ className = "text opacity-90 max-w-[500px]
76+ lg:text-xl lg:max-w-[800px]"
77+ >
78+ Choose from multiple layers of abstraction using high-level
79+ pre-built hooks or low-level primitives that you can connect to your
80+ own state management solutions of choice.
81+ </ p >
82+ < p
83+ className = "text opacity-90 max-w-[500px]
84+ lg:text-xl lg:max-w-[800px]"
85+ >
86+ TanStack Pacer is built on top of { /* @ts -ignore */ }
87+ < Link target = "_blank" to = "/store/latest" className = "underline" >
88+ TanStack Store
89+ </ Link > { ' ' }
90+ with reactive and subscribable state to make interacting with your
91+ state management or persistence solution of choice a breeze, no
92+ matter which framework you're using.
6593 </ p >
6694 < Link
6795 to = "/$libraryId/$version/docs"
6896 params = { { libraryId : library . id , version } }
69- className = { `py-2 px-4 bg-stone -600 text-white rounded uppercase font-extrabold` }
97+ className = { `py-2 px-4 bg-lime -600 hover:bg-lime-700 text-white rounded uppercase font-extrabold transition-colors ` }
7098 >
7199 Get Started
72100 </ Link >
@@ -91,17 +119,21 @@ export default function PacerVersionIndex() {
91119 'Lightweight' ,
92120 'Tree-Shaking' ,
93121 'Type-Safe' ,
122+ 'Framework Agnostic' ,
123+ 'Reactive & Subscribable State' ,
94124 'Rate Limiting' ,
95125 'Throttling' ,
96126 'Debouncing' ,
97- 'Queueing' ,
127+ 'Queuing' ,
128+ 'Batching' ,
129+ 'Flush Controls' ,
98130 'LIFO/FIFO/Dequeue Ordering' ,
99131 'Concurrency Control' ,
100132 'Queue Prioritization' ,
101133 'Pause/Resume Controls' ,
102134 'Cancellation' ,
103135 'Abort Controller Support' ,
104- 'Promise Integration ' ,
136+ 'Async/Sync Execution ' ,
105137 'Multiple Layers of Abstraction' ,
106138 ] . map ( ( d , i ) => {
107139 return (
@@ -172,52 +204,6 @@ export default function PacerVersionIndex() {
172204
173205 < LandingPageGad />
174206
175- { /* <div className="flex flex-col gap-4">
176- <div className="px-4 sm:px-6 lg:px-8 mx-auto container max-w-3xl sm:text-center">
177- <h3 className="text-3xl text-center leading-8 font-extrabold tracking-tight sm:text-4xl sm:leading-10 lg:leading-none mt-2">
178- Take it for a spin!
179- </h3>
180- <p className="my-4 text-xl leading-7 text-gray-600">
181- With just a few lines of code, you can start using powerful rate
182- limiting, throttling, debouncing, and queueing utilities.
183- </p>
184- <div className="flex flex-wrap gap-2 justify-center">
185- {(
186- [
187- { label: 'React', value: 'react' },
188- // More adapters coming soon
189- // { label: 'Solid', value: 'solid' },
190- // { label: 'Svelte', value: 'svelte' },
191- // { label: 'Vue', value: 'vue' },
192- // { label: 'Vanilla', value: 'vanilla' },
193- ] as const
194- ).map((item) => (
195- <button
196- key={item.value}
197- className={`inline-block py-2 px-4 rounded text-white uppercase font-extrabold bg-stone-600`}
198- >
199- {item.label}
200- </button>
201- ))}
202- </div>
203- </div>
204- </div>
205-
206- <div className="bg-white dark:bg-black">
207- <iframe
208- src={`https://stackblitz.com/github/${pacerProject.repo}/tree/main/examples/react/useDebouncer?embed=1&theme=dark&preset=node&file=src/main.tsx` }
209- title="tanstack/pacer: useDebouncer"
210- sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
211- className="shadow-2xl"
212- loading="lazy"
213- style={{
214- width: '100%',
215- height: '80vh',
216- border: '0',
217- }}
218- ></iframe>
219- </div> */ }
220-
221207 < div className = "flex flex-col gap-4 items-center" >
222208 < div className = "font-extrabold text-xl lg:text-2xl" >
223209 Wow, you've come a long way!
0 commit comments