## Description Features:- 1. Created a new AutoResizeTextArea component in the editorComponents. Textarea does not increase its height on adding text, but it increases its scroll height. To accommodate Auto Height with the textarea/Multi-line InputWidget, I have created a new TextArea component which changes its height when its content changes based on its scrollHeight. This is done by creating another hidden similar proxy Textarea with contents equal to the widget's value, and whenever this value changes we run a layout effect that sets the main text area height equal to the scrollHeight of the proxy textarea. 2. Added a new configuration `Multi-line` for InputWidget in the Data-Type which will decide whether to replace the `input` element with `textarea`. Currently, the way to decide whether we should display a textarea or not is based on whether widget's height is greater than 8 rows or not. To fix it, I added a proper configuration which will user to select whether he/she wants a Single-line input or Multi-line textarea. 3. Replaced the label of `Text` configuration to `Single-line` which remains a simple `input` element as before. Changed the label of the Text configuration to Single-line in contrast with Multi-line. 4. Migration Added migration number 75 for the InputWidgetsV2. Used the same previous logic to detect whether the input type should be multiple-line or not and set the `inputType` to `MULTI_LINE_TEXT` if it's true. 5. Changed a lot of CSS styling in Input components (Currency and Phone too) so that they look similar to other components like DatePicker and Select. Currently the input component take containers height which is different from other components. 6. The onSubmit behaviour of the Multi-line input has also changed. Now the line-break will happen on Enter and submit will be triggered on Cmd + Enter. 7. Added an updateHook in the Input widget which when selected the Multi-line input will set its dynamic height property to AutoHeight. Fixes #19655 Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - Manual - Jest ### Test Plan https://github.com/appsmithorg/TestSmith/issues/2151 ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 ### QA activity: - [x] Test plan has been approved by relevant developers - [x] Test plan has been peer reviewed by QA - [ ] Cypress test cases have been added and approved by either SDET or manual QA - [ ] Organized project review call with relevant stakeholders after Round 1/2 of QA - [ ] Added Test Plan Approved label after reveiwing all Cypress test Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> |
||
|---|---|---|
| .github | ||
| app | ||
| contributions | ||
| deploy | ||
| scripts | ||
| static | ||
| .deepsource.toml | ||
| .env.example | ||
| .gitignore | ||
| .imgbotconfig | ||
| .nojekyll | ||
| app.json | ||
| appsmith_events.md | ||
| appsmith_templates.md | ||
| appsmith-1.3.0.tgz | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| coverage-summary.json | ||
| depot.json | ||
| Dockerfile | ||
| heroku.yml | ||
| index.yaml | ||
| IssuesReport.md | ||
| LICENSE | ||
| list | ||
| README.md | ||
| SECURITY.md | ||
Appsmith is an open-source platform to build, deploy, and maintain internal apps. You can build anything from simple CRUD apps, admin panels, dashboards to custom business apps and complicated multi-step workflows.
Get Started • YouTube • Templates
Build Apps in 4 Steps
1. Build your UI
Build your UI with our drag and drop UI builder. Use 45+ pre-built, customizable widgets including tables, charts, lists, modals, forms, and more. Docs
2. Connect to your data
Connect to your data with our connectors: databases (PostgresQL, MongoDB, Amazon S3, and many more), SaaS providers (like Google Sheets, Airtable, Twilio) or any GraphQL/REST API. Docs
3. Connect the data to the UI
Connect the data to the UI by configuring the components. Where needed, you can use the Javascript IDE to create more advanced features and data transformations - the sky is the limit! Docs
4. Deploy your app
Deploy your app on our free, cloud-hosted version or to any platform of your choice - Docker, Kubernetes, AWS, DigitalOcean, Heroku, and more. Docs
Features
Appsmith makes it easy to create powerful utility applications organized across multiple workspaces. Here are a few notable features of Appsmith. We ship new features, bug fixes, and performance improvements regularly. Read our release notes to stay updated.
🔥 UI builder with a library of 45+ widgets such as
- Tables
- Charts
- Forms
- Lists
- Buttons
- Checkboxes
- Filepicker
- Modals ...and more. All widgets come with properties that can be visually edited to set their data, change their styles, and trigger actions from them.
❇️ Native integrations available with the following databases. You can also connect with most other tools through the RESTful API plugin or using our SaaS connectors.
- PostgresSQL
- MongoDB
- MySQL
- Elasticsearch
- DynamoDB
- Redis
- Microsoft SQL Server
- Firestore
- Redshift
- S3
- Snowflake
- ArangoDB
- SMTP
🛠️ API client and query builder lets you run RESTful API, GraphQL, or database queries within connected datasources.
🚀 JavaScript code support. You can use JavaScript inside {{ }} anywhere in Appsmith. You can reference every entity in Appsmith as a JavaScript variable and perform all JavaScript functions and operations on them. Our in-built JS editor gives the full IDE experience with multiline editing, autocomplete, linting and debugging.
🔄 Version control with Git allows multiple developers to add their work in a git branch, raise a pull request for code reviews, integrate with CI/CD pipelines, and provide a commit history to go back to a previous version if something were to go wrong. You can connect to any popular version control tool of our liking: GitHub, Gitlab, Bitbucket, AWS Code Commit and more.
🎨 App theming to style your app pages and widgets and to customize the visual layout of your app in one click.
⚙️ Access control available to assign different roles to different team members while sharing the app. Appsmith implements RBAC by assigning a set of permissions to different user roles. These permissions determine the actions users can take on the platform. You can allow external users to access applications built using Appsmith by inviting them to the workspace.
🔑 Solid 256-bit encryption. Appsmith apps are secure by default. All connections are TLS-encrypted, and credentials are encrypted with AES-256 so we can't see any of your data. For added security, try our self-hosted options.
Support and Community
Issues are inevitable. When you have one, our entire team and our active developer community is around to help.
💬 Talk to us on Discord
📄 Find a solution in our Documentation
⚠️ Open an issue right here on GitHub
👾 Ask for help on our Forum
💡Use our learning resources: Templates, Tutorials, and Videos
Deployment Options
While you can always start building apps right away using the cloud-hosted version, here are the resources for deploying Appsmith on different platforms:
| Cloud Provider | Documentation |
|---|---|
| Local/Cloud - Docs | |
| K8's with Helm Charts | |
| One-Click Install | |
| AWS ECS - Docs | |
| AWS AMI - Docs | |
| One-Click Install | |
| Docs |
How to Contribute
We ❤️ our contributors. We're committed to fostering an open, welcoming, and safe environment in the community.
📕 We expect everyone participating in the community to abide by our Code of Conduct. Please read and follow it.
🤝 If you'd like to contribute, start by reading our Contribution Guide.
🧩 Set up your local environment.
👾 Explore some good first issues.
Lets build great software together.
Top Contributors
License
Appsmith is available under the Apache License 2.0. Use it wisely.
