Repository navigation
Fix/bug fixes - #355
Merged
Merged
Fix/bug fixes#355
Conversation
Adds validation in the category update flow to block assigning a descendant or the category itself as its parent. Previously this caused a raw PHP exception from the nested-set library. Now a clear UI error message is shown and the save is rejected.
- Rename v-datagrid-table to v-history-table in history/table.blade.php to avoid Vue component registration conflict with the regular datagrid table (both shared the same template ID, causing visibleColumns to be undefined) - Remove unconditional slot forwarding from v-history-datagrid that was overriding v-history-table's default slot content with empty content - Add AttributeHistoryPresenter to translate raw field names and values into human-readable labels in the history detail modal
…attribute filter options loading
…ext and image prompts are seeded on fresh install
…ized for permission-denied access
…meter name typo in TrackerController
…unauthorized access
…egory assignment restriction
…ew key and add view translation across all locales
…age instead of 500
…t and validate on input
…s URL prefixes for the configurable product API
…, and system prompts listing pages
…or bulk product imports
…he count of other platforms
…ed so deselected multiselects are saved
…ggestion query to empty string
…y by setting ai-agent sort to 7
…egardless of DOM binding timing
… silently returning data
… save to block invalid API keys
…-fields 422 policy
…t values (provider) reach the server
CI installs latest pint via aglipanci/laravel-pint-action while lockfile had v1.29.0; v1.29.1 (PR #432) tightened fixer detection causing CI-only style failures. Pin exact version to align local + CI, reformat the three affected controllers.
aglipanci/[email protected] does composer global require and pulls the latest pint, bypassing composer.lock. Swap to setup-php + ramsey/composer-install so the lockfile-pinned version is used, keeping CI and local in lockstep.
There was a problem hiding this comment.
Pull request overview
This PR is a broad set of bug fixes and regression tests across Admin UI, Admin API, Magic AI/AiAgent, DataTransfer import validation, and authorization handling.
Changes:
- Standardizes unauthorized access responses to HTTP 403 (instead of 401) across multiple controllers/middleware and updates tests accordingly.
- Improves Admin API behavior (configurable-products routing, media upload assignment to product values, clearer invalid filter handling, API key secret regeneration revoking tokens).
- Enhances Magic AI/AiAgent UX and validation (default platform must be enabled, tilde-prefixed model handling, model auto-fetch/test-before-save, chat widget default platform selection) and adds extensive regression tests.
Reviewed changes
Copilot reviewed 159 out of 161 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/e2e-pw/tests/02-configuration/magicAI-default-requires-enabled.spec.js | Adds Playwright E2E coverage for “disabled platform cannot be default”. |
| packages/Webkul/Webhook/src/Http/Controllers/WebhookLogsController.php | Switches permission failures to 403 for webhook logs. |
| packages/Webkul/User/tests/Feature/SecurityTest.php | Updates expected unauthorized status from 401 to 403. |
| packages/Webkul/User/tests/Feature/RoleTest.php | Adds test ensuring ACL/menu top-level sort alignment. |
| packages/Webkul/User/tests/Feature/ResetPasswordTest.php | Adds test for reset-password route without token redirect. |
| packages/Webkul/User/tests/Feature/PasswordChangeInvalidatesTokensTest.php | Adds test ensuring password change revokes Passport tokens. |
| packages/Webkul/User/src/Http/Middleware/Bouncer.php | Uses 403 for unauthorized role/permissions state. |
| packages/Webkul/User/src/Bouncer.php | Uses 403 for permission enforcement abort. |
| packages/Webkul/Product/src/Validator/ProductValuesValidator.php | Fixes channel code extraction variable ($channels). |
| packages/Webkul/Product/src/Validator/ProductCategoriesValidator.php | Disallows root categories in product category assignment validation. |
| packages/Webkul/MagicAI/src/Enums/AiProvider.php | Normalizes model IDs returned from OpenAI-compatible providers (strips ~). |
| packages/Webkul/MagicAI/src/Database/Seeders/MagicAiPromptSeeder.php | Adds purpose field to seeded prompts. |
| packages/Webkul/Installer/src/Console/Commands/PurgeUnusedImages.php | Formatting/alignment tweak in match expression. |
| packages/Webkul/DataTransfer/tests/Unit/ImporterEmptyHeadersTest.php | Adds test for trimming trailing empty spreadsheet headers. |
| packages/Webkul/DataTransfer/src/Helpers/Importers/AbstractImporter.php | Trims trailing empty headers before validation to avoid false errors. |
| packages/Webkul/Core/tests/Unit/CoreConfigRepositoryClearValueTest.php | Adds regression test to ensure null config persists as empty string. |
| packages/Webkul/Core/src/Repositories/CoreConfigRepository.php | Persists empty string for explicitly-cleared null config fields. |
| packages/Webkul/Attribute/src/Repositories/AttributeRepository.php | Resolves ambiguous select columns (esp. name) in search query. |
| packages/Webkul/Attribute/src/Presenters/AttributeHistoryPresenter.php | Adds history presenter for attributes with translated labels/formatting. |
| packages/Webkul/Attribute/src/Models/Attribute.php | Registers presenters via PresentableHistoryInterface. |
| packages/Webkul/AiAgent/tests/Feature/ChatWidgetVisibilityTest.php | Ensures widget not rendered on error/anonymous pages. |
| packages/Webkul/AiAgent/tests/Feature/ChatWidgetDefaultPlatformTest.php | Verifies chat widget honors server default over stale sessionStorage. |
| packages/Webkul/AiAgent/tests/Feature/ChatFileUploadLimitTest.php | Asserts 100MB upload limit for chat file attachments. |
| packages/Webkul/AiAgent/src/Http/Controllers/DashboardController.php | Uses 403 when permission missing. |
| packages/Webkul/AiAgent/src/Http/Controllers/CredentialController.php | Uses 403 when permission missing. |
| packages/Webkul/AiAgent/src/Http/Controllers/ConversationController.php | Uses 403 when permission missing. |
| packages/Webkul/AiAgent/src/Http/Controllers/ChatController.php | Increases file upload max size from 20MB to 100MB. |
| packages/Webkul/AiAgent/src/Http/Controllers/ApprovalController.php | Uses 403 when permission missing. |
| packages/Webkul/AiAgent/src/Http/Controllers/AgentController.php | Uses 403 when permission missing. |
| packages/Webkul/AiAgent/Resources/views/components/chat-widget.blade.php | Tracks defaultPlatformId and tightens platform restore logic. |
| packages/Webkul/AiAgent/Config/menu.php | Adjusts menu sort order for ai-agent. |
| packages/Webkul/AiAgent/Config/acl.php | Adjusts ai-agent ACL sort and adds prompt/system-prompt edit/delete ACL keys. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiProductTest.php | Makes category selection deterministic (non-root category). |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiProductMethodNotAllowedTest.php | Adds tests for disallowed HTTP methods on listing endpoints. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiProductInvalidFilterTest.php | Adds test for invalid parent SKU filter returning non-200. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiMediaFileTest.php | Adds test for assigning uploaded media to product attribute values. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiImmutableFieldsTest.php | Adds tests rejecting immutable field updates (type). |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiConfigurableProductSpellingTest.php | Ensures correctly-spelled configurable-products route resolves; keeps legacy typo route. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiConfigurableProductPaginationTest.php | Adds pagination/limit test for configurable products endpoint. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiConfigurableProductDeleteTest.php | Adds DELETE test for configurable products endpoint. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiCategoryParentTest.php | Adds test ensuring category parent code is included in API response. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiCategoryFieldTest.php | Updates tests for immutable field behavior and option update behavior. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiCategoryFieldOptionUpdateTest.php | Adds test rejecting unknown option codes on option update. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiAttributeTest.php | Updates tests for immutable field behavior on attribute updates. |
| packages/Webkul/AdminApi/tests/Feature/Catalog/ApiAttributeMultiCreateTest.php | Adds test rejecting list payloads for attribute creation. |
| packages/Webkul/AdminApi/src/Routes/V1/catalog-routes.php | Adds correctly spelled configurable-products routes (keeps legacy typo) + adds DELETE. |
| packages/Webkul/AdminApi/src/Http/Controllers/Integrations/ApiKeysController.php | Revokes Passport tokens on client secret regeneration. |
| packages/Webkul/AdminApi/src/Http/Controllers/API/Catalog/MediaFileController.php | Persists uploaded media path into product values JSON by scope. |
| packages/Webkul/AdminApi/src/Http/Controllers/API/Catalog/ConfigurableProductController.php | Adds DELETE endpoint implementation for configurable products. |
| packages/Webkul/AdminApi/src/Http/Controllers/API/Catalog/CategoryFieldController.php | Rejects immutable fields in PUT; enforces unknown option code errors keyed by code. |
| packages/Webkul/AdminApi/src/Http/Controllers/API/Catalog/AttributeController.php | Rejects list payloads on create; rejects immutable fields on update. |
| packages/Webkul/AdminApi/src/ApiDataSource/Catalog/ProductDataSource.php | Fixes parent SKU lookup logic and uses 422-style exception for invalid filter value. |
| packages/Webkul/AdminApi/src/ApiDataSource/Catalog/CategoryDataSource.php | Fixes parent category lookup reference. |
| packages/Webkul/Admin/tests/Feature/PageTitleTest.php | Adds assertions for user-friendly page titles. |
| packages/Webkul/Admin/tests/Feature/ManageColumnsNameOnlyTest.php | Ensures manage-columns list hides attribute codes. |
| packages/Webkul/Admin/tests/Feature/MagicAIMenuOrderTest.php | Ensures ai-agent sorts before data_transfer in menu/ACL. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAITinyMCEButtonVisibilityTest.php | Ensures TinyMCE AI button only registers when enabled. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAISuggestionValuesTest.php | Adds tests for Magic AI suggestion values endpoint behavior. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAIPlatformTildeModelTest.php | Tests tilde-prefixed models are sanitized on save. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAIPlatformSaveValidatesCredentialsTest.php | Ensures UI calls test-connection before save. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAIPlatformModelsSubmitTest.php | Tests models string accepted; ensures FormData always includes models. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAIPlatformDeleteIconVisibilityTest.php | Ensures delete/edit icons only render when actions exist. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAIPlatformDeleteDefaultTest.php | Tests default platform deletion is rejected. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAIPlatformDefaultValidationTest.php | Tests default platform must be enabled in store/update. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAIPlatformAutofetchModelsTest.php | Ensures debounced model auto-fetch behavior exists in UI. |
| packages/Webkul/Admin/tests/Feature/MagicAI/MagicAIPlatformAddButtonAclTest.php | Adds ACL-based visibility tests for “Add Platform” button. |
| packages/Webkul/Admin/tests/Feature/DataTransfer/JobTrackerGridTooltipTest.php | Ensures translated tooltip is returned (not raw translation key). |
| packages/Webkul/Admin/tests/Feature/DashboardTest.php | Adds 403 assertion for dashboard access without permission. |
| packages/Webkul/Admin/tests/Feature/Catalog/ProductValuesTest.php | Adds tests preventing root-category assignment; adjusts category setup. |
| packages/Webkul/Admin/tests/Feature/Catalog/ProductTest.php | Adds test for sticky product edit header offset. |
| packages/Webkul/Admin/tests/Feature/Catalog/ProductBulkEditTest.php | Adds test ensuring bulk edit attribute fetch is limited to selected families. |
| packages/Webkul/Admin/tests/Feature/Catalog/ProductBulkEditPriceValidationTest.php | Adds validation tests for numeric price values in bulk edit save. |
| packages/Webkul/Admin/tests/Feature/Catalog/ProductBulkEditDatetimeTest.php | Adds tests ensuring datetime editor wiring + validation UI text exists. |
| packages/Webkul/Admin/tests/Feature/Catalog/CategoryParentValidationTest.php | Adds tests preventing invalid parent assignment (self/descendant). |
| packages/Webkul/Admin/tests/Feature/Catalog/BulkEditColumnResizeTest.php | Adds tests for improved column resize UX and reactivity. |
| packages/Webkul/Admin/tests/Feature/Catalog/AttributeTest.php | Adds test ensuring swatch modal layout is unified. |
| packages/Webkul/Admin/tests/Feature/Acl/Settings/UserAclTest.php | Updates ACL tests to assert 403 status instead of “Unauthorized” text. |
| packages/Webkul/Admin/tests/Feature/Acl/Settings/RoleAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Settings/LocaleAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Settings/CurrencyAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Settings/ChannelAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/MagicAi/MagicAiPromptAclTest.php | Adds tests for prompt/system prompt action visibility based on ACL. |
| packages/Webkul/Admin/tests/Feature/Acl/MagicAi/MagicAiPlatformAclTest.php | Updates status assertions; adds platform action visibility tests by ACL. |
| packages/Webkul/Admin/tests/Feature/Acl/DataTransfer/ImportAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/DataTransfer/ExportAclTest.php | Updates ACL tests to assert 403 status (incl. tracker route). |
| packages/Webkul/Admin/tests/Feature/Acl/Configuration/WebhookLogsAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Configuration/IntegrationAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Catalog/ProductAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Catalog/CategoryFieldAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Catalog/CategoryAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Catalog/AttributeGroupAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Catalog/AttributeFamilyAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/tests/Feature/Acl/Catalog/AttributeAclTest.php | Updates ACL tests to assert 403 status. |
| packages/Webkul/Admin/src/Routes/auth-routes.php | Redirects reset-password index to forget-password page. |
| packages/Webkul/Admin/src/Resources/views/configuration/magic-ai/system-prompt/index.blade.php | Fixes page title translation key to index title. |
| packages/Webkul/Admin/src/Resources/views/configuration/magic-ai/platform/index.blade.php | Adds create ACL gating, action icon visibility gating, debounced model fetch, and test-before-save flow. |
| packages/Webkul/Admin/src/Resources/views/configuration/magic-ai-prompt/index.blade.php | Fixes page title translation key to index title. |
| packages/Webkul/Admin/src/Resources/views/components/tree/radio.blade.php | Disables selecting current category and adjusts styling. |
| packages/Webkul/Admin/src/Resources/views/components/tree/category/view.blade.php | Updates currentCategory prop typing/defaults to match new usage. |
| packages/Webkul/Admin/src/Resources/views/components/tinymce/index.blade.php | Registers AI TinyMCE button only when AI is enabled; makes toolbar conditional. |
| packages/Webkul/Admin/src/Resources/views/components/layouts/anonymous.blade.php | Removes unopim.admin.layout.content.after event from anonymous layout rendering. |
| packages/Webkul/Admin/src/Resources/views/components/history/table.blade.php | Renames history table component and adds action title attribute. |
| packages/Webkul/Admin/src/Resources/views/components/history/index.blade.php | Removes passthrough header/body slots from history table usage. |
| packages/Webkul/Admin/src/Resources/views/components/datagrid/manage-columns/index.blade.php | Hides attribute codes in manage-columns list (name-only). |
| packages/Webkul/Admin/src/Resources/views/components/bulkedit/type/datetime.blade.php | Adds datetime bulk edit cell/editor component with validation. |
| packages/Webkul/Admin/src/Resources/views/components/bulkedit/header.blade.php | Makes column widths reactive to resize events. |
| packages/Webkul/Admin/src/Resources/views/components/bulkedit/header-cell.blade.php | Improves resize handle hit-area and emits resize events. |
| packages/Webkul/Admin/src/Resources/views/components/bulkedit/editor.blade.php | Wires datetime editor include. |
| packages/Webkul/Admin/src/Resources/views/components/bulkedit/cell.blade.php | Dispatches datetime attribute type to datetime component. |
| packages/Webkul/Admin/src/Resources/views/catalog/products/edit.blade.php | Makes product edit header sticky with top offset. |
| packages/Webkul/Admin/src/Resources/views/catalog/attributes/edit.blade.php | Unifies swatch option modal layout (grid structure). |
| packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/pt_PT/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/nl_NL/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/id_ID/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/es_ES/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/en_US/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/en_NZ/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/en_GB/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Resources/lang/en_AU/app.php | Adds/updates translations for new validations and UI text. |
| packages/Webkul/Admin/src/Http/Controllers/User/AccountController.php | Revokes Passport tokens on admin password change. |
| packages/Webkul/Admin/src/Http/Controllers/Settings/DataTransfer/TrackerController.php | Uses 403 for unauthorized; fixes normalizeSummary param name. |
| packages/Webkul/Admin/src/Http/Controllers/Settings/DataTransfer/ImportController.php | Uses 403 for unauthorized; fixes normalizeSummary param name. |
| packages/Webkul/Admin/src/Http/Controllers/Settings/DataTransfer/ExportController.php | Uses 403 for unauthorized. |
| packages/Webkul/Admin/src/Http/Controllers/MagicAI/MagicAIPlatformController.php | Enforces default-enabled constraint; strips ~ in model validation; disallows deleting default platform. |
| packages/Webkul/Admin/src/Http/Controllers/MagicAI/MagicAIController.php | Normalizes suggestion query to string default. |
| packages/Webkul/Admin/src/Http/Controllers/Catalog/ProductBulkEditController.php | Adds numeric validation before dispatch; filters attributes by selected families; imports DB facade. |
| packages/Webkul/Admin/src/Http/Controllers/Catalog/Options/AjaxOptionsController.php | Accepts alternate parameter names; adds entityName guard; supports search alias. |
| packages/Webkul/Admin/src/Http/Controllers/Catalog/CategoryController.php | Prevents invalid parent assignment (self/descendant). |
| packages/Webkul/Admin/src/DataGrids/Settings/DataTransfer/JobTrackerGrid.php | Fixes action title translation key used in grid. |
| packages/Webkul/Admin/src/DataGrids/MagicAI/MagicPromptGrid.php | Guards edit/delete actions by permissions. |
| packages/Webkul/Admin/src/DataGrids/MagicAI/MagicAISystemPromptGrid.php | Guards edit/delete actions by permissions. |
| packages/Webkul/Admin/src/DataGrids/MagicAI/MagicAIPlatformDataGrid.php | Guards edit/delete actions by permissions. |
| packages/Webkul/Admin/src/Config/acl.php | Adjusts sort order for data_transfer ACL key. |
| composer.lock | Updates Pint lockfile metadata to v1.29.1. |
| composer.json | Bumps Pint dev dependency; project PHP is ^8.3. |
| .github/workflows/linting_tests.yml | Reworks Pint CI to install deps and run vendor Pint. |
Admin layouts don't render a meta[name="csrf-token"] tag, so the old adminPage.request.post path sent an empty X-CSRF-TOKEN and the request was rejected (419 locally, 500 in CI shard 2). Switch to the same in-page fetch pattern as webhook-delivery.spec.js: read the XSRF-TOKEN cookie and send it as X-XSRF-TOKEN, which the session-backed request context accepts.
- ProductBulkEditController::validateNumericAttributeValues: replace break 2 with break so a single bad scalar no longer aborts validation of the remaining numeric attributes on the same product. - ApiResponse::storeExceptionLog: map UnprocessableEntityHttpException to 422 instead of 404; keep ModelNotFoundException on 404. - Tighten API tests: ApiProductInvalidFilterTest asserts 422 exactly, ApiProductMethodNotAllowedTest asserts 405 and presence of Allow header instead of accepting a loose status set.
- MediaFileController::assignMediaToProductAttribute: use the injected $attributeRepository instead of an ad-hoc app() lookup. - tree/radio.blade.php: bind cursor-pointer/cursor-not-allowed on icon and label text to isCurrentCategory so the disabled state is reflected consistently. - CoreConfigRepositoryClearValueTest: drop source-string matching and replace with behavioral tests that exercise CoreConfigRepository against the DB for null-cleared and default-valued fields. - ImporterEmptyHeadersTest: exercise AbstractImporter::validateData via a minimal concrete subclass with a stub source so regressions in the trailing-empty-header trim are caught against production code. - ProductCategoriesValidator: replace the per-validate root-code pluck with a closure that does a single indexed whereNull lookup per submitted code.
…on is missing The previous null-to-empty-string change made the code fall through to a password-type check that assumed $field was an array. Tests that exercise legacy configuration payloads hit a "Trying to access array offset on null" error. Use null-coalesce on $field['type'] so the password path is skipped when the config field is not registered.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue Reference
<! Please mention issue #id or use a comma if your pull request solves multiple issues. -->
Description
<! Please describe your changes in detail. -->
How To Test This?
<! Please describe in detail how to test the changes made in this pull request. -->
Documentation
<! Please describe in detail what needs to be changed. >
Branch Selection
<! Please specify the target branch for this pull request. -->
Pint
<! Please make sure all the pint tests are passed. -->
Tailwind Reordering
<! Please make sure all the Tailwind classes are reordered. -->