diff --git a/.changeset/chilly-rules-marry.md b/.changeset/chilly-rules-marry.md deleted file mode 100644 index c1d921c748..0000000000 --- a/.changeset/chilly-rules-marry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nextui-org/input": patch ---- - -label placement with file input type (#4364) diff --git a/.changeset/clever-teachers-live.md b/.changeset/clever-teachers-live.md deleted file mode 100644 index dd9df28446..0000000000 --- a/.changeset/clever-teachers-live.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nextui-org/shared-utils": patch ---- - -fix process is not defined diff --git a/.changeset/famous-avocados-run.md b/.changeset/famous-avocados-run.md deleted file mode 100644 index cdcb7f4c60..0000000000 --- a/.changeset/famous-avocados-run.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@nextui-org/checkbox": patch -"@nextui-org/switch": patch -"@nextui-org/radio": patch ---- - -bump `@nextui-org/theme` in peerDependencies diff --git a/.changeset/late-doors-rhyme.md b/.changeset/late-doors-rhyme.md deleted file mode 100644 index 1588c6a78a..0000000000 --- a/.changeset/late-doors-rhyme.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nextui-org/theme": patch ---- - -Fixing the input in card to not become invisible on hover and making time-input and date-input consistent to other inputs. diff --git a/.changeset/many-kiwis-pretend.md b/.changeset/many-kiwis-pretend.md deleted file mode 100644 index c277a1a324..0000000000 --- a/.changeset/many-kiwis-pretend.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@nextui-org/alert": patch -"@nextui-org/theme": patch ---- - -Fix #4382 `hideIconWrapper` property wasn't removing the borded on `Alert` component diff --git a/.changeset/old-peas-cheat.md b/.changeset/old-peas-cheat.md deleted file mode 100644 index 14647cb366..0000000000 --- a/.changeset/old-peas-cheat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nextui-org/theme": patch ---- - -menu base use overflow-clip to fix listbox section sticky (#4335) diff --git a/.changeset/polite-dingos-call.md b/.changeset/polite-dingos-call.md deleted file mode 100644 index 6c2270045f..0000000000 --- a/.changeset/polite-dingos-call.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nextui-org/alert": patch ---- - -fix alert slots & variantProps import (#4336) diff --git a/.changeset/silent-jars-grow.md b/.changeset/silent-jars-grow.md deleted file mode 100644 index fd977ba035..0000000000 --- a/.changeset/silent-jars-grow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nextui-org/input-otp": patch ---- - -Change ensures that the input value does not accept any disallowed characters when the value prop contains them (#4329) diff --git a/.changeset/twelve-ducks-thank.md b/.changeset/twelve-ducks-thank.md deleted file mode 100644 index ad8ba259a3..0000000000 --- a/.changeset/twelve-ducks-thank.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nextui-org/system-rsc": patch ---- - -Fix data type returned by the extendVariants function (#4269) diff --git a/.changeset/two-ghosts-search.md b/.changeset/two-ghosts-search.md deleted file mode 100644 index 93c016e26b..0000000000 --- a/.changeset/two-ghosts-search.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@nextui-org/alert": patch ---- - -replace decrepate onClick in Alert diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore index d9392ede0a..9b99dfb34d 100644 --- a/apps/docs/.gitignore +++ b/apps/docs/.gitignore @@ -28,6 +28,7 @@ yarn-error.log* # local env files .env .env*.local +.dev.vars # vercel .vercel @@ -35,3 +36,7 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +# cloudflare +.wrangler +/.open-next/ diff --git a/apps/docs/app/blog/layout.tsx b/apps/docs/app/blog/layout.tsx index 81b173e1f0..a105d13a2c 100644 --- a/apps/docs/app/blog/layout.tsx +++ b/apps/docs/app/blog/layout.tsx @@ -16,13 +16,21 @@ export default function DocsLayout({children}: DocsLayoutProps) { aria-hidden="true" className="fixed hidden dark:md:block dark:opacity-70 -bottom-[40%] -left-[20%] z-0" > - docs left background + docs left background diff --git a/apps/docs/app/docs/layout.tsx b/apps/docs/app/docs/layout.tsx index 9ed37fa8ab..1f527d98df 100644 --- a/apps/docs/app/docs/layout.tsx +++ b/apps/docs/app/docs/layout.tsx @@ -21,15 +21,23 @@ export default function DocsLayout({children}: DocsLayoutProps) { diff --git a/apps/docs/app/robots.txt b/apps/docs/app/robots.txt new file mode 100644 index 0000000000..1f53798bb4 --- /dev/null +++ b/apps/docs/app/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/apps/docs/components/copy-button.tsx b/apps/docs/components/copy-button.tsx index 72a4b871ff..d6c32efc7d 100644 --- a/apps/docs/components/copy-button.tsx +++ b/apps/docs/components/copy-button.tsx @@ -1,7 +1,8 @@ -import {FC} from "react"; -import {Button, ButtonProps} from "@nextui-org/react"; +import {ButtonProps} from "@nextui-org/react"; import {useClipboard} from "@nextui-org/use-clipboard"; -import {clsx} from "@nextui-org/shared-utils"; +import {memo} from "react"; + +import {PreviewButton} from "./preview-button"; import {CheckLinearIcon, CopyLinearIcon} from "@/components/icons"; @@ -9,35 +10,28 @@ export interface CopyButtonProps extends ButtonProps { value?: string; } -export const CopyButton: FC = ({value, className, ...buttonProps}) => { +export const CopyButton = memo(({value, className, ...buttonProps}) => { const {copy, copied} = useClipboard(); + const icon = copied ? ( + + ) : ( + + ); + const handleCopy = () => { copy(value); }; - return ( - - ); -}; + return ; +}); + +CopyButton.displayName = "CopyButton"; diff --git a/apps/docs/components/docs/components/code-demo/react-live-demo.tsx b/apps/docs/components/docs/components/code-demo/react-live-demo.tsx index 74332d7636..de8813491a 100644 --- a/apps/docs/components/docs/components/code-demo/react-live-demo.tsx +++ b/apps/docs/components/docs/components/code-demo/react-live-demo.tsx @@ -10,6 +10,8 @@ import {SandpackFiles} from "@codesandbox/sandpack-react/types"; import {BgGridContainer} from "@/components/bg-grid-container"; import {GradientBox, GradientBoxProps} from "@/components/gradient-box"; import {CopyButton} from "@/components/copy-button"; +import {StackblitzButton} from "@/components/stackblitz-button"; +import {PreviewButton} from "@/components/preview-button"; export interface ReactLiveDemoProps { code: string; @@ -21,6 +23,7 @@ export interface ReactLiveDemoProps { className?: string; gradientColor?: GradientBoxProps["color"]; overflow?: "auto" | "visible" | "hidden"; + typescriptStrict?: boolean; } // 🚨 Do not pass react-hook-form to scope, it will break the live preview since @@ -49,11 +52,18 @@ export const ReactLiveDemo: React.FC = ({ height, className, noInline, + typescriptStrict = false, }) => { const content = ( <> {files?.[DEFAULT_FILE] && ( -
+
+ } + className="before:hidden opacity-0 group-hover/code-demo:opacity-100 transition-opacity text-zinc-400" + files={files} + typescriptStrict={typescriptStrict} + /> = ({width = "1em", height = "1em", ); }; +const StackblitzIcon: React.FC = ({...props}) => { + return ( + + + + ); +}; + const JavascriptIcon: React.FC = ({width = "1em", height = "1em", ...props}) => { return (
{Children.map(children, (child) => child && typeof child === "object" && "type" in child ? cloneElement(child) : child, diff --git a/apps/docs/components/marketing/nextui-pro-section/index.ts b/apps/docs/components/marketing/nextui-pro-section/index.ts new file mode 100644 index 0000000000..20e3f8cf66 --- /dev/null +++ b/apps/docs/components/marketing/nextui-pro-section/index.ts @@ -0,0 +1 @@ +export {NextUIProSection} from "./nextui-pro-section"; diff --git a/apps/docs/components/marketing/nextui-pro-section/nextui-pro-button.tsx b/apps/docs/components/marketing/nextui-pro-section/nextui-pro-button.tsx new file mode 100644 index 0000000000..2abaab67c8 --- /dev/null +++ b/apps/docs/components/marketing/nextui-pro-section/nextui-pro-button.tsx @@ -0,0 +1,32 @@ +import {Button} from "@nextui-org/react"; + +export const NextUIProButton = () => ( + +); diff --git a/apps/docs/components/marketing/nextui-pro-section/nextui-pro-chip.tsx b/apps/docs/components/marketing/nextui-pro-section/nextui-pro-chip.tsx new file mode 100644 index 0000000000..755149f205 --- /dev/null +++ b/apps/docs/components/marketing/nextui-pro-section/nextui-pro-chip.tsx @@ -0,0 +1,14 @@ +import {Chip} from "@nextui-org/react"; + +export const NextUIProChip = () => ( + + PRO + +); diff --git a/apps/docs/components/marketing/nextui-pro-section/nextui-pro-image.tsx b/apps/docs/components/marketing/nextui-pro-section/nextui-pro-image.tsx new file mode 100644 index 0000000000..20aec165dc --- /dev/null +++ b/apps/docs/components/marketing/nextui-pro-section/nextui-pro-image.tsx @@ -0,0 +1,32 @@ +"use client"; + +import {useTheme} from "next-themes"; +import NextImage from "next/image"; +import {useEffect, useState} from "react"; + +export const NextUIProImage = () => { + const [mounted, setMounted] = useState(false); + const {theme} = useTheme(); + const isDarkMode = theme === "dark"; + + useEffect(() => { + setMounted(true); + }, []); + + let imgSrc = isDarkMode + ? "https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/images/nextuipro-section-background.webp" + : "https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/images/nextuipro-section-background-light.webp"; + + if (!mounted) return null; + + return ( + + ); +}; diff --git a/apps/docs/components/marketing/nextui-pro-section/nextui-pro-section.tsx b/apps/docs/components/marketing/nextui-pro-section/nextui-pro-section.tsx new file mode 100644 index 0000000000..d6777dc7f6 --- /dev/null +++ b/apps/docs/components/marketing/nextui-pro-section/nextui-pro-section.tsx @@ -0,0 +1,105 @@ +import {memo} from "react"; +import clsx from "clsx"; + +import {sectionWrapper, title, titleWrapper, subtitle} from "../../primitives"; +import Marquee from "../marquee"; + +import {NextUIProButton} from "./nextui-pro-button"; +import {NextUIProChip} from "./nextui-pro-chip"; +import {NextUIProImage} from "./nextui-pro-image"; + +const CheckmarkIcon = memo(() => ( + + + +)); + +CheckmarkIcon.displayName = "CheckmarkIcon"; + +export const NextUIProSection = () => { + return ( +
+
+
+ +
+

+ Ship  +

+

+ faster  +

+

+ with  +

+
+

+ beautiful  +

+

+ components +

+
+
+

+ Premade templates of over 210+ beautiful and responsive components, professionally + created by the team behind NextUI. +

+
    +
  • + + 210+ Components +
  • +
  • + + Lifetime Access +
  • +
  • + + Free Updates +
  • +
  • + + Figma Files Included +
  • +
+
+ +
+
+
+
+ + + +
+
+
+ ); +}; diff --git a/apps/docs/components/preview-button.tsx b/apps/docs/components/preview-button.tsx new file mode 100644 index 0000000000..5efe91cecb --- /dev/null +++ b/apps/docs/components/preview-button.tsx @@ -0,0 +1,31 @@ +import {forwardRef} from "react"; +import {Button, ButtonProps} from "@nextui-org/react"; +import {clsx} from "@nextui-org/shared-utils"; + +export interface PreviewButtonProps extends ButtonProps { + icon: React.ReactNode; +} + +export const PreviewButton = forwardRef( + (props, ref) => { + const {icon, className, ...buttonProps} = props; + + return ( + + ); + }, +); + +PreviewButton.displayName = "PreviewButton"; diff --git a/apps/docs/components/sandpack/sandpack.tsx b/apps/docs/components/sandpack/sandpack.tsx index b818331151..030f949639 100644 --- a/apps/docs/components/sandpack/sandpack.tsx +++ b/apps/docs/components/sandpack/sandpack.tsx @@ -3,6 +3,8 @@ import {FC, useRef} from "react"; import {SandpackProvider, SandpackLayout, SandpackPreview} from "@codesandbox/sandpack-react"; +import {StackblitzButton} from "../stackblitz-button"; + import {SandpackCodeViewer} from "./code-viewer"; import {nextuiTheme} from "./theme"; import {UseSandpackProps, useSandpack} from "./use-sandpack"; @@ -72,6 +74,18 @@ export const Sandpack: FC = ({ {showReportBug && } {showCopyCode && } {!showPreview && showOpenInCodeSandbox && } + {!showPreview && showOpenInCodeSandbox && ( + + )}
{hasTypescript && sandpackTemplate && ( diff --git a/apps/docs/components/stackblitz-button.tsx b/apps/docs/components/stackblitz-button.tsx new file mode 100644 index 0000000000..e639984cac --- /dev/null +++ b/apps/docs/components/stackblitz-button.tsx @@ -0,0 +1,58 @@ +import React, {forwardRef} from "react"; +import stackblitzSdk from "@stackblitz/sdk"; +import {SandpackFiles} from "@codesandbox/sandpack-react/types"; + +import {StackblitzIcon} from "./icons"; + +import {useStackblitz} from "@/hooks/use-stackblitz"; +import {Tooltip} from "@/../../packages/components/tooltip/src"; +import {Button, ButtonProps} from "@/../../packages/components/button/src"; + +export interface StackblitzButtonProps extends ButtonProps { + files: SandpackFiles; + typescriptStrict?: boolean; + className?: string; + button?: React.ReactElement; + icon?: React.ReactNode; +} + +export const StackblitzButton = forwardRef( + (props, ref) => { + const { + files, + typescriptStrict = false, + className, + button =