From 90c1fd1a4bf1b869c75e63be3d67c5441413becc Mon Sep 17 00:00:00 2001 From: RedBeardEth <90423049+RedBeardEth@users.noreply.github.com> Date: Sat, 19 Oct 2024 14:10:44 +1100 Subject: [PATCH] finalise next 15 rc-1 upgrade and shadcn sidebar --- apps/nextjs/next.config.ts | 13 +- .../_components/sidebar/AccountSidebar.tsx | 75 +++++--- .../account/_components/sidebar/NavUser.tsx | 173 ++++++++++-------- .../src/app/(app)/account/delegates/page.tsx | 16 +- .../nextjs/src/app/(app)/blog/[slug]/page.tsx | 23 ++- .../src/app/(app)/blogs/[slug]/page.tsx | 14 +- apps/nextjs/src/app/(app)/bridge/page.tsx | 16 +- .../collection/[id]/(list)/activity/page.tsx | 15 +- .../collection/[id]/(list)/analytics/page.tsx | 3 +- .../(app)/collection/[id]/(list)/layout.tsx | 19 +- .../app/(app)/collection/[id]/(list)/page.tsx | 30 +-- .../(app)/collection/[id]/[tokenId]/page.tsx | 28 ++- .../src/app/(app)/events/[slug]/page.tsx | 14 +- .../src/app/(app)/games/[slug]/layout.tsx | 21 ++- .../src/app/(app)/games/[slug]/page.tsx | 18 +- apps/nextjs/src/app/(app)/page.tsx | 7 +- .../src/app/(app)/preview/start/route.tsx | 4 +- .../src/app/(app)/studios/[slug]/page.tsx | 14 +- .../(app)/user/[address]/activity/page.tsx | 22 ++- .../src/app/(app)/user/[address]/layout.tsx | 19 +- .../src/app/(app)/user/[address]/page.tsx | 14 +- .../app/api/legacy-reward/[address]/route.ts | 6 +- .../src/app/api/staking/[address]/route.ts | 6 +- apps/nextjs/src/trpc/server.tsx | 2 +- apps/nextjs/src/utils/keystatic.ts | 17 +- apps/nextjs/tailwind.config.ts | 16 +- apps/ui/src/app/dashboard/page.tsx | 21 --- apps/ui/src/components/ui/sidebar.tsx | 6 +- config/styles/globals.css | 103 +---------- package.json | 2 +- pnpm-lock.yaml | 58 +++--- tooling/tailwind/base.ts | 7 +- turbo.json | 1 + 33 files changed, 401 insertions(+), 402 deletions(-) delete mode 100644 apps/ui/src/app/dashboard/page.tsx diff --git a/apps/nextjs/next.config.ts b/apps/nextjs/next.config.ts index 8542da9f..660a96c5 100644 --- a/apps/nextjs/next.config.ts +++ b/apps/nextjs/next.config.ts @@ -1,16 +1,16 @@ import { fileURLToPath } from "url"; +import type { NextConfig } from "next"; import MillionLint from "@million/lint"; import createMDX from "@next/mdx"; +import { env } from "env"; import { createJiti } from "jiti"; -import type { NextConfig } from 'next' -import {env} from 'env' + /*// Import env files to validate at build time. Use jiti so we can load .ts files in here. await createJiti(fileURLToPath(import.meta.url)).import("./env");*/ /** @type {import("next").NextConfig} */ const nextConfig: NextConfig = { - reactStrictMode: true, /** Enables hot reloading for local packages without a build step */ transpilePackages: [ @@ -114,9 +114,8 @@ const withMDX = createMDX({ extension: /\.mdx?$/, }); -const enhancedConfig = - !(env.NODE_ENV === "production") - ? MillionLint.next({ rsc: true, auto: { rsc: true } })(withMDX(nextConfig)) - : withMDX(nextConfig); +const enhancedConfig = !(env.NODE_ENV === "production") + ? MillionLint.next({ rsc: true })(withMDX(nextConfig)) + : withMDX(nextConfig); export default withMDX(nextConfig); diff --git a/apps/nextjs/src/app/(app)/account/_components/sidebar/AccountSidebar.tsx b/apps/nextjs/src/app/(app)/account/_components/sidebar/AccountSidebar.tsx index 69807a58..0251031e 100644 --- a/apps/nextjs/src/app/(app)/account/_components/sidebar/AccountSidebar.tsx +++ b/apps/nextjs/src/app/(app)/account/_components/sidebar/AccountSidebar.tsx @@ -1,5 +1,6 @@ "use client"; +import Link from "next/link"; import LordsIcon from "@/icons/lords.svg"; import { Collapsible, @@ -20,16 +21,20 @@ import { SidebarGroupLabel, SidebarHeader, SidebarMenu, + SidebarMenuAction, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, + SidebarMenuSubButton, SidebarMenuSubItem, + SidebarRail, } from "@realms-world/ui/components/ui/sidebar"; import { Atom, Bird, BookOpen, Bot, + ChevronRight, Code2, Earth, Eclipse, @@ -214,34 +219,55 @@ export const data = { export function AppSidebar() { return ( - - - Your Account - {/**/} + + + - - {data.navMain.map((navItem) => ( - - - - - - {navItem.title} - - - - - - - - + {data.navMain.map((item) => ( + + + + + + + {item.title} + + + + {item.items.length ? ( + <> + + + + Toggle + + + + + {item.items.map((subItem) => ( + + + + {subItem.title} + + + + ))} + + + + ) : null} - ))} - + + ))} {/* Projects @@ -258,9 +284,8 @@ export function AppSidebar() { - - - + + ); } diff --git a/apps/nextjs/src/app/(app)/account/_components/sidebar/NavUser.tsx b/apps/nextjs/src/app/(app)/account/_components/sidebar/NavUser.tsx index c633f807..da9072de 100644 --- a/apps/nextjs/src/app/(app)/account/_components/sidebar/NavUser.tsx +++ b/apps/nextjs/src/app/(app)/account/_components/sidebar/NavUser.tsx @@ -1,11 +1,5 @@ -import { - BadgeCheck, - Bell, - ChevronsUpDown, - CreditCard, - LogOut, -} from "lucide-react"; - +import { StarknetLoginButton } from "@/app/_components/wallet/StarknetLoginButton"; +import { shortenHex } from "@/utils/utils"; import { Avatar, AvatarFallback, @@ -20,9 +14,21 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from "@realms-world/ui/components/ui/dropdown-menu"; +import { + SidebarMenu, + SidebarMenuButton, + SidebarMenuItem, + useSidebar, +} from "@realms-world/ui/components/ui/sidebar"; import { useAccount, useDisconnect } from "@starknet-react/core"; -import { shortenHex } from "@/utils/utils"; -import { StarknetLoginButton } from "@/app/_components/wallet/StarknetLoginButton"; +import { + BadgeCheck, + Bell, + ChevronsUpDown, + CreditCard, + LogOut, + Sparkles, +} from "lucide-react"; export function NavUser({ user, @@ -34,76 +40,89 @@ export function NavUser({ }; }) { const { address } = useAccount(); - const { disconnect } = useDisconnect(); + const { isMobile } = useSidebar(); + const { disconnect } = useDisconnect(); + { + address && shortenHex(address, 8); + } return ( <> - - -
- - - CN - -
-
{user?.name}
-
-
- {address && shortenHex(address, 8)} -
-
-
- -
-
- - -
- - - CN - -
-
- {address && shortenHex(address, 8)} -
-
-
{user?.email}
-
-
-
-
- {/* - - - - Account - - - - Billing - - - - Notifications - - */} - - - - Log out - -
-
+ {address ? ( + + + + + + + + CN + +
+ + {shortenHex(address, 8)} + +
+ +
+
+ + +
+ + + CN + +
+ + {shortenHex(address, 8)} + + {user?.email} +
+
+
+ + + + + Upgrade to Pro + + + + + + + Account + + + + Billing + + + + Notifications + + + + + + Log out + +
+
+
+
+ ) : ( + + )} ); } diff --git a/apps/nextjs/src/app/(app)/account/delegates/page.tsx b/apps/nextjs/src/app/(app)/account/delegates/page.tsx index 04556c17..ce7a4c5f 100644 --- a/apps/nextjs/src/app/(app)/account/delegates/page.tsx +++ b/apps/nextjs/src/app/(app)/account/delegates/page.tsx @@ -14,11 +14,17 @@ export function generateMetadata(): Metadata { }; } -export default function Page({ - searchParams: { search }, -}: { - searchParams: { search?: string }; -}) { +export default async function Page( + props: { + searchParams: Promise<{ search?: string }>; + } +) { + const searchParams = await props.searchParams; + + const { + search + } = searchParams; + const filters: RouterInputs["delegates"]["all"] = { limit: 200, search: search, diff --git a/apps/nextjs/src/app/(app)/blog/[slug]/page.tsx b/apps/nextjs/src/app/(app)/blog/[slug]/page.tsx index efba62af..46bf318d 100644 --- a/apps/nextjs/src/app/(app)/blog/[slug]/page.tsx +++ b/apps/nextjs/src/app/(app)/blog/[slug]/page.tsx @@ -19,16 +19,17 @@ async function getData({ id }: { id: string }) { }; } interface ArticlePageProps { - params: { + params: Promise<{ slug: string; - }; + }>; } -export async function generateMetadata({ - params, -}: { - params: { slug: string }; -}): Promise { +export async function generateMetadata( + props: { + params: Promise<{ slug: string }>; + } +): Promise { + const params = await props.params; const { article } = await getData({ id: params.slug }); return { @@ -56,7 +57,13 @@ export async function generateMetadata({ }; } -export default async function Article({ params: { slug } }: ArticlePageProps) { +export default async function Article(props: ArticlePageProps) { + const params = await props.params; + + const { + slug + } = params; + const { article } = await getData({ id: slug }); return ( diff --git a/apps/nextjs/src/app/(app)/blogs/[slug]/page.tsx b/apps/nextjs/src/app/(app)/blogs/[slug]/page.tsx index 36e0845d..14007237 100644 --- a/apps/nextjs/src/app/(app)/blogs/[slug]/page.tsx +++ b/apps/nextjs/src/app/(app)/blogs/[slug]/page.tsx @@ -13,11 +13,12 @@ import React from "react"; import Markdoc from "@markdoc/markdoc"; import { reader } from "@/utils/keystatic"; -export async function generateMetadata({ - params, -}: { - params: { slug: string }; -}): Promise { +export async function generateMetadata( + props: { + params: Promise<{ slug: string }>; + } +): Promise { + const params = await props.params; let blog = await reader().collections.blogs.read(params.slug); return { @@ -45,7 +46,8 @@ export async function generateMetadata({ }; } -export default async function Page({ params }: { params: { slug: string } }) { +export default async function Page(props: { params: Promise<{ slug: string }> }) { + const params = await props.params; const blog = await reader().collections.blogs.read(params.slug); if (!blog) { return
No Blog Found
; diff --git a/apps/nextjs/src/app/(app)/bridge/page.tsx b/apps/nextjs/src/app/(app)/bridge/page.tsx index 3983d94b..8bdae18c 100644 --- a/apps/nextjs/src/app/(app)/bridge/page.tsx +++ b/apps/nextjs/src/app/(app)/bridge/page.tsx @@ -10,11 +10,17 @@ export const metadata: Metadata = { description: "...", }; -export default function Page({ - searchParams: { action = "deposit" }, -}: { - searchParams: { action?: string }; -}) { +export default async function Page( + props: { + searchParams: Promise<{ action?: string }>; + } +) { + const searchParams = await props.searchParams; + + const { + action = "deposit" + } = searchParams; + const tabs = [ { name: "Deposit", diff --git a/apps/nextjs/src/app/(app)/collection/[id]/(list)/activity/page.tsx b/apps/nextjs/src/app/(app)/collection/[id]/(list)/activity/page.tsx index 95eb0155..179db52a 100644 --- a/apps/nextjs/src/app/(app)/collection/[id]/(list)/activity/page.tsx +++ b/apps/nextjs/src/app/(app)/collection/[id]/(list)/activity/page.tsx @@ -8,13 +8,14 @@ import { ActivityCard } from "./ActivityCard"; import { CollectionActivity } from "./CollectionActivity"; import { L2ActivityTable } from "./L2ActivityTable"; -export default async function Page({ - params, - searchParams, -}: { - params: { id: string }; - searchParams: { types?: string[] | string }; -}) { +export default async function Page( + props: { + params: Promise<{ id: string }>; + searchParams: Promise<{ types?: string[] | string }>; + } +) { + const searchParams = await props.searchParams; + const params = await props.params; const tokenAddresses = getCollectionAddresses(params.id); if (!tokenAddresses) { return
Collection Not Found
; diff --git a/apps/nextjs/src/app/(app)/collection/[id]/(list)/analytics/page.tsx b/apps/nextjs/src/app/(app)/collection/[id]/(list)/analytics/page.tsx index 1114667c..a4887ed5 100644 --- a/apps/nextjs/src/app/(app)/collection/[id]/(list)/analytics/page.tsx +++ b/apps/nextjs/src/app/(app)/collection/[id]/(list)/analytics/page.tsx @@ -8,7 +8,8 @@ import { getCollectionAddresses } from "@realms-world/constants"; import { OwnerDistribution } from "./OwnerDistribution"; import { TopOwners } from "./TopOwners"; -export default async function Page({ params }: { params: { id: string } }) { +export default async function Page(props: { params: Promise<{ id: string }> }) { + const params = await props.params; const tokenAddresses = getCollectionAddresses(params.id); if (!tokenAddresses?.[SUPPORTED_L1_CHAIN_ID]) { return

Coming Soon

; diff --git a/apps/nextjs/src/app/(app)/collection/[id]/(list)/layout.tsx b/apps/nextjs/src/app/(app)/collection/[id]/(list)/layout.tsx index 2954d1df..3750a05d 100644 --- a/apps/nextjs/src/app/(app)/collection/[id]/(list)/layout.tsx +++ b/apps/nextjs/src/app/(app)/collection/[id]/(list)/layout.tsx @@ -5,13 +5,18 @@ import { env } from "env"; import { Collections } from "@realms-world/constants"; import { NavLink } from "@realms-world/ui/components/ui/nav-link"; -export default function RootLayout({ - children, - params, -}: { - children: React.ReactNode; - params: { id: string }; -}) { +export default async function RootLayout( + props: { + children: React.ReactNode; + params: Promise<{ id: string }>; + } +) { + const params = await props.params; + + const { + children + } = props; + const isMintable = env.NEXT_PUBLIC_IS_TESTNET == "true" && params.id == (Collections.GOLDEN_TOKEN as string); diff --git a/apps/nextjs/src/app/(app)/collection/[id]/(list)/page.tsx b/apps/nextjs/src/app/(app)/collection/[id]/(list)/page.tsx index d5e7a8af..d80e1e57 100644 --- a/apps/nextjs/src/app/(app)/collection/[id]/(list)/page.tsx +++ b/apps/nextjs/src/app/(app)/collection/[id]/(list)/page.tsx @@ -17,11 +17,12 @@ import { TradeLayout } from "./Trade"; //export const runtime = "edge"; -export function generateMetadata({ - params, -}: { - params: { id: string }; -}): Metadata { +export async function generateMetadata( + props: { + params: Promise<{ id: string }>; + } +): Promise { + const params = await props.params; const collection = CollectionDetails[params.id as Collections]; return { title: `${collection.displayName}`, @@ -35,15 +36,16 @@ export function generateMetadata({ }; } -export default function Page({ - params, - searchParams, -}: { - params: { id: string }; - searchParams?: { - page?: string; - }; -}) { +export default async function Page( + props: { + params: Promise<{ id: string }>; + searchParams?: Promise<{ + page?: string; + }>; + } +) { + const searchParams = await props.searchParams; + const params = await props.params; const tokenAddresses = getCollectionAddresses(params.id); const l2TokenAddress = tokenAddresses?.[SUPPORTED_L2_CHAIN_ID]; diff --git a/apps/nextjs/src/app/(app)/collection/[id]/[tokenId]/page.tsx b/apps/nextjs/src/app/(app)/collection/[id]/[tokenId]/page.tsx index e35440b0..ba90ddef 100644 --- a/apps/nextjs/src/app/(app)/collection/[id]/[tokenId]/page.tsx +++ b/apps/nextjs/src/app/(app)/collection/[id]/[tokenId]/page.tsx @@ -17,11 +17,18 @@ import { TokenInformation } from "./TokenInformation"; import { marketPlaceClientBuilder } from "@/lib/ark/client"; import { getToken } from "@/lib/ark/getToken"; -export function generateMetadata({ - params: { tokenId, id }, -}: { - params: { id: string; tokenId: string }; -}): Metadata { +export async function generateMetadata( + props: { + params: Promise<{ id: string; tokenId: string }>; + } +): Promise { + const params = await props.params; + + const { + tokenId, + id + } = params; + const collection = CollectionDetails[id as Collections].displayName; return { title: `${collection} #${tokenId}`, @@ -35,11 +42,12 @@ export function generateMetadata({ }; } -export default function Page({ - params, -}: { - params: { id: string; tokenId: string }; -}) { +export default async function Page( + props: { + params: Promise<{ id: string; tokenId: string }>; + } +) { + const params = await props.params; const tokenAddresses = getCollectionAddresses(params.id); if (!tokenAddresses) { return
Collection Not Found
; diff --git a/apps/nextjs/src/app/(app)/events/[slug]/page.tsx b/apps/nextjs/src/app/(app)/events/[slug]/page.tsx index 3a7e76c2..1d108a1f 100644 --- a/apps/nextjs/src/app/(app)/events/[slug]/page.tsx +++ b/apps/nextjs/src/app/(app)/events/[slug]/page.tsx @@ -7,11 +7,12 @@ import Markdoc from "@markdoc/markdoc"; import { Button } from "@realms-world/ui/components/ui/button"; import { reader } from "@/utils/keystatic"; -export async function generateMetadata({ - params, -}: { - params: { slug: string }; -}): Promise { +export async function generateMetadata( + props: { + params: Promise<{ slug: string }>; + } +): Promise { + const params = await props.params; let event = await reader().collections.events.read(params.slug); return { title: `${event?.name}`, @@ -19,7 +20,8 @@ export async function generateMetadata({ }; } -export default async function Page({ params }: { params: { slug: string } }) { +export default async function Page(props: { params: Promise<{ slug: string }> }) { + const params = await props.params; const event = await reader().collections.events.read(params.slug); if (!event) { return
No Event Found
; diff --git a/apps/nextjs/src/app/(app)/games/[slug]/layout.tsx b/apps/nextjs/src/app/(app)/games/[slug]/layout.tsx index 16551c4e..2d1f366c 100644 --- a/apps/nextjs/src/app/(app)/games/[slug]/layout.tsx +++ b/apps/nextjs/src/app/(app)/games/[slug]/layout.tsx @@ -1,14 +1,19 @@ "use client"; -import React from "react"; +import React, { use } from "react"; + +export default function RootLayout( + props: { + children: React.ReactNode; + params: Promise<{ id: string }>; + } +) { + const params = use(props.params); + + const { + children + } = props; -export default function RootLayout({ - children, - params, -}: { - children: React.ReactNode; - params: { id: string }; -}) { const defaultImage = "/backgrounds/dummy_background.png"; // const imageUrl = // "url(" + diff --git a/apps/nextjs/src/app/(app)/games/[slug]/page.tsx b/apps/nextjs/src/app/(app)/games/[slug]/page.tsx index 997d7501..03d711ec 100644 --- a/apps/nextjs/src/app/(app)/games/[slug]/page.tsx +++ b/apps/nextjs/src/app/(app)/games/[slug]/page.tsx @@ -30,11 +30,12 @@ import { TabsContent, } from "@realms-world/ui/components/ui/tabs"; -export async function generateMetadata({ - params, -}: { - params: { slug: string }; -}): Promise { +export async function generateMetadata( + props: { + params: Promise<{ slug: string }>; + } +): Promise { + const params = await props.params; let game = await reader().collections.games.read(params.slug); return { title: `${game?.title}`, @@ -42,7 +43,8 @@ export async function generateMetadata({ }; } -export default async function Page({ params }: { params: { slug: string } }) { +export default async function Page(props: { params: Promise<{ slug: string }> }) { + const params = await props.params; const keyStaticGame = await reader().collections.games.read(params.slug); if (!keyStaticGame) return; @@ -82,9 +84,9 @@ export default async function Page({ params }: { params: { slug: string } }) {
{keyStaticGame?.tokens?.map((token, index) => ( //token === Tokens.LORDS ? ( - + ( - + ) /*) : ( // eslint-disable-next-line @typescript-eslint/restrict-template-expressions ); diff --git a/config/styles/globals.css b/config/styles/globals.css index 62fa65b4..d22fce0d 100644 --- a/config/styles/globals.css +++ b/config/styles/globals.css @@ -115,13 +115,13 @@ --lightness: 0.26; --limit: 320; --distance: 8; - --sidebar-background: 240 5.9% 10%; - --sidebar-foreground: 240 4.8% 95.9%; + --sidebar-background: 69 9% 15%; + --sidebar-foreground: 36 88.9% 85.9%; --sidebar-primary: 224.3 76.3% 48%; --sidebar-primary-foreground: 0 0% 100%; --sidebar-accent: 240 3.7% 15.9%; --sidebar-accent-foreground: 240 4.8% 95.9%; - --sidebar-border: 240 3.7% 15.9%; + --sidebar-border: 68 5% 29%; --sidebar-ring: 217.2 91.2% 59.8%; } } @@ -218,29 +218,6 @@ body::-webkit-scrollbar-thumb, @apply bg-black; } -/* .tab-container { - @apply mb-4 mt-4 flex; -} - -.tab-button { - @apply mr-1 rounded-t border-b-4 border-transparent px-4 py-2 font-semibold transition-all; -} - -.tab-button:not(:last-child) { - @apply mr-1; -} - -.tab-button.active { - @apply bg-slate-800 text-white; -} - -.tab-button.inactive { - @apply border-gray-400 bg-gray-300 text-black; -} - -.tab-button.inactive:hover { - @apply bg-gray-400; -} */ .mask-transparent::before { @apply absolute bottom-0 left-0 right-0 top-0 z-0; mask-image: linear-gradient(to bottom, white 200px, transparent); @@ -249,77 +226,3 @@ body::-webkit-scrollbar-thumb, .mask-transparent { position: relative; } - -.rings { - transform-style: preserve-3d; - width: 85%; - max-width: 300px; - aspect-ratio: 1; - position: relative; - transform: translate3d(0, 0, 100vmin) rotateX(-32deg) rotateY(-32deg) - rotateX(90deg); -} - -.ringAnimation { - --scale-base: calc(((100 / var(--count)) * var(--index)) * 1%); - --scale-top: calc(((100 / var(--count)) * var(--index)) * 1%); - width: calc(((100 / var(--count)) * var(--index)) * 1%); - aspect-ratio: 1; - position: absolute; - top: 50%; - left: 50%; - translate: -50% -50%; - transform: translate3d(0, 0, calc(var(--distance) * -1vmin)); - animation: float calc(var(--speed) * 1s) infinite var(--ease); - animation-delay: calc( - sin((var(--index) / var(--count)) * 45deg) * var(--speed) * -1s - ); -} - -.ringAnimation::after { - content: ""; - border: 2px solid - oklch(var(--lightness, 0.5) var(--chroma, 0.25) var(--base, 8)); - border-radius: calc(var(--radius) * 1%); - position: absolute; - inset: 0; -} - -.ringAnimation::after { - animation: hue calc(var(--speed) * 1s) infinite var(--ease); - animation-delay: calc( - sin((var(--index) / var(--count)) * 45deg) * var(--speed) * -1s - ); -} - -@keyframes hue { - 50% { - filter: hue-rotate(calc((var(--limit) - var(--base)) * 1deg)); - } -} - -@keyframes float { - 50% { - transform: translate3d(0, 0, calc(var(--distance) * 1vmin)); - } - 0%, - 45% { - width: var(--scale-base); - } - 75% { - width: var(--scale-top); - } -} - -@keyframes float-alternate { - 100% { - transform: translate3d(0, 0, calc(var(--distance) * 1vmin)); - } - 0%, - 45% { - width: var(--scale-base); - } - 75% { - width: var(--scale-top); - } -} diff --git a/package.json b/package.json index a8a08720..edeef37c 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "npm-check-updates": "^17.1.4", "prettier": "catalog:", "tsup": "^8.3.0", - "turbo": "2.2.0", + "turbo": "2.1.3", "typescript": "catalog:" }, "pnpm": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b93ece2e..c245b79a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,8 +68,8 @@ importers: specifier: ^8.3.0 version: 8.3.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(jiti@2.3.3)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.3)(yaml@2.6.0) turbo: - specifier: 2.2.0 - version: 2.2.0 + specifier: 2.1.3 + version: 2.1.3 typescript: specifier: 'catalog:' version: 5.6.3 @@ -16871,38 +16871,38 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - turbo-darwin-64@2.2.0: - resolution: {integrity: sha512-mJK+7hpvGsxyXfx2UTdewisXGIikRORoj25OKagsNw7dE7D1j0HnfWrjguIshlmFoQu18E5ipbdUAzjHdQGPkg==} + turbo-darwin-64@2.1.3: + resolution: {integrity: sha512-ouJOm0g0YyoBuhmikEujVCBGo3Zr0lbSOWFIsQtWUTItC88F2w2byhjtsYGPXQwMlTbXwmoBU2lOCfWNkeEwHQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.2.0: - resolution: {integrity: sha512-uStU2I1aMSj8/ord3gNXdr/k1Xk+pflfMPS4d/oQUAPld8L9plbQ8JSgoXsFoJYyU9vhTeXkjLkpnQxXoGnb9w==} + turbo-darwin-arm64@2.1.3: + resolution: {integrity: sha512-j2FOJsK4LAOtHQlb3Oom0yWB/Vi0nF1ljInr311mVzHoFAJRZtfW2fRvdZRb/lBUwjSp8be58qWHzANIcrA0OA==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.2.0: - resolution: {integrity: sha512-dVy/hquEDBy7trsSb5TynDGeS2iqcI9QTfC2kLZnsgPo6WWURXESN+AFChGxgZ2yp2CKrj5eZhnHdtRbP0a5EQ==} + turbo-linux-64@2.1.3: + resolution: {integrity: sha512-ubRHkI1gSel7H7wsmxKK8C9UlLWqg/2dkCC88LFupaK6TKgvBKqDqA0Z1M9C/escK0Jsle2k0H8bybV9OYIl4Q==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.2.0: - resolution: {integrity: sha512-YuCmCBQsvH8RZGDBqFXOm49UY3mJFRahQ7J8IT4KQX3O8zIPTu84715ILUTznElhlYY7IKoqfenovVzYFzEbMQ==} + turbo-linux-arm64@2.1.3: + resolution: {integrity: sha512-LffUL+e5wv7BtD6DgnM2kKOlDkMo2eRjhbAjVnrCD3wi2ug0tl6NDzajnHHjtaMyOnIf4AvzSKdLWsBxafGBQA==} cpu: [arm64] os: [linux] - turbo-windows-64@2.2.0: - resolution: {integrity: sha512-6WegPi7hEbKuQXR/VGJXGO0jV9tm+dyRNH6e3Edb3DMaa8ThnzfjxMmrvQwLbGgMNvjBRBEKAHhOAnE6FXdPew==} + turbo-windows-64@2.1.3: + resolution: {integrity: sha512-S9SvcZZoaq5jKr6kA6eF7/xgQhVn8Vh7PVy5lono9zybvhyL4eY++y2PaLToIgL8G9IcbLmgOC73ExNjFBg9XQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.2.0: - resolution: {integrity: sha512-kmk+A3aUy4dWhTVzW1itrWRtIilv4dFNRThfucBNYRL4Huyug+8qdX51iJjKyHMi0x51rcND62lukWWtFZhCSA==} + turbo-windows-arm64@2.1.3: + resolution: {integrity: sha512-twlEo8lRrGbrR6T/ZklUIquW3IlFCEtywklgVA81aIrSBm56+GEVpSrHhIlsx1hiYeSNrs+GpDwZGe+V7fvEVQ==} cpu: [arm64] os: [win32] - turbo@2.2.0: - resolution: {integrity: sha512-uyr+tFAKDKWIpihuUVYpEvuzQ3Pc+kICf0fbRzzc/86ram74azvwTXplzRQ+BUv8zTjwIRKNhrH5L4q0rgJyMw==} + turbo@2.1.3: + resolution: {integrity: sha512-lY0yj2GH2a2a3NExZ3rGe+rHUVeFE2aXuRAue57n+08E7Z7N7YCmynju0kPC1grAQzERmoLpKrmzmWd+PNiADw==} hasBin: true tween-functions@1.2.0: @@ -38816,32 +38816,32 @@ snapshots: dependencies: safe-buffer: 5.2.1 - turbo-darwin-64@2.2.0: + turbo-darwin-64@2.1.3: optional: true - turbo-darwin-arm64@2.2.0: + turbo-darwin-arm64@2.1.3: optional: true - turbo-linux-64@2.2.0: + turbo-linux-64@2.1.3: optional: true - turbo-linux-arm64@2.2.0: + turbo-linux-arm64@2.1.3: optional: true - turbo-windows-64@2.2.0: + turbo-windows-64@2.1.3: optional: true - turbo-windows-arm64@2.2.0: + turbo-windows-arm64@2.1.3: optional: true - turbo@2.2.0: + turbo@2.1.3: optionalDependencies: - turbo-darwin-64: 2.2.0 - turbo-darwin-arm64: 2.2.0 - turbo-linux-64: 2.2.0 - turbo-linux-arm64: 2.2.0 - turbo-windows-64: 2.2.0 - turbo-windows-arm64: 2.2.0 + turbo-darwin-64: 2.1.3 + turbo-darwin-arm64: 2.1.3 + turbo-linux-64: 2.1.3 + turbo-linux-arm64: 2.1.3 + turbo-windows-64: 2.1.3 + turbo-windows-arm64: 2.1.3 tween-functions@1.2.0: {} diff --git a/tooling/tailwind/base.ts b/tooling/tailwind/base.ts index 9c781af7..173b5b03 100644 --- a/tooling/tailwind/base.ts +++ b/tooling/tailwind/base.ts @@ -3,7 +3,12 @@ import { fontFamily } from "tailwindcss/defaultTheme"; export default { darkMode: ["class"], - content: ["src/**/*.{ts,tsx}"], + content: [ + "src/**/*.{ts,tsx}", + "../../apps/ui/src/components/**/*.{ts,tsx}", + "../../apps/ui/.storybook/**/*.{ts,tsx}", + "../../apps/ui/stories/**/*.{ts,tsx}", + ], theme: { extend: { colors: { diff --git a/turbo.json b/turbo.json index 8e1d1012..a952ea95 100644 --- a/turbo.json +++ b/turbo.json @@ -1,5 +1,6 @@ { "$schema": "https://turborepo.org/schema.json", + "ui": "tui", "tasks": { "topo": { "dependsOn": ["^topo"]