Skip to content
Merged

v2.7.10 #5381

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
d40c744
fix(date-picker): error state (#5317)
Vishvsalvi May 26, 2025
ee4d2eb
fix(theme): clear button in mobile (#5252)
Vishvsalvi Jun 1, 2025
8df9716
fix(toast): icons (#5246)
wingkwong Jun 1, 2025
8c26137
refactor: migrate eslint to v9 (#5267)
wingkwong Jun 1, 2025
74e4dec
fix(autocomplete): persist last selected item position (#5286)
wingkwong Jun 1, 2025
06fe3a3
chore(deps): bump framer-motion version (#5287)
wingkwong Jun 1, 2025
d09e602
chore(docs): supplement onAction & selectionBehavior (#5289)
wingkwong Jun 1, 2025
360b2e7
fix(autocomplete): ensure focused item matches selected item after fi…
KumJungMin Jun 1, 2025
01f5421
fix: broken components in stories (#5291)
wingkwong Jun 1, 2025
1d62208
chore(deps): bump RA versions (#5310)
wingkwong Jun 1, 2025
dcd6244
chore(docs): update meta data (#5311)
wingkwong Jun 1, 2025
6129e4b
docs(layout.tsx): added text-foreground (#5316)
Vishvsalvi Jun 1, 2025
718dc24
feat(tabs): add click handling for tab items in tests and implementat…
liaoyinglong Jun 1, 2025
9433bff
fix issues in tabs examples (#2405)
zhengjitf Jun 1, 2025
6e9247a
chore(docs): add missing onValueChange in CheckboxGroup (#5332)
wingkwong Jun 1, 2025
63a1a67
ci(changesets): version packages (#5323)
github-actions[bot] Jun 1, 2025
1f8cb07
Merge branch 'main' of github.com:heroui-inc/heroui into canary
jrgarciadev Jun 1, 2025
1e23994
chore(deps): bump RA versions (#5361)
wingkwong Jun 7, 2025
2aeb33f
chore(docs): remove herohack announcement (#5363)
Vishvsalvi Jun 7, 2025
ff4b1b2
fix(theme): consistent faded styling for isInvalid in InputOtp and Da…
anuj-kuralkar Jun 8, 2025
ace931b
fix(theme): helperWrapper padding (#5350)
Vishvsalvi Jun 9, 2025
f1abe16
fix(autocomplete): onClear (#5365)
wingkwong Jun 9, 2025
ad807be
fix(number-input): only allow number type (#5368)
wingkwong Jun 9, 2025
0d217e4
refactor: optimization (#5362)
wingkwong Jun 9, 2025
15b3e9e
ci(changesets): version packages (#5364)
github-actions[bot] Jun 9, 2025
273ebe5
chore: merged with main
jrgarciadev Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion apps/docs/app/blog/[slug]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type {Metadata} from "next";
import type {Route} from "@/libs/docs/page";

import {notFound} from "next/navigation";
import {allBlogPosts} from "contentlayer2/generated";
Expand All @@ -10,7 +11,6 @@ import {Balancer} from "react-wrap-balancer";
import {__DEV__, __PREVIEW__} from "@/utils";
import {MDXContent} from "@/components/mdx-content";
import {siteConfig} from "@/config/site";
import {Route} from "@/libs/docs/page";
import {ChevronRightLinearIcon} from "@/components/icons";
import {CarbonAd} from "@/components/ads/carbon-ad";

Expand Down
2 changes: 1 addition & 1 deletion apps/docs/app/docs/[[...slug]]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type {Metadata} from "next";
import type {Route} from "@/libs/docs/page";

import {notFound} from "next/navigation";
import {allDocs} from "contentlayer2/generated";
Expand All @@ -7,7 +8,6 @@ import {Link, ToastProvider} from "@heroui/react";
import {MDXContent} from "@/components/mdx-content";
import {siteConfig} from "@/config/site";
import {DocsPager, DocsToc} from "@/components/docs";
import {Route} from "@/libs/docs/page";
import {GITHUB_URL, REPO_NAME} from "@/libs/github/constants";
import {CONTENT_PATH, TAG} from "@/libs/docs/config";
import {getHeadings} from "@/libs/docs/utils";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
"use client";

import type {MenuTriggerAction} from "@heroui/react";

import * as React from "react";
import {Autocomplete, AutocompleteItem, MenuTriggerAction} from "@heroui/react";
import {Autocomplete, AutocompleteItem} from "@heroui/react";
import {useFilter} from "@react-aria/i18n";

const animals = [
Expand Down
3 changes: 2 additions & 1 deletion apps/docs/app/examples/modal/placement/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
"use client";

import type {ModalProps} from "@heroui/react";

import {
Modal,
ModalContent,
Expand All @@ -10,7 +12,6 @@ import {
useDisclosure,
RadioGroup,
Radio,
ModalProps,
} from "@heroui/react";
import {useState} from "react";

Expand Down
5 changes: 2 additions & 3 deletions apps/docs/app/examples/table/custom-styles/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
"use client";

import type {Selection, ChipProps, SortDescriptor} from "@heroui/react";

import {
Table,
TableHeader,
Expand All @@ -13,12 +15,9 @@ import {
Dropdown,
DropdownMenu,
DropdownItem,
Selection,
Chip,
User,
ChipProps,
Pagination,
SortDescriptor,
} from "@heroui/react";
import {ChevronDownIcon, SearchIcon} from "@heroui/shared-icons";
import {useCallback, useMemo, useState} from "react";
Expand Down
5 changes: 2 additions & 3 deletions apps/docs/app/examples/table/use-case/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
"use client";

import type {Selection, ChipProps, SortDescriptor} from "@heroui/react";

import {
Table,
TableHeader,
Expand All @@ -13,12 +15,9 @@ import {
Dropdown,
DropdownMenu,
DropdownItem,
Selection,
Chip,
User,
ChipProps,
Pagination,
SortDescriptor,
} from "@heroui/react";
import {ChevronDownIcon, SearchIcon} from "@heroui/shared-icons";
import {useCallback, useMemo, useState} from "react";
Expand Down
3 changes: 2 additions & 1 deletion apps/docs/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import "@/styles/globals.css";
import "@/styles/sandpack.css";
import {Metadata, Viewport} from "next";
import type {Metadata, Viewport} from "next";

import {clsx} from "@heroui/shared-utils";
import {Analytics} from "@vercel/analytics/next";

Expand Down
3 changes: 2 additions & 1 deletion apps/docs/app/providers.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
"use client";

import type {ThemeProviderProps} from "next-themes";

import * as React from "react";
import {HeroUIProvider} from "@heroui/react";
import {ThemeProvider as NextThemesProvider} from "next-themes";
import {ThemeProviderProps} from "next-themes";
import {useRouter} from "next/navigation";
import {useEffect} from "react";
import posthog from "posthog-js";
Expand Down
30 changes: 13 additions & 17 deletions apps/docs/components/ads/carbon-ad/carbon-ad.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,12 @@ import {useIsMounted} from "@/hooks/use-is-mounted";
import {__PROD__, __ENABLE_ADS__} from "@/utils";

const EA_PROVIDER_RATIO = 0.85;
const INTERNAL_AD_ENABLED = true;
const PRODUCT_HUNT_ENABLED = false;

const INTERNAL_AD_INFO = {
description: "Join our hackathon, $6k in prizes + 3 months of HeroUI Chat Pro! ↗",
title: "Hackathon #HeroHack",
img: "https://heroui-chat-assets.nyc3.cdn.digitaloceanspaces.com/herohack.png",
url: "https://hack.heroui.chat/twitter?utm_source=heroui.com&utm_medium=ad-banner",
const PH_INFO = {
description: "Join the conversation and help us get #1 Product of the Week! ↗",
title: "We're live on Product Hunt! (30% OFF)",
url: "https://ph.heroui.chat?utm_source=heroui.chat&utm_medium=banner",
};

export const CarbonAd: React.FC<unknown> = () => {
Expand Down Expand Up @@ -50,7 +49,7 @@ export const CarbonAd: React.FC<unknown> = () => {
}, []);

useEffect(() => {
if (INTERNAL_AD_ENABLED) return;
if (PRODUCT_HUNT_ENABLED) return;

const shouldShowEthicalAds = Math.random() < EA_PROVIDER_RATIO;

Expand Down Expand Up @@ -107,28 +106,25 @@ export const CarbonAd: React.FC<unknown> = () => {
};
}, [isMounted]);

if (INTERNAL_AD_ENABLED) {
if (PRODUCT_HUNT_ENABLED) {
return (
<div className="px-2 not-prose hover:opacity-80 transition-[opacity] duration-200 carbon-ad-container max-h-[100px] min-h-[100px] h-[100px] m-0 p-0">
<a
className="group flex items-center flex gap-4 h-full"
href={INTERNAL_AD_INFO.url}
className="group flex items-center flex gap-2 h-full"
href={PH_INFO.url}
rel="noopener noreferrer"
target="_blank"
>
<Image
removeWrapper
alt="Product Hunt"
className="m-0 w-[120px] h-[80px] object-cover rounded-[8px]"
src={INTERNAL_AD_INFO.img}
className="m-0 w-[80px] h-[80px] object-cover"
src="/product-hunt.png"
/>
<div className="flex flex-col gap-0.5 pointer-events-none">
<div className="text-small md:text-medium font-medium no-underline">
{INTERNAL_AD_INFO.title}
</div>
<div className="text-tiny md:text-small text-default-500">
{INTERNAL_AD_INFO.description}
{PH_INFO.title}
</div>
<div className="text-tiny md:text-small text-default-500">{PH_INFO.description}</div>
</div>
</a>
</div>
Expand Down
3 changes: 2 additions & 1 deletion apps/docs/components/bg-grid-container.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {ReactNode, FC} from "react";
import type {ReactNode, FC} from "react";

import {clsx} from "@heroui/shared-utils";
export interface BgGridContainerProps {
showGradient?: boolean;
Expand Down
3 changes: 2 additions & 1 deletion apps/docs/components/blog-post.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"use client";

import {BlogPost} from "contentlayer2/generated";
import type {BlogPost} from "contentlayer2/generated";

import {Card, CardFooter, CardBody, CardHeader, Link, Avatar, Image} from "@heroui/react";
import Balancer from "react-wrap-balancer";
import {format, parseISO} from "date-fns";
Expand Down
4 changes: 3 additions & 1 deletion apps/docs/components/blog/video-in-view.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
"use client";

import type {FC} from "react";

import {useInView} from "framer-motion";
import {useRef, FC, useEffect, useState, useCallback} from "react";
import {useRef, useEffect, useState, useCallback} from "react";
import {Button, cn, Spinner, Tooltip} from "@heroui/react";

import {PlayBoldIcon, PauseBoldIcon} from "@/components/icons";
Expand Down
7 changes: 5 additions & 2 deletions apps/docs/components/cmdk.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
/* eslint-disable jsx-a11y/no-autofocus */
"use client";

import type {FC} from "react";
import type {ButtonProps} from "@heroui/react";

import {Command} from "cmdk";
import {useEffect, useState, FC, useMemo, useCallback, useRef} from "react";
import {useEffect, useState, useMemo, useCallback, useRef} from "react";
import {matchSorter} from "match-sorter";
import {Button, ButtonProps, Kbd, Modal, ModalContent} from "@heroui/react";
import {Button, Kbd, Modal, ModalContent} from "@heroui/react";
import {CloseIcon} from "@heroui/shared-icons";
import {tv} from "tailwind-variants";
import {usePathname, useRouter} from "next/navigation";
Expand Down
4 changes: 3 additions & 1 deletion apps/docs/components/code-window/code-window.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
"use client";
// Inspired by https://github.dev/modulz/stitches-site code demo
import type {CodeBlockProps} from "./code-block";

import React from "react";
import rangeParser from "parse-numeric-range";

import CodeBlock, {CodeBlockProps} from "./code-block";
import CodeBlock from "./code-block";

import {CopyButton} from "@/components";

Expand Down
3 changes: 2 additions & 1 deletion apps/docs/components/copy-button.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {ButtonProps} from "@heroui/react";
import type {ButtonProps} from "@heroui/react";

import {useClipboard} from "@heroui/use-clipboard";
import {memo} from "react";

Expand Down
4 changes: 3 additions & 1 deletion apps/docs/components/demo-code-modal.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
"use client";

import {FC, useState} from "react";
import type {FC} from "react";

import {useState} from "react";
import {
Modal,
Button,
Expand Down
7 changes: 5 additions & 2 deletions apps/docs/components/demos/music-player.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
"use client";

import {Card, CardBody, Button, Image, Slider, CardProps} from "@heroui/react";
import {useState, FC} from "react";
import type {CardProps} from "@heroui/react";
import type {FC} from "react";

import {Card, CardBody, Button, Image, Slider} from "@heroui/react";
import {useState} from "react";
import {clsx} from "@heroui/shared-utils";
import NextImage from "next/image";

Expand Down
12 changes: 4 additions & 8 deletions apps/docs/components/demos/speed-progress.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
import {
tv,
VariantProps,
CircularProgress,
CircularProgressProps,
circularProgress,
} from "@heroui/react";
import {FC} from "react";
import type {VariantProps, CircularProgressProps} from "@heroui/react";
import type {FC} from "react";

import {tv, CircularProgress, circularProgress} from "@heroui/react";

const speedProgress = tv({
extend: circularProgress,
Expand Down
6 changes: 4 additions & 2 deletions apps/docs/components/docs/components/blockquote.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
"use client";

import {FC} from "react";
import {tv, VariantProps} from "tailwind-variants";
import type {FC} from "react";
import type {VariantProps} from "tailwind-variants";

import {tv} from "tailwind-variants";

const blockquoteStyles = tv({
base: "border px-4 bg-default-50 my-6 py-3 rounded-xl [&>p]:m-0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
"use client";

import type {UseCodeDemoProps} from "./use-code-demo";
import type {WindowResizerProps} from "./window-resizer";
import type {GradientBoxProps} from "@/components/gradient-box";

import React, {useCallback, useMemo, useRef, useState} from "react";
import dynamic from "next/dynamic";
import {addToast, Button, Skeleton, Spinner, Tab, Tabs} from "@heroui/react";
import {useInView} from "framer-motion";
import {usePostHog} from "posthog-js/react";
import {usePathname} from "next/navigation";

import {useCodeDemo, UseCodeDemoProps} from "./use-code-demo";
import WindowResizer, {WindowResizerProps} from "./window-resizer";
import {useCodeDemo} from "./use-code-demo";
import WindowResizer from "./window-resizer";
import {parseDependencies} from "./parse-dependencies";

import {GradientBoxProps} from "@/components/gradient-box";
import {SmallLogo} from "@/components/heroui-logo";
import {openInChat} from "@/actions/open-in-chat";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,6 @@ export const parseDependencies = (content: string) => {
};

const fixedVersions = {
"@internationalized/date": "3.8.1",
"@react-aria/i18n": "3.12.9",
"@internationalized/date": "3.8.2",
"@react-aria/i18n": "3.12.10",
};
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import type {SandpackFiles} from "@codesandbox/sandpack-react/types";
import type {GradientBoxProps} from "@/components/gradient-box";

import React from "react";
import {LivePreview, LiveProvider, LiveError} from "react-live";
import {clsx} from "@heroui/shared-utils";
import * as HeroUI from "@heroui/react";
import * as intlDateUtils from "@internationalized/date";
import * as reactAriaI18n from "@react-aria/i18n";
import * as reactHookFormBase from "react-hook-form";
import {SandpackFiles} from "@codesandbox/sandpack-react/types";

import {BgGridContainer} from "@/components/bg-grid-container";
import {GradientBox, GradientBoxProps} from "@/components/gradient-box";
import {GradientBox} from "@/components/gradient-box";
import {CopyButton} from "@/components/copy-button";
import {StackblitzButton} from "@/components/stackblitz-button";
import {PreviewButton} from "@/components/preview-button";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import {FileCode} from "./types";
import type {FileCode} from "./types";
import type {SandpackProps} from "@/components/sandpack";

import {scope} from "./react-live-demo";
import {transformCode, joinCode, getFileName} from "./utils";

import {SandpackProps} from "@/components/sandpack";

export interface UseCodeDemoProps extends SandpackProps {
code?: string;
}
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/components/docs/components/code-demo/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {FileCode} from "./types";
import type {FileCode} from "./types";

const importRegex = /^(import\s+(?!type\s+\{)[\s\S]*?;)/gm;

Expand Down
6 changes: 4 additions & 2 deletions apps/docs/components/docs/components/component-links.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import {Button, ButtonProps, Code, Link, Tooltip} from "@heroui/react";
import {ReactNode} from "react";
import type {ButtonProps} from "@heroui/react";
import type {ReactNode} from "react";

import {Button, Code, Link, Tooltip} from "@heroui/react";
import Balancer from "react-wrap-balancer";
import {usePostHog} from "posthog-js/react";

Expand Down
4 changes: 3 additions & 1 deletion apps/docs/components/docs/components/package-managers.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
"use client";

import type {Key} from "react";

import {Tabs, Tab, Snippet, Code} from "@heroui/react";
import {Key, useState} from "react";
import {useState} from "react";

import Codeblock from "./codeblock";
import {Blockquote} from "./blockquote";
Expand Down
Loading