Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: global labelPlacement prop #4346

Merged
merged 6 commits into from
Jan 30, 2025
Merged

feat: global labelPlacement prop #4346

merged 6 commits into from
Jan 30, 2025

Conversation

macci001
Copy link
Contributor

@macci001 macci001 commented Dec 12, 2024

Closes #4621

📝 Description

Adds the support for the labelPlacement prop in NextUI provider.

🚀 New behavior

  • Following components have been tested:
    • input
    • textarea
    • select
    • auto-complete
    • date-picker
    • date-range-picker
    • time-input

💣 Is this a breaking change (Yes/No): No

Summary by CodeRabbit

Release Notes

  • New Features

    • Added global labelPlacement property for consistent label positioning across components.
    • Introduced useLabelPlacement hook for flexible label positioning.
    • Enhanced Storybook configuration to support label placement customization.
  • Improvements

    • Streamlined label placement logic in date input, time input, date picker, select, and input components.
    • Updated default label placement for select component from "inside" to "outside".
  • Breaking Changes

    • Removed default "inside" label placement for some components.
    • Updated peer dependency versions for system and theme packages.

Copy link

linear bot commented Dec 12, 2024

Copy link

changeset-bot bot commented Dec 12, 2024

🦋 Changeset detected

Latest commit: 8523a5f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 28 packages
Name Type
@heroui/date-picker Patch
@heroui/date-input Patch
@heroui/select Patch
@heroui/input Patch
@heroui/system Patch
@heroui/theme Patch
@heroui/react Patch
@heroui/accordion Patch
@heroui/autocomplete Patch
@heroui/drawer Patch
@heroui/modal Patch
@heroui/navbar Patch
@heroui/popover Patch
@heroui/tabs Patch
@heroui/calendar Patch
@heroui/checkbox Patch
@heroui/dropdown Patch
@heroui/form Patch
@heroui/input-otp Patch
@heroui/listbox Patch
@heroui/menu Patch
@heroui/radio Patch
@heroui/slider Patch
@heroui/snippet Patch
@heroui/table Patch
@heroui/tooltip Patch
@heroui/aria-utils Patch
@heroui/framer-utils Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link

vercel bot commented Dec 12, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
heroui ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 30, 2025 11:12am
heroui-sb ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 30, 2025 11:12am
nextui-docs-v2 ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 30, 2025 11:12am
nextui-storybook-v2 ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 30, 2025 11:12am

Copy link
Contributor

coderabbitai bot commented Dec 12, 2024

Walkthrough

The pull request introduces a global labelPlacement property across multiple components in the @heroui library. This enhancement allows developers to consistently define label positioning through a centralized configuration. The changes span components like date-picker, date-input, select, input, system, and theme, implementing a new useLabelPlacement hook to manage label placement dynamically. The modification provides more flexible UI layout options and simplifies label positioning across different components.

Changes

File Path Change Summary
packages/core/system/src/provider-context.ts Added optional labelPlacement property to ProviderContextProps
packages/core/system/src/provider.tsx Integrated labelPlacement into NextUIProviderProps and context
packages/core/system/src/hooks/use-label-placement.ts Created new hook for managing label placement logic
Multiple theme component files Removed default labelPlacement: "inside" from various components
Multiple component use-* files Updated label placement determination using new useLabelPlacement hook
Multiple package.json files Updated peer dependency versions for system and theme packages

Assessment against linked issues

Objective Addressed Explanation
Global theme setting for label placement
Ability to set default label placement
Reduce need to override label placement for individual components

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ae78d81 and 8523a5f.

📒 Files selected for processing (1)
  • packages/components/input/src/use-input.ts (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/components/input/src/use-input.ts
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: TypeScript
  • GitHub Check: Build

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (5)
.changeset/chilly-dancers-switch.md (1)

9-10: Enhance the changeset description

The current description could be more informative. Consider adding:

  • Available values for labelPlacement (inside, outside, outside-left)
  • Impact on affected components
  • Migration notes if any

Also, add a space between "prop" and the ticket reference.

Here's a suggested improvement:

-Adding support for global labelPlacement prop.(ENG-1694)
+Adding support for global labelPlacement prop to customize label positioning across components. 
+
+The labelPlacement prop can be set globally via NextUIProvider with the following values:
+- inside
+- outside
+- outside-left
+
+Affects: Input, Select, DatePicker, DateInput, and related components.
+
+(ENG-1694)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~10-~10: Possible missing comma found.
Context: ...": patch --- Adding support for global labelPlacement prop.(ENG-1694)

(AI_HYDRA_LEO_MISSING_COMMA)

packages/core/system/src/provider-context.ts (1)

14-19: Enhance JSDoc documentation for labelPlacement

While the documentation is present, it would be more helpful to include:

  • Description of each possible value
  • Example usage
  • Default behavior implications

Consider expanding the documentation like this:

  /**
   * Position where the label should appear.
   *
+  * @description
+  * - "inside": Label appears within the input field
+  * - "outside": Label appears above the input field
+  * - "outside-left": Label appears to the left of the input field
+  * 
+  * @example
+  * ```tsx
+  * <NextUIProvider labelPlacement="outside">
+  *   <Input label="Username" />
+  * </NextUIProvider>
+  * ```
   *
   * @default undefined
   */
apps/docs/content/docs/api-references/nextui-provider.mdx (1)

145-150: Enhance the documentation for the labelPlacement prop.

The documentation could be more detailed to help developers understand the impact of each value:

 `labelPlacement`
 
-  - **Description**: Determines the position where label should appear, such as inside, outside or outside-left of the component.
+  - **Description**: Determines the position where label should appear in form components:
+    - `inside`: Places the label inside the input field, floating when focused or filled
+    - `outside`: Places the label above the input field
+    - `outside-left`: Places the label to the left of the input field
+    - `undefined`: Uses the default placement for each component
-  - **Type**: `string` | `undefined`
-  - **Possible Values**: `inside` | `outside` | `outside-left` | `undefined`
+  - **Type**: `"inside" | "outside" | "outside-left" | undefined`
   - **Default**: `undefined`
packages/components/date-input/src/use-time-input.ts (1)

137-145: Optimize the useMemo dependency array.

Consider destructuring the required properties earlier to make the dependencies more explicit and maintainable.

+  const globalLabelPlacement = globalContext?.labelPlacement;
+
   const labelPlacement = useMemo<DateInputVariantProps["labelPlacement"]>(() => {
     const labelPlacement =
-      originalProps.labelPlacement ?? globalContext?.labelPlacement ?? "inside";
+      originalProps.labelPlacement ?? globalLabelPlacement ?? "inside";
 
     if (labelPlacement === "inside" && !label) {
       return "outside";
     }
 
     return labelPlacement;
-  }, [originalProps.labelPlacement, globalContext?.labelPlacement, label]);
+  }, [originalProps.labelPlacement, globalLabelPlacement, label]);
packages/components/date-picker/src/use-date-picker-base.ts (1)

12-12: Consider importing from a shared location.

The useMemo import could be grouped with other React hooks if they're imported from the same location.

-import {useCallback, useMemo} from "react";
+import {useCallback, useMemo, type ReactNode} from "react";
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 77206bc and 5fffcdd.

📒 Files selected for processing (14)
  • .changeset/chilly-dancers-switch.md (1 hunks)
  • apps/docs/content/docs/api-references/nextui-provider.mdx (1 hunks)
  • packages/components/date-input/src/use-date-input.ts (1 hunks)
  • packages/components/date-input/src/use-time-input.ts (1 hunks)
  • packages/components/date-picker/src/use-date-picker-base.ts (2 hunks)
  • packages/components/date-picker/src/use-date-range-picker.ts (4 hunks)
  • packages/components/input/src/use-input.ts (2 hunks)
  • packages/components/select/src/use-select.ts (1 hunks)
  • packages/core/system/src/provider-context.ts (1 hunks)
  • packages/core/system/src/provider.tsx (3 hunks)
  • packages/core/theme/src/components/date-input.ts (0 hunks)
  • packages/core/theme/src/components/input.ts (0 hunks)
  • packages/core/theme/src/components/select.ts (0 hunks)
  • packages/storybook/.storybook/preview.tsx (2 hunks)
💤 Files with no reviewable changes (3)
  • packages/core/theme/src/components/date-input.ts
  • packages/core/theme/src/components/input.ts
  • packages/core/theme/src/components/select.ts
🧰 Additional context used
🪛 LanguageTool
.changeset/chilly-dancers-switch.md

[uncategorized] ~10-~10: Possible missing comma found.
Context: ...": patch --- Adding support for global labelPlacement prop.(ENG-1694)

(AI_HYDRA_LEO_MISSING_COMMA)

🔇 Additional comments (11)
.changeset/chilly-dancers-switch.md (1)

1-8: LGTM: Version bumps are appropriate

The patch version bumps are correctly specified for all affected components, which aligns with the non-breaking nature of the changes.

packages/storybook/.storybook/preview.tsx (2)

10-10: LGTM: Proper integration of labelPlacement in Storybook decorator

The labelPlacement property is correctly destructured from globals and properly passed to the NextUIProvider.

Also applies to: 16-16


130-141: LGTM: Well-structured Storybook toolbar configuration

The labelPlacement toolbar configuration is well-implemented with clear title, description, and appropriate options matching the provider's supported values.

packages/core/system/src/provider.tsx (1)

61-61: LGTM: Clean implementation of labelPlacement in provider

The labelPlacement property is properly:

  • Destructured from props
  • Included in the memoized context
  • Added to the dependency array

Also applies to: 89-89, 98-98

packages/components/date-input/src/use-date-input.ts (1)

195-203: LGTM: Clean implementation of labelPlacement logic

The implementation correctly handles the label placement hierarchy:

  1. Uses prop value if provided
  2. Falls back to global context value
  3. Defaults to "inside"
  4. Automatically switches to "outside" when no label is present
packages/components/input/src/use-input.ts (2)

234-242: LGTM: Proper handling of file input edge case

The code correctly handles the special case for file inputs by defaulting to "outside" placement and providing a clear warning when the global context attempts to use "inside" placement.


253-261: LGTM: Consistent implementation of labelPlacement logic

The implementation aligns with the standard pattern used across components:

  1. Props take precedence
  2. Falls back to global context
  3. Uses "inside" as default
  4. Automatically switches to "outside" when no label is present
packages/components/select/src/use-select.ts (1)

347-355: LGTM: Consistent implementation of labelPlacement logic

The implementation maintains consistency with other components by following the same pattern:

  1. Props take precedence
  2. Falls back to global context
  3. Uses "inside" as default
  4. Automatically switches to "outside" when no label is present
packages/components/date-picker/src/use-date-range-picker.ts (3)

63-63: LGTM: Label parameter addition is well-integrated

The addition of the label parameter to the hook's props is consistent with the PR's objective and maintains backward compatibility.


399-399: LGTM: Proper label prop handling

The label prop is correctly forwarded to the input group and exposed in the hook's return value, following React best practices.

Also applies to: 427-427


148-156: Verify the automatic label placement behavior

The logic forces outside placement when there's no label, even if inside was explicitly specified. This automatic override might:

  1. Cause unexpected behavior for consumers
  2. Lead to layout shifts if the label changes dynamically
  3. Conflict with explicit placement preferences

Consider:

  • Documenting this behavior
  • Making it configurable
  • Respecting the explicit placement preference
✅ Verification successful

The automatic label placement behavior is consistent across components

The behavior of forcing outside placement when there's no label is a deliberate design pattern implemented consistently across multiple form components:

  • Input component (use-input.ts)
  • Select component (use-select.ts)
  • Date/Time inputs (use-date-input.ts, use-time-input.ts)
  • Date pickers (use-date-picker-base.ts, use-date-range-picker.ts)

This consistent implementation suggests it's an intentional UX decision to prevent empty inside labels that could cause layout issues or poor user experience. The behavior is also handled uniformly through the NextUI Provider's global context.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for similar behavior in other components
ast-grep --pattern 'if ($placement === "inside" && !$label) {
  return "outside";
}'

Length of output: 86


Script:

#!/bin/bash
# Search for similar behavior with labelPlacement in other components
rg -A 3 'labelPlacement.*=.*"inside"' --type ts

# Search for any label placement logic
rg -A 3 'labelPlacement' --type ts

# Search for documentation about label placement
fd README.md | xargs rg -i 'label.*placement|placement.*label'

Length of output: 67972

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (1)
packages/core/system/src/hooks/use-label-placement.ts (1)

12-20: Consider adding JSDoc documentation.

The implementation logic is solid with proper fallback handling and edge cases. However, adding JSDoc documentation would help explain the behavior, especially the special case where "inside" placement defaults to "outside" when no label is provided.

+/**
+ * Custom hook to determine label placement based on props and global context.
+ * @param props.labelPlacement - Optional label placement override
+ * @param props.label - Optional label content
+ * @returns The computed label placement, defaulting to "outside" if placement is "inside" with no label
+ */
 export function useLabelPlacement(props: {
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5fffcdd and db5d31c.

📒 Files selected for processing (8)
  • packages/components/date-input/src/use-date-input.ts (2 hunks)
  • packages/components/date-input/src/use-time-input.ts (2 hunks)
  • packages/components/date-picker/src/use-date-picker-base.ts (2 hunks)
  • packages/components/date-picker/src/use-date-range-picker.ts (5 hunks)
  • packages/components/select/src/use-select.ts (2 hunks)
  • packages/core/system/src/hooks/index.ts (1 hunks)
  • packages/core/system/src/hooks/use-label-placement.ts (1 hunks)
  • packages/core/system/src/index.ts (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • packages/core/system/src/hooks/index.ts
🚧 Files skipped from review as they are similar to previous changes (5)
  • packages/components/date-input/src/use-time-input.ts
  • packages/components/date-picker/src/use-date-picker-base.ts
  • packages/components/select/src/use-select.ts
  • packages/components/date-input/src/use-date-input.ts
  • packages/components/date-picker/src/use-date-range-picker.ts
🔇 Additional comments (3)
packages/core/system/src/hooks/use-label-placement.ts (2)

5-8: LGTM! Well-defined props interface.

The props interface is clear and type-safe, using proper TypeScript types for labelPlacement and label.


9-10: Verify error handling for missing provider context.

The hook accesses globalContext without null checks. While the optional chaining on line 10 prevents runtime errors, we should verify this behavior is intentional.

packages/core/system/src/index.ts (1)

36-37: LGTM! Clean export addition.

The useLabelPlacement hook export follows the established pattern and maintains consistency with other exports.

@macci001 macci001 requested a review from wingkwong December 13, 2024 14:23
@wingkwong wingkwong added this to the v2.7.0 milestone Dec 14, 2024
@wingkwong wingkwong changed the title feat: adding the support for labelPlacement globally feat: global labelPlacement prop Dec 16, 2024
Copy link
Member

@wingkwong wingkwong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please resolve conflicts

@wingkwong
Copy link
Member

  • synced with canary
  • updated peerDepenedency

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
.changeset/chilly-dancers-switch.md (1)

10-10: Enhance the changeset description.

Consider adding more details about:

  • The purpose and benefits of the global labelPlacement prop
  • The components affected by this change
  • Any migration steps or usage examples

Also, add a comma after "prop" for better readability.

-Adding support for global labelPlacement prop. (ENG-1694)
+Adding support for global labelPlacement prop, enabling consistent label positioning across date-picker, date-input, select, input, and other components. (ENG-1694)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~10-~10: Possible missing comma found.
Context: ...": patch --- Adding support for global labelPlacement prop. (ENG-1694)

(AI_HYDRA_LEO_MISSING_COMMA)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 03e9405 and ae78d81.

📒 Files selected for processing (1)
  • .changeset/chilly-dancers-switch.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
.changeset/chilly-dancers-switch.md

[uncategorized] ~10-~10: Possible missing comma found.
Context: ...": patch --- Adding support for global labelPlacement prop. (ENG-1694)

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Build
🔇 Additional comments (1)
.changeset/chilly-dancers-switch.md (1)

1-8: LGTM! Patch version bumps are appropriate.

The patch version updates align with the non-breaking nature of adding the global labelPlacement prop support across these components.

@wingkwong wingkwong removed their assignment Jan 30, 2025
@jrgarciadev jrgarciadev merged commit 7804de0 into canary Jan 30, 2025
8 checks passed
@jrgarciadev jrgarciadev deleted the macci001/eng-1694 branch January 30, 2025 12:49
@jprosevear
Copy link

Works great in canary. Saves a whole bunch of abstraction for me.

jrgarciadev added a commit that referenced this pull request Feb 18, 2025
* chore: org name change (#4596)

* chore: update brand name (#4600)

* fix(calendar): function components cannot be given refs (#4614)

* docs(modal): fix small typos and add clarifying language (#4629)

* chore(deps): bump RA versions (#4611)

* chore(deps): bump RA versions

* chore(deps): bump @internationalized/date

* chore(docs): update RA versions

* chore(docs): update versions

* chore(docs): use string type

* chore(deps): update @react-types versions

* refactor(docs): undo version change since they will be removed in another PR

* feat: tailwind variants upgrade (#4386)

* feat: tailwind variants upgrade

* chore: restore npmrc

* chore: adjust pkgs

* fix: versions

* fix: lock file

* chore(changeset): update package name

* chore(deps): use fixed version

* fix(test): incorrect package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* feat: add fn win alt keys (#4638)

* feat: add new keys

* feat: add new keys

* chore: update docs & storybook as well

---------

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

* fix(use-image): load images after props change (#4523)

* fix(use-image): load image after props change

* chore(changeset): add changeset

* refactor(use-image): remove unused props

* feat(use-image): add test case

* fix(use-image): apply useCallback to load & remove status check

* chore(changeset): update package name

* feat: global labelPlacement prop (#4346)

* feat: adding the support for labelPlacement globally

* chore: reafctoring

* chore: updating the dependency

* chore(changeset): update package name

* chore: adding Marcus's suggestions

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* fix(form): use native as default validation behavior (#4425)

* fix(form): use native as default validation behavior

* docs(form): delete explicit validationBehavior=native

* test(form): adjusted form test validation behaviors

* chore(form): adjusted stories with forms

* chore(changeset): changed form default validation behavior to native

* chore(changeset): removed packages with only test changes

* chore(changeset): change to patch

* chore(changeset): update package name

* refactor(docs): update package name

* refactor(docs): update to heroui

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* feat(spinner): new spinner variants (#4555)

* refactor(spinner): add default variant

* feature(spinner): add gradient variant

* feature(spinner): add dots variant

* feature(spinner): add dots-blink variant

* feature(spinner): add spinner-bars

* chore(spinner): add variants storybook

* chore: adding variants to docs

* chore: simplyfying the styles and modifying docs

* chore: nits

* chore: updating the dots and dots-blink animation

* chore: nits

* chore: adding Marcus' suggestions

* chore: adding Marcus's suggestions

* chore: adding junior's suggestions

---------

Co-authored-by: Maharshi Alpesh <maharshialpesh@gmail.com>

* fix: rename wrapper to tab wrapper (#4636)

* fix: rename wrapper to tab wrapper

* docs: update

* docs: update

* docs: update

* fix: rename wrapper to tab wrapper

* refactor: remove feature request from issue template (#4661)

* refactor(.github): remove feature request template

* refactor(.github): add a link to redirect to discussion (feature request category)

* docs(table): include TS examples to show Selection type usage (#4793)

* fix(listbox): unexpected scrollShadow on virtualized listbox (#4784)

* fix(listbox): add scroll height & scroll top to listbox

* fix(use-data-scroll-overflow): handle scrollHeight & scrollTop in virtualization

* chore(changeset): add changeset

* refactor(theme): replace left & right by start & end to support RTL (#4782)

* fix(date-picker): deprecate dateInputClassNames (#4780)

* chore(date-picker): add missing slots comments

* fix(date-picker): remove dateInputClassNames

* fix(date-picker): use classNames instead of dateInputClassNames

* chore(docs): add missing attributes

* fix(date-picker): use classNames instead of dateInputClassNames

* feat(changeset): add changeset

* fix(docs): broken type

* refactor(navbar): remove dropdown menu width (#4757)

* refactor: remove dropdown menu width

* refactor: shorter description

* refactor: rename instances of NextUI to Hero UI (#4645)

* docs: use the correct org for `img.shields.io` license in README

* docs: update opencollective org name

* docs: use correct org name in site footer

* docs: update image urls for heroui pro sections

* docs: update laravel installation keywords in route config

* docs: add `heroui` tag to `Introducing HeroUI` blog post

* fix: use correct names in `plop/components/src` templates

* chore: add empty changeset

* fix: revert image urls back to `nextuipro.nyc3.cdn.digitaloceanspaces...`

* chore: undo footer change

* chore: update incorrect brand name

* chore(docs): nextui -> heroui

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* fix(input): missing clear button with file input type (#4599)

* fix(theme): sync with input theme on labelPlacement (#4597)

* fix(theme): sync with input theme on labelPlacement

* chore(select): revise width for labelPlacement

* chore(changeset): add changeset

* test(input): input interaction tests (#4579)

* test(input): user interaction tests

* test(input): missing act wrappers

---------

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

* fix(calendar): rtl navigation (#4565)

* fix(calendar): rtl navigation

* chore(changeset): fixed reverse behavior of NextButton and PrevButton in the RTL calendar

* chore(changeset): update package name

* refactor(calendar): prefer isRTL and use className in theme package instead

* chore(changeset): add theme package as well

* chore(calendar): add min theme package to 2.4.7

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* refactor: remove unnecessary className passing to tv and make naming consistent (#4558)

* refactor: remove unnecessary className passing to tv

* refactor(button): move styles to getButtonProps

* refactor: rename classNames to styles to keep the naming consistent

* fix: deprecation warning triggered by internal onClick  (#4557)

* fix(use-aria-link): onClick deprecation warning

* fix(use-aria-button): onClick deprecation warning

* feat(changeset): add changeset

* fix(use-aria-button): incorrect prop name

* chore(changeset): update package name

* ci: add pkg pr new (#4540)

* ci: add pkg pr new

* ci: add pkg pr new

* chore(workflow): update repo name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* chore(docs): remove shouldBlockScroll prop in Tooltip page (#4539)

* fix(use-pagination): controlled page after delay (#4536)

* fix(use-pagination): add page to dependency for scrollTo

* feat(changeset): add changeset

* chore(changeset): update package name

* fix(tooltip): accessing element.ref was removed in React 19 issue (#4531)

* fix(tooltip): accessing element.ref was removed in React 19 issue

* chore(changeset): update package name

* fix: correctly dismissable default value (#4524)

* fix: correctly dismissable default value

* fix: correctly dismissable default value

* chore(changeset): update package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* fix(theme): input height in innerWrapper in Select (#4512)

* fix(select): fix input height #4321

* chore(select): changed package name in changeset to theme

* chore(select): updated changeset message

* chore(changeset): update package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* fix: inert value in next15 (#4491)

* feat: add post install

* feat: add postinstall

* feat: add postinstall

* fix: type

* fix: type

* fix: next version

* chore(changeset): update package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* refactor: remove cursor-hit in hiddenInputClasses (#4474)

* refactor: remove cursor-hit in hiddenInputClasses

* Create lazy-ants-exercise.md

* chore(changeset): update package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* feat(table): virtualization (#4285)

* feat: baseline virtualization for table

* merge branch canary

* fix: table layout

* fix: calc header height w layouteffect to offset padding

* Merge branch 'canary' into feat/eng-1633-virtualization-for-table

* chore: remove unused files and comments

* chore: add missing package

* feat: add shouldVirtualize conditional to render virtualized-table

* feat: update docs for table

* feat: use wrapper to support theme styles

* chore: add changeset

* chore(changeset): update package name

* chore(deps): pnpm-lock.yaml

* fix(table): outdated package name

* chore(changeset): add issue number

* fix(deps): keep the version consistent with other components

* fix(table): incorrect displayName

* refactor(table): use VirtualizedTemplate

* chore(deps): bump `@tanstack/react-virtua`

* chore(deps): typecheck issue

* fix(table): do not use any type

* chore: remove auto virtualization

---------

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

* feat(toast): introduce Toast component (#4437)

* feat: initial commit

* chore: adding the animation

* chore: nits

* chore: fixes and adding draft1 of stories

* chore: adding the docs draft

* chore: adding the swiping interaction for toast removal

* chore: adding the tests

* fix: improving the progress bar logix

* chore: refactoring and refining the animations

* fix: making the animations compatible with the positons

* chore: fixing the styles

* chore: modifying the animations

* chore: improving the animations

* chore: adding the decorator to the story-book

* chore: fixing the animations and positions

* fix: handle expand region on touch

* feat: adding the promises support

* chore: updating the styles

* chore: improving styles

* chore: styles correction

* fix: adding junior's suggestions

* chore: correcting styles

* fix: fixing the timer behavior

* chore: adding the spinner to the toast

* chore: full width for mobile

* chore: modifying styles

* chore: fixing the positions on smaller devices

* chore: adding story with description

* chore: adding credits for sonner

* fix: adding junior's suggestions

* chore: adding the exit animation

* fix: adding junior's suggestions

* chore: improving the swipe animations

* fix: fixing the swipe animations on touch

* chore: adding tests

* chore: adding swipe threshild and initial position variable

* fix: fixing autoclose in timeout

* chore: modifying the docs

* chore: fixing the conflict

* chore: adding marcus' suggestions

* chore: adding the bottom animations

* chore: modying docs

* chore: removing nextui references

* chore: adding info about the provider

* chore: updating the docs

* chore: versions in package.json

* chore: nits

* chore: adding junior's suggestions

* chore: nits

* fix: applying junior's suggestions

* chore: adding junior's suggestions

* chore: using domMax

* fix: adding Marcus's suggestions

* chore: add global toast props and custom close icon

* chore: adding the defaultTimout provider prop

* chore: modifying defaultTimeout

* chore: nits

* fix: adding Marcus' suggestions

* chore: fixing bg

* chore(deps): bump RA deps

* fix: fixing the color discrepancy due to the timer

* chore: moving the kapan ai to the left side

* refactor(toast): update author

* chore: nit

* chore: improvements

* chore: updating the solid variant

---------

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

* fix(docs): correct Tab usage example (#4821)

* chore(docs): add note itemHeight for virtualization (#4822)

* chore(docs): add note itemHeight for virtualization

* fix: format

* fix(docs): fix horizontal scrolling example in scroll-shadow (#4820)

* refactor: update author in package.json (#4800)

* feat(button): export PressEvent for onPress event typing   (#4819)

* fix(docs): failed to install dependencies in StackBlitz (#4639)

* chore(Docs): remove step 2 from "Using use-theme-hook" (#4797)

* fix(docs): incorrect code Modal placement (#4652)

* docs: update DatePicker example to remove "time" label as time selection is not supported in this example (#4443)

* feat(button): export PressEvent for onPress event typing

* revert unnecessary changes

* chore: format

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>
Co-authored-by: Praharsh Bhatt <30700808+praharshbhatt@users.noreply.github.com>

* fix(listbox): pass missing press events to usePress (#4812)

* fix(listbox): pass missing press events to usePress

* feat(listbox): add test case for press event

* chore(changeset): add changeset

* fix(checkbox): inherit stroke in CheckboxIcon (#4811)

* fix: `SelectItem`, `ListboxItem`, and `AutocompleteItem` not to accept `value` props (#4653)

* fix(select): `SelectItem` does not accept value props

* refactor: do not use the index as `key`

* Update .changeset/light-hairs-draw.md

* chore: remove unnecessary `value` props

* chore: update changeset

* refactor: remove unnecessary value prop

---------

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

* fix: pkg package scope (#4823)

* fix: pkg package scope

* fix: pkg package scope

* fix: pkg package scope

* fix(theme): border radius in Table when isMultiSelectable (#4808)

* fix(theme): border radius in Table when isMultiSelectable

* chore(theme): added changeset (#4807)

* chore: removing the kapa ai for toast doc page (#4833)

* fix(accordion): add data-slot attributes to accordion (#4832)

* fix(accordion): add data-slot attributes to accordion

* chore

---------

Co-authored-by: Hovannes Markarian <hovannes.markarian@socrate.fr>
Co-authored-by: աӄա <wingkwong.code@gmail.com>

* chore(docs): update versions (#4836)

* docs(themes): adding theme generator (#4626)

* chore: adding xylish's contributions + modifying styles

* chore: nextui to heroui

* chore: colors in theme generator

* chore: radiuses, disable-opacity

* chore: fixing the configuration box styles

* chore: adding the showcase elemtents

* chore: modifying styles

* chore: adding the fonts

* chore: adding the scaling

* chore: removing the calendar

* feat: adding the border-width

* chore: modifying style for mobile

* chore: modifying the styles

* chore: removing the NextUI references + small bug fix

* chore: adding coderabits reviews

* fix: borderWidth not getting applied on breadcrumbs and input

* chore: rebasing

* chore: modifying the styles

* chore: updating the styles for the smaller devices

* chore: refactoring

* chore: improvements

* chore: making the fonts workable

* chore: making the fonts workable

* chore: modifying the swatch according to the theme

* chore: adding the default selected template

* chore: modifying mobile styles

* chore: fixing the popover

* chore: nit

* fix: fixing the select styles

* chore: modifying the mobile styles

* chore: modifying the styles

* fix: adding junior's suggestions

* fix: fixing the breadcrumb

* fix: adding junior's suggestions

* feat: introduce NumberInput (#4475)

* feat(number-field): init structure

* feat(deps): add `@nextui-org/button` & `@react-types/button`

* feat(theme): export number-field

* feat(number-field): storybook init structure

* feat(number-field): add NumberFieldHorizontalStepper

* feat(number-field): add NumberFieldHorizontalStepper

* feat(theme): init number field theme

* feat(number-field): number-field draft

* refactor(number-field): revise stepper icons

* feat(shared-icons): add ChevronLeftIcon

* feat(theme): stepperButton styles

* feat(theme): number-field styles

* fix(number-field): label layout

* feat(number-field): vertical stepper wrapper

* feat(number-field): use-number-field (wip)

* feat(number-field): add data-direction

* feat(theme): center the text if it is horizontal stepper

* feat(number-field): add HorizontalStepper

* feat(number-field): add HideStepper

* chore(number-field): revise minValue & defaultValue

* feat(docs): init number field structure

* fix(theme): outside-left styles

* refactor(theme): remove labelPlacement styles

* refactor(number-field): remove labelContent logic

* refactor(number-field): remove labelPlacement args

* feat(number-field): helper text

* feat(number-field): revise number field stories

* feat(number-field): description

* refactor(number-field): revise number field stories

* feat(theme): numberFieldLabelClasses

* fix(number-field): incorrect button props

* fix(number-field): typing issue on stepper buttons

* chore(number-field): add aria-label

* refactor(number-field): merge props

* fix(number-field): pass originalProps instead

* chore(number-field): revise Required story args

* feat(number-field): add WithStepValue & WithWheelDisabled & revise stories

* chore(number-field): add label to Required

* feat(docs): number-field doc page

* fix(number-field): typing issue

* fix(number-field): test cases

* fix(number-field): user.keyboard & defaultValue

* fix(number-field): should work with defaultValues

* chore(number-field): add type: number

* chore(number-field): remove hidden related code

* fix(number-field): numeric value

* chore(changeset): add changeset

* feat(deps): add "@nextui-org/number-field" to docs

* feat(react): export `@nextui-org/number-field`

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

* feat(docs): number-field examples

* chore(number-field): use text instead

* refactor(number-field): remove unnecessary filled-within

* fix(number-field): test case

* chore(number-field): remove aria-label for stepper buttons

* feat(docs): add incrementAriaLabel & decrementAriaLabel to NumberField

* chore(number-field): reorder WithFormatOptions

* fix(deps): update number-field's peerDependencies & dependencies

* feat(number-field): hidden input for holding numeric vaule

* fix(docs): number field title

* feat(docs): add format options to number field

* chore(docs): revise number field content

* chore(number-field): add type to useDOMRef

* fix(number-field): clear button

* fix(theme): clear button styles

* refactor(theme): stepper button styles

* chore(number-field): accept stepperButton class

* fix(theme): helper wrapper padding

* feat(deps): add `@react-aria/i18n`

* fix(number-field): use locale from `@react-aria/i18n`

* fix(deps): dependency order

* fix(docs): incorrect command

* chore(docs): remove type=number

* chore(theme): add padding to stepper wrapper

* fix(number-field): avoid resetting value

* fix(number-field): storybook

* chore(docs): remove custom impl

* chore(docs): update docs code & content

* chore(number-field):  migrate to heroui

* chore(number-field): migrate to heroui

* chore(number-field): migrate to heroui

* chore: rename to number input

* fix(number-input): incorrect import

* chore(docs): rename to number input

* chore: change to number input

* refactor(number-input): change label to amount

* fix(docs): use heroui commands

* chore(changeset): update package name

* refactor(number-input): remove steps

* refactor: remove helper text

* feat(number-input): label placement

* refactor(number-input): rename stepper

* fix(theme): isClearable

* feat(docs): add label placements

* refactor(docs): update number-input content

* fix(docs): incorrect file

* feat(docs): add lablePlacement

* refactor(docs): remove labelPlacement & startContent

* refactor(docs): remove helperText

* refactor(docs): remove helperText

* refactor(docs): revise description

* feat(number-input): add data-slot for stepper-wrapper

* fix(number-input): test cases

* fix(docs): unexpected change

* refactor(number-input): update outdated info

* fix(docs): coderabbitai comments

* refactor: remove validationState

* fix(docs): typo

* chore(deps): remove unnecessary dep

* chore(deps): bump RA versions

* chore(number-input): apply latest labelPlacement change

* refactor(number-input): update author

* refactor(number-input): revise stepper wrapper alignment

* refactor(number-input): stepper button styles

* chore(number-input): add disableRipple

* fix(theme): increase stepper button click area

* fix(number-input): sync latest validationBehavior changes

* fix(number-input): pass validationBehavior to useAriaNumberInput

* chore(docs): add import react

* chore(number-input): remove HorizontalStepper story

* chore(number-input): enable ripple

* fix(number-input): remove number type

* refactor(theme): follow input clear button styles

* feat(theme): add color for stepperButton

* fix(theme): revise stepperButton size for outside & outside-left cases

* fix(number-input): typo

* chore(docs): update description for wheel

* chore(theme): change opacity when pressed

* chore(number-input): add disableRipple

* Update .changeset/witty-flies-reflect.md

* fix(theme): add hover opacity effect

---------

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

* chore(docs): revised tags in doc routes for 2.7.0 (#4777)

* chore(docs): remove last version update tags

* chore(docs): add updated tag for 2.7.0

* chore(docs): updated table

* chore(docs): update search meta

* chore(docs): update github info

* Merge branch 'canary' into docs/eng-2003

* chore(docs): update routes.json

* chore(docs): update meta info

* chore: improve theme builder

* v2.7.0

* chore: v2.7.0 combined changeset

* fix: changeset

* fix: peer deps

* feat: toast api improved

* chore: toast styles improved

* fix: toast styles

* chore: toast width style changed

* fix: changeset release

* fix: changeset peerdeps

* chore: toast styles improved

* refactor(pagination): rtl (#4843)

* refactor(pagination): rtl

* chore(changeset): add changeset

* feat: new spinner variant

* fix(docs): popover shouldBlockScroll default value (#4851)

* fix(select): select scroll content will close immediately when popover on click (#4849)

* chore(select): update select deps

* fix(select): select scroll content will close immediately when popover on click

* chore(select): add .changeset file

* chore(changeset): add issue number

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* feat(calendar): add firstDayOfWeek (#4852)

* feat(calendar): add firstDayOfWeek

* feat(docs): add firstDayOfWeek in Calendar docs

* feat(calendar): add firstDayOfWeek to range calendar

* feat(docs): add firstDayOfWeek to API table

* feat: add firstDayOfWeek to date picker & date range picker

* feat(docs): add firstDayOfWeek

* feat(changeset): add changeset

* feat: add firstDayOfWeek option in storybook

* feat(docs): export firstDayOfWeek

* chore(docs): update title

* chore: spinner variants updated

* feat: v2.7.0 blog

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

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

* chore: manual release

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>
Co-authored-by: millmason <jmsoper@protonmail.com>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Maharshi Alpesh <maharshialpesh@gmail.com>
Co-authored-by: Peterl561 <76144929+Peterl561@users.noreply.github.com>
Co-authored-by: Paul Ebose <49006567+plbstl@users.noreply.github.com>
Co-authored-by: Zarin <thesharifi.maruf@gmail.com>
Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: Avan <layouwen@gmail.com>
Co-authored-by: Vincentius Roger Kuswara <vincentiusrkuswara@gmail.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Praharsh Bhatt <30700808+praharshbhatt@users.noreply.github.com>
Co-authored-by: Adrian Szarapow <63786007+Adee1499@users.noreply.github.com>
Co-authored-by: Hova25 <75216176+Hova25@users.noreply.github.com>
Co-authored-by: Hovannes Markarian <hovannes.markarian@socrate.fr>
Co-authored-by: Tsuki <76603360+sudongyuer@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
jrgarciadev added a commit that referenced this pull request Feb 28, 2025
* chore: org name change (#4596)

* chore: update brand name (#4600)

* fix(calendar): function components cannot be given refs (#4614)

* docs(modal): fix small typos and add clarifying language (#4629)

* chore(deps): bump RA versions (#4611)

* chore(deps): bump RA versions

* chore(deps): bump @internationalized/date

* chore(docs): update RA versions

* chore(docs): update versions

* chore(docs): use string type

* chore(deps): update @react-types versions

* refactor(docs): undo version change since they will be removed in another PR

* feat: tailwind variants upgrade (#4386)

* feat: tailwind variants upgrade

* chore: restore npmrc

* chore: adjust pkgs

* fix: versions

* fix: lock file

* chore(changeset): update package name

* chore(deps): use fixed version

* fix(test): incorrect package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* feat: add fn win alt keys (#4638)

* feat: add new keys

* feat: add new keys

* chore: update docs & storybook as well

---------

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

* fix(use-image): load images after props change (#4523)

* fix(use-image): load image after props change

* chore(changeset): add changeset

* refactor(use-image): remove unused props

* feat(use-image): add test case

* fix(use-image): apply useCallback to load & remove status check

* chore(changeset): update package name

* feat: global labelPlacement prop (#4346)

* feat: adding the support for labelPlacement globally

* chore: reafctoring

* chore: updating the dependency

* chore(changeset): update package name

* chore: adding Marcus's suggestions

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* fix(form): use native as default validation behavior (#4425)

* fix(form): use native as default validation behavior

* docs(form): delete explicit validationBehavior=native

* test(form): adjusted form test validation behaviors

* chore(form): adjusted stories with forms

* chore(changeset): changed form default validation behavior to native

* chore(changeset): removed packages with only test changes

* chore(changeset): change to patch

* chore(changeset): update package name

* refactor(docs): update package name

* refactor(docs): update to heroui

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* feat(spinner): new spinner variants (#4555)

* refactor(spinner): add default variant

* feature(spinner): add gradient variant

* feature(spinner): add dots variant

* feature(spinner): add dots-blink variant

* feature(spinner): add spinner-bars

* chore(spinner): add variants storybook

* chore: adding variants to docs

* chore: simplyfying the styles and modifying docs

* chore: nits

* chore: updating the dots and dots-blink animation

* chore: nits

* chore: adding Marcus' suggestions

* chore: adding Marcus's suggestions

* chore: adding junior's suggestions

---------

Co-authored-by: Maharshi Alpesh <maharshialpesh@gmail.com>

* fix: rename wrapper to tab wrapper (#4636)

* fix: rename wrapper to tab wrapper

* docs: update

* docs: update

* docs: update

* fix: rename wrapper to tab wrapper

* refactor: remove feature request from issue template (#4661)

* refactor(.github): remove feature request template

* refactor(.github): add a link to redirect to discussion (feature request category)

* docs(table): include TS examples to show Selection type usage (#4793)

* fix(listbox): unexpected scrollShadow on virtualized listbox (#4784)

* fix(listbox): add scroll height & scroll top to listbox

* fix(use-data-scroll-overflow): handle scrollHeight & scrollTop in virtualization

* chore(changeset): add changeset

* refactor(theme): replace left & right by start & end to support RTL (#4782)

* fix(date-picker): deprecate dateInputClassNames (#4780)

* chore(date-picker): add missing slots comments

* fix(date-picker): remove dateInputClassNames

* fix(date-picker): use classNames instead of dateInputClassNames

* chore(docs): add missing attributes

* fix(date-picker): use classNames instead of dateInputClassNames

* feat(changeset): add changeset

* fix(docs): broken type

* refactor(navbar): remove dropdown menu width (#4757)

* refactor: remove dropdown menu width

* refactor: shorter description

* refactor: rename instances of NextUI to Hero UI (#4645)

* docs: use the correct org for `img.shields.io` license in README

* docs: update opencollective org name

* docs: use correct org name in site footer

* docs: update image urls for heroui pro sections

* docs: update laravel installation keywords in route config

* docs: add `heroui` tag to `Introducing HeroUI` blog post

* fix: use correct names in `plop/components/src` templates

* chore: add empty changeset

* fix: revert image urls back to `nextuipro.nyc3.cdn.digitaloceanspaces...`

* chore: undo footer change

* chore: update incorrect brand name

* chore(docs): nextui -> heroui

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* fix(input): missing clear button with file input type (#4599)

* fix(theme): sync with input theme on labelPlacement (#4597)

* fix(theme): sync with input theme on labelPlacement

* chore(select): revise width for labelPlacement

* chore(changeset): add changeset

* test(input): input interaction tests (#4579)

* test(input): user interaction tests

* test(input): missing act wrappers

---------

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

* fix(calendar): rtl navigation (#4565)

* fix(calendar): rtl navigation

* chore(changeset): fixed reverse behavior of NextButton and PrevButton in the RTL calendar

* chore(changeset): update package name

* refactor(calendar): prefer isRTL and use className in theme package instead

* chore(changeset): add theme package as well

* chore(calendar): add min theme package to 2.4.7

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* refactor: remove unnecessary className passing to tv and make naming consistent (#4558)

* refactor: remove unnecessary className passing to tv

* refactor(button): move styles to getButtonProps

* refactor: rename classNames to styles to keep the naming consistent

* fix: deprecation warning triggered by internal onClick  (#4557)

* fix(use-aria-link): onClick deprecation warning

* fix(use-aria-button): onClick deprecation warning

* feat(changeset): add changeset

* fix(use-aria-button): incorrect prop name

* chore(changeset): update package name

* ci: add pkg pr new (#4540)

* ci: add pkg pr new

* ci: add pkg pr new

* chore(workflow): update repo name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* chore(docs): remove shouldBlockScroll prop in Tooltip page (#4539)

* fix(use-pagination): controlled page after delay (#4536)

* fix(use-pagination): add page to dependency for scrollTo

* feat(changeset): add changeset

* chore(changeset): update package name

* fix(tooltip): accessing element.ref was removed in React 19 issue (#4531)

* fix(tooltip): accessing element.ref was removed in React 19 issue

* chore(changeset): update package name

* fix: correctly dismissable default value (#4524)

* fix: correctly dismissable default value

* fix: correctly dismissable default value

* chore(changeset): update package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* fix(theme): input height in innerWrapper in Select (#4512)

* fix(select): fix input height #4321

* chore(select): changed package name in changeset to theme

* chore(select): updated changeset message

* chore(changeset): update package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* fix: inert value in next15 (#4491)

* feat: add post install

* feat: add postinstall

* feat: add postinstall

* fix: type

* fix: type

* fix: next version

* chore(changeset): update package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* refactor: remove cursor-hit in hiddenInputClasses (#4474)

* refactor: remove cursor-hit in hiddenInputClasses

* Create lazy-ants-exercise.md

* chore(changeset): update package name

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* feat(table): virtualization (#4285)

* feat: baseline virtualization for table

* merge branch canary

* fix: table layout

* fix: calc header height w layouteffect to offset padding

* Merge branch 'canary' into feat/eng-1633-virtualization-for-table

* chore: remove unused files and comments

* chore: add missing package

* feat: add shouldVirtualize conditional to render virtualized-table

* feat: update docs for table

* feat: use wrapper to support theme styles

* chore: add changeset

* chore(changeset): update package name

* chore(deps): pnpm-lock.yaml

* fix(table): outdated package name

* chore(changeset): add issue number

* fix(deps): keep the version consistent with other components

* fix(table): incorrect displayName

* refactor(table): use VirtualizedTemplate

* chore(deps): bump `@tanstack/react-virtua`

* chore(deps): typecheck issue

* fix(table): do not use any type

* chore: remove auto virtualization

---------

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

* feat(toast): introduce Toast component (#4437)

* feat: initial commit

* chore: adding the animation

* chore: nits

* chore: fixes and adding draft1 of stories

* chore: adding the docs draft

* chore: adding the swiping interaction for toast removal

* chore: adding the tests

* fix: improving the progress bar logix

* chore: refactoring and refining the animations

* fix: making the animations compatible with the positons

* chore: fixing the styles

* chore: modifying the animations

* chore: improving the animations

* chore: adding the decorator to the story-book

* chore: fixing the animations and positions

* fix: handle expand region on touch

* feat: adding the promises support

* chore: updating the styles

* chore: improving styles

* chore: styles correction

* fix: adding junior's suggestions

* chore: correcting styles

* fix: fixing the timer behavior

* chore: adding the spinner to the toast

* chore: full width for mobile

* chore: modifying styles

* chore: fixing the positions on smaller devices

* chore: adding story with description

* chore: adding credits for sonner

* fix: adding junior's suggestions

* chore: adding the exit animation

* fix: adding junior's suggestions

* chore: improving the swipe animations

* fix: fixing the swipe animations on touch

* chore: adding tests

* chore: adding swipe threshild and initial position variable

* fix: fixing autoclose in timeout

* chore: modifying the docs

* chore: fixing the conflict

* chore: adding marcus' suggestions

* chore: adding the bottom animations

* chore: modying docs

* chore: removing nextui references

* chore: adding info about the provider

* chore: updating the docs

* chore: versions in package.json

* chore: nits

* chore: adding junior's suggestions

* chore: nits

* fix: applying junior's suggestions

* chore: adding junior's suggestions

* chore: using domMax

* fix: adding Marcus's suggestions

* chore: add global toast props and custom close icon

* chore: adding the defaultTimout provider prop

* chore: modifying defaultTimeout

* chore: nits

* fix: adding Marcus' suggestions

* chore: fixing bg

* chore(deps): bump RA deps

* fix: fixing the color discrepancy due to the timer

* chore: moving the kapan ai to the left side

* refactor(toast): update author

* chore: nit

* chore: improvements

* chore: updating the solid variant

---------

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

* fix(docs): correct Tab usage example (#4821)

* chore(docs): add note itemHeight for virtualization (#4822)

* chore(docs): add note itemHeight for virtualization

* fix: format

* fix(docs): fix horizontal scrolling example in scroll-shadow (#4820)

* refactor: update author in package.json (#4800)

* feat(button): export PressEvent for onPress event typing   (#4819)

* fix(docs): failed to install dependencies in StackBlitz (#4639)

* chore(Docs): remove step 2 from "Using use-theme-hook" (#4797)

* fix(docs): incorrect code Modal placement (#4652)

* docs: update DatePicker example to remove "time" label as time selection is not supported in this example (#4443)

* feat(button): export PressEvent for onPress event typing

* revert unnecessary changes

* chore: format

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>
Co-authored-by: Praharsh Bhatt <30700808+praharshbhatt@users.noreply.github.com>

* fix(listbox): pass missing press events to usePress (#4812)

* fix(listbox): pass missing press events to usePress

* feat(listbox): add test case for press event

* chore(changeset): add changeset

* fix(checkbox): inherit stroke in CheckboxIcon (#4811)

* fix: `SelectItem`, `ListboxItem`, and `AutocompleteItem` not to accept `value` props (#4653)

* fix(select): `SelectItem` does not accept value props

* refactor: do not use the index as `key`

* Update .changeset/light-hairs-draw.md

* chore: remove unnecessary `value` props

* chore: update changeset

* refactor: remove unnecessary value prop

---------

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

* fix: pkg package scope (#4823)

* fix: pkg package scope

* fix: pkg package scope

* fix: pkg package scope

* fix(theme): border radius in Table when isMultiSelectable (#4808)

* fix(theme): border radius in Table when isMultiSelectable

* chore(theme): added changeset (#4807)

* chore: removing the kapa ai for toast doc page (#4833)

* fix(accordion): add data-slot attributes to accordion (#4832)

* fix(accordion): add data-slot attributes to accordion

* chore

---------

Co-authored-by: Hovannes Markarian <hovannes.markarian@socrate.fr>
Co-authored-by: աӄա <wingkwong.code@gmail.com>

* chore(docs): update versions (#4836)

* docs(themes): adding theme generator (#4626)

* chore: adding xylish's contributions + modifying styles

* chore: nextui to heroui

* chore: colors in theme generator

* chore: radiuses, disable-opacity

* chore: fixing the configuration box styles

* chore: adding the showcase elemtents

* chore: modifying styles

* chore: adding the fonts

* chore: adding the scaling

* chore: removing the calendar

* feat: adding the border-width

* chore: modifying style for mobile

* chore: modifying the styles

* chore: removing the NextUI references + small bug fix

* chore: adding coderabits reviews

* fix: borderWidth not getting applied on breadcrumbs and input

* chore: rebasing

* chore: modifying the styles

* chore: updating the styles for the smaller devices

* chore: refactoring

* chore: improvements

* chore: making the fonts workable

* chore: making the fonts workable

* chore: modifying the swatch according to the theme

* chore: adding the default selected template

* chore: modifying mobile styles

* chore: fixing the popover

* chore: nit

* fix: fixing the select styles

* chore: modifying the mobile styles

* chore: modifying the styles

* fix: adding junior's suggestions

* fix: fixing the breadcrumb

* fix: adding junior's suggestions

* feat: introduce NumberInput (#4475)

* feat(number-field): init structure

* feat(deps): add `@nextui-org/button` & `@react-types/button`

* feat(theme): export number-field

* feat(number-field): storybook init structure

* feat(number-field): add NumberFieldHorizontalStepper

* feat(number-field): add NumberFieldHorizontalStepper

* feat(theme): init number field theme

* feat(number-field): number-field draft

* refactor(number-field): revise stepper icons

* feat(shared-icons): add ChevronLeftIcon

* feat(theme): stepperButton styles

* feat(theme): number-field styles

* fix(number-field): label layout

* feat(number-field): vertical stepper wrapper

* feat(number-field): use-number-field (wip)

* feat(number-field): add data-direction

* feat(theme): center the text if it is horizontal stepper

* feat(number-field): add HorizontalStepper

* feat(number-field): add HideStepper

* chore(number-field): revise minValue & defaultValue

* feat(docs): init number field structure

* fix(theme): outside-left styles

* refactor(theme): remove labelPlacement styles

* refactor(number-field): remove labelContent logic

* refactor(number-field): remove labelPlacement args

* feat(number-field): helper text

* feat(number-field): revise number field stories

* feat(number-field): description

* refactor(number-field): revise number field stories

* feat(theme): numberFieldLabelClasses

* fix(number-field): incorrect button props

* fix(number-field): typing issue on stepper buttons

* chore(number-field): add aria-label

* refactor(number-field): merge props

* fix(number-field): pass originalProps instead

* chore(number-field): revise Required story args

* feat(number-field): add WithStepValue & WithWheelDisabled & revise stories

* chore(number-field): add label to Required

* feat(docs): number-field doc page

* fix(number-field): typing issue

* fix(number-field): test cases

* fix(number-field): user.keyboard & defaultValue

* fix(number-field): should work with defaultValues

* chore(number-field): add type: number

* chore(number-field): remove hidden related code

* fix(number-field): numeric value

* chore(changeset): add changeset

* feat(deps): add "@nextui-org/number-field" to docs

* feat(react): export `@nextui-org/number-field`

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

* feat(docs): number-field examples

* chore(number-field): use text instead

* refactor(number-field): remove unnecessary filled-within

* fix(number-field): test case

* chore(number-field): remove aria-label for stepper buttons

* feat(docs): add incrementAriaLabel & decrementAriaLabel to NumberField

* chore(number-field): reorder WithFormatOptions

* fix(deps): update number-field's peerDependencies & dependencies

* feat(number-field): hidden input for holding numeric vaule

* fix(docs): number field title

* feat(docs): add format options to number field

* chore(docs): revise number field content

* chore(number-field): add type to useDOMRef

* fix(number-field): clear button

* fix(theme): clear button styles

* refactor(theme): stepper button styles

* chore(number-field): accept stepperButton class

* fix(theme): helper wrapper padding

* feat(deps): add `@react-aria/i18n`

* fix(number-field): use locale from `@react-aria/i18n`

* fix(deps): dependency order

* fix(docs): incorrect command

* chore(docs): remove type=number

* chore(theme): add padding to stepper wrapper

* fix(number-field): avoid resetting value

* fix(number-field): storybook

* chore(docs): remove custom impl

* chore(docs): update docs code & content

* chore(number-field):  migrate to heroui

* chore(number-field): migrate to heroui

* chore(number-field): migrate to heroui

* chore: rename to number input

* fix(number-input): incorrect import

* chore(docs): rename to number input

* chore: change to number input

* refactor(number-input): change label to amount

* fix(docs): use heroui commands

* chore(changeset): update package name

* refactor(number-input): remove steps

* refactor: remove helper text

* feat(number-input): label placement

* refactor(number-input): rename stepper

* fix(theme): isClearable

* feat(docs): add label placements

* refactor(docs): update number-input content

* fix(docs): incorrect file

* feat(docs): add lablePlacement

* refactor(docs): remove labelPlacement & startContent

* refactor(docs): remove helperText

* refactor(docs): remove helperText

* refactor(docs): revise description

* feat(number-input): add data-slot for stepper-wrapper

* fix(number-input): test cases

* fix(docs): unexpected change

* refactor(number-input): update outdated info

* fix(docs): coderabbitai comments

* refactor: remove validationState

* fix(docs): typo

* chore(deps): remove unnecessary dep

* chore(deps): bump RA versions

* chore(number-input): apply latest labelPlacement change

* refactor(number-input): update author

* refactor(number-input): revise stepper wrapper alignment

* refactor(number-input): stepper button styles

* chore(number-input): add disableRipple

* fix(theme): increase stepper button click area

* fix(number-input): sync latest validationBehavior changes

* fix(number-input): pass validationBehavior to useAriaNumberInput

* chore(docs): add import react

* chore(number-input): remove HorizontalStepper story

* chore(number-input): enable ripple

* fix(number-input): remove number type

* refactor(theme): follow input clear button styles

* feat(theme): add color for stepperButton

* fix(theme): revise stepperButton size for outside & outside-left cases

* fix(number-input): typo

* chore(docs): update description for wheel

* chore(theme): change opacity when pressed

* chore(number-input): add disableRipple

* Update .changeset/witty-flies-reflect.md

* fix(theme): add hover opacity effect

---------

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

* chore(docs): revised tags in doc routes for 2.7.0 (#4777)

* chore(docs): remove last version update tags

* chore(docs): add updated tag for 2.7.0

* chore(docs): updated table

* chore(docs): update search meta

* chore(docs): update github info

* Merge branch 'canary' into docs/eng-2003

* chore(docs): update routes.json

* chore(docs): update meta info

* chore: improve theme builder

* v2.7.0

* chore: v2.7.0 combined changeset

* fix: changeset

* fix: peer deps

* feat: toast api improved

* chore: toast styles improved

* fix: toast styles

* chore: toast width style changed

* fix: changeset release

* fix: changeset peerdeps

* chore: toast styles improved

* refactor(pagination): rtl (#4843)

* refactor(pagination): rtl

* chore(changeset): add changeset

* feat: new spinner variant

* fix(docs): popover shouldBlockScroll default value (#4851)

* fix(select): select scroll content will close immediately when popover on click (#4849)

* chore(select): update select deps

* fix(select): select scroll content will close immediately when popover on click

* chore(select): add .changeset file

* chore(changeset): add issue number

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>

* feat(calendar): add firstDayOfWeek (#4852)

* feat(calendar): add firstDayOfWeek

* feat(docs): add firstDayOfWeek in Calendar docs

* feat(calendar): add firstDayOfWeek to range calendar

* feat(docs): add firstDayOfWeek to API table

* feat: add firstDayOfWeek to date picker & date range picker

* feat(docs): add firstDayOfWeek

* feat(changeset): add changeset

* feat: add firstDayOfWeek option in storybook

* feat(docs): export firstDayOfWeek

* chore(docs): update title

* chore: spinner variants updated

* feat: v2.7.0 blog

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

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

* chore: manual release

* fix(toast): fixing maxVisibleToasts, solid variant promise, promise timer (#4881)

* fix: maxVisibleToasts functionality

* chore: adding the changeset

* fix: starting the toast timer when the promise is resolved

* fix: spinner invisible in solid variants

* fix(toast): shouldShowTimeoutProgess typo (#4858)

* fix(toast): shouldShowTimeoutProgess typo

* fix(toast): shouldShowTimeoutProgess typo

* fix(select): pass form prop to hidden-select (#4854)

* fix(select): pass form prop to hidden-select

* chore(select): changeset

* fix(spinner): Attempted to call useProviderContext() from the server (#4904)

* fix(spinner): add banner in tsup.config.ts

* chore(changeset): add changeset

* chore(docs): update breaking changes in blog

* chore(docs): handled in PR4905

* fix(number-input): onChange event in number input (#4907)

* fix(number-input): onChange event in number input

* chore(number-input): remove duplicate test case

* fix(breadcrumb): broken start & end content (#4921) (#4922)

* refactor: build process (#4909)

* chore: update component description

* chore: exclude stories-utils & test-utils

* chore(utilities): remove unused info

* chore(deps): pnpm-lock.yaml

* fix: incorrect system & theme version in peerDependencies (#4901)

* fix: incorrect system & theme version in peerDependencies

* fix: incorrect system & theme version in peerDependencies

* chore(changeset): add changeset

* fix(changeset): remove `@heroui/stories-utils` and `@heroui/test-utils` from ignore list (#4939)

* fix(docs): include .npmrc in sandbox (#4951)

* fix(input): esc key to clear input value (#4892)

* chore: theme generator credits

* fix: blog date and spinner default variant

* fix: #4850
Solve Pressing ESC doesn't clear input value

* fix: #4850 code review change

* fix: undo changes in apps/docs/content/blog/v2.7.0.mdx and add a test case for my changes

* fix: run through the test cases successfully

* fix: change md content

* fix: using isClearable not clear the value

* fix: add number-input clearable esc clear

* fix: edit review problem

* fix: delete unless file

* chore(changeset): update changeset

* fix: add inputProps.onKeyDown

* fix: pressing ESC key in a read-only input not clear

---------

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

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

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

* v2.7.4

---------

Co-authored-by: աӄա <wingkwong.code@gmail.com>
Co-authored-by: millmason <jmsoper@protonmail.com>
Co-authored-by: winches <329487092@qq.com>
Co-authored-by: Maharshi Alpesh <maharshialpesh@gmail.com>
Co-authored-by: Peterl561 <76144929+Peterl561@users.noreply.github.com>
Co-authored-by: Paul Ebose <49006567+plbstl@users.noreply.github.com>
Co-authored-by: Zarin <thesharifi.maruf@gmail.com>
Co-authored-by: Shrinidhi Upadhyaya <shrinidhiupadhyaya1195@gmail.com>
Co-authored-by: Avan <layouwen@gmail.com>
Co-authored-by: Vincentius Roger Kuswara <vincentiusrkuswara@gmail.com>
Co-authored-by: Ryo Matsukawa <76232929+ryo-manba@users.noreply.github.com>
Co-authored-by: Praharsh Bhatt <30700808+praharshbhatt@users.noreply.github.com>
Co-authored-by: Adrian Szarapow <63786007+Adee1499@users.noreply.github.com>
Co-authored-by: Hova25 <75216176+Hova25@users.noreply.github.com>
Co-authored-by: Hovannes Markarian <hovannes.markarian@socrate.fr>
Co-authored-by: Tsuki <76603360+sudongyuer@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Steve Mosley <steve@starter4ten.com>
Co-authored-by: LinYongLu <88522000+linyonglu@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] Theme setting for default labelPlacement
4 participants