diff --git a/.vercelignore b/.vercelignore index 2bbfe58c..aa2d276b 100644 --- a/.vercelignore +++ b/.vercelignore @@ -12,7 +12,6 @@ supabase/** # Unused root templates & demo kits ListingHub_NextJs_*/** vendor/** -radiant-ts/** Backup/** crawler_test/** test-results/** diff --git a/radiant-ts/.gitignore b/radiant-ts/.gitignore deleted file mode 100644 index fd3dbb57..00000000 --- a/radiant-ts/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/radiant-ts/CHANGELOG.md b/radiant-ts/CHANGELOG.md deleted file mode 100644 index 83e752f5..00000000 --- a/radiant-ts/CHANGELOG.md +++ /dev/null @@ -1,47 +0,0 @@ -# Changelog - -## 2025-07-29 - -- Add Sanity real-time content -- Update to React 19 and Next.js 15.4 - -## 2025-05-22 - -- Fix bug with focus styles - -## 2025-04-28 - -- Update template to Tailwind CSS v4.1.4 - -## 2025-04-10 - -- Update template to Tailwind CSS v4.1.3 - -## 2025-03-22 - -- Update template to Tailwind CSS v4.0.15 - -## 2025-02-10 - -- Update template to Tailwind CSS v4.0.6 - -## 2025-01-23 - -- Update template to Tailwind CSS v4.0 - -## 2024-10-07 - -- Tidy tier data on pricing page - -## 2024-09-23 - -- Fix incorrect date format on blog post page ([#1632](https://github.com/tailwindlabs/tailwind-plus-issues/issues/1632)) -- Update all images to use absolute paths ([#1631](https://github.com/tailwindlabs/tailwind-plus-issues/issues/1631)) - -## 2024-09-13 - -- Update dependencies - -## 2024-09-12 - -- Initial release diff --git a/radiant-ts/LICENSE.md b/radiant-ts/LICENSE.md deleted file mode 100644 index 482f68b8..00000000 --- a/radiant-ts/LICENSE.md +++ /dev/null @@ -1,129 +0,0 @@ -# Tailwind Plus License - -## Personal License - -Tailwind Labs Inc. grants you an on-going, non-exclusive license to use the Components and Templates. - -The license grants permission to **one individual** (the Licensee) to access and use the Components and Templates. - -You **can**: - -- Use the Components and Templates to create unlimited End Products. -- Modify the Components and Templates to create derivative components and templates. Those components and templates are subject to this license. -- Use the Components and Templates to create unlimited End Products for unlimited Clients. -- Use the Components and Templates to create End Products where the End Product is sold to End Users. -- Use the Components and Templates to create End Products that are open source and freely available to End Users. - -You **cannot**: - -- Use the Components and Templates to create End Products that are designed to allow an End User to build their own End Products using the Components and Templates or derivatives of the Components and Templates. -- Re-distribute the Components and Templates or derivatives of the Components and Templates separately from an End Product, neither in code or as design assets. -- Share your access to the Components and Templates with any other individuals. -- Use the Components and Templates to produce anything that may be deemed by Tailwind Labs Inc, in their sole and absolute discretion, to be competitive or in conflict with the business of Tailwind Labs Inc. - -### Example usage - -Examples of usage **allowed** by the license: - -- Creating a personal website by yourself. -- Creating a website or web application for a client that will be owned by that client. -- Creating a commercial SaaS application (like an invoicing app for example) where end users have to pay a fee to use the application. -- Creating a commercial self-hosted web application that is sold to end users for a one-time fee. -- Creating a web application where the primary purpose is clearly not to simply re-distribute the components (like a conference organization app that uses the components for its UI for example) that is free and open source, where the source code is publicly available. - -Examples of usage **not allowed** by the license: - -- Creating a repository of your favorite Tailwind Plus components or templates (or derivatives based on Tailwind Plus components or templates) and publishing it publicly. -- Creating a React or Vue version of Tailwind Plus and making it available either for sale or for free. -- Create a Figma or Sketch UI kit based on the Tailwind Plus component designs. -- Creating a "website builder" project where end users can build their own websites using components or templates included with or derived from Tailwind Plus. -- Creating a theme, template, or project starter kit using the components or templates and making it available either for sale or for free. -- Creating an admin panel tool (like [Laravel Nova](https://nova.laravel.com/) or [ActiveAdmin](https://activeadmin.info/)) that is made available either for sale or for free. - -In simple terms, use Tailwind Plus for anything you like as long as it doesn't compete with Tailwind Plus. - -### Personal License Definitions - -Licensee is the individual who has purchased a Personal License. - -Components and Templates are the source code and design assets made available to the Licensee after purchasing a Tailwind Plus license. - -End Product is any artifact produced that incorporates the Components or Templates or derivatives of the Components or Templates. - -End User is a user of an End Product. - -Client is an individual or entity receiving custom professional services directly from the Licensee, produced specifically for that individual or entity. Customers of software-as-a-service products are not considered clients for the purpose of this document. - -## Team License - -Tailwind Labs Inc. grants you an on-going, non-exclusive license to use the Components and Templates. - -The license grants permission for **up to 25 Employees and Contractors of the Licensee** to access and use the Components and Templates. - -You **can**: - -- Use the Components and Templates to create unlimited End Products. -- Modify the Components and Templates to create derivative components and templates. Those components and templates are subject to this license. -- Use the Components and Templates to create unlimited End Products for unlimited Clients. -- Use the Components and Templates to create End Products where the End Product is sold to End Users. -- Use the Components and Templates to create End Products that are open source and freely available to End Users. - -You **cannot**: - -- Use the Components or Templates to create End Products that are designed to allow an End User to build their own End Products using the Components or Templates or derivatives of the Components or Templates. -- Re-distribute the Components or Templates or derivatives of the Components or Templates separately from an End Product. -- Use the Components or Templates to create End Products that are the property of any individual or entity other than the Licensee or Clients of the Licensee. -- Use the Components or Templates to produce anything that may be deemed by Tailwind Labs Inc, in their sole and absolute discretion, to be competitive or in conflict with the business of Tailwind Labs Inc. - -### Example usage - -Examples of usage **allowed** by the license: - -- Creating a website for your company. -- Creating a website or web application for a client that will be owned by that client. -- Creating a commercial SaaS application (like an invoicing app for example) where end users have to pay a fee to use the application. -- Creating a commercial self-hosted web application that is sold to end users for a one-time fee. -- Creating a web application where the primary purpose is clearly not to simply re-distribute the components or templates (like a conference organization app that uses the components or a template for its UI for example) that is free and open source, where the source code is publicly available. - -Examples of use **not allowed** by the license: - -- Creating a repository of your favorite Tailwind Plus components or template (or derivatives based on Tailwind Plus components or templates) and publishing it publicly. -- Creating a React or Vue version of Tailwind Plus and making it available either for sale or for free. -- Creating a "website builder" project where end users can build their own websites using components or templates included with or derived from Tailwind Plus. -- Creating a theme or template using the components or templates and making it available either for sale or for free. -- Creating an admin panel tool (like [Laravel Nova](https://nova.laravel.com/) or [ActiveAdmin](https://activeadmin.info/)) that is made available either for sale or for free. -- Creating any End Product that is not the sole property of either your company or a client of your company. For example your employees/contractors can't use your company Tailwind Plus license to build their own websites or side projects. - -### Team License Definitions - -Licensee is the business entity who has purchased a Team License. - -Components and Templates are the source code and design assets made available to the Licensee after purchasing a Tailwind Plus license. - -End Product is any artifact produced that incorporates the Components or Templates or derivatives of the Components or Templates. - -End User is a user of an End Product. - -Employee is a full-time or part-time employee of the Licensee. - -Contractor is an individual or business entity contracted to perform services for the Licensee. - -Client is an individual or entity receiving custom professional services directly from the Licensee, produced specifically for that individual or entity. Customers of software-as-a-service products are not considered clients for the purpose of this document. - -## Enforcement - -If you are found to be in violation of the license, access to your Tailwind Plus account will be terminated, and a refund may be issued at our discretion. When license violation is blatant and malicious (such as intentionally redistributing the Components or Templates through private warez channels), no refund will be issued. - -The copyright of the Components and Templates is owned by Tailwind Labs Inc. You are granted only the permissions described in this license; all other rights are reserved. Tailwind Labs Inc. reserves the right to pursue legal remedies for any unauthorized use of the Components or Templates outside the scope of this license. - -## Liability - -Tailwind Labs Inc.’s liability to you for costs, damages, or other losses arising from your use of the Components or Templates — including third-party claims against you — is limited to a refund of your license fee. Tailwind Labs Inc. may not be held liable for any consequential damages related to your use of the Components or Templates. - -This Agreement is governed by the laws of the Province of Ontario and the applicable laws of Canada. Legal proceedings related to this Agreement may only be brought in the courts of Ontario. You agree to service of process at the e-mail address on your original order. - -## Questions? - -Unsure which license you need, or unsure if your use case is covered by our licenses? - -Email us at [support@tailwindcss.com](mailto:support@tailwindcss.com) with your questions. diff --git a/radiant-ts/README.md b/radiant-ts/README.md deleted file mode 100644 index cd6fdcb9..00000000 --- a/radiant-ts/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# Radiant - -Radiant is a [Tailwind Plus](https://tailwindcss.com/plus) site template built using [Tailwind CSS](https://tailwindcss.com) and [Next.js](https://nextjs.org), with a blog powered by [Sanity](https://www.sanity.io). - -## Getting started - -To get started with this template, first install the npm dependencies: - -```bash -npm install -``` - -Next, create a new Sanity project to power the blog within this template: - -```bash -npm create sanity@latest -- --env=.env.local --create-project "Radiant Blog" --dataset production -``` - -This will prompt you to create a new Sanity account if you don't have one already. When asked "Would you like to add configuration files for a Sanity project in this Next.js folder?", choose "n". - -Next, optionally import the demo seed data for the blog: - -```bash -npx sanity@latest dataset import seed.tar.gz -``` - -Next, run the development server: - -```bash -npm run dev -``` - -Finally, open [http://localhost:3000](http://localhost:3000) in your browser to view the website. - -To manage your blog content, visit the embedded Sanity Studio at [http://localhost:3000/studio](http://localhost:3000/studio). - -## Customizing - -You can start editing this template by modifying the files in the `/src` folder. The site will auto-update as you edit these files. - -## License - -This site template is a commercial product and is licensed under the [Tailwind Plus license](https://tailwindcss.com/plus/license). - -## Learn more - -To learn more about the technologies used in this site template, see the following resources: - -- [Tailwind CSS](https://tailwindcss.com/docs) - the official Tailwind CSS documentation -- [Next.js](https://nextjs.org/docs) - the official Next.js documentation -- [Headless UI](https://headlessui.dev) - the official Headless UI documentation -- [Sanity](https://www.sanity.io) - the Sanity website diff --git a/radiant-ts/eslint.config.mjs b/radiant-ts/eslint.config.mjs deleted file mode 100644 index 30b7af12..00000000 --- a/radiant-ts/eslint.config.mjs +++ /dev/null @@ -1,22 +0,0 @@ -import { FlatCompat } from '@eslint/eslintrc' -import { dirname } from 'path' -import { fileURLToPath } from 'url' - -const __filename = fileURLToPath(import.meta.url) -const __dirname = dirname(__filename) - -const compat = new FlatCompat({ - baseDirectory: __dirname, -}) - -const eslintConfig = [ - ...compat.extends('next/core-web-vitals', 'next/typescript'), - { - rules: { - '@next/next/no-img-element': 'off', - 'prefer-const': 'off', - }, - }, -] - -export default eslintConfig diff --git a/radiant-ts/next.config.mjs b/radiant-ts/next.config.mjs deleted file mode 100644 index 1d614782..00000000 --- a/radiant-ts/next.config.mjs +++ /dev/null @@ -1,4 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = {} - -export default nextConfig diff --git a/radiant-ts/package.json b/radiant-ts/package.json deleted file mode 100644 index 98a5a298..00000000 --- a/radiant-ts/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "radiant", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "next lint", - "typegen": "sanity schema extract --path=src/sanity/extract.json && sanity typegen generate && rm ./src/sanity/extract.json" - }, - "dependencies": { - "@headlessui/react": "^2.2.6", - "@heroicons/react": "^2.2.0", - "@sanity/image-url": "^1.1.0", - "@sanity/vision": "^4.2.0", - "clsx": "^2.1.1", - "dayjs": "^1.11.13", - "feed": "^5.1.0", - "framer-motion": "^12.23.11", - "next": "15.4.4", - "next-sanity": "^10.0.5", - "react": "^19", - "react-dom": "^19", - "react-use-measure": "^2.1.7", - "sanity": "^4.2.0" - }, - "devDependencies": { - "@eslint/eslintrc": "^3", - "@tailwindcss/postcss": "^4.1.11", - "@types/node": "^24", - "@types/react": "^19", - "@types/react-dom": "^19", - "eslint": "^9", - "eslint-config-next": "15.4.4", - "postcss": "^8.5.6", - "prettier": "^3.6.2", - "prettier-plugin-organize-imports": "^4.2.0", - "prettier-plugin-tailwindcss": "^0.6.14", - "tailwindcss": "^4.1.11", - "typescript": "^5" - } -} diff --git a/radiant-ts/postcss.config.js b/radiant-ts/postcss.config.js deleted file mode 100644 index 52b9b4ba..00000000 --- a/radiant-ts/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - '@tailwindcss/postcss': {}, - }, -} diff --git a/radiant-ts/prettier.config.js b/radiant-ts/prettier.config.js deleted file mode 100644 index a9e1a7b1..00000000 --- a/radiant-ts/prettier.config.js +++ /dev/null @@ -1,8 +0,0 @@ -/** @type {import('prettier').Options} */ -module.exports = { - singleQuote: true, - semi: false, - plugins: ['prettier-plugin-organize-imports', 'prettier-plugin-tailwindcss'], - tailwindFunctions: ['clsx'], - tailwindStylesheet: './src/styles/tailwind.css', -} diff --git a/radiant-ts/public/company/1.jpg b/radiant-ts/public/company/1.jpg deleted file mode 100644 index 8f9b7aca..00000000 Binary files a/radiant-ts/public/company/1.jpg and /dev/null differ diff --git a/radiant-ts/public/company/2.jpg b/radiant-ts/public/company/2.jpg deleted file mode 100644 index bbc1cfb9..00000000 Binary files a/radiant-ts/public/company/2.jpg and /dev/null differ diff --git a/radiant-ts/public/company/3.jpg b/radiant-ts/public/company/3.jpg deleted file mode 100644 index 808d177d..00000000 Binary files a/radiant-ts/public/company/3.jpg and /dev/null differ diff --git a/radiant-ts/public/company/4.jpg b/radiant-ts/public/company/4.jpg deleted file mode 100644 index dec34764..00000000 Binary files a/radiant-ts/public/company/4.jpg and /dev/null differ diff --git a/radiant-ts/public/company/5.jpg b/radiant-ts/public/company/5.jpg deleted file mode 100644 index ce279077..00000000 Binary files a/radiant-ts/public/company/5.jpg and /dev/null differ diff --git a/radiant-ts/public/dot-texture.svg b/radiant-ts/public/dot-texture.svg deleted file mode 100644 index 32a5a4a8..00000000 --- a/radiant-ts/public/dot-texture.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/radiant-ts/public/individual-investors/alicia-bell.jpg b/radiant-ts/public/individual-investors/alicia-bell.jpg deleted file mode 100644 index f27b1478..00000000 Binary files a/radiant-ts/public/individual-investors/alicia-bell.jpg and /dev/null differ diff --git a/radiant-ts/public/individual-investors/anna-roberts.jpg b/radiant-ts/public/individual-investors/anna-roberts.jpg deleted file mode 100644 index 7d1f2b38..00000000 Binary files a/radiant-ts/public/individual-investors/anna-roberts.jpg and /dev/null differ diff --git a/radiant-ts/public/individual-investors/benjamin-russel.jpg b/radiant-ts/public/individual-investors/benjamin-russel.jpg deleted file mode 100644 index bed7f45e..00000000 Binary files a/radiant-ts/public/individual-investors/benjamin-russel.jpg and /dev/null differ diff --git a/radiant-ts/public/individual-investors/emma-dorsey.jpg b/radiant-ts/public/individual-investors/emma-dorsey.jpg deleted file mode 100644 index e40a41c8..00000000 Binary files a/radiant-ts/public/individual-investors/emma-dorsey.jpg and /dev/null differ diff --git a/radiant-ts/public/individual-investors/jenny-wilson.jpg b/radiant-ts/public/individual-investors/jenny-wilson.jpg deleted file mode 100644 index eb0f0d4f..00000000 Binary files a/radiant-ts/public/individual-investors/jenny-wilson.jpg and /dev/null differ diff --git a/radiant-ts/public/individual-investors/kristin-watson.jpg b/radiant-ts/public/individual-investors/kristin-watson.jpg deleted file mode 100644 index f7b82139..00000000 Binary files a/radiant-ts/public/individual-investors/kristin-watson.jpg and /dev/null differ diff --git a/radiant-ts/public/investors/deccel.svg b/radiant-ts/public/investors/deccel.svg deleted file mode 100644 index 062cff0b..00000000 --- a/radiant-ts/public/investors/deccel.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/radiant-ts/public/investors/remington-schwartz.svg b/radiant-ts/public/investors/remington-schwartz.svg deleted file mode 100644 index 3e198e5d..00000000 --- a/radiant-ts/public/investors/remington-schwartz.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/radiant-ts/public/linked-avatars/customer.jpg b/radiant-ts/public/linked-avatars/customer.jpg deleted file mode 100644 index 4bc056eb..00000000 Binary files a/radiant-ts/public/linked-avatars/customer.jpg and /dev/null differ diff --git a/radiant-ts/public/linked-avatars/manager.jpg b/radiant-ts/public/linked-avatars/manager.jpg deleted file mode 100644 index bd3b263c..00000000 Binary files a/radiant-ts/public/linked-avatars/manager.jpg and /dev/null differ diff --git a/radiant-ts/public/logo-cloud/laravel.svg b/radiant-ts/public/logo-cloud/laravel.svg deleted file mode 100644 index 21acbb4e..00000000 --- a/radiant-ts/public/logo-cloud/laravel.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/radiant-ts/public/logo-cloud/savvycal.svg b/radiant-ts/public/logo-cloud/savvycal.svg deleted file mode 100644 index 4bf08c82..00000000 --- a/radiant-ts/public/logo-cloud/savvycal.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/radiant-ts/public/logo-cloud/statamic.svg b/radiant-ts/public/logo-cloud/statamic.svg deleted file mode 100644 index 38b03b61..00000000 --- a/radiant-ts/public/logo-cloud/statamic.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/radiant-ts/public/logo-cloud/transistor.svg b/radiant-ts/public/logo-cloud/transistor.svg deleted file mode 100644 index cd31bf0e..00000000 --- a/radiant-ts/public/logo-cloud/transistor.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/radiant-ts/public/logo-cloud/tuple.svg b/radiant-ts/public/logo-cloud/tuple.svg deleted file mode 100644 index a3bb4814..00000000 --- a/radiant-ts/public/logo-cloud/tuple.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/radiant-ts/public/logo-cluster/career-builder.svg b/radiant-ts/public/logo-cluster/career-builder.svg deleted file mode 100644 index 212f3803..00000000 --- a/radiant-ts/public/logo-cluster/career-builder.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/radiant-ts/public/logo-cluster/dribbble.svg b/radiant-ts/public/logo-cluster/dribbble.svg deleted file mode 100644 index 2803f4c4..00000000 --- a/radiant-ts/public/logo-cluster/dribbble.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/radiant-ts/public/logo-cluster/glassdoor.svg b/radiant-ts/public/logo-cluster/glassdoor.svg deleted file mode 100644 index 4d2680fd..00000000 --- a/radiant-ts/public/logo-cluster/glassdoor.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/radiant-ts/public/logo-cluster/linkedin.svg b/radiant-ts/public/logo-cluster/linkedin.svg deleted file mode 100644 index 1c5fd618..00000000 --- a/radiant-ts/public/logo-cluster/linkedin.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/radiant-ts/public/logo-cluster/upwork.svg b/radiant-ts/public/logo-cluster/upwork.svg deleted file mode 100644 index 3b46beb0..00000000 --- a/radiant-ts/public/logo-cluster/upwork.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/radiant-ts/public/logo-cluster/we-work-remotely.svg b/radiant-ts/public/logo-cluster/we-work-remotely.svg deleted file mode 100644 index dff6075e..00000000 --- a/radiant-ts/public/logo-cluster/we-work-remotely.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/radiant-ts/public/logo-timeline/adobe-creative-cloud.svg b/radiant-ts/public/logo-timeline/adobe-creative-cloud.svg deleted file mode 100644 index ba3db169..00000000 --- a/radiant-ts/public/logo-timeline/adobe-creative-cloud.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/radiant-ts/public/logo-timeline/asana.svg b/radiant-ts/public/logo-timeline/asana.svg deleted file mode 100644 index 5b73fc1e..00000000 --- a/radiant-ts/public/logo-timeline/asana.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/radiant-ts/public/logo-timeline/basecamp.svg b/radiant-ts/public/logo-timeline/basecamp.svg deleted file mode 100644 index 616f82b2..00000000 --- a/radiant-ts/public/logo-timeline/basecamp.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/radiant-ts/public/logo-timeline/discord.svg b/radiant-ts/public/logo-timeline/discord.svg deleted file mode 100644 index e242d447..00000000 --- a/radiant-ts/public/logo-timeline/discord.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/radiant-ts/public/logo-timeline/gmail.svg b/radiant-ts/public/logo-timeline/gmail.svg deleted file mode 100644 index ca71704a..00000000 --- a/radiant-ts/public/logo-timeline/gmail.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/radiant-ts/public/logo-timeline/google-calendar.svg b/radiant-ts/public/logo-timeline/google-calendar.svg deleted file mode 100644 index c60be086..00000000 --- a/radiant-ts/public/logo-timeline/google-calendar.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/radiant-ts/public/logo-timeline/google-drive.svg b/radiant-ts/public/logo-timeline/google-drive.svg deleted file mode 100644 index adfba0c3..00000000 --- a/radiant-ts/public/logo-timeline/google-drive.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/radiant-ts/public/logo-timeline/hubspot.svg b/radiant-ts/public/logo-timeline/hubspot.svg deleted file mode 100644 index dc304bd1..00000000 --- a/radiant-ts/public/logo-timeline/hubspot.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/radiant-ts/public/logo-timeline/loom.svg b/radiant-ts/public/logo-timeline/loom.svg deleted file mode 100644 index 9120023c..00000000 --- a/radiant-ts/public/logo-timeline/loom.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/radiant-ts/public/logo-timeline/microsoft-teams.svg b/radiant-ts/public/logo-timeline/microsoft-teams.svg deleted file mode 100644 index 9cc53f93..00000000 --- a/radiant-ts/public/logo-timeline/microsoft-teams.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/radiant-ts/public/logo-timeline/slack.svg b/radiant-ts/public/logo-timeline/slack.svg deleted file mode 100644 index 2eb4915d..00000000 --- a/radiant-ts/public/logo-timeline/slack.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/radiant-ts/public/logo-timeline/zoom.svg b/radiant-ts/public/logo-timeline/zoom.svg deleted file mode 100644 index 71b245a6..00000000 --- a/radiant-ts/public/logo-timeline/zoom.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/radiant-ts/public/map/1.jpg b/radiant-ts/public/map/1.jpg deleted file mode 100644 index ba0b360c..00000000 Binary files a/radiant-ts/public/map/1.jpg and /dev/null differ diff --git a/radiant-ts/public/map/2.jpg b/radiant-ts/public/map/2.jpg deleted file mode 100644 index 1b255d73..00000000 Binary files a/radiant-ts/public/map/2.jpg and /dev/null differ diff --git a/radiant-ts/public/map/3.jpg b/radiant-ts/public/map/3.jpg deleted file mode 100644 index a8e58c59..00000000 Binary files a/radiant-ts/public/map/3.jpg and /dev/null differ diff --git a/radiant-ts/public/map/4.jpg b/radiant-ts/public/map/4.jpg deleted file mode 100644 index ec51108a..00000000 Binary files a/radiant-ts/public/map/4.jpg and /dev/null differ diff --git a/radiant-ts/public/map/5.jpg b/radiant-ts/public/map/5.jpg deleted file mode 100644 index 1a2b664d..00000000 Binary files a/radiant-ts/public/map/5.jpg and /dev/null differ diff --git a/radiant-ts/public/team/celeste-vandermark.jpg b/radiant-ts/public/team/celeste-vandermark.jpg deleted file mode 100644 index 6a7b6ac7..00000000 Binary files a/radiant-ts/public/team/celeste-vandermark.jpg and /dev/null differ diff --git a/radiant-ts/public/team/courtney-henry.jpg b/radiant-ts/public/team/courtney-henry.jpg deleted file mode 100644 index 2e5065b1..00000000 Binary files a/radiant-ts/public/team/courtney-henry.jpg and /dev/null differ diff --git a/radiant-ts/public/team/dries-vincent.jpg b/radiant-ts/public/team/dries-vincent.jpg deleted file mode 100644 index b342899a..00000000 Binary files a/radiant-ts/public/team/dries-vincent.jpg and /dev/null differ diff --git a/radiant-ts/public/team/emily-selman.jpg b/radiant-ts/public/team/emily-selman.jpg deleted file mode 100644 index 90bcb2b4..00000000 Binary files a/radiant-ts/public/team/emily-selman.jpg and /dev/null differ diff --git a/radiant-ts/public/team/leonard-krasner.jpg b/radiant-ts/public/team/leonard-krasner.jpg deleted file mode 100644 index 39c6993e..00000000 Binary files a/radiant-ts/public/team/leonard-krasner.jpg and /dev/null differ diff --git a/radiant-ts/public/team/marcus-eldridge.jpg b/radiant-ts/public/team/marcus-eldridge.jpg deleted file mode 100644 index f1c2e0d9..00000000 Binary files a/radiant-ts/public/team/marcus-eldridge.jpg and /dev/null differ diff --git a/radiant-ts/public/team/michael-foster.jpg b/radiant-ts/public/team/michael-foster.jpg deleted file mode 100644 index bd11c286..00000000 Binary files a/radiant-ts/public/team/michael-foster.jpg and /dev/null differ diff --git a/radiant-ts/public/team/nolan-sheffield.jpg b/radiant-ts/public/team/nolan-sheffield.jpg deleted file mode 100644 index 7d4517ac..00000000 Binary files a/radiant-ts/public/team/nolan-sheffield.jpg and /dev/null differ diff --git a/radiant-ts/public/team/whitney-francis.jpg b/radiant-ts/public/team/whitney-francis.jpg deleted file mode 100644 index b2818e36..00000000 Binary files a/radiant-ts/public/team/whitney-francis.jpg and /dev/null differ diff --git a/radiant-ts/public/testimonials/amy-chase.jpg b/radiant-ts/public/testimonials/amy-chase.jpg deleted file mode 100644 index ec117dc8..00000000 Binary files a/radiant-ts/public/testimonials/amy-chase.jpg and /dev/null differ diff --git a/radiant-ts/public/testimonials/conor-neville.jpg b/radiant-ts/public/testimonials/conor-neville.jpg deleted file mode 100644 index 5d545015..00000000 Binary files a/radiant-ts/public/testimonials/conor-neville.jpg and /dev/null differ diff --git a/radiant-ts/public/testimonials/dillon-lenora.jpg b/radiant-ts/public/testimonials/dillon-lenora.jpg deleted file mode 100644 index 61393338..00000000 Binary files a/radiant-ts/public/testimonials/dillon-lenora.jpg and /dev/null differ diff --git a/radiant-ts/public/testimonials/harriet-arron.jpg b/radiant-ts/public/testimonials/harriet-arron.jpg deleted file mode 100644 index 2b9df4dd..00000000 Binary files a/radiant-ts/public/testimonials/harriet-arron.jpg and /dev/null differ diff --git a/radiant-ts/public/testimonials/tina-yards.jpg b/radiant-ts/public/testimonials/tina-yards.jpg deleted file mode 100644 index 280edc9f..00000000 Binary files a/radiant-ts/public/testimonials/tina-yards.jpg and /dev/null differ diff --git a/radiant-ts/public/testimonials/veronica-winton.jpg b/radiant-ts/public/testimonials/veronica-winton.jpg deleted file mode 100644 index 2ce0eb03..00000000 Binary files a/radiant-ts/public/testimonials/veronica-winton.jpg and /dev/null differ diff --git a/radiant-ts/sanity-typegen.json b/radiant-ts/sanity-typegen.json deleted file mode 100644 index 33acdca5..00000000 --- a/radiant-ts/sanity-typegen.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "path": "./src/**/*.{ts,tsx,js,jsx}", - "schema": "./src/sanity/extract.json", - "generates": "./src/sanity/types.ts" -} diff --git a/radiant-ts/sanity.cli.ts b/radiant-ts/sanity.cli.ts deleted file mode 100644 index 65eff256..00000000 --- a/radiant-ts/sanity.cli.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineCliConfig } from 'sanity/cli' - -const projectId = process.env.NEXT_PUBLIC_SANITY_PROJECT_ID -const dataset = process.env.NEXT_PUBLIC_SANITY_DATASET - -export default defineCliConfig({ api: { projectId, dataset } }) diff --git a/radiant-ts/sanity.config.ts b/radiant-ts/sanity.config.ts deleted file mode 100644 index f74b570b..00000000 --- a/radiant-ts/sanity.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -'use client' - -import { visionTool } from '@sanity/vision' -import { defineConfig } from 'sanity' -import { structureTool } from 'sanity/structure' -import { apiVersion, dataset, projectId } from './src/sanity/env' -import { schema } from './src/sanity/schema' - -export default defineConfig({ - name: 'Radiant', - basePath: '/studio', - projectId, - dataset, - schema, - plugins: [structureTool(), visionTool({ defaultApiVersion: apiVersion })], -}) diff --git a/radiant-ts/seed.tar.gz b/radiant-ts/seed.tar.gz deleted file mode 100644 index d3ecff30..00000000 Binary files a/radiant-ts/seed.tar.gz and /dev/null differ diff --git a/radiant-ts/src/app/blog/[slug]/page.tsx b/radiant-ts/src/app/blog/[slug]/page.tsx deleted file mode 100644 index 02040c79..00000000 --- a/radiant-ts/src/app/blog/[slug]/page.tsx +++ /dev/null @@ -1,201 +0,0 @@ -import { Button } from '@/components/button' -import { Container } from '@/components/container' -import { Footer } from '@/components/footer' -import { GradientBackground } from '@/components/gradient' -import { Link } from '@/components/link' -import { Navbar } from '@/components/navbar' -import { Heading, Subheading } from '@/components/text' -import { image } from '@/sanity/image' -import { getPost } from '@/sanity/queries' -import { ChevronLeftIcon } from '@heroicons/react/16/solid' -import dayjs from 'dayjs' -import type { Metadata } from 'next' -import { PortableText } from 'next-sanity' -import { notFound } from 'next/navigation' - -export async function generateMetadata({ - params, -}: { - params: Promise<{ slug: string }> -}): Promise { - let { data: post } = await getPost((await params).slug) - - return post ? { title: post.title, description: post.excerpt } : {} -} - -export default async function BlogPost({ - params, -}: { - params: Promise<{ slug: string }> -}) { - let { data: post } = await getPost((await params).slug) - if (!post) notFound() - - return ( -
- - - - - {dayjs(post.publishedAt).format('dddd, MMMM D, YYYY')} - - - {post.title} - -
-
- {post.author && ( -
- {post.author.image && ( - - )} -
- {post.author.name} -
-
- )} - {Array.isArray(post.categories) && ( -
- {post.categories.map((category) => ( - - {category.title} - - ))} -
- )} -
-
-
- {post.mainImage && ( - {post.mainImage.alt - )} - {post.body && ( - ( -

- {children} -

- ), - h2: ({ children }) => ( -

- {children} -

- ), - h3: ({ children }) => ( -

- {children} -

- ), - blockquote: ({ children }) => ( -
- {children} -
- ), - }, - types: { - image: ({ value }) => ( - {value.alt - ), - separator: ({ value }) => { - switch (value.style) { - case 'line': - return ( -
- ) - case 'space': - return
- default: - return null - } - }, - }, - list: { - bullet: ({ children }) => ( -
    - {children} -
- ), - number: ({ children }) => ( -
    - {children} -
- ), - }, - listItem: { - bullet: ({ children }) => { - return ( -
  • - {children} -
  • - ) - }, - number: ({ children }) => { - return ( -
  • - {children} -
  • - ) - }, - }, - marks: { - strong: ({ children }) => ( - - {children} - - ), - code: ({ children }) => ( - <> - ` - - {children} - - ` - - ), - link: ({ value, children }) => { - return ( - - {children} - - ) - }, - }, - }} - /> - )} -
    - -
    -
    -
    -
    - -
    -
    - ) -} diff --git a/radiant-ts/src/app/blog/feed.xml/route.ts b/radiant-ts/src/app/blog/feed.xml/route.ts deleted file mode 100644 index 94376778..00000000 --- a/radiant-ts/src/app/blog/feed.xml/route.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { image } from '@/sanity/image' -import { getPostsForFeed } from '@/sanity/queries' -import { Feed } from 'feed' -import assert from 'node:assert' - -export async function GET(req: Request) { - let siteUrl = new URL(req.url).origin - - let feed = new Feed({ - title: 'The Radiant Blog', - description: - 'Stay informed with product updates, company news, and insights on how to sell smarter at your company.', - author: { - name: 'Michael Foster', - email: 'michael.foster@example.com', - }, - id: siteUrl, - link: siteUrl, - image: `${siteUrl}/favicon.ico`, - favicon: `${siteUrl}/favicon.ico`, - copyright: `All rights reserved ${new Date().getFullYear()}`, - feedLinks: { - rss2: `${siteUrl}/feed.xml`, - }, - }) - - let { data: posts } = await getPostsForFeed() - - posts.forEach((post) => { - try { - assert(typeof post.title === 'string') - assert(typeof post.slug === 'string') - assert(typeof post.excerpt === 'string') - assert(typeof post.publishedAt === 'string') - } catch (error) { - console.log('Post is missing required fields for RSS feed:', post, error) - return - } - - feed.addItem({ - title: post.title, - id: post.slug, - link: `${siteUrl}/blog/${post.slug}`, - content: post.excerpt, - image: post.mainImage - ? image(post.mainImage) - .size(1200, 800) - .format('jpg') - .url() - .replaceAll('&', '&') - : undefined, - author: post.author?.name ? [{ name: post.author.name }] : [], - contributor: post.author?.name ? [{ name: post.author.name }] : [], - date: new Date(post.publishedAt), - }) - }) - - return new Response(feed.rss2(), { - status: 200, - headers: { - 'content-type': 'application/xml', - 'cache-control': 's-maxage=31556952', - }, - }) -} diff --git a/radiant-ts/src/app/blog/page.tsx b/radiant-ts/src/app/blog/page.tsx deleted file mode 100644 index 5de85e22..00000000 --- a/radiant-ts/src/app/blog/page.tsx +++ /dev/null @@ -1,309 +0,0 @@ -import { Button } from '@/components/button' -import { Container } from '@/components/container' -import { Footer } from '@/components/footer' -import { GradientBackground } from '@/components/gradient' -import { Link } from '@/components/link' -import { Navbar } from '@/components/navbar' -import { Heading, Lead, Subheading } from '@/components/text' -import { image } from '@/sanity/image' -import { - getCategories, - getFeaturedPosts, - getPosts, - getPostsCount, -} from '@/sanity/queries' -import { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react' -import { - CheckIcon, - ChevronLeftIcon, - ChevronRightIcon, - ChevronUpDownIcon, - RssIcon, -} from '@heroicons/react/16/solid' -import { clsx } from 'clsx' -import dayjs from 'dayjs' -import type { Metadata } from 'next' -import { notFound } from 'next/navigation' - -export const metadata: Metadata = { - title: 'Blog', - description: - 'Stay informed with product updates, company news, and insights on how to sell smarter at your company.', -} - -const postsPerPage = 5 - -async function FeaturedPosts() { - let { data: featuredPosts } = await getFeaturedPosts(3) - - if (featuredPosts.length === 0) { - return - } - - return ( -
    - -

    Featured

    -
    - {featuredPosts.map((post) => ( -
    - {post.mainImage && ( - {post.mainImage.alt - )} -
    -
    - {dayjs(post.publishedAt).format('dddd, MMMM D, YYYY')} -
    -
    - - - {post.title} - -
    -
    - {post.excerpt} -
    - {post.author && ( -
    - {post.author.image && ( - - )} -
    - {post.author.name} -
    -
    - )} -
    -
    - ))} -
    -
    -
    - ) -} - -async function Categories({ selected }: { selected?: string }) { - let { data: categories } = await getCategories() - - if (categories.length === 0) { - return - } - - return ( -
    - - - {categories.find(({ slug }) => slug === selected)?.title || - 'All categories'} - - - - - - -

    All categories

    - -
    - {categories.map((category) => ( - - - -

    {category.title}

    - -
    - ))} -
    -
    - -
    - ) -} - -async function Posts({ page, category }: { page: number; category?: string }) { - let { data: posts } = await getPosts( - (page - 1) * postsPerPage, - page * postsPerPage, - category, - ) - - if (posts.length === 0 && (page > 1 || category)) { - notFound() - } - - if (posts.length === 0) { - return

    No posts found.

    - } - - return ( -
    - {posts.map((post) => ( -
    -
    -
    - {dayjs(post.publishedAt).format('dddd, MMMM D, YYYY')} -
    - {post.author && ( -
    - {post.author.image && ( - - )} -
    - {post.author.name} -
    -
    - )} -
    -
    -

    {post.title}

    -

    {post.excerpt}

    -
    - - - Read more - - -
    -
    -
    - ))} -
    - ) -} - -async function Pagination({ - page, - category, -}: { - page: number - category?: string -}) { - function url(page: number) { - let params = new URLSearchParams() - - if (category) params.set('category', category) - if (page > 1) params.set('page', page.toString()) - - return params.size !== 0 ? `/blog?${params.toString()}` : '/blog' - } - - let totalPosts = (await getPostsCount(category)).data - let hasPreviousPage = page - 1 - let previousPageUrl = hasPreviousPage ? url(page - 1) : undefined - let hasNextPage = page * postsPerPage < totalPosts - let nextPageUrl = hasNextPage ? url(page + 1) : undefined - let pageCount = Math.ceil(totalPosts / postsPerPage) - - if (pageCount < 2) { - return - } - - return ( -
    - -
    - {Array.from({ length: pageCount }, (_, i) => ( - - {i + 1} - - ))} -
    - -
    - ) -} - -export default async function Blog({ - searchParams, -}: { - searchParams: Promise<{ [key: string]: string | string[] | undefined }> -}) { - let params = await searchParams - let page = - 'page' in params - ? typeof params.page === 'string' && parseInt(params.page) > 1 - ? parseInt(params.page) - : notFound() - : 1 - - let category = - typeof params.category === 'string' ? params.category : undefined - - return ( -
    - - - - Blog - - What’s happening at Radiant. - - - Stay informed with product updates, company news, and insights on how - to sell smarter at your company. - - - {page === 1 && !category && } - - - - - -
    -
    - ) -} diff --git a/radiant-ts/src/app/company/page.tsx b/radiant-ts/src/app/company/page.tsx deleted file mode 100644 index 75050efd..00000000 --- a/radiant-ts/src/app/company/page.tsx +++ /dev/null @@ -1,473 +0,0 @@ -import { AnimatedNumber } from '@/components/animated-number' -import { Button } from '@/components/button' -import { Container } from '@/components/container' -import { Footer } from '@/components/footer' -import { GradientBackground } from '@/components/gradient' -import { Navbar } from '@/components/navbar' -import { Heading, Lead, Subheading } from '@/components/text' -import type { Metadata } from 'next' - -export const metadata: Metadata = { - title: 'Company', - description: - 'We’re on a mission to transform revenue organizations by harnessing vast amounts of illegally acquired customer data.', -} - -function Header() { - return ( - - Helping companies generate revenue. - - We’re on a mission to transform revenue organizations by harnessing vast - amounts of illegally acquired customer data. - -
    -
    -

    Our mission

    -

    - At Radiant, we are dedicated to transforming the way revenue - organizations source and close deals. Our mission is to provide our - customers with an unfair advantage over both their competitors and - potential customers through insight and analysis. We’ll stop at - nothing to get you the data you need to close a deal. -

    -

    - We’re customer-obsessed — putting the time in to build a detailed - financial picture of every one of our customers so that we know more - about your business than you do. We are in this together, mostly - because we are all implicated in large-scale financial crime. In our - history as a company, we’ve never lost a customer, because if any - one of us talks, we all go down. -

    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    - The Numbers -
    -
    -
    -
    Raised
    -
    - $M -
    -
    -
    -
    Companies
    -
    - K -
    -
    -
    -
    Deals Closed
    -
    - M -
    -
    -
    -
    Leads Generated
    -
    - M -
    -
    -
    -
    -
    -
    - ) -} - -function Person({ - name, - description, - img, -}: { - name: string - description: string - img: string -}) { - return ( -
  • - -
    -

    {name}

    -

    {description}

    -
    -
  • - ) -} - -function Team() { - return ( - - Meet the team - - Founded by an all-star team. - - - Radiant is founded by two of the best sellers in the business and backed - by investors who look the other way. - -
    -
    -

    - Years ago, while working as sales associates at rival companies, - Thomas, Ben, and Natalie were discussing a big client they had all - been competing for. Joking about seeing the terms of each other’s - offers, they had an idea: what if they shared data to win deals and - split the commission behind their companies’ backs? It turned out to - be an incredible success, and that idea became the kernel for - Radiant. -

    -

    - Today, Radiant transforms revenue organizations by harnessing - illegally acquired customer and competitor data, using it to provide - extraordinary leverage. More than 30,000 companies rely on Radiant - to undercut their competitors and extort their customers, all - through a single integrated platform. -

    -
    - -
    -
    -
    -
    - -
    -
    -
    - - The team - -
    - -
    - ) -} - -function Investors() { - return ( - - Investors - - Funded by industry-leaders. - - - We are fortunate to be backed by the best investors in the industry — - both literal and metaphorical partners in crime. - - - Venture Capital - -
    - - - Individual investors - -
    - -
    - ) -} - -function Testimonial() { - return ( -
    - - - ) -} - -function Careers() { - return ( - - Careers - - Join our fully remote team. - - - We work together from all over the world, mainly from locations without - extradition agreements. - -
    -
    - Open positions -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TitleLocationRead more
    -
    - Engineering -
    -
    iOS DeveloperRemote - -
    Backend EngineerRemote - -
    Product EngineerRemote - -
    -
    - Design -
    -
    Principal DesignerRemote - -
    DesignerRemote - -
    Senior DesignerRemote - -
    -
    -
    - -
    -
    - ) -} - -export default function Company() { - return ( -
    - - - - -
    - - - -
    -
    - ) -} diff --git a/radiant-ts/src/app/favicon.ico b/radiant-ts/src/app/favicon.ico deleted file mode 100644 index 3c83706a..00000000 Binary files a/radiant-ts/src/app/favicon.ico and /dev/null differ diff --git a/radiant-ts/src/app/layout.tsx b/radiant-ts/src/app/layout.tsx deleted file mode 100644 index b0006a5b..00000000 --- a/radiant-ts/src/app/layout.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { SanityLive } from '@/sanity/live' -import { revalidateSyncTags } from '@/sanity/revalidateSyncTags' -import '@/styles/tailwind.css' -import type { Metadata } from 'next' - -export const metadata: Metadata = { - title: { - template: '%s - Radiant', - default: 'Radiant - Close every deal', - }, -} - -export default function RootLayout({ - children, -}: Readonly<{ - children: React.ReactNode -}>) { - return ( - - - - - - - {children} - - - - ) -} diff --git a/radiant-ts/src/app/login/page.tsx b/radiant-ts/src/app/login/page.tsx deleted file mode 100644 index 76196d75..00000000 --- a/radiant-ts/src/app/login/page.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { Button } from '@/components/button' -import { GradientBackground } from '@/components/gradient' -import { Link } from '@/components/link' -import { Mark } from '@/components/logo' -import { Checkbox, Field, Input, Label } from '@headlessui/react' -import { CheckIcon } from '@heroicons/react/16/solid' -import { clsx } from 'clsx' -import type { Metadata } from 'next' - -export const metadata: Metadata = { - title: 'Login', - description: 'Sign in to your account to continue.', -} - -export default function Login() { - return ( -
    - -
    -
    -
    -
    - - - -
    -

    Welcome back!

    -

    - Sign in to your account to continue. -

    - - - - - - - - -
    - - - - - - - - Forgot password? - -
    -
    - -
    -
    -
    - Not a member?{' '} - - Create an account - -
    -
    -
    -
    - ) -} diff --git a/radiant-ts/src/app/page.tsx b/radiant-ts/src/app/page.tsx deleted file mode 100644 index f7cb953f..00000000 --- a/radiant-ts/src/app/page.tsx +++ /dev/null @@ -1,211 +0,0 @@ -import { BentoCard } from '@/components/bento-card' -import { Button } from '@/components/button' -import { Container } from '@/components/container' -import { Footer } from '@/components/footer' -import { Gradient } from '@/components/gradient' -import { Keyboard } from '@/components/keyboard' -import { Link } from '@/components/link' -import { LinkedAvatars } from '@/components/linked-avatars' -import { LogoCloud } from '@/components/logo-cloud' -import { LogoCluster } from '@/components/logo-cluster' -import { LogoTimeline } from '@/components/logo-timeline' -import { Map } from '@/components/map' -import { Navbar } from '@/components/navbar' -import { Screenshot } from '@/components/screenshot' -import { Testimonials } from '@/components/testimonials' -import { Heading, Subheading } from '@/components/text' -import { ChevronRightIcon } from '@heroicons/react/16/solid' -import type { Metadata } from 'next' - -export const metadata: Metadata = { - description: - 'Radiant helps you sell more by revealing sensitive information about your customers.', -} - -function Hero() { - return ( -
    - - - - Radiant raises $100M Series A from Tailwind Ventures - - - } - /> -
    -

    - Close every deal. -

    -

    - Radiant helps you sell more by revealing sensitive information about - your customers. -

    -
    - - -
    -
    -
    -
    - ) -} - -function FeatureSection() { - return ( -
    - - - A snapshot of your entire sales pipeline. - - - -
    - ) -} - -function BentoSection() { - return ( - - Sales - - Know more about your customers than they do. - - -
    - - } - fade={['bottom']} - className="max-lg:rounded-t-4xl lg:col-span-3 lg:rounded-tl-4xl" - /> - - } - fade={['bottom']} - className="lg:col-span-3 lg:rounded-tr-4xl" - /> - - -
    - } - className="lg:col-span-2 lg:rounded-bl-4xl" - /> - } - className="lg:col-span-2" - /> - } - className="max-lg:rounded-b-4xl lg:col-span-2 lg:rounded-br-4xl" - /> -
    - - ) -} - -function DarkBentoSection() { - return ( -
    - - Outreach - - Customer outreach has never been easier. - - -
    - - } - fade={['top']} - className="max-lg:rounded-t-4xl lg:col-span-4 lg:rounded-tl-4xl" - /> - } - // `overflow-visible!` is needed to work around a Chrome bug that disables the mask on the graphic. - className="z-10 overflow-visible! lg:col-span-2 lg:rounded-tr-4xl" - /> - } - className="lg:col-span-2 lg:rounded-bl-4xl" - /> - - } - fade={['top']} - className="max-lg:rounded-b-4xl lg:col-span-4 lg:rounded-br-4xl" - /> -
    -
    -
    - ) -} - -export default function Home() { - return ( -
    - -
    - - - -
    - - -
    - -
    - -
    -
    - ) -} diff --git a/radiant-ts/src/app/pricing/page.tsx b/radiant-ts/src/app/pricing/page.tsx deleted file mode 100644 index 8f01723a..00000000 --- a/radiant-ts/src/app/pricing/page.tsx +++ /dev/null @@ -1,517 +0,0 @@ -import { Button } from '@/components/button' -import { Container } from '@/components/container' -import { Footer } from '@/components/footer' -import { Gradient, GradientBackground } from '@/components/gradient' -import { Link } from '@/components/link' -import { LogoCloud } from '@/components/logo-cloud' -import { Navbar } from '@/components/navbar' -import { Heading, Lead, Subheading } from '@/components/text' -import { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react' -import { - CheckIcon, - ChevronUpDownIcon, - MinusIcon, -} from '@heroicons/react/16/solid' -import type { Metadata } from 'next' - -export const metadata: Metadata = { - title: 'Pricing', - description: - 'Companies all over the world have closed millions of deals with Radiant. Sign up today and start selling smarter.', -} - -const tiers = [ - { - name: 'Starter' as const, - slug: 'starter', - description: 'Everything you need to start selling.', - priceMonthly: 99, - href: '#', - highlights: [ - { description: 'Up to 3 team members' }, - { description: 'Up to 5 deal progress boards' }, - { description: 'Source leads from select platforms' }, - { description: 'RadiantAI integrations', disabled: true }, - { description: 'Competitor analysis', disabled: true }, - ], - features: [ - { section: 'Features', name: 'Accounts', value: 3 }, - { section: 'Features', name: 'Deal progress boards', value: 5 }, - { section: 'Features', name: 'Sourcing platforms', value: 'Select' }, - { section: 'Features', name: 'Contacts', value: 100 }, - { section: 'Features', name: 'AI assisted outreach', value: false }, - { section: 'Analysis', name: 'Competitor analysis', value: false }, - { section: 'Analysis', name: 'Dashboard reporting', value: false }, - { section: 'Analysis', name: 'Community insights', value: false }, - { section: 'Analysis', name: 'Performance analysis', value: false }, - { section: 'Support', name: 'Email support', value: true }, - { section: 'Support', name: '24 / 7 call center support', value: false }, - { section: 'Support', name: 'Dedicated account manager', value: false }, - ], - }, - { - name: 'Growth' as const, - slug: 'growth', - description: 'All the extras for your growing team.', - priceMonthly: 149, - href: '#', - highlights: [ - { description: 'Up to 10 team members' }, - { description: 'Unlimited deal progress boards' }, - { description: 'Source leads from over 50 verified platforms' }, - { description: 'RadiantAI integrations' }, - { description: '5 competitor analyses per month' }, - ], - features: [ - { section: 'Features', name: 'Accounts', value: 10 }, - { section: 'Features', name: 'Deal progress boards', value: 'Unlimited' }, - { section: 'Features', name: 'Sourcing platforms', value: '100+' }, - { section: 'Features', name: 'Contacts', value: 1000 }, - { section: 'Features', name: 'AI assisted outreach', value: true }, - { section: 'Analysis', name: 'Competitor analysis', value: '5 / month' }, - { section: 'Analysis', name: 'Dashboard reporting', value: true }, - { section: 'Analysis', name: 'Community insights', value: true }, - { section: 'Analysis', name: 'Performance analysis', value: true }, - { section: 'Support', name: 'Email support', value: true }, - { section: 'Support', name: '24 / 7 call center support', value: true }, - { section: 'Support', name: 'Dedicated account manager', value: false }, - ], - }, - { - name: 'Enterprise' as const, - slug: 'enterprise', - description: 'Added flexibility to close deals at scale.', - priceMonthly: 299, - href: '#', - highlights: [ - { description: 'Unlimited active team members' }, - { description: 'Unlimited deal progress boards' }, - { description: 'Source leads from over 100 verified platforms' }, - { description: 'RadiantAI integrations' }, - { description: 'Unlimited competitor analyses' }, - ], - features: [ - { section: 'Features', name: 'Accounts', value: 'Unlimited' }, - { section: 'Features', name: 'Deal progress boards', value: 'Unlimited' }, - { section: 'Features', name: 'Sourcing platforms', value: '100+' }, - { section: 'Features', name: 'Contacts', value: 'Unlimited' }, - { section: 'Features', name: 'AI assisted outreach', value: true }, - { section: 'Analysis', name: 'Competitor analysis', value: 'Unlimited' }, - { section: 'Analysis', name: 'Dashboard reporting', value: true }, - { section: 'Analysis', name: 'Community insights', value: true }, - { section: 'Analysis', name: 'Performance analysis', value: true }, - { section: 'Support', name: 'Email support', value: true }, - { section: 'Support', name: '24 / 7 call center support', value: true }, - { section: 'Support', name: 'Dedicated account manager', value: true }, - ], - }, -] - -function Header() { - return ( - - Pricing that grows with your team size. - - Companies all over the world have closed millions of deals with Radiant. - Sign up today and start selling smarter. - - - ) -} - -function PricingCards() { - return ( -
    - - -
    - {tiers.map((tier, tierIndex) => ( - - ))} -
    - -
    -
    - ) -} - -function PricingCard({ tier }: { tier: (typeof tiers)[number] }) { - return ( -
    -
    -
    - {tier.name} -

    {tier.description}

    -
    -
    - ${tier.priceMonthly} -
    -
    -

    USD

    -

    per month

    -
    -
    -
    - -
    -
    -

    - Start selling with: -

    -
      - {tier.highlights.map((props, featureIndex) => ( - - ))} -
    -
    -
    -
    -
    - ) -} - -function PricingTable({ - selectedTier, -}: { - selectedTier: (typeof tiers)[number] -}) { - return ( - - - - - - - - - - - - - ))} - - - - - - - - {tiers.map((tier) => ( - - ))} - - - {[...new Set(tiers[0].features.map(({ section }) => section))].map( - (section) => ( - - - - - {tiers[0].features - .filter((feature) => feature.section === section) - .map(({ name }) => ( - - - {tiers.map((tier) => { - let value = tier.features.find( - (feature) => - feature.section === section && feature.name === name, - )?.value - - return ( - - ) - })} - - ))} - - ), - )} -
    Pricing plan comparison
    - {tiers.map((tier) => ( - - {tier.name} -
    -
    - - - {selectedTier.name} - - - - {tiers.map((tier) => ( - - - {tier.name} - - - - ))} - - -
    - -
    -
    -
    - -
    - Get started - - -
    -
    - {section} -
    -
    - {name} - - {value === true ? ( - <> - - - Included in {tier.name} - - - ) : value === false || value === undefined ? ( - <> - - - Not included in {tier.name} - - - ) : ( -
    {value}
    - )} -
    -
    - ) -} - -function FeatureItem({ - description, - disabled = false, -}: { - description: string - disabled?: boolean -}) { - return ( -
  • - - - - {disabled && Not included:} - {description} -
  • - ) -} - -function PlusIcon(props: React.ComponentPropsWithoutRef<'svg'>) { - return ( - - ) -} - -function Testimonial() { - return ( -
    - -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -

    - Thanks to Radiant, we're finding new leads that we never - would have found with legal methods. -

    -
    -
    -

    Tina Yards

    -

    - - VP of Sales, Protocol - -

    -
    -
    -
    -
    -
    -
    - ) -} - -function FrequentlyAskedQuestions() { - return ( - -
    - - Frequently asked questions - - - Your questions answered. - -
    -
    -
    - What measures are in place to ensure the security of our data? -
    -
    - Data security is a top priority for us, which is ironic given that - our business depends on others not taking it very seriously. We - understand that any breach could put both us and most of our - customers out of business—and behind bars. We employ robust - security measures, including data encryption, secure data centers, - and regular security audits to ensure this never happens. -
    -
    -
    -
    - Is there a mobile app available for your platform? -
    -
    - Yes, we offer a mobile app that provides all the key - functionalities of our desktop platform, allowing sales reps to - manage deals on the go. Additionally, we have another app - pre-installed on most modern smartphones that allows us to track - your location, listen to your conversations, and access your - camera and microphone at any time. This app is not available for - download. -
    -
    -
    -
    - Can I customize the workflow to match our company’s deal process? -
    -
    - Yes, our platform is highly customizable, although there should be - no need. Before you sign up, we discreetly gather information - about your company and its processes from a variety of sources. We - then use this information to pre-configure the platform to match - your existing workflows. This is why we ask for your social - security number and access to your email account during the - sign-up process. -
    -
    -
    -
    - What kind of support do you offer? -
    -
    - We offer comprehensive support through multiple channels, - including 24/7 live chat, email, and phone support. However, since - we have full access to your internal network, we will know if - you’re having issues before you do. -
    -
    -
    -
    - Can I integrate the CRM with other sales intelligence tools? -
    -
    - Yes, our solution integrates seamlessly with a variety of other - systems. However, be warned that most of these integrations are - short-lived. We have a dedicated team of engineers who - reverse-engineer the APIs of other tools, enabling us to build - their functionality into our product and eventually put them out - of business. -
    -
    -
    -
    -
    - ) -} - -export default async function Pricing({ - searchParams, -}: { - searchParams: Promise<{ [key: string]: string | string[] | undefined }> -}) { - let params = await searchParams - let tier = - typeof params.tier === 'string' - ? tiers.find(({ slug }) => slug === params.tier)! - : tiers[0] - - return ( -
    - - - - -
    - - - - -
    -
    - ) -} diff --git a/radiant-ts/src/app/studio/[[...tool]]/page.tsx b/radiant-ts/src/app/studio/[[...tool]]/page.tsx deleted file mode 100644 index efc21545..00000000 --- a/radiant-ts/src/app/studio/[[...tool]]/page.tsx +++ /dev/null @@ -1,19 +0,0 @@ -/** - * This route is responsible for the built-in authoring environment using Sanity Studio. - * All routes under your studio path is handled by this file using Next.js' catch-all routes: - * https://nextjs.org/docs/routing/dynamic-routes#catch-all-routes - * - * You can learn more about the next-sanity package here: - * https://github.com/sanity-io/next-sanity - */ - -import { NextStudio } from 'next-sanity/studio' -import config from '../../../../sanity.config' - -export const dynamic = 'force-static' - -export { metadata, viewport } from 'next-sanity/studio' - -export default function StudioPage() { - return -} diff --git a/radiant-ts/src/components/animated-number.tsx b/radiant-ts/src/components/animated-number.tsx deleted file mode 100644 index 3015fec8..00000000 --- a/radiant-ts/src/components/animated-number.tsx +++ /dev/null @@ -1,33 +0,0 @@ -'use client' - -import { - motion, - useInView, - useMotionValue, - useSpring, - useTransform, -} from 'framer-motion' -import { useEffect, useRef } from 'react' - -export function AnimatedNumber({ - start, - end, - decimals = 0, -}: { - start: number - end: number - decimals?: number -}) { - let ref = useRef(null) - let isInView = useInView(ref, { once: true, amount: 0.5 }) - - let value = useMotionValue(start) - let spring = useSpring(value, { damping: 30, stiffness: 100 }) - let display = useTransform(spring, (num) => num.toFixed(decimals)) - - useEffect(() => { - value.set(isInView ? end : start) - }, [start, end, isInView, value]) - - return {display} -} diff --git a/radiant-ts/src/components/bento-card.tsx b/radiant-ts/src/components/bento-card.tsx deleted file mode 100644 index e507d8b7..00000000 --- a/radiant-ts/src/components/bento-card.tsx +++ /dev/null @@ -1,59 +0,0 @@ -'use client' - -import { clsx } from 'clsx' -import { motion } from 'framer-motion' -import { Subheading } from './text' - -export function BentoCard({ - dark = false, - className = '', - eyebrow, - title, - description, - graphic, - fade = [], -}: { - dark?: boolean - className?: string - eyebrow: React.ReactNode - title: React.ReactNode - description: React.ReactNode - graphic: React.ReactNode - fade?: ('top' | 'bottom')[] -}) { - return ( - -
    - {graphic} - {fade.includes('top') && ( -
    - )} - {fade.includes('bottom') && ( -
    - )} -
    -
    - - {eyebrow} - -

    - {title} -

    -

    - {description} -

    -
    - - ) -} diff --git a/radiant-ts/src/components/button.tsx b/radiant-ts/src/components/button.tsx deleted file mode 100644 index d4240c89..00000000 --- a/radiant-ts/src/components/button.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import * as Headless from '@headlessui/react' -import { clsx } from 'clsx' -import { Link } from './link' - -const variants = { - primary: clsx( - 'inline-flex items-center justify-center px-4 py-[calc(--spacing(2)-1px)]', - 'rounded-full border border-transparent bg-gray-950 shadow-md', - 'text-base font-medium whitespace-nowrap text-white', - 'data-disabled:bg-gray-950 data-disabled:opacity-40 data-hover:bg-gray-800', - ), - secondary: clsx( - 'relative inline-flex items-center justify-center px-4 py-[calc(--spacing(2)-1px)]', - 'rounded-full border border-transparent bg-white/15 shadow-md ring-1 ring-[#D15052]/15', - 'after:absolute after:inset-0 after:rounded-full after:shadow-[inset_0_0_2px_1px_#ffffff4d]', - 'text-base font-medium whitespace-nowrap text-gray-950', - 'data-disabled:bg-white/15 data-disabled:opacity-40 data-hover:bg-white/20', - ), - outline: clsx( - 'inline-flex items-center justify-center px-2 py-[calc(--spacing(1.5)-1px)]', - 'rounded-lg border border-transparent shadow-sm ring-1 ring-black/10', - 'text-sm font-medium whitespace-nowrap text-gray-950', - 'data-disabled:bg-transparent data-disabled:opacity-40 data-hover:bg-gray-50', - ), -} - -type ButtonProps = { - variant?: keyof typeof variants -} & ( - | React.ComponentPropsWithoutRef - | (Headless.ButtonProps & { href?: undefined }) -) - -export function Button({ - variant = 'primary', - className, - ...props -}: ButtonProps) { - className = clsx(className, variants[variant]) - - if (typeof props.href === 'undefined') { - return - } - - return -} diff --git a/radiant-ts/src/components/container.tsx b/radiant-ts/src/components/container.tsx deleted file mode 100644 index c39cad52..00000000 --- a/radiant-ts/src/components/container.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { clsx } from 'clsx' - -export function Container({ - className, - children, -}: { - className?: string - children: React.ReactNode -}) { - return ( -
    -
    {children}
    -
    - ) -} diff --git a/radiant-ts/src/components/footer.tsx b/radiant-ts/src/components/footer.tsx deleted file mode 100644 index dc4a6293..00000000 --- a/radiant-ts/src/components/footer.tsx +++ /dev/null @@ -1,193 +0,0 @@ -import { PlusGrid, PlusGridItem, PlusGridRow } from '@/components/plus-grid' -import { Button } from './button' -import { Container } from './container' -import { Gradient } from './gradient' -import { Link } from './link' -import { Logo } from './logo' -import { Subheading } from './text' - -function CallToAction() { - return ( -
    -
    - Get started -

    - Ready to dive in? -
    - Start your free trial today. -

    -
    -

    - Get the cheat codes for selling and unlock your team's revenue - potential. -

    -
    - -
    -
    - ) -} - -function SitemapHeading({ children }: { children: React.ReactNode }) { - return

    {children}

    -} - -function SitemapLinks({ children }: { children: React.ReactNode }) { - return
      {children}
    -} - -function SitemapLink(props: React.ComponentPropsWithoutRef) { - return ( -
  • - -
  • - ) -} - -function Sitemap() { - return ( - <> -
    - Product - - Pricing - Analysis - API - -
    -
    - Company - - Careers - Blog - Company - -
    -
    - Support - - Help center - Community - -
    -
    - Company - - Terms of service - Privacy policy - -
    - - ) -} - -function SocialIconX(props: React.ComponentPropsWithoutRef<'svg'>) { - return ( - - - - ) -} - -function SocialIconFacebook(props: React.ComponentPropsWithoutRef<'svg'>) { - return ( - - - - ) -} - -function SocialIconLinkedIn(props: React.ComponentPropsWithoutRef<'svg'>) { - return ( - - - - ) -} - -function SocialLinks() { - return ( - <> - - - - - - - - - - - ) -} - -function Copyright() { - return ( -
    - © {new Date().getFullYear()} Radiant Inc. -
    - ) -} - -export function Footer() { - return ( -
    - -
    - - - - -
    -
    - - - -
    -
    - -
    -
    -
    - -
    - - - -
    -
    - - - -
    -
    -
    -
    - -
    - ) -} diff --git a/radiant-ts/src/components/gradient.tsx b/radiant-ts/src/components/gradient.tsx deleted file mode 100644 index fad381a1..00000000 --- a/radiant-ts/src/components/gradient.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { clsx } from 'clsx' - -export function Gradient({ - className, - ...props -}: React.ComponentPropsWithoutRef<'div'>) { - return ( -
    - ) -} - -export function GradientBackground() { - return ( -
    -
    -
    - ) -} diff --git a/radiant-ts/src/components/keyboard.tsx b/radiant-ts/src/components/keyboard.tsx deleted file mode 100644 index a0b839c2..00000000 --- a/radiant-ts/src/components/keyboard.tsx +++ /dev/null @@ -1,1050 +0,0 @@ -'use client' - -import { clsx } from 'clsx' -import { motion } from 'framer-motion' -import { createContext, useContext } from 'react' - -const KeyboardContext = createContext<{ highlighted: string[] }>({ - highlighted: [], -}) - -function Row(props: { children: React.ReactNode }) { - return
    -} - -function Key({ - name, - width = 36, - className, - children, -}: { - name: string - width?: number - className?: string - children?: React.ReactNode -}) { - let { highlighted } = useContext(KeyboardContext) - - return ( - - {children} - - ) -} - -function KeyGroup(props: { children: React.ReactNode }) { - return ( -
    - ) -} - -function EscapeKey() { - return ( - - - - - - ) -} - -function F1Key() { - return ( - - - - - - - - - ) -} - -function F2Key() { - return ( - - - - - - - - - ) -} - -function F3Key() { - return ( - - - - - - - - - ) -} - -function F4Key() { - return ( - - - - - - - - - ) -} - -function F5Key() { - return ( - - - - - - - - - ) -} - -function F6Key() { - return ( - - - - - - - - - ) -} - -function F7Key() { - return ( - - - - - - - - - ) -} - -function F8Key() { - return ( - - - - - - - - - ) -} - -function F9Key() { - return ( - - - - - - - - - ) -} - -function F10Key() { - return ( - - - - - - - - - ) -} - -function F11Key() { - return ( - - - - - - - - - ) -} - -function F12Key() { - return ( - - - - - - - - - ) -} - -function LockKey() { - return ( - - - - - - ) -} - -function BacktickKey() { - return ( - - - - - - - - - ) -} - -function OneKey() { - return ( - - - - - - - - - ) -} - -function TwoKey() { - return ( - - - - - - - - - ) -} - -function ThreeKey() { - return ( - - - - - - - - - ) -} - -function FourKey() { - return ( - - - - - - - - - ) -} - -function FiveKey() { - return ( - - - - - - - - - ) -} - -function SixKey() { - return ( - - - - - - - - - ) -} - -function SevenKey() { - return ( - - - - - - - - - ) -} - -function EightKey() { - return ( - - - - - - - - - ) -} - -function NineKey() { - return ( - - - - - - - - - ) -} - -function ZeroKey() { - return ( - - - - - - - - - ) -} - -function DashKey() { - return ( - - - - - - - - - ) -} - -function EqualsKey() { - return ( - - - - - - - - - ) -} - -function DeleteKey() { - return ( - - - - - - ) -} - -function TabKey() { - return ( - - - - - - ) -} - -function QKey() { - return ( - - - - - - ) -} - -function WKey() { - return ( - - - - - - ) -} - -function EKey() { - return ( - - - - - - ) -} - -function RKey() { - return ( - - - - - - ) -} - -function TKey() { - return ( - - - - - - ) -} - -function YKey() { - return ( - - - - - - ) -} - -function UKey() { - return ( - - - - - - ) -} - -function IKey() { - return ( - - - - - - ) -} - -function OKey() { - return ( - - - - - - ) -} - -function PKey() { - return ( - - - - - - ) -} - -function LeftSquareBracketKey() { - return ( - - - - - - - - - ) -} - -function RightSquareBracketKey() { - return ( - - - - - - - - - ) -} - -function BackSlashKey() { - return ( - - - - - - - - - ) -} - -function CapsLockKey() { - return ( - - - - - - - - - ) -} - -function AKey() { - return ( - - - - - - ) -} - -function SKey() { - return ( - - - - - - ) -} - -function DKey() { - return ( - - - - - - ) -} - -function FKey() { - return ( - - - - - - ) -} - -function GKey() { - return ( - - - - - - ) -} - -function HKey() { - return ( - - - - - - ) -} - -function JKey() { - return ( - - - - - - ) -} - -function KKey() { - return ( - - - - - - ) -} - -function LKey() { - return ( - - - - - - ) -} - -function SemicolonKey() { - return ( - - - - - - - - - ) -} - -function SingleQuoteKey() { - return ( - - - - - - - - - ) -} - -function ReturnKey() { - return ( - - - - - - ) -} - -function ShiftKey({ position }: { position: 'Left' | 'Right' }) { - return ( - - - - - - ) -} - -function ZKey() { - return ( - - - - - - ) -} - -function XKey() { - return ( - - - - - - ) -} - -function CKey() { - return ( - - - - - - ) -} - -function VKey() { - return ( - - - - - - ) -} - -function BKey() { - return ( - - - - - - ) -} - -function NKey() { - return ( - - - - - - ) -} - -function MKey() { - return ( - - - - - - ) -} - -function CommaKey() { - return ( - - - - - - - - - ) -} - -function PeriodKey() { - return ( - - - - - - - - - ) -} - -function ForwardSlashKey() { - return ( - - - - - - - - - ) -} - -function FunctionKey() { - return ( - - - - - - - - - ) -} - -function ControlKey() { - return ( - - - - - - - - - ) -} - -function OptionKey({ position }: { position: 'Left' | 'Right' }) { - return ( - - - - - - - - - ) -} - -function CommandKey({ position }: { position: 'Left' | 'Right' }) { - return ( - - - - - - - - - ) -} - -function SpaceKey() { - return -} - -function LeftKey() { - return ( - - - - - - ) -} - -function UpKey() { - return ( - - - - - - ) -} - -function DownKey() { - return ( - - - - - - ) -} - -function RightKey() { - return ( - - - - - - ) -} - -export function Keyboard({ highlighted = [] }: { highlighted?: string[] }) { - return ( - - - - ) -} diff --git a/radiant-ts/src/components/link.tsx b/radiant-ts/src/components/link.tsx deleted file mode 100644 index 1e6c0ccf..00000000 --- a/radiant-ts/src/components/link.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import * as Headless from '@headlessui/react' -import NextLink, { type LinkProps } from 'next/link' -import { forwardRef } from 'react' - -export const Link = forwardRef(function Link( - props: LinkProps & React.ComponentPropsWithoutRef<'a'>, - ref: React.ForwardedRef, -) { - return ( - - - - ) -}) diff --git a/radiant-ts/src/components/linked-avatars.tsx b/radiant-ts/src/components/linked-avatars.tsx deleted file mode 100644 index fd65e54a..00000000 --- a/radiant-ts/src/components/linked-avatars.tsx +++ /dev/null @@ -1,93 +0,0 @@ -'use client' - -import { CheckIcon } from '@heroicons/react/16/solid' -import { clsx } from 'clsx' -import { motion } from 'framer-motion' - -const transition = { - duration: 0.75, - repeat: Infinity, - repeatDelay: 1.25, -} - -function Rings() { - return ( - - {Array.from(Array(42).keys()).map((n) => ( - - ))} - - ) -} - -function Checkmark() { - return ( -
    - - - -
    - ) -} - -function Photos() { - return ( -
    -
    - - -
    -
    - ) -} - -export function LinkedAvatars() { - return ( - - ) -} diff --git a/radiant-ts/src/components/logo-cloud.tsx b/radiant-ts/src/components/logo-cloud.tsx deleted file mode 100644 index 5cc9a5f8..00000000 --- a/radiant-ts/src/components/logo-cloud.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { clsx } from 'clsx' - -export function LogoCloud({ - className, -}: React.ComponentPropsWithoutRef<'div'>) { - return ( -
    - SavvyCal - Laravel - Tuple - Transistor - Statamic -
    - ) -} diff --git a/radiant-ts/src/components/logo-cluster.tsx b/radiant-ts/src/components/logo-cluster.tsx deleted file mode 100644 index f7b6fbed..00000000 --- a/radiant-ts/src/components/logo-cluster.tsx +++ /dev/null @@ -1,143 +0,0 @@ -'use client' - -import { clsx } from 'clsx' -import { motion } from 'framer-motion' -import { Mark } from './logo' - -function Circle({ - size, - delay, - opacity, -}: { - size: number - delay: number - opacity: string -}) { - return ( - - ) -} - -function Circles() { - return ( -
    - - - - -
    -
    - ) -} - -function MainLogo() { - return ( -
    - -
    - ) -} - -function Logo({ - src, - left, - top, - hover, -}: { - src: string - left: number - top: number - hover: { x: number; y: number; rotate: number; delay: number } -}) { - return ( - - ) -} - -export function LogoCluster() { - return ( - - ) -} diff --git a/radiant-ts/src/components/logo-timeline.tsx b/radiant-ts/src/components/logo-timeline.tsx deleted file mode 100644 index 4646ed08..00000000 --- a/radiant-ts/src/components/logo-timeline.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { clsx } from 'clsx' -import { Mark } from './logo' - -function Row({ children }: { children: React.ReactNode }) { - return ( -
    -
    -
    - {children} -
    - ) -} - -function Logo({ - label, - src, - className, -}: { - label: string - src: string - className: string -}) { - return ( -
    - - {label} -
    - ) -} - -export function LogoTimeline() { - return ( -