Compare commits

...

200 Commits

Author SHA1 Message Date
github-actions[bot] 2c9c817702 ci(changesets): version packages (#3755)
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2024-09-15 19:58:02 +08:00
աӄա 8fecb5afa9 fix(dropdown): _a2.find is not a function (#3762)
* feat(dropdown): add "should respect closeOnSelect setting of DropdownItem (dynamic)"

* chore(changeset): add changeset

* fix(dropdown): find is not function error when click dropdown item (#3763)

* fix: find is not function error when click dropdown item

* fix: find is not function error when click dropdown item

* fix: type error

* fix: optimization

* refactor(dropdown): must have return value

* chore(changeset): revise changeset

---------

Co-authored-by: winches <329487092@qq.com>
2024-09-15 19:17:00 +08:00
աӄա 2293884229 chore: rollback pr3467 (#3759)
* chore: rollback pr3467
2024-09-15 15:59:49 +08:00
Junior Garcia 324f9128bc Merge branch 'canary' of github.com:nextui-org/nextui into canary 2024-09-14 20:30:56 -07:00
Junior Garcia d67579c6b0 Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-09-14 20:30:35 -07:00
Junior Garcia 97b7dfc0de chore: ph badge removed 2024-09-14 20:30:15 -07:00
աӄա 0e62d6b44d chore(docs): update sponsor section (#3758) 2024-09-14 19:45:02 -07:00
աӄա 4c01d1824d chore: undo pr3307 (#3756)
* chore: rollback pr3307

* chore(changeset): fix typo
2024-09-14 11:39:52 -07:00
աӄա 5517a0578b chore: undo pr3658 & pr3751 (#3754) 2024-09-14 14:00:15 -03:00
Junior Garcia fccb19fda3 Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-09-14 09:39:58 -07:00
աӄա 3469534ac9 v2.4.7 (#3750) 2024-09-14 13:37:25 -03:00
աӄա 339a5e754c fix(docs): set shouldBlockScroll to false (#3752) 2024-09-14 16:10:36 +08:00
աӄա 4a0739fe67 fix(docs): missing tw nested groups in docs (#3751) 2024-09-14 15:41:27 +08:00
github-actions[bot] def45d4d7a ci(changesets): version packages (#3662)
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2024-09-14 13:18:24 +08:00
Abhinandan a6eccbea66 fix(docs): Floating components clipping in hero section (#3432)
* fix(docs): incorrect image height

* fix(docs): clipping of Floating components in Hero section

* chore(docs): remove unnecessary space

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-14 12:43:24 +08:00
աӄա 5b5a9746e3 fix(theme): applied tw nested group (#3658)
* fix(theme): apply nested group for checkbox

* fix(theme): apply nested group for autocomplete

* fix(theme): apply nested group for select

* fix(theme): apply nested group for toggle

* fix(theme): apply nested group for radio

* fix(theme): apply nested group for input

* fix(theme): apply nested group for datepicker

* fix(theme): apply nested group for dateinput

* chore(changeset): add changeset

* chore(changeset): add issue number

* chore(theme): format code

* feat(table): add TableWithSwitch
2024-09-13 14:06:45 +08:00
vetan2 b0728e3c38 fix(hook): re-attached scroll event behavior in useScrollPosition (#3247)
* fix: initialize throttleTimeout in cleanup function

* chore(changeset): add changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-12 22:09:12 +08:00
Hyden Liu 142f394cb5 fix(theme): set the min-height of base height to 100dvh where size equals "full" (#2684)
* fix(modal): set the min-height of base height to 100dvh where size equals "full"

* chore(changeset): add changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-12 20:21:52 +08:00
Junior Garcia 601b162311 chore: add ph banner (#3743) 2024-09-12 00:11:37 -07:00
Riley Butterfield 54bd9cdd6d fix(theme): update flat variant text colors to be accessible (#3738)
* fix: use accessible text colors for flat variant

* fix: use accessible text colors for flat variant

* chore(changeset): update changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-12 00:00:03 +08:00
աӄա 74792f7bff fix(select): missing onChange when there are more than 300 items (#3598)
* fix(select): missing onChange when there are more than 300 items

* feat(select): add tests for onChange

* chore(changeset): add changeset
2024-09-11 11:23:48 +08:00
աӄա 446a6bf57c refactor(deps): remove react copy from react-rsc-utils bundle (#3597)
* refactor(deps): remove react copy from react-rsc-utils bundle

* chore(changeset): add changeset
2024-09-11 11:23:24 +08:00
Maharshi Alpesh 5fd001c241 refactor(docs): add package manager options (#3731)
Co-authored-by: Maharshi Alpesh <maharshialpesh@Maharshi-Book.local>
2024-09-10 23:44:52 +08:00
աӄա 4ac7674d1e fix(system): missing useHref logic (#2943)
* chore(deps): update pnpm-lock.yaml

* fix(system): missing useHref logic

* chore(docs): restructure heading

* feat(docs): add useHref content to routing page

* fix(hooks): revise useAriaLink onClick logic

* chore(deps): bump @react-types/shared

* chore(deps): bump @react-types/shared

* fix(hooks): add missing parameters

* fix(pagination): add missing parameters

* feat(changeset): add missing router.open parameters due to rounter change

* fix(docs): onSelectionChange type

* refactor(changeset): revise changeset message

* chore(deps): lock deps

* chore(hooks): bump @react-types/shared to 3.23.0

* chore(changeset): remove this changeset since it is already in canary
2024-09-10 23:21:31 +08:00
աӄա 3ed05abe10 chore(docs): update component link (#3737) 2024-09-10 21:37:29 +08:00
black197 bc0f72fc27 fix(theme): use data-hover instead of hover (#2110) 2024-09-10 20:41:47 +08:00
Amir Hossein Hashemi 06b97d05a8 fix(table): improve RTL support for table component (#2097)
Co-authored-by: amirhhashemi <87268103+amirhhashemi@users.noreply.github>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-10 19:54:54 +08:00
Matheus Cruz Rocha c2c35348d4 fix(docs): remove unwanted generic from PaginationItemRenderProps(#3729)
In the documentation on the custom item the type PaginationItemRenderProps is represented with a generic but in the implementation it doesn't receive a generic type.
2024-09-10 00:00:25 +08:00
աӄա 8f5f93d4e1 chore(docs): remove disallowEmptySelection from tabs page (#3648) 2024-09-08 10:09:23 -07:00
Abhinandan cb7d7a27fe fix(docs): added missing package manager tabs in docs (#3650) 2024-09-08 10:08:51 -07:00
աӄա 942cfc3a88 fix(docs): add missing React and remove unexpected args (#3652) 2024-09-08 10:07:51 -07:00
Amir Hossein Hashemi fe30dc8cc0 fix(components): improve RTL support for pagination component (#2044)
* fix(components): improve RTL support for pagination component

* chore(changeset): remove unchanged package

* chore(pagination): undo change

* chore(pagination): no chevronPrev slot

* fix(theme): avoid rotate chevron in rtl

---------

Co-authored-by: amirhhashemi <87268103+amirhhashemi@users.noreply.github>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-08 21:21:19 +08:00
Amir Hossein Hashemi 6f44cd6a98 fix(components): improve RTL support for select component (#2041)
* fix(components): improve RTL support for select component

* fix(theme): rtl styles for select

* chore(changeset): remove unchanged package

* chore(theme): remove ps-2

---------

Co-authored-by: amirhhashemi <87268103+amirhhashemi@users.noreply.github>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-08 21:02:25 +08:00
Amir Hossein Hashemi deb15078cc fix(components): improve RTL support for input component (#2038)
* fix(components): improve RTL support for select component

* fix(theme): revise RTL styles

* chore(changeset): remove input package from changeset

---------

Co-authored-by: amirhhashemi <87268103+amirhhashemi@users.noreply.github>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-08 20:24:24 +08:00
Robin f4d16e1e8f chore(ci): update github action versions (#2439)
* chore(ci): update github action versions

* chore(ci): update pnpm, gh-action and node versions

* fix(ci): specify exact version in gh-action

* chore(changeset): remove changeset

* chore(root): update pnpm version

* chore(root): update node version

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>
2024-09-08 17:42:37 +08:00
Eli f0eb7a6113 chore(docs): add global css import to root layout (#2688)
* Adds global css import to root layout

* refactor(docs): include globals css info in other examples

---------

Co-authored-by: Eli <52673344+EliBP@users.noreply.github.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-08 17:16:30 +08:00
Atharva Upadhye 84c1574793 fix(root): .nvmrc version (#2795)
* fix(config): Cannot use .nvmrc #2794

* fix(root): correct nvmrc version

---------

Co-authored-by: AtharvaUpadhye <70993547+AtharvaUpadhye@users.noreply.github.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-08 16:16:37 +08:00
chirokas 659cdcf02d chore: run tests and storybook in StrictMode (#3352)
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-08 15:35:29 +08:00
chirokas d621b2923e fix(autocomplete): highlight item in AutocompleteSection during keyboard navigation (#3726) 2024-09-07 22:59:00 +08:00
Shrinidhi Upadhyaya 985c2e1dd3 fix(input): added hover and focus to input when label placement is outside-left #2328 (#2958)
* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* fix(input): added hover and focus to input when label placement is outside-left #2328

* fix(input): label props mergeProps precedence change

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
2024-09-07 18:21:31 +08:00
Abhinandan 324fd6d3c1 fix(listbox): card shadow clipping when inside listbox item (#3486)
* fix(listbox): card shadow clipping when inside listbox item

* fix(listbox): card shadow clipping when inside listbox item

* Update five-teachers-refuse.md

* Delete .changeset/bright-avocados-yell.md

* fix(listbox): card shadow clipping when inside listbox item
2024-09-07 15:45:11 +08:00
Maharshi Alpesh 46cc01908e fix(theme): color discrepancy in select (#3663)
* fix(select): resolving color descrepancy in select

* fix(select): making the changes accroding to the asked design

* chore(changeset): revise message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-07 15:31:12 +08:00
աӄա 60cd878ee4 chore(autocomplete): should blur after clicking outside autocomplete (#3721) 2024-09-06 11:21:56 +08:00
աӄա 485b8653de chore(input): rollback PR3533 (#3720) 2024-09-06 10:13:18 +08:00
chirokas 123b7fbc9f refactor(overlays): improve stability, and complexity (#3467)
* feat(hooks): new `use-aria-overlay` package

* refactor(overlays): use custom `useAriaOverlay`

* chore(modal): remove unnecessary `onClose: state.close`

* chore(popover): remove duplicate `ariaHideOutside`

* test(modal): only hide the top-most modal

* chore: add changeset

* refactor(hooks): useAriaOverlay tweaks

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-05 22:06:32 +08:00
chirokas 81da063d6a fix(autocomplete): ignore pointer events when the clear button is hidden (#3000)
* fix(autocomplete): hide clear button with `visibility: hidden`

* fix(autocomplete): clear button pointer-events

* refactor(autocomplete): improve keyboard reopen issue on mobile

* chore: add changeset

* refactor(autocomplete): apply chain and add type to e

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-05 17:24:15 +08:00
chirokas 19c331be75 refactor(popover): use usePreventScroll instead of react-remove-scroll (#3307)
* refactor(popover): use `usePreventScroll` instead of `react-remove-scroll`

* chore: lint

* refactor(popover): use `usePreventScroll` instead of `react-remove-scroll`

* chore: lint

* fix(tooltip): `shouldBlockScroll` prop

* chore(storybook): revert

* chore(changeset): update changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-05 17:22:52 +08:00
sohan01fw 5c8cc7a42d fix(select): prevent select from closing instantly when clicking on label of select (#3568)
* fix(select): prevent select from closing instantly when clicking on label

* fix(select): flickering on label click

* fix(select): flickering while click on label

* fix(select): add changeset on fixing the flickering model issue

* chore(changeset): revise changeset message and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-05 17:22:05 +08:00
安忆 eda316ab24 fix(hooks): ensure exposed functions wrap by useCallback (#3607)
* fix(hooks): ensure exposed functions wrap by `useCallback`

* fix(hooks/use-real-shape): remove unnecessary dependency from `useCallback`
2024-09-05 17:21:01 +08:00
HaRuki Kuriwada 26d8f01e27 fix(docs): added ts example for infinite pagination (#2718)
* fix(docs): added ts example for infinite pagination

* fix(docs): changed the condition of showOpenInCodeSandbox in CodeDemo

* chore(docs): add bun command

* chore(docs): add bun command

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-04 20:32:35 +08:00
Shrinidhi Upadhyaya 87336c74bb fix(docs): changed breakpoint to md (#2630)
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
2024-09-03 19:50:57 +08:00
ryoon 3d6865586f fix(input): prevent clearable when input is readonly (#3643)
* fix(input): prevent clearable when input is readonly

* test(input): add tests for isReadOnly and isClearable interaction

* chore(changeset): add changeset for fixing clear button visibility with isReadOnly

* fix(input): disable clear button from input is readonly

* test(input): disable clear button when input is readonly

* chore(changeset): update changeset

* chore(changeset): revise message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-03 19:48:06 +08:00
աӄա f36df4362f fix(utilities): gregorian year offset for persian (#3603)
* fix(utilities): gregorian year offset for persian

* feat(changeset): add changeset
2024-09-01 09:40:07 +08:00
աӄա 3e06ef64cc fix(modal): modal position when keyboard appears (#3691)
* feat(theme): add h-[--visual-viewport-height] to modal wrapper

* fix(modal): apply --visual-viewport-height

* chore(changeset): add changeset
2024-09-01 09:34:24 +08:00
rockey2020 59ea6b7457 chore(theme): export default-layout (#2946)
* Support default configuration export

Conveniently available for developers to modify from the default configuration

* chore(changeset): add changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-09-01 01:23:11 +08:00
Amey Bhavsar 55c92981e0 fix(calendar): arrows changing order when html has dir="rtl" (#3656)
* fix(calendar): #3641,#3642 add order and row-reverse to arrows for rtl layout support

* chore(changeset): patch @nextui-org/calendar

* chore(changeset): add missing package and revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-08-31 00:43:04 +08:00
HaRuki Kuriwada 56f1d681ff feat(docs): added tanstack router to the routing section in the documentation (#3271)
* feat(docs): added tanstack router to the routing section in the documentation

* fix: updated the TanStack Router example by following RA example

* fix: updated the documentation wordings

* chore(docs): update highlighted row numbers

---------

Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-08-30 00:09:43 +08:00
Facundo Tenuta 048de6e9b2 fix(navbar): allow height prop to accept number type and fix broken menu (#3601)
* fix(navbar): allow height prop to accept number type and fix broken menu

* fix(navbar): menu breaking when a numerical height value is provided. changeset
2024-08-29 12:55:10 +08:00
Abhinandan 3c0a486cea fix(link): deprecated onClick warning on using onPress (#3569)
* fix(navbar): fixed the height when style h-full

* fix(navbar): fixed the height when style h-full

* fix(link): deprecated onClick warning on using onPress

* refactor(link): add comment

* chore(changeset): revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-08-29 12:53:23 +08:00
chirokas 9d6bcb580a fix(theme): skeleton overflow issue (#3217) 2024-08-29 12:42:24 +08:00
Abhinandan 97f233b346 fix(theme): double click issue on checkbox, toggle and radio (#3552)
* fix(theme): double click issue on checkbox, toggle and radio
2024-08-29 12:40:44 +08:00
Abhinandan 14e25e1257 docs(card, badge): slots section addition (#3580)
* fix(navbar): fixed the height when style h-full

* fix(navbar): fixed the height when style h-full

* docs(card,badge): added slots section

* Delete .changeset/brown-days-applaud.md
2024-08-29 12:27:56 +08:00
Xiao Han 715cd1d9e5 fix(docs): typo in snippet page (#3555) 2024-08-29 12:25:08 +08:00
Abhinandan 8ec338c9b7 doc(sandpack): improved logic for react import (#3582)
* fix(navbar): fixed the height when style h-full

* fix(navbar): fixed the height when style h-full

* docs(sandpack): improved logic for react imoprt

* Delete .changeset/brown-days-applaud.md

* Update use-sandpack.ts

* refactor(docs): skip adding import react if not required

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-08-29 10:27:40 +08:00
Abhinandan 44e89a0779 fix(system-rsc): missing StringToBoolean<keyof V[K]>[] (#3559)
* fix(navbar): fixed the height when style h-full

* fix(navbar): fixed the height when style h-full

* fix(core): string[] accepted by compoundVariants.variant

* Delete .changeset/brown-days-applaud.md

* chore(changeset): revise changeset message

* fix(system-rsc): incorrect VariantValue typing and typo in Options

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-08-29 10:26:26 +08:00
AnthonyPaulO a254abf535 fix(input): sync ref value to internal value (#3533)
* fix: sync ref value to internal value #3024 #3436

* feat: changeset - added changeset

* chore: remove comment

* chore(changeset): add issue numbers

* refactor(input): revise typing

---------

Co-authored-by: Anthony Ortiz <anthonypaulo@hotmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-08-29 10:24:45 +08:00
Abhinandan 2a34880644 docs(storybook): remove overriding and unused code (#3566)
* fix(navbar): fixed the height when style h-full

* fix(navbar): fixed the height when style h-full

* docs(storybook): removed unnecessary code lines

* Delete .changeset/brown-days-applaud.md
2024-08-29 10:21:15 +08:00
Sa'ad e15c43b5a4 docs: fix typo in override styles doc (#3611) 2024-08-29 10:17:28 +08:00
Jay 2ada2850c9 fix: typo in home page (#3615) 2024-08-29 10:14:51 +08:00
աӄա 5809af2ae2 feat(docs): add TS examples for single & multiple selection (#3682) 2024-08-23 12:30:18 -07:00
Gtio 4f8ae50cf4 fix(dropdown): respect closeOnSelect prop on DropdownItem (#2598)
* fix(dropdown): fix dropdown menu unexpected close when closeOnSelect is false (#2290)

* feat(changeset): Updated DropdownMenu to respect closeOnSelect prop on DropdownItem

* fix(dropdown): add Template

* fix(dropdown): add tests

* fix(dropdown): fixing logic gaps

* fix(changeset): incorrect package name

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
2024-08-16 16:47:24 +08:00
Junior Garcia bff6b367b6 Revert "fix(docs): added missing package manager tab (#3631)" (#3646)
This reverts commit bd2b9a12ff.
2024-08-12 14:18:28 -07:00
Abhinandan bd2b9a12ff fix(docs): added missing package manager tab (#3631)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110)

* fix(theme): add missing pointer event after data loaded (#3126)

* fix(system): listbox href issue (experimental) (#3119)

* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element (#3111)

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps

* fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* ci(changesets): version packages (#3115)

* fix(pagination): missing animation (#3144)

* fix tsup domain (#3158)

* chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155)

* fix(autocomplete): maximum update depth exceeded in autocomplete (#3175)

* chore(checkbox): avoid passing non-DOM attributes to svg  (#3199)

* chore(docs): avoid passing non-DOM attributes to svg

* chore(utilities): avoid passing non-DOM attributes to svg

* feat(changeset): add changeset

* fix(docs): fix typo in autocomplete documentation page (#3182)

* fix(select): add missing data-invalid in select and add missing data attributes in docs (#3177)

* fix(select): add missing data-invalid attribute

* chore(docs): add missing data attributes for select base

* fix(tabs): destroyInactiveTabPanel unmounts inactive tabs' content (#3164)

* fix(tabs): incorrect content in tab panel

* feat(tabs): revise destroyInactiveTabPanel test cases

* fix(select): unset form value after unselecting an item (#3157)

* fix(select): set empty string instead of undefined for unsetting value

* feat(selet): should unset form value

* fix(tabs): set tab panel id correctly (#3246)

* docs(tooltip): supplement correct style path (#3183)

* docs(tooltip): supplement correct style path

* chore(docs): move the note below import tabs

* fix(use-aria-menu): link logic in useMenuItem (#3229)

* chore(deps): bump @internationalized/date version (#3230)

* fix(input): input display with hidden type (#3174)

* fix(input): input display with hidden type

* chore(input): add isHiddenType to dependency

* refactor(input): move the styles to theme and change hidden to data attr

* feat(theme): add isHiddenType to input

* chore(changeset): include theme package

* chore(input): revise input test

* fix(theme): remove isHiddenType from variants and use data-hidden prop instead

* fix(theme): remove isHiddenType from defaultVariants

* fix(input): remove isHiddenType passing to input

* feat(date-picker): add support for DatePicker to apply styles to DateInput (#3146)

* feat(date-picker): add support for DatePicker to apply styles to DateInput

* chore: update changeset

* docs(date-picker): add dateInputClassNames props

* refactor(date): updated errorMessage story and modified to import props (#3112)

* refactor(date): updated errorMessage story and modified to import props

* docs(date): add errorMessageFunction examples

* chore: add changeset

* fix: remove unnecessary props

* fix: typo

* Update regex-validation.ts (#3123)

* Update regex-validation.ts

Fix email regex

* Update email regex input.stories.tsx

* fix(autocomplete): controlled state logic (#2969)

* fix(autocomplete): autocomplete controlled state (#2955)

* chore(autocomplete): add changeset

* Update packages/components/autocomplete/__tests__/autocomplete.test.tsx

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(utilities): resolve assignRef TypeScript ref assignment issue (#3098)

* fix(utilities): resolve assignRef TypeScript ref assignment issue

* chore(changeset): revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): table-column align prop (#2900)

* fix(navbar): fixed the height of navbar menu (#1805)

* fix(navbar): fixed the height of navbar menu

* fix(navbar): refactored the css of navbar

* fix(navbar): fix redundant expression

* fix(navbar): fixed unnecessary changes

* fix(navbar): adjust viewport

* fix: RA dependencies bump (#3240)

* fix(popover): popover focus issue (#3187)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix: interactions with popover & focus issues (#3137)

* fix(aria-utils): handle click on listbox

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): pnpm-lock.yaml

* fix(popover): remove disableFocusManagement

* fix(modal): remove disableFocusManagement

* fix(autocomplete): remove custom focus logic and remove ariaShouldCloseOnInteractOutside

* fix(popover): rewrite shouldCloseOnInteractOutside logic

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): bump react-aria dependencies

* chore(autocomplete): change back to focus

* feat(changeset): update changeset

* chore(docs): update type in onSelectionChange

* fix(popover): revise popover test case

* chore(deps): add @nextui-org/aria-utils

* fix(autocomplete): add ariaShouldCloseOnInteractOutside

* fix(date-picker): add ariaShouldCloseOnInteractOutside

* fix(select): add ariaShouldCloseOnInteractOutside

* chore(deps): add @nextui-org/aria-utils

* fix(dropdown): add ariaShouldCloseOnInteractOutside

* feat(utilities): rewrite ariaShouldCloseOnInteractOutside

* fix(popover): use ariaShouldCloseOnInteractOutside

* fix(autocomplete): add back shouldFocus

* fix(utilities): include shouldFocus logic

* chore(utilities): remove !

* refactor(aria-utils): add more comments

* chore(changeset): update packages

* refactor(aria-utils): add more comments

* feat(popover): add test

* fix: dropdown onPress issue (#3211)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix(popover): dropdown onPress blocking issue

* fix(dropdown): incorrect keyCodes

* feat(dropdown): add keyboard onPress test cases

* chore(deps): keep all @react-aria/overlays version consistent

* chore(deps): sync dependencies

* chore(deps): sync dependencies

* refactor(aria-utils): remove shouldFocus logic

* refactor(autocomplete): remove shouldFocus logic and set input focus when open

* chore(deps): bump dependencies

* chore(deps): fix react aria dependencies

* fix(autocomplete): move popover style width inside isOpen true block

* fix(autocomplete): focus back to trigger

* feat(changeset): add changeset

* chore(deps): bump react-aria dependencies

* refactor(autocomplete): revise comment

* refactor(dropdown): revise logSpy and trigger mockRestore

* refactor(popover): remove debug className

* fix(date-input): avoid setting isInvalid in useDateFieldState

* fix(autocomplete): use ComboBoxValidationValue

* feat(use-aria-menu): add deprecate message

* feat(changeset): add missing packages

* refactor(use-aria-menu): remove isLink since it is included in useLinkProps

* Update packages/hooks/use-aria-menu/src/use-menu-item.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3147)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(avatar): remove extra `disableAnimation` prop in `getImageProps` (#3260)

* fix(system-rsc): extendVariants with defaultVariants (#3299)

* fix(date-picker): update calendar classNames in useDateRangePicker (#3258)

* fix(date-picker): update calendar classNames in useDateRangePicker

* feat(docs): include custom styles in date-range-picker docs

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(accordion): variants for nested accordions (#3291)

* feat(accordion): add data-variant

* fix(theme): revise accordion styles for variants

* feat(changeset): add changeset

* chore(theme): rollback content padding

* chore(accordion): abandon data-group approach

* refactor(theme): pass variant to accordionItem

* refactor(accordion): pass variant to accordionItem

* fix(accordion): revise accordion variants

* refactor(accordion): refine transitionVariants

* refactor(.github): nextui version description in bug report template (#3281)

* refactor(.github): revise version description & placeholder

* refactor(.github): revise version description & placeholder

* chore: add accessible name to the icon button (#3300)

* fix(radio): ensure radio input correctly references description (#3301)

* fix(radio): ensure radio input correctly references description

* refactor: tweak test

* refactor(.github): github action warnings (#3317)

* chore(.github): bump action versions

* refactor(autocomplete): linting

* chore(.github): without version

* fix(doc): migrated ScriptProvider component from the root level to each decendant folder (#3269)

Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>

* refactor(docs): fix international calendar bug (#3363)

* refactor(docs): fix international calendar bug

* chore: update @react-aria/i18n version and update lock file

* fix(table): custom with class names storybook styles (#3344)

* fix: #3338

* fix(table): custom with class names storybook styles

* chore(deps): pnpm-lock.yaml (#3372)

* fix(accordion): allow cursor navigation within text (#3419)

* fix(accordion): allow cursor navigation within text

* fix: wrong issue number

* fix(date-range-picker): input field clear error (#3409)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* fix: remove autoCapitalize to prevent Firefox warning (#3376)

* fix: remove autoCapitalize to prevent firefox warning

* chore: add changeset

* fix(user): avatar icon not shown in User component (#3387)

* chore(deps): pnpm-lock.yaml

* fix(user): avoid passing user name to avatar component

* feat(changeset): add changeset

* feat(user): add avatar icon test cases

* fix(select): close select by pressing selector button (#3374)

* feat(select): add test

* fix(select): use domRef in ariaShouldCloseOnInteractOutside

* feat(changeset): add changeset

* fix(select): rewrite "should unset form value" test

* fix(select): import HiddenSelect and UseSelectProps (#3368)

* fix(select): import HiddenSelect and UseSelectProps

* chore: merge import

* feat: eslint add rule prefer top level type import (#3354)

* fix(calendar): disable button picker in calendar if `isDisabled` is true (#3358)

* fix(calendar): disable button picker in calendar if `isDisabled` is true

* feat(changeset): add changeset

* feat(calendar): add test to cover showMonthAndYearPickers with isDisabled

* fix: incorrect year in showMonthAndYearPickers with locale (#3331)

* fix(date-input): add gregorian year offset to minValue & maxValue

* feat(shared-utils): add getGregorianYearOffset

* fix(calendar): add gregorian year offset to minValue & maxValue

* feat(changeset): add changeset

* fix(system): remove defaultDates.minDate and defaultDates.maxDate

* fix(calendar): add missing import

* feat(date-picker): add test

* feat(calendar): add test

* fix(popover): dialog focus behaviour  (#3311)

* fix(autocomplete): set skipDialogFocus to true

* feat(popover): add skipDialogFocus to free solo popover

* refactor(popover): rename variable and add comment

* refactor(autocomplete): rename variable and add comment

* feat(changeset): add changeset

* refactor(docs): sort component routes alphabetically (#3328)

* docs(pagination): fix typo of missing "`" in doc (#3324)

* fix(image): override default auto height (#3327)

* fix(image): override default auto height

* feat(changeset): add changeset

* feat(image): add test

* refactor(image): add comment

* fix(table): differentiate selected bg color from striped bg color (#3221)

* fix: override bg color when selecting striped row

* chore(style): differentiate selected bg color from striped row

* chore: changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(date-picker): open and close datepicker after pressing selector button (#3283)

* fix(date-picker): use trigger ref instead

* fix(date-input): add innerWrapperProps

* fix(date-picker): include popoverTriggerRef and add onPress to selector

* feat(date-picker): add test

* feat(changeset): add changeset

* refactor(date-input): merge innerWrapperPropsProp & props and add cn

* fix(popover): close popover on scroll (#3414)

* fix(popover): close popover on scroll

* feat(popover): add "should close popover on scroll" test

* feat(changeset): add changeset

* feat(select): add ScrollableContainerTemplate

* fix(navbar): shouldHideOnScroll fixed (#3315)

* fix(navbar): shouldHideOnScroll fixed

* Update packages/hooks/use-scroll-position/src/index.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update index.ts

* fix(navbar): applying suggested changes

---------

Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(accordion): pass missing `dividerProps` to Divider (#3392)

* chore(deps): pnpm-lock.yaml

* fix(accordion): pass missing `dividerProps` to Divider

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(image): optional height (#3420)

* fix(image): optional height

* fix(image): incorrect props

* feat(changeset): add changeset

* fix(input): input with file type (#3268)

* fix(input): remove value & onChange for input[type="file"]

* refactor(theme): remove unnecessary styles

* fix(theme): input file styles

* fix(theme): revise cursor-pointer on file

* feat(input): add file input logic

* feat(changeset): add changeset

* refactor(input): use warn function from shared-utils instead

* feat(input): add file type story

* refactor(input): include in Input Types

* fix(date-picker): resolve width clipping issue on 90/110% zoom (#3416)

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* Delete .changeset/metal-bats-reflect.md

* Update weak-dingos-chew.md

* chore: add storybook

---------

Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>

* fix: onSelectionChange type incorrect (#3336)

* fix: onSelectionChange type incorrect

* feat: export shardSelection

* fix: typo

* fix: review

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: tsc errors (#3362)

* fix: tsc error

* docs: changeset

* fix: test

* fix: test

* fix: review problem

* fix: review

* feat: add tw config to get the intelliSense (#3385)

* feat: add tw config to get the intelliSense

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(datePicker): prevent year, month change in showMonthAndYearPickers mode (#3088)

* fix: prevent year, month change error in showMonthAndYearPickers mode

* docs: add changeset

* docs: edit changeset

* test:  add test code about date clear issue in date picker

* test: update test code

* test: check application aria is same with current date

* chore(changeset): revise package and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: add onClear prop to Ripple component in button custom implementation (#3439)

* fix(input): fixed the background change on autofill in Chrome (#3430)

* fix(input): fixed the background change on autofill in Chrome

* fix(input): fixed the background change on autofill in Chrome

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(time-input): minValue and maxValue validation (#3426)

* fix(time-input): minValue and maxValue validation (#3424)

* test(time-input): update

* refactor(time-input): simplify `isInvalid` logic

* fix(docs): incorrect image height (#3427)

* docs: removed show more from code example (#3373)

* docs: removed show more from code example

* Update sandpack.css

* docs: remove-show-more

* chore(docs): remove unused code

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): resolve double fetch issue in useInfiniteScroll hook (#3332)

* fix(table): resolve double fetch issue in useInfiniteScroll hook (fix #3251)

* fix(table): remove unnecessary else clause

* fix(table): add a changeset file for use-infinite-scroll

* fix(hooks): add clearTimeout function

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* docs(frameworks): update highlighted line numbers in Frameworks examples (#3412)

* Update highlighted line numbers in Remix examples

* Update highlighted line numbers in Next.js examples

* Update highlighted line numbers in Astro examples

* Update highlighted line numbers in Vite examples

* Adjust highlighted line number

* Adjust highlighted line number

* fix(autocomplete): remove unnecessary state.close (#3464)

* fix(autocomplete): remove unnecessary state.close

* feat(autocomplete): add fully controlled template

* feat(autocomplete): should clear value after clicking clear button (controlled)

* ci(changesets): version packages (#3266)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(system-rsc): defaultVariants null case in extendVariants (#3503)

* fix(system-rsc): defaultVariants null case in extendVariants

* chore(changeset): add issue number

* fix(date-range-picker): calendar-content width as per visible-months (#3505)

* fix: normalize 'status' field values to lowercase across multiple files (#2947)

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in use-case.ts

* fix(status): normalize 'status' value to lowercase in custom-render-value.ts

* fix(status): normalize 'status' value to lowercase in top-content.ts

* fix(status): normalize 'status' value to lowercase in multiple-chips.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in data.ts

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(modal): double scrollbar in inside scrollbehaviour (#3495)

* fix(modal): double scrollbar in inside scrollbehaviour

* chore(changeset): update changeset message and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): sortable header slow color change during theme change (#3491)

* fix(table): sortable header slow color change during theme change

* chore(changeset): add space

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(theme): button scaling when disableAnimation is true (#3499)

* fix(system-rsc): add @react-types/shared to dependencies (#3501)

* fix(system-rsc): add @react-types/shared to dependencies

* fix: change pnpm lock

* fix: change pnpm lock

* fix: change pnpm lock

---------

Co-authored-by: winches <329487092@qq.com>

* build(script): fixing Clean script (#3500)

running clean lock before clean node modules.

* ci(changesets): version packages (#3507)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3508)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat(chanageset): bump versions (#3512)

* ci(changesets): version packages (#3513)

* fix(navbar): fixed the height when style h-full

* fix(navbar): fixed the height when style h-full

* fix(deps): overrides RA utils pkg (#3537)

* chore(deps): rollback PR3537 (#3541)

* chore(docs): lint sponsors (#3547)

* chore(docs): format ScrumbuissLogo svg

* chore(docs): lint

* docs(changeset): resolved extra file

* fix(docs): added missing package manager tabs in docs

* refactor(cli-docs): changed line 33

* chore(deps): upgrade pnpm to v9 (#3589)

* chore(deps): upgrade pnpm to v9

* chore(root): bump node version

* refactor(files): removed unnecessary files

* fix(docs): added missing package manager tabs in docs

* fix(docs): added missing package manager tabs in docs

* refactor(cli.mdx): updated typo

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: EGOIST <0x142857@gmail.com>
Co-authored-by: Damien Leroy <10438692+ShiiFu@users.noreply.github.com>
Co-authored-by: Christian Abele <manufaktur@christian-abele.de>
Co-authored-by: Nozomi Hijikata <121233810+nozomemein@users.noreply.github.com>
Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>
Co-authored-by: Deval Minocha <deval.minocha24@gmail.com>
Co-authored-by: Ankit <82326089+ankitts@users.noreply.github.com>
Co-authored-by: wiyco <lumiwslab@gmail.com>
Co-authored-by: Sjoerd van Bommel <sjoerd.van.bommel@Hotmail.com>
Co-authored-by: Pratyush Kongalla <44525862+pratyush3124@users.noreply.github.com>
Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: KumJungMin <37934668+KumJungMin@users.noreply.github.com>
Co-authored-by: dochi <ryoon50@gmail.com>
Co-authored-by: Abhishek Tomar <104965815+abhisektomar1@users.noreply.github.com>
Co-authored-by: RockerFlower <kira@glorylab.xyz>
Co-authored-by: codeesura <120671243+codeesura@users.noreply.github.com>
Co-authored-by: Simon Podlipsky <simon@podlipsky.net>
Co-authored-by: sandeep Butte <sandeep36butte@gmail.com>
2024-08-12 14:17:55 -07:00
աӄա 197386404f chore(deps): upgrade pnpm to v9 (#3589)
* chore(deps): upgrade pnpm to v9

* chore(root): bump node version
2024-08-08 18:55:29 -07:00
աӄա 6d9995bad1 chore(docs): lint sponsors (#3547)
* chore(docs): format ScrumbuissLogo svg

* chore(docs): lint
2024-07-24 09:10:21 -07:00
աӄա b806ca4bc7 chore(deps): rollback PR3537 (#3541) 2024-07-23 10:02:44 -07:00
աӄա 710644fa00 fix(deps): overrides RA utils pkg (#3537) 2024-07-23 08:42:44 -07:00
Junior Garcia df765bcd87 Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-07-22 09:18:56 -07:00
Tianen Pang 8b7df922b5 fix(docs): scroll controlled dropdown (#3522)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110)

* fix(theme): add missing pointer event after data loaded (#3126)

* fix(system): listbox href issue (experimental) (#3119)

* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element (#3111)

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps

* fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* ci(changesets): version packages (#3115)

* fix(pagination): missing animation (#3144)

* fix tsup domain (#3158)

* chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155)

* fix(autocomplete): maximum update depth exceeded in autocomplete (#3175)

* chore(checkbox): avoid passing non-DOM attributes to svg  (#3199)

* chore(docs): avoid passing non-DOM attributes to svg

* chore(utilities): avoid passing non-DOM attributes to svg

* feat(changeset): add changeset

* fix(docs): fix typo in autocomplete documentation page (#3182)

* fix(select): add missing data-invalid in select and add missing data attributes in docs (#3177)

* fix(select): add missing data-invalid attribute

* chore(docs): add missing data attributes for select base

* fix(tabs): destroyInactiveTabPanel unmounts inactive tabs' content (#3164)

* fix(tabs): incorrect content in tab panel

* feat(tabs): revise destroyInactiveTabPanel test cases

* fix(select): unset form value after unselecting an item (#3157)

* fix(select): set empty string instead of undefined for unsetting value

* feat(selet): should unset form value

* fix(tabs): set tab panel id correctly (#3246)

* docs(tooltip): supplement correct style path (#3183)

* docs(tooltip): supplement correct style path

* chore(docs): move the note below import tabs

* fix(use-aria-menu): link logic in useMenuItem (#3229)

* chore(deps): bump @internationalized/date version (#3230)

* fix(input): input display with hidden type (#3174)

* fix(input): input display with hidden type

* chore(input): add isHiddenType to dependency

* refactor(input): move the styles to theme and change hidden to data attr

* feat(theme): add isHiddenType to input

* chore(changeset): include theme package

* chore(input): revise input test

* fix(theme): remove isHiddenType from variants and use data-hidden prop instead

* fix(theme): remove isHiddenType from defaultVariants

* fix(input): remove isHiddenType passing to input

* feat(date-picker): add support for DatePicker to apply styles to DateInput (#3146)

* feat(date-picker): add support for DatePicker to apply styles to DateInput

* chore: update changeset

* docs(date-picker): add dateInputClassNames props

* refactor(date): updated errorMessage story and modified to import props (#3112)

* refactor(date): updated errorMessage story and modified to import props

* docs(date): add errorMessageFunction examples

* chore: add changeset

* fix: remove unnecessary props

* fix: typo

* Update regex-validation.ts (#3123)

* Update regex-validation.ts

Fix email regex

* Update email regex input.stories.tsx

* fix(autocomplete): controlled state logic (#2969)

* fix(autocomplete): autocomplete controlled state (#2955)

* chore(autocomplete): add changeset

* Update packages/components/autocomplete/__tests__/autocomplete.test.tsx

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(utilities): resolve assignRef TypeScript ref assignment issue (#3098)

* fix(utilities): resolve assignRef TypeScript ref assignment issue

* chore(changeset): revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): table-column align prop (#2900)

* fix(navbar): fixed the height of navbar menu (#1805)

* fix(navbar): fixed the height of navbar menu

* fix(navbar): refactored the css of navbar

* fix(navbar): fix redundant expression

* fix(navbar): fixed unnecessary changes

* fix(navbar): adjust viewport

* fix: RA dependencies bump (#3240)

* fix(popover): popover focus issue (#3187)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix: interactions with popover & focus issues (#3137)

* fix(aria-utils): handle click on listbox

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): pnpm-lock.yaml

* fix(popover): remove disableFocusManagement

* fix(modal): remove disableFocusManagement

* fix(autocomplete): remove custom focus logic and remove ariaShouldCloseOnInteractOutside

* fix(popover): rewrite shouldCloseOnInteractOutside logic

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): bump react-aria dependencies

* chore(autocomplete): change back to focus

* feat(changeset): update changeset

* chore(docs): update type in onSelectionChange

* fix(popover): revise popover test case

* chore(deps): add @nextui-org/aria-utils

* fix(autocomplete): add ariaShouldCloseOnInteractOutside

* fix(date-picker): add ariaShouldCloseOnInteractOutside

* fix(select): add ariaShouldCloseOnInteractOutside

* chore(deps): add @nextui-org/aria-utils

* fix(dropdown): add ariaShouldCloseOnInteractOutside

* feat(utilities): rewrite ariaShouldCloseOnInteractOutside

* fix(popover): use ariaShouldCloseOnInteractOutside

* fix(autocomplete): add back shouldFocus

* fix(utilities): include shouldFocus logic

* chore(utilities): remove !

* refactor(aria-utils): add more comments

* chore(changeset): update packages

* refactor(aria-utils): add more comments

* feat(popover): add test

* fix: dropdown onPress issue (#3211)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix(popover): dropdown onPress blocking issue

* fix(dropdown): incorrect keyCodes

* feat(dropdown): add keyboard onPress test cases

* chore(deps): keep all @react-aria/overlays version consistent

* chore(deps): sync dependencies

* chore(deps): sync dependencies

* refactor(aria-utils): remove shouldFocus logic

* refactor(autocomplete): remove shouldFocus logic and set input focus when open

* chore(deps): bump dependencies

* chore(deps): fix react aria dependencies

* fix(autocomplete): move popover style width inside isOpen true block

* fix(autocomplete): focus back to trigger

* feat(changeset): add changeset

* chore(deps): bump react-aria dependencies

* refactor(autocomplete): revise comment

* refactor(dropdown): revise logSpy and trigger mockRestore

* refactor(popover): remove debug className

* fix(date-input): avoid setting isInvalid in useDateFieldState

* fix(autocomplete): use ComboBoxValidationValue

* feat(use-aria-menu): add deprecate message

* feat(changeset): add missing packages

* refactor(use-aria-menu): remove isLink since it is included in useLinkProps

* Update packages/hooks/use-aria-menu/src/use-menu-item.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3147)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(avatar): remove extra `disableAnimation` prop in `getImageProps` (#3260)

* fix(system-rsc): extendVariants with defaultVariants (#3299)

* fix(date-picker): update calendar classNames in useDateRangePicker (#3258)

* fix(date-picker): update calendar classNames in useDateRangePicker

* feat(docs): include custom styles in date-range-picker docs

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(accordion): variants for nested accordions (#3291)

* feat(accordion): add data-variant

* fix(theme): revise accordion styles for variants

* feat(changeset): add changeset

* chore(theme): rollback content padding

* chore(accordion): abandon data-group approach

* refactor(theme): pass variant to accordionItem

* refactor(accordion): pass variant to accordionItem

* fix(accordion): revise accordion variants

* refactor(accordion): refine transitionVariants

* refactor(.github): nextui version description in bug report template (#3281)

* refactor(.github): revise version description & placeholder

* refactor(.github): revise version description & placeholder

* chore: add accessible name to the icon button (#3300)

* fix(radio): ensure radio input correctly references description (#3301)

* fix(radio): ensure radio input correctly references description

* refactor: tweak test

* refactor(.github): github action warnings (#3317)

* chore(.github): bump action versions

* refactor(autocomplete): linting

* chore(.github): without version

* fix(doc): migrated ScriptProvider component from the root level to each decendant folder (#3269)

Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>

* refactor(docs): fix international calendar bug (#3363)

* refactor(docs): fix international calendar bug

* chore: update @react-aria/i18n version and update lock file

* fix(table): custom with class names storybook styles (#3344)

* fix: #3338

* fix(table): custom with class names storybook styles

* chore(deps): pnpm-lock.yaml (#3372)

* fix(accordion): allow cursor navigation within text (#3419)

* fix(accordion): allow cursor navigation within text

* fix: wrong issue number

* fix(date-range-picker): input field clear error (#3409)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* fix: remove autoCapitalize to prevent Firefox warning (#3376)

* fix: remove autoCapitalize to prevent firefox warning

* chore: add changeset

* fix(user): avatar icon not shown in User component (#3387)

* chore(deps): pnpm-lock.yaml

* fix(user): avoid passing user name to avatar component

* feat(changeset): add changeset

* feat(user): add avatar icon test cases

* fix(select): close select by pressing selector button (#3374)

* feat(select): add test

* fix(select): use domRef in ariaShouldCloseOnInteractOutside

* feat(changeset): add changeset

* fix(select): rewrite "should unset form value" test

* fix(select): import HiddenSelect and UseSelectProps (#3368)

* fix(select): import HiddenSelect and UseSelectProps

* chore: merge import

* feat: eslint add rule prefer top level type import (#3354)

* fix(calendar): disable button picker in calendar if `isDisabled` is true (#3358)

* fix(calendar): disable button picker in calendar if `isDisabled` is true

* feat(changeset): add changeset

* feat(calendar): add test to cover showMonthAndYearPickers with isDisabled

* fix: incorrect year in showMonthAndYearPickers with locale (#3331)

* fix(date-input): add gregorian year offset to minValue & maxValue

* feat(shared-utils): add getGregorianYearOffset

* fix(calendar): add gregorian year offset to minValue & maxValue

* feat(changeset): add changeset

* fix(system): remove defaultDates.minDate and defaultDates.maxDate

* fix(calendar): add missing import

* feat(date-picker): add test

* feat(calendar): add test

* fix(popover): dialog focus behaviour  (#3311)

* fix(autocomplete): set skipDialogFocus to true

* feat(popover): add skipDialogFocus to free solo popover

* refactor(popover): rename variable and add comment

* refactor(autocomplete): rename variable and add comment

* feat(changeset): add changeset

* refactor(docs): sort component routes alphabetically (#3328)

* docs(pagination): fix typo of missing "`" in doc (#3324)

* fix(image): override default auto height (#3327)

* fix(image): override default auto height

* feat(changeset): add changeset

* feat(image): add test

* refactor(image): add comment

* fix(table): differentiate selected bg color from striped bg color (#3221)

* fix: override bg color when selecting striped row

* chore(style): differentiate selected bg color from striped row

* chore: changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(date-picker): open and close datepicker after pressing selector button (#3283)

* fix(date-picker): use trigger ref instead

* fix(date-input): add innerWrapperProps

* fix(date-picker): include popoverTriggerRef and add onPress to selector

* feat(date-picker): add test

* feat(changeset): add changeset

* refactor(date-input): merge innerWrapperPropsProp & props and add cn

* fix(popover): close popover on scroll (#3414)

* fix(popover): close popover on scroll

* feat(popover): add "should close popover on scroll" test

* feat(changeset): add changeset

* feat(select): add ScrollableContainerTemplate

* fix(navbar): shouldHideOnScroll fixed (#3315)

* fix(navbar): shouldHideOnScroll fixed

* Update packages/hooks/use-scroll-position/src/index.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update index.ts

* fix(navbar): applying suggested changes

---------

Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(accordion): pass missing `dividerProps` to Divider (#3392)

* chore(deps): pnpm-lock.yaml

* fix(accordion): pass missing `dividerProps` to Divider

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(image): optional height (#3420)

* fix(image): optional height

* fix(image): incorrect props

* feat(changeset): add changeset

* fix(input): input with file type (#3268)

* fix(input): remove value & onChange for input[type="file"]

* refactor(theme): remove unnecessary styles

* fix(theme): input file styles

* fix(theme): revise cursor-pointer on file

* feat(input): add file input logic

* feat(changeset): add changeset

* refactor(input): use warn function from shared-utils instead

* feat(input): add file type story

* refactor(input): include in Input Types

* fix(date-picker): resolve width clipping issue on 90/110% zoom (#3416)

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* Delete .changeset/metal-bats-reflect.md

* Update weak-dingos-chew.md

* chore: add storybook

---------

Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>

* fix: onSelectionChange type incorrect (#3336)

* fix: onSelectionChange type incorrect

* feat: export shardSelection

* fix: typo

* fix: review

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: tsc errors (#3362)

* fix: tsc error

* docs: changeset

* fix: test

* fix: test

* fix: review problem

* fix: review

* feat: add tw config to get the intelliSense (#3385)

* feat: add tw config to get the intelliSense

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(datePicker): prevent year, month change in showMonthAndYearPickers mode (#3088)

* fix: prevent year, month change error in showMonthAndYearPickers mode

* docs: add changeset

* docs: edit changeset

* test:  add test code about date clear issue in date picker

* test: update test code

* test: check application aria is same with current date

* chore(changeset): revise package and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: add onClear prop to Ripple component in button custom implementation (#3439)

* fix(input): fixed the background change on autofill in Chrome (#3430)

* fix(input): fixed the background change on autofill in Chrome

* fix(input): fixed the background change on autofill in Chrome

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(time-input): minValue and maxValue validation (#3426)

* fix(time-input): minValue and maxValue validation (#3424)

* test(time-input): update

* refactor(time-input): simplify `isInvalid` logic

* fix(docs): incorrect image height (#3427)

* docs: removed show more from code example (#3373)

* docs: removed show more from code example

* Update sandpack.css

* docs: remove-show-more

* chore(docs): remove unused code

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): resolve double fetch issue in useInfiniteScroll hook (#3332)

* fix(table): resolve double fetch issue in useInfiniteScroll hook (fix #3251)

* fix(table): remove unnecessary else clause

* fix(table): add a changeset file for use-infinite-scroll

* fix(hooks): add clearTimeout function

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* docs(frameworks): update highlighted line numbers in Frameworks examples (#3412)

* Update highlighted line numbers in Remix examples

* Update highlighted line numbers in Next.js examples

* Update highlighted line numbers in Astro examples

* Update highlighted line numbers in Vite examples

* Adjust highlighted line number

* Adjust highlighted line number

* fix(autocomplete): remove unnecessary state.close (#3464)

* fix(autocomplete): remove unnecessary state.close

* feat(autocomplete): add fully controlled template

* feat(autocomplete): should clear value after clicking clear button (controlled)

* ci(changesets): version packages (#3266)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(system-rsc): defaultVariants null case in extendVariants (#3503)

* fix(system-rsc): defaultVariants null case in extendVariants

* chore(changeset): add issue number

* fix(date-range-picker): calendar-content width as per visible-months (#3505)

* fix: normalize 'status' field values to lowercase across multiple files (#2947)

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in use-case.ts

* fix(status): normalize 'status' value to lowercase in custom-render-value.ts

* fix(status): normalize 'status' value to lowercase in top-content.ts

* fix(status): normalize 'status' value to lowercase in multiple-chips.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in data.ts

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(modal): double scrollbar in inside scrollbehaviour (#3495)

* fix(modal): double scrollbar in inside scrollbehaviour

* chore(changeset): update changeset message and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): sortable header slow color change during theme change (#3491)

* fix(table): sortable header slow color change during theme change

* chore(changeset): add space

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(theme): button scaling when disableAnimation is true (#3499)

* fix(system-rsc): add @react-types/shared to dependencies (#3501)

* fix(system-rsc): add @react-types/shared to dependencies

* fix: change pnpm lock

* fix: change pnpm lock

* fix: change pnpm lock

---------

Co-authored-by: winches <329487092@qq.com>

* build(script): fixing Clean script (#3500)

running clean lock before clean node modules.

* ci(changesets): version packages (#3507)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3508)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat(chanageset): bump versions (#3512)

* ci(changesets): version packages (#3513)

* fix: scroll controlled dropdown

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: EGOIST <0x142857@gmail.com>
Co-authored-by: Damien Leroy <10438692+ShiiFu@users.noreply.github.com>
Co-authored-by: Christian Abele <manufaktur@christian-abele.de>
Co-authored-by: Nozomi Hijikata <121233810+nozomemein@users.noreply.github.com>
Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>
Co-authored-by: Deval Minocha <deval.minocha24@gmail.com>
Co-authored-by: Ankit <82326089+ankitts@users.noreply.github.com>
Co-authored-by: wiyco <lumiwslab@gmail.com>
Co-authored-by: Sjoerd van Bommel <sjoerd.van.bommel@Hotmail.com>
Co-authored-by: Pratyush Kongalla <44525862+pratyush3124@users.noreply.github.com>
Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: Abhinandan <abhinandanverma551@gmail.com>
Co-authored-by: KumJungMin <37934668+KumJungMin@users.noreply.github.com>
Co-authored-by: dochi <ryoon50@gmail.com>
Co-authored-by: Abhishek Tomar <104965815+abhisektomar1@users.noreply.github.com>
Co-authored-by: RockerFlower <kira@glorylab.xyz>
Co-authored-by: codeesura <120671243+codeesura@users.noreply.github.com>
Co-authored-by: Simon Podlipsky <simon@podlipsky.net>
Co-authored-by: sandeep Butte <sandeep36butte@gmail.com>
2024-07-22 09:18:45 -07:00
Junior Garcia e9eb9491b5 Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-07-20 19:04:29 -07:00
աӄա fe62bfb6df feat(docs): add Scrumbuiss to sponsor section (#3496)
* feat(docs): add Scrumbuiss to sponsor section

* feat(docs): add Scrumbuiss logo

* feat(docs): add sponsors from patreon
2024-07-20 19:04:18 -07:00
Junior Garcia be507e0c41 v2.4.6 (#3518)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110)

* fix(theme): add missing pointer event after data loaded (#3126)

* fix(system): listbox href issue (experimental) (#3119)

* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element (#3111)

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps

* fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* ci(changesets): version packages (#3115)

* fix(pagination): missing animation (#3144)

* fix tsup domain (#3158)

* chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155)

* fix(autocomplete): maximum update depth exceeded in autocomplete (#3175)

* chore(checkbox): avoid passing non-DOM attributes to svg  (#3199)

* chore(docs): avoid passing non-DOM attributes to svg

* chore(utilities): avoid passing non-DOM attributes to svg

* feat(changeset): add changeset

* fix(docs): fix typo in autocomplete documentation page (#3182)

* fix(select): add missing data-invalid in select and add missing data attributes in docs (#3177)

* fix(select): add missing data-invalid attribute

* chore(docs): add missing data attributes for select base

* fix(tabs): destroyInactiveTabPanel unmounts inactive tabs' content (#3164)

* fix(tabs): incorrect content in tab panel

* feat(tabs): revise destroyInactiveTabPanel test cases

* fix(select): unset form value after unselecting an item (#3157)

* fix(select): set empty string instead of undefined for unsetting value

* feat(selet): should unset form value

* fix(tabs): set tab panel id correctly (#3246)

* docs(tooltip): supplement correct style path (#3183)

* docs(tooltip): supplement correct style path

* chore(docs): move the note below import tabs

* fix(use-aria-menu): link logic in useMenuItem (#3229)

* chore(deps): bump @internationalized/date version (#3230)

* fix(input): input display with hidden type (#3174)

* fix(input): input display with hidden type

* chore(input): add isHiddenType to dependency

* refactor(input): move the styles to theme and change hidden to data attr

* feat(theme): add isHiddenType to input

* chore(changeset): include theme package

* chore(input): revise input test

* fix(theme): remove isHiddenType from variants and use data-hidden prop instead

* fix(theme): remove isHiddenType from defaultVariants

* fix(input): remove isHiddenType passing to input

* feat(date-picker): add support for DatePicker to apply styles to DateInput (#3146)

* feat(date-picker): add support for DatePicker to apply styles to DateInput

* chore: update changeset

* docs(date-picker): add dateInputClassNames props

* refactor(date): updated errorMessage story and modified to import props (#3112)

* refactor(date): updated errorMessage story and modified to import props

* docs(date): add errorMessageFunction examples

* chore: add changeset

* fix: remove unnecessary props

* fix: typo

* Update regex-validation.ts (#3123)

* Update regex-validation.ts

Fix email regex

* Update email regex input.stories.tsx

* fix(autocomplete): controlled state logic (#2969)

* fix(autocomplete): autocomplete controlled state (#2955)

* chore(autocomplete): add changeset

* Update packages/components/autocomplete/__tests__/autocomplete.test.tsx

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(utilities): resolve assignRef TypeScript ref assignment issue (#3098)

* fix(utilities): resolve assignRef TypeScript ref assignment issue

* chore(changeset): revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): table-column align prop (#2900)

* fix(navbar): fixed the height of navbar menu (#1805)

* fix(navbar): fixed the height of navbar menu

* fix(navbar): refactored the css of navbar

* fix(navbar): fix redundant expression

* fix(navbar): fixed unnecessary changes

* fix(navbar): adjust viewport

* fix: RA dependencies bump (#3240)

* fix(popover): popover focus issue (#3187)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix: interactions with popover & focus issues (#3137)

* fix(aria-utils): handle click on listbox

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): pnpm-lock.yaml

* fix(popover): remove disableFocusManagement

* fix(modal): remove disableFocusManagement

* fix(autocomplete): remove custom focus logic and remove ariaShouldCloseOnInteractOutside

* fix(popover): rewrite shouldCloseOnInteractOutside logic

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): bump react-aria dependencies

* chore(autocomplete): change back to focus

* feat(changeset): update changeset

* chore(docs): update type in onSelectionChange

* fix(popover): revise popover test case

* chore(deps): add @nextui-org/aria-utils

* fix(autocomplete): add ariaShouldCloseOnInteractOutside

* fix(date-picker): add ariaShouldCloseOnInteractOutside

* fix(select): add ariaShouldCloseOnInteractOutside

* chore(deps): add @nextui-org/aria-utils

* fix(dropdown): add ariaShouldCloseOnInteractOutside

* feat(utilities): rewrite ariaShouldCloseOnInteractOutside

* fix(popover): use ariaShouldCloseOnInteractOutside

* fix(autocomplete): add back shouldFocus

* fix(utilities): include shouldFocus logic

* chore(utilities): remove !

* refactor(aria-utils): add more comments

* chore(changeset): update packages

* refactor(aria-utils): add more comments

* feat(popover): add test

* fix: dropdown onPress issue (#3211)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix(popover): dropdown onPress blocking issue

* fix(dropdown): incorrect keyCodes

* feat(dropdown): add keyboard onPress test cases

* chore(deps): keep all @react-aria/overlays version consistent

* chore(deps): sync dependencies

* chore(deps): sync dependencies

* refactor(aria-utils): remove shouldFocus logic

* refactor(autocomplete): remove shouldFocus logic and set input focus when open

* chore(deps): bump dependencies

* chore(deps): fix react aria dependencies

* fix(autocomplete): move popover style width inside isOpen true block

* fix(autocomplete): focus back to trigger

* feat(changeset): add changeset

* chore(deps): bump react-aria dependencies

* refactor(autocomplete): revise comment

* refactor(dropdown): revise logSpy and trigger mockRestore

* refactor(popover): remove debug className

* fix(date-input): avoid setting isInvalid in useDateFieldState

* fix(autocomplete): use ComboBoxValidationValue

* feat(use-aria-menu): add deprecate message

* feat(changeset): add missing packages

* refactor(use-aria-menu): remove isLink since it is included in useLinkProps

* Update packages/hooks/use-aria-menu/src/use-menu-item.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3147)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(avatar): remove extra `disableAnimation` prop in `getImageProps` (#3260)

* fix(system-rsc): extendVariants with defaultVariants (#3299)

* fix(date-picker): update calendar classNames in useDateRangePicker (#3258)

* fix(date-picker): update calendar classNames in useDateRangePicker

* feat(docs): include custom styles in date-range-picker docs

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(accordion): variants for nested accordions (#3291)

* feat(accordion): add data-variant

* fix(theme): revise accordion styles for variants

* feat(changeset): add changeset

* chore(theme): rollback content padding

* chore(accordion): abandon data-group approach

* refactor(theme): pass variant to accordionItem

* refactor(accordion): pass variant to accordionItem

* fix(accordion): revise accordion variants

* refactor(accordion): refine transitionVariants

* refactor(.github): nextui version description in bug report template (#3281)

* refactor(.github): revise version description & placeholder

* refactor(.github): revise version description & placeholder

* chore: add accessible name to the icon button (#3300)

* fix(radio): ensure radio input correctly references description (#3301)

* fix(radio): ensure radio input correctly references description

* refactor: tweak test

* refactor(.github): github action warnings (#3317)

* chore(.github): bump action versions

* refactor(autocomplete): linting

* chore(.github): without version

* fix(doc): migrated ScriptProvider component from the root level to each decendant folder (#3269)

Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>

* refactor(docs): fix international calendar bug (#3363)

* refactor(docs): fix international calendar bug

* chore: update @react-aria/i18n version and update lock file

* fix(table): custom with class names storybook styles (#3344)

* fix: #3338

* fix(table): custom with class names storybook styles

* chore(deps): pnpm-lock.yaml (#3372)

* fix(accordion): allow cursor navigation within text (#3419)

* fix(accordion): allow cursor navigation within text

* fix: wrong issue number

* fix(date-range-picker): input field clear error (#3409)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* fix: remove autoCapitalize to prevent Firefox warning (#3376)

* fix: remove autoCapitalize to prevent firefox warning

* chore: add changeset

* fix(user): avatar icon not shown in User component (#3387)

* chore(deps): pnpm-lock.yaml

* fix(user): avoid passing user name to avatar component

* feat(changeset): add changeset

* feat(user): add avatar icon test cases

* fix(select): close select by pressing selector button (#3374)

* feat(select): add test

* fix(select): use domRef in ariaShouldCloseOnInteractOutside

* feat(changeset): add changeset

* fix(select): rewrite "should unset form value" test

* fix(select): import HiddenSelect and UseSelectProps (#3368)

* fix(select): import HiddenSelect and UseSelectProps

* chore: merge import

* feat: eslint add rule prefer top level type import (#3354)

* fix(calendar): disable button picker in calendar if `isDisabled` is true (#3358)

* fix(calendar): disable button picker in calendar if `isDisabled` is true

* feat(changeset): add changeset

* feat(calendar): add test to cover showMonthAndYearPickers with isDisabled

* fix: incorrect year in showMonthAndYearPickers with locale (#3331)

* fix(date-input): add gregorian year offset to minValue & maxValue

* feat(shared-utils): add getGregorianYearOffset

* fix(calendar): add gregorian year offset to minValue & maxValue

* feat(changeset): add changeset

* fix(system): remove defaultDates.minDate and defaultDates.maxDate

* fix(calendar): add missing import

* feat(date-picker): add test

* feat(calendar): add test

* fix(popover): dialog focus behaviour  (#3311)

* fix(autocomplete): set skipDialogFocus to true

* feat(popover): add skipDialogFocus to free solo popover

* refactor(popover): rename variable and add comment

* refactor(autocomplete): rename variable and add comment

* feat(changeset): add changeset

* refactor(docs): sort component routes alphabetically (#3328)

* docs(pagination): fix typo of missing "`" in doc (#3324)

* fix(image): override default auto height (#3327)

* fix(image): override default auto height

* feat(changeset): add changeset

* feat(image): add test

* refactor(image): add comment

* fix(table): differentiate selected bg color from striped bg color (#3221)

* fix: override bg color when selecting striped row

* chore(style): differentiate selected bg color from striped row

* chore: changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(date-picker): open and close datepicker after pressing selector button (#3283)

* fix(date-picker): use trigger ref instead

* fix(date-input): add innerWrapperProps

* fix(date-picker): include popoverTriggerRef and add onPress to selector

* feat(date-picker): add test

* feat(changeset): add changeset

* refactor(date-input): merge innerWrapperPropsProp & props and add cn

* fix(popover): close popover on scroll (#3414)

* fix(popover): close popover on scroll

* feat(popover): add "should close popover on scroll" test

* feat(changeset): add changeset

* feat(select): add ScrollableContainerTemplate

* fix(navbar): shouldHideOnScroll fixed (#3315)

* fix(navbar): shouldHideOnScroll fixed

* Update packages/hooks/use-scroll-position/src/index.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update index.ts

* fix(navbar): applying suggested changes

---------

Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(accordion): pass missing `dividerProps` to Divider (#3392)

* chore(deps): pnpm-lock.yaml

* fix(accordion): pass missing `dividerProps` to Divider

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(image): optional height (#3420)

* fix(image): optional height

* fix(image): incorrect props

* feat(changeset): add changeset

* fix(input): input with file type (#3268)

* fix(input): remove value & onChange for input[type="file"]

* refactor(theme): remove unnecessary styles

* fix(theme): input file styles

* fix(theme): revise cursor-pointer on file

* feat(input): add file input logic

* feat(changeset): add changeset

* refactor(input): use warn function from shared-utils instead

* feat(input): add file type story

* refactor(input): include in Input Types

* fix(date-picker): resolve width clipping issue on 90/110% zoom (#3416)

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* Delete .changeset/metal-bats-reflect.md

* Update weak-dingos-chew.md

* chore: add storybook

---------

Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>

* fix: onSelectionChange type incorrect (#3336)

* fix: onSelectionChange type incorrect

* feat: export shardSelection

* fix: typo

* fix: review

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: tsc errors (#3362)

* fix: tsc error

* docs: changeset

* fix: test

* fix: test

* fix: review problem

* fix: review

* feat: add tw config to get the intelliSense (#3385)

* feat: add tw config to get the intelliSense

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(datePicker): prevent year, month change in showMonthAndYearPickers mode (#3088)

* fix: prevent year, month change error in showMonthAndYearPickers mode

* docs: add changeset

* docs: edit changeset

* test:  add test code about date clear issue in date picker

* test: update test code

* test: check application aria is same with current date

* chore(changeset): revise package and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: add onClear prop to Ripple component in button custom implementation (#3439)

* fix(input): fixed the background change on autofill in Chrome (#3430)

* fix(input): fixed the background change on autofill in Chrome

* fix(input): fixed the background change on autofill in Chrome

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(time-input): minValue and maxValue validation (#3426)

* fix(time-input): minValue and maxValue validation (#3424)

* test(time-input): update

* refactor(time-input): simplify `isInvalid` logic

* fix(docs): incorrect image height (#3427)

* docs: removed show more from code example (#3373)

* docs: removed show more from code example

* Update sandpack.css

* docs: remove-show-more

* chore(docs): remove unused code

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): resolve double fetch issue in useInfiniteScroll hook (#3332)

* fix(table): resolve double fetch issue in useInfiniteScroll hook (fix #3251)

* fix(table): remove unnecessary else clause

* fix(table): add a changeset file for use-infinite-scroll

* fix(hooks): add clearTimeout function

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* docs(frameworks): update highlighted line numbers in Frameworks examples (#3412)

* Update highlighted line numbers in Remix examples

* Update highlighted line numbers in Next.js examples

* Update highlighted line numbers in Astro examples

* Update highlighted line numbers in Vite examples

* Adjust highlighted line number

* Adjust highlighted line number

* fix(autocomplete): remove unnecessary state.close (#3464)

* fix(autocomplete): remove unnecessary state.close

* feat(autocomplete): add fully controlled template

* feat(autocomplete): should clear value after clicking clear button (controlled)

* ci(changesets): version packages (#3266)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(system-rsc): defaultVariants null case in extendVariants (#3503)

* fix(system-rsc): defaultVariants null case in extendVariants

* chore(changeset): add issue number

* fix(date-range-picker): calendar-content width as per visible-months (#3505)

* fix: normalize 'status' field values to lowercase across multiple files (#2947)

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in use-case.ts

* fix(status): normalize 'status' value to lowercase in custom-render-value.ts

* fix(status): normalize 'status' value to lowercase in top-content.ts

* fix(status): normalize 'status' value to lowercase in multiple-chips.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in data.ts

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(modal): double scrollbar in inside scrollbehaviour (#3495)

* fix(modal): double scrollbar in inside scrollbehaviour

* chore(changeset): update changeset message and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): sortable header slow color change during theme change (#3491)

* fix(table): sortable header slow color change during theme change

* chore(changeset): add space

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(theme): button scaling when disableAnimation is true (#3499)

* fix(system-rsc): add @react-types/shared to dependencies (#3501)

* fix(system-rsc): add @react-types/shared to dependencies

* fix: change pnpm lock

* fix: change pnpm lock

* fix: change pnpm lock

---------

Co-authored-by: winches <329487092@qq.com>

* build(script): fixing Clean script (#3500)

running clean lock before clean node modules.

* ci(changesets): version packages (#3507)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3508)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat(chanageset): bump versions (#3512)

* ci(changesets): version packages (#3513)

---------

Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: EGOIST <0x142857@gmail.com>
Co-authored-by: Damien Leroy <10438692+ShiiFu@users.noreply.github.com>
Co-authored-by: Christian Abele <manufaktur@christian-abele.de>
Co-authored-by: Nozomi Hijikata <121233810+nozomemein@users.noreply.github.com>
Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>
Co-authored-by: Deval Minocha <deval.minocha24@gmail.com>
Co-authored-by: Ankit <82326089+ankitts@users.noreply.github.com>
Co-authored-by: wiyco <lumiwslab@gmail.com>
Co-authored-by: Sjoerd van Bommel <sjoerd.van.bommel@Hotmail.com>
Co-authored-by: Pratyush Kongalla <44525862+pratyush3124@users.noreply.github.com>
Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: Abhinandan <abhinandanverma551@gmail.com>
Co-authored-by: KumJungMin <37934668+KumJungMin@users.noreply.github.com>
Co-authored-by: dochi <ryoon50@gmail.com>
Co-authored-by: Abhishek Tomar <104965815+abhisektomar1@users.noreply.github.com>
Co-authored-by: RockerFlower <kira@glorylab.xyz>
Co-authored-by: codeesura <120671243+codeesura@users.noreply.github.com>
Co-authored-by: Simon Podlipsky <simon@podlipsky.net>
Co-authored-by: sandeep Butte <sandeep36butte@gmail.com>
2024-07-20 19:01:34 -07:00
Junior Garcia e67b02845d chore: merged with main 2024-07-20 18:53:51 -07:00
github-actions[bot] f052c34d47 ci(changesets): version packages (#3513) 2024-07-19 08:20:08 -07:00
աӄա 2d2d300a12 feat(chanageset): bump versions (#3512) 2024-07-19 08:13:05 -07:00
Junior Garcia f283b2c67e v2.4.5 (#3509)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110)

* fix(theme): add missing pointer event after data loaded (#3126)

* fix(system): listbox href issue (experimental) (#3119)

* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element (#3111)

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps

* fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* ci(changesets): version packages (#3115)

* fix(pagination): missing animation (#3144)

* fix tsup domain (#3158)

* chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155)

* fix(autocomplete): maximum update depth exceeded in autocomplete (#3175)

* chore(checkbox): avoid passing non-DOM attributes to svg  (#3199)

* chore(docs): avoid passing non-DOM attributes to svg

* chore(utilities): avoid passing non-DOM attributes to svg

* feat(changeset): add changeset

* fix(docs): fix typo in autocomplete documentation page (#3182)

* fix(select): add missing data-invalid in select and add missing data attributes in docs (#3177)

* fix(select): add missing data-invalid attribute

* chore(docs): add missing data attributes for select base

* fix(tabs): destroyInactiveTabPanel unmounts inactive tabs' content (#3164)

* fix(tabs): incorrect content in tab panel

* feat(tabs): revise destroyInactiveTabPanel test cases

* fix(select): unset form value after unselecting an item (#3157)

* fix(select): set empty string instead of undefined for unsetting value

* feat(selet): should unset form value

* fix(tabs): set tab panel id correctly (#3246)

* docs(tooltip): supplement correct style path (#3183)

* docs(tooltip): supplement correct style path

* chore(docs): move the note below import tabs

* fix(use-aria-menu): link logic in useMenuItem (#3229)

* chore(deps): bump @internationalized/date version (#3230)

* fix(input): input display with hidden type (#3174)

* fix(input): input display with hidden type

* chore(input): add isHiddenType to dependency

* refactor(input): move the styles to theme and change hidden to data attr

* feat(theme): add isHiddenType to input

* chore(changeset): include theme package

* chore(input): revise input test

* fix(theme): remove isHiddenType from variants and use data-hidden prop instead

* fix(theme): remove isHiddenType from defaultVariants

* fix(input): remove isHiddenType passing to input

* feat(date-picker): add support for DatePicker to apply styles to DateInput (#3146)

* feat(date-picker): add support for DatePicker to apply styles to DateInput

* chore: update changeset

* docs(date-picker): add dateInputClassNames props

* refactor(date): updated errorMessage story and modified to import props (#3112)

* refactor(date): updated errorMessage story and modified to import props

* docs(date): add errorMessageFunction examples

* chore: add changeset

* fix: remove unnecessary props

* fix: typo

* Update regex-validation.ts (#3123)

* Update regex-validation.ts

Fix email regex

* Update email regex input.stories.tsx

* fix(autocomplete): controlled state logic (#2969)

* fix(autocomplete): autocomplete controlled state (#2955)

* chore(autocomplete): add changeset

* Update packages/components/autocomplete/__tests__/autocomplete.test.tsx

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(utilities): resolve assignRef TypeScript ref assignment issue (#3098)

* fix(utilities): resolve assignRef TypeScript ref assignment issue

* chore(changeset): revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): table-column align prop (#2900)

* fix(navbar): fixed the height of navbar menu (#1805)

* fix(navbar): fixed the height of navbar menu

* fix(navbar): refactored the css of navbar

* fix(navbar): fix redundant expression

* fix(navbar): fixed unnecessary changes

* fix(navbar): adjust viewport

* fix: RA dependencies bump (#3240)

* fix(popover): popover focus issue (#3187)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix: interactions with popover & focus issues (#3137)

* fix(aria-utils): handle click on listbox

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): pnpm-lock.yaml

* fix(popover): remove disableFocusManagement

* fix(modal): remove disableFocusManagement

* fix(autocomplete): remove custom focus logic and remove ariaShouldCloseOnInteractOutside

* fix(popover): rewrite shouldCloseOnInteractOutside logic

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): bump react-aria dependencies

* chore(autocomplete): change back to focus

* feat(changeset): update changeset

* chore(docs): update type in onSelectionChange

* fix(popover): revise popover test case

* chore(deps): add @nextui-org/aria-utils

* fix(autocomplete): add ariaShouldCloseOnInteractOutside

* fix(date-picker): add ariaShouldCloseOnInteractOutside

* fix(select): add ariaShouldCloseOnInteractOutside

* chore(deps): add @nextui-org/aria-utils

* fix(dropdown): add ariaShouldCloseOnInteractOutside

* feat(utilities): rewrite ariaShouldCloseOnInteractOutside

* fix(popover): use ariaShouldCloseOnInteractOutside

* fix(autocomplete): add back shouldFocus

* fix(utilities): include shouldFocus logic

* chore(utilities): remove !

* refactor(aria-utils): add more comments

* chore(changeset): update packages

* refactor(aria-utils): add more comments

* feat(popover): add test

* fix: dropdown onPress issue (#3211)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix(popover): dropdown onPress blocking issue

* fix(dropdown): incorrect keyCodes

* feat(dropdown): add keyboard onPress test cases

* chore(deps): keep all @react-aria/overlays version consistent

* chore(deps): sync dependencies

* chore(deps): sync dependencies

* refactor(aria-utils): remove shouldFocus logic

* refactor(autocomplete): remove shouldFocus logic and set input focus when open

* chore(deps): bump dependencies

* chore(deps): fix react aria dependencies

* fix(autocomplete): move popover style width inside isOpen true block

* fix(autocomplete): focus back to trigger

* feat(changeset): add changeset

* chore(deps): bump react-aria dependencies

* refactor(autocomplete): revise comment

* refactor(dropdown): revise logSpy and trigger mockRestore

* refactor(popover): remove debug className

* fix(date-input): avoid setting isInvalid in useDateFieldState

* fix(autocomplete): use ComboBoxValidationValue

* feat(use-aria-menu): add deprecate message

* feat(changeset): add missing packages

* refactor(use-aria-menu): remove isLink since it is included in useLinkProps

* Update packages/hooks/use-aria-menu/src/use-menu-item.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3147)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(avatar): remove extra `disableAnimation` prop in `getImageProps` (#3260)

* fix(system-rsc): extendVariants with defaultVariants (#3299)

* fix(date-picker): update calendar classNames in useDateRangePicker (#3258)

* fix(date-picker): update calendar classNames in useDateRangePicker

* feat(docs): include custom styles in date-range-picker docs

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(accordion): variants for nested accordions (#3291)

* feat(accordion): add data-variant

* fix(theme): revise accordion styles for variants

* feat(changeset): add changeset

* chore(theme): rollback content padding

* chore(accordion): abandon data-group approach

* refactor(theme): pass variant to accordionItem

* refactor(accordion): pass variant to accordionItem

* fix(accordion): revise accordion variants

* refactor(accordion): refine transitionVariants

* refactor(.github): nextui version description in bug report template (#3281)

* refactor(.github): revise version description & placeholder

* refactor(.github): revise version description & placeholder

* chore: add accessible name to the icon button (#3300)

* fix(radio): ensure radio input correctly references description (#3301)

* fix(radio): ensure radio input correctly references description

* refactor: tweak test

* refactor(.github): github action warnings (#3317)

* chore(.github): bump action versions

* refactor(autocomplete): linting

* chore(.github): without version

* fix(doc): migrated ScriptProvider component from the root level to each decendant folder (#3269)

Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>

* refactor(docs): fix international calendar bug (#3363)

* refactor(docs): fix international calendar bug

* chore: update @react-aria/i18n version and update lock file

* fix(table): custom with class names storybook styles (#3344)

* fix: #3338

* fix(table): custom with class names storybook styles

* chore(deps): pnpm-lock.yaml (#3372)

* fix(accordion): allow cursor navigation within text (#3419)

* fix(accordion): allow cursor navigation within text

* fix: wrong issue number

* fix(date-range-picker): input field clear error (#3409)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* fix: remove autoCapitalize to prevent Firefox warning (#3376)

* fix: remove autoCapitalize to prevent firefox warning

* chore: add changeset

* fix(user): avatar icon not shown in User component (#3387)

* chore(deps): pnpm-lock.yaml

* fix(user): avoid passing user name to avatar component

* feat(changeset): add changeset

* feat(user): add avatar icon test cases

* fix(select): close select by pressing selector button (#3374)

* feat(select): add test

* fix(select): use domRef in ariaShouldCloseOnInteractOutside

* feat(changeset): add changeset

* fix(select): rewrite "should unset form value" test

* fix(select): import HiddenSelect and UseSelectProps (#3368)

* fix(select): import HiddenSelect and UseSelectProps

* chore: merge import

* feat: eslint add rule prefer top level type import (#3354)

* fix(calendar): disable button picker in calendar if `isDisabled` is true (#3358)

* fix(calendar): disable button picker in calendar if `isDisabled` is true

* feat(changeset): add changeset

* feat(calendar): add test to cover showMonthAndYearPickers with isDisabled

* fix: incorrect year in showMonthAndYearPickers with locale (#3331)

* fix(date-input): add gregorian year offset to minValue & maxValue

* feat(shared-utils): add getGregorianYearOffset

* fix(calendar): add gregorian year offset to minValue & maxValue

* feat(changeset): add changeset

* fix(system): remove defaultDates.minDate and defaultDates.maxDate

* fix(calendar): add missing import

* feat(date-picker): add test

* feat(calendar): add test

* fix(popover): dialog focus behaviour  (#3311)

* fix(autocomplete): set skipDialogFocus to true

* feat(popover): add skipDialogFocus to free solo popover

* refactor(popover): rename variable and add comment

* refactor(autocomplete): rename variable and add comment

* feat(changeset): add changeset

* refactor(docs): sort component routes alphabetically (#3328)

* docs(pagination): fix typo of missing "`" in doc (#3324)

* fix(image): override default auto height (#3327)

* fix(image): override default auto height

* feat(changeset): add changeset

* feat(image): add test

* refactor(image): add comment

* fix(table): differentiate selected bg color from striped bg color (#3221)

* fix: override bg color when selecting striped row

* chore(style): differentiate selected bg color from striped row

* chore: changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(date-picker): open and close datepicker after pressing selector button (#3283)

* fix(date-picker): use trigger ref instead

* fix(date-input): add innerWrapperProps

* fix(date-picker): include popoverTriggerRef and add onPress to selector

* feat(date-picker): add test

* feat(changeset): add changeset

* refactor(date-input): merge innerWrapperPropsProp & props and add cn

* fix(popover): close popover on scroll (#3414)

* fix(popover): close popover on scroll

* feat(popover): add "should close popover on scroll" test

* feat(changeset): add changeset

* feat(select): add ScrollableContainerTemplate

* fix(navbar): shouldHideOnScroll fixed (#3315)

* fix(navbar): shouldHideOnScroll fixed

* Update packages/hooks/use-scroll-position/src/index.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update index.ts

* fix(navbar): applying suggested changes

---------

Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(accordion): pass missing `dividerProps` to Divider (#3392)

* chore(deps): pnpm-lock.yaml

* fix(accordion): pass missing `dividerProps` to Divider

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(image): optional height (#3420)

* fix(image): optional height

* fix(image): incorrect props

* feat(changeset): add changeset

* fix(input): input with file type (#3268)

* fix(input): remove value & onChange for input[type="file"]

* refactor(theme): remove unnecessary styles

* fix(theme): input file styles

* fix(theme): revise cursor-pointer on file

* feat(input): add file input logic

* feat(changeset): add changeset

* refactor(input): use warn function from shared-utils instead

* feat(input): add file type story

* refactor(input): include in Input Types

* fix(date-picker): resolve width clipping issue on 90/110% zoom (#3416)

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* Delete .changeset/metal-bats-reflect.md

* Update weak-dingos-chew.md

* chore: add storybook

---------

Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>

* fix: onSelectionChange type incorrect (#3336)

* fix: onSelectionChange type incorrect

* feat: export shardSelection

* fix: typo

* fix: review

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: tsc errors (#3362)

* fix: tsc error

* docs: changeset

* fix: test

* fix: test

* fix: review problem

* fix: review

* feat: add tw config to get the intelliSense (#3385)

* feat: add tw config to get the intelliSense

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(datePicker): prevent year, month change in showMonthAndYearPickers mode (#3088)

* fix: prevent year, month change error in showMonthAndYearPickers mode

* docs: add changeset

* docs: edit changeset

* test:  add test code about date clear issue in date picker

* test: update test code

* test: check application aria is same with current date

* chore(changeset): revise package and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: add onClear prop to Ripple component in button custom implementation (#3439)

* fix(input): fixed the background change on autofill in Chrome (#3430)

* fix(input): fixed the background change on autofill in Chrome

* fix(input): fixed the background change on autofill in Chrome

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(time-input): minValue and maxValue validation (#3426)

* fix(time-input): minValue and maxValue validation (#3424)

* test(time-input): update

* refactor(time-input): simplify `isInvalid` logic

* fix(docs): incorrect image height (#3427)

* docs: removed show more from code example (#3373)

* docs: removed show more from code example

* Update sandpack.css

* docs: remove-show-more

* chore(docs): remove unused code

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): resolve double fetch issue in useInfiniteScroll hook (#3332)

* fix(table): resolve double fetch issue in useInfiniteScroll hook (fix #3251)

* fix(table): remove unnecessary else clause

* fix(table): add a changeset file for use-infinite-scroll

* fix(hooks): add clearTimeout function

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* docs(frameworks): update highlighted line numbers in Frameworks examples (#3412)

* Update highlighted line numbers in Remix examples

* Update highlighted line numbers in Next.js examples

* Update highlighted line numbers in Astro examples

* Update highlighted line numbers in Vite examples

* Adjust highlighted line number

* Adjust highlighted line number

* fix(autocomplete): remove unnecessary state.close (#3464)

* fix(autocomplete): remove unnecessary state.close

* feat(autocomplete): add fully controlled template

* feat(autocomplete): should clear value after clicking clear button (controlled)

* ci(changesets): version packages (#3266)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(system-rsc): defaultVariants null case in extendVariants (#3503)

* fix(system-rsc): defaultVariants null case in extendVariants

* chore(changeset): add issue number

* fix(date-range-picker): calendar-content width as per visible-months (#3505)

* fix: normalize 'status' field values to lowercase across multiple files (#2947)

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in use-case.ts

* fix(status): normalize 'status' value to lowercase in custom-render-value.ts

* fix(status): normalize 'status' value to lowercase in top-content.ts

* fix(status): normalize 'status' value to lowercase in multiple-chips.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in data.ts

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(modal): double scrollbar in inside scrollbehaviour (#3495)

* fix(modal): double scrollbar in inside scrollbehaviour

* chore(changeset): update changeset message and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): sortable header slow color change during theme change (#3491)

* fix(table): sortable header slow color change during theme change

* chore(changeset): add space

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(theme): button scaling when disableAnimation is true (#3499)

* fix(system-rsc): add @react-types/shared to dependencies (#3501)

* fix(system-rsc): add @react-types/shared to dependencies

* fix: change pnpm lock

* fix: change pnpm lock

* fix: change pnpm lock

---------

Co-authored-by: winches <329487092@qq.com>

* build(script): fixing Clean script (#3500)

running clean lock before clean node modules.

* ci(changesets): version packages (#3507)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3508)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

---------

Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: EGOIST <0x142857@gmail.com>
Co-authored-by: Damien Leroy <10438692+ShiiFu@users.noreply.github.com>
Co-authored-by: Christian Abele <manufaktur@christian-abele.de>
Co-authored-by: Nozomi Hijikata <121233810+nozomemein@users.noreply.github.com>
Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>
Co-authored-by: Deval Minocha <deval.minocha24@gmail.com>
Co-authored-by: Ankit <82326089+ankitts@users.noreply.github.com>
Co-authored-by: wiyco <lumiwslab@gmail.com>
Co-authored-by: Sjoerd van Bommel <sjoerd.van.bommel@Hotmail.com>
Co-authored-by: Pratyush Kongalla <44525862+pratyush3124@users.noreply.github.com>
Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: Abhinandan <abhinandanverma551@gmail.com>
Co-authored-by: KumJungMin <37934668+KumJungMin@users.noreply.github.com>
Co-authored-by: dochi <ryoon50@gmail.com>
Co-authored-by: Abhishek Tomar <104965815+abhisektomar1@users.noreply.github.com>
Co-authored-by: RockerFlower <kira@glorylab.xyz>
Co-authored-by: codeesura <120671243+codeesura@users.noreply.github.com>
Co-authored-by: Simon Podlipsky <simon@podlipsky.net>
Co-authored-by: sandeep Butte <sandeep36butte@gmail.com>
2024-07-18 13:45:51 -07:00
github-actions[bot] cef11222fa ci(changesets): version packages (#3508)
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2024-07-18 10:59:03 -07:00
github-actions[bot] 0185952ed4 ci(changesets): version packages (#3507)
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2024-07-18 10:41:33 -07:00
sandeep Butte 4dfe194296 build(script): fixing Clean script (#3500)
running clean lock before clean node modules.
2024-07-18 10:38:05 -07:00
Simon Podlipsky fbd4f4b47e fix(system-rsc): add @react-types/shared to dependencies (#3501)
* fix(system-rsc): add @react-types/shared to dependencies

* fix: change pnpm lock

* fix: change pnpm lock

* fix: change pnpm lock

---------

Co-authored-by: winches <329487092@qq.com>
2024-07-18 10:37:44 -07:00
աӄա 59428b183d fix(theme): button scaling when disableAnimation is true (#3499) 2024-07-18 10:36:47 -07:00
Abhinandan 46edcca954 fix(table): sortable header slow color change during theme change (#3491)
* fix(table): sortable header slow color change during theme change

* chore(changeset): add space

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-18 10:36:15 -07:00
Abhinandan 8b193072e5 fix(modal): double scrollbar in inside scrollbehaviour (#3495)
* fix(modal): double scrollbar in inside scrollbehaviour

* chore(changeset): update changeset message and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-18 10:35:42 -07:00
codeesura 7d61cf3918 fix: normalize 'status' field values to lowercase across multiple files (#2947)
* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in use-case.ts

* fix(status): normalize 'status' value to lowercase in custom-render-value.ts

* fix(status): normalize 'status' value to lowercase in top-content.ts

* fix(status): normalize 'status' value to lowercase in multiple-chips.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in data.ts

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts

* fix(status): normalize 'status' value to lowercase in custom-items.ts

* fix(status): normalize 'status' value to lowercase in page.tsx

* fix(status): normalize 'status' value to lowercase in custom-styles.ts
2024-07-18 10:34:47 -07:00
Abhinandan 1fdbf2ad20 fix(date-range-picker): calendar-content width as per visible-months (#3505) 2024-07-18 10:34:13 -07:00
աӄա 5591138bff fix(system-rsc): defaultVariants null case in extendVariants (#3503)
* fix(system-rsc): defaultVariants null case in extendVariants

* chore(changeset): add issue number
2024-07-18 10:33:26 -07:00
Junior Garcia a41ed427d9 Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-07-17 14:33:49 -07:00
Junior Garcia a30edbb1b2 v2.4.3 (#3494)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110)

* fix(theme): add missing pointer event after data loaded (#3126)

* fix(system): listbox href issue (experimental) (#3119)

* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element (#3111)

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps

* fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* ci(changesets): version packages (#3115)

* fix(pagination): missing animation (#3144)

* fix tsup domain (#3158)

* chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155)

* fix(autocomplete): maximum update depth exceeded in autocomplete (#3175)

* chore(checkbox): avoid passing non-DOM attributes to svg  (#3199)

* chore(docs): avoid passing non-DOM attributes to svg

* chore(utilities): avoid passing non-DOM attributes to svg

* feat(changeset): add changeset

* fix(docs): fix typo in autocomplete documentation page (#3182)

* fix(select): add missing data-invalid in select and add missing data attributes in docs (#3177)

* fix(select): add missing data-invalid attribute

* chore(docs): add missing data attributes for select base

* fix(tabs): destroyInactiveTabPanel unmounts inactive tabs' content (#3164)

* fix(tabs): incorrect content in tab panel

* feat(tabs): revise destroyInactiveTabPanel test cases

* fix(select): unset form value after unselecting an item (#3157)

* fix(select): set empty string instead of undefined for unsetting value

* feat(selet): should unset form value

* fix(tabs): set tab panel id correctly (#3246)

* docs(tooltip): supplement correct style path (#3183)

* docs(tooltip): supplement correct style path

* chore(docs): move the note below import tabs

* fix(use-aria-menu): link logic in useMenuItem (#3229)

* chore(deps): bump @internationalized/date version (#3230)

* fix(input): input display with hidden type (#3174)

* fix(input): input display with hidden type

* chore(input): add isHiddenType to dependency

* refactor(input): move the styles to theme and change hidden to data attr

* feat(theme): add isHiddenType to input

* chore(changeset): include theme package

* chore(input): revise input test

* fix(theme): remove isHiddenType from variants and use data-hidden prop instead

* fix(theme): remove isHiddenType from defaultVariants

* fix(input): remove isHiddenType passing to input

* feat(date-picker): add support for DatePicker to apply styles to DateInput (#3146)

* feat(date-picker): add support for DatePicker to apply styles to DateInput

* chore: update changeset

* docs(date-picker): add dateInputClassNames props

* refactor(date): updated errorMessage story and modified to import props (#3112)

* refactor(date): updated errorMessage story and modified to import props

* docs(date): add errorMessageFunction examples

* chore: add changeset

* fix: remove unnecessary props

* fix: typo

* Update regex-validation.ts (#3123)

* Update regex-validation.ts

Fix email regex

* Update email regex input.stories.tsx

* fix(autocomplete): controlled state logic (#2969)

* fix(autocomplete): autocomplete controlled state (#2955)

* chore(autocomplete): add changeset

* Update packages/components/autocomplete/__tests__/autocomplete.test.tsx

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(utilities): resolve assignRef TypeScript ref assignment issue (#3098)

* fix(utilities): resolve assignRef TypeScript ref assignment issue

* chore(changeset): revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): table-column align prop (#2900)

* fix(navbar): fixed the height of navbar menu (#1805)

* fix(navbar): fixed the height of navbar menu

* fix(navbar): refactored the css of navbar

* fix(navbar): fix redundant expression

* fix(navbar): fixed unnecessary changes

* fix(navbar): adjust viewport

* fix: RA dependencies bump (#3240)

* fix(popover): popover focus issue (#3187)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix: interactions with popover & focus issues (#3137)

* fix(aria-utils): handle click on listbox

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): pnpm-lock.yaml

* fix(popover): remove disableFocusManagement

* fix(modal): remove disableFocusManagement

* fix(autocomplete): remove custom focus logic and remove ariaShouldCloseOnInteractOutside

* fix(popover): rewrite shouldCloseOnInteractOutside logic

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): bump react-aria dependencies

* chore(autocomplete): change back to focus

* feat(changeset): update changeset

* chore(docs): update type in onSelectionChange

* fix(popover): revise popover test case

* chore(deps): add @nextui-org/aria-utils

* fix(autocomplete): add ariaShouldCloseOnInteractOutside

* fix(date-picker): add ariaShouldCloseOnInteractOutside

* fix(select): add ariaShouldCloseOnInteractOutside

* chore(deps): add @nextui-org/aria-utils

* fix(dropdown): add ariaShouldCloseOnInteractOutside

* feat(utilities): rewrite ariaShouldCloseOnInteractOutside

* fix(popover): use ariaShouldCloseOnInteractOutside

* fix(autocomplete): add back shouldFocus

* fix(utilities): include shouldFocus logic

* chore(utilities): remove !

* refactor(aria-utils): add more comments

* chore(changeset): update packages

* refactor(aria-utils): add more comments

* feat(popover): add test

* fix: dropdown onPress issue (#3211)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix(popover): dropdown onPress blocking issue

* fix(dropdown): incorrect keyCodes

* feat(dropdown): add keyboard onPress test cases

* chore(deps): keep all @react-aria/overlays version consistent

* chore(deps): sync dependencies

* chore(deps): sync dependencies

* refactor(aria-utils): remove shouldFocus logic

* refactor(autocomplete): remove shouldFocus logic and set input focus when open

* chore(deps): bump dependencies

* chore(deps): fix react aria dependencies

* fix(autocomplete): move popover style width inside isOpen true block

* fix(autocomplete): focus back to trigger

* feat(changeset): add changeset

* chore(deps): bump react-aria dependencies

* refactor(autocomplete): revise comment

* refactor(dropdown): revise logSpy and trigger mockRestore

* refactor(popover): remove debug className

* fix(date-input): avoid setting isInvalid in useDateFieldState

* fix(autocomplete): use ComboBoxValidationValue

* feat(use-aria-menu): add deprecate message

* feat(changeset): add missing packages

* refactor(use-aria-menu): remove isLink since it is included in useLinkProps

* Update packages/hooks/use-aria-menu/src/use-menu-item.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3147)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(avatar): remove extra `disableAnimation` prop in `getImageProps` (#3260)

* fix(system-rsc): extendVariants with defaultVariants (#3299)

* fix(date-picker): update calendar classNames in useDateRangePicker (#3258)

* fix(date-picker): update calendar classNames in useDateRangePicker

* feat(docs): include custom styles in date-range-picker docs

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(accordion): variants for nested accordions (#3291)

* feat(accordion): add data-variant

* fix(theme): revise accordion styles for variants

* feat(changeset): add changeset

* chore(theme): rollback content padding

* chore(accordion): abandon data-group approach

* refactor(theme): pass variant to accordionItem

* refactor(accordion): pass variant to accordionItem

* fix(accordion): revise accordion variants

* refactor(accordion): refine transitionVariants

* refactor(.github): nextui version description in bug report template (#3281)

* refactor(.github): revise version description & placeholder

* refactor(.github): revise version description & placeholder

* chore: add accessible name to the icon button (#3300)

* fix(radio): ensure radio input correctly references description (#3301)

* fix(radio): ensure radio input correctly references description

* refactor: tweak test

* refactor(.github): github action warnings (#3317)

* chore(.github): bump action versions

* refactor(autocomplete): linting

* chore(.github): without version

* fix(doc): migrated ScriptProvider component from the root level to each decendant folder (#3269)

Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>

* refactor(docs): fix international calendar bug (#3363)

* refactor(docs): fix international calendar bug

* chore: update @react-aria/i18n version and update lock file

* fix(table): custom with class names storybook styles (#3344)

* fix: #3338

* fix(table): custom with class names storybook styles

* chore(deps): pnpm-lock.yaml (#3372)

* fix(accordion): allow cursor navigation within text (#3419)

* fix(accordion): allow cursor navigation within text

* fix: wrong issue number

* fix(date-range-picker): input field clear error (#3409)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* fix: remove autoCapitalize to prevent Firefox warning (#3376)

* fix: remove autoCapitalize to prevent firefox warning

* chore: add changeset

* fix(user): avatar icon not shown in User component (#3387)

* chore(deps): pnpm-lock.yaml

* fix(user): avoid passing user name to avatar component

* feat(changeset): add changeset

* feat(user): add avatar icon test cases

* fix(select): close select by pressing selector button (#3374)

* feat(select): add test

* fix(select): use domRef in ariaShouldCloseOnInteractOutside

* feat(changeset): add changeset

* fix(select): rewrite "should unset form value" test

* fix(select): import HiddenSelect and UseSelectProps (#3368)

* fix(select): import HiddenSelect and UseSelectProps

* chore: merge import

* feat: eslint add rule prefer top level type import (#3354)

* fix(calendar): disable button picker in calendar if `isDisabled` is true (#3358)

* fix(calendar): disable button picker in calendar if `isDisabled` is true

* feat(changeset): add changeset

* feat(calendar): add test to cover showMonthAndYearPickers with isDisabled

* fix: incorrect year in showMonthAndYearPickers with locale (#3331)

* fix(date-input): add gregorian year offset to minValue & maxValue

* feat(shared-utils): add getGregorianYearOffset

* fix(calendar): add gregorian year offset to minValue & maxValue

* feat(changeset): add changeset

* fix(system): remove defaultDates.minDate and defaultDates.maxDate

* fix(calendar): add missing import

* feat(date-picker): add test

* feat(calendar): add test

* fix(popover): dialog focus behaviour  (#3311)

* fix(autocomplete): set skipDialogFocus to true

* feat(popover): add skipDialogFocus to free solo popover

* refactor(popover): rename variable and add comment

* refactor(autocomplete): rename variable and add comment

* feat(changeset): add changeset

* refactor(docs): sort component routes alphabetically (#3328)

* docs(pagination): fix typo of missing "`" in doc (#3324)

* fix(image): override default auto height (#3327)

* fix(image): override default auto height

* feat(changeset): add changeset

* feat(image): add test

* refactor(image): add comment

* fix(table): differentiate selected bg color from striped bg color (#3221)

* fix: override bg color when selecting striped row

* chore(style): differentiate selected bg color from striped row

* chore: changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(date-picker): open and close datepicker after pressing selector button (#3283)

* fix(date-picker): use trigger ref instead

* fix(date-input): add innerWrapperProps

* fix(date-picker): include popoverTriggerRef and add onPress to selector

* feat(date-picker): add test

* feat(changeset): add changeset

* refactor(date-input): merge innerWrapperPropsProp & props and add cn

* fix(popover): close popover on scroll (#3414)

* fix(popover): close popover on scroll

* feat(popover): add "should close popover on scroll" test

* feat(changeset): add changeset

* feat(select): add ScrollableContainerTemplate

* fix(navbar): shouldHideOnScroll fixed (#3315)

* fix(navbar): shouldHideOnScroll fixed

* Update packages/hooks/use-scroll-position/src/index.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update index.ts

* fix(navbar): applying suggested changes

---------

Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(accordion): pass missing `dividerProps` to Divider (#3392)

* chore(deps): pnpm-lock.yaml

* fix(accordion): pass missing `dividerProps` to Divider

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(image): optional height (#3420)

* fix(image): optional height

* fix(image): incorrect props

* feat(changeset): add changeset

* fix(input): input with file type (#3268)

* fix(input): remove value & onChange for input[type="file"]

* refactor(theme): remove unnecessary styles

* fix(theme): input file styles

* fix(theme): revise cursor-pointer on file

* feat(input): add file input logic

* feat(changeset): add changeset

* refactor(input): use warn function from shared-utils instead

* feat(input): add file type story

* refactor(input): include in Input Types

* fix(date-picker): resolve width clipping issue on 90/110% zoom (#3416)

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* Delete .changeset/metal-bats-reflect.md

* Update weak-dingos-chew.md

* chore: add storybook

---------

Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>

* fix: onSelectionChange type incorrect (#3336)

* fix: onSelectionChange type incorrect

* feat: export shardSelection

* fix: typo

* fix: review

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: tsc errors (#3362)

* fix: tsc error

* docs: changeset

* fix: test

* fix: test

* fix: review problem

* fix: review

* feat: add tw config to get the intelliSense (#3385)

* feat: add tw config to get the intelliSense

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(datePicker): prevent year, month change in showMonthAndYearPickers mode (#3088)

* fix: prevent year, month change error in showMonthAndYearPickers mode

* docs: add changeset

* docs: edit changeset

* test:  add test code about date clear issue in date picker

* test: update test code

* test: check application aria is same with current date

* chore(changeset): revise package and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: add onClear prop to Ripple component in button custom implementation (#3439)

* fix(input): fixed the background change on autofill in Chrome (#3430)

* fix(input): fixed the background change on autofill in Chrome

* fix(input): fixed the background change on autofill in Chrome

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(time-input): minValue and maxValue validation (#3426)

* fix(time-input): minValue and maxValue validation (#3424)

* test(time-input): update

* refactor(time-input): simplify `isInvalid` logic

* fix(docs): incorrect image height (#3427)

* docs: removed show more from code example (#3373)

* docs: removed show more from code example

* Update sandpack.css

* docs: remove-show-more

* chore(docs): remove unused code

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): resolve double fetch issue in useInfiniteScroll hook (#3332)

* fix(table): resolve double fetch issue in useInfiniteScroll hook (fix #3251)

* fix(table): remove unnecessary else clause

* fix(table): add a changeset file for use-infinite-scroll

* fix(hooks): add clearTimeout function

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* docs(frameworks): update highlighted line numbers in Frameworks examples (#3412)

* Update highlighted line numbers in Remix examples

* Update highlighted line numbers in Next.js examples

* Update highlighted line numbers in Astro examples

* Update highlighted line numbers in Vite examples

* Adjust highlighted line number

* Adjust highlighted line number

* fix(autocomplete): remove unnecessary state.close (#3464)

* fix(autocomplete): remove unnecessary state.close

* feat(autocomplete): add fully controlled template

* feat(autocomplete): should clear value after clicking clear button (controlled)

* ci(changesets): version packages (#3266)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

---------

Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: EGOIST <0x142857@gmail.com>
Co-authored-by: Damien Leroy <10438692+ShiiFu@users.noreply.github.com>
Co-authored-by: Christian Abele <manufaktur@christian-abele.de>
Co-authored-by: Nozomi Hijikata <121233810+nozomemein@users.noreply.github.com>
Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>
Co-authored-by: Deval Minocha <deval.minocha24@gmail.com>
Co-authored-by: Ankit <82326089+ankitts@users.noreply.github.com>
Co-authored-by: wiyco <lumiwslab@gmail.com>
Co-authored-by: Sjoerd van Bommel <sjoerd.van.bommel@Hotmail.com>
Co-authored-by: Pratyush Kongalla <44525862+pratyush3124@users.noreply.github.com>
Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: Abhinandan <abhinandanverma551@gmail.com>
Co-authored-by: KumJungMin <37934668+KumJungMin@users.noreply.github.com>
Co-authored-by: dochi <ryoon50@gmail.com>
Co-authored-by: Abhishek Tomar <104965815+abhisektomar1@users.noreply.github.com>
Co-authored-by: RockerFlower <kira@glorylab.xyz>
2024-07-17 14:33:33 -07:00
github-actions[bot] 8192e0ee07 ci(changesets): version packages (#3266)
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2024-07-17 14:21:14 -07:00
Junior Garcia 0071ec2419 Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-07-17 14:15:34 -07:00
Junior Garcia e968f54baf Merge branch 'canary' of github.com:nextui-org/nextui into canary 2024-07-17 14:15:23 -07:00
winches 8c74f31e70 docs: remove body position which cause tooltip wrong (#3487) 2024-07-17 14:14:55 -07:00
աӄա bbebb79ced fix(autocomplete): remove unnecessary state.close (#3464)
* fix(autocomplete): remove unnecessary state.close

* feat(autocomplete): add fully controlled template

* feat(autocomplete): should clear value after clicking clear button (controlled)
2024-07-16 14:11:28 -07:00
winches 5370fd1fff docs: padding error in card (#3447) 2024-07-16 14:08:10 -07:00
RockerFlower b762141d18 docs(frameworks): update highlighted line numbers in Frameworks examples (#3412)
* Update highlighted line numbers in Remix examples

* Update highlighted line numbers in Next.js examples

* Update highlighted line numbers in Astro examples

* Update highlighted line numbers in Vite examples

* Adjust highlighted line number

* Adjust highlighted line number
2024-07-12 11:36:57 -07:00
Abhishek Tomar 049d23685f fix(table): resolve double fetch issue in useInfiniteScroll hook (#3332)
* fix(table): resolve double fetch issue in useInfiniteScroll hook (fix #3251)

* fix(table): remove unnecessary else clause

* fix(table): add a changeset file for use-infinite-scroll

* fix(hooks): add clearTimeout function

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-12 11:35:37 -07:00
Ankit 6ec494a845 docs: removed show more from code example (#3373)
* docs: removed show more from code example

* Update sandpack.css

* docs: remove-show-more

* chore(docs): remove unused code

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-12 11:32:54 -07:00
աӄա 30f0755658 fix(docs): incorrect image height (#3427) 2024-07-12 11:30:26 -07:00
chirokas c1f05ecb46 fix(time-input): minValue and maxValue validation (#3426)
* fix(time-input): minValue and maxValue validation (#3424)

* test(time-input): update

* refactor(time-input): simplify `isInvalid` logic
2024-07-12 11:30:03 -07:00
Abhinandan 2333c39870 fix(input): fixed the background change on autofill in Chrome (#3430)
* fix(input): fixed the background change on autofill in Chrome

* fix(input): fixed the background change on autofill in Chrome

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-12 11:25:36 -07:00
dochi 9438dfd918 fix: add onClear prop to Ripple component in button custom implementation (#3439) 2024-07-12 11:24:59 -07:00
winches b9cb296a8c docs: upgrade command add all option (#3273) 2024-07-12 11:22:51 -07:00
KumJungMin 134f371843 fix(datePicker): prevent year, month change in showMonthAndYearPickers mode (#3088)
* fix: prevent year, month change error in showMonthAndYearPickers mode

* docs: add changeset

* docs: edit changeset

* test:  add test code about date clear issue in date picker

* test: update test code

* test: check application aria is same with current date

* chore(changeset): revise package and add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-08 08:01:36 +08:00
winches 89ccf17cd4 feat: add tw config to get the intelliSense (#3385)
* feat: add tw config to get the intelliSense

* chore(deps): pnpm-lock.yaml

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-07 12:20:04 +08:00
winches 60bb09fe64 fix: tsc errors (#3362)
* fix: tsc error

* docs: changeset

* fix: test

* fix: test

* fix: review problem

* fix: review
2024-07-07 12:19:09 +08:00
Junior Garcia 22682dbd60 Merge branch 'canary' of github.com:nextui-org/nextui into canary 2024-07-06 17:45:15 -07:00
winches 0cdfdb48bc fix: onSelectionChange type incorrect (#3336)
* fix: onSelectionChange type incorrect

* feat: export shardSelection

* fix: typo

* fix: review

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-06 11:01:49 -07:00
Abhinandan 5652e7bddc fix(date-picker): resolve width clipping issue on 90/110% zoom (#3416)
* fix(date-picker): resolve width clipping issue on 90/110% zoom

* fix(date-picker): resolve width clipping issue on 90/110% zoom

* Delete .changeset/metal-bats-reflect.md

* Update weak-dingos-chew.md

* chore: add storybook

---------

Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
2024-07-06 10:59:13 -07:00
աӄա 93f1787815 fix(input): input with file type (#3268)
* fix(input): remove value & onChange for input[type="file"]

* refactor(theme): remove unnecessary styles

* fix(theme): input file styles

* fix(theme): revise cursor-pointer on file

* feat(input): add file input logic

* feat(changeset): add changeset

* refactor(input): use warn function from shared-utils instead

* feat(input): add file type story

* refactor(input): include in Input Types
2024-07-06 10:54:48 -07:00
աӄա a3a77bfc37 fix(image): optional height (#3420)
* fix(image): optional height

* fix(image): incorrect props

* feat(changeset): add changeset
2024-07-06 10:53:05 -07:00
chirokas 8dce94e5f0 fix(accordion): pass missing dividerProps to Divider (#3392)
* chore(deps): pnpm-lock.yaml

* fix(accordion): pass missing `dividerProps` to Divider

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-06 17:47:53 +08:00
Pratyush Kongalla 35e709de7d fix(navbar): shouldHideOnScroll fixed (#3315)
* fix(navbar): shouldHideOnScroll fixed

* Update packages/hooks/use-scroll-position/src/index.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update index.ts

* fix(navbar): applying suggested changes

---------

Co-authored-by: Pratyush <conenct2pratyush@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-07-06 01:06:30 -07:00
աӄա 444d320dbc fix(popover): close popover on scroll (#3414)
* fix(popover): close popover on scroll

* feat(popover): add "should close popover on scroll" test

* feat(changeset): add changeset

* feat(select): add ScrollableContainerTemplate
2024-07-06 01:04:56 -07:00
աӄա a164c26e96 fix(date-picker): open and close datepicker after pressing selector button (#3283)
* fix(date-picker): use trigger ref instead

* fix(date-input): add innerWrapperProps

* fix(date-picker): include popoverTriggerRef and add onPress to selector

* feat(date-picker): add test

* feat(changeset): add changeset

* refactor(date-input): merge innerWrapperPropsProp & props and add cn
2024-07-06 01:01:19 -07:00
Sjoerd van Bommel b4c046fe8b fix(table): differentiate selected bg color from striped bg color (#3221)
* fix: override bg color when selecting striped row

* chore(style): differentiate selected bg color from striped row

* chore: changeset

* chore(changeset): add issue number

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-07-06 01:00:57 -07:00
աӄա 57f7c9555e fix(image): override default auto height (#3327)
* fix(image): override default auto height

* feat(changeset): add changeset

* feat(image): add test

* refactor(image): add comment
2024-07-06 00:54:01 -07:00
wiyco 1671f569ea docs(pagination): fix typo of missing "`" in doc (#3324) 2024-07-06 00:53:15 -07:00
աӄա 9d26d02fbb refactor(docs): sort component routes alphabetically (#3328) 2024-07-06 00:51:38 -07:00
աӄա 0462dde0a7 fix(popover): dialog focus behaviour (#3311)
* fix(autocomplete): set skipDialogFocus to true

* feat(popover): add skipDialogFocus to free solo popover

* refactor(popover): rename variable and add comment

* refactor(autocomplete): rename variable and add comment

* feat(changeset): add changeset
2024-07-06 00:44:44 -07:00
աӄա f5d94f96e4 fix: incorrect year in showMonthAndYearPickers with locale (#3331)
* fix(date-input): add gregorian year offset to minValue & maxValue

* feat(shared-utils): add getGregorianYearOffset

* fix(calendar): add gregorian year offset to minValue & maxValue

* feat(changeset): add changeset

* fix(system): remove defaultDates.minDate and defaultDates.maxDate

* fix(calendar): add missing import

* feat(date-picker): add test

* feat(calendar): add test
2024-07-06 00:39:41 -07:00
աӄա fd4b7200dd fix(calendar): disable button picker in calendar if isDisabled is true (#3358)
* fix(calendar): disable button picker in calendar if `isDisabled` is true

* feat(changeset): add changeset

* feat(calendar): add test to cover showMonthAndYearPickers with isDisabled
2024-07-06 00:33:43 -07:00
winches 167e1977ee feat: eslint add rule prefer top level type import (#3354) 2024-07-06 00:32:14 -07:00
Ryo Matsukawa 1cd64b2e2e fix(select): import HiddenSelect and UseSelectProps (#3368)
* fix(select): import HiddenSelect and UseSelectProps

* chore: merge import
2024-07-06 00:28:12 -07:00
աӄա 7cc1bd78a3 fix(select): close select by pressing selector button (#3374)
* feat(select): add test

* fix(select): use domRef in ariaShouldCloseOnInteractOutside

* feat(changeset): add changeset

* fix(select): rewrite "should unset form value" test
2024-07-06 00:24:17 -07:00
աӄա c5ab49afa4 fix(user): avatar icon not shown in User component (#3387)
* chore(deps): pnpm-lock.yaml

* fix(user): avoid passing user name to avatar component

* feat(changeset): add changeset

* feat(user): add avatar icon test cases
2024-07-06 00:21:51 -07:00
Ryo Matsukawa 3cdfb2afca fix: remove autoCapitalize to prevent Firefox warning (#3376)
* fix: remove autoCapitalize to prevent firefox warning

* chore: add changeset
2024-07-06 00:17:07 -07:00
Shrinidhi Upadhyaya 9806d1c6c0 fix(date-range-picker): input field clear error (#3409)
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
2024-07-06 00:12:11 -07:00
Ryo Matsukawa 106752aaef fix(accordion): allow cursor navigation within text (#3419)
* fix(accordion): allow cursor navigation within text

* fix: wrong issue number
2024-07-05 23:40:17 -07:00
աӄա ec7c417387 chore(deps): pnpm-lock.yaml (#3372) 2024-07-03 03:07:07 -03:00
Ankit 9daef56a88 fix(table): custom with class names storybook styles (#3344)
* fix: #3338

* fix(table): custom with class names storybook styles
2024-06-29 18:26:37 -03:00
Deval Minocha 8b0b7e011c refactor(docs): fix international calendar bug (#3363)
* refactor(docs): fix international calendar bug

* chore: update @react-aria/i18n version and update lock file
2024-06-29 18:25:47 -03:00
Junior Garcia f1fd2a842b Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-06-29 17:51:14 -03:00
HaRuki Kuriwada 69db63cd8f fix(doc): migrated ScriptProvider component from the root level to each decendant folder 2024-06-29 17:50:46 -03:00
HaRuki 0711b66805 fix(doc): migrated ScriptProvider component from the root level to each decendant folder (#3269)
Co-authored-by: HaRuki Kuriwada <haruki.kuriwada@hennge.com>
2024-06-29 17:50:00 -03:00
աӄա 996a0ed128 chore(docs): update footer text (#3350) 2024-06-29 17:46:04 -03:00
Junior Garcia 78d4216bff Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-06-27 11:16:25 -03:00
աӄա 47a214237f chore(docs): remove vercel content (#3329)
* chore(docs): remove vercel content

* chore(docs): remove vercel content
2024-06-27 11:15:36 -03:00
աӄա 720f2f5a2e refactor(.github): github action warnings (#3317)
* chore(.github): bump action versions

* refactor(autocomplete): linting

* chore(.github): without version
2024-06-25 11:22:30 -03:00
Ryo Matsukawa 42183353a1 fix(radio): ensure radio input correctly references description (#3301)
* fix(radio): ensure radio input correctly references description

* refactor: tweak test
2024-06-23 10:01:11 -03:00
Ryo Matsukawa edd48a09cc chore: add accessible name to the icon button (#3300) 2024-06-23 09:58:39 -03:00
աӄա 069163053f refactor(.github): nextui version description in bug report template (#3281)
* refactor(.github): revise version description & placeholder

* refactor(.github): revise version description & placeholder
2024-06-22 11:18:00 -03:00
Junior Garcia 2ce7d74b1c Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-06-22 11:06:38 -03:00
աӄա 87ca7594ed refactor(docs): overall documentation (#3274)
* fix(docs): update framer motion version in docs

* refactor(docs): hoisted dependencies setup

* refactor(docs): add bun command

* refactor(docs): revise tailwindcss setup

* refactor(docs): add missing highlight lines and content in nextjs page

* fix(docs): incorrect highlighted lines in input

* refactor(docs): remove unnecessary space

* refactor(docs): add color and revise content

* refactor(docs): revise indentation in nextjs page
2024-06-22 11:06:26 -03:00
Junior Garcia cd0c15dc9a Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-06-22 10:58:57 -03:00
աӄա e9a6a162e8 fix(accordion): variants for nested accordions (#3291)
* feat(accordion): add data-variant

* fix(theme): revise accordion styles for variants

* feat(changeset): add changeset

* chore(theme): rollback content padding

* chore(accordion): abandon data-group approach

* refactor(theme): pass variant to accordionItem

* refactor(accordion): pass variant to accordionItem

* fix(accordion): revise accordion variants

* refactor(accordion): refine transitionVariants
2024-06-22 10:44:19 -03:00
Junior Garcia 773f3004a6 fix(date-picker): update calendar classNames in useDateRangePicker (#3258)
* fix(date-picker): update calendar classNames in useDateRangePicker

* feat(docs): include custom styles in date-range-picker docs

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-06-22 10:41:03 -03:00
աӄա b32072551b docs(autocomplete): add customEmptyContentMessage example (#3294) 2024-06-22 10:39:51 -03:00
աӄա f785d1fb04 fix(system-rsc): extendVariants with defaultVariants (#3299) 2024-06-22 10:36:22 -03:00
աӄա d90d680632 feat(docs): add CodeRabbit to sponsors (#3290) 2024-06-20 23:30:04 -03:00
աӄա 6951b1fba0 fix(avatar): remove extra disableAnimation prop in getImageProps (#3260) 2024-06-16 14:20:13 -03:00
Junior Garcia 47c6228649 v2.4.2 (#3256)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110)

* fix(theme): add missing pointer event after data loaded (#3126)

* fix(system): listbox href issue (experimental) (#3119)

* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element (#3111)

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps

* fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* ci(changesets): version packages (#3115)

* fix(pagination): missing animation (#3144)

* fix tsup domain (#3158)

* chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155)

* fix(autocomplete): maximum update depth exceeded in autocomplete (#3175)

* chore(checkbox): avoid passing non-DOM attributes to svg  (#3199)

* chore(docs): avoid passing non-DOM attributes to svg

* chore(utilities): avoid passing non-DOM attributes to svg

* feat(changeset): add changeset

* fix(docs): fix typo in autocomplete documentation page (#3182)

* fix(select): add missing data-invalid in select and add missing data attributes in docs (#3177)

* fix(select): add missing data-invalid attribute

* chore(docs): add missing data attributes for select base

* fix(tabs): destroyInactiveTabPanel unmounts inactive tabs' content (#3164)

* fix(tabs): incorrect content in tab panel

* feat(tabs): revise destroyInactiveTabPanel test cases

* fix(select): unset form value after unselecting an item (#3157)

* fix(select): set empty string instead of undefined for unsetting value

* feat(selet): should unset form value

* fix(tabs): set tab panel id correctly (#3246)

* docs(tooltip): supplement correct style path (#3183)

* docs(tooltip): supplement correct style path

* chore(docs): move the note below import tabs

* fix(use-aria-menu): link logic in useMenuItem (#3229)

* chore(deps): bump @internationalized/date version (#3230)

* fix(input): input display with hidden type (#3174)

* fix(input): input display with hidden type

* chore(input): add isHiddenType to dependency

* refactor(input): move the styles to theme and change hidden to data attr

* feat(theme): add isHiddenType to input

* chore(changeset): include theme package

* chore(input): revise input test

* fix(theme): remove isHiddenType from variants and use data-hidden prop instead

* fix(theme): remove isHiddenType from defaultVariants

* fix(input): remove isHiddenType passing to input

* feat(date-picker): add support for DatePicker to apply styles to DateInput (#3146)

* feat(date-picker): add support for DatePicker to apply styles to DateInput

* chore: update changeset

* docs(date-picker): add dateInputClassNames props

* refactor(date): updated errorMessage story and modified to import props (#3112)

* refactor(date): updated errorMessage story and modified to import props

* docs(date): add errorMessageFunction examples

* chore: add changeset

* fix: remove unnecessary props

* fix: typo

* Update regex-validation.ts (#3123)

* Update regex-validation.ts

Fix email regex

* Update email regex input.stories.tsx

* fix(autocomplete): controlled state logic (#2969)

* fix(autocomplete): autocomplete controlled state (#2955)

* chore(autocomplete): add changeset

* Update packages/components/autocomplete/__tests__/autocomplete.test.tsx

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(utilities): resolve assignRef TypeScript ref assignment issue (#3098)

* fix(utilities): resolve assignRef TypeScript ref assignment issue

* chore(changeset): revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(table): table-column align prop (#2900)

* fix(navbar): fixed the height of navbar menu (#1805)

* fix(navbar): fixed the height of navbar menu

* fix(navbar): refactored the css of navbar

* fix(navbar): fix redundant expression

* fix(navbar): fixed unnecessary changes

* fix(navbar): adjust viewport

* fix: RA dependencies bump (#3240)

* fix(popover): popover focus issue (#3187)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix: interactions with popover & focus issues (#3137)

* fix(aria-utils): handle click on listbox

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): pnpm-lock.yaml

* fix(popover): remove disableFocusManagement

* fix(modal): remove disableFocusManagement

* fix(autocomplete): remove custom focus logic and remove ariaShouldCloseOnInteractOutside

* fix(popover): rewrite shouldCloseOnInteractOutside logic

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): bump react-aria dependencies

* chore(autocomplete): change back to focus

* feat(changeset): update changeset

* chore(docs): update type in onSelectionChange

* fix(popover): revise popover test case

* chore(deps): add @nextui-org/aria-utils

* fix(autocomplete): add ariaShouldCloseOnInteractOutside

* fix(date-picker): add ariaShouldCloseOnInteractOutside

* fix(select): add ariaShouldCloseOnInteractOutside

* chore(deps): add @nextui-org/aria-utils

* fix(dropdown): add ariaShouldCloseOnInteractOutside

* feat(utilities): rewrite ariaShouldCloseOnInteractOutside

* fix(popover): use ariaShouldCloseOnInteractOutside

* fix(autocomplete): add back shouldFocus

* fix(utilities): include shouldFocus logic

* chore(utilities): remove !

* refactor(aria-utils): add more comments

* chore(changeset): update packages

* refactor(aria-utils): add more comments

* feat(popover): add test

* fix: dropdown onPress issue (#3211)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix(popover): dropdown onPress blocking issue

* fix(dropdown): incorrect keyCodes

* feat(dropdown): add keyboard onPress test cases

* chore(deps): keep all @react-aria/overlays version consistent

* chore(deps): sync dependencies

* chore(deps): sync dependencies

* refactor(aria-utils): remove shouldFocus logic

* refactor(autocomplete): remove shouldFocus logic and set input focus when open

* chore(deps): bump dependencies

* chore(deps): fix react aria dependencies

* fix(autocomplete): move popover style width inside isOpen true block

* fix(autocomplete): focus back to trigger

* feat(changeset): add changeset

* chore(deps): bump react-aria dependencies

* refactor(autocomplete): revise comment

* refactor(dropdown): revise logSpy and trigger mockRestore

* refactor(popover): remove debug className

* fix(date-input): avoid setting isInvalid in useDateFieldState

* fix(autocomplete): use ComboBoxValidationValue

* feat(use-aria-menu): add deprecate message

* feat(changeset): add missing packages

* refactor(use-aria-menu): remove isLink since it is included in useLinkProps

* Update packages/hooks/use-aria-menu/src/use-menu-item.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* ci(changesets): version packages (#3147)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

---------

Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: EGOIST <0x142857@gmail.com>
Co-authored-by: Damien Leroy <10438692+ShiiFu@users.noreply.github.com>
Co-authored-by: Christian Abele <manufaktur@christian-abele.de>
Co-authored-by: Nozomi Hijikata <121233810+nozomemein@users.noreply.github.com>
2024-06-15 12:57:09 -03:00
Junior Garcia 1e3e970fb7 Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-06-15 12:56:00 -03:00
github-actions[bot] 571522cb4b ci(changesets): version packages (#3147)
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2024-06-15 12:36:54 -03:00
աӄա 47c2472fb2 fix: RA dependencies bump (#3240)
* fix(popover): popover focus issue (#3187)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix: interactions with popover & focus issues (#3137)

* fix(aria-utils): handle click on listbox

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): pnpm-lock.yaml

* fix(popover): remove disableFocusManagement

* fix(modal): remove disableFocusManagement

* fix(autocomplete): remove custom focus logic and remove ariaShouldCloseOnInteractOutside

* fix(popover): rewrite shouldCloseOnInteractOutside logic

* chore(utilities): remove ariaShouldCloseOnInteractOutside

* chore(deps): bump react-aria dependencies

* chore(autocomplete): change back to focus

* feat(changeset): update changeset

* chore(docs): update type in onSelectionChange

* fix(popover): revise popover test case

* chore(deps): add @nextui-org/aria-utils

* fix(autocomplete): add ariaShouldCloseOnInteractOutside

* fix(date-picker): add ariaShouldCloseOnInteractOutside

* fix(select): add ariaShouldCloseOnInteractOutside

* chore(deps): add @nextui-org/aria-utils

* fix(dropdown): add ariaShouldCloseOnInteractOutside

* feat(utilities): rewrite ariaShouldCloseOnInteractOutside

* fix(popover): use ariaShouldCloseOnInteractOutside

* fix(autocomplete): add back shouldFocus

* fix(utilities): include shouldFocus logic

* chore(utilities): remove !

* refactor(aria-utils): add more comments

* chore(changeset): update packages

* refactor(aria-utils): add more comments

* feat(popover): add test

* fix: dropdown onPress issue (#3211)

* fix(popover): move useDialog to popover-content

* fix(popover): move useDialog to free-solo-popover

* refactor(popover): use const instead

* feat(changset): add changeset

* feat(popover): popover focus test

* refactor(popover): getDialogProps

* fix(popover): dropdown onPress blocking issue

* fix(dropdown): incorrect keyCodes

* feat(dropdown): add keyboard onPress test cases

* chore(deps): keep all @react-aria/overlays version consistent

* chore(deps): sync dependencies

* chore(deps): sync dependencies

* refactor(aria-utils): remove shouldFocus logic

* refactor(autocomplete): remove shouldFocus logic and set input focus when open

* chore(deps): bump dependencies

* chore(deps): fix react aria dependencies

* fix(autocomplete): move popover style width inside isOpen true block

* fix(autocomplete): focus back to trigger

* feat(changeset): add changeset

* chore(deps): bump react-aria dependencies

* refactor(autocomplete): revise comment

* refactor(dropdown): revise logSpy and trigger mockRestore

* refactor(popover): remove debug className

* fix(date-input): avoid setting isInvalid in useDateFieldState

* fix(autocomplete): use ComboBoxValidationValue

* feat(use-aria-menu): add deprecate message

* feat(changeset): add missing packages

* refactor(use-aria-menu): remove isLink since it is included in useLinkProps

* Update packages/hooks/use-aria-menu/src/use-menu-item.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2024-06-14 21:44:58 -03:00
Nozomi Hijikata be932c13fe fix(navbar): fixed the height of navbar menu (#1805)
* fix(navbar): fixed the height of navbar menu

* fix(navbar): refactored the css of navbar

* fix(navbar): fix redundant expression

* fix(navbar): fixed unnecessary changes

* fix(navbar): adjust viewport
2024-06-14 21:20:15 -03:00
chirokas 75d1223178 fix(table): table-column align prop (#2900) 2024-06-14 21:17:20 -03:00
Minsu b9bb06ff37 fix(utilities): resolve assignRef TypeScript ref assignment issue (#3098)
* fix(utilities): resolve assignRef TypeScript ref assignment issue

* chore(changeset): revise changeset message

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
2024-06-14 21:09:25 -03:00
chirokas 255c641f96 fix(autocomplete): controlled state logic (#2969)
* fix(autocomplete): autocomplete controlled state (#2955)

* chore(autocomplete): add changeset

* Update packages/components/autocomplete/__tests__/autocomplete.test.tsx

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
2024-06-14 21:08:09 -03:00
Christian Abele 0e4213ce25 Update regex-validation.ts (#3123)
* Update regex-validation.ts

Fix email regex

* Update email regex input.stories.tsx
2024-06-14 21:02:25 -03:00
Ryo Matsukawa df0126f93f refactor(date): updated errorMessage story and modified to import props (#3112)
* refactor(date): updated errorMessage story and modified to import props

* docs(date): add errorMessageFunction examples

* chore: add changeset

* fix: remove unnecessary props

* fix: typo
2024-06-14 21:00:11 -03:00
Ryo Matsukawa 3da81494c3 feat(date-picker): add support for DatePicker to apply styles to DateInput (#3146)
* feat(date-picker): add support for DatePicker to apply styles to DateInput

* chore: update changeset

* docs(date-picker): add dateInputClassNames props
2024-06-14 20:58:11 -03:00
աӄա dbb4b8ee56 fix(input): input display with hidden type (#3174)
* fix(input): input display with hidden type

* chore(input): add isHiddenType to dependency

* refactor(input): move the styles to theme and change hidden to data attr

* feat(theme): add isHiddenType to input

* chore(changeset): include theme package

* chore(input): revise input test

* fix(theme): remove isHiddenType from variants and use data-hidden prop instead

* fix(theme): remove isHiddenType from defaultVariants

* fix(input): remove isHiddenType passing to input
2024-06-14 20:56:52 -03:00
աӄա bea1bde667 chore(deps): bump @internationalized/date version (#3230) 2024-06-13 23:51:47 -03:00
աӄա 5b9e317a80 fix(use-aria-menu): link logic in useMenuItem (#3229) 2024-06-13 23:25:00 -03:00
աӄա 995041afc3 docs(tooltip): supplement correct style path (#3183)
* docs(tooltip): supplement correct style path

* chore(docs): move the note below import tabs
2024-06-13 23:23:44 -03:00
Ryo Matsukawa d8ceab3579 fix(tabs): set tab panel id correctly (#3246) 2024-06-13 23:07:34 -03:00
աӄա ecb93d05f5 feat(docs): add Replexica to sponsors (#3236) 2024-06-13 11:49:52 -03:00
աӄա a06422f373 fix(select): unset form value after unselecting an item (#3157)
* fix(select): set empty string instead of undefined for unsetting value

* feat(selet): should unset form value
2024-06-06 21:47:45 -03:00
աӄա 5c83e9ceaf fix(tabs): destroyInactiveTabPanel unmounts inactive tabs' content (#3164)
* fix(tabs): incorrect content in tab panel

* feat(tabs): revise destroyInactiveTabPanel test cases
2024-06-06 21:45:44 -03:00
աӄա a0d6a77efb fix(select): add missing data-invalid in select and add missing data attributes in docs (#3177)
* fix(select): add missing data-invalid attribute

* chore(docs): add missing data attributes for select base
2024-06-06 21:35:59 -03:00
Damien Leroy 6df27c6e63 fix(docs): fix typo in autocomplete documentation page (#3182) 2024-06-06 21:35:22 -03:00
աӄա 3500147d7f chore(checkbox): avoid passing non-DOM attributes to svg (#3199)
* chore(docs): avoid passing non-DOM attributes to svg

* chore(utilities): avoid passing non-DOM attributes to svg

* feat(changeset): add changeset
2024-06-06 13:06:36 -03:00
Junior Garcia eae28e4759 Merge branch 'main' of github.com:nextui-org/nextui into canary 2024-06-06 13:05:10 -03:00
winches 28dea9cb6c docs: installation update init description (#3201)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110)

* fix(theme): add missing pointer event after data loaded (#3126)

* fix(system): listbox href issue (experimental) (#3119)

* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element (#3111)

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps

* fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* ci(changesets): version packages (#3115)

* fix(pagination): missing animation (#3144)

* fix tsup domain (#3158)

* chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155)

* fix(autocomplete): maximum update depth exceeded in autocomplete (#3175)

* docs: installation update init description

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: EGOIST <0x142857@gmail.com>
2024-06-06 13:04:37 -03:00
աӄա 2069a7a9d0 fix(autocomplete): maximum update depth exceeded in autocomplete (#3175) 2024-06-04 09:19:17 -03:00
աӄա 6fef06c005 v.2.4.1 (#3129)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110)

* fix(theme): add missing pointer event after data loaded (#3126)

* fix(system): listbox href issue (experimental) (#3119)

* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element (#3111)

* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps

* fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>

* ci(changesets): version packages (#3115)

* fix(pagination): missing animation (#3144)

* fix tsup domain (#3158)

* chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155)

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: EGOIST <0x142857@gmail.com>
2024-06-01 17:36:40 -03:00
աӄա f3fdb7b666 chore(docs): remove destroyInactiveTabPanel from Tab due to merge conflict (#3155) 2024-06-01 17:36:24 -03:00
EGOIST d9327f9b21 fix tsup domain (#3158) 2024-06-01 10:10:48 -03:00
Junior Garcia be29da1097 chore(root): merge branch 'main' of github.com:nextui-org/nextui into canary 2024-05-31 12:17:18 -03:00
աӄա 68d1629e77 fix(pagination): missing animation (#3144) 2024-05-31 09:23:13 -03:00
github-actions[bot] 750b466221 ci(changesets): version packages (#3115) 2024-05-31 00:12:04 -03:00
Shrinidhi Upadhyaya 0c10581c24 fix(docs): removed unused import & corrected prop for disabled DatePicker (#3136)
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
2024-05-30 23:17:37 -03:00
աӄա a8d9ca03e1 fix(docs): move destroyInactiveTabPanel to Tabs prop (#3130) 2024-05-30 23:17:10 -03:00
աӄա f0008d070a chore: supplement validation behavior (#3106)
* chore(input): set validationBehavior to native

* chore(docs): revise validate content in input

* chore(input): set validationBehavior to native

* chore(docs): add Validation Behavior to breaking change

* chore(docs): revise content in cli

* chore(docs): fix typo

* chore(docs): update validate in other components

* chore(docs): update validate content

* chore(input): undo validationBehavior

* refactor(docs): revise validate content
2024-05-30 23:15:44 -03:00
աӄա cdbc6514f8 fix(avatar): avoid passing disableAnimation prop to a DOM element (#3111)
* fix(avatar): avoid passing `disableAnimation` prop to a DOM element

* refactor(avatar): use filterDOMProps approach

* chore(avatar): remove to type import

* chore(avatar): change to shouldFilterDOMProps
2024-05-30 23:14:41 -03:00
աӄա 0bfa5855c7 fix(docs): incorrect import path in date range picker (#3117) 2024-05-29 16:27:49 -03:00
աӄա 685995a125 fix(system): listbox href issue (experimental) (#3119)
* fix(system): @react-aria/utils

* feat(hooks): include routerLinkProps

* feat(changeset): add changeset

* chore(deps): bump @react-aria/utils to 3.24.1

* fix(hooks): missing arguments

* chore(deps): bump @react-types/link

* chore(link): bump @react-aria/link to 3.7.1

* chore(link): use @react-aria/link instead

* chore(changeset): revise changeset

* chore(hooks): undo use-aria-link changes

* chore(deps): undo use-aria-link changes

* chore(deps): bump `@react-aria/utils` to `3.24.1`

* chore(deps): bump `@react-types/shared`

* feat: add missing router.open parameters due to router change

* chore(changeset): add new line

* chore(deps): bump `@react-types/shared` to `3.23.1`
2024-05-29 16:27:30 -03:00
աӄա 43bef07180 fix(theme): add missing pointer event after data loaded (#3126) 2024-05-29 16:27:13 -03:00
Ryo Matsukawa 41d2eeb20b fix(radio): remove required attribute for Radio with validationBehavior="aria" (#3110) 2024-05-28 16:43:46 -03:00
Junior Garcia 67347d8713 v2.4.0 (#3101)
* chore(root): reat-aria packages updated (#2889)

* chore(storybook): common colors enabled (#2902)

* fix(range-calendar): hide only dates outside the month (#2906)

* fix(range-calendar): hide only dates outside the month #2890

* fix(range-calendar): corrected spelling mistake in changeset description

* fix(range-calendar): corrected capitalization in changeset description

* chore(changeset): patch @nextui-org/theme

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(date-picker): keep date picker style consistent for different variants (#2908)

* fix: add missing TableRowProps export (#2866)

* fix: add missing TableRowProps export

* feat(changeset): add changeset for PR2866

* chore(changeset): revise changeset message

---------

Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(input): correct label margin for RTL required inputs (#2781)

* fix(input): correct label margin for RTL required inputs

* fix(theme): add changeset fr theme

* docs(core): add storybook and canary release info (#2914)

* Cn utility refactor (#2915)

* refactor(core): cn utility adjusted and moved to the theme package

* chore(root): changeset

* fix(storybook): stories that used cn

* docs(date-picker): change to jsx instead (#2919)

* fix(switch): support uncontrolled switch in react-hook-form (#2924)

* feat(switch): add @nextui-org/use-safe-layout-effect

* chore(deps): add @nextui-org/use-safe-layout-effect

* fix(switch): react-hook-form uncontrolled switch component

* fix(switch): react-hook-form uncontrolled switch component

* feat(switch): add rect-hook-form in dev dep

* feat(switch): add WithReactHookFormTemplate

* refactor(root): react aria packages fixed (#2944)

* feat(docs): docs changes (#2868)

* feat(docs): add example how to set locale (#2867)

* docs(guide): add an explanation for the installation guide (#2769)

* docs(guide): add an explanation for the installation guide

* docs(guide): add an explanation for the cli guide

* docs(guide): add support for cli output

* fix: change sort priority - cmdk (#2873)

* docs: remove unsupported props in range calendar and date range picker (#2881)

* chore(calendar): remove showMonthAndYearPickers from range calendar story

* docs(date-range-picker): remove showMonthAndYearPickers info

* docs(range-calendar): remove unsupported props

* docs: refactor typing in form.ts (#2882)

* chore(docs): supplement errorMessage behaviour in input (#2892)

* refactor(docs): revise NextUI Provider structure

* chore(docs): add updated tag

---------

Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>

* fix(slider): missing marks when hideThumb is true & revise slider styles (#2883)

* chore(slider): include marks in hideThumb

* fix(slider): revise slider styles

* feat(changeset): add changeset

* feat(slider): add tests with marks and hideThumb

* feat(test): react hook form tests & stories (#2931)

* feat(input): add Input with React Hook Form tests

* refactor(input): add missing types

* feat(checkbox): add checkbox with React Hook Form tests

* feat(select): add react-hook-form to dev dep

* feat(select): add react hook form story

* feat(select): react hook form tests

* fix(select): incorrect button reference

* feat(deps): add react-hook-form to dev dep in autocomplete

* feat(autocomplete): react hook form story

* feat(autocomplete): react hook form tests

* fix(autocomplete): rollback wrapper type

* feat(switch): add react hook form tests

* refactor(stories): reorder stories items

* fix: update accordion item heading tag to be customizable (#2265)

* fix: update accordion item heading tag to be customizable

* Update .changeset/heavy-hairs-join.md

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* Update .changeset/heavy-hairs-join.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore(accordion): lint

* chore(changeset): add issue number

* feat(docs): add HeadingComponent prop

---------

Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>

* fix(theme): add pointer-events-none to skeleton base (#2972)

* feat(tabs): add `destroyInactiveTabPanel` prop for Tabs component (#2973)

* feat(tabs): add destroyInactiveTabPanel and set default to false

* feat(tabs): integrate with destroyInactiveTabPanel

* feat(theme): hidden inert tab panel

* feat(changeset): add changeset

* chore(changeset): add issue number

* feat(docs): add `destroyInactiveTabPanel` prop to tabs page

* chore(docs): set destroyInactiveTabPanel to true by default

* chore(tabs): set destroyInactiveTabPanel to true by default

* chore(tabs): revise destroyInactiveTabPanel logic

* feat(tabs): add tests for destroyInactiveTabPanel

* chore(tabs): change the default value of destroyInactiveTabPanel to true

* refactor: add support for disabling the animation globally (#2929)

* refactor: add support for disabling the animation globally

* chore(docs): disableAnimation removed from global provider

* feat(docs): nextui provider api updated, storybook preview adjusted

* chore(theme): button is scalable when disabled, tooltip animation improved

* fix(theme): remove origin-bottom from button (#2990)

* fix(skeleton): overflow issue in skeleton (#2986)

* fix(theme): set overflow visible after skeleton loaded

* feat(changeset): add changeset

* fix(table): v2 input/textarea don't allow spaces inside a table (#3020)

* fix(table): set onKeyDownCapture to undefined

* feat(changeset): add changeset

* fix(slider): calculate the correct value on mark click (#3017)

* fix(slider): calculate the correct value on mark click

* refactor(slider): remove the tests inside describe block

* feat(slider): add tests for thumb move on mark click

* refactor(slider): use val instead of pos

* fix(theme): revise input isInvalid styles (#3010)

* fix(theme): revise isInvalid input styles

* feat(changeset): add changeset

* feat(date-picker): add missing ref to input wrapper (#3011)

* fix(date-picker): add missing ref to input wrapper

* feat(changeset): add changeset

* fix(core): incorrect tailwind classnames (#3018)

* fix(dropdown): focus behaviour on press / enter keydown (#2970)

* fix(dropdown): set focus on the first item

* feat(dropdown): add keyboard interactions tests

* feat(changeset): add changeset

* fix(dropdown): use fireEvent.keyDown instead

* chore(deps): add @nextui-org/test-utils to dropdown

* refactor(dropdown): pass onKeyDown to menu trigger and don't hardcode autoFocus

* chore(dropdown): remove autoFocus

* fix(menu): pass userMenuProps to useTreeState and useAriaMenu and remove from getListProps

* chore(changeset): add menu package

* fix(component): update type definition to prevent primitive values as items (#2953)

* fix: update type definition to prevent primitive values as items

* fix: typecheck

* fix(select): onSelectionChange can handle number (#2937)

* fix: onSelectionChange type for dynamic items in Select component

* docs: remove unnecessary properties

* docs: update highlightedLines

* chore: add changeset

* fix(calendar): scrolling is hidden when changing the month (#2949)

* fix(calendar): scrolling is hidden when changing the month

* chore(changeset): correct package name

---------

Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix: make VisuallyHidden's element type as span when it's inside phrasing element (#3013)

* fix(checkbox): make VisuallyHidden's element type as span

* feat(changeset): add changeset

* fix(radio): make the VisuallyHidden element type as span

* fix(switch): make the VisuallyHidden element type as span

* fix(select): make the VisuallyHidden element type as span

* feat(changeset): replace changeset

* chore: fix formatting

* docs: sync nextui-cli  api (#3035)

* docs: sync nextui-cli  api

* docs: update

* chore: update routes.json with new path and set updated flag

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* feat: switch default validationBehavior to aria and allow switching via props (#2987)

* chore: add support validationBehavior aria

* chore: add validationBehavior to Provider

* chore: add autocomplete validation test

* chore: add checkbox validation test

* fix(input): require condition

* docs: add description of validationBehavior props

* chore: add support validationBehavior props for date components

* docs(dates): add description of validationBehavior props

* chore: add changeset

* chore: format

* chore: fix test

* fix: select validationBehavior is not support yet

* fix: select validationBehavior not supported yet

* chore(docs): validation behavior prop added to nextui-provider

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix: popover-based focus behaviour (#2854)

* fix(autocomplete): autocomplete focus behaviour

* feat(autocomplete): add test case for catching blur cases

* refactor(autocomplete): use isOpen instead

* feat(autocomplete): add "should focus when clicking autocomplete" test case

* feat(autocomplete): add should set the input after selection

* fix(autocomplete): remove shouldUseVirtualFocus

* fix(autocomplete): uncomment blur logic

* refactor(autocomplete): remove state as it is in getPopoverProps

* refactor(autocomplete): remove unnecessary blur

* refactor(select): remove unncessary props

* fix(popover): use domRef instead

* fix(popover): revise isNonModal and isDismissable

* fix(popover): use dialogRef back

* fix(popover): rollback

* fix(autocomplete): onFocus logic

* feat(popover): set disableFocusManagement to overlay

* feat(modal): set disableFocusManagement to overlay

* fix(autocomplete): set disableFocusManagement for autocomplete

* feat(popover): include disableFocusManagement prop

* refactor(autocomplete): revise type in selectorButton

* fix(autocomplete): revise focus logic

* feat(autocomplete): add internal focus state and add shouldCloseOnInteractOutside

* feat(autocomplete): handle selectedItem change

* feat(autocomplete): add clear button test

* feat(changeset): add changeset

* refactor(components): use the original order

* refactor(autocomplete): add more comments

* fix(autocomplete): revise focus behaviours

* refactor(autocomplete): rename to listbox

* chore(popover): remove disableFocusManagement from popover

* chore(autocomplete): remove disableFocusManagement from autocomplete

* chore(changeset): add issue number

* fix(popover): don't set default value to transformOrigin

* fix(autocomplete): revise shouldCloseOnInteractOutside logic

* feat(autocomplete): should close listbox by clicking another autocomplete

* fix(popover): add disableFocusManagement to overlay

* refactor(autocomplete): revise comments and refactor shouldCloseOnInteractOutside

* feat(changeset): add issue number

* fix(autocomplete): merge with selectorButtonProps.onClick

* refactor(autocomplete): remove extra line

* refactor(autocomplete): revise comment

* feat(select): add shouldCloseOnInteractOutside

* feat(dropdown): add shouldCloseOnInteractOutside

* feat(date-picker): add shouldCloseOnInteractOutside

* feat(changeset): add dropdown and date-picker

* fix(popover): revise shouldCloseOnInteractOutside

* feat(date-picker): integrate with ariaShouldCloseOnInteractOutside

* feat(select): integrate with ariaShouldCloseOnInteractOutside

* feat(dropdown): integrate with ariaShouldCloseOnInteractOutside

* feat(popover): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): ariaShouldCloseOnInteractOutside

* chore(deps): update pnpm-lock.yaml

* feat(autocomplete): integrate with ariaShouldCloseOnInteractOutside

* feat(aria-utils): handle setShouldFocus logic

* feat(changeset): add @nextui-org/aria-utils

* chore(autocomplete): put the test into correct group

* feat(select): should close listbox by clicking another select

* feat(dropdown): should close listbox by clicking another dropdown

* feat(popover): should close listbox by clicking another popover

* feat(date-picker): should close listbox by clicking another datepicker

* chore(changeset): add issue numbers and revise changeset message

* refactor(autocomplete): change to useRef instead

* refactor(autocomplete): change to useRef instead

* refactor(aria-utils): revise comments and format code

* chore(changeset): add issue number

* chore: take popoverProps.shouldCloseOnInteractOutside first

* refactor(autocomplete): remove unnecessary logic

* refactor(autocomplete): focus management logic

* fix(components): Fix 'Tap to click' behavior on macOS with Edge/Chrome for Accordion and Tab (#2725)

* fix(components): fix 'Tap to click' behavior on macOS

* Add change file for accordion, menu, and tabs

* Remove 'fix(components)' from the .changeset file

* fix(components): undo dropdown change now that it's no longer applicable

* fix(components): update changeset file now that we are no longer modifying the dropdown component

* fix(date-picker): corrected inert value for true condition (#3054)

* fix(date-picker): corrected inert value for true condition #3044

* refactor(calendar): add todo comment

* feat(changeset): add changeset

---------

Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* fix(hooks): resolve type error in onKeyDown event handler (#3064)

* fix(hooks): resolve type error in onKeyDown event handler

* chore(changeset): revise changeset

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* Update dependency array on setPage useCallback hook (#3029)

Changes:
Add the onChangeActivePage function to the dependency array of the setPage useCallback hook to ensure it always reflects the latest state.

Impact:
This fix ensures that the pagination component accurately reflects the current state when triggering onChangeActivePage.

* fix: error peerDep in pkg (#3014)

* fix: error peerDep in pkg

* docs: changeset

* Fix DatePicker Time Input (#2845)

* fix(date-picker): set `isCalendarHeaderExpanded` to `false` when DatePicker is closed

* fix(date-picker): calendar header controlled state on DatePicker

* chore(date-picker): update test

* chore(date-picker): remove unnecessary `async` in test

* Update packages/components/date-picker/__tests__/date-picker.test.tsx

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>
Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(date-picker): test

* fix(hooks): optimize useScrollPosition with useCallback and useRef (#3049)

* fix(hooks): optimize useScrollPosition with useCallback and useRef

* Update .changeset/lucky-cobras-jog.md

* Update packages/hooks/use-scroll-position/src/index.ts

* Update packages/hooks/use-scroll-position/src/index.ts

---------

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

* fix(select): placeholder text display for controlled component (#3081)

* fix: return placeholder when selectedItems is empty

* chore: add test and changeset

* chore(docs): v2.4.0 (#3084)

* chore(docs): v2.4.0

* chore(docs): v2.4.0 blog

* chore(docs): revise typos based on coderabbitai

* chore(docs): adjust navbar

---------

Co-authored-by: WK Wong <wingkwong.code@gmail.com>

* chore(changese): update @nextui-org/react dependency to minor version

* docs: update cli docs (#3096)

* ci(changesets): version packages (#2903)

Co-authored-by: Junior Garcia <jrgarciadev@gmail.com>

---------

Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: shrinidhi.upadhyaya <shrinidhi.upadhyaya@stud.uni-bamberg.de>
Co-authored-by: աɨռɢӄաօռɢ <wingkwong.code@gmail.com>
Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de>
Co-authored-by: Mohammad Reza Badri <85818966+mrbadri@users.noreply.github.com>
Co-authored-by: Nozomi-Hijikata <116155762+Nozomi-Hijikata@users.noreply.github.com>
Co-authored-by: HaRuki <soccer_haruki15@me.com>
Co-authored-by: Kaben <carnoxen@gmail.com>
Co-authored-by: Shawn Dong <dsknight@live.com.au>
Co-authored-by: Shawn Dong <shawn.dong@flybuys.com.au>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Poli Sour <57824881+novsource@users.noreply.github.com>
Co-authored-by: Poli Sour <polisour.work@gmail.com>
Co-authored-by: Artem Pitikin <git@kosmotema.dev>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Eric Abreu <ericfabreu@gmail.com>
Co-authored-by: Minsu <52266597+Gaic4o@users.noreply.github.com>
Co-authored-by: Jesus Perdomo Lampignano <38929969+jesuzon@users.noreply.github.com>
Co-authored-by: chirokas <157580465+chirokas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-27 19:51:30 -03:00
405 changed files with 24554 additions and 14778 deletions
+2 -1
View File
@@ -87,6 +87,7 @@
"prev": ["const", "let", "var"],
"next": ["const", "let", "var"]
}
]
],
"import/consistent-type-specifier-style": ["error", "prefer-top-level"]
}
}
+5 -3
View File
@@ -28,7 +28,9 @@ body:
description: |
Please provide the version of NextUI you are using.
You can find the version number in the package.json file.
placeholder: ex. 2.0.10
For global installation, please state the version only. (e.g. 2.4.2)
For individual installation, please state the package name as well. (e.g. @nextui-org/button@2.0.34)
placeholder: ex. 2.4.2
validations:
required: true
- type: textarea
@@ -103,6 +105,6 @@ body:
- "Safari"
- "Edge"
- "Opera"
- "Other (add additonal context)"
- "Other (add additional context)"
validations:
required: true
required: true
+2 -4
View File
@@ -5,12 +5,10 @@ runs:
using: composite
steps:
- name: Install dependencies
uses: pnpm/action-setup@v2.2.4
with:
version: 8
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
registry-url: "https://registry.npmjs.org"
+5 -5
View File
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install
uses: ./.github/common-actions/install
@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install
uses: ./.github/common-actions/install
@@ -37,7 +37,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install
uses: ./.github/common-actions/install
@@ -50,7 +50,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install
uses: ./.github/common-actions/install
@@ -63,7 +63,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install
uses: ./.github/common-actions/install
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install
uses: ./.github/common-actions/install
+1 -1
View File
@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure all history is fetched
+1 -1
View File
@@ -1 +1 @@
16.x
v20.16.0
+8 -1
View File
@@ -3,5 +3,12 @@
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
},
"tailwindCSS.experimental.configFile": {
"packages/storybook/tailwind.config.js": ["packages/core/theme/**/*", "packages/components/**/*"],
"apps/docs/tailwind.config.js": "apps/docs/**/*"
},
"tailwindCSS.experimental.classRegex": [
["([\"'`][^\"'`]*.*?[\"'`])", "[\"'`]([^\"'`]*).*?[\"'`]"]
]
}
+2 -2
View File
@@ -14,7 +14,7 @@ Hello!, I am very excited that you are interested in contributing with Next UI.
### Tooling
- [PNPM](https://pnpm.io/) to manage packages and dependencies
- [Tsup](https://tsup.egoist.sh/) to bundle packages
- [Tsup](https://tsup.egoist.dev/) to bundle packages
- [Storybook](https://storybook.js.org/) for rapid UI component development and
testing
- [Testing Library](https://testing-library.com/) for testing components and
@@ -196,7 +196,7 @@ pnpm build
npm run build
```
> Note: ensure your version of Node is 16 or higher to run scripts
> Note: ensure that you have at least Node.js 20.16.0 as well as pnpm 9.6.0 or higher installed on your machine to run the scripts
6. Send your pull request:
+20
View File
@@ -308,5 +308,25 @@
"twitter": null,
"github": null,
"website": "https://encur.me/"
},
{
"MemberId": 571230,
"createdAt": "2024-06-01 18:47",
"type": "ORGANIZATION",
"role": "BACKER",
"tier": "Gold Sponsor 🥇",
"isActive": true,
"totalAmountDonated": 100,
"currency": "USD",
"lastTransactionAt": "2024-06-01 18:47",
"lastTransactionAmount": 100,
"profile": "https://opencollective.com/coderabbit",
"name": "CodeRabbit",
"company": null,
"description": "CodeRabbit is an AI-driven context-aware code reviewer that provides line-by-line feedback and smart chat. ",
"image": "/sponsors/571230.jpg",
"twitter": null,
"github": null,
"website": "https://coderabbit.ai"
}
]
+4
View File
@@ -1,5 +1,7 @@
import {Image} from "@nextui-org/react";
import {ScriptProviders} from "@/components/scripts/script-providers";
interface DocsLayoutProps {
children: React.ReactNode;
}
@@ -22,6 +24,8 @@ export default function DocsLayout({children}: DocsLayoutProps) {
>
<Image removeWrapper alt="docs right background" src="/gradients/docs-right.png" />
</div>
<ScriptProviders />
</>
);
}
+3
View File
@@ -2,6 +2,7 @@ import {Image} from "@nextui-org/react";
import manifest from "@/config/routes.json";
import {DocsSidebar} from "@/components/docs/sidebar";
import {ScriptProviders} from "@/components/scripts/script-providers";
interface DocsLayoutProps {
children: React.ReactNode;
@@ -30,6 +31,8 @@ export default function DocsLayout({children}: DocsLayoutProps) {
>
<Image removeWrapper alt="docs right background" src="/gradients/docs-right.png" />
</div>
<ScriptProviders />
</>
);
}
@@ -53,7 +53,7 @@ export default function Page() {
// Specify how each of the Autocomplete values should change when an
// option is selected from the list box
const onSelectionChange = (key: React.Key) => {
const onSelectionChange = (key: React.Key | null) => {
setFieldState((prevState) => {
let selectedItem = prevState.items.find((option) => option.value === key);
+1 -1
View File
@@ -246,7 +246,7 @@ const usersData = [
age: "29",
avatar: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/3.png",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -112,7 +112,7 @@ const users = [
age: "29",
avatar: "https://i.pravatar.cc/150?u=a042581f4e29026024d",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -112,7 +112,7 @@ const users = [
age: "29",
avatar: "https://i.pravatar.cc/150?u=a042581f4e29026024d",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
+3
View File
@@ -2,6 +2,7 @@ import {Image} from "@nextui-org/react";
import {Blockquote} from "@/components/docs/components/blockquote";
import {FigmaButton} from "@/components/figma-button";
import {ScriptProviders} from "@/components/scripts/script-providers";
export default function FigmaPage() {
return (
@@ -43,6 +44,8 @@ export default function FigmaPage() {
>
<Image removeWrapper alt="docs right background" src="/gradients/docs-right.png" />
</div>
<ScriptProviders />
</>
);
}
-2
View File
@@ -12,7 +12,6 @@ import {fontSans} from "@/config/fonts";
import {Navbar} from "@/components/navbar";
import {Footer} from "@/components/footer";
import {ProBanner} from "@/components/pro-banner";
import {ScriptProviders} from "@/components/scripts/script-providers";
export const metadata: Metadata = {
title: {
@@ -77,7 +76,6 @@ export default function RootLayout({children}: {children: React.ReactNode}) {
</div>
<Cmdk />
</Providers>
<ScriptProviders />
</body>
</html>
);
@@ -39,7 +39,7 @@ export type CodeBlockProps = PreProps & {
* recursively get all text nodes as an array for a given element
*/
function getTextNodes(node: any): any[] {
let childTextNodes = [];
let childTextNodes: React.ReactNode[] = [];
if (!node.hasChildNodes()) return [];
@@ -40,7 +40,6 @@ interface CodeDemoProps extends UseCodeDemoProps, WindowResizerProps {
displayMode?: "always" | "visible";
isGradientBox?: boolean;
gradientColor?: GradientBoxProps["color"];
defaultExpanded?: boolean;
previewHeight?: string | number;
overflow?: "auto" | "visible" | "hidden";
className?: string;
@@ -59,9 +58,8 @@ export const CodeDemo: React.FC<CodeDemoProps> = ({
isPreviewCentered = false,
// when false .js files will be used
typescriptStrict = false,
showOpenInCodeSandbox,
showOpenInCodeSandbox = true,
isGradientBox = false,
defaultExpanded = false,
previewHeight = "auto",
overflow = "visible",
displayMode = "always",
@@ -138,11 +136,10 @@ export const CodeDemo: React.FC<CodeDemoProps> = ({
const content = (
<DynamicSandpack
defaultExpanded={defaultExpanded}
files={files}
highlightedLines={highlightedLines}
showEditor={showEditor}
showOpenInCodeSandbox={showOpenInCodeSandbox || showPreview}
showOpenInCodeSandbox={showOpenInCodeSandbox}
showPreview={showSandpackPreview}
typescriptStrict={typescriptStrict}
/>
@@ -155,7 +152,6 @@ export const CodeDemo: React.FC<CodeDemoProps> = ({
isInView,
files,
highlightedLines,
defaultExpanded,
showPreview,
showSandpackPreview,
showOpenInCodeSandbox,
@@ -97,9 +97,9 @@ export const PackageManagers = ({
})}
</Tabs>
{showGlobalInstallWarning && (
<Blockquote className="my-2">
No need to install this package if <Code>@nextui-org/react</Code> is already installed
globally.
<Blockquote className="my-2" color="warning">
The above command is for individual installation only. You may skip this step if{" "}
<Code>@nextui-org/react</Code> is already installed globally.
</Blockquote>
)}
</>
+3 -5
View File
@@ -1,12 +1,9 @@
"use client";
import dynamic from "next/dynamic";
import {usePathname} from "next/navigation";
import {getCurrentYear} from "@/utils/time";
const VercelCallout = dynamic(() => import("./vercel-callout").then((mod) => mod.VercelCallout));
export const Footer = () => {
const pathname = usePathname();
@@ -17,8 +14,9 @@ export const Footer = () => {
return (
<footer className="container mx-auto max-w-7xl pb-12 px-12">
<div className="flex flex-col justify-center items-center gap-1">
<p className="text-sm text-default-400">© {getCurrentYear()} NextUI Inc.</p>
<VercelCallout />
<p className="text-sm text-default-400">
© {getCurrentYear()} NextUI Inc. All rights reserved.
</p>
</div>
</footer>
);
-18
View File
@@ -98,23 +98,6 @@ const NextJsIcon: React.FC<IconSvgProps> = ({size = 24, width, height, ...props}
</svg>
);
};
const VercelIcon: React.FC<IconSvgProps> = ({width, height = 44, ...props}) => {
return (
<svg
fill="none"
height={height}
viewBox="0 0 4438 1000"
width={width}
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="M2223.75 250C2051.25 250 1926.87 362.5 1926.87 531.25C1926.87 700 2066.72 812.5 2239.38 812.5C2343.59 812.5 2435.47 771.25 2492.34 701.719L2372.81 632.656C2341.25 667.188 2293.28 687.344 2239.38 687.344C2164.53 687.344 2100.94 648.281 2077.34 585.781H2515.16C2518.59 568.281 2520.63 550.156 2520.63 531.094C2520.63 362.5 2396.41 250 2223.75 250ZM2076.09 476.562C2095.62 414.219 2149.06 375 2223.75 375C2298.59 375 2352.03 414.219 2371.41 476.562H2076.09ZM2040.78 78.125L1607.81 828.125L1174.69 78.125H1337.03L1607.66 546.875L1878.28 78.125H2040.78ZM577.344 0L1154.69 1000H0L577.344 0ZM3148.75 531.25C3148.75 625 3210 687.5 3305 687.5C3369.38 687.5 3417.66 658.281 3442.5 610.625L3562.5 679.844C3512.81 762.656 3419.69 812.5 3305 812.5C3132.34 812.5 3008.13 700 3008.13 531.25C3008.13 362.5 3132.5 250 3305 250C3419.69 250 3512.66 299.844 3562.5 382.656L3442.5 451.875C3417.66 404.219 3369.38 375 3305 375C3210.16 375 3148.75 437.5 3148.75 531.25ZM4437.5 78.125V796.875H4296.88V78.125H4437.5ZM3906.25 250C3733.75 250 3609.38 362.5 3609.38 531.25C3609.38 700 3749.38 812.5 3921.88 812.5C4026.09 812.5 4117.97 771.25 4174.84 701.719L4055.31 632.656C4023.75 667.188 3975.78 687.344 3921.88 687.344C3847.03 687.344 3783.44 648.281 3759.84 585.781H4197.66C4201.09 568.281 4203.12 550.156 4203.12 531.094C4203.12 362.5 4078.91 250 3906.25 250ZM3758.59 476.562C3778.13 414.219 3831.41 375 3906.25 375C3981.09 375 4034.53 414.219 4053.91 476.562H3758.59ZM2961.25 265.625V417.031C2945.63 412.5 2929.06 409.375 2911.25 409.375C2820.47 409.375 2755 471.875 2755 565.625V796.875H2614.38V265.625H2755V409.375C2755 330 2847.34 265.625 2961.25 265.625Z"
fill="currentColor"
/>
</svg>
);
};
const NpmIcon: React.FC<IconSvgProps> = ({width = "1em", height = "1em", ...props}) => {
return (
@@ -477,7 +460,6 @@ export {
OpenCollectiveIcon,
PatreonIcon,
NextJsIcon,
VercelIcon,
NpmIcon,
NpmSmallIcon,
PnpmIcon,
File diff suppressed because one or more lines are too long
-1
View File
@@ -3,7 +3,6 @@ export * from "./theme-switch";
export * from "./looper-bg";
export * from "./code-window";
export * from "./gradient-box";
export * from "./vercel-callout";
export * from "./copy-button";
export * from "./demo-code-modal";
export * from "./mdx-components";
+14 -8
View File
@@ -7,7 +7,6 @@ import {
Link as NextUILink,
Dropdown,
DropdownSection,
DropdownTrigger,
DropdownMenu,
DropdownItem,
Tooltip,
@@ -22,7 +21,7 @@ import {
} from "@nextui-org/shared-icons";
import Link from "next/link";
import dynamic from "next/dynamic";
import {useEffect, useRef, useState} from "react";
import {Fragment, useEffect, useRef, useState} from "react";
import {FeaturesGrid} from "./features-grid";
@@ -79,6 +78,8 @@ export const A11yOtb = () => {
const ref = useRef<any>(null);
const triggerRef = useRef<HTMLButtonElement>(null);
const isMobile = useIsMobile();
const isInView = useInView(ref, {
@@ -155,6 +156,15 @@ export const A11yOtb = () => {
<InfoBoldIcon className="rotate-180" />
</Button>
</Tooltip>
<Button
ref={triggerRef}
className="bg-success-50"
color="success"
variant="flat"
onPress={() => setIsDropdownOpen((prevOpenState) => !prevOpenState)}
>
{isMobile ? "Click me" : "Actions"}
</Button>
{ref.current && (
<Dropdown
className="shadow-xl"
@@ -164,13 +174,9 @@ export const A11yOtb = () => {
portalContainer={ref.current}
shouldBlockScroll={false}
shouldFlip={isMobile}
onOpenChange={(open) => setIsDropdownOpen(open)}
triggerRef={triggerRef}
>
<DropdownTrigger>
<Button className="bg-success-50" color="success" variant="flat">
{isMobile ? "Click me" : "Actions"}
</Button>
</DropdownTrigger>
<Fragment />
<DropdownMenu
aria-label="Actions"
closeOnSelect={true}
@@ -41,7 +41,7 @@ export const shopCartStyles = tv({
"!ease-soft-spring",
"!duration-300",
],
contentWrapper: "flex flex-col justify-center transition-all h-full h-[200px]",
contentWrapper: "flex flex-col justify-center transition-all h-full min-h-[200px]",
title: ["relative", "w-full", "flex-none", "text-xl", "font-semibold", "text-foreground"],
description: ["my-2", "w-full", "text-base", "text-default-500"],
price: "relative text-lg font-semibold text-foreground",
@@ -50,7 +50,7 @@ export const FloatingComponents: React.FC<{}> = () => {
/>
<Input
className="absolute -top-[130px] -right-[120px] animate-[levitate_10s_ease_infinite] w-[200px]"
className="absolute -top-[60px] -right-[80px] animate-[levitate_10s_ease_infinite] w-[200px]"
color="secondary"
defaultValue="NextUI"
label="Input"
@@ -61,13 +61,13 @@ export const FloatingComponents: React.FC<{}> = () => {
<Card
isFooterBlurred
className="absolute -top-[260px] right-[100px] h-[120px] animate-[levitate_12s_ease_infinite_1s] z-0 max-w-fit"
className="absolute -top-[270px] right-[100px] h-[120px] animate-[levitate_12s_ease_infinite_1s] z-0 max-w-fit"
>
<Image
alt="Professional camera"
as={NextImage}
className="object-cover -translate-y-12 h-[100%]"
height={120}
height={180}
src="/images/card-example-6.webp"
width={120}
/>
@@ -79,10 +79,10 @@ export const FloatingComponents: React.FC<{}> = () => {
<FloatingTabs />
<UserTwitterCard className="absolute left-[80px] -top-[80px] animate-[levitate_16s_ease_infinite] border-none" />
<UserTwitterCard className="absolute left-[30px] -top-[80px] animate-[levitate_16s_ease_infinite] border-none" />
<Card
className="absolute right-[110px] -top-[60px] animate-[levitate_18s_ease_infinite] z-10 max-w-fit border-none"
className="absolute right-[150px] -top-[50px] animate-[levitate_18s_ease_infinite] z-10 max-w-fit border-none"
shadow="lg"
>
<CardBody>
@@ -90,7 +90,7 @@ export const FloatingComponents: React.FC<{}> = () => {
</CardBody>
</Card>
<div className="absolute z-10 -top-[40px] -right-[230px] animate-[levitate_14s_ease_infinite_1s]">
<div className="absolute z-10 -top-[120px] -right-[90px] animate-[levitate_14s_ease_infinite_1s]">
<Pagination
isCompact
showControls
+1 -1
View File
@@ -113,7 +113,7 @@ export const Hero = () => {
});
}}
>
Github
GitHub
</Button>
</div>
</div>
+11 -7
View File
@@ -1,23 +1,27 @@
import {Button, Link} from "@nextui-org/react";
import {sectionWrapper} from "@/components/primitives";
import {Story2DesignLogo} from "@/components/icons/sponsors";
import {Story2DesignLogo, CodeRabbitLogo, ScrumbuissLogo} from "@/components/icons/sponsors";
import {HeartFilledIcon} from "@/components/icons";
import {VercelIcon} from "@/components/icons/social";
import {siteConfig} from "@/config/site";
import {Sponsor, SponsorItem} from "@/components/marketing/sponsor-item";
const sponsors: Sponsor[] = [
{
name: "Vercel",
href: "https://www.vercel.com?utm_source=nextui&utm_marketing=oss",
logo: <VercelIcon className="text-black dark:text-white" height={24} />,
},
{
name: "story.to.design",
href: "https://story.to.design?utm_source=nextui&utm_marketing=partnership",
logo: <Story2DesignLogo className="pt-1" />,
},
{
name: "CodeRabbit",
href: "https://coderabbit.ai/?utm_source=nextui&utm_marketing=oss",
logo: <CodeRabbitLogo />,
},
{
name: "Scrumbuiss",
href: "https://www.scrumbuiss.com/?utm_source=nextui&utm_marketing=oss",
logo: <ScrumbuissLogo />,
},
];
export const Sponsors = () => {
+2 -2
View File
@@ -209,8 +209,8 @@ export const Navbar: FC<NavbarProps> = ({children, routes, mobileRoutes = [], sl
className={navLinkClasses}
color="foreground"
data-active={includes(pathname, "components")}
href="/docs/components/avatar"
onClick={() => handlePressNavbarItem("Components", "/docs/components/avatar")}
href="/docs/components/accordion"
onClick={() => handlePressNavbarItem("Components", "/docs/components/accordion")}
>
Components
</NextLink>
+6 -69
View File
@@ -2,9 +2,6 @@ import type {SandpackInitMode} from "@codesandbox/sandpack-react";
import * as React from "react";
import {FileTabs, useSandpack, useActiveCode, SandpackStack} from "@codesandbox/sandpack-react";
import {Button} from "@nextui-org/react";
import scrollIntoView from "scroll-into-view-if-needed";
import {clsx} from "@nextui-org/shared-utils";
import {Language} from "prism-react-renderer";
import {HighlightedLines} from "./types";
@@ -33,83 +30,42 @@ export interface CodeViewerProps {
containerRef?: React.RefObject<HTMLDivElement>;
}
const INITIAL_HEIGHT = "200px";
export const SandpackCodeViewer = React.forwardRef<any, CodeViewerProps>(
({showTabs, code: propCode, defaultExpanded = false, highlightedLines, containerRef}, ref) => {
({showTabs, code: propCode, highlightedLines, containerRef}, ref) => {
const {sandpack} = useSandpack();
const {code} = useActiveCode();
const {activeFile} = sandpack;
const [isExpanded, setIsExpanded] = React.useState(defaultExpanded);
// const id = React.useId();
// hack to make sure we re-render the code editor and change current file
// TODO: open an issue on sandpack-react
// const [internalKey, setInternalKey] = React.useState(() => id);
const lineCountRef = React.useRef<{[key: string]: number}>({});
if (!lineCountRef.current[activeFile]) {
lineCountRef.current[activeFile] = code.split("\n").length;
}
const shouldShowTabs = showTabs ?? sandpack.visibleFilesFromProps.length > 1;
const lineCount = lineCountRef.current[activeFile];
const isExpandable = lineCount > 7 || isExpanded;
const fileExt = activeFile.split(".").pop() as Language;
// const isAppFile = activeFile.includes("App");
React.useEffect(() => {
if (containerRef && containerRef?.current !== null && isExpandable) {
containerRef.current.style.height = INITIAL_HEIGHT;
}
}, [containerRef]);
// React.useEffect(() => {
// setInternalKey(getId());
// }, [propCode, code]);
React.useEffect(() => {
if (defaultExpanded && containerRef && containerRef?.current !== null) {
const container = containerRef?.current;
if (containerRef && containerRef.current !== null) {
const container = containerRef.current;
container.style.height = "auto";
}
}, [defaultExpanded]);
const handleExpand = () => {
const nextIsExpanded = !isExpanded;
setIsExpanded(nextIsExpanded);
if (containerRef && containerRef?.current !== null) {
const container = containerRef?.current;
if (nextIsExpanded) {
container.style.height = "auto";
} else {
container.style.height = INITIAL_HEIGHT;
scrollIntoView(container, {
behavior: "smooth",
scrollMode: "if-needed",
block: "center",
});
}
}
};
}, []);
return (
<>
<div className="h-full">
<SandpackStack>
{shouldShowTabs ? <FileTabs /> : null}
<div
className={clsx("sp-code-viewer max-h-[600px] overflow-y-scroll", {
"is-expanded": isExpanded,
})}
>
<div className="sp-code-viewer max-h-[600px] overflow-y-scroll">
{/*
* Disabled in favor of Codeblock due to performance issues & font size on ios
*
@@ -127,7 +83,7 @@ export const SandpackCodeViewer = React.forwardRef<any, CodeViewerProps>(
/> */}
<Codeblock
ref={ref}
className={isExpandable ? "pb-16" : "pb-2"}
className="pb-2"
codeString={propCode || code}
language={fileExt}
metastring={highlightedLines && `{${highlightedLines}}`}
@@ -135,25 +91,6 @@ export const SandpackCodeViewer = React.forwardRef<any, CodeViewerProps>(
</div>
</SandpackStack>
</div>
{isExpandable && (
<div
className={clsx(
"w-full absolute z-10 py-1 px-4 flex items-center justify-center bg-gradient-to-t from-code-background to-code-background/10 dark:to-code-background/50",
{"h-10 bottom-0 pb-2": isExpanded},
{"h-full inset-0": !isExpanded},
)}
>
<Button
className="bg-[#2a2838] shadow-md font-sans dark:bg-zinc-800 text-zinc-300 dark:text-zinc-400 hover:!text-zinc-200"
radius="full"
size="sm"
variant="flat"
onClick={handleExpand}
>
{isExpanded ? "Show less" : "Show more"}
</Button>
</div>
)}
</>
);
},
@@ -17,7 +17,6 @@ export interface SandpackProps extends UseSandpackProps {
showEditor?: boolean;
showCopyCode?: boolean;
showReportBug?: boolean;
defaultExpanded?: boolean;
showOpenInCodeSandbox?: boolean;
children?: React.ReactNode;
}
@@ -29,7 +28,6 @@ export const Sandpack: FC<SandpackProps> = ({
typescriptStrict = false,
showPreview = false,
showEditor = true,
defaultExpanded = false,
showOpenInCodeSandbox = true,
showReportBug = true,
showCopyCode = true,
@@ -66,7 +64,6 @@ export const Sandpack: FC<SandpackProps> = ({
<SandpackCodeViewer
containerRef={editorContainerRef}
decorators={decorators}
defaultExpanded={defaultExpanded}
highlightedLines={highlightedLines}
showTabs={showTabs}
/>
@@ -100,13 +100,17 @@ export const useSandpack = ({
let fileContent = files[key] as string;
// Check if the file content includes 'React' import statements, if not, add it
if (!fileContent.includes("from 'react'") && !fileContent.includes('from "react"')) {
if (
fileContent.includes("React.") &&
!fileContent.includes("from 'react'") &&
!fileContent.includes('from "react"')
) {
fileContent = `${importReact}\n${fileContent}\n`;
}
// Check if file content includes any other dependencies, if yes, add it to dependencies
const importRegex = /import .* from ["'](.*)["']/g;
let match;
let match: RegExpExecArray | null;
while ((match = importRegex.exec(fileContent)) !== null) {
const dependencyName = match[1];
+1 -1
View File
@@ -41,7 +41,7 @@ export const SonarPulse: FC<SonarPulseProps> = ({
}, [circlesCount, color]);
const renderCircles = useMemo(() => {
const circles = [];
const circles: React.ReactNode[] = [];
for (let i = 1; i < circlesCount; i++) {
circles.push(
-27
View File
@@ -1,27 +0,0 @@
"use client";
import React from "react";
import {Link} from "@nextui-org/react";
import {VercelIcon} from "@/components/icons";
import {trackEvent} from "@/utils/va";
export const VercelCallout: React.FC<unknown> = () => {
return (
<Link
isExternal
className="flex justify-end items-center gap-2 text-foreground"
href="https://www.vercel.com?utm_source=nextui&utm_marketing=oss"
onClick={() => {
trackEvent("VercelCallout", {
name: "vercel callout",
action: "click",
category: "footer",
});
}}
>
<p className="font-normal">Deployed on</p>
<VercelIcon className="text-black dark:text-white" height={18} />
</Link>
);
};
+61 -59
View File
@@ -132,12 +132,6 @@
"keywords": "interface elements, interactive components, UI components, widgets",
"defaultOpen": true,
"routes": [
{
"key": "avatar",
"title": "Avatar",
"keywords": "avatar, profile picture, user representation, identity",
"path": "/docs/components/avatar.mdx"
},
{
"key": "accordion",
"title": "Accordion",
@@ -150,6 +144,12 @@
"keywords": "autocomplete, auto suggest, search, typeahead",
"path": "/docs/components/autocomplete.mdx"
},
{
"key": "avatar",
"title": "Avatar",
"keywords": "avatar, profile picture, user representation, identity",
"path": "/docs/components/avatar.mdx"
},
{
"key": "badge",
"title": "Badge",
@@ -157,6 +157,12 @@
"path": "/docs/components/badge.mdx",
"updated": true
},
{
"key": "breadcrumbs",
"title": "Breadcrumbs",
"keywords": "breadcrumbs, navigation, path, trail, location",
"path": "/docs/components/breadcrumbs.mdx"
},
{
"key": "button",
"title": "Button",
@@ -164,10 +170,11 @@
"path": "/docs/components/button.mdx"
},
{
"key": "breadcrumbs",
"title": "Breadcrumbs",
"keywords": "breadcrumbs, navigation, path, trail, location",
"path": "/docs/components/breadcrumbs.mdx"
"key": "calendar",
"title": "Calendar",
"keywords": "calendar, date picker, month picker, year picker",
"path": "/docs/components/calendar.mdx",
"newPost": true
},
{
"key": "card",
@@ -179,7 +186,8 @@
"key": "checkbox",
"title": "Checkbox",
"keywords": "checkbox, binary choice, selection control, toggle",
"path": "/docs/components/checkbox.mdx"
"path": "/docs/components/checkbox.mdx",
"updated": true
},
{
"key": "checkbox-group",
@@ -193,32 +201,6 @@
"keywords": "chip, tag, label, small actionable entity",
"path": "/docs/components/chip.mdx"
},
{
"key": "code",
"title": "Code",
"keywords": "code, code snippet, inline code, coding",
"path": "/docs/components/code.mdx"
},
{
"key": "input",
"title": "Input",
"keywords": "input, text box, form field, data entry",
"path": "/docs/components/input.mdx"
},
{
"key": "date-input",
"title": "Date Input",
"keywords": "date-input, time, input, timezone",
"path": "/docs/components/date-input.mdx",
"newPost": true
},
{
"key": "time-input",
"title": "Time Input",
"keywords": "timeinput, time, input, timezone",
"path": "/docs/components/time-input.mdx",
"newPost": true
},
{
"key": "circular-progress",
"title": "Circular Progress",
@@ -226,17 +208,16 @@
"path": "/docs/components/circular-progress.mdx"
},
{
"key": "calendar",
"title": "Calendar",
"keywords": "calendar, date picker, month picker, year picker",
"path": "/docs/components/calendar.mdx",
"newPost": true
"key": "code",
"title": "Code",
"keywords": "code, code snippet, inline code, coding",
"path": "/docs/components/code.mdx"
},
{
"key": "range-calendar",
"title": "Range Calendar",
"keywords": "range calendar, date picker, month picker, year picker",
"path": "/docs/components/range-calendar.mdx",
"key": "date-input",
"title": "Date Input",
"keywords": "date-input, time, input, timezone",
"path": "/docs/components/date-input.mdx",
"newPost": true
},
{
@@ -271,6 +252,12 @@
"keywords": "image, media, picture, photo, graphic display",
"path": "/docs/components/image.mdx"
},
{
"key": "input",
"title": "Input",
"keywords": "input, text box, form field, data entry",
"path": "/docs/components/input.mdx"
},
{
"key": "kbd",
"title": "Kbd",
@@ -325,6 +312,19 @@
"keywords": "radio group, selection set, option selection, exclusive choices",
"path": "/docs/components/radio-group.mdx"
},
{
"key": "range-calendar",
"title": "Range Calendar",
"keywords": "range calendar, date picker, month picker, year picker",
"path": "/docs/components/range-calendar.mdx",
"newPost": true
},
{
"key": "scroll-shadow",
"title": "Scroll Shadow",
"keywords": "scroll shadow, scroll indicator, scroll bar, scroll position",
"path": "/docs/components/scroll-shadow.mdx"
},
{
"key": "select",
"title": "Select",
@@ -338,18 +338,18 @@
"path": "/docs/components/skeleton.mdx",
"updated": true
},
{
"key": "slider",
"title": "Slider",
"keywords": "slider, range input, value selector, sliding control",
"path": "/docs/components/slider.mdx"
},
{
"key": "snippet",
"title": "Snippet",
"keywords": "snippet, code block, programming, code example",
"path": "/docs/components/snippet.mdx"
},
{
"key": "scroll-shadow",
"title": "Scroll Shadow",
"keywords": "scroll shadow, scroll indicator, scroll bar, scroll position",
"path": "/docs/components/scroll-shadow.mdx"
},
{
"key": "spacer",
"title": "Spacer",
@@ -368,12 +368,6 @@
"keywords": "switch, toggle, binary input, on/off control",
"path": "/docs/components/switch.mdx"
},
{
"key": "slider",
"title": "Slider",
"keywords": "slider, range input, value selector, sliding control",
"path": "/docs/components/slider.mdx"
},
{
"key": "table",
"title": "Table",
@@ -393,11 +387,19 @@
"keywords": "textarea, multi-line text input, large text field, form control",
"path": "/docs/components/textarea.mdx"
},
{
"key": "time-input",
"title": "Time Input",
"keywords": "timeinput, time, input, timezone",
"path": "/docs/components/time-input.mdx",
"newPost": true
},
{
"key": "tooltip",
"title": "Tooltip",
"keywords": "tooltip, hint, descriptive message, hover info",
"path": "/docs/components/tooltip.mdx"
"path": "/docs/components/tooltip.mdx",
"updated": true
},
{
"key": "user",
+6 -1
View File
@@ -60,7 +60,11 @@ into React Server Components issues.
NextUI v2.0 comes with a TailwindCSS plugin that enables the customization and addition of default themes.
This plugin allows you to customize colors and layouts tokens that are used by NextUI components.
```js {8,13-14}
<Blockquote color="primary">
**Note**: If you are using pnpm and monorepo architecture, please make sure you are pointing to the ROOT `node_modules`
</Blockquote>
```js {9,14-15}
// tailwind.config.js
const {nextui} = require("@nextui-org/react");
@@ -68,6 +72,7 @@ const {nextui} = require("@nextui-org/react");
module.exports = {
content: [
// ...
// make sure it's pointing to the ROOT node_module
"./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}",
],
theme: {
+15 -1
View File
@@ -230,7 +230,7 @@ The disabled option(s) will be displayed in the bottom of the list.
### Doctor Command add peerDependencies check
The `doctor` command now checks for peerDependencies and displays the incorrect peerDependencies, relation: [nextui-org/nextui#2954](https://github.com/nextui-org/nextui/issues/2954).
The `doctor` command now checks for peerDependencies and displays the incorrect peerDependencies. (See [nextui-org/nextui#2954](https://github.com/nextui-org/nextui/issues/2954) for more).
<Spacer y={4} />
@@ -268,6 +268,20 @@ you need to update the import as follows:
<Spacer y={4} />
### Validation Behavior
Since v2.4.0, we've changed the default validation behavior to `aria` which means no native validation is applied. If you wish to use the native validation, you can set `validationBehavior` to `native` to the input components or set it to the Provider as stated above.
For those who use `validationBehavior="aria"`, `validate` will be no longer applied since it is only for native validation. Therefore, you need to switch to use `isInvalid` prop instead.
```tsx
<form onSubmit={onSubmit}>
<Input errorMessage={formErrors?.field1} isInvalid={!!formErrors?.field1} name="field1" />
<Button type="submit">Submit</Button>
</form>
```
<Spacer y={4} />
## Other Changes
@@ -0,0 +1,57 @@
const data = `export const animals = [
{label: "Cat", value: "cat", description: "The second most popular pet in the world"},
{label: "Dog", value: "dog", description: "The most popular pet in the world"},
{label: "Elephant", value: "elephant", description: "The largest land animal"},
{label: "Lion", value: "lion", description: "The king of the jungle"},
{label: "Tiger", value: "tiger", description: "The largest cat species"},
{label: "Giraffe", value: "giraffe", description: "The tallest land animal"},
{
label: "Dolphin",
value: "dolphin",
description: "A widely distributed and diverse group of aquatic mammals",
},
{label: "Penguin", value: "penguin", description: "A group of aquatic flightless birds"},
{label: "Zebra", value: "zebra", description: "A several species of African equids"},
{
label: "Shark",
value: "shark",
description: "A group of elasmobranch fish characterized by a cartilaginous skeleton",
},
{
label: "Whale",
value: "whale",
description: "Diverse group of fully aquatic placental marine mammals",
},
{label: "Otter", value: "otter", description: "A carnivorous mammal in the subfamily Lutrinae"},
{label: "Crocodile", value: "crocodile", description: "A large semiaquatic reptile"},
];`;
const App = `import {Autocomplete, AutocompleteItem} from "@nextui-org/react";
import {animals} from "./data";
export default function App() {
return (
<div className="flex w-full flex-wrap md:flex-nowrap gap-4">
<Autocomplete
label="Favorite Animal"
placeholder="Search an animal"
className="max-w-xs"
defaultItems={animals}
listboxProps={{
emptyContent: 'Your own empty content text.'
}}
>
{(item) => <AutocompleteItem key={item.value}>{item.label}</AutocompleteItem>}
</Autocomplete>
</div>
);
}`;
const react = {
"/App.jsx": App,
"/data.js": data,
};
export default {
...react,
};
@@ -57,7 +57,7 @@ const data = `export const users = [
age: "29",
avatar: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/3.png",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -57,7 +57,7 @@ const data = `export const users = [
age: "29",
avatar: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/3.png",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -24,6 +24,7 @@ import asyncLoadingItems from "./async-loading-items";
import sections from "./sections";
import customSectionsStyle from "./custom-sections-style";
import customStyles from "./custom-styles";
import customEmptyContentMessage from "./custom-empty-content-message";
import readOnly from "./read-only";
export const autocompleteContent = {
@@ -53,5 +54,6 @@ export const autocompleteContent = {
sections,
customSectionsStyle,
customStyles,
customEmptyContentMessage,
readOnly,
};
@@ -61,7 +61,7 @@ const MyButton = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {
...props,
});
const {ripples} = getRippleProps();
const {ripples, onClear} = getRippleProps();
return (
<button ref={domRef} {...getButtonProps()}>
@@ -70,7 +70,7 @@ const MyButton = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => {
{children}
{isLoading && spinnerPlacement === "end" && spinner}
{endContent}
{!disableRipple && <Ripple ripples={ripples} />}
{!disableRipple && <Ripple ripples={ripples} onClear={onClear} />}
</button>
);
});
@@ -1,11 +1,7 @@
const HeartIcon = `export const HeartIcon = ({
filled,
size,
height,
width,
label,
...props
}) => {
const HeartIcon = `export const HeartIcon = ({ size, height, width, ...props }) => {
// avoid passing non-DOM attributes to svg
const {isSelected, isIndeterminate, disableAnimation, ...otherProps} = props;
return (
<svg
width={size || width || 24}
@@ -13,7 +9,7 @@ const HeartIcon = `export const HeartIcon = ({
viewBox="0 0 24 24"
fill='fill'
xmlns="http://www.w3.org/2000/svg"
{...props}
{...otherProps}
>
<path
d="M12.62 20.81c-.34.12-.9.12-1.24 0C8.48 19.82 2 15.69 2 8.69 2 5.6 4.49 3.1 7.56 3.1c1.82 0 3.43.88 4.44 2.24a5.53 5.53 0 0 1 4.44-2.24C19.51 3.1 22 5.6 22 8.69c0 7-6.48 11.13-9.38 12.12Z"
@@ -25,6 +21,9 @@ const HeartIcon = `export const HeartIcon = ({
`;
const PlusIcon = `export const PlusIcon = ({ size, height, width, ...props }) => {
// avoid passing non-DOM attributes to svg
const {isSelected, isIndeterminate, disableAnimation, ...otherProps} = props;
return (
<svg
width={size || width || 24}
@@ -32,7 +31,7 @@ const PlusIcon = `export const PlusIcon = ({ size, height, width, ...props }) =>
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
{...otherProps}
>
<path
d="M6 12H18"
@@ -0,0 +1,30 @@
const App = `import {DateInput} from "@nextui-org/react";
import {CalendarDate, parseDate} from "@internationalized/date";
export default function App() {
return (
<div className="flex w-full flex-wrap md:flex-nowrap gap-4">
<DateInput
label={"Birth date"}
defaultValue={parseDate("2024-04-04")}
placeholderValue={new CalendarDate(1995, 11, 6)}
description={"This is my birth date."}
isInvalid
errorMessage={(value) => {
if (value.isInvalid) {
return "Please enter a valid date.";
}
}}
className="max-w-xs"
/>
</div>
);
}`;
const react = {
"/App.jsx": App,
};
export default {
...react,
};
@@ -7,6 +7,7 @@ import labelPlacements from "./label-placements";
import description from "./description";
import startEndContent from "./start-end-content";
import errorMessage from "./error-message";
import errorMessageFunction from "./error-message-function";
import controlled from "./controlled";
import timeZones from "./time-zones";
import granularity from "./granularity";
@@ -25,6 +26,7 @@ export const dateInputContent = {
description,
startEndContent,
errorMessage,
errorMessageFunction,
controlled,
timeZones,
granularity,
@@ -6,7 +6,7 @@ export default function App() {
<DatePicker
label="Birth date"
className="max-w-[284px]"
isReadOnly
isDisabled
/>
</div>
);
@@ -0,0 +1,26 @@
const App = `import {DatePicker} from "@nextui-org/react";
export default function App() {
return (
<div className="flex w-full flex-wrap md:flex-nowrap gap-4">
<DatePicker
label="Birth date"
className="max-w-[284px]"
isInvalid
errorMessage={(value) => {
if (value.isInvalid) {
return "Please enter a valid date.";
}
}}
/>
</div>
);
}`;
const react = {
"/App.jsx": App,
};
export default {
...react,
};
@@ -1,6 +1,5 @@
const App = `import {DatePicker} from "@nextui-org/react";
import {now, parseAbsoluteToLocal} from "@internationalized/date";
import {useDateFormatter} from "@react-aria/i18n";
export default function App() {
let [date, setDate] = React.useState(parseAbsoluteToLocal("2021-04-07T18:45:22Z"));
@@ -34,7 +33,6 @@ export default function App() {
const AppTs = `import {DatePicker} from "@nextui-org/react";
import {DateValue, now, parseAbsoluteToLocal} from "@internationalized/date";
import {useDateFormatter} from "@react-aria/i18n";
export default function App() {
let [date, setDate] = React.useState<DateValue>(parseAbsoluteToLocal("2021-04-07T18:45:22Z"));
@@ -6,6 +6,7 @@ import variants from "./variants";
import labelPlacements from "./label-placements";
import description from "./description";
import errorMessage from "./error-message";
import errorMessageFunction from "./error-message-function";
import withMonthAndYearPickers from "./with-month-and-year-pickers";
import withTimeField from "./with-time-field";
import selectorIcon from "./selector-icon";
@@ -28,6 +29,7 @@ export const datePickerContent = {
labelPlacements,
description,
errorMessage,
errorMessageFunction,
withMonthAndYearPickers,
withTimeField,
selectorIcon,
@@ -0,0 +1,41 @@
const App = `import {DateRangePicker} from "@nextui-org/react";
export default function App() {
return (
<DateRangePicker
calendarProps={{
classNames: {
base: "bg-background",
headerWrapper: "pt-4 bg-background",
prevButton: "border-1 border-default-200 rounded-small",
nextButton: "border-1 border-default-200 rounded-small",
gridHeader: "bg-background shadow-none border-b-1 border-default-100",
cellButton: [
"data-[today=true]:bg-default-100 data-[selected=true]:bg-transparent rounded-small",
// start (pseudo)
"data-[range-start=true]:before:rounded-l-small",
"data-[selection-start=true]:before:rounded-l-small",
// end (pseudo)
"data-[range-end=true]:before:rounded-r-small",
"data-[selection-end=true]:before:rounded-r-small",
// start (selected)
"data-[selected=true]:data-[selection-start=true]:data-[range-selection=true]:rounded-small",
// end (selected)
"data-[selected=true]:data-[selection-end=true]:data-[range-selection=true]:rounded-small",
],
},
}}
className="max-w-xs"
label="Stay duration"
variant="bordered"
/>
);
}`;
const react = {
"/App.jsx": App,
};
export default {
...react,
};
@@ -0,0 +1,30 @@
const App = `import {DateRangePicker} from "@nextui-org/react";
import {parseDate} from "@internationalized/date";
export default function App() {
return (
<DateRangePicker
isInvalid
label="Stay duration"
variant="bordered"
errorMessage={(value) => {
if (value.isInvalid) {
return "Please enter your stay duration";
}
}}
defaultValue={{
start: parseDate("2024-04-01"),
end: parseDate("2024-04-08"),
}}
className="max-w-xs"
/>
);
}`;
const react = {
"/App.jsx": App,
};
export default {
...react,
};
@@ -6,6 +6,7 @@ import variants from "./variants";
import labelPlacements from "./label-placements";
import description from "./description";
import errorMessage from "./error-message";
import errorMessageFunction from "./error-message-function";
import withTimeField from "./with-time-field";
import selectorIcon from "./selector-icon";
import controlled from "./controlled";
@@ -18,6 +19,7 @@ import visibleMonth from "./visible-month";
import pageBehavior from "./page-behavior";
import nonContigous from "./non-contiguous";
import presets from "./presets";
import customStyles from "./custom-styles";
export const dateRangePickerContent = {
usage,
@@ -28,6 +30,7 @@ export const dateRangePickerContent = {
labelPlacements,
description,
errorMessage,
errorMessageFunction,
withTimeField,
selectorIcon,
controlled,
@@ -40,4 +43,5 @@ export const dateRangePickerContent = {
pageBehavior,
nonContigous,
presets,
customStyles,
};
@@ -1,6 +1,6 @@
const App = `import {DateRangePicker, Radio, RadioGroup, Button, ButtonGroup, cn} from "@nextui-org/react";
import {today, startOfWeek, startOfMonth, endOfWeek, endOfMonth, useDateFormatter, getLocalTimeZone} from "@internationalized/date";
import {useLocale} from "@react-aria/i18n";
import {today, startOfWeek, startOfMonth, endOfWeek, endOfMonth, getLocalTimeZone} from "@internationalized/date";
import {useLocale, useDateFormatter} from "@react-aria/i18n";
export default function App() {
let defaultDate = {
@@ -88,7 +88,7 @@ export default function App() {
</ButtonGroup>
}
calendarProps={{
focusedValue: value.start,
focusedValue: value?.start,
onFocusChange: (val) => setValue({...value, start: val}),
nextButtonProps: {
variant: "bordered",
@@ -37,8 +37,49 @@ export default function App() {
);
}`;
const AppTs = `import {Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Button} from "@nextui-org/react";
import type { Selection } from "@nextui-org/react";
export default function App() {
const [selectedKeys, setSelectedKeys] = React.useState<Selection>(new Set(["text"]));
const selectedValue = React.useMemo(
() => Array.from(selectedKeys).join(", ").replaceAll("_", " "),
[selectedKeys]
);
return (
<Dropdown>
<DropdownTrigger>
<Button
variant="bordered"
className="capitalize"
>
{selectedValue}
</Button>
</DropdownTrigger>
<DropdownMenu
aria-label="Multiple selection example"
variant="flat"
closeOnSelect={false}
disallowEmptySelection
selectionMode="multiple"
selectedKeys={selectedKeys}
onSelectionChange={setSelectedKeys}
>
<DropdownItem key="text">Text</DropdownItem>
<DropdownItem key="number">Number</DropdownItem>
<DropdownItem key="date">Date</DropdownItem>
<DropdownItem key="single_date">Single Date</DropdownItem>
<DropdownItem key="iteration">Iteration</DropdownItem>
</DropdownMenu>
</Dropdown>
);
}`;
const react = {
"/App.jsx": App,
"/App.tsx": AppTs,
};
export default {
@@ -36,8 +36,48 @@ export default function App() {
);
}`;
const AppTs = `import {Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Button} from "@nextui-org/react";
import type { Selection } from "@nextui-org/react";
export default function App() {
const [selectedKeys, setSelectedKeys] = React.useState<Selection>(new Set(["text"]));
const selectedValue = React.useMemo(
() => Array.from(selectedKeys).join(", ").replaceAll("_", " "),
[selectedKeys]
);
return (
<Dropdown>
<DropdownTrigger>
<Button
variant="bordered"
className="capitalize"
>
{selectedValue}
</Button>
</DropdownTrigger>
<DropdownMenu
aria-label="Single selection example"
variant="flat"
disallowEmptySelection
selectionMode="single"
selectedKeys={selectedKeys}
onSelectionChange={setSelectedKeys}
>
<DropdownItem key="text">Text</DropdownItem>
<DropdownItem key="number">Number</DropdownItem>
<DropdownItem key="date">Date</DropdownItem>
<DropdownItem key="single_date">Single Date</DropdownItem>
<DropdownItem key="iteration">Iteration</DropdownItem>
</DropdownMenu>
</Dropdown>
);
}`;
const react = {
"/App.jsx": App,
"/App.tsx": AppTs,
};
export default {
@@ -69,7 +69,7 @@ export default function App() {
variant="bordered"
placeholder="Enter your password"
endContent={
<button className="focus:outline-none" type="button" onClick={toggleVisibility}>
<button className="focus:outline-none" type="button" onClick={toggleVisibility} aria-label="toggle password visibility">
{isVisible ? (
<EyeSlashFilledIcon className="text-2xl text-default-400 pointer-events-none" />
) : (
@@ -3,7 +3,7 @@ const App = `import {Input} from "@nextui-org/react";
export default function App() {
const [value, setValue] = React.useState("junior2nextui.org");
const validateEmail = (value) => value.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i);
const validateEmail = (value) => value.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i);
const isInvalid = React.useMemo(() => {
if (value === "") return false;
@@ -57,7 +57,7 @@ const data = `export const users = [
age: "29",
avatar: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/3.png",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -59,7 +59,7 @@ export default function App() {
onPrevious,
setPage,
className,
}: PaginationItemRenderProps<HTMLButtonElement>) => {
}: PaginationItemRenderProps) => {
if (value === PaginationItemType.NEXT) {
return (
<button key={key} className={cn(className, "bg-default-200/50 min-w-8 w-8 h-8")} onClick={onNext}>
@@ -57,7 +57,7 @@ const data = `export const users = [
age: "29",
avatar: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/3.png",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -57,7 +57,7 @@ const data = `export const users = [
age: "29",
avatar: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/3.png",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -57,7 +57,7 @@ const data = `export const users = [
age: "29",
avatar: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/3.png",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -57,7 +57,7 @@ const data = `export const users = [
age: "29",
avatar: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/3.png",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -12,7 +12,7 @@ export default function App() {
const rowsPerPage = 10;
const pages = useMemo(() => {
const pages = React.useMemo(() => {
return data?.count ? Math.ceil(data.count / rowsPerPage) : 0;
}, [data?.count, rowsPerPage]);
@@ -36,7 +36,6 @@ export default function App() {
</div>
) : null
}
{...args}
>
<TableHeader>
<TableColumn key="name">Name</TableColumn>
@@ -74,7 +74,7 @@ const users = [
age: "29",
avatar: "https://i.pravatar.cc/150?u=a042581f4e29026024d",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -67,10 +67,98 @@ export default function App() {
);
}`;
const AppTs = `import {Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, Pagination, Spinner, getKeyValue} from "@nextui-org/react";
import { useInfiniteScroll } from "@nextui-org/use-infinite-scroll";
import { useAsyncList } from "@react-stately/data";
interface SWCharacter {
name: string;
height: string;
mass: string;
birth_year: string;
}
export default function App() {
const [isLoading, setIsLoading] = React.useState<boolean>(true);
const [hasMore, setHasMore] = React.useState<boolean>(false);
let list = useAsyncList<SWCharacter>({
async load({ signal, cursor }) {
if (cursor) {
setIsLoading(false);
}
// If no cursor is available, then we're loading the first page.
// Otherwise, the cursor is the next URL to load, as returned from the previous page.
const res = await fetch(
cursor || "https://swapi.py4e.com/api/people/?search=",
{ signal }
);
let json = await res.json();
setHasMore(json.next !== null);
return {
items: json.results,
cursor: json.next,
};
},
});
const [loaderRef, scrollerRef] = useInfiniteScroll({
hasMore,
onLoadMore: list.loadMore,
});
return (
<Table
isHeaderSticky
aria-label="Example table with infinite pagination"
baseRef={scrollerRef}
bottomContent={
hasMore ? (
<div className="flex w-full justify-center">
<Spinner ref={loaderRef} color="white" />
</div>
) : null
}
classNames={{
base: "max-h-[520px] overflow-scroll",
table: "min-h-[400px]",
}}
>
<TableHeader>
<TableColumn key="name">Name</TableColumn>
<TableColumn key="height">Height</TableColumn>
<TableColumn key="mass">Mass</TableColumn>
<TableColumn key="birth_year">Birth year</TableColumn>
</TableHeader>
<TableBody
isLoading={isLoading}
items={list.items}
loadingContent={<Spinner color="white" />}
>
{(item: SWCharacter) => (
<TableRow key={item.name}>
{(columnKey) => (
<TableCell>{getKeyValue(item, columnKey)}</TableCell>
)}
</TableRow>
)}
</TableBody>
</Table>
);
}`;
const react = {
"/App.jsx": App,
};
const reactTs = {
"/App.tsx": AppTs,
};
export default {
...react,
...reactTs,
};
@@ -74,7 +74,7 @@ const users = [
age: "29",
avatar: "https://i.pravatar.cc/150?u=a042581f4e29026024d",
email: "brian.kim@example.com",
status: "Active",
status: "active",
},
{
id: 7,
@@ -7,7 +7,6 @@ export default function App() {
<RadioGroup
className="mb-4"
label="Placement"
orientation="top"
value={placement}
onValueChange={(value) => setPlacement(value)}
>
@@ -0,0 +1,23 @@
const App = `import {TimeInput} from "@nextui-org/react";
export default function App() {
return (
<TimeInput
label="Event Time"
isInvalid
errorMessage={(value) => {
if (value.isInvalid) {
return "Please enter a valid time";
}
}}
/>
);
}`;
const react = {
"/App.jsx": App,
};
export default {
...react,
};
@@ -0,0 +1,19 @@
const App = `import {TimeInput} from "@nextui-org/react";
export default function App() {
return (
<TimeInput
label="Event Time"
isInvalid
errorMessage="Please enter a valid time"
/>
);
}`;
const react = {
"/App.jsx": App,
};
export default {
...react,
};
@@ -4,6 +4,8 @@ import disabled from "./disabled";
import readonly from "./read-only";
import withoutLabel from "./without-label";
import withDescription from "./with-description";
import errorMessage from "./error-message";
import errorMessageFunction from "./error-message-function";
import labelPlacement from "./label-placement";
import startContent from "./start-content";
import endContent from "./end-content";
@@ -23,6 +25,8 @@ export const timeInputContent = {
readonly,
withoutLabel,
withDescription,
errorMessage,
errorMessageFunction,
labelPlacement,
startContent,
endContent,
@@ -151,7 +151,7 @@ Here's an example of how to customize the accordion styles:
<CodeDemo title="Custom Accordion Styles" files={accordionContent.customStyles} />
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -172,7 +172,7 @@ Here's an example of how to customize the accordion styles:
- **data-pressed**:
When the accordion item is pressed. Based on [usePress](https://react-spectrum.adobe.com/react-aria/usePress.html).
<Spacer y={4} />{" "}
<Spacer y={4} />
## Accessibility
@@ -182,7 +182,7 @@ Here's an example of how to customize the accordion styles:
- `aria-disabled` attribute for the accordion item.
- `aria-controls` attribute for the accordion item.
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -226,6 +226,7 @@ import {useFilter} from "@react-aria/i18n";
<CodeDemo
title="Fully Controlled"
showPreview={false}
showOpenInCodeSandbox={false}
highlightedLines="63-64,67,69-71"
files={autocompleteContent.fullyControlled}
/>
@@ -238,6 +239,12 @@ You can customize the autocomplete items by modifying the `AutocompleteItem` chi
<CodeDemo title="Custom Items" files={autocompleteContent.customItems} />
### Custom Empty Content Message
By default, a message `No results found.` will be shown if there is no result matching a query with your filter. You can customize the empty content message by modifying the `emptyContent` in `listboxProps`.
<CodeDemo title="Custom Empty Content Message" files={autocompleteContent.customEmptyContentMessage} />
### Custom Filtering
By default, `Autocomplete` uses a `"contains"` function from [useFilter](https://react-spectrum.adobe.com/react-aria/useFilter.html) to filter the
@@ -254,7 +261,7 @@ The following example uses the `defaultFilter` prop to filter the list of option
### Asynchronous Filtering
Autocomplete supports asynchronous filtering, in the example below we are using the [useAyncList](https://react-spectrum.adobe.com/react-stately/useAsyncList.html) function
Autocomplete supports asynchronous filtering, in the example below we are using the [useAsyncList](https://react-spectrum.adobe.com/react-stately/useAsyncList.html) function
from [react-aria](https://react-spectrum.adobe.com) to handle asynchronous loading and filtering of data from a server.
<PackageManagers
@@ -275,6 +282,7 @@ import {useAsyncList} from "@react-stately/data";
typescriptStrict={true}
title="Asynchronous Filtering"
showPreview={false}
showOpenInCodeSandbox={false}
highlightedLines="27-29,33"
files={autocompleteContent.asyncFiltering}
/>
@@ -301,6 +309,7 @@ import {useInfiniteScroll} from "@nextui-org/use-infinite-scroll";
<CodeDemo
showPreview={false}
showOpenInCodeSandbox={false}
typescriptStrict={true}
title="Asynchronous Loading"
highlightedLines="21-22,25,27"
+5 -6
View File
@@ -14,8 +14,6 @@ The Avatar component is used to represent a user, and displays the profile pictu
---
## Installation
<PackageManagers
@@ -90,7 +88,8 @@ You can also provide a custom fallback component to be displayed when the `src`
In case you need to customize the avatar even further, you can use the `useAvatar` hook to create your own implementation.
<CodeDemo showPreview={false} title="Custom implementation" files={avatarContent.customImpl} />
<CodeDemo showPreview={false} showOpenInCodeSandbox={false} title="Custom implementation" files={avatarContent.customImpl} />
### Custom initials logic
@@ -134,7 +133,7 @@ By passing the `isGrid` prop to the `AvatarGroup` component, the avatars will be
In case you need to customize the avatar group even further, you can use the `useAvatarGroup` hook and the
`AvatarGroupProvider` to create your own implementation.
<CodeDemo showPreview={false} title="Custom implementation" files={avatarContent.groupCustomImpl} />
<CodeDemo showPreview={false} showOpenInCodeSandbox={false} title="Custom implementation" files={avatarContent.groupCustomImpl} />
## Slots
@@ -150,7 +149,7 @@ You can customize any part of the avatar by using the `classNames` prop, each `s
<CodeDemo title="Custom Avatar" files={avatarContent.custom} />
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -163,7 +162,7 @@ You can customize any part of the avatar by using the `classNames` prop, each `s
- **data-focus-visible**:
When the avatar is being focused with the keyboard. Based on [useFocusRing](https://react-spectrum.adobe.com/react-aria/useFocusRing.html), it is applied when `isFocusable` is `true` or when the `as` property is assigned as `button`.
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -89,6 +89,16 @@ Instead, consider supplying a comprehensive description, such as using `aria-lab
<Spacer y={4} />
## Slots
The Badge component has two slots:
- **base**: The base slot for the badge, which is the container of the badge.
- **badge**: The main slot for the badge content, which is the content of the badge.
<Spacer y={4} />
## API
### Badge Props
+1 -1
View File
@@ -101,7 +101,7 @@ You can customize the `Button` component by passing custom Tailwind CSS classes
You can also use the `useButton` hook to create your own button component.
<CodeDemo showPreview={false} title="Custom Implementation" files={buttonContent.customImpl} />
<CodeDemo showPreview={false} showOpenInCodeSandbox={false} title="Custom Implementation" files={buttonContent.customImpl} />
## Button Group
@@ -93,6 +93,19 @@ You can use `Image` component as the cover of the card by taking it out of the `
<Spacer y={4} />
## Slots
- **base**:
The main container of the card, where the header, body, and footer are placed.
- **header**:
The header of the card, usually used for the title.
- **body**:
The body of the card, where the main content is placed.
- **footer**:
The footer of the card, usually used for actions.
<Spacer y={4} />
## Data Attributes
`Card` has the following attributes on the `base` element:
@@ -109,7 +109,7 @@ In case you need to customize the checkbox even further, you can use the `useChe
| validationState | `valid` \| `invalid` | Whether the inputs should display its "valid" or "invalid" visual styling. (**Deprecated**) use **isInvalid** instead. | - |
| description | `ReactNode` | The checkbox group description. | - |
| errorMessage | `ReactNode` \| `((v: ValidationResult) => ReactNode)` | The checkbox group error message. | - |
| validate | `(value: string[]) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), and return error messages for invalid values. | - |
| validate | `(value: string[]) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), returning error messages for invalid values. Validation errors are displayed upon form submission if `validationBehavior` is set to `native`. For real-time validation, use the `isInvalid` prop.| - |
| validationBehavior | `native` \| `aria` | Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.| `aria` |
| isDisabled | `boolean` | Whether the checkbox group is disabled. | `false` |
| isRequired | `boolean` | Whether user checkboxes are required on the input before form submission. | `false` |
@@ -13,8 +13,6 @@ Checkboxes allow users to select multiple items from a list of individual items,
---
## Installation
<PackageManagers
@@ -70,6 +68,8 @@ The `isIndeterminate` prop sets a `Checkbox` to an indeterminate state, overridi
### Custom Check Icon
> By default, `IconProps` will be passed to your icon component. Please make sure that `isSelected`, `isIndeterminate`, and `disableAnimation` are not passed to a DOM element.
<CodeDemo title="Custom Check Icon" files={checkboxContent.customCheckIcon} />
### Controlled
@@ -127,7 +127,7 @@ In case you need to customize the checkbox even further, you can use the `useChe
- **data-loading**:
When the checkbox is loading. Based on `isLoading` prop.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Accessibility
+1 -1
View File
@@ -93,7 +93,7 @@ You can customize the `Chip` component by passing custom Tailwind CSS classes to
<CodeDemo title="Custom Styles" files={chipContent.customStyles} />
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -92,7 +92,7 @@ You can customize the `CircularProgress` component by passing custom Tailwind CS
highlightedLines="9-12"
/>
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -103,7 +103,7 @@ You can customize the `CircularProgress` component by passing custom Tailwind CS
- **data-disabled**:
Indicates whether the progress is disabled. Based on `isDisabled` prop.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Accessibility
@@ -113,7 +113,7 @@ You can customize the `CircularProgress` component by passing custom Tailwind CS
- Determinate and indeterminate progress support.
- Exposes the `aria-valuenow`, `aria-valuemin`, `aria-valuemax` and `aria-valuetext` attributes.
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
+1 -1
View File
@@ -50,7 +50,7 @@ Code is a component used to display inline code.
<CodeDemo title="Colors" files={codeContent.colors} />
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -84,6 +84,10 @@ You can combine the `isInvalid` and `errorMessage` properties to show an invalid
<CodeDemo title="With Error Message" files={dateInputContent.errorMessage} />
You can also pass an error message as a function. This allows for dynamic error message handling based on the [ValidationResult]((https://github.com/adobe/react-spectrum/blob/1cacbf1d438675feb3859fee54b17e620b458d9c/packages/%40react-types/shared/src/inputs.d.ts#L44-L51)).
<CodeDemo title="With Error Message Function" files={dateInputContent.errorMessageFunction} />
### Controlled
You can use the `value` and `onChange` properties to control the input value.
@@ -243,7 +247,7 @@ import {parseZonedDateTime} from "@internationalized/date";
- **description**: The description of the date-input.
- **errorMessage**: The error message of the date-input.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -299,7 +303,7 @@ import {parseZonedDateTime} from "@internationalized/date";
| locale | `string` | The locale to display and edit the value according to. | - |
| description | `ReactNode` | A description for the date input. Provides a hint such as specific requirements for what to choose. | - |
| errorMessage | `ReactNode \| (v: ValidationResult) => ReactNode` | An error message for the date input. | - |
| validate | `(value: MappedDateValue<DateValue>) => ValidationError true null undefined` | Validate input values when committing (e.g., on blur), and return error messages for invalid values. | - |
| validate | `(value: MappedDateValue<DateValue>) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), returning error messages for invalid values. Display validation errors upon form submission if `validationBehavior` is set to `native`. For real-time validation, use the `isInvalid` prop.| - |
| validationBehavior | `native` \| `aria` | Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.| `aria` |
| startContent | `ReactNode` | Element to be rendered in the left side of the date input. | - |
| endContent | `ReactNode` | Element to be rendered in the right side of the date input. | - |
@@ -77,6 +77,10 @@ You can combine the `isInvalid` and `errorMessage` properties to show an invalid
<CodeDemo title="With Error Message" files={datePickerContent.errorMessage} />
You can also pass an error message as a function. This allows for dynamic error message handling based on the [ValidationResult]((https://github.com/adobe/react-spectrum/blob/1cacbf1d438675feb3859fee54b17e620b458d9c/packages/%40react-types/shared/src/inputs.d.ts#L44-L51)).
<CodeDemo title="With Error Message Function" files={datePickerContent.errorMessageFunction} />
### With Month and Year Pickers
<CodeDemo title="With Month and Year Pickers" files={datePickerContent.withMonthAndYearPickers} />
@@ -266,7 +270,7 @@ import {I18nProvider} from "@react-aria/i18n";
- **timeInputLabel**: The time-input component's label element.
- **timeInput**: The time-input component element.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -285,7 +289,7 @@ import {I18nProvider} from "@react-aria/i18n";
- **data-disabled**:
When the date-picker is disabled. Based on `isDisabled` prop.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Accessibility
@@ -295,7 +299,7 @@ import {I18nProvider} from "@react-aria/i18n";
- Date segments are editable using an easy to use numeric keypad, and all interactions are accessible using touch-based screen readers.
- Integrates with HTML forms, supporting required, minimum and maximum values, unavailable dates, custom validation functions, realtime validation, and server-side validation errors
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -313,7 +317,7 @@ import {I18nProvider} from "@react-aria/i18n";
| placeholderValue | `ZonedDateTime` \| `CalendarDate` \| `CalendarDateTime` \| `undefined` \| `null` | The placeholder of the date-picker. | - |
| description | `ReactNode` | A description for the date-picker. Provides a hint such as specific requirements for what to choose. | - |
| errorMessage | `ReactNode \| (v: ValidationResult) => ReactNode` | An error message for the date input. | - |
| validate | `(value: MappedDateValue<DateValue>) => ValidationError true null undefined` | Validate input values when committing (e.g., on blur), and return error messages for invalid values. | - |
| validate | `(value: MappedDateValue<DateValue>) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), returning error messages for invalid values. Display validation errors upon form submission if `validationBehavior` is set to `native`. For real-time validation, use the `isInvalid` prop.| - |
| validationBehavior | `native` \| `aria` | Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.| `aria` |
| startContent | `ReactNode` | Element to be rendered in the left side of the date-picker. | - |
| endContent | `ReactNode` | Element to be rendered in the right side of the date-picker. | - |
@@ -342,6 +346,7 @@ import {I18nProvider} from "@react-aria/i18n";
| timeInputProps | `TimeInputProps` | Props to be passed to the time input component. | `{ size: "sm", variant: "light", radius: "full", isIconOnly: true }` |
| disableAnimation | `boolean` | Whether to disable all animations in the date picker. Including the DateInput, Button, Calendar, and Popover. | `false` |
| classNames | `Record<"base" \| "selectorButton" \| "selectorIcon" \| "popoverContent" \| "calendar" \| "calendarContent" \| "timeInputLabel" \| "timeInput", string>` | Allows to set custom class names for the date-picker slots. | - |
| dateInputClassNames | `Record<"base" "label" "inputWrapper" "innerWrapper" "input" "helperWrapper" "description" "errorMessage", string>` | Allows to set custom class names for the [date input slots](/docs/components/date-input#slots). | - |
### DatePicker Events
@@ -92,6 +92,10 @@ You can combine the `isInvalid` and `errorMessage` properties to show an invalid
<CodeDemo title="With Error Message" files={dateRangePickerContent.errorMessage} />
You can also pass an error message as a function. This allows for dynamic error message handling based on the [ValidationResult]((https://github.com/adobe/react-spectrum/blob/1cacbf1d438675feb3859fee54b17e620b458d9c/packages/%40react-types/shared/src/inputs.d.ts#L44-L51)).
<CodeDemo title="With Error Message Function" files={dateRangePickerContent.errorMessageFunction} />
### With Time Fields
DateRangePicker automatically includes time fields when a `CalendarDateTime` or `ZonedDateTime` object is provided as the value.
@@ -270,13 +274,11 @@ in multiple formats into `ZonedDateTime` objects.
import {
DateValue,
now,
useLocale,
startOfWeek,
startOfMonth,
useDateFormatter,
getLocalTimeZone,
} from "@internationalized/date";
import {I18nProvider} from "@react-aria/i18n";
import {useLocale, useDateFormatter} from "@react-aria/i18n";
```
<CodeDemo title="Presets" files={dateRangePickerContent.presets} />
@@ -300,6 +302,12 @@ import {I18nProvider} from "@react-aria/i18n";
- **description**: The description of the date-input.
- **errorMessage**: The error message of the date-input.
### Custom Styles
You can customize the `DateRangePicker` component by passing custom Tailwind CSS classes to the component slots.
<CodeDemo title="Custom Styles" files={dateRangePickerContent.customStyles} />
<Spacer y={4} />
## Data Attributes
@@ -354,7 +362,7 @@ import {I18nProvider} from "@react-aria/i18n";
| placeholderValue | `ZonedDateTime` \| `CalendarDate` \| `CalendarDateTime` \| `undefined` \| `null` | The placeholder of the date-range-picker. | - |
| description | `ReactNode` | A description for the date-range-picker. Provides a hint such as specific requirements for what to choose. | - |
| errorMessage | `ReactNode \| (v: ValidationResult) => ReactNode` | An error message for the date input. | - |
| validate | `(value: RangeValue<MappedDateValue<DateValue>>) => ValidationError true null undefined` | Validate input values when committing (e.g., on blur), and return error messages for invalid values. | - |
| validate | `(value: RangeValue<MappedDateValue<DateValue>>) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), returning error messages for invalid values. Display validation errors upon form submission if `validationBehavior` is set to `native`. For real-time validation, use the `isInvalid` prop.| - |
| validationBehavior | `native` \| `aria` | Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA. | `aria` |
| startContent | `ReactNode` | Element to be rendered in the left side of the date-range-picker. | - |
| endContent | `ReactNode` | Element to be rendered in the right side of the date-range-picker. | - |
@@ -97,7 +97,6 @@ You can set the `selectionMode` property as `single` to allow the user to select
<CodeDemo
title="Single Selection"
highlightedLines="26-28"
files={dropdownContent.singleSelection}
/>
@@ -107,7 +106,6 @@ You can set the `selectionMode` property as `multiple` to allow the user to sele
<CodeDemo
title="Multiple Selection"
highlightedLines="26-28"
files={dropdownContent.multipleSelection}
/>
@@ -322,9 +320,9 @@ you to customize each item individually.
| variant | `solid` \| `bordered` \| `light` \| `flat` \| `faded` \| `shadow` | The dropdown items appearance style. | `solid` |
| color | `default` \| `primary` \| `secondary` \| `success` \| `warning` \| `danger` | The dropdown items color theme. | `default` |
| selectionMode | `none` \| `single` \| `multiple` | The type of selection that is allowed in the collection. | - |
| selectedKeys | `React.Key[]` | The currently selected keys in the collection (controlled). | - |
| disabledKeys | `React.Key[]` | The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with. | - |
| defaultSelectedKeys | `all` \| `React.Key[]` | The initial selected keys in the collection (uncontrolled). | - |
| selectedKeys | `all` \| `Iterable<React.Key>` | The currently selected keys in the collection (controlled). | - |
| disabledKeys | `Iterable<React.Key>` | The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with. | - |
| defaultSelectedKeys | `all` \| `Iterable<React.Key>` | The initial selected keys in the collection (uncontrolled). | - |
| disallowEmptySelection | `boolean` | Whether the collection allows empty selection. | `false` |
| autoFocus | `boolean` \| `first` \| `last` | Where the focus should be set. | `false` |
| topContent | `ReactNode` | The content to display above the listbox items. | - |
@@ -343,7 +341,7 @@ you to customize each item individually.
| Attribute | Type | Description |
| ----------------- | ----------------------------- | -------------------------------------------------------------------------- |
| onAction | `(key: React.Key) => void` | Handler that is called when an item is selected. |
| onSelectionChange | `(keys: React.Key[]) => void` | Handler that is called when the selection changes. |
| onSelectionChange | `(keys: "all" \| Set<React.Key> & {anchorKey?: string; currentKey?: string}) => void` | Handler that is called when the selection changes. |
| onClose | `() => void` | Handler that is called when the menu should close after selecting an item. |
---
+1 -1
View File
@@ -79,7 +79,7 @@ You can use the `fallbackSrc` prop to display a fallback image when:
Next.js provides an optimized [Image](https://nextjs.org/docs/app/api-reference/components/image) component,
you can use it with NextUI `Image` component as well.
<CodeDemo showPreview={false} title="With Next.js Image" files={imageContent.nextjs} />
<CodeDemo showPreview={false} showOpenInCodeSandbox={false} title="With Next.js Image" files={imageContent.nextjs} />
> **Note**: NextUI's `Image` component is `client-side`, using hooks like `useState` for loading states
> and animations. Use Next.js `Image` alone if these features aren't required.
+7 -7
View File
@@ -85,14 +85,14 @@ You can change the position of the label by setting the `labelPlacement` propert
You can use the `type` property to change the input type to `password`.
<CodeDemo title="Password Input" highlightedLines="24" files={inputContent.password} />
<CodeDemo title="Password Input" highlightedLines="25" files={inputContent.password} />
### Clear Button
If you pass the `isClearable` property to the input, it will have a clear button at the
end of the input, it will be visible when the input has a value.
<CodeDemo title="Clear Button" highlightedLines="6" files={inputContent.clearButton} />
<CodeDemo title="Clear Button" highlightedLines="7" files={inputContent.clearButton} />
### Start & End Content
@@ -142,7 +142,7 @@ You can use the `value` and `onValueChange` properties to control the input valu
You can customize the `Input` component by passing custom Tailwind CSS classes to the component slots.
<CodeDemo title="Custom Styles" highlightedLines="14-32" files={inputContent.customStyles} />
<CodeDemo title="Custom Styles" highlightedLines="13-31" files={inputContent.customStyles} />
### Custom Implementation
@@ -155,7 +155,7 @@ In case you need to customize the input even further, you can use the `useInput`
files={inputContent.customImpl}
/>
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -178,7 +178,7 @@ In case you need to customize the input even further, you can use the `useInput`
- **data-disabled**:
When the input is disabled. Based on `isDisabled` prop.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Accessibility
@@ -188,7 +188,7 @@ In case you need to customize the input even further, you can use the `useInput`
- Required and invalid states exposed to assistive technology via ARIA.
- Support for description and error message help text linked to the input via ARIA.
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -207,7 +207,7 @@ In case you need to customize the input even further, you can use the `useInput`
| placeholder | `string` | The placeholder of the input. | - |
| description | `ReactNode` | A description for the input. Provides a hint such as specific requirements for what to choose. | - |
| errorMessage | `ReactNode` \| `((v: ValidationResult) => ReactNode)` | An error message for the input. It is only shown when `isInvalid` is set to `true` | - |
| validate | `(value: string) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), and return error messages for invalid values. | - |
| validate | `(value: string) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), returning error messages for invalid values. Validation errors are displayed upon form submission if `validationBehavior` is set to `native`. For real-time validation, use the `isInvalid` prop.| - |
| validationBehavior | `native` \| `aria` | Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.| `aria` |
| startContent | `ReactNode` | Element to be rendered in the left side of the input. | - |
| endContent | `ReactNode` | Element to be rendered in the right side of the input. | - |
+4 -4
View File
@@ -102,9 +102,9 @@ function App() {
In case you need to customize the link even further, you can use the `useLink` hook to create your own implementation.
<CodeDemo showPreview={false} title="Custom implementation" files={linkContent.customImpl} />
<CodeDemo showPreview={false} showOpenInCodeSandbox={false} title="Custom implementation" files={linkContent.customImpl} />
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -117,7 +117,7 @@ In case you need to customize the link even further, you can use the `useLink` h
- **data-disabled**:
When the link is disabled. Based on `isDisabled` prop.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Accessibility
@@ -126,7 +126,7 @@ In case you need to customize the link even further, you can use the `useLink` h
- Support for disabled links.
- Keyboard users may activate links using the <Kbd>Enter</Kbd> key.
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -126,7 +126,7 @@ You can use the `renderItem` property to customize the pagination items.
- **prev**: The previous button slot.
- **next**: The next button slot.
- **item**: The pagination item slot, applied to the middle items.
- **cursor**: The current page slot. Available only when `disableCursorAnimation` is `false` and `disableAnimation` is `false.
- **cursor**: The current page slot. Available only when `disableCursorAnimation` is `false` and `disableAnimation` is `false`.
- **forwardIcon**: The forward icon slot. The one that appears when hovering the ellipsis button.
- **ellipsis**: The ellipsis slot.
- **chevronNext**: The chevron next icon slot.
@@ -100,7 +100,7 @@ In case you need to customize the radio group even further, you can use the `use
<CodeDemo title="Custom Implementation" files={radioGroupContent.customImpl} />
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -130,7 +130,7 @@ In case you need to customize the radio group even further, you can use the `use
- **data-disabled**:
When the radio is disabled. Based on `isDisabled` prop.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Accessibility
@@ -141,7 +141,7 @@ In case you need to customize the radio group even further, you can use the `use
- Keyboard focus management and cross browser normalization.
- Group and radio labeling support for assistive technology.
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -159,7 +159,7 @@ In case you need to customize the radio group even further, you can use the `use
| defaultValue | `string[]` | The default selected value. (uncontrolled). | - |
| description | `ReactNode` | Radio group description . | - |
| errorMessage | `ReactNode` \| `((v: ValidationResult) => ReactNode)` | Radio group error message. | - |
| validate | `(value: string) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), and return error messages for invalid values. | - |
| validate | `(value: string) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), returning error messages for invalid values. Validation errors are displayed upon form submission if `validationBehavior` is set to `native`. For real-time validation, use the `isInvalid` prop.| - |
| validationBehavior | `native` \| `aria` | Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.| `aria` |
| isDisabled | `boolean` | Whether the radio group is disabled. | `false` |
| isRequired | `boolean` | Whether user checkboxes are required on the input before form submission. | `false` |
@@ -226,7 +226,7 @@ Here's the example to customize `topContent` and `bottomContent` to have some pr
| isDateUnavailable | `(date: DateValue) => boolean` | Callback that is called for each date of the calendar. If it returns true, then the date is unavailable. | - | |
| createCalendar | `(calendar: SupportedCalendars) => Calendar \| null` | This function helps to reduce the bundle size by providing a custom calendar system. You can also use the NextUIProvider to provide the createCalendar function to all nested components. | `all<br> calendars` | |
| errorMessage | `ReactNode \| (v: ValidationResult) => ReactNode` | An error message for the field. | - | |
| validate | `(value: { inputValue: string, selectedKey: React.Key }) => ValidationError true null undefined` | Validate time input values when committing (e.g. on blur), and return error messages for invalid values. | - | |
| validate | `(value: { inputValue: string, selectedKey: React.Key }) => ValidationError true null undefined` | Validate input values when committing (e.g. on blur), returning error messages for invalid values. Validation errors are displayed upon form submission if `validationBehavior` is set to `native`. For real-time validation, use the `isInvalid` prop.| - | |
| hideDisabledDates | `boolean` | Whether to hide the disabled or invalid dates. | `false` | |
| disableAnimation | `boolean` | Whether to disable the animation of the calendar. | `false` | |
| classNames | `Record<"base" "prevButton" "nextButton" "headerWrapper" \| "header" \| "title" \| "content" \| "gridWrapper" \| "grid" \| "gridHeader" \| "gridHeaderRow" \| "gridHeaderCell" \| "gridBody" \| "gridBodyRow" \| "cell" \| "cellButton" \| "pickerWrapper" \| "pickerMonthList" \| "pickerYearList" \| "pickerHighlight" \| "pickerItem" \| "helperWrapper" \| "errorMessage", string>` | Allows to set custom class names for the calendar slots. | - | |
+12 -4
View File
@@ -285,6 +285,14 @@ the popover and listbox components.
- **data-filled**:
Indicates if the select has a value, is focused, has start/end content or is open.
- **data-has-value**:
Indicates if the select has selected item(s).
- **data-has-label**:
Indicates if the select has a label. Based on `label` prop.
- **data-has-helper**:
Indicates if the select has helper text. Based on `errorMessage` or `description` prop.
- **data-invalid**:
Indicates if the select is invalid. Based on `isInvalid` prop.
`Select` has the following attributes on the `trigger` element:
@@ -351,9 +359,9 @@ the popover and listbox components.
| children\* | `ReactNode[]` | The children to render. Usually a list of `SelectItem` and `SelectSection` elements. | - |
| items | [`Iterable<T>`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) | Item objects in the select. (dynamic) | - |
| selectionMode | `single` \| `multiple` | The type of selection that is allowed in the collection. | - |
| selectedKeys | `all` \| `React.Key[]` | The currently selected keys in the collection (controlled). | - |
| disabledKeys | `all` \| `React.Key[]` | The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with. | - |
| defaultSelectedKeys | `all` \| `React.Key[]` | The initial selected keys in the collection (uncontrolled). | - |
| selectedKeys | `all` \| `Iterable<React.Key>` | The currently selected keys in the collection (controlled). | - |
| disabledKeys | `Iterable<React.Key>` | The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with. | - |
| defaultSelectedKeys | `all` \| `Iterable<React.Key>` | The initial selected keys in the collection (uncontrolled). | - |
| variant | `flat` \| `bordered` \| `faded` \| `underlined` | The variant of the select. | `flat` |
| color | `default` \| `primary` \| `secondary` \| `success` \| `warning` \| `danger` | The color of the select. | `default` |
| size | `sm` \| `md` \| `lg` | The size of the select. | `md` |
@@ -392,7 +400,7 @@ the popover and listbox components.
| ----------------- | --------------------------------------------- | ------------------------------------------------------------------------------------ |
| onClose | `() => void` | Callback fired when the select popover is closed. |
| onOpenChange | `(isOpen: boolean) => void` | Callback fired when the select popover is opened or closed. |
| onSelectionChange | `(keys: React.Key[]) => void` | Callback fired when the selected keys change. |
| onSelectionChange | `(keys: "all" \| Set<React.Key> & {anchorKey?: string; currentKey?: string}) => void` | Callback fired when the selected keys change. |
| onChange | `React.ChangeEvent<HTMLSelectElement>` | Native select change event, fired when the selected value changes. |
| renderValue | [RenderValueFunction](#render-value-function) | Function to render the value of the select. It renders the selected item by default. |
@@ -92,7 +92,7 @@ You can customize the copy and copied icons by using the `copyIcon` and `checkIc
- **copyIcon**: The copy icon slot.
- **checkIcon**: The check icon slot.
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -104,7 +104,7 @@ You can customize the copy and copied icons by using the `copyIcon` and `checkIc
| size | `sm` \| `md` \| `lg` | The size of the snippet. | `md` |
| radius | `none` \| `sm` \| `md` \| `lg` | The radius of the snippet. | `lg` |
| symbol | `string` \| `ReactNode` | The symbol to show before the snippet. | `$` |
| timeout | `number` | he time in milliseconds to wait before resetting the clipboard. | `2000` |
| timeout | `number` | The time in milliseconds to wait before resetting the clipboard. | `2000` |
| codeString | `string` | The code string to copy. if `codeString` is passed, it will be copied instead of the children. | - |
| tooltipProps | [TooltipProps](/docs/components/tooltip#tooltip-props) | The props of the tooltip. | - |
| copyIcon | `ReactNode` | The copy icon. | - |
@@ -68,7 +68,7 @@ Spinner express an unspecified wait time or display the length of a process.
- **circle2**: The second circle of the spinner.
- **label**: The label content.
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
+3 -3
View File
@@ -97,7 +97,7 @@ In case you need to customize the switch even further, you can use the `useSwitc
<CodeDemo title="Custom Implementation" files={switchContent.customImpl} />
<Spacer y={4} />{" "}
<Spacer y={4} />
## Data Attributes
@@ -118,7 +118,7 @@ In case you need to customize the switch even further, you can use the `useSwitc
- **data-disabled**:
When the switch is disabled. Based on `isDisabled` prop.
<Spacer y={4} />{" "}
<Spacer y={4} />
## Accessibility
@@ -129,7 +129,7 @@ In case you need to customize the switch even further, you can use the `useSwitc
- Labeling support for assistive technology.
- Exposed as a switch to assistive technology via ARIA
<Spacer y={4} />{" "}
<Spacer y={4} />
## API
@@ -223,6 +223,7 @@ sure to install it before using the sorting feature.
npm: "npm install @react-stately/data",
yarn: "yarn add @react-stately/data",
pnpm: "pnpm add @react-stately/data",
bun: "bun add @react-stately/data",
}}
/>
@@ -288,6 +289,23 @@ It is also possible to use the [Pagination](/components/pagination) component to
Table also supports infinite pagination. To do so, you can use the `useAsyncList` hook from [@react-stately/data](https://react-spectrum.adobe.com/react-stately/useAsyncList.html) and
[@nextui-org/use-infinite-scroll](https://www.npmjs.com/package/@nextui-org/use-infinite-scroll) hook.
<PackageManagers
commands={{
npm: "npm install @react-stately/data @nextui-org/use-infinite-scroll",
yarn: "yarn add @react-stately/data @nextui-org/use-infinite-scroll",
pnpm: "pnpm add @react-stately/data @nextui-org/use-infinite-scroll",
bun: "bun add @react-stately/data @nextui-org/use-infinite-scroll",
}}
/>
```jsx
import { useInfiniteScroll } from "@nextui-org/use-infinite-scroll";
import { useAsyncList } from "@react-stately/data";
```
<Spacer y={2} />
<CodeDemo
asIframe
title="Infinite Paginated Table"
@@ -295,6 +313,8 @@ Table also supports infinite pagination. To do so, you can use the `useAsyncList
files={tableContent.infinitePagination}
previewHeight="620px"
displayMode="visible"
showPreview={true}
showOpenInCodeSandbox={false}
iframeSrc="/examples/table/infinite-pagination"
/>
+1 -2
View File
@@ -255,7 +255,6 @@ You can customize the `Tabs` component by passing custom Tailwind CSS classes to
| disabledKeys | `React.Key[]` | The item keys that are disabled. These items cannot be selected, focused, or otherwise interacted with. | - |
| selectedKey | `React.Key` | The key for the currently selected item. | - |
| defaultSelectedKey | `React.Key` | The key for the initially selected item. | - |
| disallowEmptySelection | `boolean` | Whether the tabs should allow empty selection. | `false` |
| shouldSelectOnPressUp | `boolean` | Whether the tabs selection should occur on press up instead of press down. | `true` |
| keyboardActivation | `automatic` \| `manual` | Whether tabs are activated automatically on focus or manually. | `automatic` |
| motionProps | [MotionProps](#motion-props) | The props to modify the cursor framer motion animation. Use the `variants` API to create your own animation. | - |
@@ -265,6 +264,7 @@ You can customize the `Tabs` component by passing custom Tailwind CSS classes to
| classNames | `Record<"base" "tabList" "tab" "tabContent" "cursor" "panel", string>` | Allows to set custom class names for the card slots. | - |
| placement | `top` \| `bottom` \| `start` \| `end` | The position of the tabs. | `top` |
| isVertical | `boolean` | Whether the tabs are vertical. | `false` |
| destroyInactiveTabPanel | `boolean` | Whether to destroy inactive tab panel when switching tabs. Inactive tab panels are inert and cannot be interacted with. | `true` |
### Tabs Events
@@ -286,7 +286,6 @@ You can customize the `Tabs` component by passing custom Tailwind CSS classes to
| ping | `string` | A space-separated list of URLs to ping when the link is followed. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#ping). | - |
| referrerPolicy | `HTMLAttributeReferrerPolicy` | How much of the referrer to send when following the link. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#referrerpolicy). | - |
| shouldSelectOnPressUp | `boolean` | Whether the tab selection should occur on press up instead of press down. | - |
| destroyInactiveTabPanel | `boolean` | Whether to destroy inactive tab panel when switching tabs. Inactive tab panels are inert and cannot be interacted with. | `true` |
#### Motion Props

Some files were not shown because too many files have changed in this diff Show More