Commit Graph

23 Commits

Author SHA1 Message Date
Valera Melnikov
36372468c5
chore: remove headless radio and use react-aria component instead (#34312)
## Description

- Remove headless radio and use react-aria component instead
- Create ErrorMessage component

Fixes #27677 

## Automation

/ok-to-test tags="@tag.Anvil"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9567388261>
> Commit: 62d1153caa8bf03d827f88593c9dfaf3121091ee
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9567388261&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Anvil`

<!-- end of auto-generated comment: Cypress test results  -->



## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added `ErrorMessage` component for displaying error messages with
specific styling.
- Introduced `isDisabled` prop for `Label` and `ToggleGroup` components.
- Updated `RadioGroup` to accept an items array for easier
configuration.

- **Bug Fixes**
- Improved conditional rendering in `Label` component to prevent issues
when `text` and `contextualHelp` are both falsy.

- **Refactor**
  - Removed `Radio` component export from design system.
- Restructured import statements and prop declarations for `Checkbox`
and `RadioGroup`.

- **Style**
- Updated styles for `RadioGroup` and `ToggleGroup` components for
better state handling (disabled, hovered, selected).

- **Documentation**
- Updated Storybook stories for `RadioGroup` to reflect changes in
component usage.

- **Tests**
  - Adjusted `RadioGroup.test.tsx` to test new items array prop.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-19 11:08:42 +03:00
Valera Melnikov
84f67fe0f2
chore: remove headless checkbox and switch use react-aria component instead (#34217)
## Description
- Remove headless checkbox and switch use react-aria component instead
- Add Label component
- Now `ToggleGroup` is used instead of `SwitchGroup` and
`CheckboxGroup`, since they are essentially the same component.

**I'll create another one PR to refactor the radioGroup.**

Fixes #27677 

## Automation

/ok-to-test tags="@tag.Anvil"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9485370398>
> Commit: f2557233978da533b9ab856335a8191b4226dba5
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9485370398&attempt=1"
target="_blank">Click here!</a>

<!-- end of auto-generated comment: Cypress test results  -->




## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced `ToggleGroup` component with various features for improved
user interaction.

- **Enhancements**
- Updated `Radio`, `Checkbox`, and `Switch` components for better
functionality and styling alignment.
- Added `labelPosition` options to `Radio` and `Checkbox` components for
flexible label positioning.
- Enhanced `ContextualHelp` component with a new `slot` prop for more
customization.
- Improved `Select` component to use `Label` directly, optimizing
rendering.

- **Bug Fixes**
- Adjusted logic for `WDSSwitchWidget` to ensure correct validity
handling.

- **Styling**
- Various styling adjustments across multiple components for consistent
design.

- **Tests**
- Updated test cases for the `Checkbox` component to reflect recent
changes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 15:25:34 +03:00
Valera Melnikov
55ae8594ad
fix: refactor wds menu and related components, widgets (#33703)
## Description
1. WDS menu component has been completely refactored. WDS headless
component has been removed, we use `react-aria-components` instead. The
menu component now has the ability to use submenus and icons for items.
2. Rename components `ActionGroup` to `ToolbarButtons and `ButtonGroup`
to `InlineButtons`
3. Make API of the `ToolbarButtons`, `Menu`, `InlineButtons`, `Select`
consistent.
4. Cosmetic refactoring of `ToolbarButtons` and `InlineButtons` and
related widgets.

Fixes:
#32299
#32109

## Automation

/ok-to-test tags="@tag.Anvil"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9210315418>
> Commit: b11c0029c656b4fbf61b9760d16f77564478d053
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9210315418&attempt=1"
target="_blank">Click here!</a>

<!-- end of auto-generated comment: Cypress test results  -->




## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No

---------

Co-authored-by: Pawan Kumar <pawan@appsmith.com>
2024-05-24 15:58:45 +03:00
Pawan Kumar
d1c9bde439
chore: Refactor WDSTableWidget with basic features (#33286)
/ok-to-test tags="@tag.Widget"<!-- This is an auto-generated comment:
Cypress test results -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9056956210>
> Commit: 618ef038a5619de08d4f72cd36e4206031ac4891
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9056956210&attempt=1"
target="_blank">Click here!</a>

<!-- end of auto-generated comment: Cypress test results  -->

---------

Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro-2.local>
2024-05-13 10:41:24 +05:30
Valera Melnikov
f22dffcf50
chore: wds select component (#32715)
## Description
Fixes #28466

## Automation

/ok-to-test tags=""

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!CAUTION]  
> If you modify the content in this section, you are likely to disrupt
the CI result for your PR.

<!-- end of auto-generated comment: Cypress test results  -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced customizable `Select` component with enhanced dropdown
features including error messages, loading state, and contextual help.
- Added a new `className` prop to the `Button` component for custom
class name manipulation.

- **Enhancements**
- Updated the design system package to include exports for new
components like `Select` and `ContextualHelp`.
- Improved accessibility and cohesive user interface across components.

- **Bug Fixes**
- Corrected import paths for `ContextualHelp` in various components to
ensure consistent functionality.

- **Documentation**
  - Updated component documentation to reflect new features and props.

- **Style Updates**
- Added comprehensive styles for the new `Select` component, including
form fields and error text styling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-17 13:49:41 +03:00
Pawan Kumar
8db4cd3872
chore: create inline buttons widget (#31318)
Fixes #30438 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new `ButtonGroup` component that manages groups of
buttons with customizable properties like color, size, and orientation.
- Added a `ButtonGroupItem` component for rendering buttons within the
`ButtonGroup`.
- Launched an "Inline Buttons" widget allowing users to configure a
group of buttons inline with various properties such as labels,
visibility, and icons.
- Enhanced icon loading with fallback styles for better spacing and
appearance.
- **Refactor**
- Updated various components (ActionGroup, Button, Menu) to use new
`ButtonGroupProps` and `ButtonGroupItemProps`, aligning with the new
`ButtonGroup` component structure.
- Renamed widget names and updated configurations to improve clarity and
consistency across the application.
- **Bug Fixes**
- Fixed feature flag checks to directly return `true` for specific
flags, ensuring feature availability checks are more efficient.
- **Documentation**
- Added comprehensive story and documentation for the `ButtonGroup`
component, showcasing its usage with different options.
- **Chores**
- Enhanced internal codebase by optimizing the `Icon` component
performance through memoization.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro-2.local>
2024-03-04 10:28:11 +03:00
Pawan Kumar
302ecb6a1c
feat: Tabler Icons (#30248)
Fixes #28443
Fixes #27866 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced `IconSelectControlV2` for enhanced icon selection with
keyboard navigation and state updates.
- Added new `iconStyle` theme property for users to define icon styles
globally.
- Implemented dynamic icon loading with fallback options, improving icon
management.

- **Enhancements**
- Simplified icon usage across various components like `Button`,
`IconButton`, `Menu`, `ModalHeader`, `TextInput`, and more by directly
using icon names.
- Enhanced `Tag` component to use a generic `Icon` component for the
remove action.
  
- **Style Updates**
- Added CSS classes for resizing, boundary display, and pointer event
handling.
  - Updated icon size definitions using CSS custom properties.

- **Bug Fixes**
- Fixed icon-related issues in `Button`, `ActionGroup`, `Menu`, and
`TextInput` components to ensure proper icon display.

- **Documentation**
- Updated storybook and test cases to reflect new icon selection and
usage.

- **Refactor**
- Refactored theme and token management to include `iconStyle` for
consistent icon theming.
- Refined the `ButtonGroupWidget` and `MenuButtonWidget` to use the new
icon selection mechanism.

- **Chores**
- Cleaned up unused icon imports and components across the codebase to
streamline the icon system.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-19 11:54:44 +03:00
Pawan Kumar
ad8ea15cc9
chore: Integrate Action Group in Button Group Component (#29871)
Fixes #29426

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced `isLoading` state for action items to provide user feedback
during actions.
- Added `onAction` callback to menu items for improved interaction
handling.

- **Enhancements**
  - Enhanced action group visibility based on orientation.
  - Streamlined modal control flow with keys for different modal sizes.
- Implemented `htmlFor` attribute in checkboxes for better form
accessibility.

- **Refactor**
- Transitioned from `ButtonGroup` to `ActionGroup` across various
components for consistency.
- Refactored component structures to integrate new `ActionGroup` and
`Item` components.
- Updated widget configuration and properties to accommodate new
features and styles.

- **Style Updates**
  - Added new CSS rules for buttons with `data-density="compact"`.
  - Removed outdated CSS properties to align with updated design system.

- **Documentation**
- Updated story examples to reflect changes in modal and action group
usage.

- **Bug Fixes**
  - Fixed association issues between labels and checkbox inputs.

- **Configuration**
- Introduced `anvilConfig` for widget size properties and updated
property pane configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-29 15:17:46 +03:00
Pawan Kumar
1f38d7333a
chore: add action group component (#29645)
Fixes #29425 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
  - Introduced an icon alongside menu items, with positioning options.
- Implemented a new `ActionGroup` component to manage a group of actions
with overflow behavior and keyboard navigation.
- Added new `ActionGroupItem` and `MoreIcon` components for action
groups.

- **Enhancements**
- Improved resize handling in the `ThemeProvider` for conditional
rendering based on measurements.
- Updated button styles to adjust minimum inline sizing for better
layout.

- **Documentation**
- Created Storybook stories to showcase `ActionGroup` configurations and
usage.

- **Style**
- Modified list item styling in the `Menu` component to incorporate
icons.

- **Tests**
  - Added mock for `useDebounce` hook in `AppsmithIDE` tests.
- Updated Cypress test assertions to accommodate changes in layout
behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Valera Melnikov <valera@appsmith.com>
2023-12-19 16:04:27 +03:00
Pawan Kumar
544c3705e8
chore: Add tag group component (#29387)
Fixes #29134 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced `TagGroup` and `Tag` components with features like label,
description, error message, and tag removal options.
- Added new stories for `TagGroup` to demonstrate various configurations
and use cases.

- **Enhancements**
  - Updated `Switch` component with improved validation logic.
- Enhanced `TextArea` initialization to handle undefined default values
more gracefully.
- Added `validationState` property to `HelpText` and `Field` components
to support form validation states.

- **Style Updates**
- Implemented new CSS styles for `TagGroup` and `Tag` components to
improve UI consistency and interactivity.

- **Documentation**
- Expanded Storybook documentation with examples and usage guidelines
for `TagGroup` and `Tag` components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 10:10:40 +03:00
Valera Melnikov
85c45e1267
feat: add wds modal component (#28738)
## Description
Add WDS Modal component

#### PR fixes following issue(s)
Fixes #28463 

#### Media

https://github.com/appsmithorg/appsmith/assets/11555074/38871bdb-32ec-48c6-878d-75c831057b69



#### Type of change
- New feature (non-breaking change which adds functionality)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
2023-11-09 17:59:28 +03:00
Valera Melnikov
5dd2900f06
feat: add menu component (#28583)
## Description
Add WDS menu component

#### PR fixes following issue(s)
Fixes #28392 

#### Media

https://github.com/appsmithorg/appsmith/assets/11555074/c79a4872-3241-456f-82cb-5c1fa4cd6c9e

#### Type of change
- New feature (non-breaking change which adds functionality)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
2023-11-03 12:13:06 +03:00
Valera Melnikov
7fa73b100b
chore: rewrite Text component styles and consistency to as const types (#27497)
## Description
Rewrite Text component to CSS modules

#### PR fixes following issue(s)
Fixes # (issue number)
#27479 

#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [x] Jest
- [x] Cypress

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
2023-09-21 10:56:11 +03:00
Pawan Kumar
9d73501c7a
chore: add TextInput component and InputWidgetV3 (#26775)
Fixes #26039

---------

Co-authored-by: Valera Melnikov <valera@appsmith.com>
2023-09-20 09:56:46 +03:00
Pawan Kumar
99e1b44526
chore: Move stories to component level (#26489)
Fixes #26503
2023-08-23 09:13:26 +03:00
Pawan Kumar
57cf92e68d
chore: Split Chromatic and Storybook stories (#25877)
Fixes #25427
2023-08-03 21:00:17 +03:00
Valera Melnikov
e5209aa7cd
fix: bump storybook version and move stories to storybook package (#25821)
## Description
- bump storybook version
- move stories to storybook package
- add dimensions for testing viewports
- improve some stories and types for argTable

#### PR fixes following issue(s)
Fixes #25534

#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] Jest
- [ ] Cypress

## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag

---------

Co-authored-by: Valera Melnikov <melnikov.vv@greendatasoft.ru>
2023-07-31 19:15:50 +03:00
Pawan Kumar
2fd0f6f3c2
chore: Add button v2 under feature flag (#25106) 2023-07-26 18:10:44 +05:30
Valera Melnikov
013adf782c
feat: add fluid tokens and flex component (#25448)
## Description
- Add fluid root unit
- Add fluid tokens for typography, spacing and sizing
- Add docs about Theme
- Typography now works by creating a class at the provider level
- Update styled component version. Add PickRename interface to work with
[transient
props](https://styled-components.com/docs/api#transient-props)
- Remove the direct use of rootUnit and replace it with sizing tokens
- Get rid of some unit test because new version of styled components
doesn't work with Jest. Fortunately, we have visual tests.

#### PR fixes following issue(s)
#24295

#### Type of change
- New feature (non-breaking change which adds functionality)

#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] Jest
- [ ] Cypress

## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag

---------

Co-authored-by: Valera Melnikov <melnikov.vv@greendatasoft.ru>
2023-07-24 11:59:05 +03:00
Valera Melnikov
d3b48c500f
chore: move typography to themeprovider (#23904)
## Description
**Typography**
- Move typography to the provider.
- Add context for the theme provider
- Move `fontFaces` styles to the provider

**Tooltip**
- Add `isRounded` check for the tooltip (shift for the arrow)
- Fix the position of the arrow in the tooltip

**Tokens**
Move `rootUnit` from `sizing` since this is a common value and is used
not only for sizing. We will do the sizing iteration separately, if
necessary.

**Theming package**
Theming package refactoring. So now we have 4 folders (color, theme,
token, and typography) with related files

#### PR fixes following issue(s)
Fixes #21927

#### Type of change
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Chore (housekeeping or task changes that don't impact user perception)

## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [x] Jest
- [ ] Cypress


## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag

---------

Co-authored-by: Valera Melnikov <melnikov.vv@greendatasoft.ru>
2023-06-07 12:49:24 +03:00
Pawan Kumar
e0da7e21ef
chore: Add checkbox group component (#22721)
Fixes #22467
2023-05-02 13:21:36 +05:30
Pawan Kumar
9a26152dc8
chore: headless checkbox and styled checkbox component (#22380)
Fixes #22142
2023-04-18 17:21:56 +05:30
Valera Melnikov
e50b31b65c
feat: wds button refactoring (#21849)
## Description

1. Moved `wds` to the `design-system` folder. 
2. Added `headless` package and `HeadlessButton`.
3. Added `theming` package. `ThemeProvider` and two classes were created
to work with
tokens([TokensAccessor](https://github.com/appsmithorg/appsmith/pull/21849/files#diff-58832e8b8e8017648929473a90eb716e6a2671ba1749be3d4c5665b093bc3dc3))
and
colors([ColorsAccessor](https://github.com/appsmithorg/appsmith/pull/21849/files#diff-f515e0eefc418c8bfc0710572e83a0029bd94f2fb975853f71730e5b11c774bd))
5. The token structure has been changed. The same class(TokensAccessor)
is now used to create CSS variables and tokens for
Figma([themeTokens.json](https://github.com/appsmithorg/appsmith/pull/21849/files#diff-5ad75b848cb4254c0bd0bb0bf6a89eeccb628dc0012752172654e12e62d570d9))

The final storybook is
[here](https://widget-design-system-b1p6g13iq-get-appsmith.vercel.app/?path=/story/design-system-widgets--button).

## Type of change

- New feature (non-breaking change which adds functionality)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update


## How Has This Been Tested?
- Manual

## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag

---------

Co-authored-by: Valera Melnikov <melnikov.vv@greendatasoft.ru>
2023-04-05 18:09:11 +05:30