From 7f82807e3e4e174ce51a24190f23ab96df4639e4 Mon Sep 17 00:00:00 2001 From: Damien Schneider <74979845+damien-schneider@users.noreply.github.com> Date: Thu, 14 Nov 2024 11:24:06 +0100 Subject: [PATCH] V0.3.2 (#55) * :art: unify component type * :fire: remove dupplicated lib files * :fire: remove lastUpdatedDateComponent from multiple categories * :sparkles: v0.3.2 * :art: update slugPreviewFile format in gradientPricingTableComponent --- apps/website/package.json | 3 +- apps/website/src/app/(components)/layout.tsx | 29 ---- .../[section]/[category]/layout.tsx | 0 .../[category]/multiple-component-section.tsx | 9 +- .../[category]/opengraph-image.alt.txt | 0 .../[section]/[category]/opengraph-image.png | Bin .../[section]/[category]/page.tsx | 6 +- .../[category]/process-variant-data.ts | 14 +- .../[category]/single-component-section.tsx | 10 +- .../[section]/layout.tsx | 0 .../[section]/opengraph-image.alt.txt | 0 .../[section]/opengraph-image.png | Bin .../[section]/page.tsx | 0 .../{(components) => (site)}/about/page.tsx | 0 .../changelog/page.tsx | 15 +- .../getting-started/page.tsx | 0 apps/website/src/app/(site)/layout.tsx | 39 +++++ .../opengraph-image.alt.txt | 0 .../opengraph-image.png | Bin .../get-components/get-components.utils.ts | 4 - apps/website/src/app/card.tsx | 64 +++---- .../app/dev/generate-preview-images/page.tsx | 10 +- apps/website/src/app/dev/page.tsx | 6 + .../src/app/dev/playground-component/page.tsx | 15 ++ .../dev/playground-component/playground.tsx | 15 ++ .../src/app/dev/playground-component/test.tsx | 6 + apps/website/src/app/layout.tsx | 2 - .../[category]/[component]/[variant]/page.tsx | 117 +++++++++++++ .../[section]/[category]/[component]/page.tsx | 60 +++++++ apps/website/src/changelogs/2024-11-14.mdx | 17 ++ .../component-tab-renderer.tsx | 22 ++- .../component-wrapper/component-wrapper.tsx | 2 +- .../get-container-height-class.tsx | 2 +- .../component-wrapper/github-edit-button.tsx | 2 +- .../component-wrapper/header-component.tsx | 5 +- .../component-wrapper/variant-tabs.tsx | 20 ++- .../components/custom-iframe-component.tsx | 2 +- .../floating-dock.tsx | 9 +- .../components/navigation/desktop-menu.tsx | 4 +- .../components/navigation/navigation-item.tsx | 2 +- .../components/navigation/navigation-menu.tsx | 23 +-- .../search-group-multi-component-section.tsx | 2 +- apps/website/src/lib/badges.const.ts | 39 ----- apps/website/src/lib/first-menu-section.ts | 2 +- apps/website/src/lib/types/component.d.ts | 156 ------------------ apps/website/src/ui/address-bar.tsx | 4 +- .../src/ui/star-github-project-button.tsx | 40 +---- .../find-category-by-slug.ts | 2 +- .../find-section-by-slug.ts | 2 +- .../ui/cuicui/all-in-one-themes/theme1.tsx | 13 ++ .../advanced-bottom-action-menu.component.tsx | 1 - .../application-ui/alert/alert.category.tsx | 2 - .../authentication.category.tsx | 1 - .../battery/battery.category.tsx | 2 - .../advanced-code-block.component.tsx | 1 - .../code/code-card/code-card.component.tsx | 2 +- .../code-snippet/code-snippet.component.tsx | 2 +- .../inline-code/inline-code.component.tsx | 2 +- .../component.simple-cookie-banner.tsx | 1 - .../application-ui/kbd/kbd.category.tsx | 3 - .../component.dynamic-island-notification.tsx | 1 - .../search-bars/search-bars.category.tsx | 1 - .../settings/settings.category.tsx | 1 - .../react-signature.component.tsx | 1 - .../sliders/sliders.category.tsx | 2 - .../static-steppers.category.tsx | 1 - .../table-of-contents.category.tsx | 2 +- .../application-ui/theme/theme.category.tsx | 1 - .../recursive-tree.component.tsx | 1 - .../common-ui/badges/badges.category.tsx | 3 - .../blockquotes/blockquotes.category.tsx | 1 - .../common-ui/buttons/buttons.category.tsx | 7 - .../github-stars/preview.github-stars.tsx | 6 +- .../component.magnetic-button.tsx | 105 ++++++------ .../preview.magnetic-button.tsx | 11 +- .../cuicui/common-ui/cards/cards.category.tsx | 6 +- .../checkboxes/checkboxes.category.tsx | 2 - .../common-ui/inputs/inputs.category.tsx | 4 +- .../common-ui/loaders/loaders.category.tsx | 4 - .../navigation/navigation.category.tsx | 2 - .../skeletons/skeletons.category.tsx | 4 +- .../use-battery/use-battery.category.tsx | 2 +- .../category.use-click-outside.tsx | 1 - .../use-counter/category.use-counter.tsx | 1 - .../use-debounce/category.use-debounce.tsx | 1 - .../category.use-event-callback.tsx | 1 - .../category.use-event-listener.tsx | 1 - .../category.use-first-visit.tsx | 1 - .../category-use-geolocation.tsx | 1 - .../use-in-view/category.use-in-view.tsx | 1 - .../category.use-input-value.tsx | 1 - .../category.use-isomorphic-layout-effect.tsx | 1 - .../use-key-press/category.use-key-press.tsx | 1 - .../category.use-konami-code.tsx | 1 - .../category.use-local-storage.tsx | 1 - .../use-location/category.use-location.tsx | 2 +- .../use-measure/category.use-measure.tsx | 1 - .../hooks/use-mouse/component.use-mouse.tsx | 9 +- .../category.use-network.tsx | 2 +- .../category.use-online-status.tsx | 1 - .../use-rerender/component.use-rerender.tsx | 1 - .../hooks/use-step/category.use-step.tsx | 2 +- .../use-stopwatch/category.use-stopwatch.tsx | 1 - .../category.use-text-to-speech.tsx | 1 - .../use-throttle/category.use-throttle.tsx | 1 - .../hooks/use-video/category.use-video.tsx | 1 - .../category.use-window-scroll-postion.tsx | 1 - .../category.use-window-size.tsx | 1 - .../carousels/category.carousels.tsx | 3 +- .../full-section/component.full-section.tsx | 2 +- .../gradient-qna/component.gradient-qna.tsx | 1 - .../features/category.features.tsx | 3 +- .../component.gradient-pricing-table.tsx | 2 +- .../component.artlist-inspired.tsx | 1 - .../statistics/category.statistics.tsx | 3 - .../testimonials/category.testimonials.tsx | 3 +- .../animated-noise/animated-noise.tsx | 11 +- .../component.animated-noise.tsx | 1 - .../animated-noise/preview.animated-noise.tsx | 11 +- .../animated-noise/preview.static-noise.tsx | 2 +- .../animated-noise/static-noise.tsx | 12 +- .../border-trail/component.animated-noise.tsx | 1 - .../component.bottom-blur-out.tsx | 1 - .../category.creative-effet.tsx | 2 + .../wavy-line/definition.wavy-line.tsx | 17 ++ .../wavy-line/preview.wavy-line.tsx | 5 + .../creative-effects/wavy-line/wavy-line.tsx | 115 +++++++++++++ .../card-hover-cursor-effect.component.tsx | 1 - .../follow-cursor/follow-cursor.component.tsx | 1 - .../other/mock-ups/mock-ups.category.tsx | 4 +- .../grid-pattern/component.grid-pattern.tsx | 1 - .../other/patterns/patterns.category.tsx | 3 +- .../bar-code-generator.component.tsx | 2 - .../qr-code-generator.component.tsx | 1 - .../slide-in-on-scroll.component.tsx | 2 +- .../component.text-effect-wrapper.tsx | 1 - .../component.text-effect-wrapper.tsx | 1 - .../transition-wrappers.category.tsx | 1 - .../color-converter/page.color-converter.tsx | 15 -- .../catch-error/category.catch-error.tsx | 1 - packages/ui/cuicui/utils/cn/cn.category.tsx | 1 - .../ui/cuicui/utils/sleep/sleep.category.tsx | 2 +- packages/ui/lib/first-menu-section.ts | 38 ----- packages/ui/lib/site.const.ts | 7 - packages/ui/lib/types/component.d.ts | 12 +- readme.md | 27 +-- turbo.json | 4 +- 147 files changed, 677 insertions(+), 660 deletions(-) delete mode 100644 apps/website/src/app/(components)/layout.tsx rename apps/website/src/app/{(components) => (site)}/[section]/[category]/layout.tsx (100%) rename apps/website/src/app/{(components) => (site)}/[section]/[category]/multiple-component-section.tsx (86%) rename apps/website/src/app/{(components) => (site)}/[section]/[category]/opengraph-image.alt.txt (100%) rename apps/website/src/app/{(components) => (site)}/[section]/[category]/opengraph-image.png (100%) rename apps/website/src/app/{(components) => (site)}/[section]/[category]/page.tsx (87%) rename apps/website/src/app/{(components) => (site)}/[section]/[category]/process-variant-data.ts (89%) rename apps/website/src/app/{(components) => (site)}/[section]/[category]/single-component-section.tsx (85%) rename apps/website/src/app/{(components) => (site)}/[section]/layout.tsx (100%) rename apps/website/src/app/{(components) => (site)}/[section]/opengraph-image.alt.txt (100%) rename apps/website/src/app/{(components) => (site)}/[section]/opengraph-image.png (100%) rename apps/website/src/app/{(components) => (site)}/[section]/page.tsx (100%) rename apps/website/src/app/{(components) => (site)}/about/page.tsx (100%) rename apps/website/src/app/{(components) => (site)}/changelog/page.tsx (86%) rename apps/website/src/app/{(components) => (site)}/getting-started/page.tsx (100%) create mode 100644 apps/website/src/app/(site)/layout.tsx rename apps/website/src/app/{(components) => (site)}/opengraph-image.alt.txt (100%) rename apps/website/src/app/{(components) => (site)}/opengraph-image.png (100%) create mode 100644 apps/website/src/app/dev/page.tsx create mode 100644 apps/website/src/app/dev/playground-component/page.tsx create mode 100644 apps/website/src/app/dev/playground-component/playground.tsx create mode 100644 apps/website/src/app/dev/playground-component/test.tsx create mode 100644 apps/website/src/app/preview/[section]/[category]/[component]/[variant]/page.tsx create mode 100644 apps/website/src/app/preview/[section]/[category]/[component]/page.tsx create mode 100644 apps/website/src/changelogs/2024-11-14.mdx delete mode 100644 apps/website/src/lib/badges.const.ts delete mode 100644 apps/website/src/lib/types/component.d.ts create mode 100644 packages/ui/cuicui/all-in-one-themes/theme1.tsx create mode 100644 packages/ui/cuicui/other/creative-effects/wavy-line/definition.wavy-line.tsx create mode 100644 packages/ui/cuicui/other/creative-effects/wavy-line/preview.wavy-line.tsx create mode 100644 packages/ui/cuicui/other/creative-effects/wavy-line/wavy-line.tsx delete mode 100644 packages/ui/lib/first-menu-section.ts delete mode 100644 packages/ui/lib/site.const.ts diff --git a/apps/website/package.json b/apps/website/package.json index 72710af0..f33970bd 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -91,7 +91,8 @@ "lint:check": "biome check ./src", "lint:write-unsafe": "biome check --write --unsafe ./src", "test": "vitest", - "test:watch": "vitest --watch" + "test:watch": "vitest --watch", + "type-check": "tsc --noEmit" }, "version": "0.1.2" } \ No newline at end of file diff --git a/apps/website/src/app/(components)/layout.tsx b/apps/website/src/app/(components)/layout.tsx deleted file mode 100644 index 0315550a..00000000 --- a/apps/website/src/app/(components)/layout.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { DesktopSideMenu } from "#/src/components/navigation/desktop-menu"; - -import { AddressBar } from "#/src/ui/address-bar"; -import StarGithubProjectButton from "#/src/ui/star-github-project-button"; -import type React from "react"; - -export default function ComponentsLayout({ - children, -}: Readonly<{ children: React.ReactNode }>) { - return ( -
- - -
- {/* Add overflow-auto if layout width problems */} - - - -
-
{children}
-
- -
- -
-
-
- ); -} diff --git a/apps/website/src/app/(components)/[section]/[category]/layout.tsx b/apps/website/src/app/(site)/[section]/[category]/layout.tsx similarity index 100% rename from apps/website/src/app/(components)/[section]/[category]/layout.tsx rename to apps/website/src/app/(site)/[section]/[category]/layout.tsx diff --git a/apps/website/src/app/(components)/[section]/[category]/multiple-component-section.tsx b/apps/website/src/app/(site)/[section]/[category]/multiple-component-section.tsx similarity index 86% rename from apps/website/src/app/(components)/[section]/[category]/multiple-component-section.tsx rename to apps/website/src/app/(site)/[section]/[category]/multiple-component-section.tsx index 639bfd52..86993cae 100644 --- a/apps/website/src/app/(components)/[section]/[category]/multiple-component-section.tsx +++ b/apps/website/src/app/(site)/[section]/[category]/multiple-component-section.tsx @@ -1,10 +1,10 @@ import { notFound } from "next/navigation"; -import { fetchMultipleComponentData } from "#/src/app/(components)/[section]/[category]/process-variant-data"; +import { fetchMultipleComponentData } from "#/src/app/(site)/[section]/[category]/process-variant-data"; import ComingSoonCard from "#/src/components/coming-soon"; import HeaderComponent from "#/src/components/component-wrapper/header-component"; import InspirationComponentFooter from "#/src/components/component-wrapper/inspiration-component-footer"; import VariantTabs from "#/src/components/component-wrapper/variant-tabs"; -import type { CategoryType, SectionType } from "#/src/lib/types/component"; +import type { CategoryType, SectionType } from "@cuicui/ui/lib/types/component"; import GithubEditButton from "#/src/components/component-wrapper/github-edit-button"; export default async function MultipleComponentCategory({ @@ -56,6 +56,11 @@ export default async function MultipleComponentCategory({ rerenderButton={component.rerenderButton} size={component.sizePreview} variantList={component.componentList} + componentParams={{ + sectionSlug, + categorySlug: category.slug, + componentSlug: component.slug, + }} /> ))} diff --git a/apps/website/src/app/(components)/[section]/[category]/opengraph-image.alt.txt b/apps/website/src/app/(site)/[section]/[category]/opengraph-image.alt.txt similarity index 100% rename from apps/website/src/app/(components)/[section]/[category]/opengraph-image.alt.txt rename to apps/website/src/app/(site)/[section]/[category]/opengraph-image.alt.txt diff --git a/apps/website/src/app/(components)/[section]/[category]/opengraph-image.png b/apps/website/src/app/(site)/[section]/[category]/opengraph-image.png similarity index 100% rename from apps/website/src/app/(components)/[section]/[category]/opengraph-image.png rename to apps/website/src/app/(site)/[section]/[category]/opengraph-image.png diff --git a/apps/website/src/app/(components)/[section]/[category]/page.tsx b/apps/website/src/app/(site)/[section]/[category]/page.tsx similarity index 87% rename from apps/website/src/app/(components)/[section]/[category]/page.tsx rename to apps/website/src/app/(site)/[section]/[category]/page.tsx index 545a6b55..217c63e0 100644 --- a/apps/website/src/app/(components)/[section]/[category]/page.tsx +++ b/apps/website/src/app/(site)/[section]/[category]/page.tsx @@ -1,11 +1,11 @@ import { notFound } from "next/navigation"; -import MultipleComponentCategory from "#/src/app/(components)/[section]/[category]/multiple-component-section"; -import SingleComponentCategory from "#/src/app/(components)/[section]/[category]/single-component-section"; +import MultipleComponentCategory from "#/src/app/(site)/[section]/[category]/multiple-component-section"; +import SingleComponentCategory from "#/src/app/(site)/[section]/[category]/single-component-section"; import { SectionsList } from "@cuicui/ui"; import type { CategoryType, SingleComponentCategoryType, -} from "#/src/lib/types/component"; +} from "@cuicui/ui/lib/types/component"; import { findCategoryBySlug } from "#/src/utils/section-category-components-utils/find-category-by-slug"; type Props = { params: { diff --git a/apps/website/src/app/(components)/[section]/[category]/process-variant-data.ts b/apps/website/src/app/(site)/[section]/[category]/process-variant-data.ts similarity index 89% rename from apps/website/src/app/(components)/[section]/[category]/process-variant-data.ts rename to apps/website/src/app/(site)/[section]/[category]/process-variant-data.ts index 10e58a61..330bb977 100644 --- a/apps/website/src/app/(components)/[section]/[category]/process-variant-data.ts +++ b/apps/website/src/app/(site)/[section]/[category]/process-variant-data.ts @@ -1,17 +1,13 @@ import type { ComponentType, + ProcessedVariantType, SingleComponentType, VariantType, -} from "#/src/lib/types/component"; +} from "@cuicui/ui/lib/types/component"; import { getFileContentAsString } from "#/src/utils/get-file-content-as-string"; -interface ProcessedVariant extends VariantType { - previewCode: string; - componentCode?: string; -} - interface ProcessedComponent extends ComponentType { - componentList: ProcessedVariant[]; + componentList: ProcessedVariantType[]; } export async function fetchVariantData({ @@ -71,7 +67,7 @@ export async function fetchMultipleComponentData({ const processedComponents: ProcessedComponent[] = []; for (const component of componentList) { - const processedVariants: ProcessedVariant[] = []; + const processedVariants: ProcessedVariantType[] = []; for (const variant of component.variantList) { const processedVariant = await fetchVariantData({ @@ -100,7 +96,7 @@ export async function fetchSingleComponentData({ categorySlug: string; component: SingleComponentType; }) { - const processedVariants: ProcessedVariant[] = []; + const processedVariants: ProcessedVariantType[] = []; for (const variant of component.variantList) { const processedVariant = await fetchVariantData({ categorySlug, variant }); diff --git a/apps/website/src/app/(components)/[section]/[category]/single-component-section.tsx b/apps/website/src/app/(site)/[section]/[category]/single-component-section.tsx similarity index 85% rename from apps/website/src/app/(components)/[section]/[category]/single-component-section.tsx rename to apps/website/src/app/(site)/[section]/[category]/single-component-section.tsx index f7c73b20..e9a2e02a 100644 --- a/apps/website/src/app/(components)/[section]/[category]/single-component-section.tsx +++ b/apps/website/src/app/(site)/[section]/[category]/single-component-section.tsx @@ -1,5 +1,5 @@ import { notFound } from "next/navigation"; -import { fetchSingleComponentData } from "#/src/app/(components)/[section]/[category]/process-variant-data"; +import { fetchSingleComponentData } from "#/src/app/(site)/[section]/[category]/process-variant-data"; import ComingSoonCard from "#/src/components/coming-soon"; import HeaderComponent from "#/src/components/component-wrapper/header-component"; import InspirationComponentFooter from "#/src/components/component-wrapper/inspiration-component-footer"; @@ -7,7 +7,7 @@ import VariantTabs from "#/src/components/component-wrapper/variant-tabs"; import type { SectionType, SingleComponentCategoryType, -} from "#/src/lib/types/component"; +} from "@cuicui/ui/lib/types/component"; import GithubEditButton from "#/src/components/component-wrapper/github-edit-button"; export default async function SingleComponentCategory({ @@ -27,7 +27,7 @@ export default async function SingleComponentCategory({ const component = await fetchSingleComponentData({ categorySlug: category.slug, - component: category.component, + component: { ...category.component }, }); return ( @@ -50,6 +50,10 @@ export default async function SingleComponentCategory({ rerenderButton={component.rerenderButton} size={component.sizePreview} variantList={component.componentList} + componentParams={{ + sectionSlug, + categorySlug: category.slug, + }} /> b.date.getTime() - a.date.getTime(), + ); + return (

Changelog

-
- {changelogs.map(({ content, date, title }) => { +
+ {sortedChangelogs.map(({ content, date, title }, index) => { return (
-
{format(date, "do MMMM yyyy")}
+
{format(date, "do MMMM yyyy")}
+ {index === 0 && ( +

+ Latest Release +

+ )}

{formatDistanceToNow(date, { addSuffix: true })}

diff --git a/apps/website/src/app/(components)/getting-started/page.tsx b/apps/website/src/app/(site)/getting-started/page.tsx similarity index 100% rename from apps/website/src/app/(components)/getting-started/page.tsx rename to apps/website/src/app/(site)/getting-started/page.tsx diff --git a/apps/website/src/app/(site)/layout.tsx b/apps/website/src/app/(site)/layout.tsx new file mode 100644 index 00000000..b0a40258 --- /dev/null +++ b/apps/website/src/app/(site)/layout.tsx @@ -0,0 +1,39 @@ +import { CuicuiFloatingDock } from "#/src/components/floating-dock-navigation/floating-dock"; +import { DesktopSideMenu } from "#/src/components/navigation/desktop-menu"; + +import { AddressBar } from "#/src/ui/address-bar"; +import StarCuicuiGithubButton from "#/src/ui/star-github-project-button"; +import { StaticNoise } from "@/cuicui/other/creative-effects/animated-noise/static-noise"; +import type React from "react"; + +export default function ComponentsLayout({ + children, +}: Readonly<{ children: React.ReactNode }>) { + return ( + <> +
+ {/* Note: The noise effect is experimental and may affect the design. Consider its impact before using it officialy. */} + + + +
+ {/* Add overflow-auto if layout width problems */} + + + +
+
{children}
+
+ +
+ +
+
+
+ + + ); +} diff --git a/apps/website/src/app/(components)/opengraph-image.alt.txt b/apps/website/src/app/(site)/opengraph-image.alt.txt similarity index 100% rename from apps/website/src/app/(components)/opengraph-image.alt.txt rename to apps/website/src/app/(site)/opengraph-image.alt.txt diff --git a/apps/website/src/app/(components)/opengraph-image.png b/apps/website/src/app/(site)/opengraph-image.png similarity index 100% rename from apps/website/src/app/(components)/opengraph-image.png rename to apps/website/src/app/(site)/opengraph-image.png diff --git a/apps/website/src/app/api/get-components/get-components.utils.ts b/apps/website/src/app/api/get-components/get-components.utils.ts index 3425ec07..9d404d8d 100644 --- a/apps/website/src/app/api/get-components/get-components.utils.ts +++ b/apps/website/src/app/api/get-components/get-components.utils.ts @@ -52,9 +52,6 @@ export function extractComponents(node: FileSystemNode): ComponentType[] { description: node.config.description, sizePreview: node.config.sizePreview, slug: node.config.slug, - lastUpdatedDateComponent: node.config.lastUpdatedDateComponent - ? new Date(node.config.lastUpdatedDateComponent) - : undefined, isIframed: node.config.isIframed, variantList: [], inspiration: node.config.inspiration, @@ -114,7 +111,6 @@ export type ComponentType = { description: string; sizePreview: string; slug: string; - lastUpdatedDateComponent?: Date; isIframed?: boolean; variantList: VariantType[]; inspiration?: string; diff --git a/apps/website/src/app/card.tsx b/apps/website/src/app/card.tsx index 03a131cf..0393ac46 100644 --- a/apps/website/src/app/card.tsx +++ b/apps/website/src/app/card.tsx @@ -1,40 +1,40 @@ import Image from "next/image"; import type { - CategoryType, - SingleComponentCategoryType, -} from "../lib/types/component"; + CategoryType, + SingleComponentCategoryType, +} from "@cuicui/ui/lib/types/component"; export const MainMenuCardContent = ({ - category, - sectionSlug, + category, + sectionSlug, }: { - category: CategoryType | SingleComponentCategoryType; - sectionSlug: string; + category: CategoryType | SingleComponentCategoryType; + sectionSlug: string; }) => { - if (category?.comingSoonCategory) { - return ( -

- Coming Soon -

- ); - } + if (category?.comingSoonCategory) { + return ( +

+ Coming Soon +

+ ); + } - return ( - <> - {`${category.name} - {`${category.name} - - ); + return ( + <> + {`${category.name} + {`${category.name} + + ); }; diff --git a/apps/website/src/app/dev/generate-preview-images/page.tsx b/apps/website/src/app/dev/generate-preview-images/page.tsx index 2be4181a..8cf959db 100644 --- a/apps/website/src/app/dev/generate-preview-images/page.tsx +++ b/apps/website/src/app/dev/generate-preview-images/page.tsx @@ -2,10 +2,14 @@ import GeneratePreviewImages from "./generate-preview-images"; import type { Metadata } from "next"; export const metadata: Metadata = { - referrer: "no-referrer", - robots: "noindex, nofollow", + referrer: "no-referrer", + robots: "noindex, nofollow", }; export default function PageGeneratePreviewImages() { - return ; + if (process.env.NODE_ENV === "production") { + return null; + } + + return ; } diff --git a/apps/website/src/app/dev/page.tsx b/apps/website/src/app/dev/page.tsx new file mode 100644 index 00000000..02330c93 --- /dev/null +++ b/apps/website/src/app/dev/page.tsx @@ -0,0 +1,6 @@ +import Modern3dKbdVariant1 from "@/cuicui/application-ui/kbd/modern-3d-kbd/variant1"; +import React from "react"; + +export default function Page() { + return ; +} diff --git a/apps/website/src/app/dev/playground-component/page.tsx b/apps/website/src/app/dev/playground-component/page.tsx new file mode 100644 index 00000000..7c9ca61c --- /dev/null +++ b/apps/website/src/app/dev/playground-component/page.tsx @@ -0,0 +1,15 @@ +import Playground from "#/src/app/dev/playground-component/playground"; +import type { Metadata } from "next"; + +export const metadata: Metadata = { + referrer: "no-referrer", + robots: "noindex, nofollow", +}; + +export default function PageGeneratePreviewImages() { + if (process.env.NODE_ENV === "production") { + return null; + } + + return ; +} diff --git a/apps/website/src/app/dev/playground-component/playground.tsx b/apps/website/src/app/dev/playground-component/playground.tsx new file mode 100644 index 00000000..253babd6 --- /dev/null +++ b/apps/website/src/app/dev/playground-component/playground.tsx @@ -0,0 +1,15 @@ +import React from "react"; + +export default function Playground() { + return ( +
+ +
+ ); +} diff --git a/apps/website/src/app/dev/playground-component/test.tsx b/apps/website/src/app/dev/playground-component/test.tsx new file mode 100644 index 00000000..203f468f --- /dev/null +++ b/apps/website/src/app/dev/playground-component/test.tsx @@ -0,0 +1,6 @@ +import Modern3dKbdVariant1 from "@/cuicui/application-ui/kbd/modern-3d-kbd/variant1"; +import React from "react"; + +export default function test() { + return ; +} diff --git a/apps/website/src/app/layout.tsx b/apps/website/src/app/layout.tsx index 158c4f8f..d761d779 100644 --- a/apps/website/src/app/layout.tsx +++ b/apps/website/src/app/layout.tsx @@ -6,7 +6,6 @@ import { DM_Sans } from "next/font/google"; import type { ReactNode } from "react"; import Providers from "#/src/app/providers"; import PlausibleScripts from "#/src/components/analytics/plausible-scripts"; -import { CuicuiFloatingDock } from "#/src/components/floating-dock-navigation/floating-dock"; const font = DM_Sans({ subsets: ["latin"], display: "swap", @@ -64,7 +63,6 @@ export default function RootLayout({ {children} - diff --git a/apps/website/src/app/preview/[section]/[category]/[component]/[variant]/page.tsx b/apps/website/src/app/preview/[section]/[category]/[component]/[variant]/page.tsx new file mode 100644 index 00000000..ea2f2645 --- /dev/null +++ b/apps/website/src/app/preview/[section]/[category]/[component]/[variant]/page.tsx @@ -0,0 +1,117 @@ +import { SectionsList } from "@cuicui/ui/lib/sections-list"; +import type { Metadata } from "next"; +import { notFound } from "next/navigation"; + +export const metadata: Metadata = { + referrer: "no-referrer", + robots: "noindex, nofollow", +}; + +export async function generateStaticParams() { + return SectionsList.map((section) => { + if (section.type === "multiple-component") { + return section.categoriesList.map((category) => { + return category.componentList?.map((component) => { + return component.variantList.map((variant) => { + return { + params: { + section: section.slug, + category: category.slug, + component: component.slug, + variant: variant.slugPreviewFile, + }, + }; + }); + }); + }); + } + }); +} + +export default function PagePreview({ + params: { section, category, component, variant }, +}: { + params: { + section: string; + category: string; + component: string; + variant: string; + }; +}) { + const variantFound = findCorrespondingComponent({ + section, + category, + component, + variant, + }); + + if (!variantFound) { + return notFound(); + } + + return ( +
+ {variantFound.component} +
+ ); +} + +export const findCorrespondingComponent = ({ + section, + category, + component, + variant, +}: { + section: string; + category: string; + component: string; + variant?: string; +}) => { + const sectionFound = SectionsList.find((s) => s.slug === section); + if (!sectionFound) { + return null; + } + console.log(sectionFound.slug); + if (sectionFound.type === "multiple-component") { + const categoryFound = sectionFound.categoriesList.find( + (c) => c.slug === category, + ); + if (!categoryFound) { + return null; + } + console.log(categoryFound.slug); + + const componentFound = categoryFound.componentList?.find( + (c) => c.slug === component, + ); + if (!componentFound) { + return null; + } + + console.log(componentFound.slug); + + const variantFound = componentFound.variantList.find( + (v) => v.slugPreviewFile === variant, + ); + + console.log(variantFound?.slugPreviewFile); + + return variantFound; + } + + if (sectionFound.type === "single-component") { + const categoryFound = sectionFound.categoriesList.find( + (c) => c.slug === category, + ); + if (!categoryFound) { + return null; + } + + const variantFound = categoryFound.component?.variantList.find( + // We use component instead of variant as it is a single-component + (v) => v.slugPreviewFile === component, + ); + + return variantFound; + } +}; diff --git a/apps/website/src/app/preview/[section]/[category]/[component]/page.tsx b/apps/website/src/app/preview/[section]/[category]/[component]/page.tsx new file mode 100644 index 00000000..ee309239 --- /dev/null +++ b/apps/website/src/app/preview/[section]/[category]/[component]/page.tsx @@ -0,0 +1,60 @@ +import { findCorrespondingComponent } from "#/src/app/preview/[section]/[category]/[component]/[variant]/page"; +import { SectionsList } from "@cuicui/ui/lib/sections-list"; +import type { Metadata } from "next"; +import { notFound } from "next/navigation"; + +export const metadata: Metadata = { + referrer: "no-referrer", + robots: "noindex, nofollow", +}; + +export async function generateStaticParams() { + return SectionsList.map((section) => { + if (section.type === "single-component") { + return section.categoriesList.map((category) => { + if (!category.component) { + return null; + } + return category.component.variantList.map((variant) => { + if (!category.component) { + return null; + } + + return { + params: { + section: section.slug, + category: category.slug, + component: variant.slugPreviewFile, + }, + }; + }); + }); + } + }); +} + +export default function PagePreview({ + params: { section, category, component }, +}: { + params: { + section: string; + category: string; + component: string; + }; +}) { + const variantFound = findCorrespondingComponent({ + section, + category, + component, + }); + + if (!variantFound) { + return notFound(); + } + + return ( +
+ {variantFound.component} +
+ ); +} diff --git a/apps/website/src/changelogs/2024-11-14.mdx b/apps/website/src/changelogs/2024-11-14.mdx new file mode 100644 index 00000000..b2776939 --- /dev/null +++ b/apps/website/src/changelogs/2024-11-14.mdx @@ -0,0 +1,17 @@ +--- +title: Waveline component, Noise & Layout fix +--- + +#### New component + +- A new creative effect : The waveline + +#### Updated components + +- The noise effect has been updated to be more responsive and the preview is cleaner. +- The static Noise has also been improve in light mode and is now used to style the website. +- Code component props improved to now accept a language prop. + +##### Website fix + +- Fix the overflow issue due to the adress bar. \ No newline at end of file diff --git a/apps/website/src/components/component-wrapper/component-tab-renderer.tsx b/apps/website/src/components/component-wrapper/component-tab-renderer.tsx index 06482af2..05af2181 100644 --- a/apps/website/src/components/component-wrapper/component-tab-renderer.tsx +++ b/apps/website/src/components/component-wrapper/component-tab-renderer.tsx @@ -1,4 +1,3 @@ -// biome-ignore lint/style/noNamespaceImport: import * as Tabs from "@radix-ui/react-tabs"; import "./full-component.css"; @@ -7,8 +6,8 @@ import { ComponentWrapper } from "#/src/components/component-wrapper/component-w import StepToInstall from "#/src/components/steps-to-install/step-to-install"; import type { ComponentHeightType, - ProcessVariantType, -} from "#/src/lib/types/component"; + ProcessedVariantType, +} from "@cuicui/ui/lib/types/component"; import CodeHighlighter from "#/src/ui/code-highlighter"; import { ResizableHandle, @@ -45,12 +44,19 @@ export default function ComponentTabRenderer({ rerenderButton, isIframed = false, size, + componentParams, }: { isResizable?: boolean; rerenderButton?: boolean; isIframed?: boolean; size: ComponentHeightType; -} & ProcessVariantType) { + componentParams: { + sectionSlug: string; + categorySlug: string; + componentSlug: string; + variantSlug: string; + }; +} & ProcessedVariantType) { return ( {/* {rerenderButton && } */} + {/*

+ {`/preview/${componentParams.sectionSlug}/${componentParams.categorySlug}/${componentParams.componentSlug}/${componentParams.variantSlug}`} +

+