From 4855a0f1124b4e56c3c7837a9e365c9f9829db29 Mon Sep 17 00:00:00 2001 From: Junior Garcia Date: Fri, 28 Feb 2025 02:14:51 -0300 Subject: [PATCH] v2.7.4 (#4957) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: org name change (#4596) * chore: update brand name (#4600) * fix(calendar): function components cannot be given refs (#4614) * docs(modal): fix small typos and add clarifying language (#4629) * chore(deps): bump RA versions (#4611) * chore(deps): bump RA versions * chore(deps): bump @internationalized/date * chore(docs): update RA versions * chore(docs): update versions * chore(docs): use string type * chore(deps): update @react-types versions * refactor(docs): undo version change since they will be removed in another PR * feat: tailwind variants upgrade (#4386) * feat: tailwind variants upgrade * chore: restore npmrc * chore: adjust pkgs * fix: versions * fix: lock file * chore(changeset): update package name * chore(deps): use fixed version * fix(test): incorrect package name --------- Co-authored-by: աӄա * feat: add fn win alt keys (#4638) * feat: add new keys * feat: add new keys * chore: update docs & storybook as well --------- Co-authored-by: WK Wong * fix(use-image): load images after props change (#4523) * fix(use-image): load image after props change * chore(changeset): add changeset * refactor(use-image): remove unused props * feat(use-image): add test case * fix(use-image): apply useCallback to load & remove status check * chore(changeset): update package name * feat: global labelPlacement prop (#4346) * feat: adding the support for labelPlacement globally * chore: reafctoring * chore: updating the dependency * chore(changeset): update package name * chore: adding Marcus's suggestions --------- Co-authored-by: աӄա * fix(form): use native as default validation behavior (#4425) * fix(form): use native as default validation behavior * docs(form): delete explicit validationBehavior=native * test(form): adjusted form test validation behaviors * chore(form): adjusted stories with forms * chore(changeset): changed form default validation behavior to native * chore(changeset): removed packages with only test changes * chore(changeset): change to patch * chore(changeset): update package name * refactor(docs): update package name * refactor(docs): update to heroui --------- Co-authored-by: աӄա * feat(spinner): new spinner variants (#4555) * refactor(spinner): add default variant * feature(spinner): add gradient variant * feature(spinner): add dots variant * feature(spinner): add dots-blink variant * feature(spinner): add spinner-bars * chore(spinner): add variants storybook * chore: adding variants to docs * chore: simplyfying the styles and modifying docs * chore: nits * chore: updating the dots and dots-blink animation * chore: nits * chore: adding Marcus' suggestions * chore: adding Marcus's suggestions * chore: adding junior's suggestions --------- Co-authored-by: Maharshi Alpesh * fix: rename wrapper to tab wrapper (#4636) * fix: rename wrapper to tab wrapper * docs: update * docs: update * docs: update * fix: rename wrapper to tab wrapper * refactor: remove feature request from issue template (#4661) * refactor(.github): remove feature request template * refactor(.github): add a link to redirect to discussion (feature request category) * docs(table): include TS examples to show Selection type usage (#4793) * fix(listbox): unexpected scrollShadow on virtualized listbox (#4784) * fix(listbox): add scroll height & scroll top to listbox * fix(use-data-scroll-overflow): handle scrollHeight & scrollTop in virtualization * chore(changeset): add changeset * refactor(theme): replace left & right by start & end to support RTL (#4782) * fix(date-picker): deprecate dateInputClassNames (#4780) * chore(date-picker): add missing slots comments * fix(date-picker): remove dateInputClassNames * fix(date-picker): use classNames instead of dateInputClassNames * chore(docs): add missing attributes * fix(date-picker): use classNames instead of dateInputClassNames * feat(changeset): add changeset * fix(docs): broken type * refactor(navbar): remove dropdown menu width (#4757) * refactor: remove dropdown menu width * refactor: shorter description * refactor: rename instances of NextUI to Hero UI (#4645) * docs: use the correct org for `img.shields.io` license in README * docs: update opencollective org name * docs: use correct org name in site footer * docs: update image urls for heroui pro sections * docs: update laravel installation keywords in route config * docs: add `heroui` tag to `Introducing HeroUI` blog post * fix: use correct names in `plop/components/src` templates * chore: add empty changeset * fix: revert image urls back to `nextuipro.nyc3.cdn.digitaloceanspaces...` * chore: undo footer change * chore: update incorrect brand name * chore(docs): nextui -> heroui --------- Co-authored-by: աӄա * fix(input): missing clear button with file input type (#4599) * fix(theme): sync with input theme on labelPlacement (#4597) * fix(theme): sync with input theme on labelPlacement * chore(select): revise width for labelPlacement * chore(changeset): add changeset * test(input): input interaction tests (#4579) * test(input): user interaction tests * test(input): missing act wrappers --------- Co-authored-by: WK Wong * fix(calendar): rtl navigation (#4565) * fix(calendar): rtl navigation * chore(changeset): fixed reverse behavior of NextButton and PrevButton in the RTL calendar * chore(changeset): update package name * refactor(calendar): prefer isRTL and use className in theme package instead * chore(changeset): add theme package as well * chore(calendar): add min theme package to 2.4.7 --------- Co-authored-by: աӄա * refactor: remove unnecessary className passing to tv and make naming consistent (#4558) * refactor: remove unnecessary className passing to tv * refactor(button): move styles to getButtonProps * refactor: rename classNames to styles to keep the naming consistent * fix: deprecation warning triggered by internal onClick (#4557) * fix(use-aria-link): onClick deprecation warning * fix(use-aria-button): onClick deprecation warning * feat(changeset): add changeset * fix(use-aria-button): incorrect prop name * chore(changeset): update package name * ci: add pkg pr new (#4540) * ci: add pkg pr new * ci: add pkg pr new * chore(workflow): update repo name --------- Co-authored-by: աӄա * chore(docs): remove shouldBlockScroll prop in Tooltip page (#4539) * fix(use-pagination): controlled page after delay (#4536) * fix(use-pagination): add page to dependency for scrollTo * feat(changeset): add changeset * chore(changeset): update package name * fix(tooltip): accessing element.ref was removed in React 19 issue (#4531) * fix(tooltip): accessing element.ref was removed in React 19 issue * chore(changeset): update package name * fix: correctly dismissable default value (#4524) * fix: correctly dismissable default value * fix: correctly dismissable default value * chore(changeset): update package name --------- Co-authored-by: աӄա * fix(theme): input height in innerWrapper in Select (#4512) * fix(select): fix input height #4321 * chore(select): changed package name in changeset to theme * chore(select): updated changeset message * chore(changeset): update package name --------- Co-authored-by: աӄա * fix: inert value in next15 (#4491) * feat: add post install * feat: add postinstall * feat: add postinstall * fix: type * fix: type * fix: next version * chore(changeset): update package name --------- Co-authored-by: աӄա * refactor: remove cursor-hit in hiddenInputClasses (#4474) * refactor: remove cursor-hit in hiddenInputClasses * Create lazy-ants-exercise.md * chore(changeset): update package name --------- Co-authored-by: աӄա * feat(table): virtualization (#4285) * feat: baseline virtualization for table * merge branch canary * fix: table layout * fix: calc header height w layouteffect to offset padding * Merge branch 'canary' into feat/eng-1633-virtualization-for-table * chore: remove unused files and comments * chore: add missing package * feat: add shouldVirtualize conditional to render virtualized-table * feat: update docs for table * feat: use wrapper to support theme styles * chore: add changeset * chore(changeset): update package name * chore(deps): pnpm-lock.yaml * fix(table): outdated package name * chore(changeset): add issue number * fix(deps): keep the version consistent with other components * fix(table): incorrect displayName * refactor(table): use VirtualizedTemplate * chore(deps): bump `@tanstack/react-virtua` * chore(deps): typecheck issue * fix(table): do not use any type * chore: remove auto virtualization --------- Co-authored-by: աӄա Co-authored-by: Junior Garcia * feat(toast): introduce Toast component (#4437) * feat: initial commit * chore: adding the animation * chore: nits * chore: fixes and adding draft1 of stories * chore: adding the docs draft * chore: adding the swiping interaction for toast removal * chore: adding the tests * fix: improving the progress bar logix * chore: refactoring and refining the animations * fix: making the animations compatible with the positons * chore: fixing the styles * chore: modifying the animations * chore: improving the animations * chore: adding the decorator to the story-book * chore: fixing the animations and positions * fix: handle expand region on touch * feat: adding the promises support * chore: updating the styles * chore: improving styles * chore: styles correction * fix: adding junior's suggestions * chore: correcting styles * fix: fixing the timer behavior * chore: adding the spinner to the toast * chore: full width for mobile * chore: modifying styles * chore: fixing the positions on smaller devices * chore: adding story with description * chore: adding credits for sonner * fix: adding junior's suggestions * chore: adding the exit animation * fix: adding junior's suggestions * chore: improving the swipe animations * fix: fixing the swipe animations on touch * chore: adding tests * chore: adding swipe threshild and initial position variable * fix: fixing autoclose in timeout * chore: modifying the docs * chore: fixing the conflict * chore: adding marcus' suggestions * chore: adding the bottom animations * chore: modying docs * chore: removing nextui references * chore: adding info about the provider * chore: updating the docs * chore: versions in package.json * chore: nits * chore: adding junior's suggestions * chore: nits * fix: applying junior's suggestions * chore: adding junior's suggestions * chore: using domMax * fix: adding Marcus's suggestions * chore: add global toast props and custom close icon * chore: adding the defaultTimout provider prop * chore: modifying defaultTimeout * chore: nits * fix: adding Marcus' suggestions * chore: fixing bg * chore(deps): bump RA deps * fix: fixing the color discrepancy due to the timer * chore: moving the kapan ai to the left side * refactor(toast): update author * chore: nit * chore: improvements * chore: updating the solid variant --------- Co-authored-by: Junior Garcia Co-authored-by: WK Wong * fix(docs): correct Tab usage example (#4821) * chore(docs): add note itemHeight for virtualization (#4822) * chore(docs): add note itemHeight for virtualization * fix: format * fix(docs): fix horizontal scrolling example in scroll-shadow (#4820) * refactor: update author in package.json (#4800) * feat(button): export PressEvent for onPress event typing (#4819) * fix(docs): failed to install dependencies in StackBlitz (#4639) * chore(Docs): remove step 2 from "Using use-theme-hook" (#4797) * fix(docs): incorrect code Modal placement (#4652) * docs: update DatePicker example to remove "time" label as time selection is not supported in this example (#4443) * feat(button): export PressEvent for onPress event typing * revert unnecessary changes * chore: format --------- Co-authored-by: աӄա Co-authored-by: Praharsh Bhatt <30700808+praharshbhatt@users.noreply.github.com> * fix(listbox): pass missing press events to usePress (#4812) * fix(listbox): pass missing press events to usePress * feat(listbox): add test case for press event * chore(changeset): add changeset * fix(checkbox): inherit stroke in CheckboxIcon (#4811) * fix: `SelectItem`, `ListboxItem`, and `AutocompleteItem` not to accept `value` props (#4653) * fix(select): `SelectItem` does not accept value props * refactor: do not use the index as `key` * Update .changeset/light-hairs-draw.md * chore: remove unnecessary `value` props * chore: update changeset * refactor: remove unnecessary value prop --------- Co-authored-by: WK Wong * fix: pkg package scope (#4823) * fix: pkg package scope * fix: pkg package scope * fix: pkg package scope * fix(theme): border radius in Table when isMultiSelectable (#4808) * fix(theme): border radius in Table when isMultiSelectable * chore(theme): added changeset (#4807) * chore: removing the kapa ai for toast doc page (#4833) * fix(accordion): add data-slot attributes to accordion (#4832) * fix(accordion): add data-slot attributes to accordion * chore --------- Co-authored-by: Hovannes Markarian Co-authored-by: աӄա * chore(docs): update versions (#4836) * docs(themes): adding theme generator (#4626) * chore: adding xylish's contributions + modifying styles * chore: nextui to heroui * chore: colors in theme generator * chore: radiuses, disable-opacity * chore: fixing the configuration box styles * chore: adding the showcase elemtents * chore: modifying styles * chore: adding the fonts * chore: adding the scaling * chore: removing the calendar * feat: adding the border-width * chore: modifying style for mobile * chore: modifying the styles * chore: removing the NextUI references + small bug fix * chore: adding coderabits reviews * fix: borderWidth not getting applied on breadcrumbs and input * chore: rebasing * chore: modifying the styles * chore: updating the styles for the smaller devices * chore: refactoring * chore: improvements * chore: making the fonts workable * chore: making the fonts workable * chore: modifying the swatch according to the theme * chore: adding the default selected template * chore: modifying mobile styles * chore: fixing the popover * chore: nit * fix: fixing the select styles * chore: modifying the mobile styles * chore: modifying the styles * fix: adding junior's suggestions * fix: fixing the breadcrumb * fix: adding junior's suggestions * feat: introduce NumberInput (#4475) * feat(number-field): init structure * feat(deps): add `@nextui-org/button` & `@react-types/button` * feat(theme): export number-field * feat(number-field): storybook init structure * feat(number-field): add NumberFieldHorizontalStepper * feat(number-field): add NumberFieldHorizontalStepper * feat(theme): init number field theme * feat(number-field): number-field draft * refactor(number-field): revise stepper icons * feat(shared-icons): add ChevronLeftIcon * feat(theme): stepperButton styles * feat(theme): number-field styles * fix(number-field): label layout * feat(number-field): vertical stepper wrapper * feat(number-field): use-number-field (wip) * feat(number-field): add data-direction * feat(theme): center the text if it is horizontal stepper * feat(number-field): add HorizontalStepper * feat(number-field): add HideStepper * chore(number-field): revise minValue & defaultValue * feat(docs): init number field structure * fix(theme): outside-left styles * refactor(theme): remove labelPlacement styles * refactor(number-field): remove labelContent logic * refactor(number-field): remove labelPlacement args * feat(number-field): helper text * feat(number-field): revise number field stories * feat(number-field): description * refactor(number-field): revise number field stories * feat(theme): numberFieldLabelClasses * fix(number-field): incorrect button props * fix(number-field): typing issue on stepper buttons * chore(number-field): add aria-label * refactor(number-field): merge props * fix(number-field): pass originalProps instead * chore(number-field): revise Required story args * feat(number-field): add WithStepValue & WithWheelDisabled & revise stories * chore(number-field): add label to Required * feat(docs): number-field doc page * fix(number-field): typing issue * fix(number-field): test cases * fix(number-field): user.keyboard & defaultValue * fix(number-field): should work with defaultValues * chore(number-field): add type: number * chore(number-field): remove hidden related code * fix(number-field): numeric value * chore(changeset): add changeset * feat(deps): add "@nextui-org/number-field" to docs * feat(react): export `@nextui-org/number-field` * feat(changeset): add @nextui-org/react * feat(docs): number-field examples * chore(number-field): use text instead * refactor(number-field): remove unnecessary filled-within * fix(number-field): test case * chore(number-field): remove aria-label for stepper buttons * feat(docs): add incrementAriaLabel & decrementAriaLabel to NumberField * chore(number-field): reorder WithFormatOptions * fix(deps): update number-field's peerDependencies & dependencies * feat(number-field): hidden input for holding numeric vaule * fix(docs): number field title * feat(docs): add format options to number field * chore(docs): revise number field content * chore(number-field): add type to useDOMRef * fix(number-field): clear button * fix(theme): clear button styles * refactor(theme): stepper button styles * chore(number-field): accept stepperButton class * fix(theme): helper wrapper padding * feat(deps): add `@react-aria/i18n` * fix(number-field): use locale from `@react-aria/i18n` * fix(deps): dependency order * fix(docs): incorrect command * chore(docs): remove type=number * chore(theme): add padding to stepper wrapper * fix(number-field): avoid resetting value * fix(number-field): storybook * chore(docs): remove custom impl * chore(docs): update docs code & content * chore(number-field): migrate to heroui * chore(number-field): migrate to heroui * chore(number-field): migrate to heroui * chore: rename to number input * fix(number-input): incorrect import * chore(docs): rename to number input * chore: change to number input * refactor(number-input): change label to amount * fix(docs): use heroui commands * chore(changeset): update package name * refactor(number-input): remove steps * refactor: remove helper text * feat(number-input): label placement * refactor(number-input): rename stepper * fix(theme): isClearable * feat(docs): add label placements * refactor(docs): update number-input content * fix(docs): incorrect file * feat(docs): add lablePlacement * refactor(docs): remove labelPlacement & startContent * refactor(docs): remove helperText * refactor(docs): remove helperText * refactor(docs): revise description * feat(number-input): add data-slot for stepper-wrapper * fix(number-input): test cases * fix(docs): unexpected change * refactor(number-input): update outdated info * fix(docs): coderabbitai comments * refactor: remove validationState * fix(docs): typo * chore(deps): remove unnecessary dep * chore(deps): bump RA versions * chore(number-input): apply latest labelPlacement change * refactor(number-input): update author * refactor(number-input): revise stepper wrapper alignment * refactor(number-input): stepper button styles * chore(number-input): add disableRipple * fix(theme): increase stepper button click area * fix(number-input): sync latest validationBehavior changes * fix(number-input): pass validationBehavior to useAriaNumberInput * chore(docs): add import react * chore(number-input): remove HorizontalStepper story * chore(number-input): enable ripple * fix(number-input): remove number type * refactor(theme): follow input clear button styles * feat(theme): add color for stepperButton * fix(theme): revise stepperButton size for outside & outside-left cases * fix(number-input): typo * chore(docs): update description for wheel * chore(theme): change opacity when pressed * chore(number-input): add disableRipple * Update .changeset/witty-flies-reflect.md * fix(theme): add hover opacity effect --------- Co-authored-by: Junior Garcia * chore(docs): revised tags in doc routes for 2.7.0 (#4777) * chore(docs): remove last version update tags * chore(docs): add updated tag for 2.7.0 * chore(docs): updated table * chore(docs): update search meta * chore(docs): update github info * Merge branch 'canary' into docs/eng-2003 * chore(docs): update routes.json * chore(docs): update meta info * chore: improve theme builder * v2.7.0 * chore: v2.7.0 combined changeset * fix: changeset * fix: peer deps * feat: toast api improved * chore: toast styles improved * fix: toast styles * chore: toast width style changed * fix: changeset release * fix: changeset peerdeps * chore: toast styles improved * refactor(pagination): rtl (#4843) * refactor(pagination): rtl * chore(changeset): add changeset * feat: new spinner variant * fix(docs): popover shouldBlockScroll default value (#4851) * fix(select): select scroll content will close immediately when popover on click (#4849) * chore(select): update select deps * fix(select): select scroll content will close immediately when popover on click * chore(select): add .changeset file * chore(changeset): add issue number --------- Co-authored-by: աӄա * feat(calendar): add firstDayOfWeek (#4852) * feat(calendar): add firstDayOfWeek * feat(docs): add firstDayOfWeek in Calendar docs * feat(calendar): add firstDayOfWeek to range calendar * feat(docs): add firstDayOfWeek to API table * feat: add firstDayOfWeek to date picker & date range picker * feat(docs): add firstDayOfWeek * feat(changeset): add changeset * feat: add firstDayOfWeek option in storybook * feat(docs): export firstDayOfWeek * chore(docs): update title * chore: spinner variants updated * feat: v2.7.0 blog * ci(changesets): version packages (#4601) Co-authored-by: Junior Garcia * chore: manual release * fix(toast): fixing maxVisibleToasts, solid variant promise, promise timer (#4881) * fix: maxVisibleToasts functionality * chore: adding the changeset * fix: starting the toast timer when the promise is resolved * fix: spinner invisible in solid variants * fix(toast): shouldShowTimeoutProgess typo (#4858) * fix(toast): shouldShowTimeoutProgess typo * fix(toast): shouldShowTimeoutProgess typo * fix(select): pass form prop to hidden-select (#4854) * fix(select): pass form prop to hidden-select * chore(select): changeset * fix(spinner): Attempted to call useProviderContext() from the server (#4904) * fix(spinner): add banner in tsup.config.ts * chore(changeset): add changeset * chore(docs): update breaking changes in blog * chore(docs): handled in PR4905 * fix(number-input): onChange event in number input (#4907) * fix(number-input): onChange event in number input * chore(number-input): remove duplicate test case * fix(breadcrumb): broken start & end content (#4921) (#4922) * refactor: build process (#4909) * chore: update component description * chore: exclude stories-utils & test-utils * chore(utilities): remove unused info * chore(deps): pnpm-lock.yaml * fix: incorrect system & theme version in peerDependencies (#4901) * fix: incorrect system & theme version in peerDependencies * fix: incorrect system & theme version in peerDependencies * chore(changeset): add changeset * fix(changeset): remove `@heroui/stories-utils` and `@heroui/test-utils` from ignore list (#4939) * fix(docs): include .npmrc in sandbox (#4951) * fix(input): esc key to clear input value (#4892) * chore: theme generator credits * fix: blog date and spinner default variant * fix: #4850 Solve Pressing ESC doesn't clear input value * fix: #4850 code review change * fix: undo changes in apps/docs/content/blog/v2.7.0.mdx and add a test case for my changes * fix: run through the test cases successfully * fix: change md content * fix: using isClearable not clear the value * fix: add number-input clearable esc clear * fix: edit review problem * fix: delete unless file * chore(changeset): update changeset * fix: add inputProps.onKeyDown * fix: pressing ESC key in a read-only input not clear --------- Co-authored-by: Junior Garcia Co-authored-by: աӄա * ci(changesets): version packages (#4896) Co-authored-by: Junior Garcia * v2.7.4 --------- Co-authored-by: աӄա Co-authored-by: millmason Co-authored-by: winches <329487092@qq.com> Co-authored-by: Maharshi Alpesh Co-authored-by: Peterl561 <76144929+Peterl561@users.noreply.github.com> Co-authored-by: Paul Ebose <49006567+plbstl@users.noreply.github.com> Co-authored-by: Zarin Co-authored-by: Shrinidhi Upadhyaya Co-authored-by: Avan Co-authored-by: Vincentius Roger Kuswara Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com> Co-authored-by: Praharsh Bhatt <30700808+praharshbhatt@users.noreply.github.com> Co-authored-by: Adrian Szarapow <63786007+Adee1499@users.noreply.github.com> Co-authored-by: Hova25 <75216176+Hova25@users.noreply.github.com> Co-authored-by: Hovannes Markarian Co-authored-by: Tsuki <76603360+sudongyuer@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Steve Mosley Co-authored-by: LinYongLu <88522000+linyonglu@users.noreply.github.com> --- apps/docs/components/sandpack/entries.ts | 2 + apps/docs/components/sandpack/use-sandpack.ts | 13 ++- apps/docs/hooks/use-stackblitz.ts | 12 +- package.json | 4 +- packages/components/accordion/CHANGELOG.md | 16 +++ packages/components/accordion/package.json | 2 +- packages/components/alert/CHANGELOG.md | 19 +++ packages/components/alert/package.json | 2 +- packages/components/autocomplete/CHANGELOG.md | 34 ++++++ packages/components/autocomplete/package.json | 2 +- packages/components/avatar/CHANGELOG.md | 11 ++ packages/components/avatar/package.json | 2 +- packages/components/badge/CHANGELOG.md | 10 ++ packages/components/badge/package.json | 2 +- packages/components/breadcrumbs/CHANGELOG.md | 11 ++ packages/components/breadcrumbs/package.json | 2 +- packages/components/button/CHANGELOG.md | 21 ++++ packages/components/button/package.json | 2 +- packages/components/calendar/CHANGELOG.md | 22 ++++ packages/components/calendar/package.json | 2 +- packages/components/card/CHANGELOG.md | 12 ++ packages/components/card/package.json | 2 +- packages/components/checkbox/CHANGELOG.md | 20 ++++ packages/components/checkbox/package.json | 2 +- packages/components/chip/CHANGELOG.md | 11 ++ packages/components/chip/package.json | 2 +- packages/components/code/CHANGELOG.md | 11 ++ packages/components/code/package.json | 2 +- packages/components/date-input/CHANGELOG.md | 20 ++++ packages/components/date-input/package.json | 6 +- packages/components/date-picker/CHANGELOG.md | 30 +++++ packages/components/date-picker/package.json | 6 +- packages/components/divider/CHANGELOG.md | 11 ++ packages/components/divider/package.json | 2 +- packages/components/drawer/CHANGELOG.md | 12 ++ packages/components/drawer/README.md | 4 +- packages/components/drawer/package.json | 2 +- packages/components/dropdown/CHANGELOG.md | 21 ++++ packages/components/dropdown/package.json | 2 +- packages/components/form/CHANGELOG.md | 19 +++ packages/components/form/README.md | 4 +- packages/components/form/package.json | 2 +- packages/components/image/CHANGELOG.md | 11 ++ packages/components/image/package.json | 2 +- packages/components/input-otp/CHANGELOG.md | 18 +++ packages/components/input-otp/package.json | 2 +- packages/components/input/CHANGELOG.md | 22 ++++ .../components/input/__tests__/input.test.tsx | 60 ++++++++++ packages/components/input/package.json | 6 +- packages/components/input/src/use-input.ts | 17 +++ packages/components/kbd/CHANGELOG.md | 11 ++ packages/components/kbd/package.json | 2 +- packages/components/link/CHANGELOG.md | 12 ++ packages/components/link/package.json | 2 +- packages/components/listbox/CHANGELOG.md | 13 +++ packages/components/listbox/package.json | 2 +- packages/components/menu/CHANGELOG.md | 13 +++ packages/components/menu/package.json | 2 +- packages/components/modal/CHANGELOG.md | 17 +++ packages/components/modal/package.json | 2 +- packages/components/navbar/CHANGELOG.md | 13 +++ packages/components/navbar/package.json | 2 +- packages/components/number-input/CHANGELOG.md | 26 +++++ .../__tests__/number-input.test.tsx | 86 +++++++++++++- packages/components/number-input/package.json | 6 +- .../number-input/src/use-number-input.ts | 19 ++- packages/components/pagination/CHANGELOG.md | 13 +++ packages/components/pagination/package.json | 2 +- packages/components/popover/CHANGELOG.md | 23 ++++ packages/components/popover/package.json | 2 +- packages/components/progress/CHANGELOG.md | 11 ++ packages/components/progress/package.json | 2 +- packages/components/radio/CHANGELOG.md | 18 +++ packages/components/radio/package.json | 2 +- packages/components/ripple/CHANGELOG.md | 11 ++ packages/components/ripple/package.json | 2 +- .../components/scroll-shadow/CHANGELOG.md | 11 ++ .../components/scroll-shadow/package.json | 2 +- packages/components/select/CHANGELOG.md | 35 ++++++ packages/components/select/package.json | 6 +- .../components/select/src/hidden-select.tsx | 5 +- packages/components/select/src/use-select.ts | 1 + packages/components/skeleton/CHANGELOG.md | 10 ++ packages/components/skeleton/package.json | 2 +- packages/components/slider/CHANGELOG.md | 11 ++ packages/components/slider/package.json | 2 +- packages/components/snippet/CHANGELOG.md | 22 ++++ packages/components/snippet/package.json | 2 +- packages/components/spacer/CHANGELOG.md | 11 ++ packages/components/spacer/package.json | 2 +- packages/components/spinner/CHANGELOG.md | 21 ++++ packages/components/spinner/package.json | 2 +- packages/components/spinner/tsup.config.ts | 1 + packages/components/switch/CHANGELOG.md | 11 ++ packages/components/switch/package.json | 2 +- packages/components/table/CHANGELOG.md | 21 ++++ packages/components/table/package.json | 2 +- packages/components/tabs/CHANGELOG.md | 14 +++ packages/components/tabs/package.json | 2 +- packages/components/toast/CHANGELOG.md | 27 +++++ packages/components/toast/package.json | 6 +- .../components/toast/src/toast-region.tsx | 7 +- packages/components/toast/src/toast.tsx | 2 +- packages/components/toast/src/use-toast.ts | 45 ++++--- .../toast/stories/toast.stories.tsx | 28 +++-- packages/components/tooltip/CHANGELOG.md | 14 +++ packages/components/tooltip/package.json | 2 +- packages/components/user/CHANGELOG.md | 11 ++ packages/components/user/package.json | 2 +- packages/core/react/CHANGELOG.md | 110 ++++++++++++++++++ packages/core/react/package.json | 2 +- packages/core/system-rsc/CHANGELOG.md | 6 + packages/core/system-rsc/package.json | 2 +- packages/core/system/CHANGELOG.md | 10 ++ packages/core/system/package.json | 2 +- packages/core/theme/CHANGELOG.md | 15 +++ packages/core/theme/package.json | 2 +- .../core/theme/src/components/breadcrumbs.ts | 1 - .../use-aria-accordion-item/CHANGELOG.md | 6 + .../use-aria-accordion-item/package.json | 2 +- .../hooks/use-aria-accordion/CHANGELOG.md | 6 + .../hooks/use-aria-accordion/package.json | 2 +- packages/hooks/use-aria-button/CHANGELOG.md | 9 ++ packages/hooks/use-aria-button/package.json | 2 +- packages/hooks/use-aria-link/CHANGELOG.md | 9 ++ packages/hooks/use-aria-link/package.json | 2 +- .../hooks/use-aria-modal-overlay/CHANGELOG.md | 6 + .../hooks/use-aria-modal-overlay/package.json | 2 +- .../hooks/use-aria-multiselect/CHANGELOG.md | 6 + .../hooks/use-aria-multiselect/package.json | 2 +- packages/hooks/use-callback-ref/CHANGELOG.md | 9 ++ packages/hooks/use-callback-ref/package.json | 2 +- packages/hooks/use-clipboard/CHANGELOG.md | 6 + packages/hooks/use-clipboard/package.json | 2 +- .../use-data-scroll-overflow/CHANGELOG.md | 9 ++ .../use-data-scroll-overflow/package.json | 2 +- packages/hooks/use-disclosure/CHANGELOG.md | 9 ++ packages/hooks/use-disclosure/package.json | 2 +- packages/hooks/use-draggable/CHANGELOG.md | 6 + packages/hooks/use-draggable/package.json | 2 +- packages/hooks/use-image/CHANGELOG.md | 10 ++ packages/hooks/use-image/package.json | 2 +- .../hooks/use-infinite-scroll/CHANGELOG.md | 9 ++ .../hooks/use-infinite-scroll/package.json | 2 +- .../use-intersection-observer/CHANGELOG.md | 6 + .../use-intersection-observer/package.json | 2 +- packages/hooks/use-is-mobile/CHANGELOG.md | 6 + packages/hooks/use-is-mobile/package.json | 2 +- packages/hooks/use-is-mounted/CHANGELOG.md | 6 + packages/hooks/use-is-mounted/package.json | 2 +- packages/hooks/use-measure/CHANGELOG.md | 6 + packages/hooks/use-measure/package.json | 2 +- packages/hooks/use-pagination/CHANGELOG.md | 9 ++ packages/hooks/use-pagination/package.json | 2 +- packages/hooks/use-real-shape/CHANGELOG.md | 9 ++ packages/hooks/use-real-shape/package.json | 2 +- packages/hooks/use-ref-state/CHANGELOG.md | 6 + packages/hooks/use-ref-state/package.json | 2 +- packages/hooks/use-resize/CHANGELOG.md | 6 + packages/hooks/use-resize/package.json | 2 +- .../hooks/use-safe-layout-effect/CHANGELOG.md | 6 + .../hooks/use-safe-layout-effect/package.json | 2 +- .../hooks/use-scroll-position/CHANGELOG.md | 6 + .../hooks/use-scroll-position/package.json | 2 +- packages/hooks/use-ssr/CHANGELOG.md | 6 + packages/hooks/use-ssr/package.json | 2 +- packages/hooks/use-theme/CHANGELOG.md | 6 + packages/hooks/use-theme/package.json | 2 +- packages/hooks/use-update-effect/CHANGELOG.md | 6 + packages/hooks/use-update-effect/package.json | 2 +- packages/utilities/aria-utils/CHANGELOG.md | 11 ++ packages/utilities/aria-utils/package.json | 2 +- packages/utilities/dom-animation/CHANGELOG.md | 6 + packages/utilities/dom-animation/package.json | 2 +- packages/utilities/framer-utils/CHANGELOG.md | 11 ++ packages/utilities/framer-utils/package.json | 2 +- .../utilities/react-rsc-utils/CHANGELOG.md | 6 + .../utilities/react-rsc-utils/package.json | 2 +- packages/utilities/react-utils/CHANGELOG.md | 10 ++ packages/utilities/react-utils/package.json | 2 +- packages/utilities/shared-icons/CHANGELOG.md | 6 + packages/utilities/shared-icons/package.json | 2 +- packages/utilities/shared-utils/CHANGELOG.md | 6 + packages/utilities/shared-utils/package.json | 2 +- packages/utilities/stories-utils/CHANGELOG.md | 6 + packages/utilities/stories-utils/package.json | 23 +--- packages/utilities/test-utils/CHANGELOG.md | 6 + packages/utilities/test-utils/package.json | 23 +--- pnpm-lock.yaml | 84 +++---------- 189 files changed, 1543 insertions(+), 243 deletions(-) diff --git a/apps/docs/components/sandpack/entries.ts b/apps/docs/components/sandpack/entries.ts index 4d92704bf1..ce03d380d0 100644 --- a/apps/docs/components/sandpack/entries.ts +++ b/apps/docs/components/sandpack/entries.ts @@ -54,3 +54,5 @@ export const postcssConfig = `module.exports = { export const stylesConfig = `@tailwind base; @tailwind components; @tailwind utilities;`; + +export const npmrcConfig = `public-hoist-pattern[]=*@heroui/*`; diff --git a/apps/docs/components/sandpack/use-sandpack.ts b/apps/docs/components/sandpack/use-sandpack.ts index d117b92d30..71ed7d33b3 100644 --- a/apps/docs/components/sandpack/use-sandpack.ts +++ b/apps/docs/components/sandpack/use-sandpack.ts @@ -5,7 +5,14 @@ import {useLocalStorage} from "usehooks-ts"; import {HighlightedLines} from "./types"; import {getHighlightedLines, getFileName} from "./utils"; -import {stylesConfig, postcssConfig, tailwindConfig, getHtmlFile, rootFile} from "./entries"; +import { + stylesConfig, + postcssConfig, + tailwindConfig, + npmrcConfig, + getHtmlFile, + rootFile, +} from "./entries"; export interface UseSandpackProps { files?: SandpackFiles; @@ -207,6 +214,10 @@ export const useSandpack = ({ code: stylesConfig, hidden: true, }, + ".npmrc": { + code: npmrcConfig, + hidden: true, + }, }, hasTypescript, entryFile, diff --git a/apps/docs/hooks/use-stackblitz.ts b/apps/docs/hooks/use-stackblitz.ts index 28dc868626..d78bb0322b 100644 --- a/apps/docs/hooks/use-stackblitz.ts +++ b/apps/docs/hooks/use-stackblitz.ts @@ -39,7 +39,17 @@ export function useStackblitz(props: UseSandpackProps) { typescriptStrict, }); - const transformFiles = mapKeys(filesData, (_, key) => key.replace(/^\//, "")); + // in stackblitz, npm will be used to install dependencies + // it doesn't need `public-hoist-pattern[]=*@heroui/*` + const filteredFilesData = Object.keys(filesData) + .filter((k) => k !== ".npmrc") + .reduce((o, k) => { + o[k] = filesData[k]; + + return o; + }, {}); + + const transformFiles = mapKeys(filteredFilesData, (_, key) => key.replace(/^\//, "")); const dependencies = {...customSetup.dependencies, ...customSetup.devDependencies}; diff --git a/package.json b/package.json index 03b459ab89..fd01794186 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,8 @@ }, "scripts": { "dev": "pnpm sb", - "build": "turbo build --filter=!@heroui/docs --filter=!@heroui/storybook", - "build:fast": "turbo build:fast --filter=!@heroui/docs --filter=!@heroui/storybook", + "build": "turbo build --filter='!@heroui/docs' --filter='!@heroui/storybook' --filter='!@heroui/stories-utils' --filter='!@heroui/test-utils'", + "build:fast": "turbo build:fast --filter='!@heroui/docs' --filter='!@heroui/storybook' --filter='!@heroui/stories-utils' --filter='!@heroui/test-utils'", "dev:docs": "turbo dev --filter=@heroui/docs", "build:docs": "turbo build --filter=@heroui/docs", "build:docs-meta": "node ./scripts/update-index-docs.js", diff --git a/packages/components/accordion/CHANGELOG.md b/packages/components/accordion/CHANGELOG.md index 4f49c45b7f..db94b7829b 100644 --- a/packages/components/accordion/CHANGELOG.md +++ b/packages/components/accordion/CHANGELOG.md @@ -1,5 +1,21 @@ # @heroui/accordion +## 2.2.12 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/divider@2.2.10 + - @heroui/use-aria-accordion@2.2.7 + - @heroui/aria-utils@2.2.12 + - @heroui/dom-animation@2.1.6 + - @heroui/framer-utils@2.1.11 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + ## 2.2.11 ### Patch Changes diff --git a/packages/components/accordion/package.json b/packages/components/accordion/package.json index dd3778e44b..f1262ff2a2 100644 --- a/packages/components/accordion/package.json +++ b/packages/components/accordion/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/accordion", - "version": "2.2.11", + "version": "2.2.12", "description": "Collapse display a list of high-level options that can expand/collapse to reveal more information.", "keywords": [ "react", diff --git a/packages/components/alert/CHANGELOG.md b/packages/components/alert/CHANGELOG.md index 68b44f1602..5a38135f5a 100644 --- a/packages/components/alert/CHANGELOG.md +++ b/packages/components/alert/CHANGELOG.md @@ -1,5 +1,24 @@ # @heroui/alert +## 2.2.15 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/button@2.2.15 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.2.14 + +### Patch Changes + +- Updated dependencies []: + - @heroui/button@2.2.14 + ## 2.2.13 ### Patch Changes diff --git a/packages/components/alert/package.json b/packages/components/alert/package.json index 578aecce17..19316f3ed8 100644 --- a/packages/components/alert/package.json +++ b/packages/components/alert/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/alert", - "version": "2.2.13", + "version": "2.2.15", "description": "Alerts are temporary notifications that provide concise feedback about an action or event.", "keywords": [ "alert" diff --git a/packages/components/autocomplete/CHANGELOG.md b/packages/components/autocomplete/CHANGELOG.md index 1612e28120..d3f8f79c73 100644 --- a/packages/components/autocomplete/CHANGELOG.md +++ b/packages/components/autocomplete/CHANGELOG.md @@ -1,5 +1,39 @@ # @heroui/autocomplete +## 2.3.16 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/button@2.2.15 + - @heroui/form@2.1.14 + - @heroui/input@2.4.15 + - @heroui/listbox@2.3.14 + - @heroui/popover@2.3.15 + - @heroui/scroll-shadow@2.3.10 + - @heroui/spinner@2.2.12 + - @heroui/use-aria-button@2.2.9 + - @heroui/use-safe-layout-effect@2.1.6 + - @heroui/aria-utils@2.2.12 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.3.15 + +### Patch Changes + +- Updated dependencies [[`2186f6d`](https://github.com/heroui-inc/heroui/commit/2186f6da23679c5cf63ea03c9c6df9ca6df92ad9), [`09a2b73`](https://github.com/heroui-inc/heroui/commit/09a2b7387056e176417404dbf7edb4cfb8c880a9)]: + - @heroui/spinner@2.2.11 + - @heroui/input@2.4.14 + - @heroui/button@2.2.14 + - @heroui/popover@2.3.14 + - @heroui/form@2.1.13 + - @heroui/listbox@2.3.13 + - @heroui/scroll-shadow@2.3.9 + ## 2.3.14 ### Patch Changes diff --git a/packages/components/autocomplete/package.json b/packages/components/autocomplete/package.json index cd8fe841a4..3d6935ebfe 100644 --- a/packages/components/autocomplete/package.json +++ b/packages/components/autocomplete/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/autocomplete", - "version": "2.3.14", + "version": "2.3.16", "description": "An autocomplete combines a text input with a listbox, allowing users to filter a list of options to items matching a query.", "keywords": [ "autocomplete" diff --git a/packages/components/avatar/CHANGELOG.md b/packages/components/avatar/CHANGELOG.md index 321afcc46c..e098e035e4 100644 --- a/packages/components/avatar/CHANGELOG.md +++ b/packages/components/avatar/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/avatar +## 2.2.11 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/use-image@2.1.7 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.10 ### Patch Changes diff --git a/packages/components/avatar/package.json b/packages/components/avatar/package.json index e5a371dad5..086e849cb2 100644 --- a/packages/components/avatar/package.json +++ b/packages/components/avatar/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/avatar", - "version": "2.2.10", + "version": "2.2.11", "description": "The Avatar component is used to represent a user, and displays the profile picture, initials or fallback icon.", "keywords": [ "avatar" diff --git a/packages/components/badge/CHANGELOG.md b/packages/components/badge/CHANGELOG.md index 7b5cb19257..ac09edf08b 100644 --- a/packages/components/badge/CHANGELOG.md +++ b/packages/components/badge/CHANGELOG.md @@ -1,5 +1,15 @@ # @heroui/badge +## 2.2.10 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.9 ### Patch Changes diff --git a/packages/components/badge/package.json b/packages/components/badge/package.json index 3cdc13b03a..ae121ddaa8 100644 --- a/packages/components/badge/package.json +++ b/packages/components/badge/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/badge", - "version": "2.2.9", + "version": "2.2.10", "description": "Badges are used as a small numerical value or status descriptor for UI elements.", "keywords": [ "badge" diff --git a/packages/components/breadcrumbs/CHANGELOG.md b/packages/components/breadcrumbs/CHANGELOG.md index 7c9c3894e9..1cd8fe1dad 100644 --- a/packages/components/breadcrumbs/CHANGELOG.md +++ b/packages/components/breadcrumbs/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/breadcrumbs +## 2.2.11 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + ## 2.2.10 ### Patch Changes diff --git a/packages/components/breadcrumbs/package.json b/packages/components/breadcrumbs/package.json index f73f8d9a89..00de94dd0c 100644 --- a/packages/components/breadcrumbs/package.json +++ b/packages/components/breadcrumbs/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/breadcrumbs", - "version": "2.2.10", + "version": "2.2.11", "description": "Breadcrumbs display a hierarchy of links to the current page or resource in an application.", "keywords": [ "breadcrumbs" diff --git a/packages/components/button/CHANGELOG.md b/packages/components/button/CHANGELOG.md index 57abec9251..d3ab31ee84 100644 --- a/packages/components/button/CHANGELOG.md +++ b/packages/components/button/CHANGELOG.md @@ -1,5 +1,26 @@ # @heroui/button +## 2.2.15 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/ripple@2.2.12 + - @heroui/spinner@2.2.12 + - @heroui/use-aria-button@2.2.9 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.2.14 + +### Patch Changes + +- Updated dependencies [[`2186f6d`](https://github.com/heroui-inc/heroui/commit/2186f6da23679c5cf63ea03c9c6df9ca6df92ad9)]: + - @heroui/spinner@2.2.11 + - @heroui/ripple@2.2.11 + ## 2.2.13 ### Patch Changes diff --git a/packages/components/button/package.json b/packages/components/button/package.json index 6e5ff955bf..009b1fd6fb 100644 --- a/packages/components/button/package.json +++ b/packages/components/button/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/button", - "version": "2.2.13", + "version": "2.2.15", "description": "Buttons allow users to perform actions and choose with a single tap.", "keywords": [ "button" diff --git a/packages/components/calendar/CHANGELOG.md b/packages/components/calendar/CHANGELOG.md index fce244e06b..a2ad9b9dcd 100644 --- a/packages/components/calendar/CHANGELOG.md +++ b/packages/components/calendar/CHANGELOG.md @@ -1,5 +1,27 @@ # @heroui/calendar +## 2.2.15 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/button@2.2.15 + - @heroui/use-aria-button@2.2.9 + - @heroui/dom-animation@2.1.6 + - @heroui/framer-utils@2.1.11 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.2.14 + +### Patch Changes + +- Updated dependencies []: + - @heroui/button@2.2.14 + ## 2.2.13 ### Patch Changes diff --git a/packages/components/calendar/package.json b/packages/components/calendar/package.json index 8db87828a5..8919084f8d 100644 --- a/packages/components/calendar/package.json +++ b/packages/components/calendar/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/calendar", - "version": "2.2.13", + "version": "2.2.15", "description": "A calendar displays one or more date grids and allows users to select a single date.", "keywords": [ "calendar" diff --git a/packages/components/card/CHANGELOG.md b/packages/components/card/CHANGELOG.md index 216b385e2d..a451f5deda 100644 --- a/packages/components/card/CHANGELOG.md +++ b/packages/components/card/CHANGELOG.md @@ -1,5 +1,17 @@ # @heroui/card +## 2.2.14 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/ripple@2.2.12 + - @heroui/use-aria-button@2.2.9 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.13 ### Patch Changes diff --git a/packages/components/card/package.json b/packages/components/card/package.json index c63d531906..1714e4a93f 100644 --- a/packages/components/card/package.json +++ b/packages/components/card/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/card", - "version": "2.2.13", + "version": "2.2.14", "description": "Card is a container for text, photos, and actions in the context of a single subject.", "keywords": [ "card" diff --git a/packages/components/checkbox/CHANGELOG.md b/packages/components/checkbox/CHANGELOG.md index 809319c241..362a689326 100644 --- a/packages/components/checkbox/CHANGELOG.md +++ b/packages/components/checkbox/CHANGELOG.md @@ -1,5 +1,25 @@ # @heroui/checkbox +## 2.3.14 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/form@2.1.14 + - @heroui/use-callback-ref@2.1.6 + - @heroui/use-safe-layout-effect@2.1.6 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.3.13 + +### Patch Changes + +- Updated dependencies []: + - @heroui/form@2.1.13 + ## 2.3.12 ### Patch Changes diff --git a/packages/components/checkbox/package.json b/packages/components/checkbox/package.json index 20eb1fd20d..ce3db1484c 100644 --- a/packages/components/checkbox/package.json +++ b/packages/components/checkbox/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/checkbox", - "version": "2.3.12", + "version": "2.3.14", "description": "Checkboxes allow users to select multiple items from a list of individual items, or to mark one individual item as selected.", "keywords": [ "checkbox" diff --git a/packages/components/chip/CHANGELOG.md b/packages/components/chip/CHANGELOG.md index 5e3b9b93ea..7a1d2f79e7 100644 --- a/packages/components/chip/CHANGELOG.md +++ b/packages/components/chip/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/chip +## 2.2.11 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + ## 2.2.10 ### Patch Changes diff --git a/packages/components/chip/package.json b/packages/components/chip/package.json index fee6ccab64..02f1d2dd61 100644 --- a/packages/components/chip/package.json +++ b/packages/components/chip/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/chip", - "version": "2.2.10", + "version": "2.2.11", "description": "Chips help people enter information, make selections, filter content, or trigger actions.", "keywords": [ "chip" diff --git a/packages/components/code/CHANGELOG.md b/packages/components/code/CHANGELOG.md index 9b8e91ebab..bedf8dcd7e 100644 --- a/packages/components/code/CHANGELOG.md +++ b/packages/components/code/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/code +## 2.2.11 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/system-rsc@2.3.10 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.10 ### Patch Changes diff --git a/packages/components/code/package.json b/packages/components/code/package.json index 47e6f29f2a..9b748fb181 100644 --- a/packages/components/code/package.json +++ b/packages/components/code/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/code", - "version": "2.2.10", + "version": "2.2.11", "description": "Code is a component used to display inline code.", "keywords": [ "code" diff --git a/packages/components/date-input/CHANGELOG.md b/packages/components/date-input/CHANGELOG.md index e1c33e6039..1a77e54c9f 100644 --- a/packages/components/date-input/CHANGELOG.md +++ b/packages/components/date-input/CHANGELOG.md @@ -1,5 +1,25 @@ # @heroui/date-input +## 2.3.14 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/form@2.1.14 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.3.13 + +### Patch Changes + +- [#4901](https://github.com/heroui-inc/heroui/pull/4901) [`09a2b73`](https://github.com/heroui-inc/heroui/commit/09a2b7387056e176417404dbf7edb4cfb8c880a9) Thanks [@wingkwong](https://github.com/wingkwong)! - update peerDependencies (#4901) + +- Updated dependencies []: + - @heroui/form@2.1.13 + ## 2.3.12 ### Patch Changes diff --git a/packages/components/date-input/package.json b/packages/components/date-input/package.json index 8c057792fe..93b8ffcd10 100644 --- a/packages/components/date-input/package.json +++ b/packages/components/date-input/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/date-input", - "version": "2.3.12", + "version": "2.3.14", "description": "A date input allows users to enter and edit date and time values using a keyboard.", "keywords": [ "date-field" @@ -34,8 +34,8 @@ "postpack": "clean-package restore" }, "peerDependencies": { - "@heroui/system": ">=2.4.7", - "@heroui/theme": ">=2.4.6", + "@heroui/system": ">=2.4.10", + "@heroui/theme": ">=2.4.9", "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0" }, diff --git a/packages/components/date-picker/CHANGELOG.md b/packages/components/date-picker/CHANGELOG.md index 2945f9530e..e4759b7d10 100644 --- a/packages/components/date-picker/CHANGELOG.md +++ b/packages/components/date-picker/CHANGELOG.md @@ -1,5 +1,35 @@ # @heroui/date-picker +## 2.3.15 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/button@2.2.15 + - @heroui/calendar@2.2.15 + - @heroui/date-input@2.3.14 + - @heroui/form@2.1.14 + - @heroui/popover@2.3.15 + - @heroui/aria-utils@2.2.12 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.3.14 + +### Patch Changes + +- [#4901](https://github.com/heroui-inc/heroui/pull/4901) [`09a2b73`](https://github.com/heroui-inc/heroui/commit/09a2b7387056e176417404dbf7edb4cfb8c880a9) Thanks [@wingkwong](https://github.com/wingkwong)! - update peerDependencies (#4901) + +- Updated dependencies [[`09a2b73`](https://github.com/heroui-inc/heroui/commit/09a2b7387056e176417404dbf7edb4cfb8c880a9)]: + - @heroui/date-input@2.3.13 + - @heroui/button@2.2.14 + - @heroui/popover@2.3.14 + - @heroui/calendar@2.2.14 + - @heroui/form@2.1.13 + ## 2.3.13 ### Patch Changes diff --git a/packages/components/date-picker/package.json b/packages/components/date-picker/package.json index 2d0a619ceb..fd2c7bfc06 100644 --- a/packages/components/date-picker/package.json +++ b/packages/components/date-picker/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/date-picker", - "version": "2.3.13", + "version": "2.3.15", "description": "A date picker combines a DateInput and a Calendar popover to allow users to enter or select a date and time value.", "keywords": [ "date-picker" @@ -34,8 +34,8 @@ "postpack": "clean-package restore" }, "peerDependencies": { - "@heroui/system": ">=2.4.7", - "@heroui/theme": ">=2.4.6", + "@heroui/system": ">=2.4.10", + "@heroui/theme": ">=2.4.9", "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1", "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0" diff --git a/packages/components/divider/CHANGELOG.md b/packages/components/divider/CHANGELOG.md index 78a7838596..bb0302c921 100644 --- a/packages/components/divider/CHANGELOG.md +++ b/packages/components/divider/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/divider +## 2.2.10 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/system-rsc@2.3.10 + - @heroui/react-rsc-utils@2.1.6 + - @heroui/shared-utils@2.1.7 + ## 2.2.9 ### Patch Changes diff --git a/packages/components/divider/package.json b/packages/components/divider/package.json index b32f97eed5..64a8b49e0a 100644 --- a/packages/components/divider/package.json +++ b/packages/components/divider/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/divider", - "version": "2.2.9", + "version": "2.2.10", "description": ". A separator is a visual divider between two groups of content", "keywords": [ "divider" diff --git a/packages/components/drawer/CHANGELOG.md b/packages/components/drawer/CHANGELOG.md index 3c6884091d..0f768f7db6 100644 --- a/packages/components/drawer/CHANGELOG.md +++ b/packages/components/drawer/CHANGELOG.md @@ -1,5 +1,17 @@ # @heroui/drawer +## 2.2.12 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/modal@2.2.12 + - @heroui/framer-utils@2.1.11 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.11 ### Patch Changes diff --git a/packages/components/drawer/README.md b/packages/components/drawer/README.md index 584b4387eb..ed6def7498 100644 --- a/packages/components/drawer/README.md +++ b/packages/components/drawer/README.md @@ -1,8 +1,8 @@ # @heroui/drawer -A Quick description of the component +Used to render a content that slides in from the side of the screen. -> This is an internal utility, not intended for public usage. +Please refer to the [documentation](https://heroui.com/docs/components/drawer) for more information. ## Installation diff --git a/packages/components/drawer/package.json b/packages/components/drawer/package.json index c89fa9a41e..34972316e1 100644 --- a/packages/components/drawer/package.json +++ b/packages/components/drawer/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/drawer", - "version": "2.2.11", + "version": "2.2.12", "description": "Used to render a content that slides in from the side of the screen.", "keywords": [ "drawer" diff --git a/packages/components/dropdown/CHANGELOG.md b/packages/components/dropdown/CHANGELOG.md index 4f2476b73b..0a379082ac 100644 --- a/packages/components/dropdown/CHANGELOG.md +++ b/packages/components/dropdown/CHANGELOG.md @@ -1,5 +1,26 @@ # @heroui/dropdown +## 2.3.15 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/menu@2.2.14 + - @heroui/popover@2.3.15 + - @heroui/aria-utils@2.2.12 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.3.14 + +### Patch Changes + +- Updated dependencies []: + - @heroui/popover@2.3.14 + - @heroui/menu@2.2.13 + ## 2.3.13 ### Patch Changes diff --git a/packages/components/dropdown/package.json b/packages/components/dropdown/package.json index 1bd2046ee3..3127dc0c91 100644 --- a/packages/components/dropdown/package.json +++ b/packages/components/dropdown/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/dropdown", - "version": "2.3.13", + "version": "2.3.15", "description": "A dropdown displays a list of actions or options that a user can choose.", "keywords": [ "dropdown" diff --git a/packages/components/form/CHANGELOG.md b/packages/components/form/CHANGELOG.md index 04e37cbabb..fbfdea4669 100644 --- a/packages/components/form/CHANGELOG.md +++ b/packages/components/form/CHANGELOG.md @@ -1,5 +1,24 @@ # @heroui/form +## 2.1.14 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/system@2.4.11 + - @heroui/theme@2.4.11 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.1.13 + +### Patch Changes + +- Updated dependencies [[`2774a1b`](https://github.com/heroui-inc/heroui/commit/2774a1b3513e2a046c538a2982a438f56608bbf2)]: + - @heroui/theme@2.4.10 + ## 2.1.12 ### Patch Changes diff --git a/packages/components/form/README.md b/packages/components/form/README.md index 0c40d6b4c0..2be316a66c 100644 --- a/packages/components/form/README.md +++ b/packages/components/form/README.md @@ -1,8 +1,8 @@ # @heroui/form -A Quick description of the component +A form is a group of inputs that allows users submit data to a server and supports field validation errors. -> This is an internal utility, not intended for public usage. +Please refer to the [documentation](https://heroui.com/docs/components/form) for more information. ## Installation diff --git a/packages/components/form/package.json b/packages/components/form/package.json index c37f150d04..dd1e943457 100644 --- a/packages/components/form/package.json +++ b/packages/components/form/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/form", - "version": "2.1.12", + "version": "2.1.14", "description": "A form is a group of inputs that allows users submit data to a server and supports field validation errors.", "keywords": [ "form" diff --git a/packages/components/image/CHANGELOG.md b/packages/components/image/CHANGELOG.md index d7c8079860..de58760163 100644 --- a/packages/components/image/CHANGELOG.md +++ b/packages/components/image/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/image +## 2.2.10 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/use-image@2.1.7 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.9 ### Patch Changes diff --git a/packages/components/image/package.json b/packages/components/image/package.json index 36fbfe5551..7b04cf762c 100644 --- a/packages/components/image/package.json +++ b/packages/components/image/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/image", - "version": "2.2.9", + "version": "2.2.10", "description": "A simple image component", "keywords": [ "image" diff --git a/packages/components/input-otp/CHANGELOG.md b/packages/components/input-otp/CHANGELOG.md index 54f049ca67..f641260e41 100644 --- a/packages/components/input-otp/CHANGELOG.md +++ b/packages/components/input-otp/CHANGELOG.md @@ -1,5 +1,23 @@ # @heroui/input-otp +## 2.1.14 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/form@2.1.14 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.1.13 + +### Patch Changes + +- Updated dependencies []: + - @heroui/form@2.1.13 + ## 2.1.12 ### Patch Changes diff --git a/packages/components/input-otp/package.json b/packages/components/input-otp/package.json index d504a64baf..73aef63ccc 100644 --- a/packages/components/input-otp/package.json +++ b/packages/components/input-otp/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/input-otp", - "version": "2.1.12", + "version": "2.1.14", "description": "", "keywords": [ "input-otp" diff --git a/packages/components/input/CHANGELOG.md b/packages/components/input/CHANGELOG.md index 2087d3809e..a40ce8860b 100644 --- a/packages/components/input/CHANGELOG.md +++ b/packages/components/input/CHANGELOG.md @@ -1,5 +1,27 @@ # @heroui/input +## 2.4.15 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/form@2.1.14 + - @heroui/use-safe-layout-effect@2.1.6 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.4.14 + +### Patch Changes + +- [#4901](https://github.com/heroui-inc/heroui/pull/4901) [`09a2b73`](https://github.com/heroui-inc/heroui/commit/09a2b7387056e176417404dbf7edb4cfb8c880a9) Thanks [@wingkwong](https://github.com/wingkwong)! - update peerDependencies (#4901) + +- Updated dependencies []: + - @heroui/form@2.1.13 + ## 2.4.13 ### Patch Changes diff --git a/packages/components/input/__tests__/input.test.tsx b/packages/components/input/__tests__/input.test.tsx index 4079688268..8493de8191 100644 --- a/packages/components/input/__tests__/input.test.tsx +++ b/packages/components/input/__tests__/input.test.tsx @@ -300,6 +300,66 @@ describe("Input", () => { expect(onClear).toHaveBeenCalledTimes(0); }); + + it("should clear value when isClearable and pressing ESC key", async () => { + const onClear = jest.fn(); + const defaultValue = "test value"; + + const {getByRole} = render(); + + const input = getByRole("textbox") as HTMLInputElement; + + expect(input.value).toBe(defaultValue); + + fireEvent.keyDown(input, {key: "Escape"}); + + expect(input.value).toBe(""); + + expect(onClear).toHaveBeenCalledTimes(1); + }); + + it("should not clear value when pressing ESC key if input is empty", () => { + const onClear = jest.fn(); + + const {getByRole} = render(); + + const input = getByRole("textbox"); + + fireEvent.keyDown(input, {key: "Escape"}); + + expect(onClear).not.toHaveBeenCalled(); + }); + + it("should not clear value when pressing ESC key if input is isClearable", () => { + const defaultValue = "test value"; + + const {getByRole} = render(); + + const input = getByRole("textbox") as HTMLInputElement; + + fireEvent.keyDown(input, {key: "Escape"}); + + expect(input.value).toBe("test value"); + }); + + it("should not clear value when pressing ESC key if input is readonly", () => { + const onClear = jest.fn(); + const defaultValue = "test value"; + + const {getByRole} = render( + , + ); + + const input = getByRole("textbox") as HTMLInputElement; + + expect(input.value).toBe(defaultValue); + + fireEvent.keyDown(input, {key: "Escape"}); + + expect(input.value).toBe(defaultValue); + + expect(onClear).not.toHaveBeenCalled(); + }); }); describe("Input with React Hook Form", () => { diff --git a/packages/components/input/package.json b/packages/components/input/package.json index f1414a02eb..da3c03d2f1 100644 --- a/packages/components/input/package.json +++ b/packages/components/input/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/input", - "version": "2.4.13", + "version": "2.4.15", "description": "The input component is designed for capturing user input within a text field.", "keywords": [ "input" @@ -36,8 +36,8 @@ "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0", - "@heroui/theme": ">=2.4.6", - "@heroui/system": ">=2.4.7" + "@heroui/theme": ">=2.4.9", + "@heroui/system": ">=2.4.10" }, "dependencies": { "@heroui/form": "workspace:*", diff --git a/packages/components/input/src/use-input.ts b/packages/components/input/src/use-input.ts index 96ec39906b..7918bba877 100644 --- a/packages/components/input/src/use-input.ts +++ b/packages/components/input/src/use-input.ts @@ -352,6 +352,21 @@ export function useInput) => { + if ( + e.key === "Escape" && + inputValue && + (isClearable || onClear) && + !originalProps.isReadOnly + ) { + setInputValue(""); + onClear?.(); + } + }, + [inputValue, setInputValue, onClear, isClearable, originalProps.isReadOnly], + ); + const getInputProps: PropGetter = useCallback( (props = {}) => { return { @@ -375,6 +390,7 @@ export function useInput { expect(stepperButton).toBeNull(); }); + + it("should clear value when isClearable and pressing ESC key", async () => { + const onClear = jest.fn(); + const defaultValue = 12; + + const {container} = render( + , + ); + + const input = container.querySelector("input") as HTMLInputElement; + + expect(input.value).toBe(defaultValue.toString()); + + fireEvent.keyDown(input, {key: "Escape"}); + expect(input.value).toBe(""); + expect(onClear).toHaveBeenCalledTimes(1); + }); + + it("should not clear value when pressing ESC key if input is empty", () => { + const onClear = jest.fn(); + + const {container} = render(); + + const input = container.querySelector("input") as HTMLInputElement; + + fireEvent.keyDown(input, {key: "Escape"}); + expect(onClear).not.toHaveBeenCalled(); + }); + + it("should not clear value when pressing ESC key without isClearable", () => { + const defaultValue = 12; + + const {container} = render(); + + const input = container.querySelector("input") as HTMLInputElement; + + expect(input.value).toBe(defaultValue.toString()); + + fireEvent.keyDown(input, {key: "Escape"}); + expect(input.value).toBe(defaultValue.toString()); + }); + + it("should not clear value when pressing ESC key if input is readonly", () => { + const onClear = jest.fn(); + const defaultValue = 42; + + const {container} = render(); + + const input = container.querySelector("input") as HTMLInputElement; + + expect(input.value).toBe(defaultValue.toString()); + + fireEvent.keyDown(input, {key: "Escape"}); + + expect(input.value).toBe(defaultValue.toString()); + expect(onClear).not.toHaveBeenCalled(); + }); + + it("should emit onChange", async () => { + const onChange = jest.fn(); + + const {container} = render(); + + const input = container.querySelector("input") as HTMLInputElement; + + await user.click(input); + await user.keyboard("1024"); + + expect(onChange).toHaveBeenCalledTimes(4); + }); + + it("should emit onChange with keyboard up & down key", async () => { + const onChange = jest.fn(); + + const {container} = render(); + + const input = container.querySelector("input") as HTMLInputElement; + + await user.click(input); + await user.keyboard("[ArrowUp]"); + await user.keyboard("[ArrowUp]"); + expect(onChange).toHaveBeenCalledTimes(2); + await user.keyboard("[ArrowDown]"); + expect(onChange).toHaveBeenCalledTimes(3); + }); }); describe("NumberInput with React Hook Form", () => { @@ -503,7 +588,6 @@ describe("NumberInput with React Hook Form", () => { await user.tab(); await user.keyboard("1234"); - await user.tab(); }); }); }); diff --git a/packages/components/number-input/package.json b/packages/components/number-input/package.json index b9e8c2013f..55d3d53d94 100644 --- a/packages/components/number-input/package.json +++ b/packages/components/number-input/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/number-input", - "version": "2.0.3", + "version": "2.0.5", "description": "The numeric input component is designed for users to enter a number, and increase or decrease the value using stepper buttons", "keywords": [ "input", @@ -38,8 +38,8 @@ "peerDependencies": { "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0", - "@heroui/theme": ">=2.4.6", - "@heroui/system": ">=2.4.7" + "@heroui/system": ">=2.4.10", + "@heroui/theme": ">=2.4.9" }, "dependencies": { "@heroui/form": "workspace:*", diff --git a/packages/components/number-input/src/use-number-input.ts b/packages/components/number-input/src/use-number-input.ts index 1de8811ed7..e8fa6fa3c8 100644 --- a/packages/components/number-input/src/use-number-input.ts +++ b/packages/components/number-input/src/use-number-input.ts @@ -136,7 +136,7 @@ export function useNumberInput(originalProps: UseNumberInputProps) { ...originalProps, validationBehavior, locale, - onChange: onValueChange, + onChange: chain(onValueChange, onChange), }); const { @@ -239,6 +239,21 @@ export function useNumberInput(originalProps: UseNumberInputProps) { [objectToDeps(variantProps), isInvalid, isClearable, hasStartContent, disableAnimation], ); + const handleKeyDown = useCallback( + (e: React.KeyboardEvent) => { + if ( + e.key === "Escape" && + inputValue && + (isClearable || onClear) && + !originalProps.isReadOnly + ) { + state.setInputValue(""); + onClear?.(); + } + }, + [inputValue, state.setInputValue, onClear, isClearable, originalProps.isReadOnly], + ); + const getBaseProps: PropGetter = useCallback( (props = {}) => { return { @@ -324,6 +339,7 @@ export function useNumberInput(originalProps: UseNumberInputProps) { ), "aria-readonly": dataAttr(originalProps.isReadOnly), onChange: chain(inputProps.onChange, onChange), + onKeyDown: chain(inputProps.onKeyDown, props.onKeyDown, handleKeyDown), ref: domRef, }; }, @@ -339,6 +355,7 @@ export function useNumberInput(originalProps: UseNumberInputProps) { originalProps.isReadOnly, originalProps.isRequired, onChange, + handleKeyDown, ], ); diff --git a/packages/components/pagination/CHANGELOG.md b/packages/components/pagination/CHANGELOG.md index 18fee4a7a7..c6503f24a4 100644 --- a/packages/components/pagination/CHANGELOG.md +++ b/packages/components/pagination/CHANGELOG.md @@ -1,5 +1,18 @@ # @heroui/pagination +## 2.2.13 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/use-intersection-observer@2.2.7 + - @heroui/use-pagination@2.2.8 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + ## 2.2.12 ### Patch Changes diff --git a/packages/components/pagination/package.json b/packages/components/pagination/package.json index 029626609a..dd8d4ff40b 100644 --- a/packages/components/pagination/package.json +++ b/packages/components/pagination/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/pagination", - "version": "2.2.12", + "version": "2.2.13", "description": "The Pagination component allows you to display active page and navigate between multiple pages.", "keywords": [ "pagination" diff --git a/packages/components/popover/CHANGELOG.md b/packages/components/popover/CHANGELOG.md index 55ae350874..746b98a32c 100644 --- a/packages/components/popover/CHANGELOG.md +++ b/packages/components/popover/CHANGELOG.md @@ -1,5 +1,28 @@ # @heroui/popover +## 2.3.15 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/button@2.2.15 + - @heroui/use-aria-button@2.2.9 + - @heroui/use-safe-layout-effect@2.1.6 + - @heroui/aria-utils@2.2.12 + - @heroui/dom-animation@2.1.6 + - @heroui/framer-utils@2.1.11 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.3.14 + +### Patch Changes + +- Updated dependencies []: + - @heroui/button@2.2.14 + ## 2.3.13 ### Patch Changes diff --git a/packages/components/popover/package.json b/packages/components/popover/package.json index b1741cae00..c197278800 100644 --- a/packages/components/popover/package.json +++ b/packages/components/popover/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/popover", - "version": "2.3.13", + "version": "2.3.15", "description": "A popover is an overlay element positioned relative to a trigger.", "keywords": [ "popover" diff --git a/packages/components/progress/CHANGELOG.md b/packages/components/progress/CHANGELOG.md index 96e0572865..3d179b9f32 100644 --- a/packages/components/progress/CHANGELOG.md +++ b/packages/components/progress/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/progress +## 2.2.11 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/use-is-mounted@2.1.6 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.10 ### Patch Changes diff --git a/packages/components/progress/package.json b/packages/components/progress/package.json index 6d84879d64..4e437a6dc0 100644 --- a/packages/components/progress/package.json +++ b/packages/components/progress/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/progress", - "version": "2.2.10", + "version": "2.2.11", "description": "Progress bars show either determinate or indeterminate progress of an operation over time.", "keywords": [ "progress" diff --git a/packages/components/radio/CHANGELOG.md b/packages/components/radio/CHANGELOG.md index fe05f54ea6..fda2d38997 100644 --- a/packages/components/radio/CHANGELOG.md +++ b/packages/components/radio/CHANGELOG.md @@ -1,5 +1,23 @@ # @heroui/radio +## 2.3.14 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/form@2.1.14 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.3.13 + +### Patch Changes + +- Updated dependencies []: + - @heroui/form@2.1.13 + ## 2.3.12 ### Patch Changes diff --git a/packages/components/radio/package.json b/packages/components/radio/package.json index 80f5ca901b..a892ae8341 100644 --- a/packages/components/radio/package.json +++ b/packages/components/radio/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/radio", - "version": "2.3.12", + "version": "2.3.14", "description": "Radios allow users to select a single option from a list of mutually exclusive options.", "keywords": [ "radio" diff --git a/packages/components/ripple/CHANGELOG.md b/packages/components/ripple/CHANGELOG.md index 5d8a425872..2434bc97c1 100644 --- a/packages/components/ripple/CHANGELOG.md +++ b/packages/components/ripple/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/ripple +## 2.2.12 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/dom-animation@2.1.6 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.11 ### Patch Changes diff --git a/packages/components/ripple/package.json b/packages/components/ripple/package.json index 3c9f3e437c..cc49cfb1cf 100644 --- a/packages/components/ripple/package.json +++ b/packages/components/ripple/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/ripple", - "version": "2.2.11", + "version": "2.2.12", "description": "A simple implementation to display a ripple animation when the source component is clicked", "keywords": [ "ripple" diff --git a/packages/components/scroll-shadow/CHANGELOG.md b/packages/components/scroll-shadow/CHANGELOG.md index e51c7ea966..8ffeee49e3 100644 --- a/packages/components/scroll-shadow/CHANGELOG.md +++ b/packages/components/scroll-shadow/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/scroll-shadow +## 2.3.10 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/use-data-scroll-overflow@2.2.7 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.3.9 ### Patch Changes diff --git a/packages/components/scroll-shadow/package.json b/packages/components/scroll-shadow/package.json index a1d6a03b17..cd5bb5d547 100644 --- a/packages/components/scroll-shadow/package.json +++ b/packages/components/scroll-shadow/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/scroll-shadow", - "version": "2.3.9", + "version": "2.3.10", "description": "A component that applies top and bottom shadows when content overflows on scroll.", "keywords": [ "scroll-shadow" diff --git a/packages/components/select/CHANGELOG.md b/packages/components/select/CHANGELOG.md index 849be0c5c8..79885e6d26 100644 --- a/packages/components/select/CHANGELOG.md +++ b/packages/components/select/CHANGELOG.md @@ -1,5 +1,40 @@ # @heroui/select +## 2.4.15 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/form@2.1.14 + - @heroui/listbox@2.3.14 + - @heroui/popover@2.3.15 + - @heroui/scroll-shadow@2.3.10 + - @heroui/spinner@2.2.12 + - @heroui/use-aria-button@2.2.9 + - @heroui/use-aria-multiselect@2.4.8 + - @heroui/use-safe-layout-effect@2.1.6 + - @heroui/aria-utils@2.2.12 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.4.14 + +### Patch Changes + +- [#4854](https://github.com/heroui-inc/heroui/pull/4854) [`989cbe1`](https://github.com/heroui-inc/heroui/commit/989cbe1eb0eb42c0c718b67f08b8db1c8721ba7f) Thanks [@smozely](https://github.com/smozely)! - Pass form prop to hidden-select + +- [#4901](https://github.com/heroui-inc/heroui/pull/4901) [`09a2b73`](https://github.com/heroui-inc/heroui/commit/09a2b7387056e176417404dbf7edb4cfb8c880a9) Thanks [@wingkwong](https://github.com/wingkwong)! - update peerDependencies (#4901) + +- Updated dependencies [[`2186f6d`](https://github.com/heroui-inc/heroui/commit/2186f6da23679c5cf63ea03c9c6df9ca6df92ad9)]: + - @heroui/spinner@2.2.11 + - @heroui/popover@2.3.14 + - @heroui/form@2.1.13 + - @heroui/listbox@2.3.13 + - @heroui/scroll-shadow@2.3.9 + ## 2.4.13 ### Patch Changes diff --git a/packages/components/select/package.json b/packages/components/select/package.json index d794352cb6..22f5769d9f 100644 --- a/packages/components/select/package.json +++ b/packages/components/select/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/select", - "version": "2.4.13", + "version": "2.4.15", "description": "A select displays a collapsible list of options and allows a user to select one of them.", "keywords": [ "select" @@ -34,8 +34,8 @@ "postpack": "clean-package restore" }, "peerDependencies": { - "@heroui/system": ">=2.4.7", - "@heroui/theme": ">=2.4.6", + "@heroui/system": ">=2.4.10", + "@heroui/theme": ">=2.4.9", "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1", "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0" diff --git a/packages/components/select/src/hidden-select.tsx b/packages/components/select/src/hidden-select.tsx index c5009c73a9..ea9e9d537f 100644 --- a/packages/components/select/src/hidden-select.tsx +++ b/packages/components/select/src/hidden-select.tsx @@ -68,6 +68,7 @@ export function useHiddenSelect( isDisabled = data.isDisabled, selectionMode, onChange, + form, } = props; let {validationBehavior, isRequired, isInvalid} = data; let {visuallyHiddenProps} = useVisuallyHidden(); @@ -92,6 +93,7 @@ export function useHiddenSelect( style: {display: "none"}, }, selectProps: { + form, autoComplete, disabled: isDisabled, "aria-invalid": isInvalid || undefined, @@ -117,7 +119,7 @@ export function useHiddenSelect( * form autofill, mobile form navigation, and native form submission. */ export function HiddenSelect(props: HiddenSelectProps) { - let {state, triggerRef, selectRef, label, name, isDisabled} = props; + let {state, triggerRef, selectRef, label, name, isDisabled, form} = props; let {containerProps, selectProps} = useHiddenSelect({...props, selectRef}, state, triggerRef); @@ -151,6 +153,7 @@ export function HiddenSelect(props: HiddenSelectProps) { (originalProps: UseSelectProps) { isRequired: originalProps?.isRequired, autoComplete: originalProps?.autoComplete, isDisabled: originalProps?.isDisabled, + form: originalProps?.form, onChange, ...props, } as HiddenSelectProps), diff --git a/packages/components/skeleton/CHANGELOG.md b/packages/components/skeleton/CHANGELOG.md index 081a7a5ebb..c098ec929a 100644 --- a/packages/components/skeleton/CHANGELOG.md +++ b/packages/components/skeleton/CHANGELOG.md @@ -1,5 +1,15 @@ # @heroui/skeleton +## 2.2.10 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.9 ### Patch Changes diff --git a/packages/components/skeleton/package.json b/packages/components/skeleton/package.json index d5fc59e61d..725892652a 100644 --- a/packages/components/skeleton/package.json +++ b/packages/components/skeleton/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/skeleton", - "version": "2.2.9", + "version": "2.2.10", "description": "Skeleton is used to display the loading state of some component.", "keywords": [ "skeleton" diff --git a/packages/components/slider/CHANGELOG.md b/packages/components/slider/CHANGELOG.md index 5cfa372d64..b027a9173d 100644 --- a/packages/components/slider/CHANGELOG.md +++ b/packages/components/slider/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/slider +## 2.4.12 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/tooltip@2.2.12 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.4.11 ### Patch Changes diff --git a/packages/components/slider/package.json b/packages/components/slider/package.json index 929fe23882..09f1c188ce 100644 --- a/packages/components/slider/package.json +++ b/packages/components/slider/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/slider", - "version": "2.4.11", + "version": "2.4.12", "description": "A slider allows a user to select one or more values within a range.", "keywords": [ "slider" diff --git a/packages/components/snippet/CHANGELOG.md b/packages/components/snippet/CHANGELOG.md index 144dd8b2d6..5d2bdb65aa 100644 --- a/packages/components/snippet/CHANGELOG.md +++ b/packages/components/snippet/CHANGELOG.md @@ -1,5 +1,27 @@ # @heroui/snippet +## 2.2.16 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/button@2.2.15 + - @heroui/tooltip@2.2.12 + - @heroui/use-clipboard@2.1.7 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.2.15 + +### Patch Changes + +- Updated dependencies []: + - @heroui/button@2.2.14 + - @heroui/tooltip@2.2.11 + ## 2.2.14 ### Patch Changes diff --git a/packages/components/snippet/package.json b/packages/components/snippet/package.json index 2c1c6e1b43..0ead3aae67 100644 --- a/packages/components/snippet/package.json +++ b/packages/components/snippet/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/snippet", - "version": "2.2.14", + "version": "2.2.16", "description": "Display a snippet of copyable code for the command line.", "keywords": [ "snippet" diff --git a/packages/components/spacer/CHANGELOG.md b/packages/components/spacer/CHANGELOG.md index 88f7cfa0cc..e8786f34a4 100644 --- a/packages/components/spacer/CHANGELOG.md +++ b/packages/components/spacer/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/spacer +## 2.2.11 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/system-rsc@2.3.10 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.10 ### Patch Changes diff --git a/packages/components/spacer/package.json b/packages/components/spacer/package.json index 56f826ca21..5abb5f300c 100644 --- a/packages/components/spacer/package.json +++ b/packages/components/spacer/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/spacer", - "version": "2.2.10", + "version": "2.2.11", "description": "A flexible spacer component designed to create consistent spacing and maintain alignment in your layout.", "keywords": [ "spacer" diff --git a/packages/components/spinner/CHANGELOG.md b/packages/components/spinner/CHANGELOG.md index 4f533a927c..21a064b2af 100644 --- a/packages/components/spinner/CHANGELOG.md +++ b/packages/components/spinner/CHANGELOG.md @@ -1,5 +1,26 @@ # @heroui/spinner +## 2.2.12 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/system@2.4.11 + - @heroui/system-rsc@2.3.10 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + +## 2.2.11 + +### Patch Changes + +- [#4904](https://github.com/heroui-inc/heroui/pull/4904) [`2186f6d`](https://github.com/heroui-inc/heroui/commit/2186f6da23679c5cf63ea03c9c6df9ca6df92ad9) Thanks [@wingkwong](https://github.com/wingkwong)! - add `use client` directive in tsup (#4903) + +- Updated dependencies []: + - @heroui/system-rsc@2.3.9 + ## 2.2.10 ### Patch Changes diff --git a/packages/components/spinner/package.json b/packages/components/spinner/package.json index b04f9a20a4..f37ba7fb80 100644 --- a/packages/components/spinner/package.json +++ b/packages/components/spinner/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/spinner", - "version": "2.2.10", + "version": "2.2.12", "description": "Loaders express an unspecified wait time or display the length of a process.", "keywords": [ "loading", diff --git a/packages/components/spinner/tsup.config.ts b/packages/components/spinner/tsup.config.ts index e7ef417947..3e2bcff6cc 100644 --- a/packages/components/spinner/tsup.config.ts +++ b/packages/components/spinner/tsup.config.ts @@ -4,4 +4,5 @@ export default defineConfig({ clean: true, target: "es2019", format: ["cjs", "esm"], + banner: {js: '"use client";'}, }); diff --git a/packages/components/switch/CHANGELOG.md b/packages/components/switch/CHANGELOG.md index 445f1395ed..2328ddaa58 100644 --- a/packages/components/switch/CHANGELOG.md +++ b/packages/components/switch/CHANGELOG.md @@ -1,5 +1,16 @@ # @heroui/switch +## 2.2.13 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/use-safe-layout-effect@2.1.6 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.12 ### Patch Changes diff --git a/packages/components/switch/package.json b/packages/components/switch/package.json index 57cb393c5c..5a62066319 100644 --- a/packages/components/switch/package.json +++ b/packages/components/switch/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/switch", - "version": "2.2.12", + "version": "2.2.13", "description": "A switch is similar to a checkbox, but represents on/off values as opposed to selection.", "keywords": [ "switch" diff --git a/packages/components/table/CHANGELOG.md b/packages/components/table/CHANGELOG.md index 816dd16ba0..61abe5136d 100644 --- a/packages/components/table/CHANGELOG.md +++ b/packages/components/table/CHANGELOG.md @@ -1,5 +1,26 @@ # @heroui/table +## 2.2.14 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/checkbox@2.3.14 + - @heroui/spacer@2.2.11 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.2.13 + +### Patch Changes + +- Updated dependencies []: + - @heroui/checkbox@2.3.13 + - @heroui/spacer@2.2.10 + ## 2.2.12 ### Patch Changes diff --git a/packages/components/table/package.json b/packages/components/table/package.json index 20c9adb66d..3f3723d96b 100644 --- a/packages/components/table/package.json +++ b/packages/components/table/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/table", - "version": "2.2.12", + "version": "2.2.14", "description": "Tables are used to display tabular data using rows and columns. ", "keywords": [ "table" diff --git a/packages/components/tabs/CHANGELOG.md b/packages/components/tabs/CHANGELOG.md index 3cc02e9f91..ebef3d8b62 100644 --- a/packages/components/tabs/CHANGELOG.md +++ b/packages/components/tabs/CHANGELOG.md @@ -1,5 +1,19 @@ # @heroui/tabs +## 2.2.12 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/use-is-mounted@2.1.6 + - @heroui/use-update-effect@2.1.6 + - @heroui/aria-utils@2.2.12 + - @heroui/framer-utils@2.1.11 + - @heroui/react-utils@2.1.8 + - @heroui/shared-utils@2.1.7 + ## 2.2.11 ### Patch Changes diff --git a/packages/components/tabs/package.json b/packages/components/tabs/package.json index dd0effe05d..6cafb742ab 100644 --- a/packages/components/tabs/package.json +++ b/packages/components/tabs/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/tabs", - "version": "2.2.11", + "version": "2.2.12", "description": "Tabs organize content into multiple sections and allow users to navigate between them.", "keywords": [ "tabs" diff --git a/packages/components/toast/CHANGELOG.md b/packages/components/toast/CHANGELOG.md index a2cd67211d..f74abb75d1 100644 --- a/packages/components/toast/CHANGELOG.md +++ b/packages/components/toast/CHANGELOG.md @@ -1,5 +1,32 @@ # @heroui/toast +## 2.0.5 + +### Patch Changes + +- v2.7.4 + +- Updated dependencies []: + - @heroui/spinner@2.2.12 + - @heroui/use-is-mobile@2.2.7 + - @heroui/react-utils@2.1.8 + - @heroui/shared-icons@2.1.6 + - @heroui/shared-utils@2.1.7 + +## 2.0.4 + +### Patch Changes + +- [#4901](https://github.com/heroui-inc/heroui/pull/4901) [`09a2b73`](https://github.com/heroui-inc/heroui/commit/09a2b7387056e176417404dbf7edb4cfb8c880a9) Thanks [@wingkwong](https://github.com/wingkwong)! - update peerDependencies (#4901) + +- [#4881](https://github.com/heroui-inc/heroui/pull/4881) [`29df4f5`](https://github.com/heroui-inc/heroui/commit/29df4f531756daf84d2334926d193715fefeb428) Thanks [@macci001](https://github.com/macci001)! - fixing maxVisibleToast functionality in toast (#4870) + For promises, starting the timer only after the promise is resolved + +- [#4858](https://github.com/heroui-inc/heroui/pull/4858) [`fd446da`](https://github.com/heroui-inc/heroui/commit/fd446dac2ac2af56f287a6b23c5baaea79ec3979) Thanks [@wingkwong](https://github.com/wingkwong)! - fix shouldShowTimeoutProgess typo (#4856) + +- Updated dependencies [[`2186f6d`](https://github.com/heroui-inc/heroui/commit/2186f6da23679c5cf63ea03c9c6df9ca6df92ad9)]: + - @heroui/spinner@2.2.11 + ## 2.0.3 ### Patch Changes diff --git a/packages/components/toast/package.json b/packages/components/toast/package.json index 59b7f4a927..47bb04a439 100644 --- a/packages/components/toast/package.json +++ b/packages/components/toast/package.json @@ -1,6 +1,6 @@ { "name": "@heroui/toast", - "version": "2.0.3", + "version": "2.0.5", "description": "Toast are temporary notifications that provide concise feedback about an action or event", "keywords": [ "toast" @@ -34,8 +34,8 @@ "postpack": "clean-package restore" }, "peerDependencies": { - "@heroui/system": ">=2.4.7", - "@heroui/theme": ">=2.4.6", + "@heroui/system": ">=2.4.10", + "@heroui/theme": ">=2.4.9", "react": ">=18 || >=19.0.0-rc.0", "react-dom": ">=18 || >=19.0.0-rc.0", "framer-motion": ">=11.5.6 || >=12.0.0-alpha.1" diff --git a/packages/components/toast/src/toast-region.tsx b/packages/components/toast/src/toast-region.tsx index 41a212ece7..54c568661a 100644 --- a/packages/components/toast/src/toast-region.tsx +++ b/packages/components/toast/src/toast-region.tsx @@ -74,7 +74,11 @@ export function ToastRegion({ return null; } - if (total - index <= 4 || (isHovered && total - index <= maxVisibleToasts + 1)) { + if ( + disableAnimation || + total - index <= 4 || + (isHovered && total - index <= maxVisibleToasts + 1) + ) { return ( ({ heights={heights} index={index} isRegionExpanded={isHovered || isTouched} + maxVisibleToasts={maxVisibleToasts} placement={placement} setHeights={setHeights} toastOffset={toastOffset} diff --git a/packages/components/toast/src/toast.tsx b/packages/components/toast/src/toast.tsx index 3ce829f454..372f24b6e2 100644 --- a/packages/components/toast/src/toast.tsx +++ b/packages/components/toast/src/toast.tsx @@ -69,7 +69,7 @@ const Toast = forwardRef<"div", ToastProps>((props, ref) => { ) : null; diff --git a/packages/components/toast/src/use-toast.ts b/packages/components/toast/src/use-toast.ts index a442678767..51e793bbea 100644 --- a/packages/components/toast/src/use-toast.ts +++ b/packages/components/toast/src/use-toast.ts @@ -100,7 +100,7 @@ export interface ToastProps extends ToastVariantProps { /** * should apply styles to indicate timeout progress */ - shouldShowTimeoutProgess?: boolean; + shouldShowTimeoutProgress?: boolean; /** * The severity of the toast. This changes the icon without having to change the color. * @default "default" @@ -119,6 +119,7 @@ interface Props extends Omit, "title">, ToastProps { isRegionExpanded: boolean; placement?: ToastPlacement; toastOffset?: number; + maxVisibleToasts: number; } export type UseToastProps = Props & @@ -154,10 +155,11 @@ export function useToast(originalProps: UseToastProps) toastOffset = 0, motionProps, timeout = 6000, - shouldShowTimeoutProgess = false, + shouldShowTimeoutProgress = false, icon, onClose, severity, + maxVisibleToasts, ...otherProps } = props; @@ -193,9 +195,18 @@ export function useToast(originalProps: UseToastProps) } }, []); + const [isLoading, setIsLoading] = useState(!!promiseProp); + + useEffect(() => { + if (!promiseProp) return; + promiseProp.finally(() => { + setIsLoading(false); + }); + }, [promiseProp]); + useEffect(() => { const updateProgress = (timestamp: number) => { - if (!timeout) { + if (!timeout || isLoading) { return; } @@ -222,7 +233,7 @@ export function useToast(originalProps: UseToastProps) if (progressBarRef.current) { progressBarRef.current.style.width = `${ - shouldShowTimeoutProgess ? progressRef.current : 0 + shouldShowTimeoutProgress ? progressRef.current : 0 }%`; } @@ -238,16 +249,16 @@ export function useToast(originalProps: UseToastProps) cancelAnimationFrame(animationRef.current); } }; - }, [timeout, shouldShowTimeoutProgess, state, isToastHovered, index, total, isRegionExpanded]); - - const [isLoading, setIsLoading] = useState(!!promiseProp); - - useEffect(() => { - if (!promiseProp) return; - promiseProp.finally(() => { - setIsLoading(false); - }); - }, [promiseProp]); + }, [ + timeout, + shouldShowTimeoutProgress, + state, + isToastHovered, + index, + total, + isRegionExpanded, + isLoading, + ]); const Component = as || "div"; const loadingIcon: ReactNode = icon; @@ -486,7 +497,10 @@ export function useToast(originalProps: UseToastProps) "data-drag-value": number; className: string; } => { - const isCloseToEnd = total - index - 1 <= 2; + const comparingValue = isRegionExpanded + ? maxVisibleToasts - 1 + : Math.min(2, maxVisibleToasts - 1); + const isCloseToEnd = total - index - 1 <= comparingValue; const dragDirection = placement === "bottom-center" || placement === "top-center" ? "y" : "x"; const dragConstraints = {left: 0, right: 0, top: 0, bottom: 0}; const dragElastic = getDragElasticConstraints(placement); @@ -593,6 +607,7 @@ export function useToast(originalProps: UseToastProps) shouldCloseToast, slots, toastOffset, + maxVisibleToasts, ], ); diff --git a/packages/components/toast/stories/toast.stories.tsx b/packages/components/toast/stories/toast.stories.tsx index b501f18789..d85529f032 100644 --- a/packages/components/toast/stories/toast.stories.tsx +++ b/packages/components/toast/stories/toast.stories.tsx @@ -49,6 +49,9 @@ export default { "top-center", ], }, + maxVisibleToasts: { + control: {type: "number"}, + }, hideCloseButton: { control: { type: "boolean", @@ -80,7 +83,7 @@ const defaultProps = { const Template = (args: ToastProps) => { return ( <> - +